From 8e106212eac51954fc49e8c32cdf50ffc7647b34 Mon Sep 17 00:00:00 2001 From: jacob Date: Tue, 30 Jul 2024 13:25:19 -0600 Subject: [PATCH 1/8] Fix incorrect reshape for sparse matrices. - Fixed for CooMatrix, CooCMatrix, CsrMatrix, and CsrCMatrix. --- .../org/flag4j/arrays/sparse/CooCMatrix.java | 34 ++++++++++++ .../org/flag4j/arrays/sparse/CooMatrix.java | 34 ++++++++++++ .../org/flag4j/arrays/sparse/CooTensor.java | 3 +- .../org/flag4j/arrays/sparse/CsrCMatrix.java | 53 +++++++++++++++++++ .../org/flag4j/arrays/sparse/CsrMatrix.java | 51 ++++++++++++++++++ .../sparse_base/ComplexSparseTensorBase.java | 15 ------ .../sparse_base/RealSparseTensorBase.java | 7 --- 7 files changed, 173 insertions(+), 24 deletions(-) diff --git a/src/main/java/org/flag4j/arrays/sparse/CooCMatrix.java b/src/main/java/org/flag4j/arrays/sparse/CooCMatrix.java index 34d30d09c..479aa3fa5 100644 --- a/src/main/java/org/flag4j/arrays/sparse/CooCMatrix.java +++ b/src/main/java/org/flag4j/arrays/sparse/CooCMatrix.java @@ -2956,6 +2956,40 @@ public CooCMatrix set(double value, int... indices) { } + /** + * Copies and reshapes matrix if possible. The total number of entries in this matrix must match the total number of entries + * in the reshaped matrix. + * + * @param newShape Shape of the new matrix. + * + * @return A matrix which is equivalent to this matrix but with the specified shape. + * + * @throws IllegalArgumentException If this matrix cannot be reshaped to the specified dimensions. + */ + @Override + public CooCMatrix reshape(Shape newShape) { + ParameterChecks.assertBroadcastable(shape, newShape); + + int oldColCount = shape.dims[1]; + int newColCount = newShape.dims[1]; + + // Initialize new COO structures with the same size as the original + int[] newRowIndices = new int[rowIndices.length]; + int[] newColIndices = new int[colIndices.length]; + CNumber[] newEntries = new CNumber[entries.length]; + + for (int i=0; i Date: Wed, 31 Jul 2024 13:45:22 -0600 Subject: [PATCH 2/8] Shape objects are now immutable. --- .../java/org/flag4j/arrays/dense/CMatrix.java | 86 ++--- .../java/org/flag4j/arrays/dense/CTensor.java | 22 +- .../java/org/flag4j/arrays/dense/CVector.java | 22 +- .../java/org/flag4j/arrays/dense/Matrix.java | 64 ++-- .../java/org/flag4j/arrays/dense/Tensor.java | 18 +- .../java/org/flag4j/arrays/dense/Vector.java | 22 +- .../org/flag4j/arrays/sparse/CooCMatrix.java | 82 ++-- .../org/flag4j/arrays/sparse/CooCTensor.java | 45 ++- .../org/flag4j/arrays/sparse/CooCVector.java | 8 +- .../org/flag4j/arrays/sparse/CooMatrix.java | 79 ++-- .../org/flag4j/arrays/sparse/CooTensor.java | 355 +++++++++++++++++- .../org/flag4j/arrays/sparse/CooVector.java | 23 +- .../org/flag4j/arrays/sparse/CsrCMatrix.java | 58 ++- .../org/flag4j/arrays/sparse/CsrMatrix.java | 54 ++- .../arrays/sparse/PermutationMatrix.java | 10 +- src/main/java/org/flag4j/core/Shape.java | 93 ++--- src/main/java/org/flag4j/core/TensorBase.java | 2 +- .../dense_base/ComplexDenseTensorBase.java | 40 +- .../core/dense_base/RealDenseTensorBase.java | 42 +-- .../sparse_base/ComplexSparseTensorBase.java | 26 +- .../sparse_base/RealSparseTensorBase.java | 22 +- .../java/org/flag4j/linalg/MatrixNorms.java | 29 +- .../java/org/flag4j/linalg/TensorInvert.java | 13 +- .../linalg/decompositions/svd/ComplexSVD.java | 4 +- .../linalg/decompositions/svd/RealSVD.java | 4 +- .../solvers/exact/ExactTensorSolver.java | 7 +- .../flag4j/linalg/transformations/Givens.java | 2 +- .../operations/MatrixMultiplyDispatcher.java | 2 +- .../RealDenseMatrixMultiplyDispatcher.java | 2 +- .../operations/TransposeDispatcher.java | 4 +- .../ComplexDenseMatrixMultTranspose.java | 25 +- .../ComplexDenseMatrixMultiplication.java | 73 ++-- .../dense/complex/ComplexDenseProperties.java | 16 +- .../dense/complex/ComplexDenseTensorDot.java | 2 +- .../dense/complex/ComplexDenseTranspose.java | 14 +- .../real/RealDenseMatrixMultTranspose.java | 24 +- .../real/RealDenseMatrixMultiplication.java | 72 ++-- .../dense/real/RealDenseOperations.java | 30 +- .../dense/real/RealDenseProperties.java | 20 +- .../dense/real/RealDenseTensorDot.java | 10 +- .../dense/real/RealDenseTranspose.java | 8 +- .../RealComplexDenseMatrixMultTranspose.java | 49 ++- .../RealComplexDenseMatrixMultiplication.java | 145 ++++--- ...ComplexDenseSparseMatrixMultTranspose.java | 7 +- ...omplexDenseSparseMatrixMultiplication.java | 41 +- .../ComplexDenseSparseMatrixOperations.java | 6 +- .../complex/ComplexDenseSparseOperations.java | 2 +- .../RealDenseSparseMatrixMultTranspose.java | 7 +- .../RealDenseSparseMatrixMultiplication.java | 45 ++- .../real/RealDenseSparseMatrixOperations.java | 6 +- .../real/RealDenseSparseTensorOperations.java | 2 +- ...ComplexDenseSparseMatrixMultTranspose.java | 13 +- ...omplexDenseSparseMatrixMultiplication.java | 81 ++-- ...ealComplexDenseSparseMatrixOperations.java | 12 +- .../RealComplexDenseSparseOperations.java | 4 +- .../complex/ComplexCsrDenseOperations.java | 10 +- .../csr/real/RealCsrDenseOperations.java | 8 +- .../RealComplexCsrDenseOperations.java | 16 +- .../complex/ComplexSparseMatrixGetSet.java | 22 +- .../ComplexSparseMatrixMultiplication.java | 13 +- .../ComplexSparseMatrixOperations.java | 2 +- .../coo/real/RealSparseMatrixGetSet.java | 10 +- .../real/RealSparseMatrixMultiplication.java | 12 +- .../coo/real/RealSparseMatrixOperations.java | 8 +- ...RealComplexSparseMatrixMultiplication.java | 32 +- .../RealComplexSparseMatrixOperations.java | 8 +- .../csr/complex/ComplexCsrOperations.java | 2 +- .../sparse/csr/real/RealCsrOperations.java | 2 +- .../RealComplexCsrOperations.java | 6 +- .../java/org/flag4j/util/ParameterChecks.java | 14 +- src/test/java/org/flag4j/ShapeTests.java | 18 +- .../complex_matrix/CMatrixElemMultTests.java | 4 +- .../complex_matrix/CMatrixReshapeTests.java | 8 +- .../complex_matrix/CMatrixToStringTests.java | 6 +- .../CooCMatrixToStringTests.java | 14 +- .../CTensorConversionTests.java | 2 +- .../complex_tensor/CTensorReshapeTests.java | 8 +- .../complex_tensor/CTensorToStringTests.java | 4 +- .../decompositions/ComplexCholeskyTests.java | 4 +- .../ComplexHessenburgTests.java | 4 +- .../linalg/decompositions/ComplexLUTests.java | 18 +- .../linalg/decompositions/ComplexQRTests.java | 20 +- .../decompositions/RealHessenburgTests.java | 4 +- .../decompositions/RealSymmHessTests.java | 8 +- .../flag4j/matrix/MatrixAddSubEqTests.java | 4 +- .../org/flag4j/matrix/MatrixAddTests.java | 24 +- .../flag4j/matrix/MatrixConversionTests.java | 2 +- .../org/flag4j/matrix/MatrixElemDivTests.java | 4 +- .../flag4j/matrix/MatrixElemMultTests.java | 8 +- .../org/flag4j/matrix/MatrixFibTests.java | 4 +- .../org/flag4j/matrix/MatrixReshapeTests.java | 8 +- .../org/flag4j/matrix/MatrixSubTests.java | 24 +- .../org/flag4j/matrix/MatrixToStringTest.java | 6 +- ...mplexDenseSparseMatMultTransposeTests.java | 4 +- .../RealDenseSparseMatMultTransposeTests.java | 2 +- ...mplexDenseSparseMatMultTransposeTests.java | 4 +- .../CsrCMatrixToStringTests.java | 4 +- .../CsrMatrixToStringTests.java | 4 +- .../sparse_matrix/CooMatrixEqualsTest.java | 4 +- .../sparse_matrix/CooMatrixToStringTests.java | 14 +- .../sparse_vector/CooVectorToStringTests.java | 4 +- .../flag4j/tensor/TensorConversionTests.java | 2 +- .../org/flag4j/tensor/TensorReshapeTests.java | 8 +- .../flag4j/tensor/TensorToStringTests.java | 4 +- .../tensor/TensorUnitaryOperationTests.java | 6 +- .../org/flag4j/util/ErrorMessagesTests.java | 6 +- target/flag4j-v0.1.0-beta.jar | Bin 611783 -> 613120 bytes 107 files changed, 1374 insertions(+), 1017 deletions(-) diff --git a/src/main/java/org/flag4j/arrays/dense/CMatrix.java b/src/main/java/org/flag4j/arrays/dense/CMatrix.java index 056edbf26..22f4390f7 100644 --- a/src/main/java/org/flag4j/arrays/dense/CMatrix.java +++ b/src/main/java/org/flag4j/arrays/dense/CMatrix.java @@ -90,8 +90,8 @@ public class CMatrix public CMatrix(int size) { super(new Shape(size, size), new CNumber[size*size]); ArrayUtils.fillZeros(super.entries); - this.numRows = shape.dims[0]; - this.numCols = shape.dims[1]; + this.numRows = shape.get(0); + this.numCols = shape.get(1); } @@ -103,8 +103,8 @@ public CMatrix(int size) { */ public CMatrix(int size, double value) { super(new Shape(size, size), new CNumber[size*size]); - this.numRows = shape.dims[0]; - this.numCols = shape.dims[1]; + this.numRows = shape.get(0); + this.numCols = shape.get(1); for(int i=0; i public CVector(int size) { super(new Shape(size), new CNumber[size]); ArrayUtils.fillZeros(super.entries); - this.size = shape.dims[0]; + this.size = shape.get(0); } @@ -74,7 +74,7 @@ public CVector(int size) { public CVector(int size, double fillValue) { super(new Shape(size), new CNumber[size]); ArrayUtils.fill(super.entries, fillValue); - this.size = shape.dims[0]; + this.size = shape.get(0); } @@ -86,7 +86,7 @@ public CVector(int size, double fillValue) { public CVector(int size, CNumber fillValue) { super(new Shape(size), new CNumber[size]); ArrayUtils.fill(super.entries, fillValue); - this.size = shape.dims[0]; + this.size = shape.get(0); } @@ -97,7 +97,7 @@ public CVector(int size, CNumber fillValue) { public CVector(double... entries) { super(new Shape(entries.length), new CNumber[entries.length]); ArrayUtils.copy2CNumber(entries, super.entries); - this.size = shape.dims[0]; + this.size = shape.get(0); } @@ -108,7 +108,7 @@ public CVector(double... entries) { public CVector(int... entries) { super(new Shape(entries.length), new CNumber[entries.length]); ArrayUtils.copy2CNumber(entries, super.entries); - this.size = shape.dims[0]; + this.size = shape.get(0); } @@ -118,7 +118,7 @@ public CVector(int... entries) { */ public CVector(CNumber... entries) { super(new Shape(entries.length), entries); - this.size = shape.dims[0]; + this.size = shape.get(0); } @@ -127,9 +127,9 @@ public CVector(CNumber... entries) { * @param a Real vector to copy. */ public CVector(Vector a) { - super(a.shape.copy(), new CNumber[a.totalEntries().intValue()]); + super(a.shape, new CNumber[a.totalEntries().intValue()]); ArrayUtils.copy2CNumber(a.entries, super.entries); - this.size = shape.dims[0]; + this.size = shape.get(0); } @@ -138,9 +138,9 @@ public CVector(Vector a) { * @param a Complex vector to copy. */ public CVector(CVector a) { - super(a.shape.copy(), new CNumber[a.totalEntries().intValue()]); + super(a.shape, new CNumber[a.totalEntries().intValue()]); ArrayUtils.copy2CNumber(a.entries, super.entries); - this.size = shape.dims[0]; + this.size = shape.get(0); } @@ -1072,7 +1072,7 @@ public CTensor toTensor() { CNumber[] entries = new CNumber[this.size]; ArrayUtils.arraycopy(this.entries, 0, entries, 0, this.size); - return new CTensor(this.shape.copy(), entries); + return new CTensor(this.shape, entries); } diff --git a/src/main/java/org/flag4j/arrays/dense/Matrix.java b/src/main/java/org/flag4j/arrays/dense/Matrix.java index bfc1097ab..c61f3065b 100644 --- a/src/main/java/org/flag4j/arrays/dense/Matrix.java +++ b/src/main/java/org/flag4j/arrays/dense/Matrix.java @@ -92,8 +92,8 @@ public class Matrix */ public Matrix(int size) { super(new Shape(size, size), new double[size*size]); - this.numRows = shape.dims[0]; - this.numCols = shape.dims[1]; + this.numRows = shape.get(0); + this.numCols = shape.get(1); } @@ -106,8 +106,8 @@ public Matrix(int size) { public Matrix(int size, double value) { super(new Shape(size, size), new double[size*size]); Arrays.fill(super.entries, value); - this.numRows = shape.dims[0]; - this.numCols = shape.dims[1]; + this.numRows = shape.get(0); + this.numCols = shape.get(1); } @@ -119,8 +119,8 @@ public Matrix(int size, double value) { */ public Matrix(int rows, int cols) { super(new Shape(rows, cols), new double[rows*cols]); - this.numRows = shape.dims[0]; - this.numCols = shape.dims[1]; + this.numRows = shape.get(0); + this.numCols = shape.get(1); } @@ -134,8 +134,8 @@ public Matrix(int rows, int cols) { public Matrix(int rows, int cols, double value) { super(new Shape(rows, cols), new double[rows*cols]); Arrays.fill(super.entries, value); - this.numRows = shape.dims[0]; - this.numCols = shape.dims[1]; + this.numRows = shape.get(0); + this.numCols = shape.get(1); } @@ -146,8 +146,8 @@ public Matrix(int rows, int cols, double value) { public Matrix(Double[][] entries) { super(new Shape(entries.length, entries[0].length), new double[entries.length*entries[0].length]); - this.numRows = shape.dims[0]; - this.numCols = shape.dims[1]; + this.numRows = shape.get(0); + this.numCols = shape.get(1); int index = 0; for(Double[] row : entries) { @@ -165,8 +165,8 @@ public Matrix(Double[][] entries) { public Matrix(Integer[][] entries) { super(new Shape(entries.length, entries[0].length), new double[entries.length*entries[0].length]); - this.numRows = shape.dims[0]; - this.numCols = shape.dims[1]; + this.numRows = shape.get(0); + this.numCols = shape.get(1); int index = 0; for(Integer[] row : entries) { @@ -184,8 +184,8 @@ public Matrix(Integer[][] entries) { public Matrix(double[][] entries) { super(new Shape(entries.length, entries[0].length), new double[entries.length*entries[0].length]); - this.numRows = shape.dims[0]; - this.numCols = shape.dims[1]; + this.numRows = shape.get(0); + this.numCols = shape.get(1); int index = 0; for(double[] row : entries) { @@ -202,8 +202,8 @@ public Matrix(double[][] entries) { */ public Matrix(int[][] entries) { super(new Shape(entries.length, entries[0].length), new double[entries.length*entries[0].length]); - this.numRows = shape.dims[0]; - this.numCols = shape.dims[1]; + this.numRows = shape.get(0); + this.numCols = shape.get(1); // Copy the int array int index=0; @@ -220,9 +220,9 @@ public Matrix(int[][] entries) { * @param A The matrix defining the entries for this matrix. */ public Matrix(Matrix A) { - super(A.shape.copy(), A.entries.clone()); - this.numRows = shape.dims[0]; - this.numCols = shape.dims[1]; + super(A.shape, A.entries.clone()); + this.numRows = shape.get(0); + this.numCols = shape.get(1); } @@ -234,8 +234,8 @@ public Matrix(Matrix A) { public Matrix(Shape shape) { super(shape, new double[shape.totalEntries().intValue()]); ParameterChecks.assertRank(2, shape); - this.numRows = shape.dims[0]; - this.numCols = shape.dims[1]; + this.numRows = shape.get(0); + this.numCols = shape.get(1); } @@ -249,8 +249,8 @@ public Matrix(Shape shape, double value) { super(shape, new double[shape.totalEntries().intValue()]); Arrays.fill(super.entries, value); ParameterChecks.assertRank(2, shape); - this.numRows = shape.dims[0]; - this.numCols = shape.dims[1]; + this.numRows = shape.get(0); + this.numCols = shape.get(1); } @@ -264,8 +264,8 @@ public Matrix(Shape shape, double value) { public Matrix(Shape shape, double[] entries) { super(shape, entries); ParameterChecks.assertRank(2, shape); - this.numRows = shape.dims[0]; - this.numCols = shape.dims[1]; + this.numRows = shape.get(0); + this.numCols = shape.get(1); } @@ -278,8 +278,8 @@ public Matrix(Shape shape, double[] entries) { */ public Matrix(int numRows, int numCols, double[] entries) { super(new Shape(numRows, numCols), entries); - this.numRows = shape.dims[0]; - this.numCols = shape.dims[1]; + this.numRows = shape.get(0); + this.numCols = shape.get(1); } @@ -368,7 +368,7 @@ public Shape shape() { * @return A tensor which is equivalent to this matrix. */ public Tensor toTensor() { - return new Tensor(this.shape.copy(), this.entries.clone()); + return new Tensor(this.shape, this.entries.clone()); } @@ -1308,7 +1308,7 @@ public CMatrix add(CsrCMatrix B) { */ @Override public CMatrix add(CMatrix B) { - return new CMatrix(this.shape.copy(), + return new CMatrix(this.shape, RealComplexDenseOperations.add(B.entries, B.shape, this.entries, this.shape) ); } @@ -1415,7 +1415,7 @@ public CMatrix sub(CsrCMatrix B) { @Override public CMatrix sub(CMatrix B) { return new CMatrix( - shape.copy(), + shape, RealComplexDenseOperations.sub(entries, shape, B.entries, B.shape) ); } @@ -1749,7 +1749,7 @@ public CooMatrix elemMult(CooMatrix B) { @Override public CMatrix elemMult(CMatrix B) { return new CMatrix( - shape.copy(), + shape, RealComplexDenseElemMult.dispatch(B.entries, B.shape, entries, shape) ); } @@ -1779,7 +1779,7 @@ public CooCMatrix elemMult(CooCMatrix B) { @Override public CMatrix elemDiv(CMatrix B) { return new CMatrix( - shape.copy(), + shape, RealComplexDenseElemDiv.dispatch(entries, shape, B.entries, B.shape) ); } diff --git a/src/main/java/org/flag4j/arrays/dense/Tensor.java b/src/main/java/org/flag4j/arrays/dense/Tensor.java index 50c8c3a72..059b44439 100644 --- a/src/main/java/org/flag4j/arrays/dense/Tensor.java +++ b/src/main/java/org/flag4j/arrays/dense/Tensor.java @@ -163,7 +163,7 @@ public Tensor(Shape shape, Integer[] entries) { * @param A tensor to copy. */ public Tensor(Tensor A) { - super(A.shape.copy(), A.entries.clone()); + super(A.shape, A.entries.clone()); shape.makeStridesIfNull(); } @@ -173,7 +173,7 @@ public Tensor(Tensor A) { * @param A Matrix to copy to tensor. */ public Tensor(Matrix A) { - super(A.shape.copy(), A.entries.clone()); + super(A.shape, A.entries.clone()); shape.makeStridesIfNull(); } @@ -183,7 +183,7 @@ public Tensor(Matrix A) { * @param A Vector to copy to tensor. */ public Tensor(Vector A) { - super(A.shape.copy(), A.entries.clone()); + super(A.shape, A.entries.clone()); shape.makeStridesIfNull(); } @@ -386,7 +386,7 @@ public Tensor T(int axis1, int axis2) { public Tensor T(int... axes) { // TODO: Add dispatcher for this method to choose between concurrent and sequential implementations. return new Tensor( - shape.copy().swapAxes(axes), + shape.swapAxes(axes), RealDenseTranspose.standardConcurrent(this.entries, this.shape, axes) ); } @@ -415,7 +415,7 @@ public Tensor add(CooTensor B) { @Override public CTensor add(CTensor B) { return new CTensor( - shape.copy(), + shape, RealComplexDenseOperations.add(B.entries, B.shape, this.entries, this.shape) ); } @@ -457,7 +457,7 @@ public Tensor sub(CooTensor B) { @Override public CTensor sub(CTensor B) { return new CTensor( - shape.copy(), + shape, RealComplexDenseOperations.sub(this.entries, this.shape, B.entries, B.shape) ); } @@ -509,7 +509,7 @@ public CooTensor elemMult(CooTensor B) { @Override public CTensor elemMult(CTensor B) { return new CTensor( - this.shape.copy(), + this.shape, RealComplexDenseElemMult.dispatch(B.entries, B.shape, this.entries, this.shape) ); } @@ -536,7 +536,7 @@ public CooCTensor elemMult(CooCTensor B) { @Override public CTensor elemDiv(CTensor B) { return new CTensor( - shape.copy(), + shape, RealComplexDenseElemDiv.dispatch(entries, shape, B.entries, B.shape) ); } @@ -577,7 +577,7 @@ public Matrix toMatrix() { Matrix mat; if(this.getRank()==2) { - mat = new Matrix(this.shape.copy(), this.entries.clone()); + mat = new Matrix(this.shape, this.entries.clone()); } else { mat = new Matrix(1, this.entries.length, this.entries.clone()); } diff --git a/src/main/java/org/flag4j/arrays/dense/Vector.java b/src/main/java/org/flag4j/arrays/dense/Vector.java index 18328634f..f150f3f97 100644 --- a/src/main/java/org/flag4j/arrays/dense/Vector.java +++ b/src/main/java/org/flag4j/arrays/dense/Vector.java @@ -65,7 +65,7 @@ public class Vector */ public Vector(int size) { super(new Shape(size), new double[size]); - this.size = shape.dims[0]; + this.size = shape.get(0); } @@ -77,7 +77,7 @@ public Vector(int size) { public Vector(int size, double fillValue) { super(new Shape(size), new double[size]); Arrays.fill(super.entries, fillValue); - this.size = shape.dims[0]; + this.size = shape.get(0); } @@ -87,8 +87,8 @@ public Vector(int size, double fillValue) { * @throws IllegalArgumentException If the shapes is not rank 1. */ public Vector(Shape shape) { - super(shape, new double[shape.dims[0]]); - this.size = shape.dims[0]; + super(shape, new double[shape.get(0)]); + this.size = shape.get(0); } @@ -99,9 +99,9 @@ public Vector(Shape shape) { * @throws IllegalArgumentException If the shapes is not rank 1. */ public Vector(Shape shape, double fillValue) { - super(shape, new double[shape.dims[0]]); + super(shape, new double[shape.get(0)]); Arrays.fill(super.entries, fillValue); - this.size = shape.dims[0]; + this.size = shape.get(0); } @@ -111,7 +111,7 @@ public Vector(Shape shape, double fillValue) { */ public Vector(double... entries) { super(new Shape(entries.length), entries.clone()); - this.size = shape.dims[0]; + this.size = shape.get(0); } @@ -121,7 +121,7 @@ public Vector(double... entries) { */ public Vector(int... entries) { super(new Shape(entries.length), new double[entries.length]); - this.size = shape.dims[0]; + this.size = shape.get(0); for(int i=0; i entries, List rowIndices, ParameterChecks.assertEquals(entries.size(), rowIndices.size(), colIndices.size()); this.rowIndices = indices[0]; this.colIndices = indices[1]; - numRows = shape.dims[0]; - numCols = shape.dims[1]; + numRows = shape.get(0); + numCols = shape.get(1); } @@ -363,7 +363,7 @@ public CooCMatrix(Shape shape, List entries, List rowIndices, * @param A Complex sparse matrix to copy. */ public CooCMatrix(CooCMatrix A) { - super(A.shape.copy(), + super(A.shape, A.nonZeroEntries(), ArrayUtils.copyOf(A.entries), A.rowIndices.clone(), @@ -371,8 +371,8 @@ public CooCMatrix(CooCMatrix A) { ); rowIndices = indices[0]; colIndices = indices[1]; - numRows = shape.dims[0]; - numCols = shape.dims[1]; + numRows = shape.get(0); + numCols = shape.get(1); } @@ -531,7 +531,7 @@ public CooCMatrix transpose() { @Override public CooCMatrix T() { CooCMatrix transpose = new CooCMatrix( - shape.copy().swapAxes(0, 1), + shape.swapAxes(0, 1), ArrayUtils.copyOf(entries), colIndices.clone(), rowIndices.clone() @@ -568,7 +568,7 @@ public CNumber get(int... indices) { @Override public CooCMatrix copy() { return new CooCMatrix( - shape.copy(), + shape, ArrayUtils.copyOf(entries), rowIndices.clone(), colIndices.clone() @@ -658,7 +658,7 @@ public CMatrix toDense() { entries[row*numCols + col] = this.entries[i]; } - return new CMatrix(shape.copy(), entries); + return new CMatrix(shape, entries); } @@ -1103,7 +1103,7 @@ public CMatrix pow(int exponent) { ); } - power = new CMatrix(shape.copy(), destEntries); + power = new CMatrix(shape, destEntries); } return power; @@ -1517,12 +1517,12 @@ public CMatrix augment(Matrix B) { // Copy sparse values. for(int i=0; i entries, List rowIndices, Li ParameterChecks.assertEquals(entries.size(), rowIndices.size(), colIndices.size()); this.rowIndices = indices[0]; this.colIndices = indices[1]; - numRows = shape.dims[0]; - numCols = shape.dims[1]; + numRows = shape.get(0); + numCols = shape.get(1); } @@ -346,7 +346,7 @@ public static CooMatrix fromDense(Matrix src) { } } - return new CooMatrix(src.shape.copy(), entries, rowIndices, colIndices); + return new CooMatrix(src.shape, entries, rowIndices, colIndices); } @@ -530,7 +530,7 @@ public CMatrix sub(CNumber a) { @Override public CooMatrix T() { CooMatrix transpose = new CooMatrix( - shape.copy().swapAxes(0, 1), + shape.swapAxes(0, 1), entries.clone(), colIndices.clone(), rowIndices.clone() @@ -566,7 +566,7 @@ public Double get(int... indices) { */ @Override public CooMatrix copy() { - return new CooMatrix(shape.copy(), entries.clone(), rowIndices.clone(), colIndices.clone()); + return new CooMatrix(shape, entries.clone(), rowIndices.clone(), colIndices.clone()); } @@ -666,7 +666,7 @@ public Matrix toDense() { entries[row*numCols + col] = this.entries[i]; } - return new Matrix(shape.copy(), entries); + return new Matrix(shape, entries); } @@ -1324,7 +1324,7 @@ public Matrix pow(int exponent) { ); } - power = new Matrix(shape.copy(), destEntries); + power = new Matrix(shape, destEntries); } return power; @@ -1732,12 +1732,12 @@ public Matrix augment(Matrix B) { // Copy sparse values. for(int i=0; i -// implements TensorExclusiveMixin + implements TensorExclusiveMixin { @@ -85,7 +89,7 @@ public CooTensor(Shape shape, int[] nonZeroEntries, int[][] indices) { * @param A Tensor to copy. */ public CooTensor(CooTensor A) { - super(A.shape.copy(), A.nonZeroEntries(), A.entries.clone(), new int[A.indices.length][A.indices[0].length]); + super(A.shape, A.nonZeroEntries(), A.entries.clone(), new int[A.indices.length][A.indices[0].length]); shape.makeStridesIfNull(); for(int i=0; i0) { @@ -275,16 +258,9 @@ public BigInteger totalEntries() { product = BigInteger.ZERO; } - return product; - } + totalEntries = product; - - /** - * Creates a deep copy of this shape object. This is a distinct object not a reference to the same object. - * @return A deep copy of this shape object. - */ - public Shape copy() { - return new Shape(strides!=null,this); + return product; } @@ -295,9 +271,10 @@ public Shape copy() { */ @Override public boolean equals(Object b) { + // Check for early returns. if(this == b) return true; if(b==null) return false; - if(!(b instanceof Shape)) return false; + if(b.getClass() != getClass()) return false; return Arrays.equals(dims, ((Shape) b).dims); } @@ -333,12 +310,12 @@ public int hashCode() { * @return The string representation for this Shape object. */ public String toString() { - StringBuilder result = new StringBuilder(); + StringBuilder result = new StringBuilder("("); - for(int d : dims) { - result.append(d).append("x"); - } - result.deleteCharAt(result.length()-1); // Remove excess 'x' character. + for(int d : dims) + result.append(d).append(", "); + + result.replace(result.length()-2, result.length(), ")"); // Remove excess ', ' characters. return result.toString(); } diff --git a/src/main/java/org/flag4j/core/TensorBase.java b/src/main/java/org/flag4j/core/TensorBase.java index 01d6d96f4..63f52e05f 100644 --- a/src/main/java/org/flag4j/core/TensorBase.java +++ b/src/main/java/org/flag4j/core/TensorBase.java @@ -147,7 +147,7 @@ public static boolean sameLength(TensorBase A, TensorBase { @@ -119,7 +119,7 @@ public static CNumber[] standard(final CNumber[] src, final Shape shape, final i } CNumber[] dest = new CNumber[shape.totalEntries().intValue()]; - Shape destShape = shape.copy().swapAxes(axes); + Shape destShape = shape.swapAxes(axes); int[] destIndices; for(int i=0; i { int[] destIndices = shape.getIndices(i); @@ -306,7 +306,7 @@ public static CNumber[] standardHerm(final CNumber[] src, final Shape shape, fin } CNumber[] dest = new CNumber[shape.totalEntries().intValue()]; - Shape destShape = shape.copy().swapAxes(axis1, axis2); + Shape destShape = shape.swapAxes(axis1, axis2); int[] destIndices; for(int i=0; i { @@ -366,7 +366,7 @@ public static CNumber[] standardConcurrentHerm(final CNumber[] src, final Shape } CNumber[] dest = new CNumber[shape.totalEntries().intValue()]; - Shape destShape = shape.copy().swapAxes(axes); + Shape destShape = shape.swapAxes(axes); ThreadManager.concurrentLoop(0, src.length, (i) -> { int[] destIndices = shape.getIndices(i); diff --git a/src/main/java/org/flag4j/operations/dense/real/RealDenseMatrixMultTranspose.java b/src/main/java/org/flag4j/operations/dense/real/RealDenseMatrixMultTranspose.java index 5da5a5477..1c8d111e9 100644 --- a/src/main/java/org/flag4j/operations/dense/real/RealDenseMatrixMultTranspose.java +++ b/src/main/java/org/flag4j/operations/dense/real/RealDenseMatrixMultTranspose.java @@ -52,9 +52,9 @@ private RealDenseMatrixMultTranspose() { * @return The result of multiplying the first matrix with the transpose of the second matrix. */ public static double[] multTranspose(double[] src1, Shape shape1, double[] src2, Shape shape2) { - int rows1 = shape1.dims[0]; - int rows2 = shape2.dims[0]; - int cols2 = shape2.dims[1]; + int rows1 = shape1.get(0); + int rows2 = shape2.get(0); + int cols2 = shape2.get(1); double[] dest = new double[rows1*rows2]; // Since second matrix is transposed, its columns will become rows. int src1Index, src2Index, destIndex, src1IndexStart, destIndexStart, end; @@ -89,9 +89,9 @@ public static double[] multTranspose(double[] src1, Shape shape1, double[] src2, * @return The result of multiplying the first matrix with the transpose of the second matrix. */ public static double[] multTransposeBlocked(double[] src1, Shape shape1, double[] src2, Shape shape2) { - int rows1 = shape1.dims[0]; - int rows2 = shape2.dims[0]; - int cols2 = shape2.dims[1]; + int rows1 = shape1.get(0); + int rows2 = shape2.get(0); + int cols2 = shape2.get(1); double[] dest = new double[rows1 * rows2]; int blockSize = Configurations.getBlockSize(); @@ -144,9 +144,9 @@ public static double[] multTransposeBlocked(double[] src1, Shape shape1, double[ * @return The result of multiplying the first matrix with the transpose of the second matrix. */ public static double[] multTransposeConcurrent(double[] src1, Shape shape1, double[] src2, Shape shape2) { - int rows1 = shape1.dims[0]; - int rows2 = shape2.dims[0]; - int cols2 = shape2.dims[1]; + int rows1 = shape1.get(0); + int rows2 = shape2.get(0); + int cols2 = shape2.get(1); double[] dest = new double[rows1*rows2]; // Since second matrix is transposed, its columns will become rows. @@ -180,9 +180,9 @@ public static double[] multTransposeConcurrent(double[] src1, Shape shape1, doub * @return The result of multiplying the first matrix with the transpose of the second matrix. */ public static double[] multTransposeBlockedConcurrent(double[] src1, Shape shape1, double[] src2, Shape shape2) { - int rows1 = shape1.dims[0]; - int rows2 = shape2.dims[0]; - int cols2 = shape2.dims[1]; + int rows1 = shape1.get(0); + int rows2 = shape2.get(0); + int cols2 = shape2.get(1); double[] dest = new double[rows1*rows2]; int blockSize = Configurations.getBlockSize(); diff --git a/src/main/java/org/flag4j/operations/dense/real/RealDenseMatrixMultiplication.java b/src/main/java/org/flag4j/operations/dense/real/RealDenseMatrixMultiplication.java index b9dabbb05..4c96a7f6e 100644 --- a/src/main/java/org/flag4j/operations/dense/real/RealDenseMatrixMultiplication.java +++ b/src/main/java/org/flag4j/operations/dense/real/RealDenseMatrixMultiplication.java @@ -50,9 +50,9 @@ private RealDenseMatrixMultiplication() { * @return The result of matrix multiplying the two matrices. */ public static double[] standard(double[] src1, Shape shape1, double[] src2, Shape shape2) { - int rows1 = shape1.dims[0]; - int rows2 = shape2.dims[0]; - int cols2 = shape2.dims[1]; + int rows1 = shape1.get(0); + int rows2 = shape2.get(0); + int cols2 = shape2.get(1); double[] dest = new double[rows1*cols2]; int src1Index, src2Index, destIndex, src1IndexStart, destIndexStart, end; @@ -92,9 +92,9 @@ public static double[] standard(double[] src1, Shape shape1, double[] src2, Shap * @return The result of matrix multiplying the two matrices. */ public static double[] reordered(double[] src1, Shape shape1, double[] src2, Shape shape2) { - int rows1 = shape1.dims[0]; - int cols1 = shape1.dims[1]; - int cols2 = shape2.dims[1]; + int rows1 = shape1.get(0); + int cols1 = shape1.get(1); + int cols2 = shape2.get(1); double[] dest = new double[rows1*cols2]; @@ -134,9 +134,9 @@ public static double[] reordered(double[] src1, Shape shape1, double[] src2, Sha * @return The result of matrix multiplying the two matrices. */ public static double[] blocked(double[] src1, Shape shape1, double[] src2, Shape shape2) { - int rows1 = shape1.dims[0]; - int cols2 = shape2.dims[1]; - int cols1 = shape1.dims[1]; + int rows1 = shape1.get(0); + int cols2 = shape2.get(1); + int cols1 = shape1.get(1); double[] dest = new double[rows1 * cols2]; int blockSize = Configurations.getBlockSize(); @@ -189,9 +189,9 @@ public static double[] blocked(double[] src1, Shape shape1, double[] src2, Shape * @return The result of matrix multiplying the two matrices. */ public static double[] blockedReordered(double[] src1, Shape shape1, double[] src2, Shape shape2) { - int rows1 = shape1.dims[0]; - int cols2 = shape2.dims[1]; - int cols1 = shape1.dims[1]; + int rows1 = shape1.get(0); + int cols2 = shape2.get(1); + int cols1 = shape1.get(1); double[] dest = new double[rows1*cols2]; int blockSize = Configurations.getBlockSize(); @@ -244,9 +244,9 @@ public static double[] blockedReordered(double[] src1, Shape shape1, double[] sr * @return The result of matrix multiplying the two matrices. */ public static double[] concurrentStandard(double[] src1, Shape shape1, double[] src2, Shape shape2) { - int rows1 = shape1.dims[0]; - int cols1 = shape1.dims[1]; - int cols2 = shape2.dims[1]; + int rows1 = shape1.get(0); + int cols1 = shape1.get(1); + int cols2 = shape2.get(1); double[] dest = new double[rows1*cols2]; @@ -281,9 +281,9 @@ public static double[] concurrentStandard(double[] src1, Shape shape1, double[] * @return The result of matrix multiplying the two matrices. */ public static double[] concurrentReordered(double[] src1, Shape shape1, double[] src2, Shape shape2) { - int rows1 = shape1.dims[0]; - int rows2 = shape2.dims[0]; - int cols2 = shape2.dims[1]; + int rows1 = shape1.get(0); + int rows2 = shape2.get(0); + int cols2 = shape2.get(1); double[] dest = new double[rows1*cols2]; @@ -317,9 +317,9 @@ public static double[] concurrentReordered(double[] src1, Shape shape1, double[] * @return The result of matrix multiplying the two matrices. */ public static double[] concurrentBlocked(double[] src1, Shape shape1, double[] src2, Shape shape2) { - int rows1 = shape1.dims[0]; - int cols1 = shape1.dims[1]; - int cols2 = shape2.dims[1]; + int rows1 = shape1.get(0); + int cols1 = shape1.get(1); + int cols2 = shape2.get(1); double[] dest = new double[rows1*cols2]; int blockSize = Configurations.getBlockSize(); @@ -368,9 +368,9 @@ public static double[] concurrentBlocked(double[] src1, Shape shape1, double[] s * @return The result of matrix multiplying the two matrices. */ public static double[] concurrentBlockedReordered(double[] src1, Shape shape1, double[] src2, Shape shape2) { - int rows1 = shape1.dims[0]; - int cols1 = shape1.dims[1]; - int cols2 = shape2.dims[1]; + int rows1 = shape1.get(0); + int cols1 = shape1.get(1); + int cols2 = shape2.get(1); double[] dest = new double[rows1*cols2]; int blockSize = Configurations.getBlockSize(); @@ -418,9 +418,9 @@ public static double[] concurrentBlockedReordered(double[] src1, Shape shape1, d * @return The result of matrix multiplying the two matrices. */ public static double[] standardVector(double[] src1, Shape shape1, double[] src2, Shape shape2) { - int rows1 = shape1.dims[0]; - int cols1 = shape1.dims[1]; - int rows2 = shape2.dims[0]; + int rows1 = shape1.get(0); + int cols1 = shape1.get(1); + int rows2 = shape2.get(0); double[] dest = new double[rows1]; int src1Index, src2Index; @@ -447,9 +447,9 @@ public static double[] standardVector(double[] src1, Shape shape1, double[] src2 * @return The result of matrix multiplying the two matrices. */ public static double[] blockedVector(double[] src1, Shape shape1, double[] src2, Shape shape2) { - int rows1 = shape1.dims[0]; - int cols1 = shape1.dims[1]; - int rows2 = shape2.dims[0]; + int rows1 = shape1.get(0); + int cols1 = shape1.get(1); + int rows2 = shape2.get(0); double[] dest = new double[rows1]; int blockSize = Configurations.getBlockSize(); @@ -489,9 +489,9 @@ public static double[] blockedVector(double[] src1, Shape shape1, double[] src2, * @return The result of matrix multiplying the two matrices. */ public static double[] concurrentStandardVector(double[] src1, Shape shape1, double[] src2, Shape shape2) { - int rows1 = shape1.dims[0]; - int cols1 = shape1.dims[1]; - int rows2 = shape2.dims[0]; + int rows1 = shape1.get(0); + int cols1 = shape1.get(1); + int rows2 = shape2.get(0); double[] dest = new double[rows1]; @@ -518,9 +518,9 @@ public static double[] concurrentStandardVector(double[] src1, Shape shape1, dou * @return The result of matrix multiplying the two matrices. */ public static double[] concurrentBlockedVector(double[] src1, Shape shape1, double[] src2, Shape shape2) { - int rows1 = shape1.dims[0]; - int cols1 = shape1.dims[1]; - int rows2 = shape2.dims[0]; + int rows1 = shape1.get(0); + int cols1 = shape1.get(1); + int rows2 = shape2.get(0); double[] dest = new double[rows1]; int blockSize = Configurations.getBlockSize(); diff --git a/src/main/java/org/flag4j/operations/dense/real/RealDenseOperations.java b/src/main/java/org/flag4j/operations/dense/real/RealDenseOperations.java index 6887a398c..d1cb0a2be 100644 --- a/src/main/java/org/flag4j/operations/dense/real/RealDenseOperations.java +++ b/src/main/java/org/flag4j/operations/dense/real/RealDenseOperations.java @@ -170,17 +170,27 @@ public static void addEq(double[] src, double b) { * @return The product of all entries in the tensor. */ public static double prod(double[] src) { - double product; - int length = src.length; + if(src == null || src.length == 0) return 0; - if(length > 0) { - product=1; - for(double value : src) { - product *= value; - } - } else { - product=0; - } + double product=1; + for(double value : src) + product *= value; + + return product; + } + + + /** + * Multiplies all entries in a tensor. + * @param src The entries of the tensor. + * @return The product of all entries in the tensor. + */ + public static int prod(int[] src) { + if(src == null || src.length == 0) return 0; + + int product=1; + for(int value : src) + product *= value; return product; } diff --git a/src/main/java/org/flag4j/operations/dense/real/RealDenseProperties.java b/src/main/java/org/flag4j/operations/dense/real/RealDenseProperties.java index 459dd85bb..e0ff1e8bd 100644 --- a/src/main/java/org/flag4j/operations/dense/real/RealDenseProperties.java +++ b/src/main/java/org/flag4j/operations/dense/real/RealDenseProperties.java @@ -60,19 +60,19 @@ public static boolean isOnes(double[] src) { /** - * Checks if a real dense matrix is symmetric. That is, if the and equal to its transpose. + * Checks if a real dense matrix is symmetric. That is, if the matrix is equal to its transpose. * @param src Entries of the matrix. * @param shape Shape of the matrix. * @return True if this matrix is symmetric */ public static boolean isSymmetric(double[] src, Shape shape) { // Quick return if possible. - if(shape.dims[0]!=shape.dims[1]) return false; + if(shape.get(0)!=shape.get(1)) return false; int count1, count2, stop; - for(int i=0; i { int[] destIndices = shape.getIndices(i); @@ -154,7 +154,7 @@ public static double[] standardConcurrent(final double[] src, final Shape shape, } double[] dest = new double[shape.totalEntries().intValue()]; - Shape destShape = shape.copy().swapAxes(axis1, axis2); + Shape destShape = shape.swapAxes(axis1, axis2); // Compute transpose concurrently ThreadManager.concurrentLoop(0, src.length, (i) -> { diff --git a/src/main/java/org/flag4j/operations/dense/real_complex/RealComplexDenseMatrixMultTranspose.java b/src/main/java/org/flag4j/operations/dense/real_complex/RealComplexDenseMatrixMultTranspose.java index fedee6a46..16c608b6d 100644 --- a/src/main/java/org/flag4j/operations/dense/real_complex/RealComplexDenseMatrixMultTranspose.java +++ b/src/main/java/org/flag4j/operations/dense/real_complex/RealComplexDenseMatrixMultTranspose.java @@ -29,7 +29,6 @@ import org.flag4j.concurrency.ThreadManager; import org.flag4j.core.Shape; import org.flag4j.util.ArrayUtils; -import org.flag4j.util.Axis2D; import org.flag4j.util.ErrorMessages; /** @@ -55,9 +54,9 @@ private RealComplexDenseMatrixMultTranspose() { * @return The result of multiplying the first matrix with the transpose of the second matrix. */ public static CNumber[] multTranspose(CNumber[] src1, Shape shape1, double[] src2, Shape shape2) { - int rows1 = shape1.dims[Axis2D.row()]; - int rows2 = shape2.dims[Axis2D.row()]; - int cols2 = shape2.dims[Axis2D.col()]; + int rows1 = shape1.get(0); + int rows2 = shape2.get(0); + int cols2 = shape2.get(1); CNumber[] dest = new CNumber[rows1*rows2]; // Since second matrix is transposed, its columns will become rows. ArrayUtils.fillZeros(dest); @@ -94,9 +93,9 @@ public static CNumber[] multTranspose(CNumber[] src1, Shape shape1, double[] src * @return The result of multiplying the first matrix with the transpose of the second matrix. */ public static CNumber[] multTransposeBlocked(CNumber[] src1, Shape shape1, double[] src2, Shape shape2) { - int rows1 = shape1.dims[Axis2D.row()]; - int rows2 = shape2.dims[Axis2D.row()]; - int cols2 = shape2.dims[Axis2D.col()]; + int rows1 = shape1.get(0); + int rows2 = shape2.get(0); + int cols2 = shape2.get(1); CNumber[] dest = new CNumber[rows1*rows2]; ArrayUtils.fillZeros(dest); @@ -150,9 +149,9 @@ public static CNumber[] multTransposeBlocked(CNumber[] src1, Shape shape1, doubl * @return The result of multiplying the first matrix with the transpose of the second matrix. */ public static CNumber[] multTransposeConcurrent(CNumber[] src1, Shape shape1, double[] src2, Shape shape2) { - int rows1 = shape1.dims[Axis2D.row()]; - int rows2 = shape2.dims[Axis2D.row()]; - int cols2 = shape2.dims[Axis2D.col()]; + int rows1 = shape1.get(0); + int rows2 = shape2.get(0); + int cols2 = shape2.get(1); CNumber[] dest = new CNumber[rows1*rows2]; // Since second matrix is transposed, its columns will become rows. ArrayUtils.fillZeros(dest); @@ -187,9 +186,9 @@ public static CNumber[] multTransposeConcurrent(CNumber[] src1, Shape shape1, do * @return The result of multiplying the first matrix with the transpose of the second matrix. */ public static CNumber[] multTransposeBlockedConcurrent(CNumber[] src1, Shape shape1, double[] src2, Shape shape2) { - int rows1 = shape1.dims[Axis2D.row()]; - int rows2 = shape2.dims[Axis2D.row()]; - int cols2 = shape2.dims[Axis2D.col()]; + int rows1 = shape1.get(0); + int rows2 = shape2.get(0); + int cols2 = shape2.get(1); CNumber[] dest = new CNumber[rows1*rows2]; ArrayUtils.fillZeros(dest); @@ -239,9 +238,9 @@ public static CNumber[] multTransposeBlockedConcurrent(CNumber[] src1, Shape sha * @return The result of multiplying the first matrix with the transpose of the second matrix. */ public static CNumber[] multTranspose(double[] src1, Shape shape1, CNumber[] src2, Shape shape2) { - int rows1 = shape1.dims[Axis2D.row()]; - int rows2 = shape2.dims[Axis2D.row()]; - int cols2 = shape2.dims[Axis2D.col()]; + int rows1 = shape1.get(0); + int rows2 = shape2.get(0); + int cols2 = shape2.get(1); CNumber[] dest = new CNumber[rows1*rows2]; // Since second matrix is transposed, its columns will become rows. ArrayUtils.fillZeros(dest); @@ -278,9 +277,9 @@ public static CNumber[] multTranspose(double[] src1, Shape shape1, CNumber[] src * @return The result of multiplying the first matrix with the transpose of the second matrix. */ public static CNumber[] multTransposeBlocked(double[] src1, Shape shape1, CNumber[] src2, Shape shape2) { - int rows1 = shape1.dims[Axis2D.row()]; - int rows2 = shape2.dims[Axis2D.row()]; - int cols2 = shape2.dims[Axis2D.col()]; + int rows1 = shape1.get(0); + int rows2 = shape2.get(0); + int cols2 = shape2.get(1); CNumber[] dest = new CNumber[rows1*rows2]; ArrayUtils.fillZeros(dest); @@ -334,9 +333,9 @@ public static CNumber[] multTransposeBlocked(double[] src1, Shape shape1, CNumbe * @return The result of multiplying the first matrix with the transpose of the second matrix. */ public static CNumber[] multTransposeConcurrent(double[] src1, Shape shape1, CNumber[] src2, Shape shape2) { - int rows1 = shape1.dims[Axis2D.row()]; - int rows2 = shape2.dims[Axis2D.row()]; - int cols2 = shape2.dims[Axis2D.col()]; + int rows1 = shape1.get(0); + int rows2 = shape2.get(0); + int cols2 = shape2.get(1); CNumber[] dest = new CNumber[rows1*rows2]; // Since second matrix is transposed, its columns will become rows. ArrayUtils.fillZeros(dest); @@ -371,9 +370,9 @@ public static CNumber[] multTransposeConcurrent(double[] src1, Shape shape1, CNu * @return The result of multiplying the first matrix with the transpose of the second matrix. */ public static CNumber[] multTransposeBlockedConcurrent(double[] src1, Shape shape1, CNumber[] src2, Shape shape2) { - int rows1 = shape1.dims[Axis2D.row()]; - int rows2 = shape2.dims[Axis2D.row()]; - int cols2 = shape2.dims[Axis2D.col()]; + int rows1 = shape1.get(0); + int rows2 = shape2.get(0); + int cols2 = shape2.get(1); CNumber[] dest = new CNumber[rows1*rows2]; ArrayUtils.fillZeros(dest); diff --git a/src/main/java/org/flag4j/operations/dense/real_complex/RealComplexDenseMatrixMultiplication.java b/src/main/java/org/flag4j/operations/dense/real_complex/RealComplexDenseMatrixMultiplication.java index a644249d8..d6d85b1cf 100644 --- a/src/main/java/org/flag4j/operations/dense/real_complex/RealComplexDenseMatrixMultiplication.java +++ b/src/main/java/org/flag4j/operations/dense/real_complex/RealComplexDenseMatrixMultiplication.java @@ -30,7 +30,6 @@ import org.flag4j.concurrency.ThreadManager; import org.flag4j.core.Shape; import org.flag4j.util.ArrayUtils; -import org.flag4j.util.Axis2D; import org.flag4j.util.ErrorMessages; @@ -57,9 +56,9 @@ private RealComplexDenseMatrixMultiplication() { * @return The result of matrix multiplying the two matrices. */ public static CNumber[] standard(double[] src1, Shape shape1, CNumber[] src2, Shape shape2) { - int rows1 = shape1.dims[Axis2D.row()]; - int rows2 = shape2.dims[Axis2D.row()]; - int cols2 = shape2.dims[Axis2D.col()]; + int rows1 = shape1.get(0); + int rows2 = shape2.get(0); + int cols2 = shape2.get(1); CNumber[] dest = new CNumber[rows1*cols2]; ArrayUtils.fill(dest, 0); @@ -98,9 +97,9 @@ public static CNumber[] standard(double[] src1, Shape shape1, CNumber[] src2, Sh * @return The result of matrix multiplying the two matrices. */ public static CNumber[] reordered(double[] src1, Shape shape1, CNumber[] src2, Shape shape2) { - int rows1 = shape1.dims[Axis2D.row()]; - int cols1 = shape1.dims[Axis2D.col()]; - int cols2 = shape2.dims[Axis2D.col()]; + int rows1 = shape1.get(0); + int cols1 = shape1.get(1); + int cols2 = shape2.get(1); CNumber[] dest = new CNumber[rows1*cols2]; ArrayUtils.fill(dest, 0); @@ -138,9 +137,9 @@ public static CNumber[] reordered(double[] src1, Shape shape1, CNumber[] src2, S * @return The result of matrix multiplying the two matrices. */ public static CNumber[] blocked(double[] src1, Shape shape1, CNumber[] src2, Shape shape2) { - int rows1 = shape1.dims[Axis2D.row()]; - int cols2 = shape2.dims[Axis2D.col()]; - int cols1 = shape1.dims[Axis2D.col()]; + int rows1 = shape1.get(0); + int cols2 = shape2.get(1); + int cols1 = shape1.get(1); CNumber[] dest = new CNumber[rows1 * cols2]; ArrayUtils.fill(dest, 0); @@ -193,9 +192,9 @@ public static CNumber[] blocked(double[] src1, Shape shape1, CNumber[] src2, Sha * @return The result of matrix multiplying the two matrices. */ public static CNumber[] blockedReordered(double[] src1, Shape shape1, CNumber[] src2, Shape shape2) { - int rows1 = shape1.dims[Axis2D.row()]; - int cols2 = shape2.dims[Axis2D.col()]; - int cols1 = shape1.dims[Axis2D.col()]; + int rows1 = shape1.get(0); + int cols2 = shape2.get(1); + int cols1 = shape1.get(1); CNumber[] dest = new CNumber[rows1*cols2]; ArrayUtils.fill(dest, 0); @@ -250,9 +249,9 @@ public static CNumber[] blockedReordered(double[] src1, Shape shape1, CNumber[] * @return The result of matrix multiplying the two matrices. */ public static CNumber[] concurrentStandard(double[] src1, Shape shape1, CNumber[] src2, Shape shape2) { - int rows1 = shape1.dims[Axis2D.row()]; - int cols1 = shape1.dims[Axis2D.col()]; - int cols2 = shape2.dims[Axis2D.col()]; + int rows1 = shape1.get(0); + int cols1 = shape1.get(1); + int cols2 = shape2.get(1); CNumber[] dest = new CNumber[rows1*cols2]; ArrayUtils.fill(dest, 0); @@ -288,9 +287,9 @@ public static CNumber[] concurrentStandard(double[] src1, Shape shape1, CNumber[ * @return The result of matrix multiplying the two matrices. */ public static CNumber[] concurrentReordered(double[] src1, Shape shape1, CNumber[] src2, Shape shape2) { - int rows1 = shape1.dims[Axis2D.row()]; - int rows2 = shape2.dims[Axis2D.row()]; - int cols2 = shape2.dims[Axis2D.col()]; + int rows1 = shape1.get(0); + int rows2 = shape2.get(0); + int cols2 = shape2.get(1); CNumber[] dest = new CNumber[rows1*cols2]; ArrayUtils.fill(dest, 0); @@ -325,9 +324,9 @@ public static CNumber[] concurrentReordered(double[] src1, Shape shape1, CNumber * @return The result of matrix multiplying the two matrices. */ public static CNumber[] concurrentBlocked(double[] src1, Shape shape1, CNumber[] src2, Shape shape2) { - int rows1 = shape1.dims[Axis2D.row()]; - int cols1 = shape1.dims[Axis2D.col()]; - int cols2 = shape2.dims[Axis2D.col()]; + int rows1 = shape1.get(0); + int cols1 = shape1.get(1); + int cols2 = shape2.get(1); CNumber[] dest = new CNumber[rows1*cols2]; ArrayUtils.fill(dest, 0); @@ -378,9 +377,9 @@ public static CNumber[] concurrentBlocked(double[] src1, Shape shape1, CNumber[] * @return The result of matrix multiplying the two matrices. */ public static CNumber[] concurrentBlockedReordered(double[] src1, Shape shape1, CNumber[] src2, Shape shape2) { - int rows1 = shape1.dims[Axis2D.row()]; - int cols1 = shape1.dims[Axis2D.col()]; - int cols2 = shape2.dims[Axis2D.col()]; + int rows1 = shape1.get(0); + int cols1 = shape1.get(1); + int cols2 = shape2.get(1); CNumber[] dest = new CNumber[rows1*cols2]; ArrayUtils.fill(dest, 0); @@ -430,9 +429,9 @@ public static CNumber[] concurrentBlockedReordered(double[] src1, Shape shape1, * @return The result of matrix multiplying the two matrices. */ public static CNumber[] standardVector(double[] src1, Shape shape1, CNumber[] src2, Shape shape2) { - int rows1 = shape1.dims[Axis2D.row()]; - int cols1 = shape1.dims[Axis2D.col()]; - int rows2 = shape2.dims[Axis2D.row()]; + int rows1 = shape1.get(0); + int cols1 = shape1.get(1); + int rows2 = shape2.get(0); CNumber[] dest = new CNumber[rows1]; ArrayUtils.fill(dest, 0); @@ -461,9 +460,9 @@ public static CNumber[] standardVector(double[] src1, Shape shape1, CNumber[] sr * @return The result of matrix multiplying the two matrices. */ public static CNumber[] blockedVector(double[] src1, Shape shape1, CNumber[] src2, Shape shape2) { - int rows1 = shape1.dims[Axis2D.row()]; - int cols1 = shape1.dims[Axis2D.col()]; - int rows2 = shape2.dims[Axis2D.row()]; + int rows1 = shape1.get(0); + int cols1 = shape1.get(1); + int rows2 = shape2.get(0); CNumber[] dest = new CNumber[rows1]; ArrayUtils.fill(dest, 0); @@ -505,9 +504,9 @@ public static CNumber[] blockedVector(double[] src1, Shape shape1, CNumber[] src * @return The result of matrix multiplying the two matrices. */ public static CNumber[] concurrentStandardVector(double[] src1, Shape shape1, CNumber[] src2, Shape shape2) { - int rows1 = shape1.dims[Axis2D.row()]; - int cols1 = shape1.dims[Axis2D.col()]; - int rows2 = shape2.dims[Axis2D.row()]; + int rows1 = shape1.get(0); + int cols1 = shape1.get(1); + int rows2 = shape2.get(0); CNumber[] dest = new CNumber[rows1]; ArrayUtils.fill(dest, 0); @@ -536,9 +535,9 @@ public static CNumber[] concurrentStandardVector(double[] src1, Shape shape1, CN * @return The result of matrix multiplying the two matrices. */ public static CNumber[] concurrentBlockedVector(double[] src1, Shape shape1, CNumber[] src2, Shape shape2) { - int rows1 = shape1.dims[Axis2D.row()]; - int cols1 = shape1.dims[Axis2D.col()]; - int rows2 = shape2.dims[Axis2D.row()]; + int rows1 = shape1.get(0); + int cols1 = shape1.get(1); + int rows2 = shape2.get(0); CNumber[] dest = new CNumber[rows1]; ArrayUtils.fill(dest, 0); @@ -583,9 +582,9 @@ public static CNumber[] concurrentBlockedVector(double[] src1, Shape shape1, CNu * @return The result of matrix multiplying the two matrices. */ public static CNumber[] standard(CNumber[] src1, Shape shape1, double[] src2, Shape shape2) { - int rows1 = shape1.dims[Axis2D.row()]; - int rows2 = shape2.dims[Axis2D.row()]; - int cols2 = shape2.dims[Axis2D.col()]; + int rows1 = shape1.get(0); + int rows2 = shape2.get(0); + int cols2 = shape2.get(1); CNumber[] dest = new CNumber[rows1*cols2]; ArrayUtils.fill(dest, 0); @@ -623,9 +622,9 @@ public static CNumber[] standard(CNumber[] src1, Shape shape1, double[] src2, Sh * @return The result of matrix multiplying the two matrices. */ public static CNumber[] reordered(CNumber[] src1, Shape shape1, double[] src2, Shape shape2) { - int rows1 = shape1.dims[Axis2D.row()]; - int cols1 = shape1.dims[Axis2D.col()]; - int cols2 = shape2.dims[Axis2D.col()]; + int rows1 = shape1.get(0); + int cols1 = shape1.get(1); + int cols2 = shape2.get(1); CNumber[] dest = new CNumber[rows1*cols2]; ArrayUtils.fill(dest, 0); @@ -662,9 +661,9 @@ public static CNumber[] reordered(CNumber[] src1, Shape shape1, double[] src2, S * @return The result of matrix multiplying the two matrices. */ public static CNumber[] blocked(CNumber[] src1, Shape shape1, double[] src2, Shape shape2) { - int rows1 = shape1.dims[Axis2D.row()]; - int cols2 = shape2.dims[Axis2D.col()]; - int cols1 = shape1.dims[Axis2D.col()]; + int rows1 = shape1.get(0); + int cols2 = shape2.get(1); + int cols1 = shape1.get(1); CNumber[] dest = new CNumber[rows1 * cols2]; ArrayUtils.fill(dest, 0); @@ -716,9 +715,9 @@ public static CNumber[] blocked(CNumber[] src1, Shape shape1, double[] src2, Sha * @return The result of matrix multiplying the two matrices. */ public static CNumber[] blockedReordered(CNumber[] src1, Shape shape1, double[] src2, Shape shape2) { - int rows1 = shape1.dims[Axis2D.row()]; - int cols2 = shape2.dims[Axis2D.col()]; - int cols1 = shape1.dims[Axis2D.col()]; + int rows1 = shape1.get(0); + int cols2 = shape2.get(1); + int cols1 = shape1.get(1); CNumber[] dest = new CNumber[rows1*cols2]; ArrayUtils.fill(dest, 0); @@ -772,9 +771,9 @@ public static CNumber[] blockedReordered(CNumber[] src1, Shape shape1, double[] * @return The result of matrix multiplying the two matrices. */ public static CNumber[] concurrentStandard(CNumber[] src1, Shape shape1, double[] src2, Shape shape2) { - int rows1 = shape1.dims[Axis2D.row()]; - int cols1 = shape1.dims[Axis2D.col()]; - int cols2 = shape2.dims[Axis2D.col()]; + int rows1 = shape1.get(0); + int cols1 = shape1.get(1); + int cols2 = shape2.get(1); CNumber[] dest = new CNumber[rows1*cols2]; ArrayUtils.fill(dest, 0); @@ -809,9 +808,9 @@ public static CNumber[] concurrentStandard(CNumber[] src1, Shape shape1, double[ * @return The result of matrix multiplying the two matrices. */ public static CNumber[] concurrentReordered(CNumber[] src1, Shape shape1, double[] src2, Shape shape2) { - int rows1 = shape1.dims[Axis2D.row()]; - int rows2 = shape2.dims[Axis2D.row()]; - int cols2 = shape2.dims[Axis2D.col()]; + int rows1 = shape1.get(0); + int rows2 = shape2.get(0); + int cols2 = shape2.get(1); CNumber[] dest = new CNumber[rows1*cols2]; ArrayUtils.fill(dest, 0); @@ -845,9 +844,9 @@ public static CNumber[] concurrentReordered(CNumber[] src1, Shape shape1, double * @return The result of matrix multiplying the two matrices. */ public static CNumber[] concurrentBlocked(CNumber[] src1, Shape shape1, double[] src2, Shape shape2) { - int rows1 = shape1.dims[Axis2D.row()]; - int cols1 = shape1.dims[Axis2D.col()]; - int cols2 = shape2.dims[Axis2D.col()]; + int rows1 = shape1.get(0); + int cols1 = shape1.get(1); + int cols2 = shape2.get(1); CNumber[] dest = new CNumber[rows1*cols2]; ArrayUtils.fill(dest, 0); @@ -897,9 +896,9 @@ public static CNumber[] concurrentBlocked(CNumber[] src1, Shape shape1, double[] * @return The result of matrix multiplying the two matrices. */ public static CNumber[] concurrentBlockedReordered(CNumber[] src1, Shape shape1, double[] src2, Shape shape2) { - int rows1 = shape1.dims[Axis2D.row()]; - int cols1 = shape1.dims[Axis2D.col()]; - int cols2 = shape2.dims[Axis2D.col()]; + int rows1 = shape1.get(0); + int cols1 = shape1.get(1); + int cols2 = shape2.get(1); CNumber[] dest = new CNumber[rows1*cols2]; ArrayUtils.fill(dest, 0); @@ -948,9 +947,9 @@ public static CNumber[] concurrentBlockedReordered(CNumber[] src1, Shape shape1, * @return The result of matrix multiplying the two matrices. */ public static CNumber[] standardVector(CNumber[] src1, Shape shape1, double[] src2, Shape shape2) { - int rows1 = shape1.dims[Axis2D.row()]; - int cols1 = shape1.dims[Axis2D.col()]; - int rows2 = shape2.dims[Axis2D.row()]; + int rows1 = shape1.get(0); + int cols1 = shape1.get(1); + int rows2 = shape2.get(0); CNumber[] dest = new CNumber[rows1]; ArrayUtils.fill(dest, 0); @@ -978,9 +977,9 @@ public static CNumber[] standardVector(CNumber[] src1, Shape shape1, double[] sr * @return The result of matrix multiplying the two matrices. */ public static CNumber[] blockedVector(CNumber[] src1, Shape shape1, double[] src2, Shape shape2) { - int rows1 = shape1.dims[Axis2D.row()]; - int cols1 = shape1.dims[Axis2D.col()]; - int rows2 = shape2.dims[Axis2D.row()]; + int rows1 = shape1.get(0); + int cols1 = shape1.get(1); + int rows2 = shape2.get(0); CNumber[] dest = new CNumber[rows1]; ArrayUtils.fill(dest, 0); @@ -1021,9 +1020,9 @@ public static CNumber[] blockedVector(CNumber[] src1, Shape shape1, double[] src * @return The result of matrix multiplying the two matrices. */ public static CNumber[] concurrentStandardVector(CNumber[] src1, Shape shape1, double[] src2, Shape shape2) { - int rows1 = shape1.dims[Axis2D.row()]; - int cols1 = shape1.dims[Axis2D.col()]; - int rows2 = shape2.dims[Axis2D.row()]; + int rows1 = shape1.get(0); + int cols1 = shape1.get(1); + int rows2 = shape2.get(0); CNumber[] dest = new CNumber[rows1]; ArrayUtils.fill(dest, 0); @@ -1051,9 +1050,9 @@ public static CNumber[] concurrentStandardVector(CNumber[] src1, Shape shape1, d * @return The result of matrix multiplying the two matrices. */ public static CNumber[] concurrentBlockedVector(CNumber[] src1, Shape shape1, double[] src2, Shape shape2) { - int rows1 = shape1.dims[Axis2D.row()]; - int cols1 = shape1.dims[Axis2D.col()]; - int rows2 = shape2.dims[Axis2D.row()]; + int rows1 = shape1.get(0); + int cols1 = shape1.get(1); + int rows2 = shape2.get(0); CNumber[] dest = new CNumber[rows1]; ArrayUtils.fill(dest, 0); diff --git a/src/main/java/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseMatrixMultTranspose.java b/src/main/java/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseMatrixMultTranspose.java index 6eba2e418..04b195bef 100644 --- a/src/main/java/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseMatrixMultTranspose.java +++ b/src/main/java/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseMatrixMultTranspose.java @@ -27,7 +27,6 @@ import org.flag4j.complex_numbers.CNumber; import org.flag4j.core.Shape; import org.flag4j.util.ArrayUtils; -import org.flag4j.util.Axis2D; import org.flag4j.util.ErrorMessages; @@ -56,9 +55,9 @@ private ComplexDenseSparseMatrixMultTranspose() { */ public static CNumber[] multTranspose(CNumber[] dSrc, Shape dShape, CNumber[] spSrc, int[] rowIndices, int[] colIndices, Shape spShape) { - int rows1 = dShape.dims[Axis2D.row()]; - int rows2 = spShape.dims[Axis2D.row()]; - int cols2 = spShape.dims[Axis2D.col()]; + int rows1 = dShape.get(0); + int rows2 = spShape.get(0); + int cols2 = spShape.get(1); CNumber[] dest = new CNumber[rows1*rows2]; // Since second matrix is transposed, its columns will become rows. ArrayUtils.fillZeros(dest); diff --git a/src/main/java/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseMatrixMultiplication.java b/src/main/java/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseMatrixMultiplication.java index b550597c2..e2bcb884b 100644 --- a/src/main/java/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseMatrixMultiplication.java +++ b/src/main/java/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseMatrixMultiplication.java @@ -29,7 +29,6 @@ import org.flag4j.concurrency.ThreadManager; import org.flag4j.core.Shape; import org.flag4j.util.ArrayUtils; -import org.flag4j.util.Axis2D; import org.flag4j.util.ErrorMessages; /** @@ -58,9 +57,9 @@ private ComplexDenseSparseMatrixMultiplication() { */ public static CNumber[] standard(CNumber[] src1, Shape shape1, CNumber[] src2, int[] rowIndices, int[] colIndices, Shape shape2) { - int rows1 = shape1.dims[Axis2D.row()]; - int cols1 = shape1.dims[Axis2D.col()]; - int cols2 = shape2.dims[Axis2D.col()]; + int rows1 = shape1.get(0); + int cols1 = shape1.get(1); + int cols2 = shape2.get(1); CNumber[] dest = new CNumber[rows1*cols2]; ArrayUtils.fillZeros(dest); @@ -94,8 +93,8 @@ public static CNumber[] standard(CNumber[] src1, Shape shape1, CNumber[] src2, */ public static CNumber[] standard(CNumber[] src1, int[] rowIndices, int[] colIndices, Shape shape1, CNumber[] src2, Shape shape2) { - int rows1 = shape1.dims[Axis2D.row()]; - int cols2 = shape2.dims[Axis2D.col()]; + int rows1 = shape1.get(0); + int cols2 = shape2.get(1); CNumber[] dest = new CNumber[rows1*cols2]; ArrayUtils.fillZeros(dest); // Initialize to zeros @@ -127,9 +126,9 @@ public static CNumber[] standard(CNumber[] src1, int[] rowIndices, int[] colIndi */ public static CNumber[] concurrentStandard(CNumber[] src1, Shape shape1, CNumber[] src2, int[] rowIndices, int[] colIndices, Shape shape2) { - int rows1 = shape1.dims[Axis2D.row()]; - int cols1 = shape1.dims[Axis2D.col()]; - int cols2 = shape2.dims[Axis2D.col()]; + int rows1 = shape1.get(0); + int cols1 = shape1.get(1); + int cols2 = shape2.get(1); CNumber[] dest = new CNumber[rows1*cols2]; ArrayUtils.fillZeros(dest); // Initialize to zeros @@ -165,8 +164,8 @@ public static CNumber[] concurrentStandard(CNumber[] src1, Shape shape1, CNumber */ public static CNumber[] concurrentStandard(CNumber[] src1, int[] rowIndices, int[] colIndices, Shape shape1, CNumber[] src2, Shape shape2) { - int rows1 = shape1.dims[Axis2D.row()]; - int cols2 = shape2.dims[Axis2D.col()]; + int rows1 = shape1.get(0); + int cols2 = shape2.get(1); CNumber[] dest = new CNumber[rows1*cols2]; ArrayUtils.fillZeros(dest); // Initialize to zeros @@ -199,8 +198,8 @@ public static CNumber[] concurrentStandard(CNumber[] src1, int[] rowIndices, int * @return Entries of the dense matrix resulting from the matrix vector multiplication. */ public static CNumber[] standardVector(CNumber[] src1, Shape shape1, CNumber[] src2, int[] indices) { - int denseRows = shape1.dims[Axis2D.row()]; - int denseCols = shape1.dims[Axis2D.col()]; + int denseRows = shape1.get(0); + int denseCols = shape1.get(1); int nonZeros = src2.length; CNumber[] dest = new CNumber[denseRows]; @@ -231,7 +230,7 @@ public static CNumber[] standardVector(CNumber[] src1, Shape shape1, CNumber[] s */ public static CNumber[] standardVector(CNumber[] src1, int[] rowIndices, int[] colIndices, Shape shape1, CNumber[] src2, Shape shape2) { - int rows1 = shape1.dims[Axis2D.row()]; + int rows1 = shape1.get(0); CNumber[] dest = new CNumber[rows1]; ArrayUtils.fillZeros(dest); // Initialize to zeros @@ -257,8 +256,8 @@ public static CNumber[] standardVector(CNumber[] src1, int[] rowIndices, int[] c * @return Entries of the dense matrix resulting from the matrix vector multiplication. */ public static CNumber[] blockedVector(CNumber[] src1, Shape shape1, CNumber[] src2, int[] indices) { - int rows1 = shape1.dims[Axis2D.row()]; - int cols1 = shape1.dims[Axis2D.col()]; + int rows1 = shape1.get(0); + int cols1 = shape1.get(1); int rows2 = src2.length; int bsize = Configurations.getBlockSize(); // Get the block size to use. @@ -293,8 +292,8 @@ public static CNumber[] blockedVector(CNumber[] src1, Shape shape1, CNumber[] sr * @return Entries of the dense matrix resulting from the matrix vector multiplication. */ public static CNumber[] concurrentStandardVector(CNumber[] src1, Shape shape1, CNumber[] src2, int[] indices) { - int rows1 = shape1.dims[Axis2D.row()]; - int cols1 = shape1.dims[Axis2D.col()]; + int rows1 = shape1.get(0); + int cols1 = shape1.get(1); int rows2 = src2.length; CNumber[] dest = new CNumber[rows1]; @@ -323,7 +322,7 @@ public static CNumber[] concurrentStandardVector(CNumber[] src1, Shape shape1, C */ public static CNumber[] concurrentStandardVector(CNumber[] src1, int[] rowIndices, int[] colIndices, Shape shape1, CNumber[] src2, Shape shape2) { - int rows1 = shape1.dims[Axis2D.row()]; + int rows1 = shape1.get(0); CNumber[] dest = new CNumber[rows1]; ArrayUtils.fillZeros(dest); // Initialize to zeros @@ -351,8 +350,8 @@ public static CNumber[] concurrentStandardVector(CNumber[] src1, int[] rowIndice * @return Entries of the dense matrix resulting from the matrix vector multiplication. */ public static CNumber[] concurrentBlockedVector(CNumber[] src1, Shape shape1, CNumber[] src2, int[] indices) { - int rows1 = shape1.dims[Axis2D.row()]; - int cols1 = shape1.dims[Axis2D.col()]; + int rows1 = shape1.get(0); + int cols1 = shape1.get(1); int rows2 = src2.length; final int bsize = Configurations.getBlockSize(); // Get the block size to use. diff --git a/src/main/java/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseMatrixOperations.java b/src/main/java/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseMatrixOperations.java index 58dd9d5c1..cdc649943 100644 --- a/src/main/java/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseMatrixOperations.java +++ b/src/main/java/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseMatrixOperations.java @@ -100,7 +100,7 @@ public static CMatrix sub(CooCMatrix src2, CMatrix src1) { ParameterChecks.assertEqualShape(src1.shape, src2.shape); int row, col; - CMatrix dest = new CMatrix(src1.shape.copy(), ComplexOperations.scalMult(src1.entries, -1)); + CMatrix dest = new CMatrix(src1.shape, ComplexOperations.scalMult(src1.entries, -1)); for(int i=0; i destAtomic = new AtomicReferenceArray<>(rows1 * cols2); @@ -249,8 +248,8 @@ public static double[] concurrentAtomicArray(double[] src1, int[] rowIndices1, i * @return Entries of the dense matrix resulting from the matrix vector multiplication. */ public static double[] standardVector(double[] src1, Shape shape1, double[] src2, int[] indices) { - int denseRows = shape1.dims[Axis2D.row()]; - int denseCols = shape1.dims[Axis2D.col()]; + int denseRows = shape1.get(0); + int denseCols = shape1.get(1); int nonZeros = src2.length; double[] dest = new double[denseRows]; @@ -279,7 +278,7 @@ public static double[] standardVector(double[] src1, Shape shape1, double[] src2 */ public static double[] standardVector(double[] src1, int[] rowIndices, int[] colIndices, Shape shape1, double[] src2, Shape shape2) { - int rows1 = shape1.dims[Axis2D.row()]; + int rows1 = shape1.get(0); double[] dest = new double[rows1]; int row, col; @@ -303,8 +302,8 @@ public static double[] standardVector(double[] src1, int[] rowIndices, int[] col * @return Entries of the dense matrix resulting from the matrix vector multiplication. */ public static double[] blockedVector(double[] src1, Shape shape1, double[] src2, int[] indices) { - int rows1 = shape1.dims[Axis2D.row()]; - int cols1 = shape1.dims[Axis2D.col()]; + int rows1 = shape1.get(0); + int cols1 = shape1.get(1); int rows2 = src2.length; int bsize = Configurations.getBlockSize(); // Get the block size to use. @@ -338,8 +337,8 @@ public static double[] blockedVector(double[] src1, Shape shape1, double[] src2, * @return Entries of the dense matrix resulting from the matrix vector multiplication. */ public static double[] concurrentStandardVector(double[] src1, Shape shape1, double[] src2, int[] indices) { - int rows1 = shape1.dims[Axis2D.row()]; - int cols1 = shape1.dims[Axis2D.col()]; + int rows1 = shape1.get(0); + int cols1 = shape1.get(1); int rows2 = src2.length; double[] dest = new double[rows1]; @@ -367,7 +366,7 @@ public static double[] concurrentStandardVector(double[] src1, Shape shape1, dou */ public static double[] concurrentStandardVector(double[] src1, int[] rowIndices, int[] colIndices, Shape shape1, double[] src2, Shape shape2) { - int rows1 = shape1.dims[Axis2D.row()]; + int rows1 = shape1.get(0); double[] dest = new double[rows1]; ThreadManager.concurrentLoop(0, src1.length, (i) -> { @@ -394,8 +393,8 @@ public static double[] concurrentStandardVector(double[] src1, int[] rowIndices, * @return Entries of the dense matrix resulting from the matrix vector multiplication. */ public static double[] concurrentBlockedVector(double[] src1, Shape shape1, double[] src2, int[] indices) { - int rows1 = shape1.dims[Axis2D.row()]; - int cols1 = shape1.dims[Axis2D.col()]; + int rows1 = shape1.get(0); + int cols1 = shape1.get(1); int rows2 = src2.length; final int bsize = Configurations.getBlockSize(); // Get the block size to use. diff --git a/src/main/java/org/flag4j/operations/dense_sparse/coo/real/RealDenseSparseMatrixOperations.java b/src/main/java/org/flag4j/operations/dense_sparse/coo/real/RealDenseSparseMatrixOperations.java index 4221917ea..ba639ed19 100644 --- a/src/main/java/org/flag4j/operations/dense_sparse/coo/real/RealDenseSparseMatrixOperations.java +++ b/src/main/java/org/flag4j/operations/dense_sparse/coo/real/RealDenseSparseMatrixOperations.java @@ -100,7 +100,7 @@ public static Matrix sub(CooMatrix src2, Matrix src1) { ParameterChecks.assertEqualShape(src1.shape, src2.shape); int row, col; - Matrix dest = new Matrix(src1.shape.copy(), RealOperations.scalMult(src1.entries, -1)); + Matrix dest = new Matrix(src1.shape, RealOperations.scalMult(src1.entries, -1)); for(int i=0; i destEntries, List des } CooMatrix dest = new CooMatrix( - src.shape.copy(), + src.shape, destEntries, destRowIndices, destColIndices @@ -299,7 +299,7 @@ public static CooMatrix setSlice(CooMatrix src, CooMatrix values, int row, int c copyValuesNotInSlice(src, entries, rowIndices, colIndices, rowRange, colRange); // Create matrix and ensure entries are properly sorted. - CooMatrix mat = new CooMatrix(src.shape.copy(), entries, rowIndices, colIndices); + CooMatrix mat = new CooMatrix(src.shape, entries, rowIndices, colIndices); mat.sortIndices(); return mat; @@ -463,7 +463,7 @@ private static CooMatrix setSlice(CooMatrix src, double[] values, int numRows, i copyValuesNotInSlice(src, entries, rowIndices, colIndices, rowRange, colRange); // Create matrix and ensure entries are properly sorted. - CooMatrix mat = new CooMatrix(src.shape.copy(), entries, rowIndices, colIndices); + CooMatrix mat = new CooMatrix(src.shape, entries, rowIndices, colIndices); mat.sortIndices(); return mat; diff --git a/src/main/java/org/flag4j/operations/sparse/coo/real/RealSparseMatrixMultiplication.java b/src/main/java/org/flag4j/operations/sparse/coo/real/RealSparseMatrixMultiplication.java index 155c831e0..8bcccf3db 100644 --- a/src/main/java/org/flag4j/operations/sparse/coo/real/RealSparseMatrixMultiplication.java +++ b/src/main/java/org/flag4j/operations/sparse/coo/real/RealSparseMatrixMultiplication.java @@ -61,8 +61,8 @@ private RealSparseMatrixMultiplication() { */ public static double[] standard(double[] src1, int[] rowIndices1, int[] colIndices1, Shape shape1, double[] src2, int[] rowIndices2, int[] colIndices2, Shape shape2) { - int rows1 = shape1.dims[0]; - int cols2 = shape2.dims[1]; + int rows1 = shape1.get(0); + int cols2 = shape2.get(1); double[] dest = new double[rows1*cols2]; @@ -107,8 +107,8 @@ public static double[] standard(double[] src1, int[] rowIndices1, int[] colIndic */ public static double[] concurrentStandard(double[] src1, int[] rowIndices1, int[] colIndices1, Shape shape1, double[] src2, int[] rowIndices2, int[] colIndices2, Shape shape2) { - int rows1 = shape1.dims[0]; - int cols2 = shape2.dims[1]; + int rows1 = shape1.get(0); + int cols2 = shape2.get(1); double[] dest = new double[rows1*cols2]; ConcurrentMap destMap = new ConcurrentHashMap<>(); @@ -156,7 +156,7 @@ public static double[] concurrentStandard(double[] src1, int[] rowIndices1, int[ */ public static double[] standardVector(double[] src1, int[] rowIndices1, int[] colIndices1, Shape shape1, double[] src2, int[] indices) { - int rows1 = shape1.dims[0]; + int rows1 = shape1.get(0); double[] dest = new double[rows1]; // r1, c1, r2, and store the indices for non-zero values in src1 and src2. @@ -192,7 +192,7 @@ public static double[] standardVector(double[] src1, int[] rowIndices1, int[] co */ public static double[] concurrentStandardVector(double[] src1, int[] rowIndices1, int[] colIndices1, Shape shape1, double[] src2, int[] indices) { - int rows1 = shape1.dims[0]; + int rows1 = shape1.get(0); double[] dest = new double[rows1]; ThreadManager.concurrentLoop(0, src1.length, (i) -> { diff --git a/src/main/java/org/flag4j/operations/sparse/coo/real/RealSparseMatrixOperations.java b/src/main/java/org/flag4j/operations/sparse/coo/real/RealSparseMatrixOperations.java index 6764a24e0..35143a1ab 100644 --- a/src/main/java/org/flag4j/operations/sparse/coo/real/RealSparseMatrixOperations.java +++ b/src/main/java/org/flag4j/operations/sparse/coo/real/RealSparseMatrixOperations.java @@ -138,7 +138,7 @@ public static Matrix add(CooMatrix src, double a) { sum[row*src.numCols + col] += src.entries[i]; } - return new Matrix(src.shape.copy(), sum); + return new Matrix(src.shape, sum); } @@ -234,7 +234,7 @@ public static Matrix sub(CooMatrix src, double a) { sum[row*src.numCols + col] += src.entries[i]; } - return new Matrix(src.shape.copy(), sum); + return new Matrix(src.shape, sum); } @@ -319,7 +319,7 @@ public static Matrix addToEachCol(CooMatrix src, CooVector col) { } } - return new Matrix(src.shape.copy(), destEntries); + return new Matrix(src.shape, destEntries); } @@ -350,6 +350,6 @@ public static Matrix addToEachRow(CooMatrix src, CooVector row) { } } - return new Matrix(src.shape.copy(), destEntries); + return new Matrix(src.shape, destEntries); } } diff --git a/src/main/java/org/flag4j/operations/sparse/coo/real_complex/RealComplexSparseMatrixMultiplication.java b/src/main/java/org/flag4j/operations/sparse/coo/real_complex/RealComplexSparseMatrixMultiplication.java index 2194f7db0..f01856dae 100644 --- a/src/main/java/org/flag4j/operations/sparse/coo/real_complex/RealComplexSparseMatrixMultiplication.java +++ b/src/main/java/org/flag4j/operations/sparse/coo/real_complex/RealComplexSparseMatrixMultiplication.java @@ -64,8 +64,8 @@ private RealComplexSparseMatrixMultiplication() { */ public static CNumber[] standard(CNumber[] src1, int[] rowIndices1, int[] colIndices1, Shape shape1, double[] src2, int[] rowIndices2, int[] colIndices2, Shape shape2) { - int rows1 = shape1.dims[0]; - int cols2 = shape2.dims[1]; + int rows1 = shape1.get(0); + int cols2 = shape2.get(1); CNumber[] dest = new CNumber[rows1*cols2]; ArrayUtils.fillZeros(dest); @@ -108,8 +108,8 @@ public static CNumber[] standard(CNumber[] src1, int[] rowIndices1, int[] colInd */ public static CNumber[] concurrentStandard(CNumber[] src1, int[] rowIndices1, int[] colIndices1, Shape shape1, double[] src2, int[] rowIndices2, int[] colIndices2, Shape shape2) { - int rows1 = shape1.dims[0]; - int cols2 = shape2.dims[1]; + int rows1 = shape1.get(0); + int cols2 = shape2.get(1); CNumber[] dest = new CNumber[rows1*cols2]; ArrayUtils.fillZeros(dest); @@ -157,8 +157,8 @@ public static CNumber[] concurrentStandard(CNumber[] src1, int[] rowIndices1, in public static CNumber[] standardVector(CNumber[] src1, int[] rowIndices1, int[] colIndices1, Shape shape1, double[] src2, int[] indices, Shape shape2) { - int rows1 = shape1.dims[0]; - int cols2 = shape2.dims[1]; + int rows1 = shape1.get(0); + int cols2 = shape2.get(1); CNumber[] dest = new CNumber[rows1*cols2]; ArrayUtils.fillZeros(dest); @@ -198,8 +198,8 @@ public static CNumber[] standardVector(CNumber[] src1, int[] rowIndices1, int[] public static CNumber[] concurrentStandardVector(CNumber[] src1, int[] rowIndices1, int[] colIndices1, Shape shape1, double[] src2, int[] indices, Shape shape2) { - int rows1 = shape1.dims[0]; - int cols2 = shape2.dims[1]; + int rows1 = shape1.get(0); + int cols2 = shape2.get(1); CNumber[] dest = new CNumber[rows1*cols2]; ArrayUtils.fillZeros(dest); @@ -239,8 +239,8 @@ public static CNumber[] concurrentStandardVector(CNumber[] src1, int[] rowIndice */ public static CNumber[] standard(double[] src1, int[] rowIndices1, int[] colIndices1, Shape shape1, CNumber[] src2, int[] rowIndices2, int[] colIndices2, Shape shape2) { - int rows1 = shape1.dims[0]; - int cols2 = shape2.dims[1]; + int rows1 = shape1.get(0); + int cols2 = shape2.get(1); CNumber[] dest = new CNumber[rows1*cols2]; ArrayUtils.fillZeros(dest); @@ -283,8 +283,8 @@ public static CNumber[] standard(double[] src1, int[] rowIndices1, int[] colIndi */ public static CNumber[] concurrentStandard(double[] src1, int[] rowIndices1, int[] colIndices1, Shape shape1, CNumber[] src2, int[] rowIndices2, int[] colIndices2, Shape shape2) { - int rows1 = shape1.dims[0]; - int cols2 = shape2.dims[1]; + int rows1 = shape1.get(0); + int cols2 = shape2.get(1); CNumber[] dest = new CNumber[rows1*cols2]; ArrayUtils.fillZeros(dest); @@ -332,8 +332,8 @@ public static CNumber[] concurrentStandard(double[] src1, int[] rowIndices1, int public static CNumber[] standardVector(double[] src1, int[] rowIndices1, int[] colIndices1, Shape shape1, CNumber[] src2, int[] indices, Shape shape2) { - int rows1 = shape1.dims[0]; - int cols2 = shape2.dims[1]; + int rows1 = shape1.get(0); + int cols2 = shape2.get(1); CNumber[] dest = new CNumber[rows1*cols2]; ArrayUtils.fillZeros(dest); @@ -373,8 +373,8 @@ public static CNumber[] standardVector(double[] src1, int[] rowIndices1, int[] c public static CNumber[] concurrentStandardVector(double[] src1, int[] rowIndices1, int[] colIndices1, Shape shape1, CNumber[] src2, int[] indices, Shape shape2) { - int rows1 = shape1.dims[0]; - int cols2 = shape2.dims[1]; + int rows1 = shape1.get(0); + int cols2 = shape2.get(1); CNumber[] dest = new CNumber[rows1*cols2]; ArrayUtils.fillZeros(dest); diff --git a/src/main/java/org/flag4j/operations/sparse/coo/real_complex/RealComplexSparseMatrixOperations.java b/src/main/java/org/flag4j/operations/sparse/coo/real_complex/RealComplexSparseMatrixOperations.java index e6fc07c08..784c0678b 100644 --- a/src/main/java/org/flag4j/operations/sparse/coo/real_complex/RealComplexSparseMatrixOperations.java +++ b/src/main/java/org/flag4j/operations/sparse/coo/real_complex/RealComplexSparseMatrixOperations.java @@ -141,7 +141,7 @@ public static CMatrix add(CooCMatrix src, double a) { sum[row*src.numCols + col] = src.entries[i]; } - return new CMatrix(src.shape.copy(), sum); + return new CMatrix(src.shape, sum); } @@ -166,7 +166,7 @@ public static CMatrix add(CooMatrix src, CNumber a) { sum[row*src.numCols + col].addEq(src.entries[i]); } - return new CMatrix(src.shape.copy(), sum); + return new CMatrix(src.shape, sum); } @@ -418,7 +418,7 @@ public static CMatrix addToEachCol(CooMatrix src, CooCVector col) { } } - return new CMatrix(src.shape.copy(), destEntries); + return new CMatrix(src.shape, destEntries); } @@ -449,7 +449,7 @@ public static CMatrix addToEachRow(CooMatrix src, CooCVector row) { } } - return new CMatrix(src.shape.copy(), destEntries); + return new CMatrix(src.shape, destEntries); } diff --git a/src/main/java/org/flag4j/operations/sparse/csr/complex/ComplexCsrOperations.java b/src/main/java/org/flag4j/operations/sparse/csr/complex/ComplexCsrOperations.java index 8ffc951dc..779af2981 100644 --- a/src/main/java/org/flag4j/operations/sparse/csr/complex/ComplexCsrOperations.java +++ b/src/main/java/org/flag4j/operations/sparse/csr/complex/ComplexCsrOperations.java @@ -242,7 +242,7 @@ public static CsrCMatrix applyBinOpp(CsrCMatrix src1, CsrCMatrix src2, rowPointers[i] += rowPointers[i-1]; } - return new CsrCMatrix(src1.shape.copy(), + return new CsrCMatrix(src1.shape, ArrayUtils.fromList(dest, new CNumber[dest.size()]), rowPointers, ArrayUtils.fromIntegerList(colIndices) diff --git a/src/main/java/org/flag4j/operations/sparse/csr/real/RealCsrOperations.java b/src/main/java/org/flag4j/operations/sparse/csr/real/RealCsrOperations.java index e668b24fe..dccecce28 100644 --- a/src/main/java/org/flag4j/operations/sparse/csr/real/RealCsrOperations.java +++ b/src/main/java/org/flag4j/operations/sparse/csr/real/RealCsrOperations.java @@ -129,7 +129,7 @@ public static CsrMatrix applyBinOpp(CsrMatrix src1, CsrMatrix src2, rowPointers[i] += rowPointers[i-1]; } - return new CsrMatrix(src1.shape.copy(), + return new CsrMatrix(src1.shape, ArrayUtils.fromDoubleList(dest), rowPointers, ArrayUtils.fromIntegerList(colIndices) diff --git a/src/main/java/org/flag4j/operations/sparse/csr/real_complex/RealComplexCsrOperations.java b/src/main/java/org/flag4j/operations/sparse/csr/real_complex/RealComplexCsrOperations.java index 491ef578e..3716d3d82 100644 --- a/src/main/java/org/flag4j/operations/sparse/csr/real_complex/RealComplexCsrOperations.java +++ b/src/main/java/org/flag4j/operations/sparse/csr/real_complex/RealComplexCsrOperations.java @@ -123,7 +123,7 @@ public static CsrCMatrix applyBinOpp(CsrMatrix src1, CsrCMatrix src2, rowPointers[i] += rowPointers[i-1]; } - return new CsrCMatrix(src1.shape.copy(), + return new CsrCMatrix(src1.shape, dest.toArray(CNumber[]::new), rowPointers, ArrayUtils.fromIntegerList(colIndices) @@ -207,7 +207,7 @@ public static CsrCMatrix applyBinOpp(CsrCMatrix src1, CsrMatrix src2, rowPointers[i] += rowPointers[i-1]; } - return new CsrCMatrix(src1.shape.copy(), + return new CsrCMatrix(src1.shape, dest.toArray(CNumber[]::new), rowPointers, ArrayUtils.fromIntegerList(colIndices) @@ -254,7 +254,7 @@ public static CsrCMatrix elemMult(CsrCMatrix src1, CsrMatrix src2) { rowPointers[i] += rowPointers[i-1]; } - return new CsrCMatrix(src1.shape.copy(), + return new CsrCMatrix(src1.shape, dest.toArray(CNumber[]::new), rowPointers, ArrayUtils.fromIntegerList(colIndices) diff --git a/src/main/java/org/flag4j/util/ParameterChecks.java b/src/main/java/org/flag4j/util/ParameterChecks.java index cc3b4c409..adeadc2cc 100644 --- a/src/main/java/org/flag4j/util/ParameterChecks.java +++ b/src/main/java/org/flag4j/util/ParameterChecks.java @@ -66,7 +66,7 @@ public static void assertEqualShape(Shape shape1, Shape shape2) { public static void assertMatMultShapes(Shape shape1, Shape shape2) { if(shape1.getRank() != 2 || shape2.getRank() != 2 - || shape1.dims[1] != shape2.dims[0]) { + || shape1.get(1) != shape2.get(0)) { throw new LinearAlgebraException( ErrorMessages.matMultShapeErrMsg(shape1, shape2) ); @@ -390,7 +390,7 @@ public static void assertNonNegative(int value) { * @throws LinearAlgebraException If the shape is not of rank 2 with equal rows and columns. */ public static void assertSquareMatrix(Shape shape) { - if(shape.dims.length!=2 || shape.dims[0]!=shape.dims[1]) { + if(shape.getRank()!=2 || shape.get(0)!=shape.get(1)) { throw new LinearAlgebraException(ErrorMessages.getSquareShapeErr(shape)); } } @@ -402,7 +402,7 @@ public static void assertSquareMatrix(Shape shape) { * @throws IllegalArgumentException If all axis of the shape are not the same length. */ public static void assertSquare(Shape shape) { - ParameterChecks.assertEquals(shape.dims); + ParameterChecks.assertEquals(shape.getDims()); } @@ -508,16 +508,16 @@ public static void assertIndexInBounds(int upperBound, int... indices) { * of the specified {@code shape}. */ public static void assertValidIndex(Shape shape, int... indices) { - if(shape.dims.length != indices.length) { - throw new IndexOutOfBoundsException("Expected " + shape.dims.length + if(shape.getRank() != indices.length) { + throw new IndexOutOfBoundsException("Expected " + shape.getRank() + " indices but got " + indices.length + "."); } for(int i=0; i= shape.dims[i]) { + if(indices[i] < 0 || indices[i] >= shape.get(i)) { String errMsg = indices[i]<0 ? "Index " + i + " is out of bounds for lower bound of 0" : - "Index " + i + " is out of bounds for upper bound of " + shape.dims[i] + "."; + "Index " + i + " is out of bounds for upper bound of " + shape.get(i) + "."; throw new IndexOutOfBoundsException(errMsg); } diff --git a/src/test/java/org/flag4j/ShapeTests.java b/src/test/java/org/flag4j/ShapeTests.java index b9f2bd780..1b5e4ac32 100644 --- a/src/test/java/org/flag4j/ShapeTests.java +++ b/src/test/java/org/flag4j/ShapeTests.java @@ -179,29 +179,29 @@ void entriesIndexTestCase() { void swapAxesTestCase() { // -------------- Sub-case 1 -------------- shape1 = new Shape(true,4, 2, 3); - shape1.swapAxes(0, 1); + shape2 = shape1.swapAxes(0, 1); expDims1 = new int[]{2, 4, 3}; expStrides = new int[]{12, 3, 1}; - assertArrayEquals(expDims1, shape1.dims); - assertArrayEquals(expStrides, shape1.getStrides()); + assertArrayEquals(expDims1, shape2.getDims()); + assertArrayEquals(expStrides, shape2.getStrides()); // -------------- Sub-case 2 -------------- shape1 = new Shape(true,4, 2, 3); - shape1.swapAxes(1, 0); + shape2 = shape1.swapAxes(1, 0); expDims1 = new int[]{2, 4, 3}; expStrides = new int[]{12, 3, 1}; - assertArrayEquals(expDims1, shape1.dims); - assertArrayEquals(expStrides, shape1.getStrides()); + assertArrayEquals(expDims1, shape2.getDims()); + assertArrayEquals(expStrides, shape2.getStrides()); // -------------- Sub-case 3 -------------- shape1 = new Shape(true,4, 2, 3); - shape1.swapAxes(0, 2); + shape2 = shape1.swapAxes(0, 2); expDims1 = new int[]{3, 2, 4}; expStrides = new int[]{8, 4, 1}; - assertArrayEquals(expDims1, shape1.dims); - assertArrayEquals(expStrides, shape1.getStrides()); + assertArrayEquals(expDims1, shape2.getDims()); + assertArrayEquals(expStrides, shape2.getStrides()); } } diff --git a/src/test/java/org/flag4j/complex_matrix/CMatrixElemMultTests.java b/src/test/java/org/flag4j/complex_matrix/CMatrixElemMultTests.java index 0f02ba952..011567baf 100644 --- a/src/test/java/org/flag4j/complex_matrix/CMatrixElemMultTests.java +++ b/src/test/java/org/flag4j/complex_matrix/CMatrixElemMultTests.java @@ -122,7 +122,7 @@ void sparseRealTestCase() { bEntries = new double[]{1.34, -994.1, 34.5}; rowIndices = new int[]{0, 2, 3}; colIndies = new int[]{1, 1, 0}; - sparseShape = new Shape(A.shape); + sparseShape = A.shape; B = new CooMatrix(sparseShape, bEntries, rowIndices, colIndies); expEntries = new CNumber[][]{{new CNumber("0.0"), new CNumber("60.568000000000005-0.04462200000000001i"), new CNumber("0.0")}, {new CNumber("0.0"), new CNumber("0.0"), new CNumber("0.0")}, @@ -164,7 +164,7 @@ void sparseComplexTestCase() { bEntries = new CNumber[]{new CNumber(345.6, 94.1), new CNumber(-9.4, 34), new CNumber(4.4)}; rowIndices = new int[]{0, 2, 3}; colIndies = new int[]{1, 1, 0}; - sparseShape = new Shape(A.shape); + sparseShape = A.shape; B = new CooCMatrix(sparseShape, bEntries, rowIndices, colIndies); expEntries = new CNumber[][]{{new CNumber("0.0"), new CNumber("15624.253530000002+4241.811519999999i"), new CNumber("0.0")}, {new CNumber("0.0"), new CNumber("0.0"), new CNumber("0.0")}, diff --git a/src/test/java/org/flag4j/complex_matrix/CMatrixReshapeTests.java b/src/test/java/org/flag4j/complex_matrix/CMatrixReshapeTests.java index d287b6120..242a58df5 100644 --- a/src/test/java/org/flag4j/complex_matrix/CMatrixReshapeTests.java +++ b/src/test/java/org/flag4j/complex_matrix/CMatrixReshapeTests.java @@ -23,25 +23,25 @@ class CMatrixReshapeTests { void reshapeTestCase() { // --------------- Sub-case 1 --------------- expShape = new Shape(4, 3); - B = A.reshape(expShape.copy()); + B = A.reshape(expShape); assertEquals(expShape, B.shape); assertArrayEquals(A.entries, B.entries); // --------------- Sub-case 2 --------------- expShape = new Shape(1, 12); - B = A.reshape(expShape.copy()); + B = A.reshape(expShape); assertEquals(expShape, B.shape); assertArrayEquals(A.entries, B.entries); // --------------- Sub-case 3 --------------- expShape = new Shape(2, 6); - B = A.reshape(expShape.copy()); + B = A.reshape(expShape); assertEquals(expShape, B.shape); assertArrayEquals(A.entries, B.entries); // --------------- Sub-case 4 --------------- expShape = new Shape(6, 2); - B = A.reshape(expShape.copy()); + B = A.reshape(expShape); assertEquals(expShape, B.shape); assertArrayEquals(A.entries, B.entries); diff --git a/src/test/java/org/flag4j/complex_matrix/CMatrixToStringTests.java b/src/test/java/org/flag4j/complex_matrix/CMatrixToStringTests.java index 95980a6a0..e273d296a 100644 --- a/src/test/java/org/flag4j/complex_matrix/CMatrixToStringTests.java +++ b/src/test/java/org/flag4j/complex_matrix/CMatrixToStringTests.java @@ -96,7 +96,7 @@ void toStringTestCase() { PrintOptions.setMaxRows(1); PrintOptions.setMaxColumns(4); PrintOptions.setCentering(true); - exp = "Full Shape: 2x4\n" + + exp = "Full Shape: (2, 4)\n" + "[ [ ... ]\n" + " [ 56.25 0 -1.45i -3.36 - 84.25i ]]"; @@ -114,7 +114,7 @@ void toStringTestCase() { PrintOptions.setMaxRows(2); PrintOptions.setMaxColumns(3); PrintOptions.setCentering(true); - exp = "Full Shape: 2x4\n" + + exp = "Full Shape: (2, 4)\n" + "[[ 2 + 4.25i 0 ... 1.26 ]\n" + " [ 56.25 0 ... -3.36 - 84.25i ]]"; @@ -132,7 +132,7 @@ void toStringTestCase() { PrintOptions.setMaxRows(2); PrintOptions.setMaxColumns(2); PrintOptions.setCentering(true); - exp = "Full Shape: 2x4\n" + + exp = "Full Shape: (2, 4)\n" + "[[ 2 + 4.25i ... 1.26 ]\n" + " [ 56.25 ... -3.36 - 84.25i ]]"; diff --git a/src/test/java/org/flag4j/complex_sparse_matrix/CooCMatrixToStringTests.java b/src/test/java/org/flag4j/complex_sparse_matrix/CooCMatrixToStringTests.java index f219791f1..f5cd1c2c0 100644 --- a/src/test/java/org/flag4j/complex_sparse_matrix/CooCMatrixToStringTests.java +++ b/src/test/java/org/flag4j/complex_sparse_matrix/CooCMatrixToStringTests.java @@ -26,7 +26,7 @@ void toStringTest() { aColIndices = new int[]{2, 0, 0}; a = new CooCMatrix(aShape, aEntries, aRowIndices, aColIndices); - exp = "Full Shape: 5x3\n" + + exp = "Full Shape: (5, 3)\n" + "Non-zero entries: [ 0.39424 + 0.26881i 0.31325 + 0.34679i 0.30908 + 0.33655i ]\n" + "Row Indices: [2, 3, 4]\n" + "Col Indices: [2, 0, 0]"; @@ -40,7 +40,7 @@ void toStringTest() { aColIndices = new int[]{12, 9, 12, 5, 12}; a = new CooCMatrix(aShape, aEntries, aRowIndices, aColIndices); - exp = "Full Shape: 11x23\n" + + exp = "Full Shape: (11, 23)\n" + "Non-zero entries: [ 0.30062 + 0.9497i 0.77614 + 0.28477i 0.35101 + 0.73127i 0.67145 + 0.68637i 0.05538 + 0.33924i ]\n" + "Row Indices: [5, 6, 7, 8, 10]\n" + "Col Indices: [12, 9, 12, 5, 12]"; @@ -54,7 +54,7 @@ void toStringTest() { aColIndices = new int[]{736, 52, 123, 160, 180, 857, 868, 149, 899}; a = new CooCMatrix(aShape, aEntries, aRowIndices, aColIndices); - exp = "Full Shape: 5x1000\n" + + exp = "Full Shape: (5, 1000)\n" + "Non-zero entries: [ 0.30698 + 0.99159i 0.76603 + 0.52838i 0.06296 + 0.54306i 0.43915 + 8.2E-4i 0.1874 + 0.22538i 0.61855 + 0.69555i 0.97349 + 0.45167i 0.02954 + 0.5185i 0.8994 + 0.8395i ]\n" + "Row Indices: [0, 1, 1, 1, 2, 2, 2, 4, 4]\n" + "Col Indices: [736, 52, 123, 160, 180, 857, 868, 149, 899]"; @@ -68,7 +68,7 @@ void toStringTest() { aColIndices = new int[]{1, 4, 2, 3}; a = new CooCMatrix(aShape, aEntries, aRowIndices, aColIndices); - exp = "Full Shape: 3x5\n" + + exp = "Full Shape: (3, 5)\n" + "Non-zero entries: [ 0.24821 + 0.41705i 0.22593 + 0.12134i 0.37857 + 0.33477i 0.56466 + 0.78808i ]\n" + "Row Indices: [0, 0, 2, 2]\n" + "Col Indices: [1, 4, 2, 3]"; @@ -82,7 +82,7 @@ void toStringTest() { aColIndices = new int[]{2, 4, 0, 3}; a = new CooCMatrix(aShape, aEntries, aRowIndices, aColIndices); - exp = "Full Shape: 3x5\n" + + exp = "Full Shape: (3, 5)\n" + "Non-zero entries: [ 0.95154 + 0.27456i 0.84541 + 0.49608i 0.93666 + 0.20043i 0.65039 + 0.91006i ]\n" + "Row Indices: [0, 0, 2, 2]\n" + "Col Indices: [2, 4, 0, 3]"; @@ -96,7 +96,7 @@ void toStringTest() { aColIndices = new int[]{1, 0, 3, 4}; a = new CooCMatrix(aShape, aEntries, aRowIndices, aColIndices); - exp = "Full Shape: 3x5\n" + + exp = "Full Shape: (3, 5)\n" + "Non-zero entries: [ 0.44621 + 0.47313i 0.93299 + 0.88628i 0.6173 + 0.07362i 0.13546 + 0.15639i ]\n" + "Row Indices: [0, 1, 1, 2]\n" + "Col Indices: [1, 0, 3, 4]"; @@ -110,7 +110,7 @@ void toStringTest() { aColIndices = new int[]{0, 4, 2, 3}; a = new CooCMatrix(aShape, aEntries, aRowIndices, aColIndices); - exp = "Full Shape: 3x5\n" + + exp = "Full Shape: (3, 5)\n" + "Non-zero entries: [ 0.38658 + 0.18229i 0.17275 + 0.79699i 0.08104 + 0.6007i 0.31236 + 0.92982i ]\n" + "Row Indices: [0, 0, 1, 1]\n" + "Col Indices: [0, 4, 2, 3]"; diff --git a/src/test/java/org/flag4j/complex_tensor/CTensorConversionTests.java b/src/test/java/org/flag4j/complex_tensor/CTensorConversionTests.java index 4c0182d4a..70d30a4dc 100644 --- a/src/test/java/org/flag4j/complex_tensor/CTensorConversionTests.java +++ b/src/test/java/org/flag4j/complex_tensor/CTensorConversionTests.java @@ -36,7 +36,7 @@ void toRealTestCase() { // --------------------- Sub-case 1 --------------------- expEntries = new double[]{1.4415, 235.61, 0, 1.0, -85.1, 1.345, 0.014, -140.0, 0, 51.0, 6.1, -0.00014}; - exp = new Tensor(shape.copy(), expEntries); + exp = new Tensor(shape, expEntries); assertEquals(exp, A.toReal()); } diff --git a/src/test/java/org/flag4j/complex_tensor/CTensorReshapeTests.java b/src/test/java/org/flag4j/complex_tensor/CTensorReshapeTests.java index 20f35f6b7..ebed6208b 100644 --- a/src/test/java/org/flag4j/complex_tensor/CTensorReshapeTests.java +++ b/src/test/java/org/flag4j/complex_tensor/CTensorReshapeTests.java @@ -35,25 +35,25 @@ void reshapeTestCase() { expShape = new Shape(1, 1, 12, 1); exp = new CTensor(expShape, ArrayUtils.copyOf(aEntries)); - assertEquals(exp, A.reshape(expShape.copy())); + assertEquals(exp, A.reshape(expShape)); // -------------------------- Sub-case 2 -------------------------- expShape = new Shape(4, 3); exp = new CTensor(expShape, ArrayUtils.copyOf(aEntries)); - assertEquals(exp, A.reshape(expShape.copy())); + assertEquals(exp, A.reshape(expShape)); // -------------------------- Sub-case 3 -------------------------- expShape = new Shape(2, 3, 2); exp = new CTensor(expShape, ArrayUtils.copyOf(aEntries)); - assertEquals(exp, A.reshape(expShape.copy())); + assertEquals(exp, A.reshape(expShape)); // -------------------------- Sub-case 4 -------------------------- expShape = new Shape(2, 2, 3, 1); exp = new CTensor(expShape, ArrayUtils.copyOf(aEntries)); - assertEquals(exp, A.reshape(expShape.copy())); + assertEquals(exp, A.reshape(expShape)); } diff --git a/src/test/java/org/flag4j/complex_tensor/CTensorToStringTests.java b/src/test/java/org/flag4j/complex_tensor/CTensorToStringTests.java index 201f92544..d4d1b5d50 100644 --- a/src/test/java/org/flag4j/complex_tensor/CTensorToStringTests.java +++ b/src/test/java/org/flag4j/complex_tensor/CTensorToStringTests.java @@ -38,7 +38,7 @@ static void cleanup() { void toStringTestCase() { PrintOptions.resetAll(); // ---------------------- Sub-case 1 ---------------------- - exp = "Full Shape: 2x3x1x2\n" + + exp = "Full Shape: (2, 3, 1, 2)\n" + "[ 1.4415 - 0.0245i 235.61 + 1.45i -2.4E-4i 1 -85.1 + 9.234i 1.345 " + "- 781.2i 0.014 - 2.45i -140 1.5i ... -1.4E-4 + 1.34i ]"; assertEquals(exp, A.toString()); @@ -47,7 +47,7 @@ void toStringTestCase() { PrintOptions.setMaxColumns(15); PrintOptions.setPrecision(2); PrintOptions.setCentering(false); - exp = "Full Shape: 2x3x1x2\n" + + exp = "Full Shape: (2, 3, 1, 2)\n" + "[1.44 - 0.02i 235.61 + 1.45i 0 1 -85.1 + 9.23i 1.35 - 781.2i 0.01 - 2.45i " + "-140 1.5i 51 + 24.56i 6.1 - 0.03i 1.34i ]"; assertEquals(exp, A.toString()); diff --git a/src/test/java/org/flag4j/linalg/decompositions/ComplexCholeskyTests.java b/src/test/java/org/flag4j/linalg/decompositions/ComplexCholeskyTests.java index 3c2dfa853..9e679b1fc 100644 --- a/src/test/java/org/flag4j/linalg/decompositions/ComplexCholeskyTests.java +++ b/src/test/java/org/flag4j/linalg/decompositions/ComplexCholeskyTests.java @@ -29,7 +29,7 @@ void testcholeskyTestCase() { L = cholesky.decompose(A).getL(); A_hat = L.mult(L.H()); - assertEquals(new CMatrix(A.shape.copy()), A.sub(A_hat).roundToZero()); + assertEquals(new CMatrix(A.shape), A.sub(A_hat).roundToZero()); // --------------------- Sub-case 2 --------------------- aEntries = new String[][]{ @@ -40,6 +40,6 @@ void testcholeskyTestCase() { L = cholesky.decompose(A).getL(); A_hat = L.mult(L.H()); - assertEquals(new CMatrix(A.shape.copy()), A.sub(A_hat).roundToZero()); + assertEquals(new CMatrix(A.shape), A.sub(A_hat).roundToZero()); } } diff --git a/src/test/java/org/flag4j/linalg/decompositions/ComplexHessenburgTests.java b/src/test/java/org/flag4j/linalg/decompositions/ComplexHessenburgTests.java index f0f172066..e8971ffde 100644 --- a/src/test/java/org/flag4j/linalg/decompositions/ComplexHessenburgTests.java +++ b/src/test/java/org/flag4j/linalg/decompositions/ComplexHessenburgTests.java @@ -53,7 +53,7 @@ void testhessDecompTestCase() { Q = hess.getQ(); A_hat = Q.mult(H).mult(Q.H()); - assertEquals(new CMatrix(A.shape.copy()), A.sub(A_hat).roundToZero()); + assertEquals(new CMatrix(A.shape), A.sub(A_hat).roundToZero()); // ----------------------- Sub-case 1.1 ----------------------- hess = new ComplexHess(); @@ -75,7 +75,7 @@ void testhessDecompTestCase() { Q = hess.getQ(); A_hat = Q.mult(H).mult(Q.H()); - assertEquals(new CMatrix(A.shape.copy()), A.sub(A_hat).roundToZero()); + assertEquals(new CMatrix(A.shape), A.sub(A_hat).roundToZero()); // ----------------------- Sub-case 2.1 ----------------------- hess = new ComplexHess(); diff --git a/src/test/java/org/flag4j/linalg/decompositions/ComplexLUTests.java b/src/test/java/org/flag4j/linalg/decompositions/ComplexLUTests.java index 36de8083b..ecb682872 100644 --- a/src/test/java/org/flag4j/linalg/decompositions/ComplexLUTests.java +++ b/src/test/java/org/flag4j/linalg/decompositions/ComplexLUTests.java @@ -45,7 +45,7 @@ void testnoPivotTestCase() { U = lu.getU(); A_hat = L.mult(U); - assertEquals(new CMatrix(A.shape.copy()), A.sub(A_hat).roundToZero()); + assertEquals(new CMatrix(A.shape), A.sub(A_hat).roundToZero()); // --------------------- Sub-case 2 --------------------- aEntries = new CNumber[][]{ @@ -59,7 +59,7 @@ void testnoPivotTestCase() { U = lu.getU(); A_hat = L.mult(U); - assertEquals(new CMatrix(A.shape.copy()), A.sub(A_hat).roundToZero()); + assertEquals(new CMatrix(A.shape), A.sub(A_hat).roundToZero()); // --------------------- Sub-case 3 --------------------- aEntries = new CNumber[][]{ @@ -72,7 +72,7 @@ void testnoPivotTestCase() { U = lu.getU(); A_hat = L.mult(U); - assertEquals(new CMatrix(A.shape.copy()), A.sub(A_hat).roundToZero()); + assertEquals(new CMatrix(A.shape), A.sub(A_hat).roundToZero()); } @@ -94,7 +94,7 @@ void testpartialPivotTestCase() { U = lu.getU(); A_hat = P.T().mult(L).mult(U); - assertEquals(new CMatrix(A.shape.copy()), A.sub(A_hat).roundToZero()); + assertEquals(new CMatrix(A.shape), A.sub(A_hat).roundToZero()); // --------------------- Sub-case 2 --------------------- aEntries = new CNumber[][]{ @@ -109,7 +109,7 @@ void testpartialPivotTestCase() { U = lu.getU(); A_hat = P.T().mult(L).mult(U); - assertEquals(new CMatrix(A.shape.copy()), A.sub(A_hat).roundToZero()); + assertEquals(new CMatrix(A.shape), A.sub(A_hat).roundToZero()); // --------------------- Sub-case 3 --------------------- aEntries = new CNumber[][]{ @@ -123,7 +123,7 @@ void testpartialPivotTestCase() { U = lu.getU(); A_hat = P.T().mult(L).mult(U); - assertEquals(new CMatrix(A.shape.copy()), A.sub(A_hat).roundToZero()); + assertEquals(new CMatrix(A.shape), A.sub(A_hat).roundToZero()); } @@ -145,7 +145,7 @@ void partialFullTestCase() { U = lu.getU(); A_hat = P.T().mult(L).mult(U).mult(Q.T()); - assertEquals(new CMatrix(A.shape.copy()), A.sub(A_hat).roundToZero()); + assertEquals(new CMatrix(A.shape), A.sub(A_hat).roundToZero()); // --------------------- Sub-case 2 --------------------- aEntries = new CNumber[][]{ @@ -161,7 +161,7 @@ void partialFullTestCase() { U = lu.getU(); A_hat = P.T().mult(L).mult(U).mult(Q.T()); - assertEquals(new CMatrix(A.shape.copy()), A.sub(A_hat).roundToZero()); + assertEquals(new CMatrix(A.shape), A.sub(A_hat).roundToZero()); // --------------------- Sub-case 3 --------------------- aEntries = new CNumber[][]{ @@ -176,6 +176,6 @@ void partialFullTestCase() { U = lu.getU(); A_hat = P.T().mult(L).mult(U).mult(Q.T()); - assertEquals(new CMatrix(A.shape.copy()), A.sub(A_hat).roundToZero()); + assertEquals(new CMatrix(A.shape), A.sub(A_hat).roundToZero()); } } diff --git a/src/test/java/org/flag4j/linalg/decompositions/ComplexQRTests.java b/src/test/java/org/flag4j/linalg/decompositions/ComplexQRTests.java index ac10aff18..dffc794ed 100644 --- a/src/test/java/org/flag4j/linalg/decompositions/ComplexQRTests.java +++ b/src/test/java/org/flag4j/linalg/decompositions/ComplexQRTests.java @@ -31,7 +31,7 @@ void fullTestCase() { R = qr.getR(); A_hat = Q.mult(R); - assertEquals(new CMatrix(A.shape.copy()), A.sub(A_hat).roundToZero()); + assertEquals(new CMatrix(A.shape), A.sub(A_hat).roundToZero()); // --------------------------- Sub-case 2 --------------------------- aEntriesReal = new double[][]{ @@ -46,7 +46,7 @@ void fullTestCase() { R = qr.getR(); A_hat = Q.mult(R); - assertEquals(new CMatrix(A.shape.copy()), A.sub(A_hat).roundToZero()); + assertEquals(new CMatrix(A.shape), A.sub(A_hat).roundToZero()); // --------------------------- Sub-case 3 --------------------------- aEntries = new String[][]{ @@ -59,7 +59,7 @@ void fullTestCase() { R = qr.getR(); A_hat = Q.mult(R); - assertEquals(new CMatrix(A.shape.copy()), A.sub(A_hat).roundToZero()); + assertEquals(new CMatrix(A.shape), A.sub(A_hat).roundToZero()); // --------------------------- Sub-case 4 --------------------------- aEntries = new String[][]{ @@ -74,7 +74,7 @@ void fullTestCase() { R = qr.getR(); A_hat = Q.mult(R); - assertEquals(new CMatrix(A.shape.copy()), A.sub(A_hat).roundToZero()); + assertEquals(new CMatrix(A.shape), A.sub(A_hat).roundToZero()); // --------------------------- Sub-case 4 --------------------------- aEntries = new String[][]{ @@ -88,7 +88,7 @@ void fullTestCase() { R = qr.getR(); A_hat = Q.mult(R); - assertEquals(new CMatrix(A.shape.copy()), A.sub(A_hat).roundToZero(1.0E-10)); + assertEquals(new CMatrix(A.shape), A.sub(A_hat).roundToZero(1.0E-10)); } @Test @@ -109,7 +109,7 @@ void reducedTestCase() { R = qr.getR(); A_hat = Q.mult(R); - assertEquals(new CMatrix(A.shape.copy()), A.sub(A_hat).roundToZero()); + assertEquals(new CMatrix(A.shape), A.sub(A_hat).roundToZero()); // --------------------------- Sub-case 2 --------------------------- aEntriesReal = new double[][]{ @@ -124,7 +124,7 @@ void reducedTestCase() { R = qr.getR(); A_hat = Q.mult(R); - assertEquals(new CMatrix(A.shape.copy()), A.sub(A_hat).roundToZero()); + assertEquals(new CMatrix(A.shape), A.sub(A_hat).roundToZero()); // --------------------------- Sub-case 3 --------------------------- aEntries = new String[][]{ @@ -137,7 +137,7 @@ void reducedTestCase() { R = qr.getR(); A_hat = Q.mult(R); - assertEquals(new CMatrix(A.shape.copy()), A.sub(A_hat).roundToZero()); + assertEquals(new CMatrix(A.shape), A.sub(A_hat).roundToZero()); // --------------------------- Sub-case 4 --------------------------- aEntries = new String[][]{ @@ -152,7 +152,7 @@ void reducedTestCase() { R = qr.getR(); A_hat = Q.mult(R); - assertEquals(new CMatrix(A.shape.copy()), A.sub(A_hat).roundToZero()); + assertEquals(new CMatrix(A.shape), A.sub(A_hat).roundToZero()); // --------------------------- Sub-case 4 --------------------------- aEntries = new String[][]{ @@ -166,6 +166,6 @@ void reducedTestCase() { R = qr.getR(); A_hat = Q.mult(R); - assertEquals(new CMatrix(A.shape.copy()), A.sub(A_hat).roundToZero(1.0E-10)); + assertEquals(new CMatrix(A.shape), A.sub(A_hat).roundToZero(1.0E-10)); } } diff --git a/src/test/java/org/flag4j/linalg/decompositions/RealHessenburgTests.java b/src/test/java/org/flag4j/linalg/decompositions/RealHessenburgTests.java index f906f4194..1908e491d 100644 --- a/src/test/java/org/flag4j/linalg/decompositions/RealHessenburgTests.java +++ b/src/test/java/org/flag4j/linalg/decompositions/RealHessenburgTests.java @@ -28,7 +28,7 @@ void hessDecompTestCase() { Q = hess.getQ(); A_hat = Q.mult(H).multTranspose(Q); - Assertions.assertEquals(new Matrix(A.shape.copy()).round(), A.sub(A_hat).round()); + Assertions.assertEquals(new Matrix(A.shape).round(), A.sub(A_hat).round()); // ----------------------- Sub-case 2 ----------------------- aEntries = new double[][]{ @@ -44,7 +44,7 @@ void hessDecompTestCase() { Q = hess.getQ(); A_hat = Q.mult(H).multTranspose(Q); - Assertions.assertEquals(new Matrix(A.shape.copy()), A.sub(A_hat).roundToZero(1.0e-10)); + Assertions.assertEquals(new Matrix(A.shape), A.sub(A_hat).roundToZero(1.0e-10)); // ----------------------- Sub-case 2.1 ----------------------- hess = new RealHess(); diff --git a/src/test/java/org/flag4j/linalg/decompositions/RealSymmHessTests.java b/src/test/java/org/flag4j/linalg/decompositions/RealSymmHessTests.java index fb4f40152..e15e9825c 100644 --- a/src/test/java/org/flag4j/linalg/decompositions/RealSymmHessTests.java +++ b/src/test/java/org/flag4j/linalg/decompositions/RealSymmHessTests.java @@ -26,7 +26,7 @@ void symmHessDecompTestCase() { Q = hess.getQ(); A_hat = Q.mult(H).multTranspose(Q); - Assertions.assertEquals(new Matrix(A.shape.copy()), A.sub(A_hat).round()); + Assertions.assertEquals(new Matrix(A.shape), A.sub(A_hat).round()); // ----------------------- Sub-case 2 ----------------------- aEntries = new double[][]{ @@ -40,7 +40,7 @@ void symmHessDecompTestCase() { Q = hess.getQ(); A_hat = Q.mult(H).multTranspose(Q); - Assertions.assertEquals(new Matrix(A.shape.copy()), A.sub(A_hat).round()); + Assertions.assertEquals(new Matrix(A.shape), A.sub(A_hat).round()); // ----------------------- Sub-case 3 ----------------------- aEntries = new double[][]{ @@ -56,7 +56,7 @@ void symmHessDecompTestCase() { Q = hess.getQ(); A_hat = Q.mult(H).multTranspose(Q); - Assertions.assertEquals(new Matrix(A.shape.copy()), A.sub(A_hat).round()); + Assertions.assertEquals(new Matrix(A.shape), A.sub(A_hat).round()); // ----------------------- Sub-case 4 ----------------------- aEntries = new double[][]{ @@ -69,7 +69,7 @@ void symmHessDecompTestCase() { Q = hess.getQ(); A_hat = Q.mult(H).multTranspose(Q); - Assertions.assertEquals(new Matrix(A.shape.copy()), A.sub(A_hat).round()); + Assertions.assertEquals(new Matrix(A.shape), A.sub(A_hat).round()); // ----------------------- Sub-case 5 ----------------------- aEntries = new double[][]{ diff --git a/src/test/java/org/flag4j/matrix/MatrixAddSubEqTests.java b/src/test/java/org/flag4j/matrix/MatrixAddSubEqTests.java index 53207c15c..dd8526d55 100644 --- a/src/test/java/org/flag4j/matrix/MatrixAddSubEqTests.java +++ b/src/test/java/org/flag4j/matrix/MatrixAddSubEqTests.java @@ -56,7 +56,7 @@ void addEqSparseTestCase() { bEntries = new double[]{1.34, -93.346}; rowIndices = new int[]{0, 1}; colIndices = new int[]{2, 1}; - sparseShape = new Shape(A.shape); + sparseShape = A.shape; B = new CooMatrix(sparseShape, bEntries, rowIndices, colIndices); exp = A.add(B); @@ -132,7 +132,7 @@ void subEqSparseTestCase() { bEntries = new double[]{1.34, -93.346}; rowIndices = new int[]{0, 1}; colIndices = new int[]{2, 1}; - sparseShape = new Shape(A.shape); + sparseShape = A.shape; B = new CooMatrix(sparseShape, bEntries, rowIndices, colIndices); exp = A.sub(B); diff --git a/src/test/java/org/flag4j/matrix/MatrixAddTests.java b/src/test/java/org/flag4j/matrix/MatrixAddTests.java index c105d8a3a..411fd1452 100644 --- a/src/test/java/org/flag4j/matrix/MatrixAddTests.java +++ b/src/test/java/org/flag4j/matrix/MatrixAddTests.java @@ -33,7 +33,7 @@ void matrixMatrixTestCase() { bEntries = new double[][]{{0.333, 56.4, 13.4}, {-1.44, 5, 85.1}, {1.343, 6.7, -88.4}}; A = new Matrix(aEntries); B = new Matrix(bEntries); - expShape = A.shape.copy(); + expShape = A.shape; expEntries = new double[]{1+0.333, 2+56.4, 3+13.4, 4-1.44, 5+5, 6+85.1, 7+1.343, 8+6.7, 9-88.4}; exp = new Matrix(expShape, expEntries); @@ -46,7 +46,7 @@ void matrixMatrixTestCase() { bEntries = new double[][]{{0.333, 56.4, 13.4}, {-1.44, 5, 85.1}}; A = new Matrix(aEntries); B = new Matrix(bEntries); - expShape = A.shape.copy(); + expShape = A.shape; expEntries = new double[]{1+0.333, 2+56.4, 3+13.4, 4 - 1.44, 5+5, 6+85.1}; exp = new Matrix(expShape, expEntries); @@ -76,7 +76,7 @@ void matrixDoubleTestCase() { aEntries = new double[][]{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; b = 2.133; A = new Matrix(aEntries); - expShape = A.shape.copy(); + expShape = A.shape; expEntries = new double[]{1+2.133, 2+2.133, 3+2.133, 4+2.133, 5+2.133, 6+2.133, 7+2.133, 8+2.133, 9+2.133}; exp = new Matrix(expShape, expEntries); @@ -88,7 +88,7 @@ void matrixDoubleTestCase() { aEntries = new double[][]{{1, 2, 3}, {4, 5, 6}}; b = 2.133; A = new Matrix(aEntries); - expShape = A.shape.copy(); + expShape = A.shape; expEntries = new double[]{1+2.133, 2+2.133, 3+2.133, 4+2.133, 5+2.133, 6+2.133}; exp = new Matrix(expShape, expEntries); @@ -104,7 +104,7 @@ void matrixCNumberTestCase() { aEntries = new double[][]{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; bC = new CNumber(33.444, -9.3545); A = new Matrix(aEntries); - expShape = A.shape.copy(); + expShape = A.shape; expEntriesC = new CNumber[]{ new CNumber(1).add(bC), new CNumber(2).add(bC), new CNumber(3).add(bC), new CNumber(4).add(bC), new CNumber(5).add(bC), new CNumber(6).add(bC), @@ -120,7 +120,7 @@ void matrixCNumberTestCase() { aEntries = new double[][]{{1, 2, 3}, {4, 5, 6}}; bC = new CNumber(33.444, -9.3545); A = new Matrix(aEntries); - expShape = A.shape.copy(); + expShape = A.shape; expEntriesC = new CNumber[]{ new CNumber(1).add(bC), new CNumber(2).add(bC), new CNumber(3).add(bC), new CNumber(4).add(bC), new CNumber(5).add(bC), new CNumber(6).add(bC) @@ -144,7 +144,7 @@ void matrixCMatrixTestCase() { }; A = new Matrix(aEntries); BC = new CMatrix(bCEntries); - expShape = A.shape.copy(); + expShape = A.shape; expEntriesC = new CNumber[]{ new CNumber(1.23+1, -344.5), new CNumber(2.33+2, 5.6), new CNumber(3.13+3, -34), new CNumber(4, 66.45), new CNumber(33.1334+5, 5513.5), new CNumber(99.3+6), @@ -165,7 +165,7 @@ void matrixCMatrixTestCase() { }; A = new Matrix(aEntries); BC = new CMatrix(bCEntries); - expShape = A.shape.copy(); + expShape = A.shape; expEntriesC = new CNumber[]{ new CNumber(1.23+1, -344.5), new CNumber(2.33+2, 5.6), new CNumber(3.13+3, -34), new CNumber(4, 66.45), new CNumber(33.1334+5, 5513.5), new CNumber(99.3+6) @@ -203,11 +203,11 @@ void realSparseAddTestCase() { bEntries = new double[]{-0.99, 1, 14.2, 8.3}; bRowIndices = new int[]{0, 1, 1, 3}; bColIndices = new int[]{1, 0, 2, 0}; - bShape = A.shape.copy(); + bShape = A.shape; B = new CooMatrix(bShape, bEntries, bRowIndices, bColIndices); expEntries = new double[]{1, 2-0.99, 3, 4+1, 5, 6+14.2, 7, 8, 9, 10+8.3, 11, 12}; - expShape = A.shape.copy(); + expShape = A.shape; exp = new Matrix(expShape, expEntries); assertEquals(exp, A.add(B)); @@ -243,7 +243,7 @@ void complexSparseAddTestCase() { new CNumber(8, 3.3), new CNumber(100.23, -1000.2)}; bRowIndices = new int[]{0, 1, 1, 3}; bColIndices = new int[]{1, 0, 2, 0}; - bShape = A.shape.copy(); + bShape = A.shape; B = new CooCMatrix(bShape, bEntries, bRowIndices, bColIndices); expEntriesC = new CNumber[]{ @@ -251,7 +251,7 @@ void complexSparseAddTestCase() { new CNumber(4, 1), new CNumber(5), new CNumber(6+8, 3.3), new CNumber(7), new CNumber(8), new CNumber(9), new CNumber(10+100.23, -1000.2), new CNumber(11), new CNumber(12)}; - expShape = A.shape.copy(); + expShape = A.shape; expC = new CMatrix(expShape, expEntriesC); assertEquals(expC, A.add(B)); diff --git a/src/test/java/org/flag4j/matrix/MatrixConversionTests.java b/src/test/java/org/flag4j/matrix/MatrixConversionTests.java index 2df23144c..63b477cc5 100644 --- a/src/test/java/org/flag4j/matrix/MatrixConversionTests.java +++ b/src/test/java/org/flag4j/matrix/MatrixConversionTests.java @@ -49,7 +49,7 @@ void toTensorTestCase() { // --------------------- Sub-case 1 --------------------- aEntries = new double[][]{{1, 2, 3, 0.0000245}, {452.745, -8234, -2.234, 345.324}}; A = new Matrix(aEntries); - exp = new Tensor(A.shape.copy(), ArrayUtils.flatten(aEntries)); + exp = new Tensor(A.shape, ArrayUtils.flatten(aEntries)); assertEquals(exp, A.toTensor()); } diff --git a/src/test/java/org/flag4j/matrix/MatrixElemDivTests.java b/src/test/java/org/flag4j/matrix/MatrixElemDivTests.java index 9ed9e4043..08637eb93 100644 --- a/src/test/java/org/flag4j/matrix/MatrixElemDivTests.java +++ b/src/test/java/org/flag4j/matrix/MatrixElemDivTests.java @@ -45,7 +45,7 @@ void elemDivTestCase() { entriesB = new double[][]{{4.344, 555.6, 94, -0.4442}, {0.0000234, 1333.4, 44.5, 134.3}}; A = new Matrix(entriesA); B = new Matrix(entriesB); - expResult = new Matrix(A.shape.copy(), getExp(A.entries, B.entries)); + expResult = new Matrix(A.shape, getExp(A.entries, B.entries)); result = A.elemDiv(B); @@ -70,7 +70,7 @@ void elemDivComplexTestCase() { {new CNumber(4.55, -93.2), new CNumber(-2, -13), new CNumber(8.9), new CNumber(0, 13)}}; A = new Matrix(entriesA); BC = new CMatrix(entriesBC); - expResultC = new CMatrix(A.shape.copy(), getExp(A.entries, BC.entries)); + expResultC = new CMatrix(A.shape, getExp(A.entries, BC.entries)); resultC = A.elemDiv(BC); diff --git a/src/test/java/org/flag4j/matrix/MatrixElemMultTests.java b/src/test/java/org/flag4j/matrix/MatrixElemMultTests.java index 062fda1b1..ba8df67c9 100644 --- a/src/test/java/org/flag4j/matrix/MatrixElemMultTests.java +++ b/src/test/java/org/flag4j/matrix/MatrixElemMultTests.java @@ -55,7 +55,7 @@ void elemMultTestCase() { entriesB = new double[][]{{4.344, 555.6, 94, -0.4442}, {0.0000234, 1333.4, 44.5, 134.3}}; A = new Matrix(entriesA); B = new Matrix(entriesB); - expResult = new Matrix(A.shape.copy(), getExp(A.entries, B.entries)); + expResult = new Matrix(A.shape, getExp(A.entries, B.entries)); result = A.elemMult(B); @@ -80,7 +80,7 @@ void elemMultComplexTestCase() { {new CNumber(4.55, -93.2), new CNumber(-2, -13), new CNumber(8.9), new CNumber(0, 13)}}; A = new Matrix(entriesA); BC = new CMatrix(entriesBC); - expResultC = new CMatrix(A.shape.copy(), getExp(A.entries, BC.entries)); + expResultC = new CMatrix(A.shape, getExp(A.entries, BC.entries)); resultC = A.elemMult(BC); @@ -110,7 +110,7 @@ void elemMultSparseTestCase() { BSparse = new CooMatrix(shape, bEntriesSparse, rowIndices, colIndices); expEntriesSparse = new double[]{2*1.45, -6*31.13, 0}; - expSparse = new CooMatrix(shape.copy(), expEntriesSparse, rowIndices.clone(), colIndices.clone()); + expSparse = new CooMatrix(shape, expEntriesSparse, rowIndices.clone(), colIndices.clone()); sparseResult = A.elemMult(BSparse); @@ -142,7 +142,7 @@ void elemMultSparseComplexTestCase() { BSparseComplex = new CooCMatrix(shape, bEntriesSparseComplex, rowIndices, colIndices); expEntriesSparseComplex = new CNumber[]{bEntriesSparseComplex[0].mult(2), bEntriesSparseComplex[1].mult(-6), new CNumber()}; - expSparseComplex = new CooCMatrix(shape.copy(), expEntriesSparseComplex, rowIndices.clone(), colIndices.clone()); + expSparseComplex = new CooCMatrix(shape, expEntriesSparseComplex, rowIndices.clone(), colIndices.clone()); sparseComplexResult = A.elemMult(BSparseComplex); diff --git a/src/test/java/org/flag4j/matrix/MatrixFibTests.java b/src/test/java/org/flag4j/matrix/MatrixFibTests.java index fc84fcf23..239259d86 100644 --- a/src/test/java/org/flag4j/matrix/MatrixFibTests.java +++ b/src/test/java/org/flag4j/matrix/MatrixFibTests.java @@ -79,7 +79,7 @@ void sparseMatrixFibTestCase() { bSparseEntries = new double[]{1.55, 89.23, -16.23}; rowIndices = new int[]{0, 1, 3}; colIndices = new int[]{2, 0, 1}; - sparseShape = new Shape(A.shape); + sparseShape = A.shape; BSparse = new CooMatrix(sparseShape, bSparseEntries, rowIndices, colIndices); exp = 8910.767650000002; @@ -171,7 +171,7 @@ void complexSparseMatrixFibTestCase() { bSparseEntries = new double[]{1.55, 89.23, -16.23}; rowIndices = new int[]{0, 1, 3}; colIndices = new int[]{2, 0, 1}; - sparseShape = new Shape(A.shape); + sparseShape = A.shape; BSparse = new CooCMatrix(sparseShape, bSparseEntries, rowIndices, colIndices); exp = new CNumber(8910.767650000002); diff --git a/src/test/java/org/flag4j/matrix/MatrixReshapeTests.java b/src/test/java/org/flag4j/matrix/MatrixReshapeTests.java index 3cad5f2ff..b90c6ff12 100644 --- a/src/test/java/org/flag4j/matrix/MatrixReshapeTests.java +++ b/src/test/java/org/flag4j/matrix/MatrixReshapeTests.java @@ -18,25 +18,25 @@ class MatrixReshapeTests { void reshapeTestCase() { // --------------- Sub-case 1 --------------- expShape = new Shape(4, 3); - B = A.reshape(expShape.copy()); + B = A.reshape(expShape); assertEquals(expShape, B.shape); assertArrayEquals(A.entries, B.entries); // --------------- Sub-case 2 --------------- expShape = new Shape(1, 12); - B = A.reshape(expShape.copy()); + B = A.reshape(expShape); assertEquals(expShape, B.shape); assertArrayEquals(A.entries, B.entries); // --------------- Sub-case 3 --------------- expShape = new Shape(2, 6); - B = A.reshape(expShape.copy()); + B = A.reshape(expShape); assertEquals(expShape, B.shape); assertArrayEquals(A.entries, B.entries); // --------------- Sub-case 4 --------------- expShape = new Shape(6, 2); - B = A.reshape(expShape.copy()); + B = A.reshape(expShape); assertEquals(expShape, B.shape); assertArrayEquals(A.entries, B.entries); diff --git a/src/test/java/org/flag4j/matrix/MatrixSubTests.java b/src/test/java/org/flag4j/matrix/MatrixSubTests.java index 65368cef3..203d5f67f 100644 --- a/src/test/java/org/flag4j/matrix/MatrixSubTests.java +++ b/src/test/java/org/flag4j/matrix/MatrixSubTests.java @@ -32,7 +32,7 @@ void matrixMatrixTestCase() { bEntries = new double[][]{{0.333, 56.4, 13.4}, {-1.44, 5, 85.1}, {1.343, 6.7, -88.4}}; A = new Matrix(aEntries); B = new Matrix(bEntries); - expShape = A.shape.copy(); + expShape = A.shape; expEntries = new double[]{1-0.333, 2-56.4, 3-13.4, 4+1.44, 0, 6-85.1, 7-1.343, 8-6.7, 9+88.4}; exp = new Matrix(expShape, expEntries); @@ -45,7 +45,7 @@ void matrixMatrixTestCase() { bEntries = new double[][]{{0.333, 56.4, 13.4}, {-1.44, 5, 85.1}}; A = new Matrix(aEntries); B = new Matrix(bEntries); - expShape = A.shape.copy(); + expShape = A.shape; expEntries = new double[]{1-0.333, 2-56.4, 3-13.4, 4 + 1.44, 0, 6-85.1}; exp = new Matrix(expShape, expEntries); @@ -75,7 +75,7 @@ void matrixDoubleTestCase() { aEntries = new double[][]{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; b = 2.133; A = new Matrix(aEntries); - expShape = A.shape.copy(); + expShape = A.shape; expEntries = new double[]{1-2.133, 2-2.133, 3-2.133, 4-2.133, 5-2.133, 6-2.133, 7-2.133, 8-2.133, 9-2.133}; exp = new Matrix(expShape, expEntries); @@ -87,7 +87,7 @@ void matrixDoubleTestCase() { aEntries = new double[][]{{1, 2, 3}, {4, 5, 6}}; b = 2.133; A = new Matrix(aEntries); - expShape = A.shape.copy(); + expShape = A.shape; expEntries = new double[]{1-2.133, 2-2.133, 3-2.133, 4-2.133, 5-2.133, 6-2.133}; exp = new Matrix(expShape, expEntries); @@ -103,7 +103,7 @@ void matrixCNumberTestCase() { aEntries = new double[][]{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; bC = new CNumber(33.444, -9.3545); A = new Matrix(aEntries); - expShape = A.shape.copy(); + expShape = A.shape; expEntriesC = new CNumber[]{ new CNumber(1).sub(bC), new CNumber(2).sub(bC), new CNumber(3).sub(bC), new CNumber(4).sub(bC), new CNumber(5).sub(bC), new CNumber(6).sub(bC), @@ -119,7 +119,7 @@ void matrixCNumberTestCase() { aEntries = new double[][]{{1, 2, 3}, {4, 5, 6}}; bC = new CNumber(33.444, -9.3545); A = new Matrix(aEntries); - expShape = A.shape.copy(); + expShape = A.shape; expEntriesC = new CNumber[]{ new CNumber(1).sub(bC), new CNumber(2).sub(bC), new CNumber(3).sub(bC), new CNumber(4).sub(bC), new CNumber(5).sub(bC), new CNumber(6).sub(bC) @@ -143,7 +143,7 @@ void matrixCMatrixTestCase() { }; A = new Matrix(aEntries); BC = new CMatrix(bCEntries); - expShape = A.shape.copy(); + expShape = A.shape; expEntriesC = new CNumber[]{ new CNumber(1-1.23, 344.5), new CNumber(2-2.33, -5.6), new CNumber(3-3.13, 34), new CNumber(4, -66.45), new CNumber(5-33.1334, -5513.5), new CNumber(6-99.3), @@ -164,7 +164,7 @@ void matrixCMatrixTestCase() { }; A = new Matrix(aEntries); BC = new CMatrix(bCEntries); - expShape = A.shape.copy(); + expShape = A.shape; expEntriesC = new CNumber[]{ new CNumber(1-1.23, 344.5), new CNumber(2-2.33, -5.6), new CNumber(3-3.13, 34), new CNumber(4, -66.45), new CNumber(5-33.1334, -5513.5), new CNumber(6-99.3) @@ -202,11 +202,11 @@ void realSparseSubTestCase() { bEntries = new double[]{-0.99, 1, 14.2, 8.3}; bRowIndices = new int[]{0, 1, 1, 3}; bColIndices = new int[]{1, 0, 2, 0}; - bShape = A.shape.copy(); + bShape = A.shape; B = new CooMatrix(bShape, bEntries, bRowIndices, bColIndices); expEntries = new double[]{1, 2+0.99, 3, 4-1, 5, 6-14.2, 7, 8, 9, 10-8.3, 11, 12}; - expShape = A.shape.copy(); + expShape = A.shape; exp = new Matrix(expShape, expEntries); assertEquals(exp, A.sub(B)); @@ -242,7 +242,7 @@ void complexSparseSubTestCase() { new CNumber(8, 3.3), new CNumber(100.23, -1000.2)}; bRowIndices = new int[]{0, 1, 1, 3}; bColIndices = new int[]{1, 0, 2, 0}; - bShape = A.shape.copy(); + bShape = A.shape; B = new CooCMatrix(bShape, bEntries, bRowIndices, bColIndices); expEntriesC = new CNumber[]{ @@ -250,7 +250,7 @@ void complexSparseSubTestCase() { new CNumber(4, -1), new CNumber(5), new CNumber(6-8, -3.3), new CNumber(7), new CNumber(8), new CNumber(9), new CNumber(10-100.23, 1000.2), new CNumber(11), new CNumber(12)}; - expShape = A.shape.copy(); + expShape = A.shape; expC = new CMatrix(expShape, expEntriesC); assertEquals(expC, A.sub(B)); diff --git a/src/test/java/org/flag4j/matrix/MatrixToStringTest.java b/src/test/java/org/flag4j/matrix/MatrixToStringTest.java index 63ce7041f..a6f1b1a99 100644 --- a/src/test/java/org/flag4j/matrix/MatrixToStringTest.java +++ b/src/test/java/org/flag4j/matrix/MatrixToStringTest.java @@ -85,7 +85,7 @@ void toStringTestCase() { PrintOptions.setMaxRows(1); PrintOptions.setMaxColumns(4); PrintOptions.setCentering(true); - exp = "Full Shape: 2x4\n" + + exp = "Full Shape: (2, 4)\n" + "[ [ ... ]\n" + " [ 0 1.46 -123.4 2341.56 ]]"; @@ -101,7 +101,7 @@ void toStringTestCase() { PrintOptions.setMaxRows(2); PrintOptions.setMaxColumns(3); PrintOptions.setCentering(true); - exp = "Full Shape: 2x4\n" + + exp = "Full Shape: (2, 4)\n" + "[[ 1.32 2.47 ... -0.11 ]\n" + " [ 0 1.46 ... 2341.56 ]]"; @@ -117,7 +117,7 @@ void toStringTestCase() { PrintOptions.setMaxRows(2); PrintOptions.setMaxColumns(2); PrintOptions.setCentering(true); - exp = "Full Shape: 2x4\n" + + exp = "Full Shape: (2, 4)\n" + "[[ 1.32 ... -0.11 ]\n" + " [ 0 ... 2341.56 ]]"; diff --git a/src/test/java/org/flag4j/operations/dense_sparse/complex/ComplexDenseSparseMatMultTransposeTests.java b/src/test/java/org/flag4j/operations/dense_sparse/complex/ComplexDenseSparseMatMultTransposeTests.java index 42346100e..3d30ff5ca 100644 --- a/src/test/java/org/flag4j/operations/dense_sparse/complex/ComplexDenseSparseMatMultTransposeTests.java +++ b/src/test/java/org/flag4j/operations/dense_sparse/complex/ComplexDenseSparseMatMultTransposeTests.java @@ -38,7 +38,7 @@ static void setup() { static void createMatrices() { A = new CMatrix(aEntries); - B = new CooCMatrix(sparseShape.copy().swapAxes(0, 1), bEntries, sparseIndices[1], sparseIndices[0]); + B = new CooCMatrix(sparseShape.swapAxes(0, 1), bEntries, sparseIndices[1], sparseIndices[0]); } static void createDenseVector() { @@ -57,7 +57,7 @@ void matMatMultTestCase() { {0, 1}, {1, 4}}; createMatrices(); - expEntries = A.mult(new CooCMatrix(sparseShape.copy(), bEntries, sparseIndices[0], sparseIndices[1])).entries; + expEntries = A.mult(new CooCMatrix(sparseShape, bEntries, sparseIndices[0], sparseIndices[1])).entries; Assertions.assertArrayEquals(expEntries, diff --git a/src/test/java/org/flag4j/operations/dense_sparse/real/RealDenseSparseMatMultTransposeTests.java b/src/test/java/org/flag4j/operations/dense_sparse/real/RealDenseSparseMatMultTransposeTests.java index c0931a4c5..1a3c0b953 100644 --- a/src/test/java/org/flag4j/operations/dense_sparse/real/RealDenseSparseMatMultTransposeTests.java +++ b/src/test/java/org/flag4j/operations/dense_sparse/real/RealDenseSparseMatMultTransposeTests.java @@ -31,7 +31,7 @@ void matMultTestCase() { colIndices = new int[]{1, 2}; bShape = new Shape(2, 3); B = new CooMatrix(bShape, bEntries, rowIndices, colIndices); - exp = A.mult(new CooMatrix(bShape.copy().swapAxes(0, 1), bEntries, colIndices, rowIndices)); + exp = A.mult(new CooMatrix(bShape.swapAxes(0, 1), bEntries, colIndices, rowIndices)); assertArrayEquals(exp.entries, multTranspose(A.entries, A.shape, B.entries, B.rowIndices, B.colIndices, B.shape)); } diff --git a/src/test/java/org/flag4j/operations/dense_sparse/real_complex/RealComplexDenseSparseMatMultTransposeTests.java b/src/test/java/org/flag4j/operations/dense_sparse/real_complex/RealComplexDenseSparseMatMultTransposeTests.java index aa749beb3..7f656ad21 100644 --- a/src/test/java/org/flag4j/operations/dense_sparse/real_complex/RealComplexDenseSparseMatMultTransposeTests.java +++ b/src/test/java/org/flag4j/operations/dense_sparse/real_complex/RealComplexDenseSparseMatMultTransposeTests.java @@ -65,7 +65,7 @@ static void setup() { @Test void realDenseComplexSpTestCase() { // ---------------------- sub-case 1 ---------------------- - exp = realDense.mult(new CooCMatrix(complexSp.shape.copy().swapAxes(0, 1), + exp = realDense.mult(new CooCMatrix(complexSp.shape.swapAxes(0, 1), complexSp.entries, complexSp.colIndices, complexSp.rowIndices)); assertEquals(exp, realDense.multTranspose(complexSp)); } @@ -74,7 +74,7 @@ void realDenseComplexSpTestCase() { @Test void complexDenseRealSpTestCase() { // ---------------------- sub-case 1 ---------------------- - exp = complexDense.mult(new CooMatrix(realSp.shape.copy().swapAxes(0, 1), + exp = complexDense.mult(new CooMatrix(realSp.shape.swapAxes(0, 1), realSp.entries, realSp.colIndices, realSp.rowIndices)); assertEquals(exp, complexDense.multTranspose(realSp)); } diff --git a/src/test/java/org/flag4j/sparse_csr_complex_matrix/CsrCMatrixToStringTests.java b/src/test/java/org/flag4j/sparse_csr_complex_matrix/CsrCMatrixToStringTests.java index 065a3001e..dc0052a29 100644 --- a/src/test/java/org/flag4j/sparse_csr_complex_matrix/CsrCMatrixToStringTests.java +++ b/src/test/java/org/flag4j/sparse_csr_complex_matrix/CsrCMatrixToStringTests.java @@ -30,7 +30,7 @@ void toStringTests() { rowIndices = new int[]{0, 0, 1, 121, 141, 149}; colIndices = new int[]{150, 2500, 14, 15, 892, 156}; exp = """ - Full Shape: 150x2256 + Full Shape: (150, 2256) Non-zero entries: [ 1.325 + 9.2i -6 + i 23 34615i -i 25 + i ] Row Pointers: [0, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 6] Col Indices: [150, 2500, 14, 15, 892, 156]"""; @@ -49,7 +49,7 @@ void toStringTests() { rowIndices = new int[]{0, 0, 0, 0, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 3, 5, 5, 5, 8, 8, 8, 8, 9, 9, 9}; colIndices = new int[]{0, 1, 2, 9, 5, 6, 11, 0, 2, 7, 8, 9, 10, 11, 6, 2, 9, 11, 0, 1, 5, 7, 8, 9, 11}; exp = """ - Full Shape: 12x12 + Full Shape: (12, 12) Non-zero entries: [ 1 2 3 4 5 6 7 8 9 ... 25 ] Row Pointers: [0, 4, 7, 14, 15, 15, 18, 18, 18, 22, 25, 25, 25] Col Indices: [0, 1, 2, 9, 5, 6, 11, 0, 2, 7, 8, 9, 10, 11, 6, 2, 9, 11, 0, 1, 5, 7, 8, 9, 11]"""; diff --git a/src/test/java/org/flag4j/sparse_csr_matrix/CsrMatrixToStringTests.java b/src/test/java/org/flag4j/sparse_csr_matrix/CsrMatrixToStringTests.java index 139e90c45..34d9b40b6 100644 --- a/src/test/java/org/flag4j/sparse_csr_matrix/CsrMatrixToStringTests.java +++ b/src/test/java/org/flag4j/sparse_csr_matrix/CsrMatrixToStringTests.java @@ -28,7 +28,7 @@ void toStringTests() { rowIndices = new int[]{0, 0, 1, 121, 141, 149}; colIndices = new int[]{150, 2500, 14, 15, 892, 156}; exp = """ - Full Shape: 150x2256 + Full Shape: (150, 2256) Non-zero entries: [ 1 14.235 239034 -882334.348 15.235 1.5342 ] Row Pointers: [0, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 6] Col Indices: [150, 2500, 14, 15, 892, 156]"""; @@ -42,7 +42,7 @@ void toStringTests() { rowIndices = new int[]{0, 0, 0, 0, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 3, 5, 5, 5, 8, 8, 8, 8, 9, 9, 9}; colIndices = new int[]{0, 1, 2, 9, 5, 6, 11, 0, 2, 7, 8, 9, 10, 11, 6, 2, 9, 11, 0, 1, 5, 7, 8, 9, 11}; exp = """ - Full Shape: 12x12 + Full Shape: (12, 12) Non-zero entries: [ 1 2 3 4 5 6 7 8 9 ... 25 ] Row Pointers: [0, 4, 7, 14, 15, 15, 18, 18, 18, 22, 25, 25, 25] Col Indices: [0, 1, 2, 9, 5, 6, 11, 0, 2, 7, 8, 9, 10, 11, 6, 2, 9, 11, 0, 1, 5, 7, 8, 9, 11]"""; diff --git a/src/test/java/org/flag4j/sparse_matrix/CooMatrixEqualsTest.java b/src/test/java/org/flag4j/sparse_matrix/CooMatrixEqualsTest.java index fb1bb9d3d..5ed8b0fe2 100644 --- a/src/test/java/org/flag4j/sparse_matrix/CooMatrixEqualsTest.java +++ b/src/test/java/org/flag4j/sparse_matrix/CooMatrixEqualsTest.java @@ -131,7 +131,7 @@ void sparseEqualsTest() { {9, 13, 141, 141, 398, 400}, {1_002, 5, 41, 12_234, 9_013, 27} }; - B = new CooMatrix(A.shape.copy(), bEntries, bIndices[0], bIndices[1]); + B = new CooMatrix(A.shape, bEntries, bIndices[0], bIndices[1]); assertNotEquals(A, B); // --------------------- Sub-case 3 --------------------- @@ -161,7 +161,7 @@ void sparseComplexEqualsTest() { {9, 13, 141, 141, 398, 400}, {1_002, 5, 41, 12_234, 9_013, 27} }; - B = new CooCMatrix(A.shape.copy(), bEntries, bIndices[0], bIndices[1]); + B = new CooCMatrix(A.shape, bEntries, bIndices[0], bIndices[1]); assertFalse(A.tensorEquals(B)); // --------------------- Sub-case 3 --------------------- diff --git a/src/test/java/org/flag4j/sparse_matrix/CooMatrixToStringTests.java b/src/test/java/org/flag4j/sparse_matrix/CooMatrixToStringTests.java index f04fe8bc8..1700f2d7e 100644 --- a/src/test/java/org/flag4j/sparse_matrix/CooMatrixToStringTests.java +++ b/src/test/java/org/flag4j/sparse_matrix/CooMatrixToStringTests.java @@ -25,7 +25,7 @@ void setSliceTest() { aRowIndices = new int[]{0, 0, 1}; aColIndices = new int[]{0, 1, 2}; a = new CooMatrix(aShape, aEntries, aRowIndices, aColIndices); - exp = "Full Shape: 5x3\n" + + exp = "Full Shape: (5, 3)\n" + "Non-zero entries: [ 0.8161 0.77635 0.73286 ]\n" + "Row Indices: [0, 0, 1]\n" + "Col Indices: [0, 1, 2]"; @@ -38,7 +38,7 @@ void setSliceTest() { aRowIndices = new int[]{2, 4, 4, 7, 8}; aColIndices = new int[]{13, 4, 20, 15, 0}; a = new CooMatrix(aShape, aEntries, aRowIndices, aColIndices); - exp = "Full Shape: 11x23\n" + + exp = "Full Shape: (11, 23)\n" + "Non-zero entries: [ 0.5243 0.28762 0.17566 0.32968 0.44542 ]\n" + "Row Indices: [2, 4, 4, 7, 8]\n" + "Col Indices: [13, 4, 20, 15, 0]"; @@ -51,7 +51,7 @@ void setSliceTest() { aRowIndices = new int[]{0, 0, 1, 1, 3, 3, 4, 4, 4}; aColIndices = new int[]{557, 624, 336, 747, 125, 344, 113, 306, 350}; a = new CooMatrix(aShape, aEntries, aRowIndices, aColIndices); - exp = "Full Shape: 5x1000\n" + + exp = "Full Shape: (5, 1000)\n" + "Non-zero entries: [ 0.06813 0.43027 0.27489 0.94196 0.30043 0.4879 0.99068 0.50667 0.91951 ]\n" + "Row Indices: [0, 0, 1, 1, 3, 3, 4, 4, 4]\n" + "Col Indices: [557, 624, 336, 747, 125, 344, 113, 306, 350]"; @@ -64,7 +64,7 @@ void setSliceTest() { aRowIndices = new int[]{0, 0, 1, 2}; aColIndices = new int[]{0, 4, 4, 1}; a = new CooMatrix(aShape, aEntries, aRowIndices, aColIndices); - exp = "Full Shape: 3x5\n" + + exp = "Full Shape: (3, 5)\n" + "Non-zero entries: [ 0.23804 0.38857 0.94397 0.61889 ]\n" + "Row Indices: [0, 0, 1, 2]\n" + "Col Indices: [0, 4, 4, 1]"; @@ -77,7 +77,7 @@ void setSliceTest() { aRowIndices = new int[]{0, 0, 2, 2}; aColIndices = new int[]{1, 3, 1, 2}; a = new CooMatrix(aShape, aEntries, aRowIndices, aColIndices); - exp = "Full Shape: 3x5\n" + + exp = "Full Shape: (3, 5)\n" + "Non-zero entries: [ 0.52615 0.5363 0.51364 0.25336 ]\n" + "Row Indices: [0, 0, 2, 2]\n" + "Col Indices: [1, 3, 1, 2]"; @@ -90,7 +90,7 @@ void setSliceTest() { aRowIndices = new int[]{0, 0, 2, 2}; aColIndices = new int[]{1, 4, 0, 4}; a = new CooMatrix(aShape, aEntries, aRowIndices, aColIndices); - exp = "Full Shape: 3x5\n" + + exp = "Full Shape: (3, 5)\n" + "Non-zero entries: [ 0.27709 0.88769 0.5211 0.37339 ]\n" + "Row Indices: [0, 0, 2, 2]\n" + "Col Indices: [1, 4, 0, 4]"; @@ -103,7 +103,7 @@ void setSliceTest() { aRowIndices = new int[]{0, 0, 1, 2}; aColIndices = new int[]{2, 4, 3, 2}; a = new CooMatrix(aShape, aEntries, aRowIndices, aColIndices); - exp = "Full Shape: 3x5\n" + + exp = "Full Shape: (3, 5)\n" + "Non-zero entries: [ 0.29006 0.13548 0.05222 0.94335 ]\n" + "Row Indices: [0, 0, 1, 2]\n" + "Col Indices: [2, 4, 3, 2]"; diff --git a/src/test/java/org/flag4j/sparse_vector/CooVectorToStringTests.java b/src/test/java/org/flag4j/sparse_vector/CooVectorToStringTests.java index 44994c0a9..3376c6a50 100644 --- a/src/test/java/org/flag4j/sparse_vector/CooVectorToStringTests.java +++ b/src/test/java/org/flag4j/sparse_vector/CooVectorToStringTests.java @@ -33,7 +33,7 @@ static void cleanup() { @Test void toStringTestCase() { // --------------------- Sub-case 1 --------------------- - exp = "Full Shape: 3056\n" + + exp = "Full Shape: (3056)\n" + "Non-zero entries: [ 1.34 525 63.7 -0.0234 ]\n" + "Indices: [1, 567, 1567, 2506]"; assertEquals(exp, a.toString()); @@ -42,7 +42,7 @@ void toStringTestCase() { PrintOptions.setCentering(false); PrintOptions.setMaxColumns(2); PrintOptions.setPrecision(2); - exp = "Full Shape: 3056\n" + + exp = "Full Shape: (3056)\n" + "Non-zero entries: [1.34 ... -0.02 ]\n" + "Indices: [1, 567, 1567, 2506]"; assertEquals(exp, a.toString()); diff --git a/src/test/java/org/flag4j/tensor/TensorConversionTests.java b/src/test/java/org/flag4j/tensor/TensorConversionTests.java index 6cd114976..f79387a52 100644 --- a/src/test/java/org/flag4j/tensor/TensorConversionTests.java +++ b/src/test/java/org/flag4j/tensor/TensorConversionTests.java @@ -36,7 +36,7 @@ void toComplexTestCase() { new CNumber(15.61), new CNumber(14.15), new CNumber(-99.23425), new CNumber(0.001345), new CNumber(2.677), new CNumber(8.14), new CNumber(-0.000194), new CNumber(1), new CNumber(234)}; - exp = new CTensor(shape.copy(), expEntries); + exp = new CTensor(shape, expEntries); assertEquals(exp, A.toComplex()); } diff --git a/src/test/java/org/flag4j/tensor/TensorReshapeTests.java b/src/test/java/org/flag4j/tensor/TensorReshapeTests.java index 270e9ce46..bdf3215f8 100644 --- a/src/test/java/org/flag4j/tensor/TensorReshapeTests.java +++ b/src/test/java/org/flag4j/tensor/TensorReshapeTests.java @@ -34,25 +34,25 @@ void reshapeTestCase() { expShape = new Shape(1, 1, 12, 1); exp = new Tensor(expShape, Arrays.copyOf(aEntries, aEntries.length)); - assertEquals(exp, A.reshape(expShape.copy())); + assertEquals(exp, A.reshape(expShape)); // -------------------------- Sub-case 2 -------------------------- expShape = new Shape(4, 3); exp = new Tensor(expShape, Arrays.copyOf(aEntries, aEntries.length)); - assertEquals(exp, A.reshape(expShape.copy())); + assertEquals(exp, A.reshape(expShape)); // -------------------------- Sub-case 3 -------------------------- expShape = new Shape(2, 3, 2); exp = new Tensor(expShape, Arrays.copyOf(aEntries, aEntries.length)); - assertEquals(exp, A.reshape(expShape.copy())); + assertEquals(exp, A.reshape(expShape)); // -------------------------- Sub-case 4 -------------------------- expShape = new Shape(2, 2, 3, 1); exp = new Tensor(expShape, Arrays.copyOf(aEntries, aEntries.length)); - assertEquals(exp, A.reshape(expShape.copy())); + assertEquals(exp, A.reshape(expShape)); } diff --git a/src/test/java/org/flag4j/tensor/TensorToStringTests.java b/src/test/java/org/flag4j/tensor/TensorToStringTests.java index 7ba10a261..973984780 100644 --- a/src/test/java/org/flag4j/tensor/TensorToStringTests.java +++ b/src/test/java/org/flag4j/tensor/TensorToStringTests.java @@ -34,7 +34,7 @@ static void cleanup() { void toStringTestCase() { PrintOptions.resetAll(); // ---------------------- Sub-case 1 ---------------------- - exp = "Full Shape: 2x3x1x2\n" + + exp = "Full Shape: (2, 3, 1, 2)\n" + "[ 1 -1.4133 113.4 0.4 11.3 445 133.445 9.8 13384 ... 12 ]"; assertEquals(exp, A.toString()); @@ -42,7 +42,7 @@ void toStringTestCase() { PrintOptions.setMaxColumns(15); PrintOptions.setPrecision(2); PrintOptions.setCentering(false); - exp = "Full Shape: 2x3x1x2\n" + + exp = "Full Shape: (2, 3, 1, 2)\n" + "[1 -1.41 113.4 0.4 11.3 445 133.45 9.8 13384 -993.44 11 12 ]"; assertEquals(exp, A.toString()); } diff --git a/src/test/java/org/flag4j/tensor/TensorUnitaryOperationTests.java b/src/test/java/org/flag4j/tensor/TensorUnitaryOperationTests.java index 01bbfd47c..c889ca72f 100644 --- a/src/test/java/org/flag4j/tensor/TensorUnitaryOperationTests.java +++ b/src/test/java/org/flag4j/tensor/TensorUnitaryOperationTests.java @@ -32,7 +32,7 @@ void sqrtTestCase() { Math.sqrt(0.000123), Math.sqrt(5.23523), Math.sqrt(-834513.36), Math.sqrt(235.6), Math.sqrt(934), Math.sqrt(13.5), Math.sqrt(-0.0), Math.sqrt(0.1), Math.sqrt(345), Math.sqrt(8345.6), Math.sqrt(1.00015), Math.sqrt(Double.POSITIVE_INFINITY)}; - expShape = aShape.copy(); + expShape = aShape; exp = new Tensor(expShape, expEntries); assertEquals(exp, A.sqrt()); @@ -46,7 +46,7 @@ void absTestCase() { Math.abs(0.000123), Math.abs(5.23523), Math.abs(-834513.36), Math.abs(235.6), Math.abs(934), Math.abs(13.5), Math.abs(-0.0), Math.abs(0.1), Math.abs(345), Math.abs(8345.6), Math.abs(1.00015), Math.abs(Double.POSITIVE_INFINITY)}; - expShape = aShape.copy(); + expShape = aShape; exp = new Tensor(expShape, expEntries); assertEquals(exp, A.abs()); @@ -60,7 +60,7 @@ void recipTestCase() { 1/(0.000123), 1/(5.23523), 1/(-834513.36), 1/(235.6), 1/(934.0), 1/(13.5), 1/(-0.0), 1/(0.1), 1/(345.0), 1/(8345.6), 1/(1.00015), 1/(Double.POSITIVE_INFINITY)}; - expShape = aShape.copy(); + expShape = aShape; exp = new Tensor(expShape, expEntries); assertEquals(exp, A.recip()); diff --git a/src/test/java/org/flag4j/util/ErrorMessagesTests.java b/src/test/java/org/flag4j/util/ErrorMessagesTests.java index ad518bb0b..8e1f15e59 100644 --- a/src/test/java/org/flag4j/util/ErrorMessagesTests.java +++ b/src/test/java/org/flag4j/util/ErrorMessagesTests.java @@ -18,7 +18,7 @@ void EqualShapeErrMsgTestCase() { s1 = new Shape(2); s2 = new Shape(5); expMsg = String.format("Expecting matrices to have the same shape but got shapes %s and %s.", - "2", "5"); + "(2)", "(5)"); assertEquals(expMsg, ErrorMessages.equalShapeErrMsg(s1, s2)); @@ -27,7 +27,7 @@ void EqualShapeErrMsgTestCase() { s1 = new Shape(1, 2, 3, 4); s2 = new Shape(4, 3, 2, 1); expMsg = String.format("Expecting matrices to have the same shape but got shapes %s and %s.", - "1x2x3x4", "4x3x2x1"); + "(1, 2, 3, 4)", "(4, 3, 2, 1)"); assertEquals(expMsg, ErrorMessages.equalShapeErrMsg(s1, s2)); } @@ -40,7 +40,7 @@ void matMultShapeErrMsgTestCase() { s2 = new Shape(14, 4); expMsg = String.format("Expecting the number of columns in the first matrix to" + " match the number rows in the second matrix but got shapes %s and %s.", - "10x5", "14x4"); + "(10, 5)", "(14, 4)"); assertEquals(expMsg, ErrorMessages.matMultShapeErrMsg(s1, s2)); } diff --git a/target/flag4j-v0.1.0-beta.jar b/target/flag4j-v0.1.0-beta.jar index b1e084875693ae5a7a28a73bf06141ebe2dd8539..e5f8f14658758aa645ee5905e93ebf2657d43910 100644 GIT binary patch delta 329387 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ⓈIj>y}ck}`t*q6hZGmR&mVVQ|Y2L;;U5 zwKGEONKq9x63()@jxeR0J>AWIWx0+Z_u5@YpdUILS-1&#ql2L_`MXn6b>4qc@^+74 zFZQsP^CDi-DsG$PxO(XhivFQQo>i;)`(cYY1?5HUxh|8clQNU?4nSRG6FA3}nUtxv zW~!0R^c+QWME28jWc_)PYm@lsfzNj(VU|302!c{x4}4gYWS#8t3`)tF$$hzc0TN2i zYt2k{ZOUtnq~+wPJ?ytgA^LwoR%UVq63Iy-PVfQJxNcW6QanttP)?U%auj3JSdW0! zbm>%n2JQ4LjF6v)aq_RBSbhPf$S-1Uei9)kW7eNl+y=Pgvhcd5V5gJ{J4FXvW5FlrkBW+K?KF z2-;$nDJb5)aXYd6f>f2f}n^QRm5RmbhPIv!u6BT^*_jo%niL5b4jiJzT`!& zhGiy+*ioX-vGg~HV>S9P#_Se>dliKd#*nMu@r!Q0&A2WFB?*$1WEidtgB(SJ2}&vy zDQPfANr%PC2v~oqjD+)*Oz?%GKSSEMP^i;V?>Y&i(!?Rg%p?r8~A@PMr3##x{R265H2&GJ_=tDkw#ZD z8q7#*Fe9zOh_oDb2G%LGF*bn}^G`&i9fo~6vT(4oDXM?YF#<=W=$a_v#E6bhfuDql zX3+IL*55b|7bCs*%$(o1-GSz|WP4?r-F654(?5nsx1l&B5G@too_UnLxpoBmqw8T< zDZFP&V-NfD5%zXN*$DP-H+z3g-p%kq5Bs;P89lFu9iJ^#E162c0az7r3kBWc^B&G> zPzx zix>)yAHlN-&pC*}4T791J7ptyw(*&ZpA;oMJYV#5^TIyY-2kId+p|DcX2WP@4op(! zLWwdDs+C3Px{J|m>)`@r33Mpuz#i=ThO!K5EgPj=z{V&SvMObxS)5-0Q~9Uj0>(<1#b4zAMQ5D>=Lu(3;6|u2p56*&#?xx} z1OH6i5&8%A=}+H;vy7*7JyG`xnN=CLu}8CPEOt*A#qK%aK8Yl#DrYKtlRTXg{M5c4 z{PTYn_RYnQ<1pp~jH3?v_6g*ifbz(<^p$9AywNXvdO+iE*_iZjZW*bR=om26Mh zYfIU>Wf*7hX4}EmW3xDe_efx8w(7x}4S|1{31pt)7+Y3@0(!unqZva0vg3%?4ic!2 z&ylzRG!+AsR&hxsrDf&a+ zuhsTLRHG1+c^?{IWb0Jcv%NUEV2SNu>w#XJ!OJAskfYl8^?+7FzYi(Oc6IZm)*pWm zL}O@)G``A~rxnh4nkXqTKAG3e8wZ`-iX_#}xmOPs2(6uDT3dG@wPZ5-&)T6_n}wug z18thYRx;^)V>iDb5ni%g*v+-aO7G?y2a5$y+9uT}oTav9lG{$#n+KgpQth~iIlhYH zIxV(-=XEB+6#HD*I%pB5*yqA+LjZq@XWjNeTi0(dUB{q zi^<1%`Q6-ldB9md{$d=ookK#qMAGc?S;A_?HlNv6J^WH

er1+|K@A9W)o0ODT3h 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%0AlHI9sP** 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%0A!QglfEr0RcnLehIg3)+{0%BB0ifH|O<^$( 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

tMYJD+8yS&;5C+?R@( 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≀+5;e=9GKlX$2P;|L{hnONx^= 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 aI?*0?Xj*RWm^O8OFaBl$M@26Lneu-_`Uz?P delta 327581 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

  • )rCLQx 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

    j}5pv+?_B-CkYH>!hc_ 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 From 3681c9cf27d824373a1e562d49c03e4ba651b9ed Mon Sep 17 00:00:00 2001 From: jacob Date: Fri, 2 Aug 2024 09:23:02 -0600 Subject: [PATCH 3/8] Started implementation for sparse tensor dot product. --- .../java/org/flag4j/arrays/dense/CTensor.java | 16 +- .../java/org/flag4j/arrays/dense/Tensor.java | 18 +- .../org/flag4j/arrays/sparse/CooCMatrix.java | 29 +- .../org/flag4j/arrays/sparse/CooCTensor.java | 647 ++++++++++++------ .../org/flag4j/arrays/sparse/CooCVector.java | 24 +- .../org/flag4j/arrays/sparse/CooMatrix.java | 29 +- .../org/flag4j/arrays/sparse/CooTensor.java | 347 ++++------ .../org/flag4j/arrays/sparse/CooVector.java | 33 +- .../org/flag4j/arrays/sparse/CsrCMatrix.java | 25 +- .../org/flag4j/arrays/sparse/CsrMatrix.java | 23 +- .../org/flag4j/complex_numbers/CNumber.java | 3 + src/main/java/org/flag4j/core/Shape.java | 38 +- .../org/flag4j/core/TensorExclusiveMixin.java | 24 +- .../sparse_base/ComplexSparseTensorBase.java | 9 - .../sparse_base/RealSparseTensorBase.java | 10 +- .../core/sparse_base/SparseTensorBase.java | 14 +- src/main/java/org/flag4j/io/TensorWriter.java | 46 ++ .../dense/complex/ComplexDenseOperations.java | 17 + .../dense/real/RealDenseTensorDot.java | 4 +- .../complex/ComplexDenseSparseOperations.java | 36 + .../real/RealDenseSparseTensorOperations.java | 38 + .../RealComplexDenseSparseOperations.java | 75 ++ .../complex/ComplexCooTensorOperations.java | 144 ++++ .../sparse/coo/real/RealCooTensorDot.java | 129 ++++ .../coo/real/RealCooTensorOperations.java | 143 ++++ .../RealComplexCooTensorOperations.java | 194 ++++++ src/main/java/org/flag4j/util/ArrayUtils.java | 17 + target/flag4j-v0.1.0-beta.jar | Bin 613120 -> 622085 bytes 28 files changed, 1554 insertions(+), 578 deletions(-) create mode 100644 src/main/java/org/flag4j/operations/sparse/coo/complex/ComplexCooTensorOperations.java create mode 100644 src/main/java/org/flag4j/operations/sparse/coo/real/RealCooTensorDot.java create mode 100644 src/main/java/org/flag4j/operations/sparse/coo/real/RealCooTensorOperations.java create mode 100644 src/main/java/org/flag4j/operations/sparse/coo/real_complex/RealComplexCooTensorOperations.java diff --git a/src/main/java/org/flag4j/arrays/dense/CTensor.java b/src/main/java/org/flag4j/arrays/dense/CTensor.java index f5c06172c..d70588857 100644 --- a/src/main/java/org/flag4j/arrays/dense/CTensor.java +++ b/src/main/java/org/flag4j/arrays/dense/CTensor.java @@ -45,6 +45,7 @@ import org.flag4j.operations.dense_sparse.coo.real_complex.RealComplexDenseSparseOperations; import org.flag4j.util.ArrayUtils; import org.flag4j.util.ErrorMessages; +import org.flag4j.util.ParameterChecks; import org.flag4j.util.StringUtils; import java.util.Arrays; @@ -529,7 +530,6 @@ public CTensor sub(CooCTensor B) { * @param B Second tensor in the subtraction. * @throws IllegalArgumentException If this tensor and B have different shapes. */ - @Override public void addEq(CooTensor B) { RealComplexDenseSparseOperations.addEq(this, B); } @@ -541,7 +541,6 @@ public void addEq(CooTensor B) { * @param B Second tensor in the subtraction. * @throws IllegalArgumentException If this tensor and B have different shapes. */ - @Override public void subEq(CooTensor B) { RealComplexDenseSparseOperations.subEq(this, B); } @@ -646,6 +645,19 @@ public CVector toVector() { } + /** + * Converts this tensor to a matrix with the specified shape. + * @param matShape Shape of the resulting matrix. Must be broadcastable with the shape of this tensor. + * @return A matrix of shape {@code matShape} with the values of this tensor. + */ + public CMatrix toMatrix(Shape matShape) { + ParameterChecks.assertBroadcastable(shape, matShape); + ParameterChecks.assertRank(2, matShape); + + return new CMatrix(matShape, ArrayUtils.copyOf(entries)); + } + + /** * Converts this tensor to an equivalent matrix. * @return If this tensor is rank 2, then the equivalent matrix will be returned. diff --git a/src/main/java/org/flag4j/arrays/dense/Tensor.java b/src/main/java/org/flag4j/arrays/dense/Tensor.java index 059b44439..a3f85bdc2 100644 --- a/src/main/java/org/flag4j/arrays/dense/Tensor.java +++ b/src/main/java/org/flag4j/arrays/dense/Tensor.java @@ -43,11 +43,12 @@ import org.flag4j.operations.dense_sparse.coo.real.RealDenseSparseTensorOperations; import org.flag4j.operations.dense_sparse.coo.real_complex.RealComplexDenseSparseOperations; import org.flag4j.util.ErrorMessages; +import org.flag4j.util.ParameterChecks; import org.flag4j.util.StringUtils; import java.util.Arrays; - +// TODO: Allow for zero dimension shapes for scalar tensors. /** * Real Dense Tensor. May have any rank (that is, may have any number of unique axes/dimensions). */ @@ -303,7 +304,6 @@ public Tensor flatten() { * @param B Second tensor in the addition. * @throws IllegalArgumentException If this tensor and {@code B} have different shapes. */ - @Override public void addEq(CooTensor B) { RealDenseSparseTensorOperations.addEq(this, B); } @@ -482,7 +482,6 @@ public CTensor sub(CooCTensor B) { * @param B Second tensor in the subtraction. * @throws IllegalArgumentException If this tensor and B have different shapes. */ - @Override public void subEq(CooTensor B) { RealDenseSparseTensorOperations.subEq(this, B); } @@ -567,6 +566,19 @@ public Vector toVector() { } + /** + * Converts this tensor to a matrix with the specified shape. + * @param matShape Shape of the resulting matrix. Must be broadcastable with the shape of this tensor. + * @return A matrix of shape {@code matShape} with the values of this tensor. + */ + public Matrix toMatrix(Shape matShape) { + ParameterChecks.assertBroadcastable(shape, matShape); + ParameterChecks.assertRank(2, matShape); + + return new Matrix(matShape, entries.clone()); + } + + /** * Converts this tensor to an equivalent matrix. * @return If this tensor is rank 2, then the equivalent matrix will be returned. diff --git a/src/main/java/org/flag4j/arrays/sparse/CooCMatrix.java b/src/main/java/org/flag4j/arrays/sparse/CooCMatrix.java index 8e633fb57..7eb8fddea 100644 --- a/src/main/java/org/flag4j/arrays/sparse/CooCMatrix.java +++ b/src/main/java/org/flag4j/arrays/sparse/CooCMatrix.java @@ -651,7 +651,7 @@ public CMatrix toDense() { int row; int col; - for(int i=0; i -// implements ComplexTensorExclusiveMixin // TODO: Implement methods from this class. + implements ComplexTensorExclusiveMixin { @@ -83,7 +91,7 @@ public CooCTensor(Shape shape, int[] nonZeroEntries, int[][] indices) { super(shape, nonZeroEntries.length, new CNumber[nonZeroEntries.length], indices); this.shape.makeStridesIfNull(); - for(int i=0; i nonZeroEntries, List indices) { + super(shape, nonZeroEntries.size(), + nonZeroEntries.toArray(new CNumber[0]), + indices.toArray(new int[0][])); + this.shape.makeStridesIfNull(); + } + + /** * Constructs a sparse complex tensor whose non-zero values, indices, and shape are specified by another sparse complex * tensor. @@ -149,64 +171,6 @@ public boolean allClose(CooCTensor tensor, double relTol, double absTol) { } - /** - * Checks if this tensor has only real valued entries. - * - * @return True if this tensor contains NO complex entries. Otherwise, returns false. - */ - @Override - public boolean isReal() { - return false; - } - - - /** - * Checks if this tensor contains at least one complex entry. - * - * @return True if this tensor contains at least one complex entry. Otherwise, returns false. - */ - @Override - public boolean isComplex() { - return false; - } - - - /** - * Computes the complex conjugate of a tensor. - * - * @return The complex conjugate of this tensor. - */ - @Override - public CooCTensor conj() { - return null; - } - - - /** - * Converts a complex tensor to a real matrix. The imaginary component of any complex value will be ignored. - * - * @return A tensor of the same size containing only the real components of this tensor. - */ - @Override - public CooTensor toReal() { - return null; - } - - - /** - * Converts a complex tensor to a real matrix safely. That is, first checks if the tensor only contains real values - * and then converts to a real tensor. However, if non-real value exist, then an error is thrown. - * - * @return A tensor of the same size containing only the real components of this tensor. - * @throws RuntimeException If this tensor contains at least one non-real value. - * @see #toReal() - */ - @Override - public CooTensor toRealSafe() { - return null; - } - - /** * Computes the conjugate transpose of this tensor. In the context of a tensor, this swaps the first and last axes * and takes the complex conjugate of the elements along these axes. Same as {@link #H}. @@ -215,7 +179,7 @@ public CooTensor toRealSafe() { */ @Override public CooCTensor hermTranspose() { - return null; + return H(0, getRank()-1); } @@ -227,7 +191,7 @@ public CooCTensor hermTranspose() { */ @Override public CooCTensor H() { - return null; + return H(0, getRank()-1); } @@ -242,42 +206,7 @@ public CooCTensor H() { */ @Override public CooCTensor set(CNumber value, int... indices) { - return null; - } - - - /** - * Checks if this tensor only contains zeros. - * - * @return True if this tensor only contains zeros. Otherwise, returns false. - */ - @Override - public boolean isZeros() { - return false; - } - - - /** - * Checks if this tensor only contains ones. - * - * @return True if this tensor only contains ones. Otherwise, returns false. - */ - @Override - public boolean isOnes() { - return false; - } - - - /** - * Copies and reshapes tensor if possible. The total number of entries in this tensor must match the total number of entries - * in the reshaped tensor. - * - * @param shape Shape of the new tensor. - * @return A tensor which is equivalent to this tensor but with the specified shape. - * @throws IllegalArgumentException If this tensor cannot be reshaped to the specified dimensions. - */ - @Override - public CooCTensor reshape(int... shape) { + // TODO: Implementation. return null; } @@ -291,6 +220,7 @@ public CooCTensor reshape(int... shape) { */ @Override public CooCTensor set(double value, int... indices) { + // TODO: Implementation. return null; } @@ -349,315 +279,447 @@ public CooCTensor flatten() { /** - * Computes the element-wise addition between two tensors of the same rank. + * Computes the tensor contraction of this tensor with a specified tensor over the specified set of axes. That is, + * computes the sum of products between the two tensors along the specified set of axes. * - * @param B Second tensor in the addition. - * @return The result of adding the tensor B to this tensor element-wise. - * @throws IllegalArgumentException If this tensor and B have different shapes. + * @param src2 Tensor to contract with this tensor. + * @param aAxes Axes along which to compute products for this tensor. + * @param bAxes Axes along which to compute products for {@code src2} tensor. + * + * @return The tensor dot product over the specified axes. + * + * @throws IllegalArgumentException If the two tensors shapes do not match along the specified axes pairwise in + * {@code aAxes} and {@code bAxes}. + * @throws IllegalArgumentException If {@code aAxes} and {@code bAxes} do not match in length, or if any of the axes + * are out of bounds for the corresponding tensor. */ @Override - public CooCTensor add(CooCTensor B) { + public CooCTensor tensorDot(CooCTensor src2, int[] aAxes, int[] bAxes) { + // TODO: Implementation. return null; } /** - * Adds specified value to all entries of this tensor. + * Computes the tensor dot product of this tensor with a second tensor. That is, sums the product of two tensor + * elements over the last axis of this tensor and the second-to-last axis of {@code src2}. If both tensors are + * rank 2, this is equivalent to matrix multiplication. * - * @param a Value to add to all entries of this tensor. - * @return The result of adding the specified value to each entry of this tensor. + * @param src2 Tensor to compute dot product with this tensor. + * + * @return The tensor dot product over the last axis of this tensor and the second to last axis of {@code src2}. + * + * @throws IllegalArgumentException If this tensors shape along the last axis does not match {@code src2} shape + * along the second-to-last axis. */ @Override - public CTensor add(double a) { + public CooCTensor tensorDot(CooCTensor src2) { + // TODO: Implementation. return null; } /** - * Adds specified value to all entries of this tensor. + * Computes the transpose of a tensor. Same as {@link #transpose(int, int)}. + * In the context of a tensor, this exchanges the specified axes. + * Also see {@link #transpose()} and + * {@link #T()} to exchange first and last axes. * - * @param a Value to add to all entries of this tensor. - * @return The result of adding the specified value to each entry of this tensor. + * @param axis1 First axis to exchange. + * @param axis2 Second axis to exchange. + * + * @return The transpose of this tensor. */ @Override - public CTensor add(CNumber a) { - return null; + public CooCTensor T(int axis1, int axis2) { + int rank = getRank(); + ParameterChecks.assertIndexInBounds(rank, axis1, axis2); + + if(axis1 == axis2) return copy(); // Simply return a copy. + + int[][] transposeIndices = new int[nnz][rank]; + CNumber[] transposeEntries = new CNumber[nnz]; + + for(int i=0; iComputes the 'inverse' of this tensor. That is, computes the tensor {@code X=this.tensorInv()} such that + * {@link #tensorDot(TensorBase, int) this.tensorDot(X, numIndices)} is the 'identity' tensor for the tensor dot product operation. + * A tensor {@code I} is the identity for a tensor dot product if {@code this.tensorDot(I, numIndices).equals(this)}.

    + * + *

    WARNING: This method will convert this tensor to a dense tensor.

    + * + * @param numIndices The number of first numIndices which are involved in the inverse sum. + * + * @return The 'inverse' of this tensor as defined in the above sense. * - * @return The indices of the maximum value in this tensor. If this value occurs multiple times, the indices of the first - * entry (in row-major ordering) are returned. + * @see #tensorInv() */ @Override - public int[] argMax() { - return new int[0]; + public CTensor tensorInv(int numIndices) { + return toDense().tensorInv(numIndices); } @@ -669,6 +731,7 @@ public int[] argMax() { */ @Override public CooCTensor flatten(int axis) { + // TODO: Implementation. return null; } @@ -735,6 +798,20 @@ public static CooCTensor fromDense(CTensor src) { } + /** + * Converts this tensor to a matrix with the specified shape. + * @param matShape Shape of the resulting matrix. Must be broadcastable with the shape of this tensor. + * @return A matrix of shape {@code matShape} with the values of this tensor. + */ + public CooCMatrix toMatrix(Shape matShape) { + ParameterChecks.assertRank(2, matShape); + CooCTensor t = reshape(matShape); // Reshape as rank 2 tensor. Broadcastable check made here. + int[][] tIndices = RealDenseTranspose.standardIntMatrix(t.indices); + + return new CooCMatrix(matShape, t.entries.clone(), tIndices[0], tIndices[1]); + } + + /** * Converts this sparse tensor to an equivalent dense tensor. * @@ -744,10 +821,136 @@ public static CooCTensor fromDense(CTensor src) { public CTensor toDense() { CNumber[] entries = new CNumber[totalEntries().intValueExact()]; - for(int i=0; i nonZeroEntries, List indices) { + super(shape, nonZeroEntries.size(), + ArrayUtils.fromDoubleList(nonZeroEntries), + indices.toArray(new int[0][])); + this.shape.makeStridesIfNull(); + } + + + /** * Constructs a sparse tensor whose shape and non-zero values/indices are given by another sparse tensor. * This effectively copies the tensor. @@ -194,17 +216,6 @@ protected CooCTensor makeComplexTensor(Shape shape, CNumber[] entries, int[][] i return new CooCTensor(shape, entries, indices); } - /** - * Checks if this tensor only contains ones. - * - * @return True if this tensor only contains ones. Otherwise, returns false. - */ - @Override - public boolean isOnes() { - // TODO: Implementation. - return false; - } - /** * Sets an index of this tensor to a specified value. @@ -267,8 +278,10 @@ public CooTensor reshape(Shape newShape) { public CooTensor flatten() { int[][] destIndices = new int[entries.length][1]; - for(int i = 0; i < entries.length; i++) - destIndices[i][0] = RealDenseOperations.prod(indices[i]); + for(int i = 0; i < entries.length; i++) { + destIndices[i][0] = shape.entriesIndex(indices[i]); + + } return new CooTensor(shape, entries.clone(), destIndices); } @@ -291,8 +304,7 @@ public CooTensor flatten() { */ @Override public CooTensor tensorDot(CooTensor src2, int[] aAxes, int[] bAxes) { - // TODO: Implementation. - return null; + return RealCooTensorDot.tensorDot(this, src2, aAxes, bAxes); } @@ -328,8 +340,25 @@ public CooTensor tensorDot(CooTensor src2) { */ @Override public CooTensor T(int axis1, int axis2) { - // TODO: Implementation. - return null; + int rank = getRank(); + ParameterChecks.assertIndexInBounds(rank, axis1, axis2); + + if(axis1 == axis2) return copy(); // Simply return a copy. + + int[][] transposeIndices = new int[nnz][rank]; + double[] transposeEntries = new double[nnz]; + + for(int i=0; iComputes the 'inverse' of this tensor. That is, computes the tensor {@code X=this.tensorInv()} such that * {@link #tensorDot(TensorBase, int) this.tensorDot(X, numIndices)} is the 'identity' tensor for the tensor dot product operation. - * A tensor {@code I} is the identity for a tensor dot product if {@code this.tensorDot(I, numIndices).equals(this)}. + * A tensor {@code I} is the identity for a tensor dot product if {@code this.tensorDot(I, numIndices).equals(this)}.

    + * + *

    WARNING: This method will convert this tensor to a dense tensor.

    * * @param numIndices The number of first numIndices which are involved in the inverse sum. * @@ -812,48 +735,8 @@ public CooTensor elemDiv(Tensor B) { * @see #tensorInv() */ @Override - public CooTensor tensorInv(int numIndices) { - // TODO: Implementation. - return null; - } - - - /** - * Copies and reshapes tensor if possible. The total number of entries in this tensor must match the total number of entries - * in the reshaped tensor. - * - * @param shape Shape of the new tensor. - * @return A tensor which is equivalent to this tensor but with the specified shape. - * @throws IllegalArgumentException If this tensor cannot be reshaped to the specified dimensions. - */ - @Override - public CooTensor reshape(int... shape) { - // TODO: Implementation. - return null; - } - - - /** - * Finds the indices of the minimum value in this tensor. - * - * @return The indices of the minimum value in this tensor. If this value occurs multiple times, the indices of the first - * entry (in row-major ordering) are returned. - */ - @Override - public int[] argMin() { - return new int[0]; - } - - - /** - * Finds the indices of the maximum value in this tensor. - * - * @return The indices of the maximum value in this tensor. If this value occurs multiple times, the indices of the first - * entry (in row-major ordering) are returned. - */ - @Override - public int[] argMax() { - return new int[0]; + public Tensor tensorInv(int numIndices) { + return TensorInvert.inv(toDense(), numIndices); } @@ -887,6 +770,20 @@ public boolean allClose(CooTensor tensor, double relTol, double absTol) { } + /** + * Converts this tensor to a matrix with the specified shape. + * @param matShape Shape of the resulting matrix. Must be broadcastable with the shape of this tensor. + * @return A matrix of shape {@code matShape} with the values of this tensor. + */ + public CooMatrix toMatrix(Shape matShape) { + ParameterChecks.assertRank(2, matShape); + CooTensor t = reshape(matShape); // Reshape as rank 2 tensor. Broadcastable check made here. + int[][] tIndices = RealDenseTranspose.standardIntMatrix(t.indices); + + return new CooMatrix(matShape, t.entries.clone(), tIndices[0], tIndices[1]); + } + + /** * Converts this sparse tensor to an equivalent dense tensor. * @@ -896,7 +793,7 @@ public boolean allClose(CooTensor tensor, double relTol, double absTol) { public Tensor toDense() { double[] entries = new double[totalEntries().intValueExact()]; - for(int i=0; i0 && indices[indices.length-1] >= dims[dims.length-1]) { - throw new IndexOutOfBoundsException("Index " + indices[indices.length-1] + " out of bounds for axis " + - (indices.length-1) + " of tensor with shape " + this); - } + if(indices.length != dims.length) + throw new IllegalArgumentException("Indices rank " + indices.length + " does not match tensor rank " + dims.length); makeStridesIfNull(); // Computes strides if not previously computed. - int index = 0; - for(int i=0; i= dims[i]) { throw new IndexOutOfBoundsException("Index " + idx + " out of bounds for axis " + i + " of tensor with shape " + this); } - - index += idx*strides[i]; + index += idx * strides[i]; } - return index + indices[indices.length-1]; + return index; } @@ -310,13 +304,19 @@ public int hashCode() { * @return The string representation for this Shape object. */ public String toString() { - StringBuilder result = new StringBuilder("("); + StringJoiner joiner = new StringJoiner(", ", "(", ")"); for(int d : dims) - result.append(d).append(", "); + joiner.add(Integer.toString(d)); + + return joiner.toString(); + } + - result.replace(result.length()-2, result.length(), ")"); // Remove excess ', ' characters. + public static void main(String[] args) { + Shape s = new Shape(); + Tensor t = new Tensor(s); - return result.toString(); + System.out.println(t.entries.length); } } diff --git a/src/main/java/org/flag4j/core/TensorExclusiveMixin.java b/src/main/java/org/flag4j/core/TensorExclusiveMixin.java index b468183a2..80ccaf2e2 100644 --- a/src/main/java/org/flag4j/core/TensorExclusiveMixin.java +++ b/src/main/java/org/flag4j/core/TensorExclusiveMixin.java @@ -243,24 +243,6 @@ default T transpose(int... axes){ W sub(CooCTensor B); - /** - * Computes the element-wise subtraction of two tensors of the same rank and stores the result in this tensor. - * - * @param B Second tensor in the subtraction. - * @throws IllegalArgumentException If this tensor and B have different shapes. - */ - void addEq(CooTensor B); - - - /** - * Computes the element-wise subtraction of two tensors of the same rank and stores the result in this tensor. - * - * @param B Second tensor in the subtraction. - * @throws IllegalArgumentException If this tensor and B have different shapes. - */ - void subEq(CooTensor B); - - /** * Computes the element-wise multiplication between two tensors. * @param B Tensor to element-wise multiply to this tensor. @@ -303,7 +285,7 @@ default T transpose(int... axes){ * @return The result of the element-wise tensor division. * @throws IllegalArgumentException If the tensors do not have the same shape. */ - CTensor elemDiv(CTensor B); + W elemDiv(CTensor B); /** @@ -322,7 +304,7 @@ default T transpose(int... axes){ * @return The 'inverse' of this tensor as defined in the above sense. * @see #tensorInv(int) */ - default T tensorInv(){ + default U tensorInv(){ return tensorInv(2); } @@ -335,5 +317,5 @@ default T tensorInv(){ * @return The 'inverse' of this tensor as defined in the above sense. * @see #tensorInv() */ - T tensorInv(int numIndices); + U tensorInv(int numIndices); } diff --git a/src/main/java/org/flag4j/core/sparse_base/ComplexSparseTensorBase.java b/src/main/java/org/flag4j/core/sparse_base/ComplexSparseTensorBase.java index d62a63f85..01918dd1c 100644 --- a/src/main/java/org/flag4j/core/sparse_base/ComplexSparseTensorBase.java +++ b/src/main/java/org/flag4j/core/sparse_base/ComplexSparseTensorBase.java @@ -321,15 +321,6 @@ public T reshape(int... dims) { } - @Override - public T flatten() { - return makeTensor( - new Shape(shape.totalEntries().intValueExact()), - entries.clone(), copyIndices() - ); - } - - @Override public T roundToZero() { return makeTensor( diff --git a/src/main/java/org/flag4j/core/sparse_base/RealSparseTensorBase.java b/src/main/java/org/flag4j/core/sparse_base/RealSparseTensorBase.java index 235754716..b38f4c197 100644 --- a/src/main/java/org/flag4j/core/sparse_base/RealSparseTensorBase.java +++ b/src/main/java/org/flag4j/core/sparse_base/RealSparseTensorBase.java @@ -55,6 +55,7 @@ public abstract class RealSparseTensorBase< extends SparseTensorBase implements RealTensorMixin { + /** * Creates a sparse tensor with specified shape. Note, this constructor stores indices for each element in the * same array. That is, for a shape with rank {@code m} and {@code n} non-zero entries, @@ -258,15 +259,6 @@ public T reshape(int... dims) { } - @Override - public T flatten() { - return makeTensor( - new Shape(shape.totalEntries().intValueExact()), - entries.clone(), copyIndices() - ); - } - - @Override public int[] argMax() { int idx = AggregateDenseReal.argMax(entries); diff --git a/src/main/java/org/flag4j/core/sparse_base/SparseTensorBase.java b/src/main/java/org/flag4j/core/sparse_base/SparseTensorBase.java index 9415175e6..132ec5fd2 100644 --- a/src/main/java/org/flag4j/core/sparse_base/SparseTensorBase.java +++ b/src/main/java/org/flag4j/core/sparse_base/SparseTensorBase.java @@ -55,7 +55,7 @@ public abstract class SparseTensorBase 0) { @@ -73,7 +73,7 @@ protected SparseTensorBase(Shape shape, int nonZeroEntries, D entries, int[][] i } this.indices = indices; - this.nonZeroEntries = nonZeroEntries; + this.nnz = nnz; } @@ -86,7 +86,7 @@ protected SparseTensorBase(Shape shape, int nonZeroEntries, D entries, int[][] i * @param restIndices Indices for the rest of this tensor's axes. * @throws IllegalArgumentException If the rank of {@code shape} does not match the number of columns in {@code indices}. */ - protected SparseTensorBase(Shape shape, int nonZeroEntries, D entries, int[] initIndices, int[]... restIndices) { + protected SparseTensorBase(Shape shape, int nnz, D entries, int[] initIndices, int[]... restIndices) { super(shape, entries); int totalIndices = restIndices.length + 1; @@ -97,7 +97,7 @@ protected SparseTensorBase(Shape shape, int nonZeroEntries, D entries, int[] ini System.arraycopy(restIndices, 0, this.indices, 1, totalIndices - 1); - this.nonZeroEntries = nonZeroEntries; + this.nnz = nnz; } @@ -106,7 +106,7 @@ protected SparseTensorBase(Shape shape, int nonZeroEntries, D entries, int[] ini * @return The number of non-zero entries in this sparse tensor. */ public int nonZeroEntries() { - return nonZeroEntries; + return nnz; } @@ -127,7 +127,7 @@ public double sparsity() { * @return The density of this tensor. */ public double density() { - BigDecimal density = BigDecimal.valueOf(this.nonZeroEntries).divide( + BigDecimal density = BigDecimal.valueOf(this.nnz).divide( new BigDecimal(this.totalEntries()), 50, RoundingMode.HALF_UP ); diff --git a/src/main/java/org/flag4j/io/TensorWriter.java b/src/main/java/org/flag4j/io/TensorWriter.java index ace46a19c..53632fa53 100644 --- a/src/main/java/org/flag4j/io/TensorWriter.java +++ b/src/main/java/org/flag4j/io/TensorWriter.java @@ -25,10 +25,15 @@ package org.flag4j.io; +import org.flag4j.core.MatrixMixin; import org.flag4j.core.TensorBase; import org.flag4j.util.ErrorMessages; +import java.io.BufferedWriter; import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.util.StringJoiner; /** * The TensorWriter class provides several static methods for writing serialized @@ -64,4 +69,45 @@ public static boolean write(String fileName, TensorBase src return successfulWrite; } + + + /** + * Writes the specified matrix to a csv file. + * @param fileName File path to write matrix to. + * @param src Matrix to write to csv file. + * @param delimiter Delimiter to use in csv file. + * @return True if the write was successful. False if the write failed. + */ + public static boolean toCsv(String fileName, MatrixMixin src, String delimiter) { + boolean successfulWrite = true; + + int numRows = src.numRows(); + int numCols = src.numCols(); + + try (BufferedWriter writer = Files.newBufferedWriter(Paths.get(fileName))) { + for (int i = 0; i < numRows; i++) { + StringJoiner rowJoiner = new StringJoiner(delimiter); + for (int j = 0; j < numCols; j++) { + rowJoiner.add(src.get(i, j).toString()); + } + writer.write(rowJoiner.toString()); + writer.newLine(); + } + } catch (IOException e) { + successfulWrite = false; + } + + return successfulWrite; + } + + + /** + * Writes the specified matrix to a csv file. + * @param fileName File path to write matrix to. + * @param src Matrix to write to csv file. + * @return True if the write was successful. False if the write failed. + */ + public static boolean toCsv(String fileName, MatrixMixin src) { + return toCsv(fileName, src, ", "); + } } diff --git a/src/main/java/org/flag4j/operations/dense/complex/ComplexDenseOperations.java b/src/main/java/org/flag4j/operations/dense/complex/ComplexDenseOperations.java index 38c054a84..edbde595b 100644 --- a/src/main/java/org/flag4j/operations/dense/complex/ComplexDenseOperations.java +++ b/src/main/java/org/flag4j/operations/dense/complex/ComplexDenseOperations.java @@ -284,6 +284,23 @@ public static CNumber[] scalDiv(CNumber[] entries, CNumber divisor) { } + /** + * Computes the scalar division of a tensor. + * @param entries Entries of the tensor. + * @param divisor Scalar value to divide by. + * @return The scalar division of the tensor. + */ + public static CNumber[] scalDiv(CNumber[] entries, double divisor) { + CNumber[] quotient = new CNumber[entries.length]; + + for(int i=0; i sumEntries = new ArrayList<>(estimatedEntries); + List sumIndices = new ArrayList<>(estimatedEntries); + + int src2Pos = 0; + for(int i = 0; i < src1.nnz; i++) { + CNumber val1 = src1.entries[i]; + int[] src1Idx = src1Indices[i]; + + // Insert elements from src2 whose index is less than the current element from src1 + while(src2Pos < src2.nnz && Arrays.compare(src2Indices[src2Pos], src1Idx) < 0) { + sumEntries.add(src2.entries[src2Pos].copy()); + sumIndices.add(src2Indices[src2Pos++]); + } + + // Add the current element from src1 and handle matching indices from src2 + if(src2Pos < src2.nnz && Arrays.equals(src1Idx, src2Indices[src2Pos])) { + sumEntries.add(val1.add(src2.entries[src2Pos++])); + } else { + sumEntries.add(val1.copy()); + } + sumIndices.add(src1Idx); + } + + // Insert any remaining elements from src2 + while(src2Pos < src2.nnz) { + sumEntries.add(src2.entries[src2Pos].copy()); + sumIndices.add(src2Indices[src2Pos++]); + } + + return new CooCTensor(src1.shape, sumEntries, sumIndices); + } + + + /** + * Computes difference between two sparse COO tensors and stores result in a new COO tensor. + * @param src1 First tensor in the difference. + * @param src2 Second tensor in the difference. + * @return The element-wise tensor difference of {@code src1} and {@code src2}. + * @throws LinearAlgebraException If the tensors {@code src1} and {@code src2} do not have the same shape. + */ + public static CooCTensor sub(CooCTensor src1, CooCTensor src2) { + ParameterChecks.assertEqualShape(src1.shape, src2.shape); + + // Create deep copies of indices. + int[][] src1Indices = ArrayUtils.deepCopy(src1.indices, null); + int[][] src2Indices = ArrayUtils.deepCopy(src2.indices, null); + + // Roughly estimate the number of non-zero entries in sum. + int estimatedEntries = src1.nnz + src2.nnz; + List sumEntries = new ArrayList<>(estimatedEntries); + List sumIndices = new ArrayList<>(estimatedEntries); + + int src2Pos = 0; + for(int i = 0; i < src1.nnz; i++) { + CNumber val1 = src1.entries[i]; + int[] src1Idx = src1Indices[i]; + + // Insert elements from src2 whose index is less than the current element from src1. + while(src2Pos < src2.nnz && Arrays.compare(src2Indices[src2Pos], src1Idx) < 0) { + sumEntries.add(src2.entries[src2Pos].addInv()); + sumIndices.add(src2Indices[src2Pos++]); + } + + // Add the current element from src1 and handle matching indices from src2. + if(src2Pos < src2.nnz && Arrays.equals(src1Idx, src2Indices[src2Pos])) { + sumEntries.add(val1.sub(src2.entries[src2Pos++])); + } else { + sumEntries.add(val1.copy()); + } + sumIndices.add(src1Idx); + } + + // Insert any remaining elements from src2. + while(src2Pos < src2.nnz) { + sumEntries.add(src2.entries[src2Pos].addInv()); + sumIndices.add(src2Indices[src2Pos++]); + } + + return new CooCTensor(src1.shape, sumEntries, sumIndices); + } +} diff --git a/src/main/java/org/flag4j/operations/sparse/coo/real/RealCooTensorDot.java b/src/main/java/org/flag4j/operations/sparse/coo/real/RealCooTensorDot.java new file mode 100644 index 000000000..c97b838e8 --- /dev/null +++ b/src/main/java/org/flag4j/operations/sparse/coo/real/RealCooTensorDot.java @@ -0,0 +1,129 @@ +/* + * MIT License + * + * Copyright (c) 2024. Jacob Watters + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.flag4j.operations.sparse.coo.real; + +import org.flag4j.arrays.dense.Tensor; +import org.flag4j.arrays.sparse.CooMatrix; +import org.flag4j.arrays.sparse.CooTensor; +import org.flag4j.core.Shape; +import org.flag4j.util.ArrayUtils; +import org.flag4j.util.ErrorMessages; +import org.flag4j.util.ParameterChecks; + +public final class RealCooTensorDot { + + private RealCooTensorDot() { + // Hide default constructor for utility class. + throw new IllegalStateException(ErrorMessages.getUtilityClassErrMsg()); + } + + + /** + * Computes the tensor contraction of this tensor with a specified tensor over the specified set of axes. That is, + * computes the sum of products between the two tensors along the specified set of axes. + * @param src1 First tensor in the contraction. + * @param src2 Second tensor in the contraction. + * @param src1Axes Axes along which to compute products for {@code src1} tensor. + * @param src2Axes Axes along which to compute products for {@code src2} tensor. + * @return The tensor dot product over the specified axes. + * @throws IllegalArgumentException If the two tensors shapes do not match along the specified axes pairwise in + * {@code aAxes} and {@code bAxes}. + * @throws IllegalArgumentException If {@code aAxes} and {@code bAxes} do not match in length, or if any of the axes + * are out of bounds for the corresponding tensor. + */ + public static Tensor tensorDot(CooTensor src1, CooTensor src2, int[] src1Axes, int[] src2Axes) { + // Each array must specify the same number of axes. + ParameterChecks.assertEquals(src1Axes.length, src2Axes.length); + + // Axis values must be less than the rank of the tensor and non-negative + ParameterChecks.assertLessEq(src1.getRank()-1, src1Axes); + ParameterChecks.assertGreaterEq(0, src1Axes); + ParameterChecks.assertLessEq(src2.getRank()-1, src2Axes); + ParameterChecks.assertGreaterEq(0, src2Axes); + + int[] notin; + int n1; + int n2; + int pos; + + // ---- Compute new axes and shapes for first tensor. ---- + notin = ArrayUtils.notinAxes(src1Axes, src1.getRank()); + int[] src1NewAxes = ArrayUtils.join(notin, src1Axes); + + n2 = 1; + for(int axis : src1Axes) { + n2 *= src1.shape.get(axis); + } + + n1 = 1; + int[] src1OldDims = new int[notin.length]; + pos = 0; + for(int axis : notin) { + int a = src1.shape.get(axis); + n1 *= a; + src1OldDims[pos++] = a; + } + + Shape src1NewShape = new Shape(n1, n2); + // ----------------------------------------------------- + + // ---- Compute new axes and shapes for second tensor. ---- + notin = ArrayUtils.notinAxes(src2Axes, src2.getRank()); + int[] src2NewAxes = ArrayUtils.join(src2Axes, notin); + + n2 = 1; + for(int axis : src2Axes) { + n2 *= src2.shape.get(axis); + } + + n1 = 1; + pos = 0; + int[] src2OldDims = new int[notin.length]; + for(int axis : notin) { + int a = src2.shape.get(axis); + n1 *= a; + src2OldDims[pos++] = a; + } + + Shape src2NewShape = new Shape(n2, n1); + // ----------------------------------------------------- + + // Reform tensor dot product problem as a matrix multiplication problem. + CooMatrix at = src1.T(src1NewAxes).toMatrix(src1NewShape); + CooMatrix bt = src2.T(src2NewAxes).toMatrix(src2NewShape); + + Tensor product = at.mult(bt).toTensor(); + + // TODO: Should allow for zero dim shape indicating a scalar. Then only the else block would be needed. + Shape productShape; + if(src1Axes.length == src1.getRank() && src2Axes.length == src2.getRank()) { + productShape = new Shape(1); + } else { + productShape = new Shape(ArrayUtils.join(src1OldDims, src2OldDims)); + } + + return product.reshape(productShape); + } +} diff --git a/src/main/java/org/flag4j/operations/sparse/coo/real/RealCooTensorOperations.java b/src/main/java/org/flag4j/operations/sparse/coo/real/RealCooTensorOperations.java new file mode 100644 index 000000000..ead498382 --- /dev/null +++ b/src/main/java/org/flag4j/operations/sparse/coo/real/RealCooTensorOperations.java @@ -0,0 +1,143 @@ +/* + * MIT License + * + * Copyright (c) 2024. Jacob Watters + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.flag4j.operations.sparse.coo.real; + + +import org.flag4j.arrays.sparse.CooTensor; +import org.flag4j.util.ArrayUtils; +import org.flag4j.util.ParameterChecks; +import org.flag4j.util.exceptions.LinearAlgebraException; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +/** + * Utility class for computing operations between two real sparse COO tensors. + */ +public final class RealCooTensorOperations { + + private RealCooTensorOperations() { + // Hide default constructor for utility class. + } + + + /** + * Sums two sparse COO tensors and stores result in a new COO tensor. + * @param src1 First tensor in the sum. + * @param src2 Second tensor in the sum. + * @return The element-wise tensor sum of {@code src1} and {@code src2}. + * @throws LinearAlgebraException If the tensors {@code src1} and {@code src2} do not have the same shape. + */ + public static CooTensor add(CooTensor src1, CooTensor src2) { + ParameterChecks.assertEqualShape(src1.shape, src2.shape); + + // Create deep copies of indices. + int[][] src1Indices = ArrayUtils.deepCopy(src1.indices, null); + int[][] src2Indices = ArrayUtils.deepCopy(src2.indices, null); + + // Roughly estimate the number of non-zero entries in sum. + int estimatedEntries = src1.nnz + src2.nnz; + List sumEntries = new ArrayList<>(estimatedEntries); + List sumIndices = new ArrayList<>(estimatedEntries); + + int src2Pos = 0; + for(int i = 0; i < src1.nnz; i++) { + double val1 = src1.entries[i]; + int[] src1Idx = src1Indices[i]; + + // Insert elements from src2 whose index is less than the current element from src1. + while(src2Pos < src2.nnz && Arrays.compare(src2Indices[src2Pos], src1Idx) < 0) { + sumEntries.add(src2.entries[src2Pos]); + sumIndices.add(src2Indices[src2Pos++]); + } + + // Add the current element from src1 and handle matching indices from src2. + if(src2Pos < src2.nnz && Arrays.equals(src1Idx, src2Indices[src2Pos])) { + sumEntries.add(val1 + src2.entries[src2Pos++]); + } else { + sumEntries.add(val1); + } + sumIndices.add(src1Idx); + } + + // Insert any remaining elements from src2. + while(src2Pos < src2.nnz) { + sumEntries.add(src2.entries[src2Pos]); + sumIndices.add(src2Indices[src2Pos++]); + } + + return new CooTensor(src1.shape, sumEntries, sumIndices); + } + + + /** + * Computes difference between two sparse COO tensors and stores result in a new COO tensor. + * @param src1 First tensor in the difference. + * @param src2 Second tensor in the difference. + * @return The element-wise tensor difference of {@code src1} and {@code src2}. + * @throws LinearAlgebraException If the tensors {@code src1} and {@code src2} do not have the same shape. + */ + public static CooTensor sub(CooTensor src1, CooTensor src2) { + ParameterChecks.assertEqualShape(src1.shape, src2.shape); + + // Create deep copies of indices. + int[][] src1Indices = ArrayUtils.deepCopy(src1.indices, null); + int[][] src2Indices = ArrayUtils.deepCopy(src2.indices, null); + + // Roughly estimate the number of non-zero entries in sum. + int estimatedEntries = src1.nnz + src2.nnz; + List sumEntries = new ArrayList<>(estimatedEntries); + List sumIndices = new ArrayList<>(estimatedEntries); + + int src2Pos = 0; + for(int i = 0; i < src1.nnz; i++) { + double val1 = src1.entries[i]; + int[] src1Idx = src1Indices[i]; + + // Insert elements from src2 whose index is less than the current element from src1. + while(src2Pos < src2.nnz && Arrays.compare(src2Indices[src2Pos], src1Idx) < 0) { + sumEntries.add(-src2.entries[src2Pos]); + sumIndices.add(src2Indices[src2Pos++]); + } + + // Add the current element from src1 and handle matching indices from src2. + if(src2Pos < src2.nnz && Arrays.equals(src1Idx, src2Indices[src2Pos])) { + sumEntries.add(val1 - src2.entries[src2Pos++]); + } else { + sumEntries.add(val1); + } + sumIndices.add(src1Idx); + } + + // Insert any remaining elements from src2. + while(src2Pos < src2.nnz) { + sumEntries.add(-src2.entries[src2Pos]); + sumIndices.add(src2Indices[src2Pos++]); + } + + return new CooTensor(src1.shape, sumEntries, sumIndices); + } +} diff --git a/src/main/java/org/flag4j/operations/sparse/coo/real_complex/RealComplexCooTensorOperations.java b/src/main/java/org/flag4j/operations/sparse/coo/real_complex/RealComplexCooTensorOperations.java new file mode 100644 index 000000000..83485de6d --- /dev/null +++ b/src/main/java/org/flag4j/operations/sparse/coo/real_complex/RealComplexCooTensorOperations.java @@ -0,0 +1,194 @@ +/* + * MIT License + * + * Copyright (c) 2024. Jacob Watters + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.flag4j.operations.sparse.coo.real_complex; + +import org.flag4j.arrays.sparse.CooCTensor; +import org.flag4j.arrays.sparse.CooTensor; +import org.flag4j.complex_numbers.CNumber; +import org.flag4j.util.ArrayUtils; +import org.flag4j.util.ParameterChecks; +import org.flag4j.util.exceptions.LinearAlgebraException; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + + +/** + * Utility class for computing operations between a complex sparse COO tensor and a real coo tensor. + */ +public final class RealComplexCooTensorOperations { + + private RealComplexCooTensorOperations() { + // Hide default constructor for utility class. + } + + + /** + * Sums two sparse COO tensors and stores result in a new COO tensor. + * @param src1 First tensor in the sum. + * @param src2 Second tensor in the sum. + * @return The element-wise tensor sum of {@code src1} and {@code src2}. + * @throws LinearAlgebraException If the tensors {@code src1} and {@code src2} do not have the same shape. + */ + public static CooCTensor add(CooCTensor src1, CooTensor src2) { + ParameterChecks.assertEqualShape(src1.shape, src2.shape); + + // Create deep copies of indices. + int[][] src1Indices = ArrayUtils.deepCopy(src1.indices, null); + int[][] src2Indices = ArrayUtils.deepCopy(src2.indices, null); + + // Roughly estimate the number of non-zero entries in sum. + int estimatedEntries = src1.nnz + src2.nnz; + List sumEntries = new ArrayList<>(estimatedEntries); + List sumIndices = new ArrayList<>(estimatedEntries); + + int src2Pos = 0; + for(int i = 0; i < src1.nnz; i++) { + CNumber val1 = src1.entries[i]; + int[] src1Idx = src1Indices[i]; + + // Insert elements from src2 whose index is less than the current element from src1 + while(src2Pos < src2.nnz && Arrays.compare(src2Indices[src2Pos], src1Idx) < 0) { + sumEntries.add(new CNumber(src2.entries[src2Pos])); + sumIndices.add(src2Indices[src2Pos++]); + } + + // Add the current element from src1 and handle matching indices from src2 + if(src2Pos < src2.nnz && Arrays.equals(src1Idx, src2Indices[src2Pos])) { + sumEntries.add(val1.add(src2.entries[src2Pos++])); + } else { + sumEntries.add(val1.copy()); + } + sumIndices.add(src1Idx); + } + + // Insert any remaining elements from src2 + while(src2Pos < src2.nnz) { + sumEntries.add(new CNumber(src2.entries[src2Pos])); + sumIndices.add(src2Indices[src2Pos++]); + } + + return new CooCTensor(src1.shape, sumEntries, sumIndices); + } + + + /** + * Computes difference of two sparse COO tensors and stores result in a new COO tensor. + * @param src1 First tensor in the difference. + * @param src2 Second tensor in the difference. + * @return The element-wise tensor difference of {@code src1} and {@code src2}. + * @throws LinearAlgebraException If the tensors {@code src1} and {@code src2} do not have the same shape. + */ + public static CooCTensor sub(CooCTensor src1, CooTensor src2) { + ParameterChecks.assertEqualShape(src1.shape, src2.shape); + + // Create deep copies of indices. + int[][] src1Indices = ArrayUtils.deepCopy(src1.indices, null); + int[][] src2Indices = ArrayUtils.deepCopy(src2.indices, null); + + // Roughly estimate the number of non-zero entries in sum. + int estimatedEntries = src1.nnz + src2.nnz; + List sumEntries = new ArrayList<>(estimatedEntries); + List sumIndices = new ArrayList<>(estimatedEntries); + + int src2Pos = 0; + for(int i = 0; i < src1.nnz; i++) { + CNumber val1 = src1.entries[i]; + int[] src1Idx = src1Indices[i]; + + // Insert elements from src2 whose index is less than the current element from src1 + while(src2Pos < src2.nnz && Arrays.compare(src2Indices[src2Pos], src1Idx) < 0) { + sumEntries.add(new CNumber(-src2.entries[src2Pos])); + sumIndices.add(src2Indices[src2Pos++]); + } + + // Add the current element from src1 and handle matching indices from src2 + if(src2Pos < src2.nnz && Arrays.equals(src1Idx, src2Indices[src2Pos])) { + sumEntries.add(val1.sub(src2.entries[src2Pos++])); + } else { + sumEntries.add(val1.copy()); + } + sumIndices.add(src1Idx); + } + + // Insert any remaining elements from src2 + while(src2Pos < src2.nnz) { + sumEntries.add(new CNumber(-src2.entries[src2Pos])); + sumIndices.add(src2Indices[src2Pos++]); + } + + return new CooCTensor(src1.shape, sumEntries, sumIndices); + } + + + /** + * Computes difference of two sparse COO tensors and stores result in a new COO tensor. + * @param src1 First tensor in the difference. + * @param src2 Second tensor in the difference. + * @return The element-wise tensor difference of {@code src1} and {@code src2}. + * @throws LinearAlgebraException If the tensors {@code src1} and {@code src2} do not have the same shape. + */ + public static CooCTensor sub(CooTensor src1, CooCTensor src2) { + ParameterChecks.assertEqualShape(src1.shape, src2.shape); + + // Create deep copies of indices. + int[][] src1Indices = ArrayUtils.deepCopy(src1.indices, null); + int[][] src2Indices = ArrayUtils.deepCopy(src2.indices, null); + + // Roughly estimate the number of non-zero entries in sum. + int estimatedEntries = src1.nnz + src2.nnz; + List sumEntries = new ArrayList<>(estimatedEntries); + List sumIndices = new ArrayList<>(estimatedEntries); + + int src2Pos = 0; + for(int i = 0; i < src1.nnz; i++) { + double val1 = src1.entries[i]; + int[] src1Idx = src1Indices[i]; + + // Insert elements from src2 whose index is less than the current element from src1 + while(src2Pos < src2.nnz && Arrays.compare(src2Indices[src2Pos], src1Idx) < 0) { + sumEntries.add(src2.entries[src2Pos].addInv()); + sumIndices.add(src2Indices[src2Pos++]); + } + + // Add the current element from src1 and handle matching indices from src2 + if(src2Pos < src2.nnz && Arrays.equals(src1Idx, src2Indices[src2Pos])) { + sumEntries.add(src2.entries[src2Pos++].addInv().add(val1)); + } else { + sumEntries.add(new CNumber(val1)); + } + sumIndices.add(src1Idx); + } + + // Insert any remaining elements from src2 + while(src2Pos < src2.nnz) { + sumEntries.add(src2.entries[src2Pos].addInv()); + sumIndices.add(src2Indices[src2Pos++]); + } + + return new CooCTensor(src1.shape, sumEntries, sumIndices); + } +} diff --git a/src/main/java/org/flag4j/util/ArrayUtils.java b/src/main/java/org/flag4j/util/ArrayUtils.java index 028396033..ecb4b44cf 100644 --- a/src/main/java/org/flag4j/util/ArrayUtils.java +++ b/src/main/java/org/flag4j/util/ArrayUtils.java @@ -54,6 +54,7 @@ private ArrayUtils() { */ public static int[][] deepCopy(int[][] src, int[][] dest) { if(dest == null) dest = new int[src.length][src[0].length]; + if(src == dest) return dest; else ParameterChecks.assertArrayLengthsEq(src.length, dest.length); for(int i = 0; i < src.length; i++) { @@ -703,6 +704,22 @@ public static void swap(Object[] arr, int i, int j) { } + /** + * Copy and swaps to elements from a source array to a destination array. + * + * @param src Array to swap elements in. + * @param i Index of first value to swap. + * @param j Index of second value to swap. + * @param dest Destination array for copy (Assumed to be correctly sized). + * @throws IndexOutOfBoundsException If {@code i} or {@code j} are out of the bounds of {@code src}. + */ + public static void swapCopy(int[] src, int i, int j, int[] dest) { + int temp = src[i]; + src[i] = src[j]; + src[j] = temp; + } + + /** * Gets an array filled with integers from {@code start} (inclusive) to {@code end} (exclusive) * diff --git a/target/flag4j-v0.1.0-beta.jar b/target/flag4j-v0.1.0-beta.jar index e5f8f14658758aa645ee5905e93ebf2657d43910..8e678f2301afa85871ade5dc3472de2ae7e57976 100644 GIT binary patch delta 154895 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
    MatrixNorms() - Constructor for class org.flag4j.linalg.MatrixNorms
     
    -
    MatrixOperationsMixin<T,U,V,W,X,TT,UU> - Interface in org.flag4j.core
    +
    MatrixOperationsMixin<T,U,V,W,Y,X,TT,UU> - Interface in org.flag4j.core
    This interface specifies operations which should be implemented by any matrix (rank 2 tensor).
    @@ -568,10 +570,6 @@

    M

    Solver to solve a linear matrix equation C*X=d for X where C and X are matrices and d is a vector.
    -
    max() - Method in class org.flag4j.arrays.sparse.CooCTensor
    -
    -
    Finds the maximum value in this tensor.
    -
    max() - Method in class org.flag4j.core.dense_base.ComplexDenseTensorBase
     
    max() - Method in class org.flag4j.core.dense_base.RealDenseTensorBase
    @@ -596,10 +594,6 @@

    M

    The maximum real double value 1.7976931348623157E308.
    -
    maxAbs() - Method in class org.flag4j.arrays.sparse.CooCTensor
    -
    -
    Finds the maximum value, in absolute value, in this tensor.
    -
    maxAbs() - Method in class org.flag4j.core.dense_base.ComplexDenseTensorBase
     
    maxAbs() - Method in class org.flag4j.core.dense_base.RealDenseTensorBase
    @@ -676,10 +670,6 @@

    M

    Computes the minimum real component from an array of complex numbers.
    -
    maxReal() - Static method in class org.flag4j.complex_numbers.CNumber
    -
    -
    Gets the complex number equivalent to Double.MAX_VALUE.
    -
    maxRows - Static variable in class org.flag4j.io.PrintOptions
    @@ -701,10 +691,6 @@

    M

    Computes the maximum length of the string representation of a double in an array of doubles up until stopping index.
    -
    min() - Method in class org.flag4j.arrays.sparse.CooCTensor
    -
    -
    Finds the minimum value in this tensor.
    -
    min() - Method in class org.flag4j.core.dense_base.ComplexDenseTensorBase
     
    min() - Method in class org.flag4j.core.dense_base.RealDenseTensorBase
    @@ -733,10 +719,6 @@

    M

    The smallest possible real normal double 2.2250738585072014E-308.
    -
    minAbs() - Method in class org.flag4j.arrays.sparse.CooCTensor
    -
    -
    Finds the minimum value, in absolute value, in this tensor.
    -
    minAbs() - Method in class org.flag4j.core.dense_base.ComplexDenseTensorBase
     
    minAbs() - Method in class org.flag4j.core.dense_base.RealDenseTensorBase
    @@ -765,14 +747,6 @@

    M

    Computes the minimum real component from an array of complex numbers.
    -
    minReal() - Static method in class org.flag4j.complex_numbers.CNumber
    -
    -
    Gets the complex number equivalent to Double.MIN_VALUE.
    -
    -
    minRealNormal() - Static method in class org.flag4j.complex_numbers.CNumber
    -
    -
    Gets the complex number equivalent to Double.MIN_NORMAL.
    -
    minRecursiveSize - Static variable in class org.flag4j.concurrency.Configurations
    The minimum size of tensor/matrix/vector to make recursive calls on in recursive algorithms.
    @@ -793,18 +767,10 @@

    M

    Moves a non-zero value in a row of a CSR matrix to a new column to the left of its current column.
    -
    mult(double) - Method in class org.flag4j.arrays.sparse.CooCTensor
    -
    -
    Computes scalar multiplication of a tensor.
    -
    mult(double) - Method in class org.flag4j.arrays.sparse.CooCVector
    Computes scalar multiplication of a tensor.
    -
    mult(double) - Method in class org.flag4j.arrays.sparse.CooTensor
    -
    -
    Computes scalar multiplication of a tensor.
    -
    mult(double) - Method in class org.flag4j.complex_numbers.CNumber
    Computes the multiplication of a complex number and a double.
    @@ -1105,18 +1071,10 @@

    M

    Computes the matrix multiplication between two matrices.
    -
    mult(CNumber) - Method in class org.flag4j.arrays.sparse.CooCTensor
    -
    -
    Computes scalar multiplication of a tensor.
    -
    mult(CNumber) - Method in class org.flag4j.arrays.sparse.CooCVector
    Computes scalar multiplication of a tensor.
    -
    mult(CNumber) - Method in class org.flag4j.arrays.sparse.CooTensor
    -
    -
    Computes scalar multiplication of a tensor.
    -
    mult(CNumber) - Method in class org.flag4j.complex_numbers.CNumber
    Computes the multiplication of two complex numbers.
    @@ -1193,14 +1151,6 @@

    M

    Computes the matrix multiplication between two sparse CSR matrices and stores the result in a CSR matrix.
    -
    multEq(double) - Method in class org.flag4j.complex_numbers.CNumber
    -
    -
    Multiplies this complex number with another complex number and stores the result in this CNumber.
    -
    -
    multEq(CNumber) - Method in class org.flag4j.complex_numbers.CNumber
    -
    -
    Multiplies this complex number with another complex number and stores the result in this CNumber.
    -
    multInv() - Method in class org.flag4j.complex_numbers.CNumber
    Computes the multiplicative inverse of this complex number.
    diff --git a/docs/index-files/index-14.html b/docs/index-files/index-14.html index dd44c0f11..2de33ea9f 100644 --- a/docs/index-files/index-14.html +++ b/docs/index-files/index-14.html @@ -1,11 +1,11 @@ - + N-Index - + @@ -63,10 +63,6 @@

    N

    Error message for named parameter which is expected to be less than or equal to some threshold.
    -
    nan() - Static method in class org.flag4j.complex_numbers.CNumber
    -
    -
    Gets the complex number equivalent to Double.NaN.
    -
    NaN - Static variable in class org.flag4j.complex_numbers.CNumber
    Complex number with real and imaginary parts equal to Double.NaN.
    @@ -95,25 +91,9 @@

    N

    Gets an error message for an attempted construction of a tensor with a negative dimension.
    -
    negImagUnit() - Static method in class org.flag4j.complex_numbers.CNumber
    -
    -
    Gets the complex number equivalent to -i.
    -
    -
    negInfinity() - Static method in class org.flag4j.complex_numbers.CNumber
    -
    -
    Gets the complex number equivalent to Double.NEGATIVE_INFINITY.
    -
    -
    negOne() - Static method in class org.flag4j.complex_numbers.CNumber
    -
    -
    Gets the complex number equivalent to negative one.
    -
    -
    nnz - Variable in class org.flag4j.arrays.sparse.CsrCMatrix
    -
    -
    The number of non-zero entries stored in this sparse matrix.
    -
    -
    nnz - Variable in class org.flag4j.arrays.sparse.CsrMatrix
    +
    nnz - Variable in class org.flag4j.core.sparse_base.SparseTensorBase
    -
    The number of non-zero entries stored in this sparse matrix.
    +
    The number of non-zero entries in this sparse tensor.
    NON_POS_ERR - Static variable in class org.flag4j.util.ErrorMessages
    @@ -121,10 +101,6 @@

    N

    NONE - Enum constant in enum class org.flag4j.linalg.decompositions.lu.LU.Pivoting
     
    -
    nonZeroEntries - Variable in class org.flag4j.core.sparse_base.SparseTensorBase
    -
    -
    The number of non-zero entries in this sparse tensor.
    -
    nonZeroEntries() - Method in class org.flag4j.core.sparse_base.ComplexSparseTensorBase
    Gets the number of non-zero entries stored in this sparse tensor.
    @@ -333,7 +309,7 @@

    N

    Checks if a key is in an array.
    -
    notinAxes(int[], int) - Static method in class org.flag4j.util.ArrayUtils
    +
    notInAxes(int[], int) - Static method in class org.flag4j.util.ArrayUtils
    Given a list of integers, srcAxes, which is a subset of {0, 1, 2, ...., dim-1} in no particular order, compute the integers which are in {0, 1, 2, ...., dim-1} but not in diff --git a/docs/index-files/index-15.html b/docs/index-files/index-15.html index 310d16d42..41387053e 100644 --- a/docs/index-files/index-15.html +++ b/docs/index-files/index-15.html @@ -1,11 +1,11 @@ - + O-Index - + @@ -63,10 +63,6 @@

    O

    Stores the first sub/super diagonal entries of this symmetric tri-diagonal matrix.
    -
    one() - Static method in class org.flag4j.complex_numbers.CNumber
    -
    -
    Gets the complex number equivalent to one.
    -
    ONE - Static variable in class org.flag4j.complex_numbers.CNumber
    The complex number with zero imaginary part and one real part.
    diff --git a/docs/index-files/index-16.html b/docs/index-files/index-16.html index 71c3077b9..e6df3ccc7 100644 --- a/docs/index-files/index-16.html +++ b/docs/index-files/index-16.html @@ -1,11 +1,11 @@ - + P-Index - + @@ -173,10 +173,6 @@

    P

    Permute the rows of a vector using the row permutation matrix from the LU decomposition.
    -
    pi() - Static method in class org.flag4j.complex_numbers.CNumber
    -
    -
    Gets the complex number equivalent to Math.PI.
    -
    PI - Static variable in class org.flag4j.complex_numbers.CNumber
    The real double value closer to pi than any other.
    @@ -195,10 +191,6 @@

    P

    Pivoting() - Constructor for enum class org.flag4j.linalg.decompositions.lu.LU.Pivoting
     
    -
    posInfinity() - Static method in class org.flag4j.complex_numbers.CNumber
    -
    -
    Gets the complex number equivalent to Double.POSITIVE_INFINITY.
    -
    POSITIVE_INFINITY - Static variable in class org.flag4j.complex_numbers.CNumber
    Complex number with real part equal to Double.POSITIVE_INFINITY.
    @@ -269,6 +261,10 @@

    P

    Multiplies all entries in a tensor.
    +
    prod(int[]) - Static method in class org.flag4j.operations.dense.real.RealDenseOperations
    +
    +
    Multiplies all entries in a tensor.
    +
    prod(CNumber[]) - Static method in class org.flag4j.operations.dense.complex.ComplexDenseOperations
    Multiplies all entries in a tensor.
    diff --git a/docs/index-files/index-17.html b/docs/index-files/index-17.html index c40f98295..efe8090c8 100644 --- a/docs/index-files/index-17.html +++ b/docs/index-files/index-17.html @@ -1,11 +1,11 @@ - + Q-Index - + diff --git a/docs/index-files/index-18.html b/docs/index-files/index-18.html index f664752e5..bde83ccc2 100644 --- a/docs/index-files/index-18.html +++ b/docs/index-files/index-18.html @@ -1,11 +1,11 @@ - + R-Index - + @@ -437,6 +437,12 @@

    R

    Constructs a Cholesky decomposer.
    +
    RealComplexCooTensorOperations - Class in org.flag4j.operations.sparse.coo.real_complex
    +
    +
    Utility class for computing operations between a complex sparse COO tensor and a real coo tensor.
    +
    +
    RealComplexCooTensorOperations() - Constructor for class org.flag4j.operations.sparse.coo.real_complex.RealComplexCooTensorOperations
    +
     
    RealComplexCsrDenseMatrixMultiplication - Class in org.flag4j.operations.dense_sparse.csr.real_complex
    This class contains low-level implementations of real-complex sparse-dense matrix multiplication where the sparse matrix @@ -576,6 +582,18 @@

    R

    RealComplexSparseVectorOperations() - Constructor for class org.flag4j.operations.sparse.coo.real_complex.RealComplexSparseVectorOperations
     
    +
    RealCooTensorDot - Class in org.flag4j.operations.sparse.coo.real
    +
    +
    Utility class for computing tensor dot products between two real sparse COO tensors.
    +
    +
    RealCooTensorDot() - Constructor for class org.flag4j.operations.sparse.coo.real.RealCooTensorDot
    +
     
    +
    RealCooTensorOperations - Class in org.flag4j.operations.sparse.coo.real
    +
    +
    Utility class for computing operations between two real sparse COO tensors.
    +
    +
    RealCooTensorOperations() - Constructor for class org.flag4j.operations.sparse.coo.real.RealCooTensorOperations
    +
     
    RealCsrConcats - Class in org.flag4j.operations.sparse.csr.real
    Utility class for concatenating real CSR matrices
    @@ -989,18 +1007,10 @@

    R

    Creates a real unitary decomposer which will reduce the matrix to an upper triangular/Hessenburg matrix which has zeros below the specified sub-diagonal (must be 0 or 1).
    -
    recip() - Method in class org.flag4j.arrays.sparse.CooCTensor
    -
    -
    Computes the reciprocals, element-wise, of a tensor.
    -
    recip() - Method in class org.flag4j.arrays.sparse.CooCVector
    Computes the reciprocals, element-wise, of this sparse vector.
    -
    recip() - Method in class org.flag4j.arrays.sparse.CooTensor
    -
    -
    Computes the reciprocals, element-wise, of a tensor.
    -
    recip() - Method in class org.flag4j.core.dense_base.ComplexDenseTensorBase
    Computes the reciprocals, element-wise, of a tensor.
    @@ -1253,18 +1263,10 @@

    R

    Resets all print options to their default values.
    -
    reshape(int...) - Method in class org.flag4j.arrays.sparse.CooCTensor
    -
    -
    Copies and reshapes tensor if possible.
    -
    reshape(int...) - Method in class org.flag4j.arrays.sparse.CooCVector
    Copies and reshapes tensor if possible.
    -
    reshape(int...) - Method in class org.flag4j.arrays.sparse.CooTensor
    -
    -
    Copies and reshapes tensor if possible.
    -
    reshape(int...) - Method in class org.flag4j.core.dense_base.ComplexDenseTensorBase
    Copies and reshapes tensor if possible.
    @@ -1287,6 +1289,10 @@

    R

    Since vectors are rank 1 tensors, this method simply copies the vector.
    +
    reshape(Shape) - Method in class org.flag4j.arrays.sparse.CooCMatrix
    +
    +
    Copies and reshapes matrix if possible.
    +
    reshape(Shape) - Method in class org.flag4j.arrays.sparse.CooCTensor
    Copies and reshapes tensor if possible.
    @@ -1295,24 +1301,34 @@

    R

    Copies and reshapes tensor if possible.
    +
    reshape(Shape) - Method in class org.flag4j.arrays.sparse.CooMatrix
    +
    +
    Copies and reshapes matrix if possible.
    +
    reshape(Shape) - Method in class org.flag4j.arrays.sparse.CooTensor
    Copies and reshapes tensor if possible.
    -
    reshape(Shape) - Method in class org.flag4j.core.dense_base.ComplexDenseTensorBase
    +
    reshape(Shape) - Method in class org.flag4j.arrays.sparse.CooVector
    Copies and reshapes tensor if possible.
    -
    reshape(Shape) - Method in class org.flag4j.core.dense_base.RealDenseTensorBase
    +
    reshape(Shape) - Method in class org.flag4j.arrays.sparse.CsrCMatrix
    +
    +
    Copies and reshapes matrix if possible.
    +
    +
    reshape(Shape) - Method in class org.flag4j.arrays.sparse.CsrMatrix
    +
    +
    Copies and reshapes matrix if possible.
    +
    +
    reshape(Shape) - Method in class org.flag4j.core.dense_base.ComplexDenseTensorBase
    Copies and reshapes tensor if possible.
    -
    reshape(Shape) - Method in class org.flag4j.core.sparse_base.ComplexSparseTensorBase
    +
    reshape(Shape) - Method in class org.flag4j.core.dense_base.RealDenseTensorBase
    Copies and reshapes tensor if possible.
    -
    reshape(Shape) - Method in class org.flag4j.core.sparse_base.RealSparseTensorBase
    -
     
    reshape(Shape) - Method in interface org.flag4j.core.TensorManipulationsMixin
    Copies and reshapes tensor if possible.
    @@ -1377,14 +1393,6 @@

    R

    The double value closer than any other to the square root of 2
    -
    rootThree() - Static method in class org.flag4j.complex_numbers.CNumber
    -
    -
    Gets the complex number equivalent to the square root of three.
    -
    -
    rootTwo() - Static method in class org.flag4j.complex_numbers.CNumber
    -
    -
    Gets the complex number equivalent to the square root of two.
    -
    round() - Method in class org.flag4j.arrays.dense.CMatrix
    Rounds this matrix to the nearest whole number.
    diff --git a/docs/index-files/index-19.html b/docs/index-files/index-19.html index 97de5a630..6995d463e 100644 --- a/docs/index-files/index-19.html +++ b/docs/index-files/index-19.html @@ -1,11 +1,11 @@ - + S-Index - + @@ -79,6 +79,10 @@

    S

    Computes the scalar multiplication of a tensor.
    +
    scalDiv(CNumber[], double) - Static method in class org.flag4j.operations.dense.complex.ComplexDenseOperations
    +
    +
    Computes the scalar division of a tensor.
    +
    scalDiv(CNumber[], double) - Static method in class org.flag4j.operations.dense.real_complex.RealComplexDenseOperations
    Computes the scalar division of a tensor.
    @@ -1331,18 +1335,10 @@

    S

    Constructs a shape object from specified dimension measurements.
    -
    Shape(boolean, Shape) - Constructor for class org.flag4j.core.Shape
    -
    -
    Copy constructor which creates a copy of the specified shape.
    -
    Shape(int...) - Constructor for class org.flag4j.core.Shape
    Constructs a shape object from specified dimension measurements.
    -
    Shape(Shape) - Constructor for class org.flag4j.core.Shape
    -
    -
    Copy constructor which creates a copy of the specified shape.
    -
    SHAPE_BROADCAST_ERR - Static variable in class org.flag4j.util.ErrorMessages
    Error message for shapes which cannot be broadcast.
    @@ -1752,18 +1748,10 @@

    S

    Splices an array into a list at the specified index.
    -
    sqrt() - Method in class org.flag4j.arrays.sparse.CooCTensor
    -
    -
    Computes the element-wise square root of a tensor.
    -
    sqrt() - Method in class org.flag4j.arrays.sparse.CooCVector
    Computes the element-wise square root of a tensor.
    -
    sqrt() - Method in class org.flag4j.arrays.sparse.CooTensor
    -
    -
    Computes the element-wise square root of a tensor.
    -
    sqrt() - Method in class org.flag4j.core.dense_base.ComplexDenseTensorBase
    Computes the element-wise square root of a tensor.
    @@ -2331,6 +2319,10 @@

    S

    Computes the matrix multiplication between a real dense matrix with a complex dense matrix using the standard algorithm.
    +
    standard(CMatrix, CsrCMatrix) - Static method in class org.flag4j.operations.dense_sparse.csr.complex.ComplexCsrDenseMatrixMultiplication
    +
    +
    Computes the matrix multiplication between a complex dense matrix and a complex sparse CSR matrix.
    +
    standard(CMatrix, CsrMatrix) - Static method in class org.flag4j.operations.dense_sparse.csr.real_complex.RealComplexCsrDenseMatrixMultiplication
    Computes the matrix multiplication between a real dense matrix and a real sparse CSR matrix.
    @@ -2614,17 +2606,17 @@

    S

    stridedFillZeros(double[], int, int) - Static method in class org.flag4j.util.ArrayUtils
    - Fills an array with zeros seperated by the given stride.
    + Fills an array with zeros separated by the given stride.
    stridedFillZeros(double[], int, int, int) - Static method in class org.flag4j.util.ArrayUtils
    - Fills an array with a range of zeros, each seperated by the given stride.
    + Fills an array with a range of zeros, each separated by the given stride.
    stridedFillZeros(CNumber[], int, int) - Static method in class org.flag4j.util.ArrayUtils
    - Fills an array with zeros seperated by the given stride.
    + Fills an array with zeros separated by the given stride.
    stridedFillZeros(CNumber[], int, int, int) - Static method in class org.flag4j.util.ArrayUtils
    @@ -2743,6 +2735,14 @@

    S

    Computes the element-wise subtraction between two tensors of the same rank.
    +
    sub(CTensor) - Method in class org.flag4j.arrays.sparse.CooCTensor
    +
    +
    Computes the element-wise subtraction between two tensors of the same rank.
    +
    +
    sub(CTensor) - Method in class org.flag4j.arrays.sparse.CooTensor
    +
    +
    Computes the element-wise subtraction between two tensors of the same rank.
    +
    sub(CTensor) - Method in interface org.flag4j.core.TensorExclusiveMixin
    Computes the element-wise subtraction between two tensors of the same rank.
    @@ -2815,6 +2815,14 @@

    S

    Computes the element-wise addition between two tensors of the same rank.
    +
    sub(Tensor) - Method in class org.flag4j.arrays.sparse.CooCTensor
    +
    +
    Computes the element-wise addition between two tensors of the same rank.
    +
    +
    sub(Tensor) - Method in class org.flag4j.arrays.sparse.CooTensor
    +
    +
    Computes the element-wise addition between two tensors of the same rank.
    +
    sub(Tensor) - Method in interface org.flag4j.core.TensorExclusiveMixin
    Computes the element-wise addition between two tensors of the same rank.
    @@ -2915,10 +2923,30 @@

    S

    Computes the element-wise subtraction between two tensors of the same rank.
    +
    sub(CooCTensor) - Method in class org.flag4j.arrays.sparse.CooTensor
    +
    +
    Computes the element-wise subtraction between two tensors of the same rank.
    +
    sub(CooCTensor) - Method in interface org.flag4j.core.TensorExclusiveMixin
    Computes the element-wise subtraction between two tensors of the same rank.
    +
    sub(CooCTensor, CTensor) - Static method in class org.flag4j.operations.dense_sparse.coo.complex.ComplexDenseSparseOperations
    +
    +
    Subtracts a complex dense tensor from a complex sparse tensor.
    +
    +
    sub(CooCTensor, Tensor) - Static method in class org.flag4j.operations.dense_sparse.coo.real_complex.RealComplexDenseSparseOperations
    +
    +
    Subtracts a real dense tensor from a complex sparse tensor.
    +
    +
    sub(CooCTensor, CooCTensor) - Static method in class org.flag4j.operations.sparse.coo.complex.ComplexCooTensorOperations
    +
    +
    Computes difference between two sparse COO tensors and stores result in a new COO tensor.
    +
    +
    sub(CooCTensor, CooTensor) - Static method in class org.flag4j.operations.sparse.coo.real_complex.RealComplexCooTensorOperations
    +
    +
    Computes difference of two sparse COO tensors and stores result in a new COO tensor.
    +
    sub(CooCVector) - Method in class org.flag4j.arrays.dense.CVector
    Computes the element-wise addition between this vector and the specified vector.
    @@ -3023,6 +3051,10 @@

    S

    Computes the element-wise subtraction between two tensors of the same rank.
    +
    sub(CooTensor) - Method in class org.flag4j.arrays.sparse.CooCTensor
    +
    +
    Computes the element-wise subtraction between two tensors of the same rank.
    +
    sub(CooTensor) - Method in class org.flag4j.arrays.sparse.CooTensor
    Computes the element-wise subtraction between two tensors of the same rank.
    @@ -3031,6 +3063,22 @@

    S

    Computes the element-wise subtraction between two tensors of the same rank.
    +
    sub(CooTensor, CTensor) - Static method in class org.flag4j.operations.dense_sparse.coo.real_complex.RealComplexDenseSparseOperations
    +
    +
    Subtracts a complex dense tensor from a real sparse tensor.
    +
    +
    sub(CooTensor, Tensor) - Static method in class org.flag4j.operations.dense_sparse.coo.real.RealDenseSparseTensorOperations
    +
    +
    Subtracts a real dense tensor from a real sparse tensor.
    +
    +
    sub(CooTensor, CooCTensor) - Static method in class org.flag4j.operations.sparse.coo.real_complex.RealComplexCooTensorOperations
    +
    +
    Computes difference of two sparse COO tensors and stores result in a new COO tensor.
    +
    +
    sub(CooTensor, CooTensor) - Static method in class org.flag4j.operations.sparse.coo.real.RealCooTensorOperations
    +
    +
    Computes difference between two sparse COO tensors and stores result in a new COO tensor.
    +
    sub(CooVector) - Method in class org.flag4j.arrays.dense.CVector
    Computes the element-wise addition between this vector and the specified vector.
    @@ -3209,10 +3257,6 @@

    S

    Sub-diagonal of the upper quasi-triangular matrix.
    -
    subEq(double) - Method in class org.flag4j.complex_numbers.CNumber
    -
    -
    Subtracts a specified number to this complex number and stores the result in this complex number.
    -
    subEq(double[], double) - Static method in class org.flag4j.operations.dense.real.RealDenseOperations
    Subtracts a scalar from each entry of this tensor and stores the result in the tensor.
    @@ -3271,6 +3315,10 @@

    S

    Computes the element-wise subtraction of two tensors of the same rank and stores the result in this tensor.
    +
    subEq(Tensor) - Method in class org.flag4j.arrays.sparse.CooCTensor
    +
    +
    Computes the element-wise subtraction of two tensors of the same rank and stores the result in this tensor.
    +
    subEq(Tensor) - Method in interface org.flag4j.core.ComplexTensorExclusiveMixin
    Computes the element-wise subtraction of two tensors of the same rank and stores the result in this tensor.
    @@ -3306,6 +3354,10 @@

    S

    Computes the element-wise subtraction of two tensors of the same rank and stores the result in this tensor.
    +
    subEq(CooCTensor) - Method in class org.flag4j.arrays.sparse.CooCTensor
    +
    +
    Computes the element-wise subtraction of two tensors of the same rank and stores the result in this tensor.
    +
    subEq(CooCTensor) - Method in interface org.flag4j.core.ComplexTensorExclusiveMixin
    Computes the element-wise subtraction of two tensors of the same rank and stores the result in this tensor.
    @@ -3335,10 +3387,6 @@

    S

    Computes the element-wise subtraction of two tensors of the same rank and stores the result in this tensor.
    -
    subEq(CooTensor) - Method in interface org.flag4j.core.TensorExclusiveMixin
    -
    -
    Computes the element-wise subtraction of two tensors of the same rank and stores the result in this tensor.
    -
    subEq(CooVector) - Method in class org.flag4j.arrays.dense.CVector
    Computes the element-wise addition between this vector and the specified vector.
    @@ -3352,10 +3400,6 @@

    S

    Computes the element-wise subtraction between this vector and the specified vector and stores the result in this vector.
    -
    subEq(CNumber) - Method in class org.flag4j.complex_numbers.CNumber
    -
    -
    Subtracts a specified number from this complex number and stores the result in this complex number.
    -
    subEq(CNumber) - Method in class org.flag4j.core.dense_base.ComplexDenseTensorBase
    Subtracts a specified value from all entries of this tensor and stores the result in this tensor.
    @@ -3396,14 +3440,6 @@

    S

    SubSpace() - Constructor for class org.flag4j.linalg.SubSpace
     
    -
    sum() - Method in class org.flag4j.arrays.sparse.CooCTensor
    -
    -
    Sums together all entries in the tensor.
    -
    -
    sum() - Method in class org.flag4j.arrays.sparse.CooTensor
    -
    -
    Sums together all entries in the tensor.
    -
    sum() - Method in class org.flag4j.core.dense_base.ComplexDenseTensorBase
    Sums together all entries in the tensor.
    diff --git a/docs/index-files/index-2.html b/docs/index-files/index-2.html index fb607ffd8..897cbfa50 100644 --- a/docs/index-files/index-2.html +++ b/docs/index-files/index-2.html @@ -1,11 +1,11 @@ - + B-Index - + diff --git a/docs/index-files/index-20.html b/docs/index-files/index-20.html index 464026b24..d46de8e6e 100644 --- a/docs/index-files/index-20.html +++ b/docs/index-files/index-20.html @@ -1,11 +1,11 @@ - + T-Index - + @@ -127,6 +127,14 @@

    T

    Computes the transpose of this tensor.
    +
    T(int...) - Method in class org.flag4j.arrays.sparse.CooCTensor
    +
    +
    Computes the transpose of this tensor.
    +
    +
    T(int...) - Method in class org.flag4j.arrays.sparse.CooTensor
    +
    +
    Computes the transpose of this tensor.
    +
    T(int...) - Method in interface org.flag4j.core.TensorExclusiveMixin
    Computes the transpose of this tensor.
    @@ -139,6 +147,14 @@

    T

    Computes the transpose of a tensor.
    +
    T(int, int) - Method in class org.flag4j.arrays.sparse.CooCTensor
    +
    +
    Computes the transpose of a tensor.
    +
    +
    T(int, int) - Method in class org.flag4j.arrays.sparse.CooTensor
    +
    +
    Computes the transpose of a tensor.
    +
    T(int, int) - Method in interface org.flag4j.core.TensorExclusiveMixin
    Computes the transpose of a tensor.
    @@ -243,6 +259,22 @@

    T

    Computes the tensor contraction of this tensor with a specified tensor over the specified set of axes.
    +
    tensorDot(CooCTensor, int[], int[]) - Method in class org.flag4j.arrays.sparse.CooCTensor
    +
    +
    Computes the tensor contraction of this tensor with a specified tensor over the specified set of axes.
    +
    +
    tensorDot(CooCTensor, CooCTensor, int[], int[]) - Static method in class org.flag4j.operations.sparse.coo.complex.ComplexCooTensorDot
    +
    +
    Computes the tensor contraction of this tensor with a specified tensor over the specified set of axes.
    +
    +
    tensorDot(CooTensor, int[], int[]) - Method in class org.flag4j.arrays.sparse.CooTensor
    +
    +
    Computes the tensor contraction of this tensor with a specified tensor over the specified set of axes.
    +
    +
    tensorDot(CooTensor, CooTensor, int[], int[]) - Static method in class org.flag4j.operations.sparse.coo.real.RealCooTensorDot
    +
    +
    Computes the tensor contraction of this tensor with a specified tensor over the specified set of axes.
    +
    tensorDot(T) - Method in interface org.flag4j.core.TensorExclusiveMixin
    Computes the tensor dot product of this tensor with a second tensor.
    @@ -346,6 +378,14 @@

    T

    Computes the 'inverse' of this tensor.
    +
    tensorInv(int) - Method in class org.flag4j.arrays.sparse.CooCTensor
    +
    +
    Computes the 'inverse' of this tensor.
    +
    +
    tensorInv(int) - Method in class org.flag4j.arrays.sparse.CooTensor
    +
    +
    Computes the 'inverse' of this tensor.
    +
    tensorInv(int) - Method in interface org.flag4j.core.TensorExclusiveMixin
    Computes the 'inverse' of this tensor.
    @@ -534,6 +574,14 @@

    T

    Converts this COO matrix to an equivalent CSR matrix.
    +
    toCsv(String, MatrixMixin<?, ?, ?, ?, ?, ?, ?, ?>) - Static method in class org.flag4j.io.TensorWriter
    +
    +
    Writes the specified matrix to a csv file.
    +
    +
    toCsv(String, MatrixMixin<?, ?, ?, ?, ?, ?, ?, ?>, String) - Static method in class org.flag4j.io.TensorWriter
    +
    +
    Writes the specified matrix to a csv file.
    +
    toDense() - Method in class org.flag4j.arrays.sparse.CooCMatrix
    Converts this sparse tensor to an equivalent dense tensor.
    @@ -626,16 +674,28 @@

    T

    Converts a vector to an equivalent matrix representing either a row or column vector.
    +
    toMatrix(Shape) - Method in class org.flag4j.arrays.dense.CTensor
    +
    +
    Converts this tensor to a matrix with the specified shape.
    +
    +
    toMatrix(Shape) - Method in class org.flag4j.arrays.dense.Tensor
    +
    +
    Converts this tensor to a matrix with the specified shape.
    +
    +
    toMatrix(Shape) - Method in class org.flag4j.arrays.sparse.CooCTensor
    +
    +
    Converts this tensor to a matrix with the specified shape.
    +
    +
    toMatrix(Shape) - Method in class org.flag4j.arrays.sparse.CooTensor
    +
    +
    Converts this tensor to a matrix with the specified shape.
    +
    toPolar() - Method in class org.flag4j.complex_numbers.CNumber
    Converts a complex number to an equivalent polar from.
    toReal() - Method in class org.flag4j.arrays.sparse.CooCMatrix
     
    -
    toReal() - Method in class org.flag4j.arrays.sparse.CooCTensor
    -
    -
    Converts a complex tensor to a real matrix.
    -
    toReal() - Method in class org.flag4j.arrays.sparse.CooCVector
     
    toReal() - Method in interface org.flag4j.core.ComplexTensorMixin
    @@ -654,10 +714,6 @@

    T

    Converts a complex tensor to a real tensor by copying the real component and discarding the imaginary component.
    -
    toRealSafe() - Method in class org.flag4j.arrays.sparse.CooCTensor
    -
    -
    Converts a complex tensor to a real matrix safely.
    -
    toRealSafe() - Method in class org.flag4j.arrays.sparse.CooCVector
    Converts a complex tensor to a real matrix safely.
    @@ -742,6 +798,10 @@

    T

    Error message for arrays which do not have the same total number of entries.
    +
    totalEntries - Variable in class org.flag4j.core.Shape
    +
    +
    Total entries of this shape.
    +
    totalEntries() - Method in class org.flag4j.core.Shape
    Gets the total number of entries for a tensor with this shape.
    @@ -953,10 +1013,6 @@

    T

    Simple enum class containing available algorithms for computing a matrix transpose.
    -
    two() - Static method in class org.flag4j.complex_numbers.CNumber
    -
    -
    Gets the complex number equivalent to two.
    -
    TWO - Static variable in class org.flag4j.complex_numbers.CNumber
    The complex number with zero imaginary part and two real part.
    diff --git a/docs/index-files/index-21.html b/docs/index-files/index-21.html index e4bf694af..5c6b8b110 100644 --- a/docs/index-files/index-21.html +++ b/docs/index-files/index-21.html @@ -1,11 +1,11 @@ - + U-Index - + diff --git a/docs/index-files/index-22.html b/docs/index-files/index-22.html index 36527b0d4..986e26b2b 100644 --- a/docs/index-files/index-22.html +++ b/docs/index-files/index-22.html @@ -1,11 +1,11 @@ - + V-Index - + diff --git a/docs/index-files/index-23.html b/docs/index-files/index-23.html index 9762229e9..0e1706b61 100644 --- a/docs/index-files/index-23.html +++ b/docs/index-files/index-23.html @@ -1,11 +1,11 @@ - + W-Index - + diff --git a/docs/index-files/index-24.html b/docs/index-files/index-24.html index c3d94c2c1..f1d058397 100644 --- a/docs/index-files/index-24.html +++ b/docs/index-files/index-24.html @@ -1,11 +1,11 @@ - + X-Index - + diff --git a/docs/index-files/index-25.html b/docs/index-files/index-25.html index c77dd82e3..4b4b8033f 100644 --- a/docs/index-files/index-25.html +++ b/docs/index-files/index-25.html @@ -1,11 +1,11 @@ - + Z-Index - + @@ -55,10 +55,6 @@

    Z

    Complex number equal to zero.
    -
    zero() - Static method in class org.flag4j.complex_numbers.CNumber
    -
    -
    Gets the complex number equivalent to zero.
    -
    ZERO - Static variable in class org.flag4j.complex_numbers.CNumber
    The complex number with zero imaginary and real parts.
    @@ -67,10 +63,6 @@

    Z

    The complex number equal to zero.
    -
    ZERO - Static variable in class org.flag4j.linalg.decompositions.unitary.ComplexUnitaryDecomposition
    -
    -
    The complex number equal to zero.
    -
    zeroPivotTol - Variable in class org.flag4j.linalg.decompositions.lu.LU
    Tolerance for determining if pivot value is to be considered zero in LU decomposition with no pivoting.
    diff --git a/docs/index-files/index-3.html b/docs/index-files/index-3.html index 378ea4411..9fa1fc0e7 100644 --- a/docs/index-files/index-3.html +++ b/docs/index-files/index-3.html @@ -1,11 +1,11 @@ - + C-Index - + @@ -241,11 +241,7 @@

    C

    CNumber - Class in org.flag4j.complex_numbers
    -
    A complex number stored in rectangular form.
    -
    -
    CNumber() - Constructor for class org.flag4j.complex_numbers.CNumber
    -
    -
    Constructs a complex number with value and magnitude 0.
    +
    A complex number stored in rectangular form with both the real and imaginary components stored as a 64-bit floats.
    CNumber(double) - Constructor for class org.flag4j.complex_numbers.CNumber
    @@ -260,10 +256,6 @@

    C

    Constructs a complex number from a string of the form "a +/- bi" where a and {b} are real values and either may be omitted.
    -
    CNumber(CNumber) - Constructor for class org.flag4j.complex_numbers.CNumber
    -
    -
    Creates a new complex number which is the copy of the specified complex number.
    -
    CNumberLexer - Class in org.flag4j.complex_numbers
    A lexer for producing the tokens of a complex number represented as a string.
    @@ -362,6 +354,18 @@

    C

    Constructs a Cholesky decomposer.
    +
    ComplexCooTensorDot - Class in org.flag4j.operations.sparse.coo.complex
    +
    +
    Utility class for computing tensor dot products between two complex sparse COO tensors.
    +
    +
    ComplexCooTensorDot() - Constructor for class org.flag4j.operations.sparse.coo.complex.ComplexCooTensorDot
    +
     
    +
    ComplexCooTensorOperations - Class in org.flag4j.operations.sparse.coo.complex
    +
    +
    Utility class for computing operations between two complex sparse COO tensors.
    +
    +
    ComplexCooTensorOperations() - Constructor for class org.flag4j.operations.sparse.coo.complex.ComplexCooTensorOperations
    +
     
    ComplexCsrDenseMatrixMultiplication - Class in org.flag4j.operations.dense_sparse.csr.complex
    This class contains low-level implementations of complex-complex sparse-sparse matrix multiplication where the sparse matrices @@ -1179,10 +1183,6 @@

    C

    Configurations() - Constructor for class org.flag4j.concurrency.Configurations
     
    -
    conj() - Method in class org.flag4j.arrays.sparse.CooCTensor
    -
    -
    Computes the complex conjugate of a tensor.
    -
    conj() - Method in class org.flag4j.arrays.sparse.CooCVector
     
    conj() - Method in class org.flag4j.complex_numbers.CNumber
    @@ -1313,6 +1313,10 @@

    C

    Creates a sparse tensor with specified shape filled with zeros.
    +
    CooCTensor(Shape, List<CNumber>, List<int[]>) - Constructor for class org.flag4j.arrays.sparse.CooCTensor
    +
    +
    Creates a sparse tensor with specified shape and non-zero values/indices.
    +
    CooCTensor(Shape, CNumber[], int[][]) - Constructor for class org.flag4j.arrays.sparse.CooCTensor
    Creates a sparse tensor with specified shape filled with zeros.
    @@ -1414,6 +1418,10 @@

    C

    Creates a sparse tensor with specified shape and non-zero values/indices.
    +
    CooTensor(Shape, List<Double>, List<int[]>) - Constructor for class org.flag4j.arrays.sparse.CooTensor
    +
    +
    Creates a sparse tensor with specified shape and non-zero values/indices.
    +
    CooVector - Class in org.flag4j.arrays.sparse
    Real sparse vector stored in coordinate (COO) format.
    @@ -1474,10 +1482,6 @@

    C

    Creates a copy of this permutation matrix.
    -
    copy() - Method in class org.flag4j.complex_numbers.CNumber
    -
    -
    Creates a copy of this complex number.
    -
    copy() - Method in class org.flag4j.core.dense_base.ComplexDenseTensorBase
    Creates a deep copy of this tensor.
    @@ -1490,10 +1494,6 @@

    C

    Copies this matrix.
    -
    copy() - Method in class org.flag4j.core.Shape
    -
    -
    Creates a deep copy of this shape object.
    -
    copy() - Method in interface org.flag4j.core.TensorOperationsMixin
    Creates a copy of this tensor.
    @@ -1518,10 +1518,6 @@

    C

    Converts array to an array of complex numbers.
    -
    copy2CNumber(CNumber[], CNumber[]) - Static method in class org.flag4j.util.ArrayUtils
    -
    -
    Converts array to an array of complex numbers.
    -
    copyIndices() - Method in class org.flag4j.core.sparse_base.ComplexSparseTensorBase
    Creates a deep copy of the indices of this sparse tensor.
    @@ -1530,14 +1526,6 @@

    C

    Creates a deep copy of the indices of this sparse tensor.
    -
    copyOf(CNumber[]) - Static method in class org.flag4j.util.ArrayUtils
    -
    -
    Copies the full array.
    -
    -
    copyOfRange(CNumber[], int, int) - Static method in class org.flag4j.util.ArrayUtils
    -
    -
    Copies a range of an array into a new array.
    -
    copyRanges(CooCMatrix, CNumber[], int[], int[], int[]) - Static method in class org.flag4j.operations.sparse.coo.complex.ComplexSparseMatrixManipulations
    A helper method which copies from a sparse matrix to a set of three arrays (non-zero entries, row indices, and diff --git a/docs/index-files/index-4.html b/docs/index-files/index-4.html index 0180974bb..ac0a061eb 100644 --- a/docs/index-files/index-4.html +++ b/docs/index-files/index-4.html @@ -1,11 +1,11 @@ - + D-Index - + @@ -540,18 +540,10 @@

    D

    Dispatches a matrix multiply-transpose problem equivalent to A.mult(B.T()) to the appropriate algorithm based on the size of the matrices.
    -
    div(double) - Method in class org.flag4j.arrays.sparse.CooCTensor
    -
    -
    Computes the scalar division of a tensor.
    -
    div(double) - Method in class org.flag4j.arrays.sparse.CooCVector
    Computes the scalar division of a tensor.
    -
    div(double) - Method in class org.flag4j.arrays.sparse.CooTensor
    -
    -
    Computes the scalar division of a tensor.
    -
    div(double) - Method in class org.flag4j.arrays.sparse.CooVector
    Computes the scalar division of a tensor.
    @@ -574,18 +566,10 @@

    D

    Computes the scalar division of a tensor.
    -
    div(CNumber) - Method in class org.flag4j.arrays.sparse.CooCTensor
    -
    -
    Computes the scalar division of a tensor.
    -
    div(CNumber) - Method in class org.flag4j.arrays.sparse.CooCVector
    Computes the scalar division of a tensor.
    -
    div(CNumber) - Method in class org.flag4j.arrays.sparse.CooTensor
    -
    -
    Computes the scalar division of a tensor.
    -
    div(CNumber) - Method in class org.flag4j.arrays.sparse.CooVector
    Computes the scalar division of a tensor.
    @@ -610,14 +594,6 @@

    D

    Computes the scalar division of a tensor.
    -
    divEq(double) - Method in class org.flag4j.complex_numbers.CNumber
    -
    -
    Computes the division of a complex numbers with a double value and stores in this complex number.
    -
    -
    divEq(CNumber) - Method in class org.flag4j.complex_numbers.CNumber
    -
    -
    Computes the division of a complex numbers with a double value and stores in this complex number.
    -
    dot(CTensor, CTensor) - Static method in class org.flag4j.operations.dense.complex.ComplexDenseTensorDot
    Computes the tensor dot product along the first tensors last axis and the second tensors second-to-last axis.
    diff --git a/docs/index-files/index-5.html b/docs/index-files/index-5.html index caeaa2828..9f4c99457 100644 --- a/docs/index-files/index-5.html +++ b/docs/index-files/index-5.html @@ -1,11 +1,11 @@ - + E-Index - + @@ -101,6 +101,10 @@

    E

    Computes the element-wise division between two tensors.
    +
    elemDiv(CTensor) - Method in class org.flag4j.arrays.sparse.CooTensor
    +
    +
    Computes the element-wise division between two tensors.
    +
    elemDiv(CTensor) - Method in interface org.flag4j.core.TensorExclusiveMixin
    Computes the element-wise division between two tensors.
    @@ -149,6 +153,10 @@

    E

    Computes the element-wise division between two tensors.
    +
    elemDiv(Tensor) - Method in class org.flag4j.arrays.sparse.CooCTensor
    +
    +
    Computes the element-wise division between two tensors.
    +
    elemDiv(Tensor) - Method in class org.flag4j.arrays.sparse.CooTensor
    Computes the element-wise division between two tensors.
    @@ -279,6 +287,14 @@

    E

    Computes the element-wise multiplication between two tensors.
    +
    elemMult(CTensor) - Method in class org.flag4j.arrays.sparse.CooCTensor
    +
    +
    Computes the element-wise multiplication between two tensors.
    +
    +
    elemMult(CTensor) - Method in class org.flag4j.arrays.sparse.CooTensor
    +
    +
    Computes the element-wise multiplication between two tensors.
    +
    elemMult(CTensor) - Method in interface org.flag4j.core.TensorExclusiveMixin
    Computes the element-wise multiplication between two tensors.
    @@ -351,6 +367,14 @@

    E

    Computes the element-wise multiplication between two tensors.
    +
    elemMult(Tensor) - Method in class org.flag4j.arrays.sparse.CooCTensor
    +
    +
    Computes the element-wise multiplication between two tensors.
    +
    +
    elemMult(Tensor) - Method in class org.flag4j.arrays.sparse.CooTensor
    +
    +
    Computes the element-wise multiplication between two tensors.
    +
    elemMult(Tensor) - Method in interface org.flag4j.core.TensorExclusiveMixin
    Computes the element-wise multiplication between two tensors.
    @@ -435,6 +459,10 @@

    E

    Computes the element-wise multiplication between two tensors.
    +
    elemMult(CooCTensor) - Method in class org.flag4j.arrays.sparse.CooTensor
    +
    +
    Computes the element-wise multiplication between two tensors.
    +
    elemMult(CooCTensor) - Method in interface org.flag4j.core.TensorExclusiveMixin
    Computes the element-wise multiplication between two tensors.
    @@ -507,6 +535,10 @@

    E

    Computes the element-wise multiplication between two tensors.
    +
    elemMult(CooTensor) - Method in class org.flag4j.arrays.sparse.CooCTensor
    +
    +
    Computes the element-wise multiplication between two tensors.
    +
    elemMult(CooTensor) - Method in class org.flag4j.arrays.sparse.CooTensor
    Computes the element-wise multiplication between two tensors.
    @@ -631,7 +663,7 @@

    E

    equals(double) - Method in class org.flag4j.complex_numbers.CNumber
    -
    Checks if a complex number is equal to some double value.
    +
    Checks if a complex number is numerically equal to some double value.
    equals(double[], CNumber[]) - Static method in class org.flag4j.util.ArrayUtils
    @@ -753,10 +785,6 @@

    E

    Hide default constructor.
    -
    eulers() - Static method in class org.flag4j.complex_numbers.CNumber
    -
    -
    Gets the complex number equivalent to Math.E.
    -
    ExactSolver<T,U> - Class in org.flag4j.linalg.solvers.exact
    Solves a well determined system of equations Ax=b in an exact sense by using a LU decomposition.
    diff --git a/docs/index-files/index-6.html b/docs/index-files/index-6.html index 13c2bf92b..739974414 100644 --- a/docs/index-files/index-6.html +++ b/docs/index-files/index-6.html @@ -1,11 +1,11 @@ - + F-Index - + @@ -199,30 +199,14 @@

    F

    Fills an array with specified value.
    -
    fill(CNumber[], CNumber) - Static method in class org.flag4j.util.ArrayUtils
    -
    -
    Fills an array with specified value.
    -
    filledArray(int, int) - Static method in class org.flag4j.util.ArrayUtils
    Constructs an array filled with a specific value.
    -
    fillZeros(double[], int, int) - Static method in class org.flag4j.util.ArrayUtils
    -
    -
    Fills a specified range of an array with zeros.
    -
    -
    fillZeros(CNumber[]) - Static method in class org.flag4j.util.ArrayUtils
    -
    -
    Fills an array of complex numbers with zeros.
    -
    fillZeros(CNumber[][]) - Static method in class org.flag4j.util.ArrayUtils
    Fills an array of complex numbers with zeros.
    -
    fillZeros(CNumber[], int, int) - Static method in class org.flag4j.util.ArrayUtils
    -
    -
    Fills a specified range of an array of complex numbers with zeros.
    -
    findFirstLast(int[], int) - Static method in class org.flag4j.util.ArrayUtils
    Finds the first and last index of a specified key within a sorted array.
    @@ -273,6 +257,10 @@

    F

    Since vectors are rank 1 tensors, this method simply copies the vector.
    +
    flatten() - Method in class org.flag4j.arrays.sparse.CooCMatrix
    +
    +
    Flattens tensor to single dimension.
    +
    flatten() - Method in class org.flag4j.arrays.sparse.CooCTensor
    Flattens tensor to single dimension.
    @@ -281,14 +269,26 @@

    F

    Flattens tensor to single dimension.
    +
    flatten() - Method in class org.flag4j.arrays.sparse.CooMatrix
    +
    +
    Flattens tensor to single dimension.
    +
    flatten() - Method in class org.flag4j.arrays.sparse.CooTensor
    Flattens tensor to single dimension.
    -
    flatten() - Method in class org.flag4j.core.sparse_base.ComplexSparseTensorBase
    -
     
    -
    flatten() - Method in class org.flag4j.core.sparse_base.RealSparseTensorBase
    -
     
    +
    flatten() - Method in class org.flag4j.arrays.sparse.CooVector
    +
    +
    Flattens tensor to single dimension.
    +
    +
    flatten() - Method in class org.flag4j.arrays.sparse.CsrCMatrix
    +
    +
    Flattens tensor to single dimension.
    +
    +
    flatten() - Method in class org.flag4j.arrays.sparse.CsrMatrix
    +
    +
    Flattens tensor to single dimension.
    +
    flatten() - Method in interface org.flag4j.core.TensorManipulationsMixin
    Flattens tensor to single dimension.
    diff --git a/docs/index-files/index-7.html b/docs/index-files/index-7.html index 776fecbf8..93c2165bf 100644 --- a/docs/index-files/index-7.html +++ b/docs/index-files/index-7.html @@ -1,11 +1,11 @@ - + G-Index - + @@ -751,6 +751,10 @@

    G

    Gets the rank of this tensor.
    +
    getRank() - Method in interface org.flag4j.core.TensorExclusiveMixin
    +
    +
    Gets the rank of this tensor.
    +
    getRank() - Method in class org.flag4j.linalg.decompositions.svd.SVD
    Gets the rank of the last matrix decomposed.
    diff --git a/docs/index-files/index-8.html b/docs/index-files/index-8.html index 15d140c16..06577b7e6 100644 --- a/docs/index-files/index-8.html +++ b/docs/index-files/index-8.html @@ -1,11 +1,11 @@ - + H-Index - + @@ -107,6 +107,10 @@

    H

    Computes the conjugate transpose of this tensor.
    +
    H(int...) - Method in class org.flag4j.arrays.sparse.CooCTensor
    +
    +
    Computes the conjugate transpose of this tensor.
    +
    H(int...) - Method in interface org.flag4j.core.ComplexTensorExclusiveMixin
    Computes the conjugate transpose of this tensor.
    @@ -115,6 +119,10 @@

    H

    Computes the transpose of a tensor.
    +
    H(int, int) - Method in class org.flag4j.arrays.sparse.CooCTensor
    +
    +
    Computes the transpose of a tensor.
    +
    H(int, int) - Method in interface org.flag4j.core.ComplexTensorExclusiveMixin
    Computes the transpose of a tensor.
    diff --git a/docs/index-files/index-9.html b/docs/index-files/index-9.html index eae648b38..73e55ca32 100644 --- a/docs/index-files/index-9.html +++ b/docs/index-files/index-9.html @@ -1,11 +1,11 @@ - + I-Index - + @@ -99,10 +99,6 @@

    I

    The imaginary unit i.
    -
    imagUnit() - Static method in class org.flag4j.complex_numbers.CNumber
    -
    -
    Gets the complex number equivalent to i.
    -
    indexOf(int[], int) - Static method in class org.flag4j.util.ArrayUtils
    Finds the fist index of the specified key within an array.
    @@ -666,10 +662,6 @@

    I

    Checks if a matrix is the identity matrix approximately.
    -
    isComplex() - Method in class org.flag4j.arrays.sparse.CooCTensor
    -
    -
    Checks if this tensor contains at least one complex entry.
    -
    isComplex() - Method in class org.flag4j.arrays.sparse.CooCVector
    Checks if this vector contains at least one non-real entry.
    @@ -878,14 +870,6 @@

    I

    Checks if a tensor only contain negative values.
    -
    isOnes() - Method in class org.flag4j.arrays.sparse.CooCTensor
    -
    -
    Checks if this tensor only contains ones.
    -
    -
    isOnes() - Method in class org.flag4j.arrays.sparse.CooTensor
    -
    -
    Checks if this tensor only contains ones.
    -
    isOnes() - Method in class org.flag4j.core.dense_base.ComplexDenseTensorBase
     
    isOnes() - Method in class org.flag4j.core.dense_base.RealDenseTensorBase
    @@ -994,10 +978,6 @@

    I

    Checks if the matrix is positive semi-definite.
    -
    isReal() - Method in class org.flag4j.arrays.sparse.CooCTensor
    -
    -
    Checks if this tensor has only real valued entries.
    -
    isReal() - Method in class org.flag4j.arrays.sparse.CooCVector
    Checks if this vector contains only real entries.
    @@ -1237,10 +1217,6 @@

    I

    Checks if a matrix can be represented as a vector.
    -
    isZeros() - Method in class org.flag4j.arrays.sparse.CooCTensor
    -
    -
    Checks if this tensor only contains zeros.
    -
    isZeros() - Method in class org.flag4j.core.dense_base.ComplexDenseTensorBase
     
    isZeros() - Method in class org.flag4j.core.dense_base.RealDenseTensorBase
    diff --git a/docs/index.html b/docs/index.html index 02a627f3e..fba451e29 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1,11 +1,11 @@ - + Overview - + diff --git a/docs/member-search-index.js b/docs/member-search-index.js index 9a3f7a901..dabf5565c 100644 --- a/docs/member-search-index.js +++ b/docs/member-search-index.js @@ -1 +1 @@ -memberSearchIndex = [{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"abs()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"abs()"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"abs()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"abs()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"abs()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"abs()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"abs()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"abs()"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"abs()"},{"p":"org.flag4j.operations.common.complex","c":"ComplexOperations","l":"abs(CNumber[])","u":"abs(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.common.real","c":"RealOperations","l":"abs(double[])"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"acos(CNumber)","u":"acos(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"acos(double)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"add(CMatrix)","u":"add(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"add(CMatrix)","u":"add(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"add(CMatrix)","u":"add(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"add(CMatrix)","u":"add(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"add(CMatrix)","u":"add(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"add(CMatrix)","u":"add(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixOperations","l":"add(CMatrix, CooCMatrix)","u":"add(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"add(CMatrix, CooMatrix)","u":"add(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"add(CNumber)","u":"add(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"add(CNumber)","u":"add(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"add(CNumber)","u":"add(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"add(CNumber)","u":"add(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"add(CNumber)","u":"add(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"add(CNumber)","u":"add(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"add(CNumber)","u":"add(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"add(CNumber)","u":"add(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"add(CNumber)","u":"add(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"add(CNumber)","u":"add(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"add(CNumber)","u":"add(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"add(CNumber)","u":"add(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"add(CNumber[], CNumber)","u":"add(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseOperations","l":"add(CNumber[], double)","u":"add(org.flag4j.complex_numbers.CNumber[],double)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"add(CNumber[], Shape, CNumber[], Shape)","u":"add(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseOperations","l":"add(CNumber[], Shape, double[], Shape)","u":"add(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"add(CooCMatrix)","u":"add(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"add(CooCMatrix)","u":"add(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"add(CooCMatrix)","u":"add(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"add(CooCMatrix)","u":"add(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"add(CooCMatrix)","u":"add(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"add(CooCMatrix)","u":"add(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"add(CooCMatrix)","u":"add(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixOperations","l":"add(CooCMatrix, CNumber)","u":"add(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixOperations","l":"add(CooCMatrix, CooCMatrix)","u":"add(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixOperations","l":"add(CooCMatrix, CooMatrix)","u":"add(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixOperations","l":"add(CooCMatrix, double)","u":"add(org.flag4j.arrays.sparse.CooCMatrix,double)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"add(CooCTensor)","u":"add(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"add(CooCTensor)","u":"add(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"add(CooCTensor)","u":"add(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"add(CooCTensor)","u":"add(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"add(CooCVector)","u":"add(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"add(CooCVector)","u":"add(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"add(CooCVector)","u":"add(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"add(CooCVector)","u":"add(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"add(CooCVector)","u":"add(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseVectorOperations","l":"add(CooCVector, CNumber)","u":"add(org.flag4j.arrays.sparse.CooCVector,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseVectorOperations","l":"add(CooCVector, CooCVector)","u":"add(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseVectorOperations","l":"add(CooCVector, CooVector)","u":"add(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseVectorOperations","l":"add(CooCVector, double)","u":"add(org.flag4j.arrays.sparse.CooCVector,double)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseVectorOperations","l":"add(CooCVector, double)","u":"add(org.flag4j.arrays.sparse.CooCVector,double)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"add(CooMatrix)","u":"add(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"add(CooMatrix)","u":"add(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"add(CooMatrix)","u":"add(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"add(CooMatrix)","u":"add(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"add(CooMatrix)","u":"add(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"add(CooMatrix)","u":"add(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"add(CooMatrix)","u":"add(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixOperations","l":"add(CooMatrix, CNumber)","u":"add(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixOperations","l":"add(CooMatrix, CooMatrix)","u":"add(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixOperations","l":"add(CooMatrix, double)","u":"add(org.flag4j.arrays.sparse.CooMatrix,double)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"add(CooTensor)","u":"add(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"add(CooTensor)","u":"add(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"add(CooTensor)","u":"add(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"add(CooTensor)","u":"add(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"add(CooVector)","u":"add(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"add(CooVector)","u":"add(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"add(CooVector)","u":"add(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"add(CooVector)","u":"add(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"add(CooVector)","u":"add(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseVectorOperations","l":"add(CooVector, CNumber)","u":"add(org.flag4j.arrays.sparse.CooVector,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseVectorOperations","l":"add(CooVector, CooVector)","u":"add(org.flag4j.arrays.sparse.CooVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseVectorOperations","l":"add(CooVector, double)","u":"add(org.flag4j.arrays.sparse.CooVector,double)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"add(CsrCMatrix)","u":"add(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"add(CsrCMatrix)","u":"add(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"add(CsrCMatrix)","u":"add(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"add(CsrCMatrix)","u":"add(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"add(CsrCMatrix)","u":"add(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"add(CsrCMatrix)","u":"add(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"add(CsrCMatrix)","u":"add(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"add(CsrMatrix)","u":"add(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"add(CsrMatrix)","u":"add(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"add(CsrMatrix)","u":"add(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"add(CsrMatrix)","u":"add(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"add(CsrMatrix)","u":"add(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"add(CsrMatrix)","u":"add(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"add(CsrMatrix)","u":"add(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"add(CTensor)","u":"add(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"add(CTensor)","u":"add(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseOperations","l":"add(CTensor, CooCTensor)","u":"add(org.flag4j.arrays.dense.CTensor,org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseOperations","l":"add(CTensor, CooTensor)","u":"add(org.flag4j.arrays.dense.CTensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"add(CVector)","u":"add(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"add(CVector)","u":"add(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"add(CVector)","u":"add(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"add(CVector)","u":"add(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseVectorOperations","l":"add(CVector, CooCVector)","u":"add(org.flag4j.arrays.dense.CVector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"add(CVector, CooVector)","u":"add(org.flag4j.arrays.dense.CVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"add(double)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"add(double)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"add(double)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"add(double)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"add(double)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"add(double)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"add(double)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"add(double)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"add(double)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"add(double)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"add(double)"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"add(double)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"add(double[], CNumber)","u":"add(double[],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseVectorOperations","l":"add(double[], CNumber)","u":"add(double[],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseOperations","l":"add(double[], double)","u":"add(double[],double)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseOperations","l":"add(double[], Shape, double[], Shape)","u":"add(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"add(Matrix)","u":"add(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"add(Matrix)","u":"add(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"add(Matrix)","u":"add(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"add(Matrix)","u":"add(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"add(Matrix)","u":"add(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"add(Matrix)","u":"add(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"add(Matrix, CooCMatrix)","u":"add(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixOperations","l":"add(Matrix, CooMatrix)","u":"add(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"add(T)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"add(T)"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"add(T)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"add(Tensor)","u":"add(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"add(Tensor)","u":"add(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseOperations","l":"add(Tensor, CooCTensor)","u":"add(org.flag4j.arrays.dense.Tensor,org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseTensorOperations","l":"add(Tensor, CooTensor)","u":"add(org.flag4j.arrays.dense.Tensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"add(Vector)","u":"add(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"add(Vector)","u":"add(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"add(Vector)","u":"add(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"add(Vector)","u":"add(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"add(Vector, CooCVector)","u":"add(org.flag4j.arrays.dense.Vector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseVectorOperations","l":"add(Vector, CooVector)","u":"add(org.flag4j.arrays.dense.Vector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixOperations","l":"addEq(CMatrix, CooCMatrix)","u":"addEq(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"addEq(CMatrix, CooMatrix)","u":"addEq(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"addEq(CNumber)","u":"addEq(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"addEq(CNumber)","u":"addEq(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"addEq(CNumber[], CNumber)","u":"addEq(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseOperations","l":"addEq(CNumber[], double)","u":"addEq(org.flag4j.complex_numbers.CNumber[],double)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"addEq(CNumber[], Shape, CNumber[], Shape)","u":"addEq(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseOperations","l":"addEq(CNumber[], Shape, double[], Shape)","u":"addEq(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"addEq(CooCMatrix)","u":"addEq(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"addEq(CooCTensor)","u":"addEq(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.core","c":"ComplexTensorExclusiveMixin","l":"addEq(CooCTensor)","u":"addEq(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"addEq(CooCVector)","u":"addEq(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"addEq(CooMatrix)","u":"addEq(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"addEq(CooMatrix)","u":"addEq(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"addEq(CooMatrix)","u":"addEq(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"addEq(CooTensor)","u":"addEq(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"addEq(CooTensor)","u":"addEq(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"addEq(CooTensor)","u":"addEq(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"addEq(CooVector)","u":"addEq(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"addEq(CooVector)","u":"addEq(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core.dense_base","c":"DenseVectorMixin","l":"addEq(CooVector)","u":"addEq(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseOperations","l":"addEq(CTensor, CooCTensor)","u":"addEq(org.flag4j.arrays.dense.CTensor,org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseOperations","l":"addEq(CTensor, CooTensor)","u":"addEq(org.flag4j.arrays.dense.CTensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseVectorOperations","l":"addEq(CVector, CooCVector)","u":"addEq(org.flag4j.arrays.dense.CVector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"addEq(CVector, CooVector)","u":"addEq(org.flag4j.arrays.dense.CVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"addEq(double)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"addEq(Double)","u":"addEq(java.lang.Double)"},{"p":"org.flag4j.core.dense_base","c":"DenseMixin","l":"addEq(Double)","u":"addEq(java.lang.Double)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"addEq(Double)","u":"addEq(java.lang.Double)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseOperations","l":"addEq(double[], double)","u":"addEq(double[],double)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseOperations","l":"addEq(double[], Shape, double[], Shape)","u":"addEq(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"addEq(Matrix)","u":"addEq(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"addEq(Matrix)","u":"addEq(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixOperations","l":"addEq(Matrix, CooMatrix)","u":"addEq(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"addEq(T)"},{"p":"org.flag4j.core.dense_base","c":"DenseTensorBase","l":"addEq(T)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"addEq(T)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"addEq(Tensor)","u":"addEq(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.core","c":"ComplexTensorExclusiveMixin","l":"addEq(Tensor)","u":"addEq(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.core.dense_base","c":"DenseTensorMixin","l":"addEq(Tensor)","u":"addEq(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseTensorOperations","l":"addEq(Tensor, CooTensor)","u":"addEq(org.flag4j.arrays.dense.Tensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"addEq(Vector)","u":"addEq(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core.dense_base","c":"DenseVectorMixin","l":"addEq(Vector)","u":"addEq(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseVectorOperations","l":"addEq(Vector, CooVector)","u":"addEq(org.flag4j.arrays.dense.Vector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core.dense_base","c":"DenseMixin","l":"addEq(X)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"addInv()"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"addNotInCol(List, List, List, CooMatrix, int)","u":"addNotInCol(java.util.List,java.util.List,java.util.List,org.flag4j.arrays.sparse.CooMatrix,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixOperations","l":"addToEachCol(CooCMatrix, CooCVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixOperations","l":"addToEachCol(CooCMatrix, CooVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixOperations","l":"addToEachCol(CooCMatrix, CVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"addToEachCol(CooCMatrix, Vector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"addToEachCol(CooCVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"addToEachCol(CooCVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"addToEachCol(CooCVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"addToEachCol(CooCVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"addToEachCol(CooCVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"addToEachCol(CooCVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"addToEachCol(CooCVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixOperations","l":"addToEachCol(CooMatrix, CooCVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixOperations","l":"addToEachCol(CooMatrix, CooVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"addToEachCol(CooMatrix, CVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixOperations","l":"addToEachCol(CooMatrix, Vector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"addToEachCol(CooVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"addToEachCol(CooVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"addToEachCol(CooVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"addToEachCol(CooVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"addToEachCol(CooVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"addToEachCol(CooVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"addToEachCol(CooVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrOperations","l":"addToEachCol(CsrCMatrix, CooCVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrOperations","l":"addToEachCol(CsrCMatrix, CooVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrOperations","l":"addToEachCol(CsrCMatrix, CVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrOperations","l":"addToEachCol(CsrCMatrix, Vector)","u":"addToEachCol(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrOperations","l":"addToEachCol(CsrMatrix, CooCVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrOperations","l":"addToEachCol(CsrMatrix, CooVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrOperations","l":"addToEachCol(CsrMatrix, CVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrOperations","l":"addToEachCol(CsrMatrix, Vector)","u":"addToEachCol(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"addToEachCol(CVector)","u":"addToEachCol(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"addToEachCol(CVector)","u":"addToEachCol(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"addToEachCol(CVector)","u":"addToEachCol(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"addToEachCol(CVector)","u":"addToEachCol(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"addToEachCol(CVector)","u":"addToEachCol(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"addToEachCol(CVector)","u":"addToEachCol(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"addToEachCol(CVector)","u":"addToEachCol(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"addToEachCol(Vector)","u":"addToEachCol(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"addToEachCol(Vector)","u":"addToEachCol(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"addToEachCol(Vector)","u":"addToEachCol(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"addToEachCol(Vector)","u":"addToEachCol(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"addToEachCol(Vector)","u":"addToEachCol(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"addToEachCol(Vector)","u":"addToEachCol(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"addToEachCol(Vector)","u":"addToEachCol(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixOperations","l":"addToEachRow(CooCMatrix, CooCVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixOperations","l":"addToEachRow(CooCMatrix, CooVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixOperations","l":"addToEachRow(CooCMatrix, CVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"addToEachRow(CooCMatrix, Vector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"addToEachRow(CooCVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"addToEachRow(CooCVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"addToEachRow(CooCVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"addToEachRow(CooCVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"addToEachRow(CooCVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"addToEachRow(CooCVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"addToEachRow(CooCVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixOperations","l":"addToEachRow(CooMatrix, CooCVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixOperations","l":"addToEachRow(CooMatrix, CooVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"addToEachRow(CooMatrix, CVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixOperations","l":"addToEachRow(CooMatrix, Vector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"addToEachRow(CooVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"addToEachRow(CooVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"addToEachRow(CooVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"addToEachRow(CooVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"addToEachRow(CooVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"addToEachRow(CooVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"addToEachRow(CooVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrOperations","l":"addToEachRow(CsrCMatrix, CooCVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrOperations","l":"addToEachRow(CsrCMatrix, CooVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrOperations","l":"addToEachRow(CsrCMatrix, CVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrOperations","l":"addToEachRow(CsrCMatrix, Vector)","u":"addToEachRow(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrOperations","l":"addToEachRow(CsrMatrix, CooCVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrOperations","l":"addToEachRow(CsrMatrix, CooVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrOperations","l":"addToEachRow(CsrMatrix, CVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrOperations","l":"addToEachRow(CsrMatrix, Vector)","u":"addToEachRow(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"addToEachRow(CVector)","u":"addToEachRow(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"addToEachRow(CVector)","u":"addToEachRow(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"addToEachRow(CVector)","u":"addToEachRow(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"addToEachRow(CVector)","u":"addToEachRow(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"addToEachRow(CVector)","u":"addToEachRow(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"addToEachRow(CVector)","u":"addToEachRow(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"addToEachRow(CVector)","u":"addToEachRow(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"addToEachRow(Vector)","u":"addToEachRow(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"addToEachRow(Vector)","u":"addToEachRow(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"addToEachRow(Vector)","u":"addToEachRow(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"addToEachRow(Vector)","u":"addToEachRow(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"addToEachRow(Vector)","u":"addToEachRow(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"addToEachRow(Vector)","u":"addToEachRow(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"addToEachRow(Vector)","u":"addToEachRow(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.common.complex","c":"AggregateComplex","l":"AggregateComplex()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.complex","c":"AggregateDenseComplex","l":"AggregateDenseComplex()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real","c":"AggregateDenseReal","l":"AggregateDenseReal()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.common.real","c":"AggregateReal","l":"AggregateReal()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations","c":"TransposeDispatcher.Algorithm","l":"Algorithm()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher","l":"algorithmMap"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"AlgorithmName()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"AlgorithmNames()","u":"%3Cinit%3E()"},{"p":"org.flag4j.util","c":"Axis2D","l":"allAxes()"},{"p":"org.flag4j.operations.common.complex","c":"ComplexProperties","l":"allClose(CNumber[], CNumber[])","u":"allClose(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.common.complex","c":"ComplexProperties","l":"allClose(CNumber[], CNumber[], double, double)","u":"allClose(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber[],double,double)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"allClose(CooCMatrix, double, double)","u":"allClose(org.flag4j.arrays.sparse.CooCMatrix,double,double)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"allClose(CooCTensor, double, double)","u":"allClose(org.flag4j.arrays.sparse.CooCTensor,double,double)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"allClose(CooCVector, double, double)","u":"allClose(org.flag4j.arrays.sparse.CooCVector,double,double)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"allClose(CooMatrix, double, double)","u":"allClose(org.flag4j.arrays.sparse.CooMatrix,double,double)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"allClose(CooTensor, double, double)","u":"allClose(org.flag4j.arrays.sparse.CooTensor,double,double)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"allClose(CooVector, double, double)","u":"allClose(org.flag4j.arrays.sparse.CooVector,double,double)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrEquals","l":"allClose(CsrCMatrix, CsrCMatrix, double, double)","u":"allClose(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CsrCMatrix,double,double)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"allClose(CsrCMatrix, double, double)","u":"allClose(org.flag4j.arrays.sparse.CsrCMatrix,double,double)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrEquals","l":"allClose(CsrMatrix, CsrMatrix, double, double)","u":"allClose(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CsrMatrix,double,double)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"allClose(CsrMatrix, double, double)","u":"allClose(org.flag4j.arrays.sparse.CsrMatrix,double,double)"},{"p":"org.flag4j.operations.common.real","c":"RealProperties","l":"allClose(double[], double[])","u":"allClose(double[],double[])"},{"p":"org.flag4j.operations.common.real","c":"RealProperties","l":"allClose(double[], double[], double, double)","u":"allClose(double[],double[],double,double)"},{"p":"org.flag4j.core","c":"TensorBase","l":"allClose(T)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"allClose(T, double, double)","u":"allClose(T,double,double)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"allClose(T, double, double)","u":"allClose(T,double,double)"},{"p":"org.flag4j.core","c":"TensorBase","l":"allClose(T, double, double)","u":"allClose(T,double,double)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseEquals","l":"allCloseMatrix(CooCMatrix, CooCMatrix, double, double)","u":"allCloseMatrix(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooCMatrix,double,double)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseEquals","l":"allCloseMatrix(CooMatrix, CooMatrix, double, double)","u":"allCloseMatrix(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooMatrix,double,double)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseEquals","l":"allCloseTensor(CooCTensor, CooCTensor, double, double)","u":"allCloseTensor(org.flag4j.arrays.sparse.CooCTensor,org.flag4j.arrays.sparse.CooCTensor,double,double)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseEquals","l":"allCloseTensor(CooTensor, CooTensor, double, double)","u":"allCloseTensor(org.flag4j.arrays.sparse.CooTensor,org.flag4j.arrays.sparse.CooTensor,double,double)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseEquals","l":"allCloseVector(CooCVector, CooCVector, double, double)","u":"allCloseVector(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.sparse.CooCVector,double,double)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseEquals","l":"allCloseVector(CooVector, CooVector, double, double)","u":"allCloseVector(org.flag4j.arrays.sparse.CooVector,org.flag4j.arrays.sparse.CooVector,double,double)"},{"p":"org.flag4j.operations","c":"RealDenseTensorBinaryOperation","l":"apply(double[], Shape, double[], Shape)","u":"apply(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.csr.complex","c":"ComplexCsrDenseOperations","l":"applyBinOpp(CMatrix, CsrCMatrix, BinaryOperator)","u":"applyBinOpp(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CsrCMatrix,java.util.function.BinaryOperator)"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseOperations","l":"applyBinOpp(CMatrix, CsrMatrix, BiFunction)","u":"applyBinOpp(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CsrMatrix,java.util.function.BiFunction)"},{"p":"org.flag4j.operations.dense_sparse.csr.complex","c":"ComplexCsrDenseOperations","l":"applyBinOpp(CsrCMatrix, CMatrix, BinaryOperator, UnaryOperator)","u":"applyBinOpp(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.dense.CMatrix,java.util.function.BinaryOperator,java.util.function.UnaryOperator)"},{"p":"org.flag4j.operations.dense_sparse.csr.complex","c":"ComplexCsrDenseOperations","l":"applyBinOpp(CsrCMatrix, CNumber, BinaryOperator, UnaryOperator)","u":"applyBinOpp(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.complex_numbers.CNumber,java.util.function.BinaryOperator,java.util.function.UnaryOperator)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrOperations","l":"applyBinOpp(CsrCMatrix, CsrCMatrix, BinaryOperator, UnaryOperator)","u":"applyBinOpp(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CsrCMatrix,java.util.function.BinaryOperator,java.util.function.UnaryOperator)"},{"p":"org.flag4j.operations.sparse.csr.real_complex","c":"RealComplexCsrOperations","l":"applyBinOpp(CsrCMatrix, CsrMatrix, BiFunction, UnaryOperator)","u":"applyBinOpp(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CsrMatrix,java.util.function.BiFunction,java.util.function.UnaryOperator)"},{"p":"org.flag4j.operations.dense_sparse.csr.complex","c":"ComplexCsrDenseOperations","l":"applyBinOpp(CsrCMatrix, double, BinaryOperator, UnaryOperator)","u":"applyBinOpp(org.flag4j.arrays.sparse.CsrCMatrix,double,java.util.function.BinaryOperator,java.util.function.UnaryOperator)"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseOperations","l":"applyBinOpp(CsrCMatrix, Matrix, BiFunction, UnaryOperator)","u":"applyBinOpp(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.dense.Matrix,java.util.function.BiFunction,java.util.function.UnaryOperator)"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseOperations","l":"applyBinOpp(CsrMatrix, CMatrix, BiFunction, UnaryOperator)","u":"applyBinOpp(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.CMatrix,java.util.function.BiFunction,java.util.function.UnaryOperator)"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseOperations","l":"applyBinOpp(CsrMatrix, CNumber, BiFunction, UnaryOperator)","u":"applyBinOpp(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.complex_numbers.CNumber,java.util.function.BiFunction,java.util.function.UnaryOperator)"},{"p":"org.flag4j.operations.sparse.csr.real_complex","c":"RealComplexCsrOperations","l":"applyBinOpp(CsrMatrix, CsrCMatrix, BiFunction, UnaryOperator)","u":"applyBinOpp(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CsrCMatrix,java.util.function.BiFunction,java.util.function.UnaryOperator)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrOperations","l":"applyBinOpp(CsrMatrix, CsrMatrix, BinaryOperator, UnaryOperator)","u":"applyBinOpp(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CsrMatrix,java.util.function.BinaryOperator,java.util.function.UnaryOperator)"},{"p":"org.flag4j.operations.dense_sparse.csr.real","c":"RealCsrDenseOperations","l":"applyBinOpp(CsrMatrix, double, BinaryOperator, UnaryOperator)","u":"applyBinOpp(org.flag4j.arrays.sparse.CsrMatrix,double,java.util.function.BinaryOperator,java.util.function.UnaryOperator)"},{"p":"org.flag4j.operations.dense_sparse.csr.real","c":"RealCsrDenseOperations","l":"applyBinOpp(CsrMatrix, Matrix, BinaryOperator, UnaryOperator)","u":"applyBinOpp(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.Matrix,java.util.function.BinaryOperator,java.util.function.UnaryOperator)"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseOperations","l":"applyBinOpp(Matrix, CsrCMatrix, BiFunction)","u":"applyBinOpp(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CsrCMatrix,java.util.function.BiFunction)"},{"p":"org.flag4j.operations.dense_sparse.csr.real","c":"RealCsrDenseOperations","l":"applyBinOpp(Matrix, CsrMatrix, BinaryOperator)","u":"applyBinOpp(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CsrMatrix,java.util.function.BinaryOperator)"},{"p":"org.flag4j.operations.dense_sparse.csr.complex","c":"ComplexCsrDenseOperations","l":"applyBinOppToSparse(CMatrix, CsrCMatrix, BinaryOperator)","u":"applyBinOppToSparse(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CsrCMatrix,java.util.function.BinaryOperator)"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseOperations","l":"applyBinOppToSparse(CMatrix, CsrMatrix, BiFunction)","u":"applyBinOppToSparse(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CsrMatrix,java.util.function.BiFunction)"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseOperations","l":"applyBinOppToSparse(CsrMatrix, CMatrix, BiFunction)","u":"applyBinOppToSparse(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.CMatrix,java.util.function.BiFunction)"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseOperations","l":"applyBinOppToSparse(Matrix, CsrCMatrix, BiFunction)","u":"applyBinOppToSparse(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CsrCMatrix,java.util.function.BiFunction)"},{"p":"org.flag4j.operations.dense_sparse.csr.real","c":"RealCsrDenseOperations","l":"applyBinOppToSparse(Matrix, CsrMatrix, BinaryOperator)","u":"applyBinOppToSparse(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CsrMatrix,java.util.function.BinaryOperator)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"applyDoubleShiftReflector(int, boolean)","u":"applyDoubleShiftReflector(int,boolean)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"applyDoubleShiftReflector(int, boolean)","u":"applyDoubleShiftReflector(int,boolean)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"applyReflector(int, int)","u":"applyReflector(int,int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"applyReflector(int, int)","u":"applyReflector(int,int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"applySingleShiftReflector(int, boolean)","u":"applySingleShiftReflector(int,boolean)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"applySingleShiftReflector(int, boolean)","u":"applySingleShiftReflector(int,boolean)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"applyTransform(CNumber[], Function)","u":"applyTransform(org.flag4j.complex_numbers.CNumber[],java.util.function.Function)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"applyTransform(double[], Function)","u":"applyTransform(double[],java.util.function.Function)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"applyTransform(double[], UnaryOperator)","u":"applyTransform(double[],java.util.function.UnaryOperator)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"applyTransform(T[], UnaryOperator)","u":"applyTransform(T[],java.util.function.UnaryOperator)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"applyUpdate"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"arg(CNumber)","u":"arg(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"argAsCNumber(CNumber)","u":"argAsCNumber(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.real","c":"AggregateDenseReal","l":"argEq(double[], double)","u":"argEq(double[],double)"},{"p":"org.flag4j.operations.dense.real","c":"AggregateDenseReal","l":"argEq(int[], int)","u":"argEq(int[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"argMax()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"argMax()"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"argMax()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"argMax()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"argMax()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"argMax()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"argMax()"},{"p":"org.flag4j.core","c":"TensorPropertiesMixin","l":"argMax()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"argMax(CNumber...)","u":"argMax(org.flag4j.complex_numbers.CNumber...)"},{"p":"org.flag4j.operations.dense.complex","c":"AggregateDenseComplex","l":"argMax(CNumber[])","u":"argMax(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.real","c":"AggregateDenseReal","l":"argMax(double[])"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"argMaxReal(CNumber...)","u":"argMaxReal(org.flag4j.complex_numbers.CNumber...)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"argMin()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"argMin()"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"argMin()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"argMin()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"argMin()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"argMin()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"argMin()"},{"p":"org.flag4j.core","c":"TensorPropertiesMixin","l":"argMin()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"argMin(CNumber...)","u":"argMin(org.flag4j.complex_numbers.CNumber...)"},{"p":"org.flag4j.operations.dense.complex","c":"AggregateDenseComplex","l":"argMin(CNumber[])","u":"argMin(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.real","c":"AggregateDenseReal","l":"argMin(double[])"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"argMinReal(CNumber...)","u":"argMinReal(org.flag4j.complex_numbers.CNumber...)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"ARRAY_LENGTHS_MISMATCH_ERR"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"arraycopy(CNumber[], int, CNumber[], int, int)","u":"arraycopy(org.flag4j.complex_numbers.CNumber[],int,org.flag4j.complex_numbers.CNumber[],int,int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"arraycopy(double[], int, CNumber[], int, int)","u":"arraycopy(double[],int,org.flag4j.complex_numbers.CNumber[],int,int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"ArrayUtils()","u":"%3Cinit%3E()"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"asDouble(int[], double[])","u":"asDouble(int[],double[])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"asDouble(Integer[], double[])","u":"asDouble(java.lang.Integer[],double[])"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"asin(CNumber)","u":"asin(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"asin(double)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertArrayLengthsEq(int...)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertAxis2D(int)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertBroadcastable(Shape, Shape)","u":"assertBroadcastable(org.flag4j.core.Shape,org.flag4j.core.Shape)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertEquals(double...)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertEquals(int...)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertEqualShape(Shape, Shape)","u":"assertEqualShape(org.flag4j.core.Shape,org.flag4j.core.Shape)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertGreaterEq(double, double, String)","u":"assertGreaterEq(double,double,java.lang.String)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertGreaterEq(double, double...)","u":"assertGreaterEq(double,double...)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertGreaterEq(int, int)","u":"assertGreaterEq(int,int)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertGreaterEq(int, int...)","u":"assertGreaterEq(int,int...)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertIndexInBounds(int, int...)","u":"assertIndexInBounds(int,int...)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertInRange(double, double, double, String)","u":"assertInRange(double,double,double,java.lang.String)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertLessEq(BigInteger, int, String)","u":"assertLessEq(java.math.BigInteger,int,java.lang.String)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertLessEq(double, double, String)","u":"assertLessEq(double,double,java.lang.String)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertLessEq(double, double...)","u":"assertLessEq(double,double...)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertLessEq(int, int...)","u":"assertLessEq(int,int...)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertMatMultShapes(Shape, Shape)","u":"assertMatMultShapes(org.flag4j.core.Shape,org.flag4j.core.Shape)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertNonNegative(int)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertNotEquals(double, double)","u":"assertNotEquals(double,double)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertPermutation(int...)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertPositive(int)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertRank(int, Shape)","u":"assertRank(int,org.flag4j.core.Shape)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertSquare(Shape)","u":"assertSquare(org.flag4j.core.Shape)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertSquareMatrix(int, int)","u":"assertSquareMatrix(int,int)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertSquareMatrix(Shape)","u":"assertSquareMatrix(org.flag4j.core.Shape)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertTotalEntriesEq(double[][], CNumber[])","u":"assertTotalEntriesEq(double[][],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertTotalEntriesEq(double[][], double[])","u":"assertTotalEntriesEq(double[][],double[])"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertTotalEntriesEq(int[][], CNumber[])","u":"assertTotalEntriesEq(int[][],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertTotalEntriesEq(int[][], double[])","u":"assertTotalEntriesEq(int[][],double[])"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertTotalEntriesEq(Object[][], CNumber[])","u":"assertTotalEntriesEq(java.lang.Object[][],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertTotalEntriesEq(Object[][], double[])","u":"assertTotalEntriesEq(java.lang.Object[][],double[])"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertValidIndex(Shape, int...)","u":"assertValidIndex(org.flag4j.core.Shape,int...)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertValidIndices(int, int...)","u":"assertValidIndices(int,int...)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"atan(CNumber)","u":"atan(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"atan(double)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"atan2(CNumber)","u":"atan2(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"atan2AsCNumber(CNumber)","u":"atan2AsCNumber(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"augment(CMatrix)","u":"augment(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"augment(CMatrix)","u":"augment(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"augment(CMatrix)","u":"augment(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"augment(CMatrix)","u":"augment(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"augment(CMatrix)","u":"augment(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"augment(CMatrix)","u":"augment(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"augment(CMatrix)","u":"augment(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"augment(CooCMatrix)","u":"augment(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"augment(CooCMatrix)","u":"augment(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"augment(CooCMatrix)","u":"augment(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"augment(CooCMatrix)","u":"augment(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"augment(CooCMatrix)","u":"augment(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"augment(CooCMatrix)","u":"augment(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"augment(CooCMatrix)","u":"augment(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"augment(CooCVector)","u":"augment(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"augment(CooCVector)","u":"augment(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"augment(CooCVector)","u":"augment(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"augment(CooCVector)","u":"augment(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"augment(CooCVector)","u":"augment(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"augment(CooCVector)","u":"augment(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"augment(CooCVector)","u":"augment(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"augment(CooMatrix)","u":"augment(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"augment(CooMatrix)","u":"augment(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"augment(CooMatrix)","u":"augment(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"augment(CooMatrix)","u":"augment(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"augment(CooMatrix)","u":"augment(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"augment(CooMatrix)","u":"augment(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"augment(CooMatrix)","u":"augment(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"augment(CooVector)","u":"augment(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"augment(CooVector)","u":"augment(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"augment(CooVector)","u":"augment(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"augment(CooVector)","u":"augment(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"augment(CooVector)","u":"augment(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"augment(CooVector)","u":"augment(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"augment(CooVector)","u":"augment(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"augment(CsrCMatrix)","u":"augment(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"augment(CsrCMatrix)","u":"augment(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"augment(CsrMatrix)","u":"augment(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"augment(CsrMatrix)","u":"augment(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"augment(CVector)","u":"augment(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"augment(CVector)","u":"augment(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"augment(CVector)","u":"augment(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"augment(CVector)","u":"augment(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"augment(CVector)","u":"augment(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"augment(CVector)","u":"augment(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"augment(CVector)","u":"augment(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"augment(Matrix)","u":"augment(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"augment(Matrix)","u":"augment(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"augment(Matrix)","u":"augment(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"augment(Matrix)","u":"augment(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"augment(Matrix)","u":"augment(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"augment(Matrix)","u":"augment(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"augment(Matrix)","u":"augment(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"augment(Vector)","u":"augment(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"augment(Vector)","u":"augment(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"augment(Vector)","u":"augment(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"augment(Vector)","u":"augment(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"augment(Vector)","u":"augment(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"augment(Vector)","u":"augment(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"augment(Vector)","u":"augment(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"AXIS_ERR"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"AXIS_ERR_RANGE"},{"p":"org.flag4j.util","c":"Axis2D","l":"Axis2D()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactSolver","l":"backSolver"},{"p":"org.flag4j.linalg.solvers.lstsq","c":"LstsqSolver","l":"backSolver"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"BackSolver","l":"BackSolver(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"BLOCKED"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"BLOCKED"},{"p":"org.flag4j.operations","c":"TransposeDispatcher.Algorithm","l":"BLOCKED"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"BLOCKED_REORDERED"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"BLOCKED_REORDERED"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"BLOCKED_VECTOR"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"BLOCKED_VECTOR"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultiplication","l":"blocked(CNumber[], Shape, CNumber[], Shape)","u":"blocked(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"blocked(CNumber[], Shape, double[], Shape)","u":"blocked(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"blocked(double[], Shape, CNumber[], Shape)","u":"blocked(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultiplication","l":"blocked(double[], Shape, double[], Shape)","u":"blocked(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseTranspose","l":"blockedIntMatrix(int[][])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"blockedMatrix(CNumber[], int, int)","u":"blockedMatrix(org.flag4j.complex_numbers.CNumber[],int,int)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseTranspose","l":"blockedMatrix(double[], int, int)","u":"blockedMatrix(double[],int,int)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"blockedMatrixConcurrent(CNumber[], int, int)","u":"blockedMatrixConcurrent(org.flag4j.complex_numbers.CNumber[],int,int)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseTranspose","l":"blockedMatrixConcurrent(double[], int, int)","u":"blockedMatrixConcurrent(double[],int,int)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"blockedMatrixConcurrentHerm(CNumber[], int, int)","u":"blockedMatrixConcurrentHerm(org.flag4j.complex_numbers.CNumber[],int,int)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"blockedMatrixHerm(CNumber[], int, int)","u":"blockedMatrixHerm(org.flag4j.complex_numbers.CNumber[],int,int)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultiplication","l":"blockedReordered(CNumber[], Shape, CNumber[], Shape)","u":"blockedReordered(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"blockedReordered(CNumber[], Shape, double[], Shape)","u":"blockedReordered(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"blockedReordered(double[], Shape, CNumber[], Shape)","u":"blockedReordered(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultiplication","l":"blockedReordered(double[], Shape, double[], Shape)","u":"blockedReordered(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixMultiplication","l":"blockedVector(CNumber[], Shape, CNumber[], int[])","u":"blockedVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultiplication","l":"blockedVector(CNumber[], Shape, CNumber[], Shape)","u":"blockedVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"blockedVector(CNumber[], Shape, double[], int[])","u":"blockedVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],int[])"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"blockedVector(CNumber[], Shape, double[], Shape)","u":"blockedVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"blockedVector(double[], Shape, CNumber[], int[])","u":"blockedVector(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[])"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"blockedVector(double[], Shape, CNumber[], Shape)","u":"blockedVector(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixMultiplication","l":"blockedVector(double[], Shape, double[], int[])","u":"blockedVector(double[],org.flag4j.core.Shape,double[],int[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultiplication","l":"blockedVector(double[], Shape, double[], Shape)","u":"blockedVector(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.concurrency","c":"Configurations","l":"blockSize"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"boxed(double[])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"boxed(int[])"},{"p":"org.flag4j.io","c":"PrintOptions","l":"center"},{"p":"org.flag4j.util","c":"StringUtils","l":"center(String, int)","u":"center(java.lang.String,int)"},{"p":"org.flag4j.util","c":"StringUtils","l":"center(String, int, String)","u":"center(java.lang.String,int,java.lang.String)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"checkConvergence(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"checkConvergence(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"checkConvergence(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"checkFinite"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"BackSolver","l":"checkParams(T, int)","u":"checkParams(T,int)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ForwardSolver","l":"checkParams(T, int)","u":"checkParams(T,int)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"BackSolver","l":"checkSingular(double, int, int)","u":"checkSingular(double,int,int)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ForwardSolver","l":"checkSingular(double, int, int)","u":"checkSingular(double,int,int)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactTensorSolver","l":"checkSize(int, int)","u":"checkSize(int,int)"},{"p":"org.flag4j.linalg.decompositions.chol","c":"Cholesky","l":"Cholesky(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"chooseAlgorithm(Shape)","u":"chooseAlgorithm(org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"chooseAlgorithmComplex(Shape)","u":"chooseAlgorithmComplex(org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"chooseAlgorithmComplex(Shape, Shape)","u":"chooseAlgorithmComplex(org.flag4j.core.Shape,org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"chooseAlgorithmComplexTranspose(Shape)","u":"chooseAlgorithmComplexTranspose(org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"chooseAlgorithmComplexVector(Shape)","u":"chooseAlgorithmComplexVector(org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"chooseAlgorithmHermitian(Shape)","u":"chooseAlgorithmHermitian(org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"chooseAlgorithmRealComplex(Shape, Shape)","u":"chooseAlgorithmRealComplex(org.flag4j.core.Shape,org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"chooseAlgorithmRealComplexTranspose(Shape)","u":"chooseAlgorithmRealComplexTranspose(org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"chooseAlgorithmRealComplexVector(Shape)","u":"chooseAlgorithmRealComplexVector(org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"chooseAlgorithmRealVector(Shape)","u":"chooseAlgorithmRealVector(org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"chooseAlgorithmTensor(int)"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"chooseAlgorithmTensor(int, int)","u":"chooseAlgorithmTensor(int,int)"},{"p":"org.flag4j.io","c":"TensorInputStream","l":"close()"},{"p":"org.flag4j.io","c":"TensorOutputStream","l":"close()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(CMatrix)","u":"%3Cinit%3E(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(CNumber[][])","u":"%3Cinit%3E(org.flag4j.complex_numbers.CNumber[][])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(double[][])","u":"%3Cinit%3E(double[][])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(int)","u":"%3Cinit%3E(int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(int, CNumber)","u":"%3Cinit%3E(int,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(int, double)","u":"%3Cinit%3E(int,double)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(int, int)","u":"%3Cinit%3E(int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(int, int, CNumber)","u":"%3Cinit%3E(int,int,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(int, int, CNumber[])","u":"%3Cinit%3E(int,int,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(int, int, double)","u":"%3Cinit%3E(int,int,double)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(int[][])","u":"%3Cinit%3E(int[][])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(Matrix)","u":"%3Cinit%3E(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(Shape)","u":"%3Cinit%3E(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(Shape, CNumber)","u":"%3Cinit%3E(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(Shape, CNumber...)","u":"%3Cinit%3E(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber...)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(Shape, double)","u":"%3Cinit%3E(org.flag4j.core.Shape,double)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(Shape, double...)","u":"%3Cinit%3E(org.flag4j.core.Shape,double...)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(String[][])","u":"%3Cinit%3E(java.lang.String[][])"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"CNumber()","u":"%3Cinit%3E()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"CNumber(CNumber)","u":"%3Cinit%3E(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"CNumber(double)","u":"%3Cinit%3E(double)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"CNumber(double, double)","u":"%3Cinit%3E(double,double)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"CNumber(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"org.flag4j.complex_numbers","c":"CNumberLexer","l":"CNumberLexer(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"org.flag4j.complex_numbers","c":"CNumberParser","l":"CNumberParser()","u":"%3Cinit%3E()"},{"p":"org.flag4j.complex_numbers","c":"CNumberToken","l":"CNumberToken(String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String)"},{"p":"org.flag4j.complex_numbers","c":"CNumberUtils","l":"CNumberUtils()","u":"%3Cinit%3E()"},{"p":"org.flag4j.util","c":"Axis2D","l":"COL"},{"p":"org.flag4j.util","c":"Axis2D","l":"col()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"colIndices"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"colIndices"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"colIndices"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"colIndices"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"colSwaps"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"compareTo(CNumber)","u":"compareTo(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"compareToReal(CNumber)","u":"compareToReal(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"compareToReal(double)"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"COMPLEX_BLOCKED_THRESHOLD"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"COMPLEX_RNG"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexBackSolver","l":"ComplexBackSolver()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexBackSolver","l":"ComplexBackSolver(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.linalg.decompositions.chol","c":"ComplexCholesky","l":"ComplexCholesky()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.chol","c":"ComplexCholesky","l":"ComplexCholesky(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.operations.dense_sparse.csr.complex","c":"ComplexCsrDenseMatrixMultiplication","l":"ComplexCsrDenseMatrixMultiplication()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.csr.complex","c":"ComplexCsrDenseOperations","l":"ComplexCsrDenseOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrEquals","l":"ComplexCsrEquals()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrManipulations","l":"ComplexCsrManipulations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrMatrixMultiplication","l":"ComplexCsrMatrixMultiplication()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrOperations","l":"ComplexCsrOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrProperties","l":"ComplexCsrProperties()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseDeterminant","l":"ComplexDenseDeterminant()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseElemDiv","l":"ComplexDenseElemDiv()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseElemMult","l":"ComplexDenseElemMult()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseEquals","l":"ComplexDenseEquals()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.common","c":"TensorEquals","l":"complexDenseLookUp"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultiplication","l":"ComplexDenseMatrixMultiplication()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultTranspose","l":"ComplexDenseMatrixMultTranspose()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"ComplexDenseOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseProperties","l":"ComplexDenseProperties()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseSetOperations","l":"ComplexDenseSetOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseEquals","l":"ComplexDenseSparseEquals()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixMultiplication","l":"ComplexDenseSparseMatrixMultiplication()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixMultTranspose","l":"ComplexDenseSparseMatrixMultTranspose()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixOperations","l":"ComplexDenseSparseMatrixOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseOperations","l":"ComplexDenseSparseOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseVectorOperations","l":"ComplexDenseSparseVectorOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"ComplexDenseTensorBase(Shape, CNumber[])","u":"%3Cinit%3E(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTensorDot","l":"ComplexDenseTensorDot()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"ComplexDenseTranspose()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseVectorOperations","l":"ComplexDenseVectorOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.solvers.exact","c":"ComplexExactSolver","l":"ComplexExactSolver()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.solvers.exact","c":"ComplexExactTensorSolver","l":"ComplexExactTensorSolver()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexForwardSolver","l":"ComplexForwardSolver()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexForwardSolver","l":"ComplexForwardSolver(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexForwardSolver","l":"ComplexForwardSolver(boolean, boolean)","u":"%3Cinit%3E(boolean,boolean)"},{"p":"org.flag4j.linalg.decompositions.hess","c":"ComplexHess","l":"ComplexHess()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.hess","c":"ComplexHess","l":"ComplexHess(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.linalg.solvers.lstsq","c":"ComplexLstsqSolver","l":"ComplexLstsqSolver()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"ComplexLU","l":"ComplexLU()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"ComplexLU","l":"ComplexLU(int)","u":"%3Cinit%3E(int)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"ComplexLU","l":"ComplexLU(int, double)","u":"%3Cinit%3E(int,double)"},{"p":"org.flag4j.operations.common.complex","c":"ComplexOperations","l":"ComplexOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.common.complex","c":"ComplexProperties","l":"ComplexProperties()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.qr","c":"ComplexQR","l":"ComplexQR()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.qr","c":"ComplexQR","l":"ComplexQR(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"ComplexSchur()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"ComplexSchur(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"ComplexSchur(boolean, long)","u":"%3Cinit%3E(boolean,long)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"ComplexSchur(long)","u":"%3Cinit%3E(long)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseElementSearch","l":"ComplexSparseElementSearch()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseEquals","l":"ComplexSparseEquals()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.common","c":"TensorEquals","l":"complexSparseLookUp"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"ComplexSparseMatrixGetSet()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixManipulations","l":"ComplexSparseMatrixManipulations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixMultiplication","l":"ComplexSparseMatrixMultiplication()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixOperations","l":"ComplexSparseMatrixOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixProperties","l":"ComplexSparseMatrixProperties()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseNorms","l":"ComplexSparseNorms()","u":"%3Cinit%3E()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"ComplexSparseTensorBase(Shape, int, CNumber[], int[], int[]...)","u":"%3Cinit%3E(org.flag4j.core.Shape,int,org.flag4j.complex_numbers.CNumber[],int[],int[]...)"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"ComplexSparseTensorBase(Shape, int, CNumber[], int[][])","u":"%3Cinit%3E(org.flag4j.core.Shape,int,org.flag4j.complex_numbers.CNumber[],int[][])"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseVectorOperations","l":"ComplexSparseVectorOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.svd","c":"ComplexSVD","l":"ComplexSVD()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.svd","c":"ComplexSVD","l":"ComplexSVD(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.linalg.decompositions.svd","c":"ComplexSVD","l":"ComplexSVD(boolean, boolean)","u":"%3Cinit%3E(boolean,boolean)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"ComplexUnitaryDecomposition","l":"ComplexUnitaryDecomposition(int)","u":"%3Cinit%3E(int)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"ComplexUnitaryDecomposition","l":"ComplexUnitaryDecomposition(int, boolean)","u":"%3Cinit%3E(int,boolean)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"computeExceptionalShift(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"computeExceptionalShift(int)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"ComplexUnitaryDecomposition","l":"computeHouseholder(int)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"RealUnitaryDecomposition","l":"computeHouseholder(int)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"computeHouseholder(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"computeImplicitDoubleShift(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"computeImplicitDoubleShift(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"computeImplicitSingleShift(int, CNumber)","u":"computeImplicitSingleShift(int,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"computeImplicitSingleShift(int, double)","u":"computeImplicitSingleShift(int,double)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"ComplexUnitaryDecomposition","l":"computePhasedNorm(int, double)","u":"computePhasedNorm(int,double)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"RealUnitaryDecomposition","l":"computePhasedNorm(int, double)","u":"computePhasedNorm(int,double)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"computePhasedNorm(int, double)","u":"computePhasedNorm(int,double)"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"computeRank(int, int, double[])","u":"computeRank(int,int,double[])"},{"p":"org.flag4j.linalg.decompositions.lu","c":"ComplexLU","l":"computeRows(int)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"RealLU","l":"computeRows(int)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"computeSwaps()"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"computeU"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"computeUV"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"CONCURRENT_BLOCKED"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"CONCURRENT_BLOCKED"},{"p":"org.flag4j.operations","c":"TransposeDispatcher.Algorithm","l":"CONCURRENT_BLOCKED"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"CONCURRENT_BLOCKED_REORDERED"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"CONCURRENT_BLOCKED_REORDERED"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"CONCURRENT_BLOCKED_VECTOR"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"CONCURRENT_BLOCKED_VECTOR"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"CONCURRENT_REORDERED"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"CONCURRENT_REORDERED"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"CONCURRENT_STANDARD"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"CONCURRENT_STANDARD"},{"p":"org.flag4j.operations","c":"TransposeDispatcher.Algorithm","l":"CONCURRENT_STANDARD"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"CONCURRENT_STANDARD_VECTOR"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"CONCURRENT_STANDARD_VECTOR"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"CONCURRENT_SWAPPED_THRESHOLD"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher","l":"CONCURRENT_SWAPPED_THRESHOLD"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseElemDiv","l":"CONCURRENT_THRESHOLD"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseElemMult","l":"CONCURRENT_THRESHOLD"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseElemDiv","l":"CONCURRENT_THRESHOLD"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseElemMult","l":"CONCURRENT_THRESHOLD"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseElemDiv","l":"CONCURRENT_THRESHOLD"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseElemMult","l":"CONCURRENT_THRESHOLD"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"CONCURRENT_THRESHOLD"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixMultiplication","l":"concurrentAtomicArray(double[], int[], int[], Shape, double[], Shape)","u":"concurrentAtomicArray(double[],int[],int[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultiplication","l":"concurrentBlocked(CNumber[], Shape, CNumber[], Shape)","u":"concurrentBlocked(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"concurrentBlocked(CNumber[], Shape, double[], Shape)","u":"concurrentBlocked(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"concurrentBlocked(double[], Shape, CNumber[], Shape)","u":"concurrentBlocked(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultiplication","l":"concurrentBlocked(double[], Shape, double[], Shape)","u":"concurrentBlocked(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultiplication","l":"concurrentBlockedReordered(CNumber[], Shape, CNumber[], Shape)","u":"concurrentBlockedReordered(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"concurrentBlockedReordered(CNumber[], Shape, double[], Shape)","u":"concurrentBlockedReordered(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"concurrentBlockedReordered(double[], Shape, CNumber[], Shape)","u":"concurrentBlockedReordered(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultiplication","l":"concurrentBlockedReordered(double[], Shape, double[], Shape)","u":"concurrentBlockedReordered(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixMultiplication","l":"concurrentBlockedVector(CNumber[], Shape, CNumber[], int[])","u":"concurrentBlockedVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultiplication","l":"concurrentBlockedVector(CNumber[], Shape, CNumber[], Shape)","u":"concurrentBlockedVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"concurrentBlockedVector(CNumber[], Shape, double[], int[])","u":"concurrentBlockedVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],int[])"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"concurrentBlockedVector(CNumber[], Shape, double[], Shape)","u":"concurrentBlockedVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"concurrentBlockedVector(double[], Shape, CNumber[], int[])","u":"concurrentBlockedVector(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[])"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"concurrentBlockedVector(double[], Shape, CNumber[], Shape)","u":"concurrentBlockedVector(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixMultiplication","l":"concurrentBlockedVector(double[], Shape, double[], int[])","u":"concurrentBlockedVector(double[],org.flag4j.core.Shape,double[],int[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultiplication","l":"concurrentBlockedVector(double[], Shape, double[], Shape)","u":"concurrentBlockedVector(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.concurrency","c":"ThreadManager","l":"concurrentLoop(int, int, int, IntConsumer)","u":"concurrentLoop(int,int,int,java.util.function.IntConsumer)"},{"p":"org.flag4j.concurrency","c":"ThreadManager","l":"concurrentLoop(int, int, IntConsumer)","u":"concurrentLoop(int,int,java.util.function.IntConsumer)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultiplication","l":"concurrentReordered(CNumber[], Shape, CNumber[], Shape)","u":"concurrentReordered(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"concurrentReordered(CNumber[], Shape, double[], Shape)","u":"concurrentReordered(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"concurrentReordered(double[], Shape, CNumber[], Shape)","u":"concurrentReordered(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultiplication","l":"concurrentReordered(double[], Shape, double[], Shape)","u":"concurrentReordered(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixMultiplication","l":"concurrentStandard(CNumber[], int[], int[], Shape, CNumber[], int[], int[], Shape)","u":"concurrentStandard(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixMultiplication","l":"concurrentStandard(CNumber[], int[], int[], Shape, CNumber[], Shape)","u":"concurrentStandard(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixMultiplication","l":"concurrentStandard(CNumber[], int[], int[], Shape, double[], int[], int[], Shape)","u":"concurrentStandard(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,double[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"concurrentStandard(CNumber[], int[], int[], Shape, double[], Shape)","u":"concurrentStandard(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixMultiplication","l":"concurrentStandard(CNumber[], Shape, CNumber[], int[], int[], Shape)","u":"concurrentStandard(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultiplication","l":"concurrentStandard(CNumber[], Shape, CNumber[], Shape)","u":"concurrentStandard(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"concurrentStandard(CNumber[], Shape, double[], int[], int[], Shape)","u":"concurrentStandard(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"concurrentStandard(CNumber[], Shape, double[], Shape)","u":"concurrentStandard(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixMultiplication","l":"concurrentStandard(double[], int[], int[], Shape, CNumber[], int[], int[], Shape)","u":"concurrentStandard(double[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"concurrentStandard(double[], int[], int[], Shape, CNumber[], Shape)","u":"concurrentStandard(double[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixMultiplication","l":"concurrentStandard(double[], int[], int[], Shape, double[], int[], int[], Shape)","u":"concurrentStandard(double[],int[],int[],org.flag4j.core.Shape,double[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixMultiplication","l":"concurrentStandard(double[], int[], int[], Shape, double[], Shape)","u":"concurrentStandard(double[],int[],int[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"concurrentStandard(double[], Shape, CNumber[], int[], int[], Shape)","u":"concurrentStandard(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"concurrentStandard(double[], Shape, CNumber[], Shape)","u":"concurrentStandard(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixMultiplication","l":"concurrentStandard(double[], Shape, double[], int[], int[], Shape)","u":"concurrentStandard(double[],org.flag4j.core.Shape,double[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultiplication","l":"concurrentStandard(double[], Shape, double[], Shape)","u":"concurrentStandard(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixMultiplication","l":"concurrentStandardVector(CNumber[], int[], int[], Shape, CNumber[], int[])","u":"concurrentStandardVector(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[])"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixMultiplication","l":"concurrentStandardVector(CNumber[], int[], int[], Shape, CNumber[], Shape)","u":"concurrentStandardVector(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixMultiplication","l":"concurrentStandardVector(CNumber[], int[], int[], Shape, double[], int[], Shape)","u":"concurrentStandardVector(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,double[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"concurrentStandardVector(CNumber[], int[], int[], Shape, double[], Shape)","u":"concurrentStandardVector(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixMultiplication","l":"concurrentStandardVector(CNumber[], Shape, CNumber[], int[])","u":"concurrentStandardVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultiplication","l":"concurrentStandardVector(CNumber[], Shape, CNumber[], Shape)","u":"concurrentStandardVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"concurrentStandardVector(CNumber[], Shape, double[], int[])","u":"concurrentStandardVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],int[])"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"concurrentStandardVector(CNumber[], Shape, double[], Shape)","u":"concurrentStandardVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixMultiplication","l":"concurrentStandardVector(double[], int[], int[], Shape, CNumber[], int[], Shape)","u":"concurrentStandardVector(double[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"concurrentStandardVector(double[], int[], int[], Shape, CNumber[], Shape)","u":"concurrentStandardVector(double[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixMultiplication","l":"concurrentStandardVector(double[], int[], int[], Shape, double[], int[])","u":"concurrentStandardVector(double[],int[],int[],org.flag4j.core.Shape,double[],int[])"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixMultiplication","l":"concurrentStandardVector(double[], int[], int[], Shape, double[], Shape)","u":"concurrentStandardVector(double[],int[],int[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"concurrentStandardVector(double[], Shape, CNumber[], int[])","u":"concurrentStandardVector(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[])"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"concurrentStandardVector(double[], Shape, CNumber[], Shape)","u":"concurrentStandardVector(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixMultiplication","l":"concurrentStandardVector(double[], Shape, double[], int[])","u":"concurrentStandardVector(double[],org.flag4j.core.Shape,double[],int[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultiplication","l":"concurrentStandardVector(double[], Shape, double[], Shape)","u":"concurrentStandardVector(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.linalg","c":"Condition","l":"cond(CMatrix)","u":"cond(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"Condition","l":"cond(CMatrix, double)","u":"cond(org.flag4j.arrays.dense.CMatrix,double)"},{"p":"org.flag4j.linalg","c":"Condition","l":"cond(Matrix)","u":"cond(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg","c":"Condition","l":"cond(Matrix, double)","u":"cond(org.flag4j.arrays.dense.Matrix,double)"},{"p":"org.flag4j.linalg","c":"Condition","l":"Condition()","u":"%3Cinit%3E()"},{"p":"org.flag4j.concurrency","c":"Configurations","l":"Configurations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"conj()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"conj()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"conj()"},{"p":"org.flag4j.core","c":"ComplexMatrixMixin","l":"conj()"},{"p":"org.flag4j.core","c":"ComplexTensorMixin","l":"conj()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"conj()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"conj()"},{"p":"org.flag4j.operations.common.complex","c":"ComplexOperations","l":"conj(CNumber[])","u":"conj(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.core","c":"ComplexMatrixMixin","l":"conjT()"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"contains(double[], double)","u":"contains(double[],double)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"contains(double[], double...)","u":"contains(double[],double...)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"contains(int[], int)","u":"contains(int[],int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"contains(int[], int...)","u":"contains(int[],int...)"},{"p":"org.flag4j.complex_numbers","c":"CNumberLexer","l":"content"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"CooCMatrix(CooCMatrix)","u":"%3Cinit%3E(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"CooCMatrix(int)","u":"%3Cinit%3E(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"CooCMatrix(int, CNumber[], int[], int[])","u":"%3Cinit%3E(int,org.flag4j.complex_numbers.CNumber[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"CooCMatrix(int, double[], int[], int[])","u":"%3Cinit%3E(int,double[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"CooCMatrix(int, int)","u":"%3Cinit%3E(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"CooCMatrix(int, int, CNumber[], int[], int[])","u":"%3Cinit%3E(int,int,org.flag4j.complex_numbers.CNumber[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"CooCMatrix(int, int, double[], int[], int[])","u":"%3Cinit%3E(int,int,double[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"CooCMatrix(int, int, int[], int[], int[])","u":"%3Cinit%3E(int,int,int[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"CooCMatrix(int, int[], int[], int[])","u":"%3Cinit%3E(int,int[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"CooCMatrix(Shape)","u":"%3Cinit%3E(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"CooCMatrix(Shape, CNumber[], int[], int[])","u":"%3Cinit%3E(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"CooCMatrix(Shape, double[], int[], int[])","u":"%3Cinit%3E(org.flag4j.core.Shape,double[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"CooCMatrix(Shape, int[], int[], int[])","u":"%3Cinit%3E(org.flag4j.core.Shape,int[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"CooCMatrix(Shape, List, List, List)","u":"%3Cinit%3E(org.flag4j.core.Shape,java.util.List,java.util.List,java.util.List)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"CooCTensor(CooCTensor)","u":"%3Cinit%3E(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"CooCTensor(Shape)","u":"%3Cinit%3E(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"CooCTensor(Shape, CNumber[], int[][])","u":"%3Cinit%3E(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"CooCTensor(Shape, double[], int[][])","u":"%3Cinit%3E(org.flag4j.core.Shape,double[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"CooCTensor(Shape, int[], int[][])","u":"%3Cinit%3E(org.flag4j.core.Shape,int[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"CooCVector(CooCVector)","u":"%3Cinit%3E(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"CooCVector(int)","u":"%3Cinit%3E(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"CooCVector(int, CNumber[], int[])","u":"%3Cinit%3E(int,org.flag4j.complex_numbers.CNumber[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"CooCVector(int, double[], int[])","u":"%3Cinit%3E(int,double[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"CooCVector(int, int[], int[])","u":"%3Cinit%3E(int,int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"CooCVector(int, List, List)","u":"%3Cinit%3E(int,java.util.List,java.util.List)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"CooMatrix(CooMatrix)","u":"%3Cinit%3E(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"CooMatrix(int)","u":"%3Cinit%3E(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"CooMatrix(int, double[], int[], int[])","u":"%3Cinit%3E(int,double[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"CooMatrix(int, int)","u":"%3Cinit%3E(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"CooMatrix(int, int, double[], int[], int[])","u":"%3Cinit%3E(int,int,double[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"CooMatrix(int, int, int[], int[], int[])","u":"%3Cinit%3E(int,int,int[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"CooMatrix(int, int[], int[], int[])","u":"%3Cinit%3E(int,int[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"CooMatrix(Shape)","u":"%3Cinit%3E(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"CooMatrix(Shape, double[], int[], int[])","u":"%3Cinit%3E(org.flag4j.core.Shape,double[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"CooMatrix(Shape, int[], int[], int[])","u":"%3Cinit%3E(org.flag4j.core.Shape,int[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"CooMatrix(Shape, List, List, List)","u":"%3Cinit%3E(org.flag4j.core.Shape,java.util.List,java.util.List,java.util.List)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"CooTensor(CooTensor)","u":"%3Cinit%3E(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"CooTensor(Shape)","u":"%3Cinit%3E(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"CooTensor(Shape, double[], int[][])","u":"%3Cinit%3E(org.flag4j.core.Shape,double[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"CooTensor(Shape, int[], int[][])","u":"%3Cinit%3E(org.flag4j.core.Shape,int[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"CooVector(CooVector)","u":"%3Cinit%3E(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"CooVector(int)","u":"%3Cinit%3E(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"CooVector(int, double[], int[])","u":"%3Cinit%3E(int,double[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"CooVector(int, int[], int[])","u":"%3Cinit%3E(int,int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"CooVector(int, List, List)","u":"%3Cinit%3E(int,java.util.List,java.util.List)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"copy()"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"copy()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"copy()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"copy()"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"copy()"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"copy()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"copy()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"copy()"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"copy()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"copy()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"copy()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"copy()"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"copy()"},{"p":"org.flag4j.core","c":"Shape","l":"copy()"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"copy()"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"copy2CNumber(CNumber[], CNumber[])","u":"copy2CNumber(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"copy2CNumber(double[], CNumber[])","u":"copy2CNumber(double[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"copy2CNumber(Double[], CNumber[])","u":"copy2CNumber(java.lang.Double[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"copy2CNumber(int[], CNumber[])","u":"copy2CNumber(int[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"copy2CNumber(Integer[], CNumber[])","u":"copy2CNumber(java.lang.Integer[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"copy2CNumber(String[], CNumber[])","u":"copy2CNumber(java.lang.String[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"copyIndices()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"copyIndices()"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"copyOf(CNumber[])","u":"copyOf(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"copyOfRange(CNumber[], int, int)","u":"copyOfRange(org.flag4j.complex_numbers.CNumber[],int,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixManipulations","l":"copyRanges(CooCMatrix, CNumber[], int[], int[], int[])","u":"copyRanges(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.complex_numbers.CNumber[],int[],int[],int[])"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixManipulations","l":"copyRanges(CooMatrix, double[], int[], int[], int[])","u":"copyRanges(org.flag4j.arrays.sparse.CooMatrix,double[],int[],int[],int[])"},{"p":"org.flag4j.linalg.decompositions.hess","c":"SymmHess","l":"copyUpperTri(Matrix)","u":"copyUpperTri(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"copyValuesNotInSlice(CooCMatrix, List, List, List, int[], int[])","u":"copyValuesNotInSlice(org.flag4j.arrays.sparse.CooCMatrix,java.util.List,java.util.List,java.util.List,int[],int[])"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"copyValuesNotInSlice(CooMatrix, List, List, List, int[], int[])","u":"copyValuesNotInSlice(org.flag4j.arrays.sparse.CooMatrix,java.util.List,java.util.List,java.util.List,int[],int[])"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"cos(CNumber)","u":"cos(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"cos(double)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"cosh(CNumber)","u":"cosh(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"cosh(double)"},{"p":"org.flag4j.linalg.decompositions","c":"DecompositionFactory","l":"createComplexChol()"},{"p":"org.flag4j.linalg.decompositions","c":"DecompositionFactory","l":"createComplexHess()"},{"p":"org.flag4j.linalg.decompositions","c":"DecompositionFactory","l":"createComplexLU()"},{"p":"org.flag4j.linalg.decompositions","c":"DecompositionFactory","l":"createComplexQR()"},{"p":"org.flag4j.linalg.decompositions","c":"DecompositionFactory","l":"createComplexSchur()"},{"p":"org.flag4j.linalg.decompositions","c":"DecompositionFactory","l":"createComplexSVD()"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseUtils","l":"createMap(int, int[])","u":"createMap(int,int[])"},{"p":"org.flag4j.core","c":"Shape","l":"createNewStrides()"},{"p":"org.flag4j.linalg.decompositions","c":"DecompositionFactory","l":"createRealChol()"},{"p":"org.flag4j.linalg.decompositions","c":"DecompositionFactory","l":"createRealHess()"},{"p":"org.flag4j.linalg.decompositions","c":"DecompositionFactory","l":"createRealLU()"},{"p":"org.flag4j.linalg.decompositions","c":"DecompositionFactory","l":"createRealQR()"},{"p":"org.flag4j.linalg.decompositions","c":"DecompositionFactory","l":"createRealSchur()"},{"p":"org.flag4j.linalg.decompositions","c":"DecompositionFactory","l":"createRealSVD()"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"createUniqueMapping(int[])"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"cross(CVector)","u":"cross(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"cross(CVector)","u":"cross(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"cross(Vector)","u":"cross(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"cross(Vector)","u":"cross(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"CsrCMatrix(CooCMatrix)","u":"%3Cinit%3E(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"CsrCMatrix(CooMatrix)","u":"%3Cinit%3E(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"CsrCMatrix(CsrCMatrix)","u":"%3Cinit%3E(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"CsrCMatrix(int, int)","u":"%3Cinit%3E(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"CsrCMatrix(int, int, CNumber[], int[], int[])","u":"%3Cinit%3E(int,int,org.flag4j.complex_numbers.CNumber[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"CsrCMatrix(Shape)","u":"%3Cinit%3E(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"CsrCMatrix(Shape, CNumber[], int[], int[])","u":"%3Cinit%3E(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"CsrCMatrix(Shape, double[], int[], int[])","u":"%3Cinit%3E(org.flag4j.core.Shape,double[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"SparseUtils","l":"CSREquals(CsrCMatrix, CsrCMatrix)","u":"CSREquals(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"SparseUtils","l":"CSREquals(CsrMatrix, CsrMatrix)","u":"CSREquals(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"CsrMatrix(CooMatrix)","u":"%3Cinit%3E(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"CsrMatrix(CsrMatrix)","u":"%3Cinit%3E(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"CsrMatrix(int, int)","u":"%3Cinit%3E(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"CsrMatrix(int, int, double[], int[], int[])","u":"%3Cinit%3E(int,int,double[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"CsrMatrix(Shape)","u":"%3Cinit%3E(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"CsrMatrix(Shape, double[], int[], int[])","u":"%3Cinit%3E(org.flag4j.core.Shape,double[],int[],int[])"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"CTensor(CTensor)","u":"%3Cinit%3E(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"CTensor(Shape)","u":"%3Cinit%3E(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"CTensor(Shape, CNumber)","u":"%3Cinit%3E(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"CTensor(Shape, CNumber[])","u":"%3Cinit%3E(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"CTensor(Shape, double)","u":"%3Cinit%3E(org.flag4j.core.Shape,double)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"CTensor(Shape, double[])","u":"%3Cinit%3E(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"CTensor(Shape, int[])","u":"%3Cinit%3E(org.flag4j.core.Shape,int[])"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"CTensor(Tensor)","u":"%3Cinit%3E(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"currentFactor"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"currentFactor"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"ComplexUnitaryDecomposition","l":"currentFactor"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"RealUnitaryDecomposition","l":"currentFactor"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"CVector(CNumber...)","u":"%3Cinit%3E(org.flag4j.complex_numbers.CNumber...)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"CVector(CVector)","u":"%3Cinit%3E(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"CVector(double...)","u":"%3Cinit%3E(double...)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"CVector(int)","u":"%3Cinit%3E(int)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"CVector(int, CNumber)","u":"%3Cinit%3E(int,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"CVector(int, double)","u":"%3Cinit%3E(int,double)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"CVector(int...)","u":"%3Cinit%3E(int...)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"CVector(Vector)","u":"%3Cinit%3E(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.concurrency","c":"ThreadManager","l":"daemonFactory"},{"p":"org.flag4j.linalg.decompositions.chol","c":"ComplexCholesky","l":"decompose(CMatrix)","u":"decompose(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.decompositions.hess","c":"ComplexHess","l":"decompose(CMatrix)","u":"decompose(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.decompositions.qr","c":"ComplexQR","l":"decompose(CMatrix)","u":"decompose(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"decompose(CMatrix)","u":"decompose(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.decompositions.chol","c":"RealCholesky","l":"decompose(Matrix)","u":"decompose(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.decompositions.hess","c":"RealHess","l":"decompose(Matrix)","u":"decompose(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.decompositions.hess","c":"SymmHess","l":"decompose(Matrix)","u":"decompose(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.decompositions.qr","c":"RealQR","l":"decompose(Matrix)","u":"decompose(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"decompose(Matrix)","u":"decompose(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.decompositions","c":"Decomposition","l":"decompose(T)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"decompose(T)"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"decompose(T)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactSolver","l":"decompose(T)"},{"p":"org.flag4j.linalg.solvers.lstsq","c":"LstsqSolver","l":"decompose(T)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"decomposeBase(T)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"decomposeBase(T)"},{"p":"org.flag4j.linalg.decompositions","c":"DecompositionFactory","l":"DecompositionFactory()","u":"%3Cinit%3E()"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"deepCopy(int[][], int[][])","u":"deepCopy(int[][],int[][])"},{"p":"org.flag4j.concurrency","c":"Configurations","l":"DEFAULT_BLOCK_SIZE"},{"p":"org.flag4j.io","c":"PrintOptions","l":"DEFAULT_CENTER"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"DEFAULT_EXCEPTIONAL_ITERS"},{"p":"org.flag4j.io","c":"PrintOptions","l":"DEFAULT_MAX_COLS"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"DEFAULT_MAX_ITERS_FACTOR"},{"p":"org.flag4j.io","c":"PrintOptions","l":"DEFAULT_MAX_ROWS"},{"p":"org.flag4j.concurrency","c":"Configurations","l":"DEFAULT_MIN_RECURSIVE_SIZE"},{"p":"org.flag4j.concurrency","c":"Configurations","l":"DEFAULT_NUM_THREADS"},{"p":"org.flag4j.io","c":"PrintOptions","l":"DEFAULT_PADDING"},{"p":"org.flag4j.linalg.decompositions.chol","c":"Cholesky","l":"DEFAULT_POS_DEF_TOLERANCE"},{"p":"org.flag4j.io","c":"PrintOptions","l":"DEFAULT_PRECISION"},{"p":"org.flag4j.core","c":"TensorBase","l":"DEFAULT_ROUND_TO_ZERO_THRESHOLD"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"DEFAULT_ZERO_PIVOT_TOLERANCE"},{"p":"org.flag4j.core.dense_base","c":"DenseTensorBase","l":"DenseTensorBase(Shape, D)","u":"%3Cinit%3E(org.flag4j.core.Shape,D)"},{"p":"org.flag4j.core.sparse_base","c":"SparseTensorBase","l":"density()"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexBackSolver","l":"det"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexForwardSolver","l":"det"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealBackSolver","l":"det"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealForwardSolver","l":"det"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"det()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"det()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"det()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"det()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"det()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"det()"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"det()"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"det()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseDeterminant","l":"det(CMatrix)","u":"det(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseDeterminant","l":"det(Matrix)","u":"det(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseDeterminant","l":"det1(CMatrix)","u":"det1(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseDeterminant","l":"det1(Matrix)","u":"det1(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseDeterminant","l":"det2(CMatrix)","u":"det2(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseDeterminant","l":"det2(Matrix)","u":"det2(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseDeterminant","l":"det3(CMatrix)","u":"det3(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseDeterminant","l":"det3(Matrix)","u":"det3(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.complex_numbers","c":"CNumberToken","l":"details"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseDeterminant","l":"detLU(CMatrix)","u":"detLU(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseDeterminant","l":"detLU(Matrix)","u":"detLU(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseDeterminant","l":"detTri(CMatrix)","u":"detTri(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseDeterminant","l":"detTri(Matrix)","u":"detTri(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"SymmTriDiagonal","l":"diag"},{"p":"org.flag4j.complex_numbers","c":"CNumberLexer","l":"digit(int)"},{"p":"org.flag4j.core","c":"Shape","l":"dims"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"DirectSum()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CMatrix, CMatrix)","u":"directSum(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CMatrix, CooCMatrix)","u":"directSum(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CMatrix, CooMatrix)","u":"directSum(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CMatrix, Matrix)","u":"directSum(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CooCMatrix, CMatrix)","u":"directSum(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CooCMatrix, CooCMatrix)","u":"directSum(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CooCMatrix, CooMatrix)","u":"directSum(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CooCMatrix, Matrix)","u":"directSum(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CooMatrix, CMatrix)","u":"directSum(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CooMatrix, CooCMatrix)","u":"directSum(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CooMatrix, CooMatrix)","u":"directSum(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CooMatrix, Matrix)","u":"directSum(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CsrCMatrix, CMatrix)","u":"directSum(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CsrCMatrix, CooCMatrix)","u":"directSum(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CsrCMatrix, CooMatrix)","u":"directSum(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CsrCMatrix, Matrix)","u":"directSum(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CsrMatrix, CMatrix)","u":"directSum(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CsrMatrix, CooCMatrix)","u":"directSum(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CsrMatrix, CooMatrix)","u":"directSum(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CsrMatrix, Matrix)","u":"directSum(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(Matrix, CMatrix)","u":"directSum(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(Matrix, CooCMatrix)","u":"directSum(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(Matrix, CooMatrix)","u":"directSum(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(Matrix, Matrix)","u":"directSum(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"dispatch(CMatrix)","u":"dispatch(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"dispatch(CMatrix, CMatrix)","u":"dispatch(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"dispatch(CMatrix, CVector)","u":"dispatch(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"dispatch(CMatrix, Matrix)","u":"dispatch(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"dispatch(CMatrix, Vector)","u":"dispatch(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseElemDiv","l":"dispatch(CNumber[], Shape, CNumber[], Shape)","u":"dispatch(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseElemMult","l":"dispatch(CNumber[], Shape, CNumber[], Shape)","u":"dispatch(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"dispatch(CNumber[], Shape, CNumber[], Shape)","u":"dispatch(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseElemDiv","l":"dispatch(CNumber[], Shape, double[], Shape)","u":"dispatch(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseElemMult","l":"dispatch(CNumber[], Shape, double[], Shape)","u":"dispatch(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseElemDiv","l":"dispatch(double[], Shape, CNumber[], Shape)","u":"dispatch(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseElemDiv","l":"dispatch(double[], Shape, double[], Shape)","u":"dispatch(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseElemMult","l":"dispatch(double[], Shape, double[], Shape)","u":"dispatch(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher","l":"dispatch(double[], Shape, double[], Shape)","u":"dispatch(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"dispatch(Matrix)","u":"dispatch(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"dispatch(Matrix, CMatrix)","u":"dispatch(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"dispatch(Matrix, CVector)","u":"dispatch(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher","l":"dispatch(Matrix, Matrix)","u":"dispatch(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"dispatch(Matrix, Vector)","u":"dispatch(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"dispatchHermitian(CMatrix)","u":"dispatchHermitian(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseVectorOperations","l":"dispatchOuter(Vector, Vector)","u":"dispatchOuter(org.flag4j.arrays.dense.Vector,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"dispatchTensor(CTensor, int, int)","u":"dispatchTensor(org.flag4j.arrays.dense.CTensor,int,int)"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"dispatchTensor(double[], Shape, int[])","u":"dispatchTensor(double[],org.flag4j.core.Shape,int[])"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"dispatchTensor(Tensor, int, int)","u":"dispatchTensor(org.flag4j.arrays.dense.Tensor,int,int)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"dispatchTranspose(CMatrix, CMatrix)","u":"dispatchTranspose(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"dispatchTranspose(CMatrix, Matrix)","u":"dispatchTranspose(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"dispatchTranspose(Matrix, CMatrix)","u":"dispatchTranspose(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher","l":"dispatchTranspose(Matrix, Matrix)","u":"dispatchTranspose(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"div(CNumber)","u":"div(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"div(CNumber)","u":"div(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"div(CNumber)","u":"div(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"div(CNumber)","u":"div(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"div(CNumber)","u":"div(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"div(CNumber)","u":"div(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"div(CNumber)","u":"div(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"div(CNumber)","u":"div(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"div(CNumber)","u":"div(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"div(CNumber)","u":"div(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"div(double)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"div(double)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"div(double)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"div(double)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"div(double)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"div(double)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"div(double)"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"div(double)"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"div(double)"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"div(double)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"divEq(CNumber)","u":"divEq(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"divEq(double)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTensorDot","l":"dot(CTensor, CTensor)","u":"dot(org.flag4j.arrays.dense.CTensor,org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"doubleImaginaryValue()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"doubleValue()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"E"},{"p":"org.flag4j.linalg","c":"Eigen","l":"Eigen()","u":"%3Cinit%3E()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"elemDiv(CMatrix)","u":"elemDiv(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"elemDiv(CMatrix)","u":"elemDiv(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"elemDiv(CMatrix)","u":"elemDiv(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"elemDiv(CMatrix)","u":"elemDiv(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"elemDiv(CMatrix)","u":"elemDiv(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"elemDiv(CMatrix)","u":"elemDiv(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseElemDiv","l":"elemDiv(CNumber[], Shape, CNumber[], Shape)","u":"elemDiv(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseElemDiv","l":"elemDiv(CNumber[], Shape, double[], Shape)","u":"elemDiv(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixOperations","l":"elemDiv(CooCMatrix, CMatrix)","u":"elemDiv(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"elemDiv(CooCMatrix, Matrix)","u":"elemDiv(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseVectorOperations","l":"elemDiv(CooCVector, CVector)","u":"elemDiv(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"elemDiv(CooCVector, Vector)","u":"elemDiv(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"elemDiv(CooMatrix, CMatrix)","u":"elemDiv(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixOperations","l":"elemDiv(CooMatrix, Matrix)","u":"elemDiv(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"elemDiv(CooVector, CVector)","u":"elemDiv(org.flag4j.arrays.sparse.CooVector,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseVectorOperations","l":"elemDiv(CooVector, Vector)","u":"elemDiv(org.flag4j.arrays.sparse.CooVector,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"elemDiv(CTensor)","u":"elemDiv(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"elemDiv(CTensor)","u":"elemDiv(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"elemDiv(CTensor)","u":"elemDiv(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"elemDiv(CVector)","u":"elemDiv(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"elemDiv(CVector)","u":"elemDiv(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"elemDiv(CVector)","u":"elemDiv(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"elemDiv(CVector)","u":"elemDiv(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseElemDiv","l":"elemDiv(double[], Shape, CNumber[], Shape)","u":"elemDiv(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseElemDiv","l":"elemDiv(double[], Shape, double[], Shape)","u":"elemDiv(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"elemDiv(Matrix)","u":"elemDiv(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"elemDiv(Matrix)","u":"elemDiv(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"elemDiv(Matrix)","u":"elemDiv(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"elemDiv(Matrix)","u":"elemDiv(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"elemDiv(Matrix)","u":"elemDiv(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"elemDiv(Matrix)","u":"elemDiv(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"elemDiv(T)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"elemDiv(T)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"elemDiv(Tensor)","u":"elemDiv(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"elemDiv(Tensor)","u":"elemDiv(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"elemDiv(Tensor)","u":"elemDiv(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"elemDiv(U)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"elemDiv(Vector)","u":"elemDiv(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"elemDiv(Vector)","u":"elemDiv(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"elemDiv(Vector)","u":"elemDiv(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"elemDiv(Vector)","u":"elemDiv(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseElemDiv","l":"elemDivConcurrent(CNumber[], Shape, CNumber[], Shape)","u":"elemDivConcurrent(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseElemDiv","l":"elemDivConcurrent(CNumber[], Shape, double[], Shape)","u":"elemDivConcurrent(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseElemDiv","l":"elemDivConcurrent(double[], Shape, CNumber[], Shape)","u":"elemDivConcurrent(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseElemDiv","l":"elemDivConcurrent(double[], Shape, double[], Shape)","u":"elemDivConcurrent(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"elemMult(CMatrix)","u":"elemMult(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"elemMult(CMatrix)","u":"elemMult(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"elemMult(CMatrix)","u":"elemMult(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"elemMult(CMatrix)","u":"elemMult(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"elemMult(CMatrix)","u":"elemMult(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"elemMult(CMatrix)","u":"elemMult(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixOperations","l":"elemMult(CMatrix, CooCMatrix)","u":"elemMult(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"elemMult(CMatrix, CooMatrix)","u":"elemMult(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseElemMult","l":"elemMult(CNumber[], Shape, CNumber[], Shape)","u":"elemMult(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseElemMult","l":"elemMult(CNumber[], Shape, double[], Shape)","u":"elemMult(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"elemMult(CooCMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"elemMult(CooCMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"elemMult(CooCMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"elemMult(CooCMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"elemMult(CooCMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"elemMult(CooCMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"elemMult(CooCMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixOperations","l":"elemMult(CooCMatrix, CooCMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixOperations","l":"elemMult(CooCMatrix, CooMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"elemMult(CooCTensor)","u":"elemMult(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"elemMult(CooCTensor)","u":"elemMult(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"elemMult(CooCTensor)","u":"elemMult(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"elemMult(CooCTensor)","u":"elemMult(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"elemMult(CooCVector)","u":"elemMult(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"elemMult(CooCVector)","u":"elemMult(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"elemMult(CooCVector)","u":"elemMult(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"elemMult(CooCVector)","u":"elemMult(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"elemMult(CooCVector)","u":"elemMult(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseVectorOperations","l":"elemMult(CooCVector, CooCVector)","u":"elemMult(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseVectorOperations","l":"elemMult(CooCVector, CooVector)","u":"elemMult(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"elemMult(CooMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"elemMult(CooMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"elemMult(CooMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"elemMult(CooMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"elemMult(CooMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"elemMult(CooMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"elemMult(CooMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixOperations","l":"elemMult(CooMatrix, CooMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"elemMult(CooTensor)","u":"elemMult(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"elemMult(CooTensor)","u":"elemMult(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"elemMult(CooTensor)","u":"elemMult(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"elemMult(CooTensor)","u":"elemMult(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"elemMult(CooVector)","u":"elemMult(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"elemMult(CooVector)","u":"elemMult(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"elemMult(CooVector)","u":"elemMult(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"elemMult(CooVector)","u":"elemMult(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"elemMult(CooVector)","u":"elemMult(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseVectorOperations","l":"elemMult(CooVector, CooVector)","u":"elemMult(org.flag4j.arrays.sparse.CooVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"elemMult(CsrCMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"elemMult(CsrCMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.operations.sparse.csr.real_complex","c":"RealComplexCsrOperations","l":"elemMult(CsrCMatrix, CsrMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"elemMult(CsrMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"elemMult(CsrMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"elemMult(CTensor)","u":"elemMult(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"elemMult(CTensor)","u":"elemMult(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseOperations","l":"elemMult(CTensor, CooCTensor)","u":"elemMult(org.flag4j.arrays.dense.CTensor,org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseOperations","l":"elemMult(CTensor, CooTensor)","u":"elemMult(org.flag4j.arrays.dense.CTensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"elemMult(CVector)","u":"elemMult(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"elemMult(CVector)","u":"elemMult(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"elemMult(CVector)","u":"elemMult(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"elemMult(CVector)","u":"elemMult(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseVectorOperations","l":"elemMult(CVector, CooCVector)","u":"elemMult(org.flag4j.arrays.dense.CVector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"elemMult(CVector, CooVector)","u":"elemMult(org.flag4j.arrays.dense.CVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseElemMult","l":"elemMult(double[], Shape, double[], Shape)","u":"elemMult(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"elemMult(Matrix)","u":"elemMult(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"elemMult(Matrix)","u":"elemMult(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"elemMult(Matrix)","u":"elemMult(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"elemMult(Matrix)","u":"elemMult(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"elemMult(Matrix)","u":"elemMult(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"elemMult(Matrix)","u":"elemMult(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"elemMult(Matrix, CooCMatrix)","u":"elemMult(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixOperations","l":"elemMult(Matrix, CooMatrix)","u":"elemMult(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"elemMult(T)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"elemMult(T)"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"elemMult(T)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"elemMult(Tensor)","u":"elemMult(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"elemMult(Tensor)","u":"elemMult(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseOperations","l":"elemMult(Tensor, CooCTensor)","u":"elemMult(org.flag4j.arrays.dense.Tensor,org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseTensorOperations","l":"elemMult(Tensor, CooTensor)","u":"elemMult(org.flag4j.arrays.dense.Tensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"elemMult(Vector)","u":"elemMult(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"elemMult(Vector)","u":"elemMult(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"elemMult(Vector)","u":"elemMult(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"elemMult(Vector)","u":"elemMult(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"elemMult(Vector, CooCVector)","u":"elemMult(org.flag4j.arrays.dense.Vector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseVectorOperations","l":"elemMult(Vector, CooVector)","u":"elemMult(org.flag4j.arrays.dense.Vector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseElemMult","l":"elemMultConcurrent(CNumber[], Shape, CNumber[], Shape)","u":"elemMultConcurrent(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseElemMult","l":"elemMultConcurrent(CNumber[], Shape, double[], Shape)","u":"elemMultConcurrent(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseElemMult","l":"elemMultConcurrent(double[], Shape, double[], Shape)","u":"elemMultConcurrent(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.linalg.decompositions.chol","c":"Cholesky","l":"enforceHermitian"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ForwardSolver","l":"enforceLower"},{"p":"org.flag4j.linalg.decompositions.hess","c":"SymmHess","l":"enforceSymmetric"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"BackSolver","l":"enforceTriU"},{"p":"org.flag4j.operations.common","c":"TensorEquals","l":"ensureTensor(TensorBase)","u":"ensureTensor(org.flag4j.core.TensorBase)"},{"p":"org.flag4j.core","c":"TensorBase","l":"entries"},{"p":"org.flag4j.core","c":"Shape","l":"entriesIndex(int...)"},{"p":"org.flag4j.util","c":"Flag4jConstants","l":"EPS_F32"},{"p":"org.flag4j.util","c":"Flag4jConstants","l":"EPS_F64"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"EQ_SHAPE_MISMATCH_ERR"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"equals(double)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"equals(double[], CNumber[])","u":"equals(double[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.arrays.sparse","c":"SymmTriDiagonal","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.core","c":"Shape","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.core","c":"TensorComparisonsMixin","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"equalShapeErrMsg(Shape, Shape)","u":"equalShapeErrMsg(org.flag4j.core.Shape,org.flag4j.core.Shape)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"equalsNumber(Number)","u":"equalsNumber(java.lang.Number)"},{"p":"org.flag4j.complex_numbers","c":"CNumberLexer","l":"ERR_MSG"},{"p":"org.flag4j.linalg","c":"RowEchelon","l":"erref(CMatrix)","u":"erref(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"RowEchelon","l":"erref(Matrix)","u":"erref(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.complex_numbers","c":"CNumberLexer","l":"error(String)","u":"error(java.lang.String)"},{"p":"org.flag4j.complex_numbers","c":"CNumberToken","l":"errorCheck(String)","u":"errorCheck(java.lang.String)"},{"p":"org.flag4j.complex_numbers","c":"CNumberToken","l":"errorCheck(String, String)","u":"errorCheck(java.lang.String,java.lang.String)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"ErrorMessages()","u":"%3Cinit%3E()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"eulers()"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactSolver","l":"ExactSolver(LU, LinearSolver, LinearSolver)","u":"%3Cinit%3E(org.flag4j.linalg.decompositions.lu.LU,org.flag4j.linalg.solvers.LinearSolver,org.flag4j.linalg.solvers.LinearSolver)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactTensorSolver","l":"ExactTensorSolver(LinearSolver)","u":"%3Cinit%3E(org.flag4j.linalg.solvers.LinearSolver)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"exceptionalThreshold"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"exp(CNumber)","u":"exp(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"exp(double)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"extend(int, int)","u":"extend(int,int)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"extend(int, int)","u":"extend(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"extend(int, int)","u":"extend(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"extend(int, int)","u":"extend(int,int)"},{"p":"org.flag4j.core","c":"VectorManipulationsMixin","l":"extend(int, int)","u":"extend(int,int)"},{"p":"org.flag4j.linalg.decompositions.svd","c":"ComplexSVD","l":"extractNormalizedCols(CMatrix, int)","u":"extractNormalizedCols(org.flag4j.arrays.dense.CMatrix,int)"},{"p":"org.flag4j.linalg.decompositions.svd","c":"RealSVD","l":"extractNormalizedCols(Matrix, int)","u":"extractNormalizedCols(org.flag4j.arrays.dense.Matrix,int)"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"extractNormalizedCols(T, int)","u":"extractNormalizedCols(T,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"fib(CMatrix)","u":"fib(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"fib(CMatrix)","u":"fib(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"fib(CMatrix)","u":"fib(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"fib(CMatrix)","u":"fib(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"fib(CMatrix)","u":"fib(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"fib(CMatrix)","u":"fib(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"fib(CMatrix)","u":"fib(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"fib(CooCMatrix)","u":"fib(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"fib(CooCMatrix)","u":"fib(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"fib(CooCMatrix)","u":"fib(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"fib(CooCMatrix)","u":"fib(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"fib(CooCMatrix)","u":"fib(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"fib(CooCMatrix)","u":"fib(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"fib(CooCMatrix)","u":"fib(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"fib(CooMatrix)","u":"fib(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"fib(CooMatrix)","u":"fib(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"fib(CooMatrix)","u":"fib(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"fib(CooMatrix)","u":"fib(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"fib(CooMatrix)","u":"fib(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"fib(CooMatrix)","u":"fib(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"fib(CooMatrix)","u":"fib(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"fib(CsrCMatrix)","u":"fib(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"fib(CsrMatrix)","u":"fib(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"fib(Matrix)","u":"fib(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"fib(Matrix)","u":"fib(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"fib(Matrix)","u":"fib(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"fib(Matrix)","u":"fib(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"fib(Matrix)","u":"fib(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"fib(Matrix)","u":"fib(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"fib(Matrix)","u":"fib(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.io","c":"TensorInputStream","l":"fileIn"},{"p":"org.flag4j.io","c":"TensorOutputStream","l":"fileOut"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"fill(CNumber[], CNumber)","u":"fill(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"fill(CNumber[], double)","u":"fill(org.flag4j.complex_numbers.CNumber[],double)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"fill(CNumber[], double, int, int)","u":"fill(org.flag4j.complex_numbers.CNumber[],double,int,int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"fill(CNumber[], int, int, CNumber)","u":"fill(org.flag4j.complex_numbers.CNumber[],int,int,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"fill(CNumber[][], CNumber)","u":"fill(org.flag4j.complex_numbers.CNumber[][],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"fill(double[][], double)","u":"fill(double[][],double)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"filledArray(int, int)","u":"filledArray(int,int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"fillZeros(CNumber[])","u":"fillZeros(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"fillZeros(CNumber[], int, int)","u":"fillZeros(org.flag4j.complex_numbers.CNumber[],int,int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"fillZeros(CNumber[][])","u":"fillZeros(org.flag4j.complex_numbers.CNumber[][])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"fillZeros(double[], int, int)","u":"fillZeros(double[],int,int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"findFirstLast(int[], int)","u":"findFirstLast(int[],int)"},{"p":"org.flag4j.linalg.decompositions.hess","c":"SymmHess","l":"findMaxAndInit(int)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"ComplexUnitaryDecomposition","l":"findMaxAndInit(int)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"RealUnitaryDecomposition","l":"findMaxAndInit(int)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"findMaxAndInit(int)"},{"p":"org.flag4j.util","c":"Flag4jConstants","l":"Flag4jConstants()","u":"%3Cinit%3E()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"flatten()"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"flatten()"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"flatten()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"flatten()"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"flatten()"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"flatten()"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"flatten()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"flatten()"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"flatten()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"flatten()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"flatten()"},{"p":"org.flag4j.core","c":"TensorManipulationsMixin","l":"flatten()"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"flatten(CNumber[][])","u":"flatten(org.flag4j.complex_numbers.CNumber[][])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"flatten(double[][])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"flatten(int)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"flatten(int)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"flatten(int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"flatten(int)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"flatten(int)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"flatten(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"flatten(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"flatten(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"flatten(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"flatten(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"flatten(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"flatten(int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"flatten(int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"flatten(int)"},{"p":"org.flag4j.core","c":"TensorManipulationsMixin","l":"flatten(int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"flatten(int[][])"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"floatImaginaryValue()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"floatValue()"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactSolver","l":"forwardSolver"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ForwardSolver","l":"ForwardSolver(boolean, boolean)","u":"%3Cinit%3E(boolean,boolean)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"fromColSwaps(int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"fromDense(CMatrix)","u":"fromDense(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"fromDense(CTensor)","u":"fromDense(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"fromDense(CVector)","u":"fromDense(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"fromDense(Matrix)","u":"fromDense(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"fromDense(Tensor)","u":"fromDense(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"fromDense(Vector)","u":"fromDense(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"fromDoubleList(List)","u":"fromDoubleList(java.util.List)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"fromIntegerList(List)","u":"fromIntegerList(java.util.List)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"fromIntegerList(List, int[])","u":"fromIntegerList(java.util.List,int[])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"fromList(List, T[])","u":"fromList(java.util.List,T[])"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"fromPolar(double, double)","u":"fromPolar(double,double)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU.Pivoting","l":"FULL"},{"p":"org.flag4j.linalg.decompositions.lu","c":"ComplexLU","l":"fullPivot()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"fullPivot()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"RealLU","l":"fullPivot()"},{"p":"org.flag4j.operations.common","c":"TensorEquals","l":"generalEquals(CooCTensor, SparseTensorBase)","u":"generalEquals(org.flag4j.arrays.sparse.CooCTensor,org.flag4j.core.sparse_base.SparseTensorBase)"},{"p":"org.flag4j.operations.common","c":"TensorEquals","l":"generalEquals(CooTensor, SparseTensorBase)","u":"generalEquals(org.flag4j.arrays.sparse.CooTensor,org.flag4j.core.sparse_base.SparseTensorBase)"},{"p":"org.flag4j.operations.common","c":"TensorEquals","l":"generalEquals(CTensor, DenseTensorBase)","u":"generalEquals(org.flag4j.arrays.dense.CTensor,org.flag4j.core.dense_base.DenseTensorBase)"},{"p":"org.flag4j.operations.common","c":"TensorEquals","l":"generalEquals(CTensor, SparseTensorBase)","u":"generalEquals(org.flag4j.arrays.dense.CTensor,org.flag4j.core.sparse_base.SparseTensorBase)"},{"p":"org.flag4j.operations.common","c":"TensorEquals","l":"generalEquals(DenseTensorBase, SparseTensorBase)","u":"generalEquals(org.flag4j.core.dense_base.DenseTensorBase,org.flag4j.core.sparse_base.SparseTensorBase)"},{"p":"org.flag4j.operations.common","c":"TensorEquals","l":"generalEquals(Tensor, DenseTensorBase)","u":"generalEquals(org.flag4j.arrays.dense.Tensor,org.flag4j.core.dense_base.DenseTensorBase)"},{"p":"org.flag4j.operations.common","c":"TensorEquals","l":"generalEquals(Tensor, SparseTensorBase)","u":"generalEquals(org.flag4j.arrays.dense.Tensor,org.flag4j.core.sparse_base.SparseTensorBase)"},{"p":"org.flag4j.operations.common","c":"TensorEquals","l":"generalEquals(TensorBase, TensorBase)","u":"generalEquals(org.flag4j.core.TensorBase,org.flag4j.core.TensorBase)"},{"p":"org.flag4j.rng","c":"RandomArray","l":"genNormalComplexArray(int)"},{"p":"org.flag4j.rng","c":"RandomArray","l":"genNormalComplexArray(int, double, double)","u":"genNormalComplexArray(int,double,double)"},{"p":"org.flag4j.rng","c":"RandomArray","l":"genNormalRealArray(int)"},{"p":"org.flag4j.rng","c":"RandomArray","l":"genNormalRealArray(int, double, double)","u":"genNormalRealArray(int,double,double)"},{"p":"org.flag4j.rng","c":"RandomArray","l":"genRandomRows(int, int, int, int)","u":"genRandomRows(int,int,int,int)"},{"p":"org.flag4j.rng","c":"RandomArray","l":"genUniformComplexArray(int)"},{"p":"org.flag4j.rng","c":"RandomArray","l":"genUniformComplexArray(int, double, double)","u":"genUniformComplexArray(int,double,double)"},{"p":"org.flag4j.rng","c":"RandomArray","l":"genUniformRealArray(int)"},{"p":"org.flag4j.rng","c":"RandomArray","l":"genUniformRealArray(int, double, double)","u":"genUniformRealArray(int,double,double)"},{"p":"org.flag4j.rng","c":"RandomArray","l":"genUniformRealIntArray(int)"},{"p":"org.flag4j.rng","c":"RandomArray","l":"genUniformRealIntArray(int, int, int)","u":"genUniformRealIntArray(int,int,int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"geRandomTrilMatrix(int, int, int)","u":"geRandomTrilMatrix(int,int,int)"},{"p":"org.flag4j.core","c":"Shape","l":"get(int)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU.Pivoting","l":"get(int)"},{"p":"org.flag4j.arrays.sparse","c":"SymmTriDiagonal","l":"get(int, int)","u":"get(int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"get(int...)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"get(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"get(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"get(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"get(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"get(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"get(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"get(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"get(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"get(int...)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"get(int...)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"get(int...)"},{"p":"org.flag4j.core","c":"MatrixMixin","l":"get(int...)"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"get(int...)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"get2x2EigenValues(CMatrix)","u":"get2x2EigenValues(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"get2x2EigenValues(CNumber, CNumber, CNumber, CNumber)","u":"get2x2EigenValues(org.flag4j.complex_numbers.CNumber,org.flag4j.complex_numbers.CNumber,org.flag4j.complex_numbers.CNumber,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"get2x2EigenValues(double, double, double, double)","u":"get2x2EigenValues(double,double,double,double)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"get2x2EigenValues(Matrix)","u":"get2x2EigenValues(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.transformations","c":"Givens","l":"get2x2Rotator(CNumber, CNumber)","u":"get2x2Rotator(org.flag4j.complex_numbers.CNumber,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.linalg.transformations","c":"Givens","l":"get2x2Rotator(CVector)","u":"get2x2Rotator(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.linalg.transformations","c":"Givens","l":"get2x2Rotator(double, double)","u":"get2x2Rotator(double,double)"},{"p":"org.flag4j.linalg.transformations","c":"Givens","l":"get2x2Rotator(Vector)","u":"get2x2Rotator(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getArrayLengthsMismatchErr(int...)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getAxisErr(int)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getAxisErr(int, int...)","u":"getAxisErr(int,int...)"},{"p":"org.flag4j.concurrency","c":"Configurations","l":"getBlockSize()"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"getCol(CooCMatrix, int)","u":"getCol(org.flag4j.arrays.sparse.CooCMatrix,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"getCol(CooCMatrix, int, int, int)","u":"getCol(org.flag4j.arrays.sparse.CooCMatrix,int,int,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"getCol(CooMatrix, int)","u":"getCol(org.flag4j.arrays.sparse.CooMatrix,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"getCol(CooMatrix, int, int, int)","u":"getCol(org.flag4j.arrays.sparse.CooMatrix,int,int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"getCol(int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"getCol(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"getCol(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"getCol(int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"getCol(int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"getCol(int)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"getCol(int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"getCol(int, int, int)","u":"getCol(int,int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"getCol(int, int, int)","u":"getCol(int,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"getCol(int, int, int)","u":"getCol(int,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"getCol(int, int, int)","u":"getCol(int,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"getCol(int, int, int)","u":"getCol(int,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"getCol(int, int, int)","u":"getCol(int,int,int)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"getCol(int, int, int)","u":"getCol(int,int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"getColAsVector(int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"getColAsVector(int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"getColBelow(int, int)","u":"getColBelow(int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"getColBelow(int, int)","u":"getColBelow(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"getColBelow(int, int)","u":"getColBelow(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"getColBelow(int, int)","u":"getColBelow(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"getColBelow(int, int)","u":"getColBelow(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"getColBelow(int, int)","u":"getColBelow(int,int)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"getColBelow(int, int)","u":"getColBelow(int,int)"},{"p":"org.flag4j.linalg","c":"SubSpace","l":"getColSpace(CMatrix)","u":"getColSpace(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"SubSpace","l":"getColSpace(Matrix)","u":"getColSpace(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.complex_numbers","c":"CNumberLexer","l":"getContent()"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexBackSolver","l":"getDet()"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexForwardSolver","l":"getDet()"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealBackSolver","l":"getDet()"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealForwardSolver","l":"getDet()"},{"p":"org.flag4j.complex_numbers","c":"CNumberToken","l":"getDetails()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"getDiag()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"getDiag()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"getDiag()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"getDiag()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"getDiag()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"getDiag()"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"getDiag()"},{"p":"org.flag4j.core","c":"Shape","l":"getDims()"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenPairs(CMatrix)","u":"getEigenPairs(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenPairs(Matrix)","u":"getEigenPairs(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenValues(CMatrix)","u":"getEigenValues(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenValues(CMatrix, ComplexSchur)","u":"getEigenValues(org.flag4j.arrays.dense.CMatrix,org.flag4j.linalg.decompositions.schur.ComplexSchur)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenValues(CMatrix, long)","u":"getEigenValues(org.flag4j.arrays.dense.CMatrix,long)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenValues(CMatrix, long, int)","u":"getEigenValues(org.flag4j.arrays.dense.CMatrix,long,int)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenValues(Matrix)","u":"getEigenValues(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenValues(Matrix, long)","u":"getEigenValues(org.flag4j.arrays.dense.Matrix,long)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenValues(Matrix, long, int)","u":"getEigenValues(org.flag4j.arrays.dense.Matrix,long,int)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenValues(Matrix, RealSchur)","u":"getEigenValues(org.flag4j.arrays.dense.Matrix,org.flag4j.linalg.decompositions.schur.RealSchur)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenVectors(CMatrix)","u":"getEigenVectors(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenVectors(CMatrix, ComplexSchur)","u":"getEigenVectors(org.flag4j.arrays.dense.CMatrix,org.flag4j.linalg.decompositions.schur.ComplexSchur)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenVectors(CMatrix, long)","u":"getEigenVectors(org.flag4j.arrays.dense.CMatrix,long)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenVectors(CMatrix, long, int)","u":"getEigenVectors(org.flag4j.arrays.dense.CMatrix,long,int)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenVectors(Matrix)","u":"getEigenVectors(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenVectors(Matrix, long)","u":"getEigenVectors(org.flag4j.arrays.dense.Matrix,long)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenVectors(Matrix, long, int)","u":"getEigenVectors(org.flag4j.arrays.dense.Matrix,long,int)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenVectors(Matrix, RealSchur)","u":"getEigenVectors(org.flag4j.arrays.dense.Matrix,org.flag4j.linalg.decompositions.schur.RealSchur)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenVectorsTriu(CMatrix)","u":"getEigenVectorsTriu(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenVectorsTriu(Matrix)","u":"getEigenVectorsTriu(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"getEmpty(int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"getEmpty(int, int)","u":"getEmpty(int,int)"},{"p":"org.flag4j.core","c":"TensorBase","l":"getEntries()"},{"p":"org.flag4j.linalg.transformations","c":"Givens","l":"getGeneralRotator(int, int, int, double)","u":"getGeneralRotator(int,int,int,double)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getGreaterEqErr(double, double)","u":"getGreaterEqErr(double,double)"},{"p":"org.flag4j.linalg.decompositions.hess","c":"ComplexHess","l":"getH()"},{"p":"org.flag4j.linalg.decompositions.hess","c":"RealHess","l":"getH()"},{"p":"org.flag4j.linalg.decompositions.hess","c":"SymmHess","l":"getH()"},{"p":"org.flag4j.core","c":"Shape","l":"getIndices(int)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getIndicesRankErr(int, int)","u":"getIndicesRankErr(int,int)"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher","l":"getInstance()"},{"p":"org.flag4j.linalg","c":"TensorInvert","l":"getInvShape(Shape, int)","u":"getInvShape(org.flag4j.core.Shape,int)"},{"p":"org.flag4j.complex_numbers","c":"CNumberToken","l":"getKind()"},{"p":"org.flag4j.linalg.decompositions.chol","c":"Cholesky","l":"getL()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"ComplexLU","l":"getL()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"getL()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"RealLU","l":"getL()"},{"p":"org.flag4j.linalg","c":"SubSpace","l":"getLeftNullSpace(CMatrix)","u":"getLeftNullSpace(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"SubSpace","l":"getLeftNullSpace(Matrix)","u":"getLeftNullSpace(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getLessEqErr(double, double)","u":"getLessEqErr(double,double)"},{"p":"org.flag4j.linalg.decompositions.chol","c":"Cholesky","l":"getLH()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"getLU()"},{"p":"org.flag4j.io","c":"PrintOptions","l":"getMaxColumns()"},{"p":"org.flag4j.io","c":"PrintOptions","l":"getMaxRows()"},{"p":"org.flag4j.concurrency","c":"Configurations","l":"getMinRecursiveSize()"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getNamedGreaterEqErr(double, double, String)","u":"getNamedGreaterEqErr(double,double,java.lang.String)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getNamedLessEqErr(BigInteger, double, String)","u":"getNamedLessEqErr(java.math.BigInteger,double,java.lang.String)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getNamedLessEqErr(double, double, String)","u":"getNamedLessEqErr(double,double,java.lang.String)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getNegValueErr(double)"},{"p":"org.flag4j.core","c":"Shape","l":"getNextIndices(int[], int)","u":"getNextIndices(int[],int)"},{"p":"org.flag4j.complex_numbers","c":"CNumberLexer","l":"getNextSymbol()"},{"p":"org.flag4j.complex_numbers","c":"CNumberLexer","l":"getNextToken()"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getNonPosErr(double)"},{"p":"org.flag4j.linalg","c":"SubSpace","l":"getNullSpace(CMatrix)","u":"getNullSpace(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"SubSpace","l":"getNullSpace(Matrix)","u":"getNullSpace(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"getNumColSwaps()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"getNumRowSwaps()"},{"p":"org.flag4j.concurrency","c":"Configurations","l":"getNumThreads()"},{"p":"org.flag4j.linalg.transformations","c":"Projection","l":"getOrthogonal(double, double, double, double)","u":"getOrthogonal(double,double,double,double)"},{"p":"org.flag4j.linalg.transformations","c":"Projection","l":"getOrthogonal(double, double, double, double, double, double)","u":"getOrthogonal(double,double,double,double,double,double)"},{"p":"org.flag4j.linalg.transformations","c":"Projection","l":"getOrthogonal2D(double, double)","u":"getOrthogonal2D(double,double)"},{"p":"org.flag4j.linalg.transformations","c":"Projection","l":"getOrthogonal2D(double, double, double, double)","u":"getOrthogonal2D(double,double,double,double)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactTensorSolver","l":"getOutputShape(T, T, int)","u":"getOutputShape(T,T,int)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"getP()"},{"p":"org.flag4j.io","c":"PrintOptions","l":"getPadding()"},{"p":"org.flag4j.concurrency","c":"ThreadManager","l":"getParallelismLevel()"},{"p":"org.flag4j.linalg.transformations","c":"Projection","l":"getPerspective(double, double, double, double)","u":"getPerspective(double,double,double,double)"},{"p":"org.flag4j.linalg.transformations","c":"Projection","l":"getPerspective(double, double, double, double, double)","u":"getPerspective(double,double,double,double,double)"},{"p":"org.flag4j.io","c":"PrintOptions","l":"getPrecision()"},{"p":"org.flag4j.linalg","c":"TensorInvert","l":"getProduct(int[], int)","u":"getProduct(int[],int)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"getQ()"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"ComplexUnitaryDecomposition","l":"getQ()"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"RealUnitaryDecomposition","l":"getQ()"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"getQ()"},{"p":"org.flag4j.linalg.decompositions.qr","c":"ComplexQR","l":"getR()"},{"p":"org.flag4j.linalg.decompositions.qr","c":"RealQR","l":"getR()"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getRangeErr(double, double, double, String)","u":"getRangeErr(double,double,double,java.lang.String)"},{"p":"org.flag4j.core","c":"Shape","l":"getRank()"},{"p":"org.flag4j.core","c":"TensorBase","l":"getRank()"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"getRank()"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"getRatio(Shape)","u":"getRatio(org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher","l":"getRatio(Shape)","u":"getRatio(org.flag4j.core.Shape)"},{"p":"org.flag4j.linalg.transformations","c":"Householder","l":"getReflector(CVector)","u":"getReflector(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.linalg.transformations","c":"Householder","l":"getReflector(Vector)","u":"getReflector(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.linalg.transformations","c":"Givens","l":"getRotator(CVector, int)","u":"getRotator(org.flag4j.arrays.dense.CVector,int)"},{"p":"org.flag4j.linalg.transformations","c":"Givens","l":"getRotator(double[], int)","u":"getRotator(double[],int)"},{"p":"org.flag4j.linalg.transformations","c":"Givens","l":"getRotator(Vector, int)","u":"getRotator(org.flag4j.arrays.dense.Vector,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"getRow(CooCMatrix, int)","u":"getRow(org.flag4j.arrays.sparse.CooCMatrix,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"getRow(CooCMatrix, int, int, int)","u":"getRow(org.flag4j.arrays.sparse.CooCMatrix,int,int,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"getRow(CooMatrix, int)","u":"getRow(org.flag4j.arrays.sparse.CooMatrix,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"getRow(CooMatrix, int, int, int)","u":"getRow(org.flag4j.arrays.sparse.CooMatrix,int,int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"getRow(int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"getRow(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"getRow(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"getRow(int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"getRow(int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"getRow(int)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"getRow(int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"getRowAfter(int, int)","u":"getRowAfter(int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"getRowAfter(int, int)","u":"getRowAfter(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"getRowAfter(int, int)","u":"getRowAfter(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"getRowAfter(int, int)","u":"getRowAfter(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"getRowAfter(int, int)","u":"getRowAfter(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"getRowAfter(int, int)","u":"getRowAfter(int,int)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"getRowAfter(int, int)","u":"getRowAfter(int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"getRowAsVector(int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"getRowAsVector(int)"},{"p":"org.flag4j.linalg","c":"SubSpace","l":"getRowSpace(CMatrix)","u":"getRowSpace(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"SubSpace","l":"getRowSpace(Matrix)","u":"getRowSpace(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"getS()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"getSelf()"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"getSelf()"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"getSelf()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"getSelf()"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"getSelf()"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"getSelf()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"getSelf()"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"getSelf()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"getSelf()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"getSelf()"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"getSelf()"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"getSelf()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"getSelf()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"getSelf()"},{"p":"org.flag4j.core","c":"TensorBase","l":"getSelf()"},{"p":"org.flag4j.core","c":"TensorBase","l":"getShape()"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getShapeBroadcastErr(Shape, Shape)","u":"getShapeBroadcastErr(org.flag4j.core.Shape,org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"getSlice(CooCMatrix, int, int, int, int)","u":"getSlice(org.flag4j.arrays.sparse.CooCMatrix,int,int,int,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"getSlice(CooMatrix, int, int, int, int)","u":"getSlice(org.flag4j.arrays.sparse.CooMatrix,int,int,int,int)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrOperations","l":"getSlice(CsrCMatrix, int, int, int, int)","u":"getSlice(org.flag4j.arrays.sparse.CsrCMatrix,int,int,int,int)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrOperations","l":"getSlice(CsrMatrix, int, int, int, int)","u":"getSlice(org.flag4j.arrays.sparse.CsrMatrix,int,int,int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"getSlice(int, int, int, int)","u":"getSlice(int,int,int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"getSlice(int, int, int, int)","u":"getSlice(int,int,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"getSlice(int, int, int, int)","u":"getSlice(int,int,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"getSlice(int, int, int, int)","u":"getSlice(int,int,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"getSlice(int, int, int, int)","u":"getSlice(int,int,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"getSlice(int, int, int, int)","u":"getSlice(int,int,int,int)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"getSlice(int, int, int, int)","u":"getSlice(int,int,int,int)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getSquareShapeErr(Shape)","u":"getSquareShapeErr(org.flag4j.core.Shape)"},{"p":"org.flag4j.core","c":"Shape","l":"getStrides()"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"getT()"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getTotalEntriesErr()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"ComplexLU","l":"getU()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"getU()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"RealLU","l":"getU()"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"getU()"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"getU()"},{"p":"org.flag4j.linalg.decompositions.hess","c":"ComplexHess","l":"getUpper()"},{"p":"org.flag4j.linalg.decompositions.hess","c":"RealHess","l":"getUpper()"},{"p":"org.flag4j.linalg.decompositions.qr","c":"ComplexQR","l":"getUpper()"},{"p":"org.flag4j.linalg.decompositions.qr","c":"RealQR","l":"getUpper()"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"getUpper()"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"ComplexUnitaryDecomposition","l":"getUpper(CMatrix)","u":"getUpper(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"RealUnitaryDecomposition","l":"getUpper(Matrix)","u":"getUpper(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"getUpper(T)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getUtilityClassErrMsg()"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"getV()"},{"p":"org.flag4j.linalg.transformations","c":"Householder","l":"getVector(Vector)","u":"getVector(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.linalg.transformations","c":"Givens","l":"Givens()","u":"%3Cinit%3E()"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"GREATER_EQ_ERR"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"H()"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"H()"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"H()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"H()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"H()"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"H()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"H()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"H()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"H()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"H()"},{"p":"org.flag4j.core","c":"ComplexMatrixMixin","l":"H()"},{"p":"org.flag4j.core","c":"ComplexTensorMixin","l":"H()"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"H()"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"H(int, int)","u":"H(int,int)"},{"p":"org.flag4j.core","c":"ComplexTensorExclusiveMixin","l":"H(int, int)","u":"H(int,int)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"H(int...)"},{"p":"org.flag4j.core","c":"ComplexTensorExclusiveMixin","l":"H(int...)"},{"p":"org.flag4j.linalg","c":"SubSpace","l":"hasEqualSpan(CMatrix, CMatrix)","u":"hasEqualSpan(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"SubSpace","l":"hasEqualSpan(Matrix, Matrix)","u":"hasEqualSpan(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"hashCode()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"hashCode()"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"hashCode()"},{"p":"org.flag4j.arrays.sparse","c":"SymmTriDiagonal","l":"hashCode()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"hashCode()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"hashCode()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"hashCode()"},{"p":"org.flag4j.core","c":"Shape","l":"hashCode()"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"HERMATION_BLOCKED_THRESHOLD"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"hermTranspose()"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"hermTranspose()"},{"p":"org.flag4j.core","c":"ComplexTensorMixin","l":"hermTranspose()"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrOperations","l":"hermTranspose(CsrCMatrix)","u":"hermTranspose(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.core","c":"ComplexTensorExclusiveMixin","l":"hermTranspose(int, int)","u":"hermTranspose(int,int)"},{"p":"org.flag4j.core","c":"ComplexTensorExclusiveMixin","l":"hermTranspose(int...)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"hess"},{"p":"org.flag4j.linalg.transformations","c":"Householder","l":"Householder()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"householderVector"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"householderVector"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"I(int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"I(int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"I(int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"I(int, int)","u":"I(int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"I(int, int)","u":"I(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"I(int, int)","u":"I(int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"I(Shape)","u":"I(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"I(Shape)","u":"I(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"I(Shape)","u":"I(org.flag4j.core.Shape)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"im"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"im()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"IMAGINARY_UNIT"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"imagUnit()"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"indexOf(int[], int)","u":"indexOf(int[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"indices"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"indices"},{"p":"org.flag4j.core.sparse_base","c":"SparseTensorBase","l":"indices"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"INDICES_RANK_ERR"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"infNorm(CMatrix)","u":"infNorm(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"infNorm(ComplexDenseTensorBase)","u":"infNorm(org.flag4j.core.dense_base.ComplexDenseTensorBase)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"infNorm(CooCVector)","u":"infNorm(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"infNorm(CooVector)","u":"infNorm(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"infNorm(CTensor)","u":"infNorm(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"infNorm(CVector)","u":"infNorm(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"infNorm(Matrix)","u":"infNorm(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"infNorm(RealDenseTensorBase)","u":"infNorm(org.flag4j.core.dense_base.RealDenseTensorBase)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"infNorm(Vector)","u":"infNorm(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.util.exceptions","c":"SingularMatrixException","l":"INFO"},{"p":"org.flag4j.linalg.decompositions.lu","c":"ComplexLU","l":"initLU(CMatrix)","u":"initLU(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"RealLU","l":"initLU(Matrix)","u":"initLU(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"initLU(T)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ComplexExactTensorSolver","l":"initMatrix(CTensor, int)","u":"initMatrix(org.flag4j.arrays.dense.CTensor,int)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactTensorSolver","l":"initMatrix(T, int)","u":"initMatrix(T,int)"},{"p":"org.flag4j.linalg.solvers.exact","c":"RealExactTensorSolver","l":"initMatrix(Tensor, int)","u":"initMatrix(org.flag4j.arrays.dense.Tensor,int)"},{"p":"org.flag4j.linalg.decompositions.hess","c":"ComplexHess","l":"initQ()"},{"p":"org.flag4j.linalg.decompositions.hess","c":"RealHess","l":"initQ()"},{"p":"org.flag4j.linalg.decompositions.qr","c":"ComplexQR","l":"initQ()"},{"p":"org.flag4j.linalg.decompositions.qr","c":"RealQR","l":"initQ()"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"initQ()"},{"p":"org.flag4j.linalg.decompositions.svd","c":"ComplexSVD","l":"initUV(Shape, int)","u":"initUV(org.flag4j.core.Shape,int)"},{"p":"org.flag4j.linalg.decompositions.svd","c":"RealSVD","l":"initUV(Shape, int)","u":"initUV(org.flag4j.core.Shape,int)"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"initUV(Shape, int)","u":"initUV(org.flag4j.core.Shape,int)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ComplexExactTensorSolver","l":"initVector(CTensor)","u":"initVector(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactTensorSolver","l":"initVector(T)"},{"p":"org.flag4j.linalg.solvers.exact","c":"RealExactTensorSolver","l":"initVector(Tensor)","u":"initVector(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"ComplexUnitaryDecomposition","l":"initWorkArrays(int)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"RealUnitaryDecomposition","l":"initWorkArrays(int)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"initWorkArrays(int)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"inner(CNumber[], double[], int[], int)","u":"inner(org.flag4j.complex_numbers.CNumber[],double[],int[],int)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"inner(CooCVector)","u":"inner(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"inner(CooCVector)","u":"inner(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"inner(CooCVector)","u":"inner(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"inner(CooCVector)","u":"inner(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"inner(CooCVector)","u":"inner(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseVectorOperations","l":"inner(CooCVector, CooCVector)","u":"inner(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseVectorOperations","l":"inner(CooCVector, CooVector)","u":"inner(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"inner(CooVector)","u":"inner(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"inner(CooVector)","u":"inner(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"inner(CooVector)","u":"inner(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"inner(CooVector)","u":"inner(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"inner(CooVector)","u":"inner(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseVectorOperations","l":"inner(CooVector, CooCVector)","u":"inner(org.flag4j.arrays.sparse.CooVector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseVectorOperations","l":"inner(CooVector, CooVector)","u":"inner(org.flag4j.arrays.sparse.CooVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"inner(CVector)","u":"inner(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"inner(CVector)","u":"inner(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"inner(CVector)","u":"inner(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"inner(CVector)","u":"inner(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"inner(CVector)","u":"inner(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"inner(double[], CNumber[], int[], int)","u":"inner(double[],org.flag4j.complex_numbers.CNumber[],int[],int)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseVectorOperations","l":"inner(double[], double[], int[], int)","u":"inner(double[],double[],int[],int)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"inner(double[], int[], int, CNumber[])","u":"inner(double[],int[],int,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"inner(Vector)","u":"inner(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"inner(Vector)","u":"inner(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"inner(Vector)","u":"inner(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"inner(Vector)","u":"inner(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"inner(Vector)","u":"inner(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseVectorOperations","l":"innerProduct(CNumber[], CNumber[])","u":"innerProduct(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseVectorOperations","l":"innerProduct(CNumber[], CNumber[], int[], int)","u":"innerProduct(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber[],int[],int)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseVectorOperations","l":"innerProduct(CNumber[], double[])","u":"innerProduct(org.flag4j.complex_numbers.CNumber[],double[])"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseVectorOperations","l":"innerProduct(CNumber[], int[], int, CNumber[])","u":"innerProduct(org.flag4j.complex_numbers.CNumber[],int[],int,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseVectorOperations","l":"innerProduct(double[], CNumber[])","u":"innerProduct(double[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseVectorOperations","l":"innerProduct(double[], double[])","u":"innerProduct(double[],double[])"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"innerSelf()"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"inSlice(int, int, int, int, int, int)","u":"inSlice(int,int,int,int,int,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"inSlice(int, int, int, int, int, int)","u":"inSlice(int,int,int,int,int,int)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"intImaginaryValue()"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"intRange(int, int)","u":"intRange(int,int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"intRange(int, int, int)","u":"intRange(int,int,int)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"intValue()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"INV_IMAGINARY_UNIT"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"inv()"},{"p":"org.flag4j.linalg","c":"Invert","l":"inv(CMatrix)","u":"inv(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"TensorInvert","l":"inv(CTensor, int)","u":"inv(org.flag4j.arrays.dense.CTensor,int)"},{"p":"org.flag4j.linalg","c":"Invert","l":"inv(Matrix)","u":"inv(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg","c":"TensorInvert","l":"inv(Tensor, int)","u":"inv(org.flag4j.arrays.dense.Tensor,int)"},{"p":"org.flag4j.linalg","c":"Invert","l":"invDiag(CMatrix)","u":"invDiag(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"Invert","l":"invDiag(Matrix)","u":"invDiag(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.decompositions.svd","c":"ComplexSVD","l":"invDirectSum(CMatrix)","u":"invDirectSum(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CMatrix, CMatrix)","u":"invDirectSum(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CMatrix, CooCMatrix)","u":"invDirectSum(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CMatrix, CooMatrix)","u":"invDirectSum(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CMatrix, Matrix)","u":"invDirectSum(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CooCMatrix, CMatrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CooCMatrix, CooCMatrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CooCMatrix, CooMatrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CooCMatrix, Matrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CooMatrix, CMatrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CooMatrix, CooCMatrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CooMatrix, CooMatrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CooMatrix, Matrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CsrCMatrix, CMatrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CsrCMatrix, CooCMatrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CsrCMatrix, CooMatrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CsrCMatrix, CsrMatrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CsrCMatrix, Matrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CsrMatrix, CMatrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CsrMatrix, CooCMatrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CsrMatrix, CooMatrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CsrMatrix, CsrMatrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CsrMatrix, Matrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.decompositions.svd","c":"RealSVD","l":"invDirectSum(Matrix)","u":"invDirectSum(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(Matrix, CMatrix)","u":"invDirectSum(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(Matrix, CooCMatrix)","u":"invDirectSum(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(Matrix, CooMatrix)","u":"invDirectSum(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(Matrix, Matrix)","u":"invDirectSum(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"invDirectSum(T)"},{"p":"org.flag4j.linalg","c":"Invert","l":"Invert()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg","c":"Invert","l":"invHermPosDef(CMatrix)","u":"invHermPosDef(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"Invert","l":"invHermPosDef(CMatrix, boolean)","u":"invHermPosDef(org.flag4j.arrays.dense.CMatrix,boolean)"},{"p":"org.flag4j.linalg","c":"Invert","l":"invSymPosDef(Matrix)","u":"invSymPosDef(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg","c":"Invert","l":"invSymPosDef(Matrix, boolean)","u":"invSymPosDef(org.flag4j.arrays.dense.Matrix,boolean)"},{"p":"org.flag4j.linalg","c":"Invert","l":"invTriL(CMatrix)","u":"invTriL(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"Invert","l":"invTriL(Matrix)","u":"invTriL(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg","c":"Invert","l":"invTriU(CMatrix)","u":"invTriU(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"Invert","l":"invTriU(Matrix)","u":"invTriU(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"isAntiHermitian()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"isAntiHermitian()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"isAntiHermitian()"},{"p":"org.flag4j.core","c":"ComplexMatrixMixin","l":"isAntiHermitian()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseProperties","l":"isAntiHermitian(CNumber[], Shape)","u":"isAntiHermitian(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixProperties","l":"isAntiHermitian(CooCMatrix)","u":"isAntiHermitian(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrProperties","l":"isAntiHermitian(CsrCMatrix)","u":"isAntiHermitian(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"isAntiSymmetric()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"isAntiSymmetric()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"isAntiSymmetric()"},{"p":"org.flag4j.core","c":"RealMatrixMixin","l":"isAntiSymmetric()"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixProperties","l":"isAntiSymmetric(CooMatrix)","u":"isAntiSymmetric(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrProperties","l":"isAntiSymmetric(CsrMatrix)","u":"isAntiSymmetric(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseProperties","l":"isAntiSymmetric(double[], Shape)","u":"isAntiSymmetric(double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"isCloseToI()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"isCloseToI()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseProperties","l":"isCloseToIdentity(CMatrix)","u":"isCloseToIdentity(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseProperties","l":"isCloseToIdentity(Matrix)","u":"isCloseToIdentity(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"isComplex()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"isComplex()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"isComplex()"},{"p":"org.flag4j.core","c":"ComplexMatrixMixin","l":"isComplex()"},{"p":"org.flag4j.core","c":"ComplexTensorMixin","l":"isComplex()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"isComplex()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"isComplex()"},{"p":"org.flag4j.operations.common.complex","c":"ComplexProperties","l":"isComplex(CNumber[])","u":"isComplex(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"isDiag()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"isDiag()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"isDiag()"},{"p":"org.flag4j.core","c":"MatrixPropertiesMixin","l":"isDiag()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"isDouble()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"isFinite()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"isFullRank()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"isFullRank()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"isFullRank()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"isFullRank()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"isFullRank()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"isFullRank()"},{"p":"org.flag4j.core","c":"MatrixPropertiesMixin","l":"isFullRank()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"isHermitian()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"isHermitian()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"isHermitian()"},{"p":"org.flag4j.core","c":"ComplexMatrixMixin","l":"isHermitian()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseProperties","l":"isHermitian(CNumber[], Shape)","u":"isHermitian(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixProperties","l":"isHermitian(CooCMatrix)","u":"isHermitian(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrProperties","l":"isHermitian(CsrCMatrix)","u":"isHermitian(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"isI()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"isI()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"isI()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"isI()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"isI()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"isI()"},{"p":"org.flag4j.core","c":"MatrixComparisonsMixin","l":"isI()"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixProperties","l":"isIdentity(CooCMatrix)","u":"isIdentity(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixProperties","l":"isIdentity(CooMatrix)","u":"isIdentity(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrProperties","l":"isIdentity(CsrCMatrix)","u":"isIdentity(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrProperties","l":"isIdentity(CsrMatrix)","u":"isIdentity(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseProperties","l":"isIdentity(Matrix)","u":"isIdentity(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"isImaginary()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"isInfinite()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"isInt()"},{"p":"org.flag4j.linalg","c":"Invert","l":"isInv(CMatrix, CMatrix)","u":"isInv(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"Invert","l":"isInv(Matrix, Matrix)","u":"isInv(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"isInvertible()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"isInvertible()"},{"p":"org.flag4j.core","c":"MatrixPropertiesMixin","l":"isInvertible()"},{"p":"org.flag4j.complex_numbers","c":"CNumberToken","l":"isKind(String)","u":"isKind(java.lang.String)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"isNaN()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"isNeg()"},{"p":"org.flag4j.core","c":"RealTensorMixin","l":"isNeg()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"isNeg()"},{"p":"org.flag4j.operations.common.real","c":"RealProperties","l":"isNeg(double[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"isOnes()"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"isOnes()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"isOnes()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"isOnes()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"isOnes()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"isOnes()"},{"p":"org.flag4j.core","c":"TensorComparisonsMixin","l":"isOnes()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseProperties","l":"isOnes(CNumber[])","u":"isOnes(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseProperties","l":"isOnes(double[])"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"isOrthogonal()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"isOrthogonal()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"isOrthogonal()"},{"p":"org.flag4j.core","c":"RealMatrixMixin","l":"isOrthogonal()"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"isParallel(Vector)","u":"isParallel(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"isParallel(Vector)","u":"isParallel(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"isParallel(Vector)","u":"isParallel(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"isParallel(Vector)","u":"isParallel(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"isParallel(Vector)","u":"isParallel(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"isPerp(Vector)","u":"isPerp(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"isPerp(Vector)","u":"isPerp(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"isPerp(Vector)","u":"isPerp(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"isPerp(Vector)","u":"isPerp(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"isPerp(Vector)","u":"isPerp(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"isPos()"},{"p":"org.flag4j.core","c":"RealTensorMixin","l":"isPos()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"isPos()"},{"p":"org.flag4j.operations.common.real","c":"RealProperties","l":"isPos(double[])"},{"p":"org.flag4j.linalg","c":"PositiveDefiniteness","l":"isPosDef(CMatrix)","u":"isPosDef(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"PositiveDefiniteness","l":"isPosDef(Matrix)","u":"isPosDef(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg","c":"PositiveDefiniteness","l":"isPosSemiDef(CMatrix)","u":"isPosSemiDef(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"PositiveDefiniteness","l":"isPosSemiDef(Matrix)","u":"isPosSemiDef(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"isReal()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"isReal()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"isReal()"},{"p":"org.flag4j.core","c":"ComplexMatrixMixin","l":"isReal()"},{"p":"org.flag4j.core","c":"ComplexTensorMixin","l":"isReal()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"isReal()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"isReal()"},{"p":"org.flag4j.operations.common.complex","c":"ComplexProperties","l":"isReal(CNumber[])","u":"isReal(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"isSingular()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"isSingular()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"isSingular()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"isSingular()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"isSingular()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"isSingular()"},{"p":"org.flag4j.core","c":"MatrixPropertiesMixin","l":"isSingular()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"isSquare()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"isSquare()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"isSquare()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"isSquare()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"isSquare()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"isSquare()"},{"p":"org.flag4j.core","c":"MatrixPropertiesMixin","l":"isSquare()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"isSymmetric()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"isSymmetric()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"isSymmetric()"},{"p":"org.flag4j.core","c":"RealMatrixMixin","l":"isSymmetric()"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixProperties","l":"isSymmetric(CooMatrix)","u":"isSymmetric(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrProperties","l":"isSymmetric(CsrMatrix)","u":"isSymmetric(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseProperties","l":"isSymmetric(double[], Shape)","u":"isSymmetric(double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.linalg","c":"PositiveDefiniteness","l":"isSymmPosDef(CMatrix)","u":"isSymmPosDef(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"PositiveDefiniteness","l":"isSymmPosDef(Matrix)","u":"isSymmPosDef(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"isTri()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"isTri()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"isTri()"},{"p":"org.flag4j.core","c":"MatrixPropertiesMixin","l":"isTri()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"isTriL()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"isTriL()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"isTriL()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"isTriL()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"isTriL()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"isTriL()"},{"p":"org.flag4j.core","c":"MatrixPropertiesMixin","l":"isTriL()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"isTriU()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"isTriU()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"isTriU()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"isTriU()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"isTriU()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"isTriU()"},{"p":"org.flag4j.core","c":"MatrixPropertiesMixin","l":"isTriU()"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ForwardSolver","l":"isUnit"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"isUnitary()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"isUnitary()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"isUnitary()"},{"p":"org.flag4j.core","c":"ComplexMatrixMixin","l":"isUnitary()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"isVector()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"isVector()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"isVector()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"isVector()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"isVector()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"isVector()"},{"p":"org.flag4j.core","c":"MatrixPropertiesMixin","l":"isVector()"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"isZeros()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"isZeros()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"isZeros()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"isZeros()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"isZeros()"},{"p":"org.flag4j.core","c":"TensorComparisonsMixin","l":"isZeros()"},{"p":"org.flag4j.operations.common.complex","c":"ComplexProperties","l":"isZeros(CNumber[])","u":"isZeros(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.common.real","c":"RealProperties","l":"isZeros(double[])"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"join(CooCVector)","u":"join(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"join(CooCVector)","u":"join(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"join(CooCVector)","u":"join(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"join(CooCVector)","u":"join(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"join(CooCVector)","u":"join(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"join(CooVector)","u":"join(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"join(CooVector)","u":"join(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"join(CooVector)","u":"join(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"join(CooVector)","u":"join(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"join(CooVector)","u":"join(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"join(CVector)","u":"join(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"join(CVector)","u":"join(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"join(CVector)","u":"join(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"join(CVector)","u":"join(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"join(CVector)","u":"join(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"join(double[], double[])","u":"join(double[],double[])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"join(int[], int[])","u":"join(int[],int[])"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"join(Vector)","u":"join(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"join(Vector)","u":"join(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"join(Vector)","u":"join(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"join(Vector)","u":"join(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"join(Vector)","u":"join(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"keys"},{"p":"org.flag4j.complex_numbers","c":"CNumberToken","l":"kind"},{"p":"org.flag4j.linalg.decompositions.chol","c":"Cholesky","l":"L"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"leftMult(CMatrix)","u":"leftMult(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"leftMult(CVector)","u":"leftMult(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"leftMult(Matrix)","u":"leftMult(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"leftMult(Vector)","u":"leftMult(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.linalg.transformations","c":"Givens","l":"leftMult2x2Rotator(CMatrix, CMatrix, int, CNumber[])","u":"leftMult2x2Rotator(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CMatrix,int,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.linalg.transformations","c":"Givens","l":"leftMult2x2Rotator(Matrix, Matrix, int, double[])","u":"leftMult2x2Rotator(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Matrix,int,double[])"},{"p":"org.flag4j.linalg.transformations","c":"Householder","l":"leftMultReflector(CMatrix, CNumber[], CNumber, int, int, int, CNumber[])","u":"leftMultReflector(org.flag4j.arrays.dense.CMatrix,org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber,int,int,int,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.linalg.transformations","c":"Householder","l":"leftMultReflector(CMatrix, CVector, CNumber, int, int, int)","u":"leftMultReflector(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CVector,org.flag4j.complex_numbers.CNumber,int,int,int)"},{"p":"org.flag4j.linalg.transformations","c":"Householder","l":"leftMultReflector(Matrix, double[], double, int, int, int, double[])","u":"leftMultReflector(org.flag4j.arrays.dense.Matrix,double[],double,int,int,int,double[])"},{"p":"org.flag4j.linalg.transformations","c":"Householder","l":"leftMultReflector(Matrix, Vector, double, int, int, int)","u":"leftMultReflector(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Vector,double,int,int,int)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"length()"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"length()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"length()"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"length()"},{"p":"org.flag4j.core","c":"VectorPropertiesMixin","l":"length()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"length(CNumber)","u":"length(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"LESS_EQ_ERR"},{"p":"org.flag4j.util.exceptions","c":"LinearAlgebraException","l":"LinearAlgebraException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"ln(CNumber)","u":"ln(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"ln(double)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"log(CNumber)","u":"log(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"log(CNumber, CNumber)","u":"log(org.flag4j.complex_numbers.CNumber,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"log(double)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"log(double, CNumber)","u":"log(double,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"log(double, double)","u":"log(double,double)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"longImaginaryValue()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"longValue()"},{"p":"org.flag4j.linalg.transformations","c":"View","l":"lookAt(Vector, Vector, Vector)","u":"lookAt(org.flag4j.arrays.dense.Vector,org.flag4j.arrays.dense.Vector,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.linalg.solvers.lstsq","c":"LstsqSolver","l":"LstsqSolver(UnitaryDecomposition, LinearSolver)","u":"%3Cinit%3E(org.flag4j.linalg.decompositions.unitary.UnitaryDecomposition,org.flag4j.linalg.solvers.LinearSolver)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactSolver","l":"lu"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"LU"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactSolver","l":"LU"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"LU(int)","u":"%3Cinit%3E(int)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"LU(int, double)","u":"%3Cinit%3E(int,double)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"mag()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"magSquared()"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseTranspose","l":"main(String[])","u":"main(java.lang.String[])"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"makeComplexTensor(Shape, CNumber[])","u":"makeComplexTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"makeComplexTensor(Shape, CNumber[])","u":"makeComplexTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"makeComplexTensor(Shape, CNumber[])","u":"makeComplexTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"makeComplexTensor(Shape, CNumber[])","u":"makeComplexTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"makeComplexTensor(Shape, CNumber[], int[][])","u":"makeComplexTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"makeComplexTensor(Shape, CNumber[], int[][])","u":"makeComplexTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"makeComplexTensor(Shape, CNumber[], int[][])","u":"makeComplexTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"makeComplexTensor(Shape, CNumber[], int[][])","u":"makeComplexTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[][])"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"makeComplexTensor(Shape, CNumber[], int[][])","u":"makeComplexTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[][])"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"makeComplexTensor(Shape, double[])","u":"makeComplexTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"makeComplexTensor(Shape, double[])","u":"makeComplexTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"makeComplexTensor(Shape, double[])","u":"makeComplexTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"makeComplexTensor(Shape, double[])","u":"makeComplexTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"makeDenseTensor(Shape, double[])","u":"makeDenseTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"makeDenseTensor(Shape, double[])","u":"makeDenseTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"makeDenseTensor(Shape, double[])","u":"makeDenseTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"makeDenseTensor(Shape, double[])","u":"makeDenseTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"makeDenseTensor(Shape, double[])","u":"makeDenseTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.linalg.decompositions.svd","c":"ComplexSVD","l":"makeEigenPairs(CMatrix, double[])","u":"makeEigenPairs(org.flag4j.arrays.dense.CMatrix,double[])"},{"p":"org.flag4j.linalg.decompositions.svd","c":"RealSVD","l":"makeEigenPairs(Matrix, double[])","u":"makeEigenPairs(org.flag4j.arrays.dense.Matrix,double[])"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"makeEigenPairs(T, double[])","u":"makeEigenPairs(T,double[])"},{"p":"org.flag4j.linalg.decompositions.svd","c":"ComplexSVD","l":"makeEigenVals(CMatrix, double[])","u":"makeEigenVals(org.flag4j.arrays.dense.CMatrix,double[])"},{"p":"org.flag4j.linalg.decompositions.svd","c":"RealSVD","l":"makeEigenVals(Matrix, double[])","u":"makeEigenVals(org.flag4j.arrays.dense.Matrix,double[])"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"makeEigenVals(T, double[])","u":"makeEigenVals(T,double[])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"makeRealTensor(Shape, double[])","u":"makeRealTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"makeRealTensor(Shape, double[])","u":"makeRealTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"makeRealTensor(Shape, double[])","u":"makeRealTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"makeRealTensor(Shape, double[])","u":"makeRealTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"makeRealTensor(Shape, double[], int[][])","u":"makeRealTensor(org.flag4j.core.Shape,double[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"makeRealTensor(Shape, double[], int[][])","u":"makeRealTensor(org.flag4j.core.Shape,double[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"makeRealTensor(Shape, double[], int[][])","u":"makeRealTensor(org.flag4j.core.Shape,double[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"makeRealTensor(Shape, double[], int[][])","u":"makeRealTensor(org.flag4j.core.Shape,double[],int[][])"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"makeRealTensor(Shape, double[], int[][])","u":"makeRealTensor(org.flag4j.core.Shape,double[],int[][])"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"makeReflector(int, CNumber, CNumber)","u":"makeReflector(int,org.flag4j.complex_numbers.CNumber,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"makeReflector(int, CNumber, CNumber, CNumber)","u":"makeReflector(int,org.flag4j.complex_numbers.CNumber,org.flag4j.complex_numbers.CNumber,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"makeReflector(int, double, double)","u":"makeReflector(int,double,double)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"makeReflector(int, double, double, double)","u":"makeReflector(int,double,double,double)"},{"p":"org.flag4j.core","c":"Shape","l":"makeStridesIfNull()"},{"p":"org.flag4j.linalg","c":"Eigen","l":"makeSystem(CMatrix, int, CMatrix, CVector)","u":"makeSystem(org.flag4j.arrays.dense.CMatrix,int,org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"makeSystem(Matrix, int, Matrix, Vector)","u":"makeSystem(org.flag4j.arrays.dense.Matrix,int,org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"makeTensor(Shape, CNumber...)","u":"makeTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber...)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"makeTensor(Shape, CNumber[])","u":"makeTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"makeTensor(Shape, CNumber[])","u":"makeTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"makeTensor(Shape, CNumber[], int[][])","u":"makeTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"makeTensor(Shape, CNumber[], int[][])","u":"makeTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"makeTensor(Shape, CNumber[], int[][])","u":"makeTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"makeTensor(Shape, CNumber[], int[][])","u":"makeTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[][])"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"makeTensor(Shape, CNumber[], int[][])","u":"makeTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[][])"},{"p":"org.flag4j.core.dense_base","c":"DenseTensorBase","l":"makeTensor(Shape, D)","u":"makeTensor(org.flag4j.core.Shape,D)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"makeTensor(Shape, double[])","u":"makeTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"makeTensor(Shape, double[])","u":"makeTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"makeTensor(Shape, double[])","u":"makeTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"makeTensor(Shape, double[], int[][])","u":"makeTensor(org.flag4j.core.Shape,double[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"makeTensor(Shape, double[], int[][])","u":"makeTensor(org.flag4j.core.Shape,double[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"makeTensor(Shape, double[], int[][])","u":"makeTensor(org.flag4j.core.Shape,double[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"makeTensor(Shape, double[], int[][])","u":"makeTensor(org.flag4j.core.Shape,double[],int[][])"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"makeTensor(Shape, double[], int[][])","u":"makeTensor(org.flag4j.core.Shape,double[],int[][])"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"MAT_MULT_DIM_MISMATCH_ERR"},{"p":"org.flag4j.complex_numbers","c":"CNumberToken","l":"matches(String, String)","u":"matches(java.lang.String,java.lang.String)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"matMultShapeErrMsg(Shape, Shape)","u":"matMultShapeErrMsg(org.flag4j.core.Shape,org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"Matrix(double[][])","u":"%3Cinit%3E(double[][])"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"Matrix(Double[][])","u":"%3Cinit%3E(java.lang.Double[][])"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"Matrix(int)","u":"%3Cinit%3E(int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"Matrix(int, double)","u":"%3Cinit%3E(int,double)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"Matrix(int, int)","u":"%3Cinit%3E(int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"Matrix(int, int, double)","u":"%3Cinit%3E(int,int,double)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"Matrix(int, int, double[])","u":"%3Cinit%3E(int,int,double[])"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"Matrix(int[][])","u":"%3Cinit%3E(int[][])"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"Matrix(Integer[][])","u":"%3Cinit%3E(java.lang.Integer[][])"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"Matrix(Matrix)","u":"%3Cinit%3E(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"Matrix(Shape)","u":"%3Cinit%3E(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"Matrix(Shape, double)","u":"%3Cinit%3E(org.flag4j.core.Shape,double)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"Matrix(Shape, double[])","u":"%3Cinit%3E(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseElementSearch","l":"matrixBinarySearch(CooCMatrix, int, int)","u":"matrixBinarySearch(org.flag4j.arrays.sparse.CooCMatrix,int,int)"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseElementSearch","l":"matrixBinarySearch(int[], int[], int, int)","u":"matrixBinarySearch(int[],int[],int,int)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseEquals","l":"matrixEquals(CMatrix, CMatrix)","u":"matrixEquals(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseEquals","l":"matrixEquals(CMatrix, CooCMatrix)","u":"matrixEquals(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseEquals","l":"matrixEquals(CMatrix, CooMatrix)","u":"matrixEquals(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseEquals","l":"matrixEquals(CooCMatrix, CooCMatrix)","u":"matrixEquals(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseEquals","l":"matrixEquals(CooMatrix, CooCMatrix)","u":"matrixEquals(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseEquals","l":"matrixEquals(CooMatrix, CooMatrix)","u":"matrixEquals(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseEquals","l":"matrixEquals(Matrix, CMatrix)","u":"matrixEquals(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseEquals","l":"matrixEquals(Matrix, CooCMatrix)","u":"matrixEquals(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseEquals","l":"matrixEquals(Matrix, CooMatrix)","u":"matrixEquals(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseEquals","l":"matrixEquals(Matrix, Matrix)","u":"matrixEquals(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseElementSearch","l":"matrixFindRowStartEnd(CooCMatrix, int)","u":"matrixFindRowStartEnd(org.flag4j.arrays.sparse.CooCMatrix,int)"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseElementSearch","l":"matrixFindRowStartEnd(int[], int)","u":"matrixFindRowStartEnd(int[],int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"matrixGet(CooCMatrix, int, int)","u":"matrixGet(org.flag4j.arrays.sparse.CooCMatrix,int,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"matrixGet(CooMatrix, int, int)","u":"matrixGet(org.flag4j.arrays.sparse.CooMatrix,int,int)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"matrixInfNorm(CNumber[], Shape)","u":"matrixInfNorm(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"matrixInfNorm(double[], Shape)","u":"matrixInfNorm(double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"matrixMaxNorm(CNumber[])","u":"matrixMaxNorm(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"matrixMaxNorm(double[])"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"MatrixMultiplyDispatcher()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"matrixNormL2(CNumber[], Shape)","u":"matrixNormL2(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseNorms","l":"matrixNormL2(CooCMatrix)","u":"matrixNormL2(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseNorms","l":"matrixNormL2(CooMatrix)","u":"matrixNormL2(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"matrixNormLp(CNumber[], Shape, double)","u":"matrixNormLp(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseNorms","l":"matrixNormLp(CooCMatrix, double)","u":"matrixNormLp(org.flag4j.arrays.sparse.CooCMatrix,double)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseNorms","l":"matrixNormLp(CooMatrix, double)","u":"matrixNormLp(org.flag4j.arrays.sparse.CooMatrix,double)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"matrixNormLpq(CNumber[], Shape, double, double)","u":"matrixNormLpq(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double,double)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseNorms","l":"matrixNormLpq(CooCMatrix, double, double)","u":"matrixNormLpq(org.flag4j.arrays.sparse.CooCMatrix,double,double)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseNorms","l":"matrixNormLpq(CooMatrix, double, double)","u":"matrixNormLpq(org.flag4j.arrays.sparse.CooMatrix,double,double)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"matrixNormLpq(CsrMatrix, double, double)","u":"matrixNormLpq(org.flag4j.arrays.sparse.CsrMatrix,double,double)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"matrixNormLpq(double[], Shape, double, double)","u":"matrixNormLpq(double[],org.flag4j.core.Shape,double,double)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"MatrixNorms()","u":"%3Cinit%3E()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"matrixRank()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"matrixRank()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"matrixRank()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"matrixRank()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"matrixRank()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"matrixRank()"},{"p":"org.flag4j.core","c":"MatrixPropertiesMixin","l":"matrixRank()"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"matrixSet(CooCMatrix, int, int, CNumber)","u":"matrixSet(org.flag4j.arrays.sparse.CooCMatrix,int,int,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"matrixSet(CooMatrix, int, int, double)","u":"matrixSet(org.flag4j.arrays.sparse.CooMatrix,int,int,double)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactTensorSolver","l":"matrixSolver"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"MAX_REAL"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"max()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"max()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"max()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"max()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"max()"},{"p":"org.flag4j.core","c":"TensorPropertiesMixin","l":"max()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"max(CNumber...)","u":"max(org.flag4j.complex_numbers.CNumber...)"},{"p":"org.flag4j.operations.common.real","c":"AggregateReal","l":"max(double[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"maxAbs()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"maxAbs()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"maxAbs()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"maxAbs()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"maxAbs()"},{"p":"org.flag4j.core","c":"TensorPropertiesMixin","l":"maxAbs()"},{"p":"org.flag4j.core","c":"VectorPropertiesMixin","l":"maxAbs()"},{"p":"org.flag4j.operations.common.complex","c":"AggregateComplex","l":"maxAbs(CNumber...)","u":"maxAbs(org.flag4j.complex_numbers.CNumber...)"},{"p":"org.flag4j.operations.common.real","c":"AggregateReal","l":"maxAbs(double...)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"ComplexLU","l":"maxColIndex(int)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"RealLU","l":"maxColIndex(int)"},{"p":"org.flag4j.io","c":"PrintOptions","l":"maxColumns"},{"p":"org.flag4j.linalg.decompositions.lu","c":"ComplexLU","l":"maxIndex(int)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"RealLU","l":"maxIndex(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"maxIterations"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"maxIterationsFactor"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"maxNorm(CMatrix)","u":"maxNorm(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"maxNorm(CooCMatrix)","u":"maxNorm(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"maxNorm(CooMatrix)","u":"maxNorm(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"maxNorm(CsrMatrix)","u":"maxNorm(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"maxNorm(Matrix)","u":"maxNorm(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"maxRe(CNumber...)","u":"maxRe(org.flag4j.complex_numbers.CNumber...)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"maxReal()"},{"p":"org.flag4j.io","c":"PrintOptions","l":"maxRows"},{"p":"org.flag4j.complex_numbers","c":"CNumberUtils","l":"maxStringLength(CNumber[])","u":"maxStringLength(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.complex_numbers","c":"CNumberUtils","l":"maxStringLength(CNumber[], int)","u":"maxStringLength(org.flag4j.complex_numbers.CNumber[],int)"},{"p":"org.flag4j.complex_numbers","c":"CNumberUtils","l":"maxStringLength(double[])"},{"p":"org.flag4j.complex_numbers","c":"CNumberUtils","l":"maxStringLength(double[], int)","u":"maxStringLength(double[],int)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"MIN_REAL"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"MIN_REAL_NORMAL"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"min()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"min()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"min()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"min()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"min()"},{"p":"org.flag4j.core","c":"TensorPropertiesMixin","l":"min()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"min(CNumber...)","u":"min(org.flag4j.complex_numbers.CNumber...)"},{"p":"org.flag4j.operations.common.real","c":"AggregateReal","l":"min(double[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"minAbs()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"minAbs()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"minAbs()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"minAbs()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"minAbs()"},{"p":"org.flag4j.core","c":"TensorPropertiesMixin","l":"minAbs()"},{"p":"org.flag4j.operations.common.complex","c":"AggregateComplex","l":"minAbs(CNumber[])","u":"minAbs(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.common.real","c":"AggregateReal","l":"minAbs(double[])"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"minAxisSize"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"minRe(CNumber...)","u":"minRe(org.flag4j.complex_numbers.CNumber...)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"minReal()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"minRealNormal()"},{"p":"org.flag4j.concurrency","c":"Configurations","l":"minRecursiveSize"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrManipulations","l":"moveAndShiftLeft(CsrCMatrix, int, int, int)","u":"moveAndShiftLeft(org.flag4j.arrays.sparse.CsrCMatrix,int,int,int)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrManipulations","l":"moveAndShiftLeft(CsrMatrix, int, int, int)","u":"moveAndShiftLeft(org.flag4j.arrays.sparse.CsrMatrix,int,int,int)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrManipulations","l":"moveAndShiftRight(CsrCMatrix, int, int, int)","u":"moveAndShiftRight(org.flag4j.arrays.sparse.CsrCMatrix,int,int,int)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrManipulations","l":"moveAndShiftRight(CsrMatrix, int, int, int)","u":"moveAndShiftRight(org.flag4j.arrays.sparse.CsrMatrix,int,int,int)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"MULT_T"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"MULT_T"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"MULT_T_BLOCKED"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"MULT_T_BLOCKED"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"MULT_T_BLOCKED_CONCURRENT"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"MULT_T_BLOCKED_CONCURRENT"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"MULT_T_CONCURRENT"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"MULT_T_CONCURRENT"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"mult(CMatrix)","u":"mult(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"mult(CMatrix)","u":"mult(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"mult(CMatrix)","u":"mult(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"mult(CMatrix)","u":"mult(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"mult(CMatrix)","u":"mult(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"mult(CMatrix)","u":"mult(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"mult(CMatrix)","u":"mult(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"mult(CNumber)","u":"mult(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"mult(CNumber)","u":"mult(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"mult(CNumber)","u":"mult(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"mult(CNumber)","u":"mult(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"mult(CNumber)","u":"mult(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"mult(CNumber)","u":"mult(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"mult(CNumber)","u":"mult(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"mult(CNumber)","u":"mult(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"mult(CNumber)","u":"mult(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"mult(CooCMatrix)","u":"mult(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"mult(CooCMatrix)","u":"mult(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"mult(CooCMatrix)","u":"mult(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"mult(CooCMatrix)","u":"mult(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"mult(CooCMatrix)","u":"mult(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"mult(CooCMatrix)","u":"mult(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"mult(CooCMatrix)","u":"mult(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"mult(CooCVector)","u":"mult(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"mult(CooCVector)","u":"mult(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"mult(CooCVector)","u":"mult(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"mult(CooCVector)","u":"mult(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"mult(CooCVector)","u":"mult(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"mult(CooCVector)","u":"mult(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"mult(CooCVector)","u":"mult(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"mult(CooMatrix)","u":"mult(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"mult(CooMatrix)","u":"mult(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"mult(CooMatrix)","u":"mult(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"mult(CooMatrix)","u":"mult(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"mult(CooMatrix)","u":"mult(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"mult(CooMatrix)","u":"mult(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"mult(CooMatrix)","u":"mult(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"mult(CooVector)","u":"mult(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"mult(CooVector)","u":"mult(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"mult(CooVector)","u":"mult(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"mult(CooVector)","u":"mult(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"mult(CooVector)","u":"mult(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"mult(CooVector)","u":"mult(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"mult(CooVector)","u":"mult(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"mult(CsrCMatrix)","u":"mult(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"mult(CsrCMatrix)","u":"mult(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"mult(CsrCMatrix)","u":"mult(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"mult(CsrCMatrix)","u":"mult(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"mult(CsrCMatrix)","u":"mult(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"mult(CsrCMatrix)","u":"mult(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"mult(CsrCMatrix)","u":"mult(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"mult(CsrMatrix)","u":"mult(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"mult(CsrMatrix)","u":"mult(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"mult(CsrMatrix)","u":"mult(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"mult(CsrMatrix)","u":"mult(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"mult(CsrMatrix)","u":"mult(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"mult(CsrMatrix)","u":"mult(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"mult(CsrMatrix)","u":"mult(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"mult(CVector)","u":"mult(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"mult(CVector)","u":"mult(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"mult(CVector)","u":"mult(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"mult(CVector)","u":"mult(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"mult(CVector)","u":"mult(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"mult(CVector)","u":"mult(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"mult(CVector)","u":"mult(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"mult(double)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"mult(double)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"mult(double)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"mult(double)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"mult(double)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"mult(double)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"mult(double)"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"mult(double)"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"mult(double)"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"mult(double)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"mult(Matrix)","u":"mult(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"mult(Matrix)","u":"mult(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"mult(Matrix)","u":"mult(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"mult(Matrix)","u":"mult(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"mult(Matrix)","u":"mult(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"mult(Matrix)","u":"mult(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"mult(Matrix)","u":"mult(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"mult(T)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"mult(TT)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"mult(Vector)","u":"mult(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"mult(Vector)","u":"mult(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"mult(Vector)","u":"mult(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"mult(Vector)","u":"mult(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"mult(Vector)","u":"mult(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"mult(Vector)","u":"mult(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"mult(Vector)","u":"mult(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"mult2CSR(CooCMatrix)","u":"mult2CSR(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"mult2CSR(CooCMatrix)","u":"mult2CSR(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"mult2CSR(CooMatrix)","u":"mult2CSR(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"mult2CSR(CooMatrix)","u":"mult2CSR(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"mult2CSR(CsrCMatrix)","u":"mult2CSR(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"mult2CSR(CsrCMatrix)","u":"mult2CSR(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"mult2CSR(CsrMatrix)","u":"mult2CSR(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"mult2CSR(CsrMatrix)","u":"mult2CSR(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"multEq(CNumber)","u":"multEq(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"multEq(double)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"multInv()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"multTranspose(CMatrix)","u":"multTranspose(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"multTranspose(CMatrix)","u":"multTranspose(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"multTranspose(CMatrix)","u":"multTranspose(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"multTranspose(CMatrix)","u":"multTranspose(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"multTranspose(CMatrix)","u":"multTranspose(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixMultTranspose","l":"multTranspose(CNumber[], Shape, CNumber[], int[], int[], Shape)","u":"multTranspose(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultTranspose","l":"multTranspose(CNumber[], Shape, CNumber[], Shape)","u":"multTranspose(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultTranspose","l":"multTranspose(CNumber[], Shape, double[], int[], int[], Shape)","u":"multTranspose(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultTranspose","l":"multTranspose(CNumber[], Shape, double[], Shape)","u":"multTranspose(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"multTranspose(CooCMatrix)","u":"multTranspose(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"multTranspose(CooCMatrix)","u":"multTranspose(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"multTranspose(CooCMatrix)","u":"multTranspose(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"multTranspose(CooCMatrix)","u":"multTranspose(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"multTranspose(CooCMatrix)","u":"multTranspose(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"multTranspose(CooMatrix)","u":"multTranspose(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"multTranspose(CooMatrix)","u":"multTranspose(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"multTranspose(CooMatrix)","u":"multTranspose(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"multTranspose(CooMatrix)","u":"multTranspose(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"multTranspose(CooMatrix)","u":"multTranspose(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"multTranspose(CsrCMatrix)","u":"multTranspose(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"multTranspose(CsrMatrix)","u":"multTranspose(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultTranspose","l":"multTranspose(double[], Shape, CNumber[], int[], int[], Shape)","u":"multTranspose(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultTranspose","l":"multTranspose(double[], Shape, CNumber[], Shape)","u":"multTranspose(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixMultTranspose","l":"multTranspose(double[], Shape, double[], int[], int[], Shape)","u":"multTranspose(double[],org.flag4j.core.Shape,double[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultTranspose","l":"multTranspose(double[], Shape, double[], Shape)","u":"multTranspose(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"multTranspose(Matrix)","u":"multTranspose(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"multTranspose(Matrix)","u":"multTranspose(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"multTranspose(Matrix)","u":"multTranspose(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"multTranspose(Matrix)","u":"multTranspose(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"multTranspose(Matrix)","u":"multTranspose(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultTranspose","l":"multTransposeBlocked(CNumber[], Shape, CNumber[], Shape)","u":"multTransposeBlocked(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultTranspose","l":"multTransposeBlocked(CNumber[], Shape, double[], Shape)","u":"multTransposeBlocked(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultTranspose","l":"multTransposeBlocked(double[], Shape, CNumber[], Shape)","u":"multTransposeBlocked(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultTranspose","l":"multTransposeBlocked(double[], Shape, double[], Shape)","u":"multTransposeBlocked(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultTranspose","l":"multTransposeBlockedConcurrent(CNumber[], Shape, CNumber[], Shape)","u":"multTransposeBlockedConcurrent(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultTranspose","l":"multTransposeBlockedConcurrent(CNumber[], Shape, double[], Shape)","u":"multTransposeBlockedConcurrent(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultTranspose","l":"multTransposeBlockedConcurrent(double[], Shape, CNumber[], Shape)","u":"multTransposeBlockedConcurrent(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultTranspose","l":"multTransposeBlockedConcurrent(double[], Shape, double[], Shape)","u":"multTransposeBlockedConcurrent(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultTranspose","l":"multTransposeConcurrent(CNumber[], Shape, CNumber[], Shape)","u":"multTransposeConcurrent(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultTranspose","l":"multTransposeConcurrent(CNumber[], Shape, double[], Shape)","u":"multTransposeConcurrent(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultTranspose","l":"multTransposeConcurrent(double[], Shape, CNumber[], Shape)","u":"multTransposeConcurrent(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultTranspose","l":"multTransposeConcurrent(double[], Shape, double[], Shape)","u":"multTransposeConcurrent(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"NAMED_GREATER_EQ_ERR"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"NAMED_LESS_EQ_BI_ERR"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"NAMED_LESS_EQ_ERR"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"NaN"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"nan()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"nearZero(CNumber, double)","u":"nearZero(org.flag4j.complex_numbers.CNumber,double)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"NEG_DIM_ERR"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"NEG_VALUE_ERR"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"NEGATIVE_INFINITY"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"NEGATIVE_ONE"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"negativeDimErrMsg(int[])"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"negImagUnit()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"negInfinity()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"negOne()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"nnz"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"nnz"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"NON_POS_ERR"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU.Pivoting","l":"NONE"},{"p":"org.flag4j.core.sparse_base","c":"SparseTensorBase","l":"nonZeroEntries"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"nonZeroEntries()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"nonZeroEntries()"},{"p":"org.flag4j.core.sparse_base","c":"SparseTensorBase","l":"nonZeroEntries()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"ComplexLU","l":"noPivot()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"noPivot()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"RealLU","l":"noPivot()"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"norm"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"norm"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"ComplexUnitaryDecomposition","l":"norm"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"RealUnitaryDecomposition","l":"norm"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"norm(CMatrix)","u":"norm(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"norm(CMatrix, double)","u":"norm(org.flag4j.arrays.dense.CMatrix,double)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"norm(CMatrix, double, double)","u":"norm(org.flag4j.arrays.dense.CMatrix,double,double)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"norm(CNumber...)","u":"norm(org.flag4j.complex_numbers.CNumber...)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"norm(CNumber[], double)","u":"norm(org.flag4j.complex_numbers.CNumber[],double)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"norm(CooCMatrix)","u":"norm(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"norm(CooCMatrix, double)","u":"norm(org.flag4j.arrays.sparse.CooCMatrix,double)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"norm(CooCMatrix, double, double)","u":"norm(org.flag4j.arrays.sparse.CooCMatrix,double,double)"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"norm(CooCTensor)","u":"norm(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"norm(CooCTensor, double)","u":"norm(org.flag4j.arrays.sparse.CooCTensor,double)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"norm(CooCVector)","u":"norm(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"norm(CooCVector, double)","u":"norm(org.flag4j.arrays.sparse.CooCVector,double)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"norm(CooMatrix)","u":"norm(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"norm(CooMatrix, double)","u":"norm(org.flag4j.arrays.sparse.CooMatrix,double)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"norm(CooMatrix, double, double)","u":"norm(org.flag4j.arrays.sparse.CooMatrix,double,double)"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"norm(CooTensor)","u":"norm(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"norm(CooTensor, double)","u":"norm(org.flag4j.arrays.sparse.CooTensor,double)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"norm(CooVector)","u":"norm(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"norm(CooVector, double)","u":"norm(org.flag4j.arrays.sparse.CooVector,double)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"norm(CsrMatrix)","u":"norm(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"norm(CsrMatrix, double)","u":"norm(org.flag4j.arrays.sparse.CsrMatrix,double)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"norm(CsrMatrix, double, double)","u":"norm(org.flag4j.arrays.sparse.CsrMatrix,double,double)"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"norm(CTensor)","u":"norm(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"norm(CTensor, double)","u":"norm(org.flag4j.arrays.dense.CTensor,double)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"norm(CVector)","u":"norm(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"norm(CVector, double)","u":"norm(org.flag4j.arrays.dense.CVector,double)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"norm(double...)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"norm(double[], double)","u":"norm(double[],double)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"norm(Matrix)","u":"norm(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"norm(Matrix, double)","u":"norm(org.flag4j.arrays.dense.Matrix,double)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"norm(Matrix, double, double)","u":"norm(org.flag4j.arrays.dense.Matrix,double,double)"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"norm(Tensor)","u":"norm(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"norm(Tensor, double)","u":"norm(org.flag4j.arrays.dense.Tensor,double)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"norm(Vector)","u":"norm(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"norm(Vector, double)","u":"norm(org.flag4j.arrays.dense.Vector,double)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"normalize()"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"normalize()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"normalize()"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"normalize()"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"normalize()"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"ComplexUnitaryDecomposition","l":"normRe"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"notContains(int[], int)","u":"notContains(int[],int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"notinAxes(int[], int)","u":"notinAxes(int[],int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"numCols"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"numCols"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"numCols"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"numCols"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"numCols"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"numCols"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"numCols"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"numCols()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"numCols()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"numCols()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"numCols()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"numCols()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"numCols()"},{"p":"org.flag4j.core","c":"MatrixMixin","l":"numCols()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"numColSwaps"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"numExceptional"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"numRows"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"numRows"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"numRows"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"numRows"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"numRows"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"numRows"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"numRows"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"numRows"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"numRows()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"numRows()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"numRows()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"numRows()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"numRows()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"numRows()"},{"p":"org.flag4j.core","c":"MatrixMixin","l":"numRows()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"numRowSwaps"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"numUnique(double[])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"numUnique(int[])"},{"p":"org.flag4j.io","c":"TensorInputStream","l":"objectIn"},{"p":"org.flag4j.io","c":"TensorOutputStream","l":"objectOut"},{"p":"org.flag4j.arrays.sparse","c":"SymmTriDiagonal","l":"offDiag"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"ONE"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"one()"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseVectorOperations","l":"OUTER_CONCURRENT_THRESHOLD"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"outer(CooCVector)","u":"outer(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"outer(CooCVector)","u":"outer(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"outer(CooCVector)","u":"outer(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"outer(CooCVector)","u":"outer(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"outer(CooCVector)","u":"outer(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"outer(CooVector)","u":"outer(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"outer(CooVector)","u":"outer(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"outer(CooVector)","u":"outer(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"outer(CooVector)","u":"outer(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"outer(CooVector)","u":"outer(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"outer(CVector)","u":"outer(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"outer(CVector)","u":"outer(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"outer(CVector)","u":"outer(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"outer(CVector)","u":"outer(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"outer(CVector)","u":"outer(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"outer(Vector)","u":"outer(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"outer(Vector)","u":"outer(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"outer(Vector)","u":"outer(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"outer(Vector)","u":"outer(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"outer(Vector)","u":"outer(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseVectorOperations","l":"outerProduct(CNumber[], CNumber[])","u":"outerProduct(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseVectorOperations","l":"outerProduct(CNumber[], CNumber[], int[], int)","u":"outerProduct(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber[],int[],int)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseVectorOperations","l":"outerProduct(CNumber[], double[])","u":"outerProduct(org.flag4j.complex_numbers.CNumber[],double[])"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"outerProduct(CNumber[], double[], int[], int)","u":"outerProduct(org.flag4j.complex_numbers.CNumber[],double[],int[],int)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseVectorOperations","l":"outerProduct(CNumber[], int[], int, CNumber[])","u":"outerProduct(org.flag4j.complex_numbers.CNumber[],int[],int,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"outerProduct(CNumber[], int[], int, double[])","u":"outerProduct(org.flag4j.complex_numbers.CNumber[],int[],int,double[])"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseVectorOperations","l":"outerProduct(CooCVector, CooCVector)","u":"outerProduct(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseVectorOperations","l":"outerProduct(CooCVector, CooVector)","u":"outerProduct(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseVectorOperations","l":"outerProduct(CooVector, CooCVector)","u":"outerProduct(org.flag4j.arrays.sparse.CooVector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseVectorOperations","l":"outerProduct(CooVector, CooVector)","u":"outerProduct(org.flag4j.arrays.sparse.CooVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseVectorOperations","l":"outerProduct(double[], CNumber[])","u":"outerProduct(double[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"outerProduct(double[], CNumber[], int[], int)","u":"outerProduct(double[],org.flag4j.complex_numbers.CNumber[],int[],int)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseVectorOperations","l":"outerProduct(double[], double[])","u":"outerProduct(double[],double[])"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseVectorOperations","l":"outerProduct(double[], double[], int[], int)","u":"outerProduct(double[],double[],int[],int)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"outerProduct(double[], int[], int, CNumber[])","u":"outerProduct(double[],int[],int,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseVectorOperations","l":"outerProduct(double[], int[], int, double[])","u":"outerProduct(double[],int[],int,double[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseVectorOperations","l":"outerProductConcurrent(double[], double[])","u":"outerProductConcurrent(double[],double[])"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"P"},{"p":"org.flag4j.io","c":"PrintOptions","l":"padding"},{"p":"org.flag4j.concurrency","c":"ThreadManager","l":"parallelismLevel"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"ParameterChecks()","u":"%3Cinit%3E()"},{"p":"org.flag4j.complex_numbers","c":"CNumberParser","l":"parseNumber(String)","u":"parseNumber(java.lang.String)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU.Pivoting","l":"PARTIAL"},{"p":"org.flag4j.linalg.decompositions.lu","c":"ComplexLU","l":"partialPivot()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"partialPivot()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"RealLU","l":"partialPivot()"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"performDoubleShift(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"performDoubleShift(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"performDoubleShift(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"performExceptionalShift(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"performExceptionalShift(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"performExceptionalShift(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"performSingleShift(int, CNumber)","u":"performSingleShift(int,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"performSingleShift(int, double)","u":"performSingleShift(int,double)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"PermutationMatrix(int)","u":"%3Cinit%3E(int)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"PermutationMatrix(int[])","u":"%3Cinit%3E(int[])"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"PermutationMatrix(PermutationMatrix)","u":"%3Cinit%3E(org.flag4j.arrays.sparse.PermutationMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"PermutationMatrix(Shape)","u":"%3Cinit%3E(org.flag4j.core.Shape)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ComplexExactSolver","l":"permuteRows(CMatrix)","u":"permuteRows(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ComplexExactSolver","l":"permuteRows(CVector)","u":"permuteRows(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"permuteRows(int[])"},{"p":"org.flag4j.linalg.solvers.exact","c":"RealExactSolver","l":"permuteRows(Matrix)","u":"permuteRows(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactSolver","l":"permuteRows(T)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactSolver","l":"permuteRows(U)"},{"p":"org.flag4j.linalg.solvers.exact","c":"RealExactSolver","l":"permuteRows(Vector)","u":"permuteRows(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"PI"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"pi()"},{"p":"org.flag4j.linalg","c":"Invert","l":"pInv(CMatrix)","u":"pInv(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"Invert","l":"pInv(Matrix)","u":"pInv(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"pivotFlag"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU.Pivoting","l":"Pivoting()","u":"%3Cinit%3E()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"posInfinity()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"POSITIVE_INFINITY"},{"p":"org.flag4j.linalg","c":"PositiveDefiniteness","l":"PositiveDefiniteness()","u":"%3Cinit%3E()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"pow(CNumber, CNumber)","u":"pow(org.flag4j.complex_numbers.CNumber,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"pow(CNumber, double)","u":"pow(org.flag4j.complex_numbers.CNumber,double)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"pow(double, CNumber)","u":"pow(double,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"pow(double, double)","u":"pow(double,double)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"pow(int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"pow(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"pow(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"pow(int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"pow(int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"pow(int)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"pow(int)"},{"p":"org.flag4j.io","c":"PrintOptions","l":"precision"},{"p":"org.flag4j.io","c":"PrintOptions","l":"PrintOptions()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"prod(CNumber[])","u":"prod(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseOperations","l":"prod(double[])"},{"p":"org.flag4j.linalg.transformations","c":"Projection","l":"Projection()","u":"%3Cinit%3E()"},{"p":"org.flag4j.complex_numbers","c":"CNumberLexer","l":"putBackSymbol(int)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"Q"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"qFactors"},{"p":"org.flag4j.linalg.solvers.lstsq","c":"LstsqSolver","l":"Qh"},{"p":"org.flag4j.linalg.solvers.lstsq","c":"LstsqSolver","l":"qr"},{"p":"org.flag4j.linalg.solvers.lstsq","c":"LstsqSolver","l":"R"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"RAND_ARRAY"},{"p":"org.flag4j.rng","c":"RandomCNumber","l":"randn()"},{"p":"org.flag4j.rng","c":"RandomCNumber","l":"randn(double, double)","u":"randn(double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnCMatrix(int, int)","u":"randnCMatrix(int,int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnCMatrix(int, int, double, double)","u":"randnCMatrix(int,int,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnCMatrix(Shape)","u":"randnCMatrix(org.flag4j.core.Shape)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnCMatrix(Shape, double, double)","u":"randnCMatrix(org.flag4j.core.Shape,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnCTensor(Shape)","u":"randnCTensor(org.flag4j.core.Shape)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnCTensor(Shape, double, double)","u":"randnCTensor(org.flag4j.core.Shape,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnCVector(int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnCVector(int, double, double)","u":"randnCVector(int,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnMatrix(int, int)","u":"randnMatrix(int,int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnMatrix(int, int, double, double)","u":"randnMatrix(int,int,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnMatrix(Shape)","u":"randnMatrix(org.flag4j.core.Shape)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnMatrix(Shape, double, double)","u":"randnMatrix(org.flag4j.core.Shape,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnTensor(Shape)","u":"randnTensor(org.flag4j.core.Shape)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnTensor(Shape, double, double)","u":"randnTensor(org.flag4j.core.Shape,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnVector(int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnVector(int, double, double)","u":"randnVector(int,double,double)"},{"p":"org.flag4j.rng","c":"RandomCNumber","l":"random()"},{"p":"org.flag4j.rng","c":"RandomCNumber","l":"random(double)"},{"p":"org.flag4j.rng","c":"RandomCNumber","l":"random(double, double)","u":"random(double,double)"},{"p":"org.flag4j.rng","c":"RandomArray","l":"RandomArray()","u":"%3Cinit%3E()"},{"p":"org.flag4j.rng","c":"RandomArray","l":"RandomArray(RandomCNumber)","u":"%3Cinit%3E(org.flag4j.rng.RandomCNumber)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCMatrix(int, int)","u":"randomCMatrix(int,int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCMatrix(int, int, double, double)","u":"randomCMatrix(int,int,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCMatrix(Shape)","u":"randomCMatrix(org.flag4j.core.Shape)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCMatrix(Shape, double, double)","u":"randomCMatrix(org.flag4j.core.Shape,double,double)"},{"p":"org.flag4j.rng","c":"RandomCNumber","l":"RandomCNumber()","u":"%3Cinit%3E()"},{"p":"org.flag4j.rng","c":"RandomCNumber","l":"RandomCNumber(long)","u":"%3Cinit%3E(long)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCooMatrix(int, int, double, double, double)","u":"randomCooMatrix(int,int,double,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCooMatrix(int, int, double, double, int)","u":"randomCooMatrix(int,int,double,double,int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCooMatrix(Shape, double, double, double)","u":"randomCooMatrix(org.flag4j.core.Shape,double,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCooMatrix(Shape, double, double, int)","u":"randomCooMatrix(org.flag4j.core.Shape,double,double,int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCsrMatrix(int, int, double, double, double)","u":"randomCsrMatrix(int,int,double,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCsrMatrix(int, int, double, double, int)","u":"randomCsrMatrix(int,int,double,double,int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCsrMatrix(Shape, double, double, double)","u":"randomCsrMatrix(org.flag4j.core.Shape,double,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCsrMatrix(Shape, double, double, int)","u":"randomCsrMatrix(org.flag4j.core.Shape,double,double,int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCTensor(Shape)","u":"randomCTensor(org.flag4j.core.Shape)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCTensor(Shape, double, double)","u":"randomCTensor(org.flag4j.core.Shape,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCVector(int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCVector(int, double, double)","u":"randomCVector(int,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomMatrix(int, int)","u":"randomMatrix(int,int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomMatrix(int, int, double, double)","u":"randomMatrix(int,int,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomMatrix(Shape)","u":"randomMatrix(org.flag4j.core.Shape)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomMatrix(Shape, double, double)","u":"randomMatrix(org.flag4j.core.Shape,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomOrthogonalMatrix(int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomSparseCMatrix(int, int, double, double, double)","u":"randomSparseCMatrix(int,int,double,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomSparseCMatrix(int, int, double, double, int)","u":"randomSparseCMatrix(int,int,double,double,int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomSparseCMatrix(Shape, double, double, double)","u":"randomSparseCMatrix(org.flag4j.core.Shape,double,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomSparseCMatrix(Shape, double, double, int)","u":"randomSparseCMatrix(org.flag4j.core.Shape,double,double,int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomSymmetricCooMatrix(int, int, int, double)","u":"randomSymmetricCooMatrix(int,int,int,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomSymmetricCsrMatrix(int, int, int, double)","u":"randomSymmetricCsrMatrix(int,int,int,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomSymmetricMatrix(int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"RandomTensor()","u":"%3Cinit%3E()"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"RandomTensor(long)","u":"%3Cinit%3E(long)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomTensor(Shape)","u":"randomTensor(org.flag4j.core.Shape)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomTensor(Shape, double, double)","u":"randomTensor(org.flag4j.core.Shape,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomTriuMatrix(int, int, int)","u":"randomTriuMatrix(int,int,int)"},{"p":"org.flag4j.rng","c":"RandomArray","l":"randomUniqueIndices(int, int, int)","u":"randomUniqueIndices(int,int,int)"},{"p":"org.flag4j.rng","c":"RandomArray","l":"randomUniqueIndices2D(int, int, int, int, int)","u":"randomUniqueIndices2D(int,int,int,int,int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomUnitaryMatrix(int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomVector(int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomVector(int, double, double)","u":"randomVector(int,double,double)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"RANGE_ERR"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"range(int, int)","u":"range(int,int)"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"rank"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"BackSolver","l":"RANK_CONDITION"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ForwardSolver","l":"RANK_CONDITION"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"re"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"re()"},{"p":"org.flag4j.io","c":"TensorInputStream","l":"read()"},{"p":"org.flag4j.io","c":"TensorInputStream","l":"readMatrix()"},{"p":"org.flag4j.io","c":"TensorReader","l":"readMatrix(String)","u":"readMatrix(java.lang.String)"},{"p":"org.flag4j.io","c":"TensorInputStream","l":"readTensor()"},{"p":"org.flag4j.io","c":"TensorReader","l":"readTensor(String)","u":"readTensor(java.lang.String)"},{"p":"org.flag4j.io","c":"TensorInputStream","l":"readVector()"},{"p":"org.flag4j.io","c":"TensorReader","l":"readVector(String)","u":"readVector(java.lang.String)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"real2ComplexSchur()"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"real2ComplexSchur()"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealBackSolver","l":"RealBackSolver()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealBackSolver","l":"RealBackSolver(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.linalg.decompositions.chol","c":"RealCholesky","l":"RealCholesky()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.chol","c":"RealCholesky","l":"RealCholesky(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseMatrixMultiplication","l":"RealComplexCsrDenseMatrixMultiplication()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseOperations","l":"RealComplexCsrDenseOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.csr.real_complex","c":"RealComplexCsrMatrixMultiplication","l":"RealComplexCsrMatrixMultiplication()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.csr.real_complex","c":"RealComplexCsrOperations","l":"RealComplexCsrOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseElemDiv","l":"RealComplexDenseElemDiv()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseElemMult","l":"RealComplexDenseElemMult()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseEquals","l":"RealComplexDenseEquals()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"RealComplexDenseMatrixMultiplication()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultTranspose","l":"RealComplexDenseMatrixMultTranspose()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseOperations","l":"RealComplexDenseOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseEquals","l":"RealComplexDenseSparseEquals()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"RealComplexDenseSparseMatrixMultiplication()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultTranspose","l":"RealComplexDenseSparseMatrixMultTranspose()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"RealComplexDenseSparseMatrixOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseOperations","l":"RealComplexDenseSparseOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"RealComplexDenseSparseVectorOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseVectorOperations","l":"RealComplexDenseVectorOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseEquals","l":"RealComplexSparseEquals()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixMultiplication","l":"RealComplexSparseMatrixMultiplication()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixOperations","l":"RealComplexSparseMatrixOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseVectorOperations","l":"RealComplexSparseVectorOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrConcats","l":"RealCsrConcats()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.csr.real","c":"RealCsrDenseMatrixMultiplication","l":"RealCsrDenseMatrixMultiplication()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.csr.real","c":"RealCsrDenseOperations","l":"RealCsrDenseOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrEquals","l":"RealCsrEquals()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrManipulations","l":"RealCsrManipulations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrMatrixMultiplication","l":"RealCsrMatrixMultiplication()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrOperations","l":"RealCsrOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrProperties","l":"RealCsrProperties()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseDeterminant","l":"RealDenseDeterminant()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseElemDiv","l":"RealDenseElemDiv()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseElemMult","l":"RealDenseElemMult()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseEquals","l":"RealDenseEquals()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.common","c":"TensorEquals","l":"realDenseLookUp"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultiplication","l":"RealDenseMatrixMultiplication()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher","l":"RealDenseMatrixMultiplyDispatcher()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultTranspose","l":"RealDenseMatrixMultTranspose()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseOperations","l":"RealDenseOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseProperties","l":"RealDenseProperties()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseSetOperations","l":"RealDenseSetOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseEquals","l":"RealDenseSparseEquals()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixMultiplication","l":"RealDenseSparseMatrixMultiplication()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixMultTranspose","l":"RealDenseSparseMatrixMultTranspose()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixOperations","l":"RealDenseSparseMatrixOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseTensorOperations","l":"RealDenseSparseTensorOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseVectorOperations","l":"RealDenseSparseVectorOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"RealDenseTensorBase(Shape, double[])","u":"%3Cinit%3E(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseTensorDot","l":"RealDenseTensorDot()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseTranspose","l":"RealDenseTranspose()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseVectorOperations","l":"RealDenseVectorOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.solvers.exact","c":"RealExactSolver","l":"RealExactSolver()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.solvers.exact","c":"RealExactTensorSolver","l":"RealExactTensorSolver()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealForwardSolver","l":"RealForwardSolver()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealForwardSolver","l":"RealForwardSolver(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealForwardSolver","l":"RealForwardSolver(boolean, boolean)","u":"%3Cinit%3E(boolean,boolean)"},{"p":"org.flag4j.linalg.decompositions.hess","c":"RealHess","l":"RealHess()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.hess","c":"RealHess","l":"RealHess(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.linalg.solvers.lstsq","c":"RealLstsqSolver","l":"RealLstsqSolver()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"RealLU","l":"RealLU()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"RealLU","l":"RealLU(int)","u":"%3Cinit%3E(int)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"RealLU","l":"RealLU(int, double)","u":"%3Cinit%3E(int,double)"},{"p":"org.flag4j.operations.common.real","c":"RealOperations","l":"RealOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.common.real","c":"RealProperties","l":"RealProperties()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.qr","c":"RealQR","l":"RealQR()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.qr","c":"RealQR","l":"RealQR(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"RealSchur()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"RealSchur(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"RealSchur(boolean, long)","u":"%3Cinit%3E(boolean,long)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"RealSchur(long)","u":"%3Cinit%3E(long)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseEquals","l":"RealSparseEquals()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.common","c":"TensorEquals","l":"realSparseLookUp"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseManipulations","l":"RealSparseManipulations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"RealSparseMatrixGetSet()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixManipulations","l":"RealSparseMatrixManipulations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixMultiplication","l":"RealSparseMatrixMultiplication()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixOperations","l":"RealSparseMatrixOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixProperties","l":"RealSparseMatrixProperties()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseNorms","l":"RealSparseNorms()","u":"%3Cinit%3E()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"RealSparseTensorBase(Shape, int, double[], int[], int[]...)","u":"%3Cinit%3E(org.flag4j.core.Shape,int,double[],int[],int[]...)"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"RealSparseTensorBase(Shape, int, double[], int[][])","u":"%3Cinit%3E(org.flag4j.core.Shape,int,double[],int[][])"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseVectorOperations","l":"RealSparseVectorOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.svd","c":"RealSVD","l":"RealSVD()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.svd","c":"RealSVD","l":"RealSVD(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.linalg.decompositions.svd","c":"RealSVD","l":"RealSVD(boolean, boolean)","u":"%3Cinit%3E(boolean,boolean)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"RealUnitaryDecomposition","l":"RealUnitaryDecomposition(int)","u":"%3Cinit%3E(int)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"RealUnitaryDecomposition","l":"RealUnitaryDecomposition(int, boolean)","u":"%3Cinit%3E(int,boolean)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"recip()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"recip()"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"recip()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"recip()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"recip()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"recip()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"recip()"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"recip()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"recip(CNumber[])","u":"recip(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseOperations","l":"recip(double[])"},{"p":"org.flag4j.linalg.decompositions.qr","c":"ComplexQR","l":"reduced"},{"p":"org.flag4j.linalg.decompositions.qr","c":"RealQR","l":"reduced"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"reduced"},{"p":"org.flag4j.linalg","c":"RowEchelon","l":"ref(CMatrix)","u":"ref(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"RowEchelon","l":"ref(Matrix)","u":"ref(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrEquals","l":"removeCloseToZero(CsrCMatrix, List, int[], List, double)","u":"removeCloseToZero(org.flag4j.arrays.sparse.CsrCMatrix,java.util.List,int[],java.util.List,double)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrEquals","l":"removeCloseToZero(CsrMatrix, List, int[], List, double)","u":"removeCloseToZero(org.flag4j.arrays.sparse.CsrMatrix,java.util.List,int[],java.util.List,double)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixManipulations","l":"removeCol(CooCMatrix, int)","u":"removeCol(org.flag4j.arrays.sparse.CooCMatrix,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixManipulations","l":"removeCol(CooMatrix, int)","u":"removeCol(org.flag4j.arrays.sparse.CooMatrix,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"removeCol(int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"removeCol(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"removeCol(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"removeCol(int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"removeCol(int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"removeCol(int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"removeCol(int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixManipulations","l":"removeCols(CooCMatrix, int...)","u":"removeCols(org.flag4j.arrays.sparse.CooCMatrix,int...)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixManipulations","l":"removeCols(CooMatrix, int...)","u":"removeCols(org.flag4j.arrays.sparse.CooMatrix,int...)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"removeCols(int...)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"removeCols(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"removeCols(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"removeCols(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"removeCols(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"removeCols(int...)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"removeCols(int...)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixManipulations","l":"removeRow(CooCMatrix, int)","u":"removeRow(org.flag4j.arrays.sparse.CooCMatrix,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixManipulations","l":"removeRow(CooMatrix, int)","u":"removeRow(org.flag4j.arrays.sparse.CooMatrix,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"removeRow(int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"removeRow(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"removeRow(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"removeRow(int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"removeRow(int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"removeRow(int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"removeRow(int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixManipulations","l":"removeRows(CooCMatrix, int...)","u":"removeRows(org.flag4j.arrays.sparse.CooCMatrix,int...)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixManipulations","l":"removeRows(CooMatrix, int...)","u":"removeRows(org.flag4j.arrays.sparse.CooMatrix,int...)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"removeRows(int...)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"removeRows(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"removeRows(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"removeRows(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"removeRows(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"removeRows(int...)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"removeRows(int...)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"REORDERED"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"REORDERED"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultiplication","l":"reordered(CNumber[], Shape, CNumber[], Shape)","u":"reordered(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"reordered(CNumber[], Shape, double[], Shape)","u":"reordered(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"reordered(double[], Shape, CNumber[], Shape)","u":"reordered(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultiplication","l":"reordered(double[], Shape, double[], Shape)","u":"reordered(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"repeat(int, int)","u":"repeat(int,int)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"repeat(int, int)","u":"repeat(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"repeat(int, int)","u":"repeat(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"repeat(int, int)","u":"repeat(int,int)"},{"p":"org.flag4j.core","c":"VectorMixin","l":"repeat(int, int)","u":"repeat(int,int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"repeat(int, int[])","u":"repeat(int,int[])"},{"p":"org.flag4j.concurrency","c":"Configurations","l":"resetAll()"},{"p":"org.flag4j.io","c":"PrintOptions","l":"resetAll()"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"reshape(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"reshape(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"reshape(int...)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"reshape(int...)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"reshape(int...)"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"reshape(int...)"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"reshape(int...)"},{"p":"org.flag4j.core","c":"TensorManipulationsMixin","l":"reshape(int...)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"reshape(Shape)","u":"reshape(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"reshape(Shape)","u":"reshape(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"reshape(Shape)","u":"reshape(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"reshape(Shape)","u":"reshape(org.flag4j.core.Shape)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"reshape(Shape)","u":"reshape(org.flag4j.core.Shape)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"reshape(Shape)","u":"reshape(org.flag4j.core.Shape)"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"reshape(Shape)","u":"reshape(org.flag4j.core.Shape)"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"reshape(Shape)","u":"reshape(org.flag4j.core.Shape)"},{"p":"org.flag4j.core","c":"TensorManipulationsMixin","l":"reshape(Shape)","u":"reshape(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"rightMult(CMatrix)","u":"rightMult(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"rightMult(CVector)","u":"rightMult(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"rightMult(Matrix)","u":"rightMult(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"rightMult(Vector)","u":"rightMult(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.linalg.transformations","c":"Givens","l":"rightMult2x2Rotator(CMatrix, CMatrix, int, CNumber[])","u":"rightMult2x2Rotator(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CMatrix,int,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.linalg.transformations","c":"Givens","l":"rightMult2x2Rotator(Matrix, Matrix, int, double[])","u":"rightMult2x2Rotator(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Matrix,int,double[])"},{"p":"org.flag4j.linalg.transformations","c":"Householder","l":"rightMultReflector(CMatrix, CNumber[], CNumber, int, int, int)","u":"rightMultReflector(org.flag4j.arrays.dense.CMatrix,org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber,int,int,int)"},{"p":"org.flag4j.linalg.transformations","c":"Householder","l":"rightMultReflector(CMatrix, CVector, CNumber, int, int, int)","u":"rightMultReflector(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CVector,org.flag4j.complex_numbers.CNumber,int,int,int)"},{"p":"org.flag4j.linalg.transformations","c":"Householder","l":"rightMultReflector(Matrix, double[], double, int, int, int)","u":"rightMultReflector(org.flag4j.arrays.dense.Matrix,double[],double,int,int,int)"},{"p":"org.flag4j.linalg.transformations","c":"Householder","l":"rightMultReflector(Matrix, Vector, double, int, int, int)","u":"rightMultReflector(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Vector,double,int,int,int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"rng"},{"p":"org.flag4j.rng","c":"RandomArray","l":"rng"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"ROOT_THREE"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"ROOT_TWO"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"rootThree()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"rootTwo()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"round()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"round()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"round()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"round()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"round()"},{"p":"org.flag4j.core","c":"TensorManipulationsMixin","l":"round()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"round(CNumber)","u":"round(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"round(CNumber, int)","u":"round(org.flag4j.complex_numbers.CNumber,int)"},{"p":"org.flag4j.operations.common.complex","c":"ComplexOperations","l":"round(CNumber[])","u":"round(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.common.complex","c":"ComplexOperations","l":"round(CNumber[], int)","u":"round(org.flag4j.complex_numbers.CNumber[],int)"},{"p":"org.flag4j.operations.common.real","c":"RealOperations","l":"round(double[])"},{"p":"org.flag4j.operations.common.real","c":"RealOperations","l":"round(double[], int)","u":"round(double[],int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"round(int)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"round(int)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"round(int)"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"round(int)"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"round(int)"},{"p":"org.flag4j.core","c":"TensorManipulationsMixin","l":"round(int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"roundToZero()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"roundToZero()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"roundToZero()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"roundToZero()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"roundToZero()"},{"p":"org.flag4j.core","c":"TensorManipulationsMixin","l":"roundToZero()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"roundToZero(CNumber, double)","u":"roundToZero(org.flag4j.complex_numbers.CNumber,double)"},{"p":"org.flag4j.operations.common.complex","c":"ComplexOperations","l":"roundToZero(CNumber[], double)","u":"roundToZero(org.flag4j.complex_numbers.CNumber[],double)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"roundToZero(double)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"roundToZero(double)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"roundToZero(double)"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"roundToZero(double)"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"roundToZero(double)"},{"p":"org.flag4j.core","c":"TensorManipulationsMixin","l":"roundToZero(double)"},{"p":"org.flag4j.operations.common.real","c":"RealOperations","l":"roundToZero(double[], double)","u":"roundToZero(double[],double)"},{"p":"org.flag4j.util","c":"Axis2D","l":"ROW"},{"p":"org.flag4j.util","c":"Axis2D","l":"row()"},{"p":"org.flag4j.linalg","c":"RowEchelon","l":"RowEchelon()","u":"%3Cinit%3E()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"rowIndices"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"rowIndices"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactSolver","l":"rowPermute"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"rowPointers"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"rowPointers"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"rowSwaps"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"rowToString(int, int, List)","u":"rowToString(int,int,java.util.List)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"rowToString(int, int, List)","u":"rowToString(int,int,java.util.List)"},{"p":"org.flag4j.linalg","c":"RowEchelon","l":"rref(CMatrix)","u":"rref(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"RowEchelon","l":"rref(Matrix)","u":"rref(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"S"},{"p":"org.flag4j.core","c":"TensorBase","l":"sameLength(TensorBase, TensorBase, int)","u":"sameLength(org.flag4j.core.TensorBase,org.flag4j.core.TensorBase,int)"},{"p":"org.flag4j.core","c":"TensorBase","l":"sameShape(TensorBase)","u":"sameShape(org.flag4j.core.TensorBase)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"scalDiv(CNumber[], CNumber)","u":"scalDiv(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseOperations","l":"scalDiv(CNumber[], double)","u":"scalDiv(org.flag4j.complex_numbers.CNumber[],double)"},{"p":"org.flag4j.operations.common.complex","c":"ComplexOperations","l":"scalDiv(double[], CNumber)","u":"scalDiv(double[],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseOperations","l":"scalDiv(double[], CNumber)","u":"scalDiv(double[],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.common.real","c":"RealOperations","l":"scalDiv(double[], double)","u":"scalDiv(double[],double)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseOperations","l":"scalDiv(double[], double)","u":"scalDiv(double[],double)"},{"p":"org.flag4j.operations.common.complex","c":"ComplexOperations","l":"scalMult(CNumber[], CNumber)","u":"scalMult(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"scalMult(CNumber[], CNumber)","u":"scalMult(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.common.complex","c":"ComplexOperations","l":"scalMult(CNumber[], CNumber[], CNumber)","u":"scalMult(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.common.complex","c":"ComplexOperations","l":"scalMult(CNumber[], CNumber[], CNumber, int, int)","u":"scalMult(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber,int,int)"},{"p":"org.flag4j.operations.common.complex","c":"ComplexOperations","l":"scalMult(CNumber[], double)","u":"scalMult(org.flag4j.complex_numbers.CNumber[],double)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"scalMult(CNumber[], double)","u":"scalMult(org.flag4j.complex_numbers.CNumber[],double)"},{"p":"org.flag4j.operations.common.complex","c":"ComplexOperations","l":"scalMult(double[], CNumber)","u":"scalMult(double[],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.common.real","c":"RealOperations","l":"scalMult(double[], double)","u":"scalMult(double[],double)"},{"p":"org.flag4j.operations.common.real","c":"RealOperations","l":"scalMult(double[], double[], double)","u":"scalMult(double[],double[],double)"},{"p":"org.flag4j.operations.common.real","c":"RealOperations","l":"scalMult(double[], double[], double, int, int)","u":"scalMult(double[],double[],double,int,int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"Schur(boolean, RandomCNumber, UnitaryDecomposition)","u":"%3Cinit%3E(boolean,org.flag4j.rng.RandomCNumber,org.flag4j.linalg.decompositions.unitary.UnitaryDecomposition)"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher","l":"selectAlgorithm(Shape, Shape)","u":"selectAlgorithm(org.flag4j.core.Shape,org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher","l":"selectAlgorithmTranspose(Shape)","u":"selectAlgorithmTranspose(org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"SEQUENTIAL_SWAPPED_THRESHOLD"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher","l":"SEQUENTIAL_SWAPPED_THRESHOLD"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"set(CNumber, int, int)","u":"set(org.flag4j.complex_numbers.CNumber,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"set(CNumber, int, int)","u":"set(org.flag4j.complex_numbers.CNumber,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"set(CNumber, int, int)","u":"set(org.flag4j.complex_numbers.CNumber,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"set(CNumber, int...)","u":"set(org.flag4j.complex_numbers.CNumber,int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"set(CNumber, int...)","u":"set(org.flag4j.complex_numbers.CNumber,int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"set(CNumber, int...)","u":"set(org.flag4j.complex_numbers.CNumber,int...)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"set(CNumber, int...)","u":"set(org.flag4j.complex_numbers.CNumber,int...)"},{"p":"org.flag4j.core","c":"ComplexTensorMixin","l":"set(CNumber, int...)","u":"set(org.flag4j.complex_numbers.CNumber,int...)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"set(CNumber, int...)","u":"set(org.flag4j.complex_numbers.CNumber,int...)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseSetOperations","l":"set(CNumber[], Shape, CNumber, int...)","u":"set(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber,int...)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseSetOperations","l":"set(CNumber[], Shape, double, int...)","u":"set(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double,int...)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"set(double, int, int)","u":"set(double,int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"set(double, int, int)","u":"set(double,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"set(double, int, int)","u":"set(double,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"set(double, int, int)","u":"set(double,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"set(double, int, int)","u":"set(double,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"set(double, int, int)","u":"set(double,int,int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"set(double, int, int)","u":"set(double,int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"set(Double, int, int)","u":"set(java.lang.Double,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"set(Double, int, int)","u":"set(java.lang.Double,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"set(Double, int, int)","u":"set(java.lang.Double,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"set(double, int...)","u":"set(double,int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"set(double, int...)","u":"set(double,int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"set(double, int...)","u":"set(double,int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"set(double, int...)","u":"set(double,int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"set(double, int...)","u":"set(double,int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"set(double, int...)","u":"set(double,int...)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"set(double, int...)","u":"set(double,int...)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"set(double, int...)","u":"set(double,int...)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"set(double, int...)","u":"set(double,int...)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"set(double, int...)","u":"set(double,int...)"},{"p":"org.flag4j.core","c":"TensorManipulationsMixin","l":"set(double, int...)","u":"set(double,int...)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseSetOperations","l":"set(double[], Shape, double, int...)","u":"set(double[],org.flag4j.core.Shape,double,int...)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"set(X, int, int)","u":"set(X,int,int)"},{"p":"org.flag4j.concurrency","c":"Configurations","l":"setBlockSize(int)"},{"p":"org.flag4j.io","c":"PrintOptions","l":"setCentering(boolean)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setCol(CNumber[], int)","u":"setCol(org.flag4j.complex_numbers.CNumber[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setCol(CNumber[], int)","u":"setCol(org.flag4j.complex_numbers.CNumber[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setCol(CNumber[], int)","u":"setCol(org.flag4j.complex_numbers.CNumber[],int)"},{"p":"org.flag4j.core","c":"ComplexMatrixMixin","l":"setCol(CNumber[], int)","u":"setCol(org.flag4j.complex_numbers.CNumber[],int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setCol(CooCMatrix, int, CNumber[])","u":"setCol(org.flag4j.arrays.sparse.CooCMatrix,int,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setCol(CooCMatrix, int, CooCVector)","u":"setCol(org.flag4j.arrays.sparse.CooCMatrix,int,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setCol(CooCMatrix, int, double[])","u":"setCol(org.flag4j.arrays.sparse.CooCMatrix,int,double[])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setCol(CooCVector, int)","u":"setCol(org.flag4j.arrays.sparse.CooCVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setCol(CooCVector, int)","u":"setCol(org.flag4j.arrays.sparse.CooCVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setCol(CooCVector, int)","u":"setCol(org.flag4j.arrays.sparse.CooCVector,int)"},{"p":"org.flag4j.core","c":"ComplexMatrixMixin","l":"setCol(CooCVector, int)","u":"setCol(org.flag4j.arrays.sparse.CooCVector,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"setCol(CooMatrix, int, CooVector)","u":"setCol(org.flag4j.arrays.sparse.CooMatrix,int,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"setCol(CooMatrix, int, double[])","u":"setCol(org.flag4j.arrays.sparse.CooMatrix,int,double[])"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setCol(CooVector, int)","u":"setCol(org.flag4j.arrays.sparse.CooVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setCol(CooVector, int)","u":"setCol(org.flag4j.arrays.sparse.CooVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setCol(CooVector, int)","u":"setCol(org.flag4j.arrays.sparse.CooVector,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setCol(CVector, int)","u":"setCol(org.flag4j.arrays.dense.CVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setCol(CVector, int)","u":"setCol(org.flag4j.arrays.dense.CVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setCol(CVector, int)","u":"setCol(org.flag4j.arrays.dense.CVector,int)"},{"p":"org.flag4j.core","c":"ComplexMatrixMixin","l":"setCol(CVector, int)","u":"setCol(org.flag4j.arrays.dense.CVector,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setCol(double[], int)","u":"setCol(double[],int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setCol(double[], int)","u":"setCol(double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setCol(double[], int)","u":"setCol(double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setCol(double[], int)","u":"setCol(double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setCol(double[], int)","u":"setCol(double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setCol(double[], int)","u":"setCol(double[],int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setCol(double[], int)","u":"setCol(double[],int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setCol(Double[], int)","u":"setCol(java.lang.Double[],int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setCol(Double[], int)","u":"setCol(java.lang.Double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setCol(Double[], int)","u":"setCol(java.lang.Double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setCol(Double[], int)","u":"setCol(java.lang.Double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setCol(Double[], int)","u":"setCol(java.lang.Double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setCol(Double[], int)","u":"setCol(java.lang.Double[],int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setCol(Double[], int)","u":"setCol(java.lang.Double[],int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setCol(int[], int)","u":"setCol(int[],int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setCol(int[], int)","u":"setCol(int[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setCol(int[], int)","u":"setCol(int[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setCol(int[], int)","u":"setCol(int[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setCol(int[], int)","u":"setCol(int[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setCol(int[], int)","u":"setCol(int[],int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setCol(int[], int)","u":"setCol(int[],int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setCol(Integer[], int)","u":"setCol(java.lang.Integer[],int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setCol(Integer[], int)","u":"setCol(java.lang.Integer[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setCol(Integer[], int)","u":"setCol(java.lang.Integer[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setCol(Integer[], int)","u":"setCol(java.lang.Integer[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setCol(Integer[], int)","u":"setCol(java.lang.Integer[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setCol(Integer[], int)","u":"setCol(java.lang.Integer[],int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setCol(Integer[], int)","u":"setCol(java.lang.Integer[],int)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"setCol(TT, int)","u":"setCol(TT,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setCol(Vector, int)","u":"setCol(org.flag4j.arrays.dense.Vector,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setCol(Vector, int)","u":"setCol(org.flag4j.arrays.dense.Vector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setCol(Vector, int)","u":"setCol(org.flag4j.arrays.dense.Vector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setCol(Vector, int)","u":"setCol(org.flag4j.arrays.dense.Vector,int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setCol(X[], int)","u":"setCol(X[],int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"setExceptionalThreshold(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"setExceptionalThreshold(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"setExceptionalThreshold(int)"},{"p":"org.flag4j.io","c":"PrintOptions","l":"setMaxColumns(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"setMaxIterationFactor(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"setMaxIterationFactor(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"setMaxIterationFactor(int)"},{"p":"org.flag4j.io","c":"PrintOptions","l":"setMaxRows(int)"},{"p":"org.flag4j.io","c":"PrintOptions","l":"setMaxRowsCols(int)"},{"p":"org.flag4j.io","c":"PrintOptions","l":"setMaxRowsCols(int, int)","u":"setMaxRowsCols(int,int)"},{"p":"org.flag4j.concurrency","c":"Configurations","l":"setMinRecursiveSize(int)"},{"p":"org.flag4j.concurrency","c":"Configurations","l":"setNumThreads(int)"},{"p":"org.flag4j.concurrency","c":"Configurations","l":"setNumThreadsAsAvailableProcessors()"},{"p":"org.flag4j.io","c":"PrintOptions","l":"setPadding(int)"},{"p":"org.flag4j.concurrency","c":"ThreadManager","l":"setParallelismLevel(int)"},{"p":"org.flag4j.io","c":"PrintOptions","l":"setPrecision(int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setRow(CNumber[], int)","u":"setRow(org.flag4j.complex_numbers.CNumber[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setRow(CNumber[], int)","u":"setRow(org.flag4j.complex_numbers.CNumber[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setRow(CNumber[], int)","u":"setRow(org.flag4j.complex_numbers.CNumber[],int)"},{"p":"org.flag4j.core","c":"ComplexMatrixMixin","l":"setRow(CNumber[], int)","u":"setRow(org.flag4j.complex_numbers.CNumber[],int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setRow(CooCMatrix, int, CNumber[])","u":"setRow(org.flag4j.arrays.sparse.CooCMatrix,int,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setRow(CooCMatrix, int, CooCVector)","u":"setRow(org.flag4j.arrays.sparse.CooCMatrix,int,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setRow(CooCMatrix, int, double[])","u":"setRow(org.flag4j.arrays.sparse.CooCMatrix,int,double[])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setRow(CooCVector, int)","u":"setRow(org.flag4j.arrays.sparse.CooCVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setRow(CooCVector, int)","u":"setRow(org.flag4j.arrays.sparse.CooCVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setRow(CooCVector, int)","u":"setRow(org.flag4j.arrays.sparse.CooCVector,int)"},{"p":"org.flag4j.core","c":"ComplexMatrixMixin","l":"setRow(CooCVector, int)","u":"setRow(org.flag4j.arrays.sparse.CooCVector,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"setRow(CooMatrix, int, double[])","u":"setRow(org.flag4j.arrays.sparse.CooMatrix,int,double[])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setRow(CVector, int)","u":"setRow(org.flag4j.arrays.dense.CVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setRow(CVector, int)","u":"setRow(org.flag4j.arrays.dense.CVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setRow(CVector, int)","u":"setRow(org.flag4j.arrays.dense.CVector,int)"},{"p":"org.flag4j.core","c":"ComplexMatrixMixin","l":"setRow(CVector, int)","u":"setRow(org.flag4j.arrays.dense.CVector,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setRow(double[], int)","u":"setRow(double[],int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setRow(double[], int)","u":"setRow(double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setRow(double[], int)","u":"setRow(double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setRow(double[], int)","u":"setRow(double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setRow(double[], int)","u":"setRow(double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setRow(double[], int)","u":"setRow(double[],int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setRow(double[], int)","u":"setRow(double[],int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setRow(Double[], int)","u":"setRow(java.lang.Double[],int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setRow(Double[], int)","u":"setRow(java.lang.Double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setRow(Double[], int)","u":"setRow(java.lang.Double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setRow(Double[], int)","u":"setRow(java.lang.Double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setRow(Double[], int)","u":"setRow(java.lang.Double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setRow(Double[], int)","u":"setRow(java.lang.Double[],int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setRow(Double[], int)","u":"setRow(java.lang.Double[],int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setRow(int[], int)","u":"setRow(int[],int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setRow(int[], int)","u":"setRow(int[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setRow(int[], int)","u":"setRow(int[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setRow(int[], int)","u":"setRow(int[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setRow(int[], int)","u":"setRow(int[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setRow(int[], int)","u":"setRow(int[],int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setRow(int[], int)","u":"setRow(int[],int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setRow(Integer[], int)","u":"setRow(java.lang.Integer[],int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setRow(Integer[], int)","u":"setRow(java.lang.Integer[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setRow(Integer[], int)","u":"setRow(java.lang.Integer[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setRow(Integer[], int)","u":"setRow(java.lang.Integer[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setRow(Integer[], int)","u":"setRow(java.lang.Integer[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setRow(Integer[], int)","u":"setRow(java.lang.Integer[],int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setRow(Integer[], int)","u":"setRow(java.lang.Integer[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setRow(Vector, int)","u":"setRow(org.flag4j.arrays.dense.Vector,int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setRow(X[], int)","u":"setRow(X[],int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSlice(CMatrix, int, int)","u":"setSlice(org.flag4j.arrays.dense.CMatrix,int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSlice(CNumber[][], int, int)","u":"setSlice(org.flag4j.complex_numbers.CNumber[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setSlice(CNumber[][], int, int)","u":"setSlice(org.flag4j.complex_numbers.CNumber[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setSlice(CNumber[][], int, int)","u":"setSlice(org.flag4j.complex_numbers.CNumber[][],int,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setSlice(CooCMatrix, CNumber[], int, int, int[], int[], int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.complex_numbers.CNumber[],int,int,int[],int[],int,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setSlice(CooCMatrix, CNumber[][], int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.complex_numbers.CNumber[][],int,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setSlice(CooCMatrix, CooCMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooCMatrix,int,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setSlice(CooCMatrix, CooMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooMatrix,int,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setSlice(CooCMatrix, double[], int, int, int[], int[], int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooCMatrix,double[],int,int,int[],int[],int,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setSlice(CooCMatrix, double[][], int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooCMatrix,double[][],int,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setSlice(CooCMatrix, Double[][], int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooCMatrix,java.lang.Double[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSlice(CooCMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooCMatrix,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setSlice(CooCMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooCMatrix,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setSlice(CooCMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooCMatrix,int,int)"},{"p":"org.flag4j.core","c":"ComplexMatrixMixin","l":"setSlice(CooCMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooCMatrix,int,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setSlice(CooCMatrix, int[][], int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooCMatrix,int[][],int,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setSlice(CooCMatrix, Integer[][], int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooCMatrix,java.lang.Integer[][],int,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setSlice(CooCMatrix, Matrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.dense.Matrix,int,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"setSlice(CooMatrix, CooMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooMatrix,int,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"setSlice(CooMatrix, double[], int, int, int[], int[], int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooMatrix,double[],int,int,int[],int[],int,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"setSlice(CooMatrix, double[][], int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooMatrix,double[][],int,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"setSlice(CooMatrix, Double[][], int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooMatrix,java.lang.Double[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSlice(CooMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooMatrix,int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setSlice(CooMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooMatrix,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setSlice(CooMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooMatrix,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setSlice(CooMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooMatrix,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setSlice(CooMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooMatrix,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setSlice(CooMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooMatrix,int,int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setSlice(CooMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooMatrix,int,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"setSlice(CooMatrix, int[][], int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooMatrix,int[][],int,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"setSlice(CooMatrix, Integer[][], int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooMatrix,java.lang.Integer[][],int,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"setSlice(CooMatrix, Matrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.dense.Matrix,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setSlice(CsrCMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CsrCMatrix,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setSlice(CsrMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CsrMatrix,int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSlice(double[][], int, int)","u":"setSlice(double[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setSlice(double[][], int, int)","u":"setSlice(double[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setSlice(double[][], int, int)","u":"setSlice(double[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setSlice(double[][], int, int)","u":"setSlice(double[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setSlice(double[][], int, int)","u":"setSlice(double[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setSlice(double[][], int, int)","u":"setSlice(double[][],int,int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setSlice(double[][], int, int)","u":"setSlice(double[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSlice(Double[][], int, int)","u":"setSlice(java.lang.Double[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setSlice(Double[][], int, int)","u":"setSlice(java.lang.Double[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setSlice(Double[][], int, int)","u":"setSlice(java.lang.Double[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setSlice(Double[][], int, int)","u":"setSlice(java.lang.Double[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setSlice(Double[][], int, int)","u":"setSlice(java.lang.Double[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setSlice(Double[][], int, int)","u":"setSlice(java.lang.Double[][],int,int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setSlice(Double[][], int, int)","u":"setSlice(java.lang.Double[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSlice(int[][], int, int)","u":"setSlice(int[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setSlice(int[][], int, int)","u":"setSlice(int[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setSlice(int[][], int, int)","u":"setSlice(int[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setSlice(int[][], int, int)","u":"setSlice(int[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setSlice(int[][], int, int)","u":"setSlice(int[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setSlice(int[][], int, int)","u":"setSlice(int[][],int,int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setSlice(int[][], int, int)","u":"setSlice(int[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSlice(Integer[][], int, int)","u":"setSlice(java.lang.Integer[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setSlice(Integer[][], int, int)","u":"setSlice(java.lang.Integer[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setSlice(Integer[][], int, int)","u":"setSlice(java.lang.Integer[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setSlice(Integer[][], int, int)","u":"setSlice(java.lang.Integer[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setSlice(Integer[][], int, int)","u":"setSlice(java.lang.Integer[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setSlice(Integer[][], int, int)","u":"setSlice(java.lang.Integer[][],int,int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setSlice(Integer[][], int, int)","u":"setSlice(java.lang.Integer[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSlice(Matrix, int, int)","u":"setSlice(org.flag4j.arrays.dense.Matrix,int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setSlice(Matrix, int, int)","u":"setSlice(org.flag4j.arrays.dense.Matrix,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setSlice(Matrix, int, int)","u":"setSlice(org.flag4j.arrays.dense.Matrix,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setSlice(Matrix, int, int)","u":"setSlice(org.flag4j.arrays.dense.Matrix,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setSlice(Matrix, int, int)","u":"setSlice(org.flag4j.arrays.dense.Matrix,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setSlice(Matrix, int, int)","u":"setSlice(org.flag4j.arrays.dense.Matrix,int,int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setSlice(Matrix, int, int)","u":"setSlice(org.flag4j.arrays.dense.Matrix,int,int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setSlice(T, int, int)","u":"setSlice(T,int,int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setSlice(X[][], int, int)","u":"setSlice(X[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSliceCopy(CMatrix, int, int)","u":"setSliceCopy(org.flag4j.arrays.dense.CMatrix,int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSliceCopy(CNumber[][], int, int)","u":"setSliceCopy(org.flag4j.complex_numbers.CNumber[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSliceCopy(CooCMatrix, int, int)","u":"setSliceCopy(org.flag4j.arrays.sparse.CooCMatrix,int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSliceCopy(CooMatrix, int, int)","u":"setSliceCopy(org.flag4j.arrays.sparse.CooMatrix,int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setSliceCopy(CooMatrix, int, int)","u":"setSliceCopy(org.flag4j.arrays.sparse.CooMatrix,int,int)"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"setSliceCopy(CooMatrix, int, int)","u":"setSliceCopy(org.flag4j.arrays.sparse.CooMatrix,int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSliceCopy(double[][], int, int)","u":"setSliceCopy(double[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setSliceCopy(double[][], int, int)","u":"setSliceCopy(double[][],int,int)"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"setSliceCopy(double[][], int, int)","u":"setSliceCopy(double[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSliceCopy(Double[][], int, int)","u":"setSliceCopy(java.lang.Double[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setSliceCopy(Double[][], int, int)","u":"setSliceCopy(java.lang.Double[][],int,int)"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"setSliceCopy(Double[][], int, int)","u":"setSliceCopy(java.lang.Double[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSliceCopy(int[][], int, int)","u":"setSliceCopy(int[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setSliceCopy(int[][], int, int)","u":"setSliceCopy(int[][],int,int)"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"setSliceCopy(int[][], int, int)","u":"setSliceCopy(int[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSliceCopy(Integer[][], int, int)","u":"setSliceCopy(java.lang.Integer[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setSliceCopy(Integer[][], int, int)","u":"setSliceCopy(java.lang.Integer[][],int,int)"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"setSliceCopy(Integer[][], int, int)","u":"setSliceCopy(java.lang.Integer[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSliceCopy(Matrix, int, int)","u":"setSliceCopy(org.flag4j.arrays.dense.Matrix,int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setSliceCopy(Matrix, int, int)","u":"setSliceCopy(org.flag4j.arrays.dense.Matrix,int,int)"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"setSliceCopy(Matrix, int, int)","u":"setSliceCopy(org.flag4j.arrays.dense.Matrix,int,int)"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"setSliceCopy(T, int, int)","u":"setSliceCopy(T,int,int)"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"setSliceCopy(X[][], int, int)","u":"setSliceCopy(X[][],int,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setSliceParamCheck(T, int, int, int, int)","u":"setSliceParamCheck(T,int,int,int,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setSliceParamCheck(T, U, int, int)","u":"setSliceParamCheck(T,U,int,int)"},{"p":"org.flag4j.linalg.decompositions.hess","c":"SymmHess","l":"setUp(Matrix)","u":"setUp(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"setUp(T)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"setUp(T)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"setUpArrays()"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"setUpArrays()"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"setUpArrays()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseSetOperations","l":"setValues(CNumber[], CNumber[])","u":"setValues(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setValues(CNumber[][])","u":"setValues(org.flag4j.complex_numbers.CNumber[][])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseSetOperations","l":"setValues(CNumber[][], CNumber[])","u":"setValues(org.flag4j.complex_numbers.CNumber[][],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseSetOperations","l":"setValues(double[], CNumber[])","u":"setValues(double[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseSetOperations","l":"setValues(Double[], CNumber[])","u":"setValues(java.lang.Double[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseSetOperations","l":"setValues(double[], double[])","u":"setValues(double[],double[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseSetOperations","l":"setValues(Double[], double[])","u":"setValues(java.lang.Double[],double[])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setValues(double[][])"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setValues(double[][])"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"setValues(double[][])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setValues(Double[][])","u":"setValues(java.lang.Double[][])"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setValues(Double[][])","u":"setValues(java.lang.Double[][])"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"setValues(Double[][])","u":"setValues(java.lang.Double[][])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseSetOperations","l":"setValues(double[][], CNumber[])","u":"setValues(double[][],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseSetOperations","l":"setValues(Double[][], CNumber[])","u":"setValues(java.lang.Double[][],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseSetOperations","l":"setValues(double[][], double[])","u":"setValues(double[][],double[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseSetOperations","l":"setValues(Double[][], double[])","u":"setValues(java.lang.Double[][],double[])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseSetOperations","l":"setValues(int[], CNumber[])","u":"setValues(int[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseSetOperations","l":"setValues(int[], double[])","u":"setValues(int[],double[])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setValues(int[][])"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setValues(int[][])"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"setValues(int[][])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseSetOperations","l":"setValues(int[][], CNumber[])","u":"setValues(int[][],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseSetOperations","l":"setValues(int[][], double[])","u":"setValues(int[][],double[])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseSetOperations","l":"setValues(Integer[], CNumber[])","u":"setValues(java.lang.Integer[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseSetOperations","l":"setValues(Integer[], double[])","u":"setValues(java.lang.Integer[],double[])"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setValues(Integer[][])","u":"setValues(java.lang.Integer[][])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseSetOperations","l":"setValues(Integer[][], CNumber[])","u":"setValues(java.lang.Integer[][],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseSetOperations","l":"setValues(Integer[][], double[])","u":"setValues(java.lang.Integer[][],double[])"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"setValues(X[][])"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"sgn(CNumber)","u":"sgn(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core","c":"TensorBase","l":"shape"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"SHAPE_BROADCAST_ERR"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"SHAPE_ENTRIES_ERR"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"SHAPE_RANK_ERR"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"shape()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"shape()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"shape()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"shape()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"shape()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"shape()"},{"p":"org.flag4j.arrays.sparse","c":"SymmTriDiagonal","l":"shape()"},{"p":"org.flag4j.core","c":"MatrixMixin","l":"shape()"},{"p":"org.flag4j.core","c":"Shape","l":"Shape(boolean, int...)","u":"%3Cinit%3E(boolean,int...)"},{"p":"org.flag4j.core","c":"Shape","l":"Shape(boolean, Shape)","u":"%3Cinit%3E(boolean,org.flag4j.core.Shape)"},{"p":"org.flag4j.core","c":"Shape","l":"Shape(int...)","u":"%3Cinit%3E(int...)"},{"p":"org.flag4j.core","c":"Shape","l":"Shape(Shape)","u":"%3Cinit%3E(org.flag4j.core.Shape)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"shapeEntriesError(Shape, int)","u":"shapeEntriesError(org.flag4j.core.Shape,int)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"shapeRankErr(int, int)","u":"shapeRankErr(int,int)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"ComplexUnitaryDecomposition","l":"shift"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"RealUnitaryDecomposition","l":"shift"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"shift(int, int[])","u":"shift(int,int[])"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"shiftCol"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"shiftRange(int, int[], int, int)","u":"shiftRange(int,int[],int,int)"},{"p":"org.flag4j.rng","c":"RandomArray","l":"shuffle(double[])"},{"p":"org.flag4j.rng","c":"RandomArray","l":"shuffle(int[])"},{"p":"org.flag4j.rng","c":"RandomArray","l":"shuffle(Object[])","u":"shuffle(java.lang.Object[])"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"sin(CNumber)","u":"sin(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"sin(double)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"sinceLastExceptional"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher","l":"singletonInstance"},{"p":"org.flag4j.util.exceptions","c":"SingularMatrixException","l":"SingularMatrixException()","u":"%3Cinit%3E()"},{"p":"org.flag4j.util.exceptions","c":"SingularMatrixException","l":"SingularMatrixException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"sinh(CNumber)","u":"sinh(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"sinh(double)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"size"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"size"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"size"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"size"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"size"},{"p":"org.flag4j.arrays.sparse","c":"SymmTriDiagonal","l":"size"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"size()"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"size()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"size()"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"size()"},{"p":"org.flag4j.core","c":"VectorMixin","l":"size()"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexBackSolver","l":"solve(CMatrix, CMatrix)","u":"solve(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexForwardSolver","l":"solve(CMatrix, CMatrix)","u":"solve(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexBackSolver","l":"solve(CMatrix, CVector)","u":"solve(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexForwardSolver","l":"solve(CMatrix, CVector)","u":"solve(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealBackSolver","l":"solve(Matrix, Matrix)","u":"solve(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealForwardSolver","l":"solve(Matrix, Matrix)","u":"solve(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealBackSolver","l":"solve(Matrix, Vector)","u":"solve(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealForwardSolver","l":"solve(Matrix, Vector)","u":"solve(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactSolver","l":"solve(T, T)","u":"solve(T,T)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactTensorSolver","l":"solve(T, T)","u":"solve(T,T)"},{"p":"org.flag4j.linalg.solvers","c":"LinearSolver","l":"solve(T, T)","u":"solve(T,T)"},{"p":"org.flag4j.linalg.solvers","c":"LinearTensorSolver","l":"solve(T, T)","u":"solve(T,T)"},{"p":"org.flag4j.linalg.solvers.lstsq","c":"LstsqSolver","l":"solve(T, T)","u":"solve(T,T)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactSolver","l":"solve(T, U)","u":"solve(T,U)"},{"p":"org.flag4j.linalg.solvers","c":"LinearSolver","l":"solve(T, U)","u":"solve(T,U)"},{"p":"org.flag4j.linalg.solvers.lstsq","c":"LstsqSolver","l":"solve(T, U)","u":"solve(T,U)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexBackSolver","l":"solveIdentity(CMatrix)","u":"solveIdentity(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexForwardSolver","l":"solveIdentity(CMatrix)","u":"solveIdentity(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealBackSolver","l":"solveIdentity(Matrix)","u":"solveIdentity(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealForwardSolver","l":"solveIdentity(Matrix)","u":"solveIdentity(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexBackSolver","l":"solveLower(CMatrix, CMatrix)","u":"solveLower(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexForwardSolver","l":"solveLower(CMatrix, CMatrix)","u":"solveLower(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexForwardSolver","l":"solveLower(CMatrix, CVector)","u":"solveLower(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealBackSolver","l":"solveLower(Matrix, Matrix)","u":"solveLower(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealForwardSolver","l":"solveLower(Matrix, Matrix)","u":"solveLower(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealForwardSolver","l":"solveLower(Matrix, Vector)","u":"solveLower(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexForwardSolver","l":"solveLowerIdentity(CMatrix)","u":"solveLowerIdentity(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealForwardSolver","l":"solveLowerIdentity(Matrix)","u":"solveLowerIdentity(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexForwardSolver","l":"solveUnitLower(CMatrix, CMatrix)","u":"solveUnitLower(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexForwardSolver","l":"solveUnitLower(CMatrix, CVector)","u":"solveUnitLower(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealForwardSolver","l":"solveUnitLower(Matrix, Matrix)","u":"solveUnitLower(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealForwardSolver","l":"solveUnitLower(Matrix, Vector)","u":"solveUnitLower(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexForwardSolver","l":"solveUnitLowerIdentity(CMatrix)","u":"solveUnitLowerIdentity(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealForwardSolver","l":"solveUnitLowerIdentity(Matrix)","u":"solveUnitLowerIdentity(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"sortIndices()"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"sortIndices()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"sortIndices()"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"sortIndices()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"sortIndices()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"sortIndices()"},{"p":"org.flag4j.core.sparse_base","c":"SparseTensorMixin","l":"sortIndices()"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"SparseDataWrapper(T[], int[][], boolean)","u":"%3Cinit%3E(T[],int[][],boolean)"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseElementSearch","l":"SparseElementSearch()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"sparseSort()"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"sparseSortHelper(int, int, int)","u":"sparseSortHelper(int,int,int)"},{"p":"org.flag4j.core.sparse_base","c":"SparseTensorBase","l":"SparseTensorBase(Shape, int, D, int[], int[]...)","u":"%3Cinit%3E(org.flag4j.core.Shape,int,D,int[],int[]...)"},{"p":"org.flag4j.core.sparse_base","c":"SparseTensorBase","l":"SparseTensorBase(Shape, int, D, int[][])","u":"%3Cinit%3E(org.flag4j.core.Shape,int,D,int[][])"},{"p":"org.flag4j.arrays.sparse","c":"SparseUtils","l":"SparseUtils()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseUtils","l":"SparseUtils()","u":"%3Cinit%3E()"},{"p":"org.flag4j.core.sparse_base","c":"SparseTensorBase","l":"sparsity()"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"splice(CNumber[], CNumber[], int)","u":"splice(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber[],int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"splice(CNumber[], double[], int)","u":"splice(org.flag4j.complex_numbers.CNumber[],double[],int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"splice(double[], CNumber[], int)","u":"splice(double[],org.flag4j.complex_numbers.CNumber[],int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"splice(double[], double[], int)","u":"splice(double[],double[],int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"splice(int[], int[], int)","u":"splice(int[],int[],int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"splice(List, CNumber[], int)","u":"splice(java.util.List,org.flag4j.complex_numbers.CNumber[],int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"splice(List, double[], int)","u":"splice(java.util.List,double[],int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"splice(List, int[], int)","u":"splice(java.util.List,int[],int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"spliceDouble(List, double[], int)","u":"spliceDouble(java.util.List,double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"sqrt()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"sqrt()"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"sqrt()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"sqrt()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"sqrt()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"sqrt()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"sqrt()"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"sqrt()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"sqrt(CNumber)","u":"sqrt(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.common.complex","c":"ComplexOperations","l":"sqrt(CNumber[])","u":"sqrt(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"sqrt(double)"},{"p":"org.flag4j.operations.common.complex","c":"ComplexOperations","l":"sqrt(double[])"},{"p":"org.flag4j.operations.common.real","c":"RealOperations","l":"sqrt(double[])"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"sqrtComplex()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"sqrtComplex()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"sqrtComplex()"},{"p":"org.flag4j.core","c":"RealMatrixMixin","l":"sqrtComplex()"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"SQUARE_SHAPE_ERR"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"SQUARENESS_RATIO"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher","l":"SQUARENESS_RATIO"},{"p":"org.flag4j.linalg.transformations","c":"Givens","l":"stableTrigVals(double, double)","u":"stableTrigVals(double,double)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"stack(CMatrix)","u":"stack(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"stack(CMatrix)","u":"stack(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"stack(CMatrix)","u":"stack(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"stack(CMatrix)","u":"stack(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"stack(CMatrix)","u":"stack(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"stack(CMatrix)","u":"stack(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CMatrix)","u":"stack(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CMatrix, int)","u":"stack(org.flag4j.arrays.dense.CMatrix,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"stack(CooCMatrix)","u":"stack(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"stack(CooCMatrix)","u":"stack(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"stack(CooCMatrix)","u":"stack(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"stack(CooCMatrix)","u":"stack(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"stack(CooCMatrix)","u":"stack(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"stack(CooCMatrix)","u":"stack(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CooCMatrix)","u":"stack(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CooCMatrix, int)","u":"stack(org.flag4j.arrays.sparse.CooCMatrix,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"stack(CooCVector)","u":"stack(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"stack(CooCVector)","u":"stack(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"stack(CooCVector)","u":"stack(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"stack(CooCVector)","u":"stack(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"stack(CooCVector)","u":"stack(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"stack(CooCVector)","u":"stack(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"stack(CooCVector)","u":"stack(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"stack(CooCVector)","u":"stack(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"stack(CooCVector)","u":"stack(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"stack(CooCVector)","u":"stack(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CooCVector)","u":"stack(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"stack(CooCVector)","u":"stack(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"stack(CooCVector, int)","u":"stack(org.flag4j.arrays.sparse.CooCVector,int)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"stack(CooCVector, int)","u":"stack(org.flag4j.arrays.sparse.CooCVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"stack(CooCVector, int)","u":"stack(org.flag4j.arrays.sparse.CooCVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"stack(CooCVector, int)","u":"stack(org.flag4j.arrays.sparse.CooCVector,int)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CooCVector, int)","u":"stack(org.flag4j.arrays.sparse.CooCVector,int)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"stack(CooCVector, int)","u":"stack(org.flag4j.arrays.sparse.CooCVector,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"stack(CooMatrix)","u":"stack(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"stack(CooMatrix)","u":"stack(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"stack(CooMatrix)","u":"stack(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"stack(CooMatrix)","u":"stack(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"stack(CooMatrix)","u":"stack(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"stack(CooMatrix)","u":"stack(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CooMatrix)","u":"stack(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CooMatrix, int)","u":"stack(org.flag4j.arrays.sparse.CooMatrix,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"stack(CooVector)","u":"stack(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"stack(CooVector)","u":"stack(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"stack(CooVector)","u":"stack(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"stack(CooVector)","u":"stack(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"stack(CooVector)","u":"stack(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"stack(CooVector)","u":"stack(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"stack(CooVector)","u":"stack(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"stack(CooVector)","u":"stack(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"stack(CooVector)","u":"stack(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"stack(CooVector)","u":"stack(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CooVector)","u":"stack(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"stack(CooVector)","u":"stack(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"stack(CooVector, int)","u":"stack(org.flag4j.arrays.sparse.CooVector,int)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"stack(CooVector, int)","u":"stack(org.flag4j.arrays.sparse.CooVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"stack(CooVector, int)","u":"stack(org.flag4j.arrays.sparse.CooVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"stack(CooVector, int)","u":"stack(org.flag4j.arrays.sparse.CooVector,int)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CooVector, int)","u":"stack(org.flag4j.arrays.sparse.CooVector,int)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"stack(CooVector, int)","u":"stack(org.flag4j.arrays.sparse.CooVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"stack(CsrCMatrix)","u":"stack(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CsrCMatrix)","u":"stack(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CsrCMatrix, int)","u":"stack(org.flag4j.arrays.sparse.CsrCMatrix,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"stack(CsrMatrix)","u":"stack(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CsrMatrix)","u":"stack(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CsrMatrix, int)","u":"stack(org.flag4j.arrays.sparse.CsrMatrix,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"stack(CVector)","u":"stack(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"stack(CVector)","u":"stack(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"stack(CVector)","u":"stack(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"stack(CVector)","u":"stack(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"stack(CVector)","u":"stack(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"stack(CVector)","u":"stack(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"stack(CVector)","u":"stack(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"stack(CVector)","u":"stack(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"stack(CVector)","u":"stack(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"stack(CVector)","u":"stack(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CVector)","u":"stack(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"stack(CVector)","u":"stack(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"stack(CVector, int)","u":"stack(org.flag4j.arrays.dense.CVector,int)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"stack(CVector, int)","u":"stack(org.flag4j.arrays.dense.CVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"stack(CVector, int)","u":"stack(org.flag4j.arrays.dense.CVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"stack(CVector, int)","u":"stack(org.flag4j.arrays.dense.CVector,int)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CVector, int)","u":"stack(org.flag4j.arrays.dense.CVector,int)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"stack(CVector, int)","u":"stack(org.flag4j.arrays.dense.CVector,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"stack(Matrix)","u":"stack(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"stack(Matrix)","u":"stack(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"stack(Matrix)","u":"stack(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"stack(Matrix)","u":"stack(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"stack(Matrix)","u":"stack(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"stack(Matrix)","u":"stack(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(Matrix)","u":"stack(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(Matrix, int)","u":"stack(org.flag4j.arrays.dense.Matrix,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"stack(Vector)","u":"stack(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"stack(Vector)","u":"stack(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"stack(Vector)","u":"stack(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"stack(Vector)","u":"stack(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"stack(Vector)","u":"stack(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"stack(Vector)","u":"stack(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"stack(Vector)","u":"stack(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"stack(Vector)","u":"stack(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"stack(Vector)","u":"stack(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"stack(Vector)","u":"stack(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(Vector)","u":"stack(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"stack(Vector)","u":"stack(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"stack(Vector, int)","u":"stack(org.flag4j.arrays.dense.Vector,int)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"stack(Vector, int)","u":"stack(org.flag4j.arrays.dense.Vector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"stack(Vector, int)","u":"stack(org.flag4j.arrays.dense.Vector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"stack(Vector, int)","u":"stack(org.flag4j.arrays.dense.Vector,int)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(Vector, int)","u":"stack(org.flag4j.arrays.dense.Vector,int)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"stack(Vector, int)","u":"stack(org.flag4j.arrays.dense.Vector,int)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"STANDARD"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"STANDARD"},{"p":"org.flag4j.operations","c":"TransposeDispatcher.Algorithm","l":"STANDARD"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"STANDARD_THRESHOLD"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"STANDARD_VECTOR"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"STANDARD_VECTOR"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseMatrixMultiplication","l":"standard(CMatrix, CsrMatrix)","u":"standard(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixMultiplication","l":"standard(CNumber[], int[], int[], Shape, CNumber[], int[], int[], Shape)","u":"standard(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixMultiplication","l":"standard(CNumber[], int[], int[], Shape, CNumber[], Shape)","u":"standard(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixMultiplication","l":"standard(CNumber[], int[], int[], Shape, double[], int[], int[], Shape)","u":"standard(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,double[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"standard(CNumber[], int[], int[], Shape, double[], Shape)","u":"standard(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixMultiplication","l":"standard(CNumber[], Shape, CNumber[], int[], int[], Shape)","u":"standard(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultiplication","l":"standard(CNumber[], Shape, CNumber[], Shape)","u":"standard(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"standard(CNumber[], Shape, double[], int[], int[], Shape)","u":"standard(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"standard(CNumber[], Shape, double[], Shape)","u":"standard(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"standard(CNumber[], Shape, int, int)","u":"standard(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,int,int)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"standard(CNumber[], Shape, int[])","u":"standard(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,int[])"},{"p":"org.flag4j.operations.dense_sparse.csr.complex","c":"ComplexCsrDenseMatrixMultiplication","l":"standard(CsrCMatrix, CMatrix)","u":"standard(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrMatrixMultiplication","l":"standard(CsrCMatrix, CsrCMatrix)","u":"standard(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.operations.sparse.csr.real_complex","c":"RealComplexCsrMatrixMultiplication","l":"standard(CsrCMatrix, CsrMatrix)","u":"standard(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseMatrixMultiplication","l":"standard(CsrCMatrix, Matrix)","u":"standard(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseMatrixMultiplication","l":"standard(CsrMatrix, CMatrix)","u":"standard(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.sparse.csr.real_complex","c":"RealComplexCsrMatrixMultiplication","l":"standard(CsrMatrix, CsrCMatrix)","u":"standard(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrMatrixMultiplication","l":"standard(CsrMatrix, CsrMatrix)","u":"standard(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.operations.dense_sparse.csr.real","c":"RealCsrDenseMatrixMultiplication","l":"standard(CsrMatrix, Matrix)","u":"standard(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixMultiplication","l":"standard(double[], int[], int[], Shape, CNumber[], int[], int[], Shape)","u":"standard(double[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"standard(double[], int[], int[], Shape, CNumber[], Shape)","u":"standard(double[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixMultiplication","l":"standard(double[], int[], int[], Shape, double[], int[], int[], Shape)","u":"standard(double[],int[],int[],org.flag4j.core.Shape,double[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixMultiplication","l":"standard(double[], int[], int[], Shape, double[], Shape)","u":"standard(double[],int[],int[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"standard(double[], Shape, CNumber[], int[], int[], Shape)","u":"standard(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"standard(double[], Shape, CNumber[], Shape)","u":"standard(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixMultiplication","l":"standard(double[], Shape, double[], int[], int[], Shape)","u":"standard(double[],org.flag4j.core.Shape,double[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultiplication","l":"standard(double[], Shape, double[], Shape)","u":"standard(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseTranspose","l":"standard(double[], Shape, int, int)","u":"standard(double[],org.flag4j.core.Shape,int,int)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseTranspose","l":"standard(double[], Shape, int[])","u":"standard(double[],org.flag4j.core.Shape,int[])"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseMatrixMultiplication","l":"standard(Matrix, CsrCMatrix)","u":"standard(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.operations.dense_sparse.csr.real","c":"RealCsrDenseMatrixMultiplication","l":"standard(Matrix, CsrMatrix)","u":"standard(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrMatrixMultiplication","l":"standardAsSparse(CsrCMatrix, CsrCMatrix)","u":"standardAsSparse(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.operations.sparse.csr.real_complex","c":"RealComplexCsrMatrixMultiplication","l":"standardAsSparse(CsrCMatrix, CsrMatrix)","u":"standardAsSparse(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.operations.sparse.csr.real_complex","c":"RealComplexCsrMatrixMultiplication","l":"standardAsSparse(CsrMatrix, CsrCMatrix)","u":"standardAsSparse(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrMatrixMultiplication","l":"standardAsSparse(CsrMatrix, CsrMatrix)","u":"standardAsSparse(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"standardConcurrent(CNumber[], Shape, int, int)","u":"standardConcurrent(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,int,int)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"standardConcurrent(CNumber[], Shape, int[])","u":"standardConcurrent(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,int[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseTranspose","l":"standardConcurrent(double[], Shape, int, int)","u":"standardConcurrent(double[],org.flag4j.core.Shape,int,int)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseTranspose","l":"standardConcurrent(double[], Shape, int[])","u":"standardConcurrent(double[],org.flag4j.core.Shape,int[])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"standardConcurrentHerm(CNumber[], Shape, int, int)","u":"standardConcurrentHerm(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,int,int)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"standardConcurrentHerm(CNumber[], Shape, int[])","u":"standardConcurrentHerm(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,int[])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"standardHerm(CNumber[], Shape, int, int)","u":"standardHerm(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,int,int)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseTranspose","l":"standardIntMatrix(int[][])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"standardMatrix(CNumber[], int, int)","u":"standardMatrix(org.flag4j.complex_numbers.CNumber[],int,int)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseTranspose","l":"standardMatrix(double[], int, int)","u":"standardMatrix(double[],int,int)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"standardMatrixConcurrent(CNumber[], int, int)","u":"standardMatrixConcurrent(org.flag4j.complex_numbers.CNumber[],int,int)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseTranspose","l":"standardMatrixConcurrent(double[], int, int)","u":"standardMatrixConcurrent(double[],int,int)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"standardMatrixConcurrentHerm(CNumber[], int, int)","u":"standardMatrixConcurrentHerm(org.flag4j.complex_numbers.CNumber[],int,int)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"standardMatrixHerm(CNumber[], int, int)","u":"standardMatrixHerm(org.flag4j.complex_numbers.CNumber[],int,int)"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseMatrixMultiplication","l":"standardTranspose(CsrMatrix, CMatrix)","u":"standardTranspose(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense_sparse.csr.real","c":"RealCsrDenseMatrixMultiplication","l":"standardTranspose(CsrMatrix, Matrix)","u":"standardTranspose(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixMultiplication","l":"standardVector(CNumber[], int[], int[], Shape, CNumber[], int[])","u":"standardVector(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[])"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixMultiplication","l":"standardVector(CNumber[], int[], int[], Shape, CNumber[], Shape)","u":"standardVector(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixMultiplication","l":"standardVector(CNumber[], int[], int[], Shape, double[], int[], Shape)","u":"standardVector(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,double[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"standardVector(CNumber[], int[], int[], Shape, double[], Shape)","u":"standardVector(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixMultiplication","l":"standardVector(CNumber[], Shape, CNumber[], int[])","u":"standardVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultiplication","l":"standardVector(CNumber[], Shape, CNumber[], Shape)","u":"standardVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"standardVector(CNumber[], Shape, double[], int[])","u":"standardVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],int[])"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"standardVector(CNumber[], Shape, double[], Shape)","u":"standardVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrMatrixMultiplication","l":"standardVector(CsrCMatrix, CooCVector)","u":"standardVector(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.csr.real_complex","c":"RealComplexCsrMatrixMultiplication","l":"standardVector(CsrCMatrix, CooVector)","u":"standardVector(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.dense_sparse.csr.complex","c":"ComplexCsrDenseMatrixMultiplication","l":"standardVector(CsrCMatrix, CVector)","u":"standardVector(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseMatrixMultiplication","l":"standardVector(CsrCMatrix, Vector)","u":"standardVector(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.sparse.csr.real_complex","c":"RealComplexCsrMatrixMultiplication","l":"standardVector(CsrMatrix, CooCVector)","u":"standardVector(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.dense_sparse.csr.real","c":"RealCsrDenseMatrixMultiplication","l":"standardVector(CsrMatrix, CooVector)","u":"standardVector(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseMatrixMultiplication","l":"standardVector(CsrMatrix, CVector)","u":"standardVector(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.dense_sparse.csr.real","c":"RealCsrDenseMatrixMultiplication","l":"standardVector(CsrMatrix, Vector)","u":"standardVector(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixMultiplication","l":"standardVector(double[], int[], int[], Shape, CNumber[], int[], Shape)","u":"standardVector(double[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"standardVector(double[], int[], int[], Shape, CNumber[], Shape)","u":"standardVector(double[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixMultiplication","l":"standardVector(double[], int[], int[], Shape, double[], int[])","u":"standardVector(double[],int[],int[],org.flag4j.core.Shape,double[],int[])"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixMultiplication","l":"standardVector(double[], int[], int[], Shape, double[], Shape)","u":"standardVector(double[],int[],int[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"standardVector(double[], Shape, CNumber[], int[])","u":"standardVector(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[])"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"standardVector(double[], Shape, CNumber[], Shape)","u":"standardVector(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixMultiplication","l":"standardVector(double[], Shape, double[], int[])","u":"standardVector(double[],org.flag4j.core.Shape,double[],int[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultiplication","l":"standardVector(double[], Shape, double[], Shape)","u":"standardVector(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"storeReflectors"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"stridedFillZeros(CNumber[], int, int)","u":"stridedFillZeros(org.flag4j.complex_numbers.CNumber[],int,int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"stridedFillZeros(CNumber[], int, int, int)","u":"stridedFillZeros(org.flag4j.complex_numbers.CNumber[],int,int,int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"stridedFillZeros(double[], int, int)","u":"stridedFillZeros(double[],int,int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"stridedFillZeros(double[], int, int, int)","u":"stridedFillZeros(double[],int,int,int)"},{"p":"org.flag4j.core","c":"Shape","l":"strides"},{"p":"org.flag4j.util","c":"StringUtils","l":"StringUtils()","u":"%3Cinit%3E()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"sub(CMatrix)","u":"sub(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"sub(CMatrix)","u":"sub(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"sub(CMatrix)","u":"sub(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"sub(CMatrix)","u":"sub(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"sub(CMatrix)","u":"sub(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"sub(CMatrix)","u":"sub(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixOperations","l":"sub(CMatrix, CooCMatrix)","u":"sub(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"sub(CMatrix, CooMatrix)","u":"sub(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"sub(CNumber)","u":"sub(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"sub(CNumber)","u":"sub(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"sub(CNumber)","u":"sub(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"sub(CNumber)","u":"sub(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"sub(CNumber)","u":"sub(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"sub(CNumber)","u":"sub(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"sub(CNumber)","u":"sub(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"sub(CNumber)","u":"sub(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"sub(CNumber)","u":"sub(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"sub(CNumber)","u":"sub(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"sub(CNumber)","u":"sub(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"sub(CNumber)","u":"sub(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"sub(CNumber[], CNumber)","u":"sub(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseOperations","l":"sub(CNumber[], double)","u":"sub(org.flag4j.complex_numbers.CNumber[],double)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"sub(CNumber[], Shape, CNumber[], Shape)","u":"sub(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseOperations","l":"sub(CNumber[], Shape, double[], Shape)","u":"sub(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"sub(CooCMatrix)","u":"sub(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"sub(CooCMatrix)","u":"sub(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"sub(CooCMatrix)","u":"sub(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"sub(CooCMatrix)","u":"sub(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"sub(CooCMatrix)","u":"sub(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"sub(CooCMatrix)","u":"sub(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"sub(CooCMatrix)","u":"sub(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixOperations","l":"sub(CooCMatrix, CMatrix)","u":"sub(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixOperations","l":"sub(CooCMatrix, CNumber)","u":"sub(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixOperations","l":"sub(CooCMatrix, CooCMatrix)","u":"sub(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixOperations","l":"sub(CooCMatrix, CooMatrix)","u":"sub(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixOperations","l":"sub(CooCMatrix, double)","u":"sub(org.flag4j.arrays.sparse.CooCMatrix,double)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"sub(CooCMatrix, Matrix)","u":"sub(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"sub(CooCTensor)","u":"sub(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"sub(CooCTensor)","u":"sub(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"sub(CooCTensor)","u":"sub(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"sub(CooCTensor)","u":"sub(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"sub(CooCVector)","u":"sub(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"sub(CooCVector)","u":"sub(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"sub(CooCVector)","u":"sub(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"sub(CooCVector)","u":"sub(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"sub(CooCVector)","u":"sub(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseVectorOperations","l":"sub(CooCVector, CNumber)","u":"sub(org.flag4j.arrays.sparse.CooCVector,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseVectorOperations","l":"sub(CooCVector, CooCVector)","u":"sub(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseVectorOperations","l":"sub(CooCVector, CooVector)","u":"sub(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseVectorOperations","l":"sub(CooCVector, CVector)","u":"sub(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseVectorOperations","l":"sub(CooCVector, double)","u":"sub(org.flag4j.arrays.sparse.CooCVector,double)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"sub(CooCVector, Vector)","u":"sub(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"sub(CooMatrix)","u":"sub(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"sub(CooMatrix)","u":"sub(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"sub(CooMatrix)","u":"sub(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"sub(CooMatrix)","u":"sub(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"sub(CooMatrix)","u":"sub(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"sub(CooMatrix)","u":"sub(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"sub(CooMatrix)","u":"sub(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"sub(CooMatrix, CMatrix)","u":"sub(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixOperations","l":"sub(CooMatrix, CNumber)","u":"sub(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixOperations","l":"sub(CooMatrix, CooCMatrix)","u":"sub(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixOperations","l":"sub(CooMatrix, CooMatrix)","u":"sub(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixOperations","l":"sub(CooMatrix, double)","u":"sub(org.flag4j.arrays.sparse.CooMatrix,double)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixOperations","l":"sub(CooMatrix, Matrix)","u":"sub(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"sub(CooTensor)","u":"sub(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"sub(CooTensor)","u":"sub(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"sub(CooTensor)","u":"sub(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"sub(CooTensor)","u":"sub(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"sub(CooVector)","u":"sub(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"sub(CooVector)","u":"sub(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"sub(CooVector)","u":"sub(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"sub(CooVector)","u":"sub(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"sub(CooVector)","u":"sub(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseVectorOperations","l":"sub(CooVector, CNumber)","u":"sub(org.flag4j.arrays.sparse.CooVector,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseVectorOperations","l":"sub(CooVector, CooCVector)","u":"sub(org.flag4j.arrays.sparse.CooVector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseVectorOperations","l":"sub(CooVector, CooVector)","u":"sub(org.flag4j.arrays.sparse.CooVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"sub(CooVector, CVector)","u":"sub(org.flag4j.arrays.sparse.CooVector,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseVectorOperations","l":"sub(CooVector, double)","u":"sub(org.flag4j.arrays.sparse.CooVector,double)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseVectorOperations","l":"sub(CooVector, Vector)","u":"sub(org.flag4j.arrays.sparse.CooVector,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"sub(CsrCMatrix)","u":"sub(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"sub(CsrCMatrix)","u":"sub(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"sub(CsrCMatrix)","u":"sub(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"sub(CsrCMatrix)","u":"sub(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"sub(CsrCMatrix)","u":"sub(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"sub(CsrCMatrix)","u":"sub(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"sub(CsrCMatrix)","u":"sub(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"sub(CsrMatrix)","u":"sub(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"sub(CsrMatrix)","u":"sub(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"sub(CsrMatrix)","u":"sub(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"sub(CsrMatrix)","u":"sub(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"sub(CsrMatrix)","u":"sub(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"sub(CsrMatrix)","u":"sub(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"sub(CsrMatrix)","u":"sub(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"sub(CTensor)","u":"sub(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"sub(CTensor)","u":"sub(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseOperations","l":"sub(CTensor, CooCTensor)","u":"sub(org.flag4j.arrays.dense.CTensor,org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseOperations","l":"sub(CTensor, CooTensor)","u":"sub(org.flag4j.arrays.dense.CTensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"sub(CVector)","u":"sub(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"sub(CVector)","u":"sub(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"sub(CVector)","u":"sub(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"sub(CVector)","u":"sub(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseVectorOperations","l":"sub(CVector, CooCVector)","u":"sub(org.flag4j.arrays.dense.CVector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"sub(CVector, CooVector)","u":"sub(org.flag4j.arrays.dense.CVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"sub(double)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"sub(double)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"sub(double)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"sub(double)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"sub(double)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"sub(double)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"sub(double)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"sub(double)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"sub(double)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"sub(double)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"sub(double)"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"sub(double)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"sub(double[], CNumber)","u":"sub(double[],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseOperations","l":"sub(double[], CNumber)","u":"sub(double[],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseOperations","l":"sub(double[], double)","u":"sub(double[],double)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseOperations","l":"sub(double[], Shape, CNumber[], Shape)","u":"sub(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseOperations","l":"sub(double[], Shape, double[], Shape)","u":"sub(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"sub(Matrix)","u":"sub(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"sub(Matrix)","u":"sub(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"sub(Matrix)","u":"sub(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"sub(Matrix)","u":"sub(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"sub(Matrix)","u":"sub(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"sub(Matrix)","u":"sub(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"sub(Matrix, CooCMatrix)","u":"sub(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixOperations","l":"sub(Matrix, CooMatrix)","u":"sub(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"sub(T)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"sub(T)"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"sub(T)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"sub(Tensor)","u":"sub(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"sub(Tensor)","u":"sub(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseOperations","l":"sub(Tensor, CooCTensor)","u":"sub(org.flag4j.arrays.dense.Tensor,org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseTensorOperations","l":"sub(Tensor, CooTensor)","u":"sub(org.flag4j.arrays.dense.Tensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"sub(Vector)","u":"sub(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"sub(Vector)","u":"sub(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"sub(Vector)","u":"sub(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"sub(Vector)","u":"sub(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"sub(Vector, CooCVector)","u":"sub(org.flag4j.arrays.dense.Vector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseVectorOperations","l":"sub(Vector, CooVector)","u":"sub(org.flag4j.arrays.dense.Vector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"subDiagonal"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixOperations","l":"subEq(CMatrix, CooCMatrix)","u":"subEq(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"subEq(CMatrix, CooMatrix)","u":"subEq(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"subEq(CNumber)","u":"subEq(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"subEq(CNumber)","u":"subEq(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"subEq(CNumber[], CNumber)","u":"subEq(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseOperations","l":"subEq(CNumber[], double)","u":"subEq(org.flag4j.complex_numbers.CNumber[],double)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"subEq(CNumber[], Shape, CNumber[], Shape)","u":"subEq(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseOperations","l":"subEq(CNumber[], Shape, double[], Shape)","u":"subEq(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"subEq(CooCMatrix)","u":"subEq(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"subEq(CooCTensor)","u":"subEq(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.core","c":"ComplexTensorExclusiveMixin","l":"subEq(CooCTensor)","u":"subEq(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"subEq(CooCVector)","u":"subEq(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"subEq(CooMatrix)","u":"subEq(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"subEq(CooMatrix)","u":"subEq(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"subEq(CooMatrix)","u":"subEq(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"subEq(CooTensor)","u":"subEq(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"subEq(CooTensor)","u":"subEq(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"subEq(CooTensor)","u":"subEq(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"subEq(CooVector)","u":"subEq(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"subEq(CooVector)","u":"subEq(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core.dense_base","c":"DenseVectorMixin","l":"subEq(CooVector)","u":"subEq(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseOperations","l":"subEq(CTensor, CooCTensor)","u":"subEq(org.flag4j.arrays.dense.CTensor,org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseOperations","l":"subEq(CTensor, CooTensor)","u":"subEq(org.flag4j.arrays.dense.CTensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseVectorOperations","l":"subEq(CVector, CooCVector)","u":"subEq(org.flag4j.arrays.dense.CVector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"subEq(CVector, CooVector)","u":"subEq(org.flag4j.arrays.dense.CVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"subEq(double)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"subEq(Double)","u":"subEq(java.lang.Double)"},{"p":"org.flag4j.core.dense_base","c":"DenseMixin","l":"subEq(Double)","u":"subEq(java.lang.Double)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"subEq(Double)","u":"subEq(java.lang.Double)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseOperations","l":"subEq(double[], double)","u":"subEq(double[],double)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseOperations","l":"subEq(double[], Shape, double[], Shape)","u":"subEq(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"subEq(Matrix)","u":"subEq(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"subEq(Matrix)","u":"subEq(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixOperations","l":"subEq(Matrix, CooMatrix)","u":"subEq(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"subEq(T)"},{"p":"org.flag4j.core.dense_base","c":"DenseTensorBase","l":"subEq(T)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"subEq(T)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"subEq(Tensor)","u":"subEq(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.core","c":"ComplexTensorExclusiveMixin","l":"subEq(Tensor)","u":"subEq(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.core.dense_base","c":"DenseTensorMixin","l":"subEq(Tensor)","u":"subEq(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseTensorOperations","l":"subEq(Tensor, CooTensor)","u":"subEq(org.flag4j.arrays.dense.Tensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"subEq(Vector)","u":"subEq(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core.dense_base","c":"DenseVectorMixin","l":"subEq(Vector)","u":"subEq(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseVectorOperations","l":"subEq(Vector, CooVector)","u":"subEq(org.flag4j.arrays.dense.Vector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core.dense_base","c":"DenseMixin","l":"subEq(X)"},{"p":"org.flag4j.linalg","c":"SubSpace","l":"SubSpace()","u":"%3Cinit%3E()"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"sum()"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"sum()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"sum()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"sum()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"sum()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"sum()"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"sum()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"sum(CNumber...)","u":"sum(org.flag4j.complex_numbers.CNumber...)"},{"p":"org.flag4j.operations.common.complex","c":"AggregateComplex","l":"sum(CNumber[])","u":"sum(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.common.real","c":"AggregateReal","l":"sum(double[])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"sumCols()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"sumCols()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"sumCols()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"sumCols()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"sumCols()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"sumCols()"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"sumCols()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"sumRows()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"sumRows()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"sumRows()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"sumRows()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"sumRows()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"sumRows()"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"sumRows()"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"SVD(boolean, boolean)","u":"%3Cinit%3E(boolean,boolean)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"swap(double[], int, int)","u":"swap(double[],int,int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"swap(int[], int, int)","u":"swap(int[],int,int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"swap(int[], int[])","u":"swap(int[],int[])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"swap(Object[], int, int)","u":"swap(java.lang.Object[],int,int)"},{"p":"org.flag4j.core","c":"Shape","l":"swapAxes(int, int)","u":"swapAxes(int,int)"},{"p":"org.flag4j.core","c":"Shape","l":"swapAxes(int...)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixManipulations","l":"swapCols(CooCMatrix, int, int)","u":"swapCols(org.flag4j.arrays.sparse.CooCMatrix,int,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixManipulations","l":"swapCols(CooMatrix, int, int)","u":"swapCols(org.flag4j.arrays.sparse.CooMatrix,int,int)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrManipulations","l":"swapCols(CsrCMatrix, int, int)","u":"swapCols(org.flag4j.arrays.sparse.CsrCMatrix,int,int)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrManipulations","l":"swapCols(CsrMatrix, int, int)","u":"swapCols(org.flag4j.arrays.sparse.CsrMatrix,int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"swapCols(int, int)","u":"swapCols(int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"swapCols(int, int)","u":"swapCols(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"swapCols(int, int)","u":"swapCols(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"swapCols(int, int)","u":"swapCols(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"swapCols(int, int)","u":"swapCols(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"swapCols(int, int)","u":"swapCols(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"swapCols(int, int)","u":"swapCols(int,int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"swapCols(int, int)","u":"swapCols(int,int)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"swapCols(int, int)","u":"swapCols(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"swapPointers"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixManipulations","l":"swapRows(CooCMatrix, int, int)","u":"swapRows(org.flag4j.arrays.sparse.CooCMatrix,int,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixManipulations","l":"swapRows(CooMatrix, int, int)","u":"swapRows(org.flag4j.arrays.sparse.CooMatrix,int,int)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrManipulations","l":"swapRows(CsrCMatrix, int, int)","u":"swapRows(org.flag4j.arrays.sparse.CsrCMatrix,int,int)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrManipulations","l":"swapRows(CsrMatrix, int, int)","u":"swapRows(org.flag4j.arrays.sparse.CsrMatrix,int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"swapRows(int, int)","u":"swapRows(int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"swapRows(int, int)","u":"swapRows(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"swapRows(int, int)","u":"swapRows(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"swapRows(int, int)","u":"swapRows(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"swapRows(int, int)","u":"swapRows(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"swapRows(int, int)","u":"swapRows(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"swapRows(int, int)","u":"swapRows(int,int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"swapRows(int, int)","u":"swapRows(int,int)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"swapRows(int, int)","u":"swapRows(int,int)"},{"p":"org.flag4j.linalg.decompositions.hess","c":"SymmHess","l":"SymmHess()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.hess","c":"SymmHess","l":"SymmHess(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.linalg.decompositions.hess","c":"SymmHess","l":"SymmHess(boolean, boolean)","u":"%3Cinit%3E(boolean,boolean)"},{"p":"org.flag4j.linalg.transformations","c":"Householder","l":"symmLeftRightMultReflector(Matrix, double[], double, int, double[])","u":"symmLeftRightMultReflector(org.flag4j.arrays.dense.Matrix,double[],double,int,double[])"},{"p":"org.flag4j.arrays.sparse","c":"SymmTriDiagonal","l":"SymmTriDiagonal(double[], double[])","u":"%3Cinit%3E(double[],double[])"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"T"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"T()"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"T()"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"T()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"T()"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"T()"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"T()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"T()"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"T()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"T()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"T()"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"T()"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"T()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"T()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"T()"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"T()"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"T()"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"T(int, int)","u":"T(int,int)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"T(int, int)","u":"T(int,int)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"T(int, int)","u":"T(int,int)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"T(int...)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"T(int...)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"T(int...)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"tan(CNumber)","u":"tan(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"tan(double)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"tanh(CNumber)","u":"tanh(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"tanh(double)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"temp"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"Tensor(Matrix)","u":"%3Cinit%3E(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"Tensor(Shape)","u":"%3Cinit%3E(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"Tensor(Shape, double)","u":"%3Cinit%3E(org.flag4j.core.Shape,double)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"Tensor(Shape, double[])","u":"%3Cinit%3E(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"Tensor(Shape, Double[])","u":"%3Cinit%3E(org.flag4j.core.Shape,java.lang.Double[])"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"Tensor(Shape, int[])","u":"%3Cinit%3E(org.flag4j.core.Shape,int[])"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"Tensor(Shape, Integer[])","u":"%3Cinit%3E(org.flag4j.core.Shape,java.lang.Integer[])"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"Tensor(Tensor)","u":"%3Cinit%3E(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"Tensor(Vector)","u":"%3Cinit%3E(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"TensorBase","l":"TensorBase(Shape, D)","u":"%3Cinit%3E(org.flag4j.core.Shape,D)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"tensorDot(CTensor)","u":"tensorDot(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTensorDot","l":"tensorDot(CTensor, CTensor, int[], int[])","u":"tensorDot(org.flag4j.arrays.dense.CTensor,org.flag4j.arrays.dense.CTensor,int[],int[])"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"tensorDot(CTensor, int[], int[])","u":"tensorDot(org.flag4j.arrays.dense.CTensor,int[],int[])"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"tensorDot(T)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"tensorDot(T, int)","u":"tensorDot(T,int)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"tensorDot(T, int, int)","u":"tensorDot(T,int,int)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"tensorDot(T, int[], int[])","u":"tensorDot(T,int[],int[])"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"tensorDot(Tensor)","u":"tensorDot(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"tensorDot(Tensor, int[], int[])","u":"tensorDot(org.flag4j.arrays.dense.Tensor,int[],int[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseTensorDot","l":"tensorDot(Tensor, Tensor)","u":"tensorDot(org.flag4j.arrays.dense.Tensor,org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseTensorDot","l":"tensorDot(Tensor, Tensor, int[], int[])","u":"tensorDot(org.flag4j.arrays.dense.Tensor,org.flag4j.arrays.dense.Tensor,int[],int[])"},{"p":"org.flag4j.operations.common","c":"TensorEquals","l":"TensorEquals()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseEquals","l":"tensorEquals(CNumber[], Shape, CNumber[], Shape)","u":"tensorEquals(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseEquals","l":"tensorEquals(CooCTensor, CooCTensor)","u":"tensorEquals(org.flag4j.arrays.sparse.CooCTensor,org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseEquals","l":"tensorEquals(CooTensor, CooCTensor)","u":"tensorEquals(org.flag4j.arrays.sparse.CooTensor,org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseEquals","l":"tensorEquals(CooTensor, CooTensor)","u":"tensorEquals(org.flag4j.arrays.sparse.CooTensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseEquals","l":"tensorEquals(CTensor, CooCTensor)","u":"tensorEquals(org.flag4j.arrays.dense.CTensor,org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseEquals","l":"tensorEquals(CTensor, CooTensor)","u":"tensorEquals(org.flag4j.arrays.dense.CTensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseEquals","l":"tensorEquals(double[], Shape, CNumber[], Shape)","u":"tensorEquals(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseEquals","l":"tensorEquals(double[], Shape, double[], Shape)","u":"tensorEquals(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseEquals","l":"tensorEquals(Tensor, CooCTensor)","u":"tensorEquals(org.flag4j.arrays.dense.Tensor,org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseEquals","l":"tensorEquals(Tensor, CooTensor)","u":"tensorEquals(org.flag4j.arrays.dense.Tensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseEquals","l":"tensorEquals(Tensor, CTensor)","u":"tensorEquals(org.flag4j.arrays.dense.Tensor,org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseEquals","l":"tensorEquals(Tensor, Tensor)","u":"tensorEquals(org.flag4j.arrays.dense.Tensor,org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.core","c":"TensorBase","l":"tensorEquals(TensorBase)","u":"tensorEquals(org.flag4j.core.TensorBase)"},{"p":"org.flag4j.core","c":"TensorComparisonsMixin","l":"tensorEquals(TensorBase)","u":"tensorEquals(org.flag4j.core.TensorBase)"},{"p":"org.flag4j.io","c":"TensorInputStream","l":"TensorInputStream(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"tensorInv()"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"tensorInv(int)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"tensorInv(int)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"tensorInv(int)"},{"p":"org.flag4j.linalg","c":"TensorInvert","l":"TensorInvert()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"tensorNormL2(CNumber[])","u":"tensorNormL2(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"tensorNormL2(double[])"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"tensorNormLp(CNumber[], double)","u":"tensorNormLp(org.flag4j.complex_numbers.CNumber[],double)"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"tensorNormLp(double[], double)","u":"tensorNormLp(double[],double)"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"TensorNorms()","u":"%3Cinit%3E()"},{"p":"org.flag4j.io","c":"TensorOutputStream","l":"TensorOutputStream(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"org.flag4j.io","c":"TensorReader","l":"TensorReader()","u":"%3Cinit%3E()"},{"p":"org.flag4j.util.exceptions","c":"TensorShapeException","l":"TensorShapeException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"org.flag4j.util.exceptions","c":"TensorShapeException","l":"TensorShapeException(String, Shape)","u":"%3Cinit%3E(java.lang.String,org.flag4j.core.Shape)"},{"p":"org.flag4j.util.exceptions","c":"TensorShapeException","l":"TensorShapeException(String, Shape, Shape)","u":"%3Cinit%3E(java.lang.String,org.flag4j.core.Shape,org.flag4j.core.Shape)"},{"p":"org.flag4j.io","c":"TensorWriter","l":"TensorWriter()","u":"%3Cinit%3E()"},{"p":"org.flag4j.concurrency","c":"ThreadManager","l":"threadLogger"},{"p":"org.flag4j.concurrency","c":"ThreadManager","l":"ThreadManager()","u":"%3Cinit%3E()"},{"p":"org.flag4j.concurrency","c":"ThreadManager","l":"threadPool"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"toArrayList(CNumber[])","u":"toArrayList(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"toArrayList(double[])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"toArrayList(int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"toComplex()"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"toComplex()"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"toComplex()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"toComplex()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"toComplex()"},{"p":"org.flag4j.core","c":"RealTensorMixin","l":"toComplex()"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"toComplexArrayList(double[])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"toCoo()"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"toCoo()"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"toCoo()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"toCoo()"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"toCoo()"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"toCoo()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"toCoo()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"toCoo()"},{"p":"org.flag4j.core.dense_base","c":"DenseTensorBase","l":"toCoo()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"toCsr()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"toCsr()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"toCsr()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"toCsr()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"toDense()"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"toDense()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"toDense()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"toDense()"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"toDense()"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"toDense()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"toDense()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"toDense()"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"toDense()"},{"p":"org.flag4j.arrays.sparse","c":"SymmTriDiagonal","l":"toDense()"},{"p":"org.flag4j.core.sparse_base","c":"SparseTensorBase","l":"toDense()"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"toMatrix()"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"toMatrix()"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"toMatrix()"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"toMatrix()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"toMatrix()"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"toMatrix()"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"toMatrix()"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"toMatrix(boolean)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"toMatrix(boolean)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"toMatrix(boolean)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"toMatrix(boolean)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"toMatrix(boolean)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"toPolar()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"toReal()"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"toReal()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"toReal()"},{"p":"org.flag4j.core","c":"ComplexTensorMixin","l":"toReal()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"toReal()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"toReal()"},{"p":"org.flag4j.operations.common.complex","c":"ComplexOperations","l":"toReal(CNumber[])","u":"toReal(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"toRealSafe()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"toRealSafe()"},{"p":"org.flag4j.core","c":"ComplexTensorMixin","l":"toRealSafe()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"toRealSafe()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"toRealSafe()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"toString()"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"toString()"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"toString()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"toString()"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"toString()"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"toString()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"toString()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"toString()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"toString()"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"toString()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"toString()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"toString()"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"toString()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"toString()"},{"p":"org.flag4j.complex_numbers","c":"CNumberToken","l":"toString()"},{"p":"org.flag4j.core","c":"Shape","l":"toString()"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"TOTAL_ENTRIES_ERR"},{"p":"org.flag4j.core","c":"Shape","l":"totalEntries()"},{"p":"org.flag4j.core","c":"TensorBase","l":"totalEntries()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"toTensor()"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"toTensor()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"toTensor()"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"toTensor()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"toTensor()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"toTensor()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"toTensor()"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"toTensor()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"toTensor()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"toTensor()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"toVector()"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"toVector()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"toVector()"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"toVector()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"toVector()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"toVector()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"toVector()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"toVector()"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"toVector()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"tr()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"tr()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"tr()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"tr()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"tr()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"tr()"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"tr()"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"tr()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"trace()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"trace()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"trace()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"trace()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"trace()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"trace()"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"trace()"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"trace()"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"transformData"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"transformMatrix"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"transpose()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"transpose()"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"transpose()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"transpose()"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"transpose()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"transpose()"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"transpose()"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrOperations","l":"transpose(CsrCMatrix)","u":"transpose(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrOperations","l":"transpose(CsrMatrix)","u":"transpose(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"transpose(int, int)","u":"transpose(int,int)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"transpose(int...)"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"TransposeDispatcher()","u":"%3Cinit%3E()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"TWO"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"two()"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"U"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"U"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"unbox(Double[])","u":"unbox(java.lang.Double[])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"unbox(Integer[])","u":"unbox(java.lang.Integer[])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"unboxFlatten(Double[][])","u":"unboxFlatten(java.lang.Double[][])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"uniqueSorted(int[])"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"UnitaryDecomposition(int, boolean)","u":"%3Cinit%3E(int,boolean)"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"unwrap(double[], int[])","u":"unwrap(double[],int[])"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"unwrap(double[], int[], int[])","u":"unwrap(double[],int[],int[])"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"unwrap(double[], int[][])","u":"unwrap(double[],int[][])"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"unwrap(T[], int[])","u":"unwrap(T[],int[])"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"unwrap(T[], int[], int[])","u":"unwrap(T[],int[],int[])"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"unwrap(T[], int[][])","u":"unwrap(T[],int[][])"},{"p":"org.flag4j.linalg.decompositions.hess","c":"SymmHess","l":"updateData(int)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"ComplexUnitaryDecomposition","l":"updateData(int)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"RealUnitaryDecomposition","l":"updateData(int)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"updateData(int)"},{"p":"org.flag4j.io","c":"PrintOptions","l":"useCentering()"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseElemDiv","l":"useConcurrent(int)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"UTILITY_CLASS_ERR"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"V"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU.Pivoting","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"org.flag4j.operations","c":"TransposeDispatcher.Algorithm","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"org.flag4j.util","c":"Axis2D","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"org.flag4j.util","c":"StringUtils","l":"ValueOfRound(CNumber, int)","u":"ValueOfRound(org.flag4j.complex_numbers.CNumber,int)"},{"p":"org.flag4j.util","c":"StringUtils","l":"ValueOfRound(double, int)","u":"ValueOfRound(double,int)"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"values"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU.Pivoting","l":"values()"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"values()"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"values()"},{"p":"org.flag4j.operations","c":"TransposeDispatcher.Algorithm","l":"values()"},{"p":"org.flag4j.util","c":"Axis2D","l":"values()"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"VEC_COL_ORIENTATION_ERR"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"VEC_ROW_ORIENTATION_ERR"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"vecColOrientErrMsg(Shape)","u":"vecColOrientErrMsg(org.flag4j.core.Shape)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"vecRowOrientErrMsg(Shape)","u":"vecRowOrientErrMsg(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"Vector(double...)","u":"%3Cinit%3E(double...)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"Vector(int)","u":"%3Cinit%3E(int)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"Vector(int, double)","u":"%3Cinit%3E(int,double)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"Vector(int...)","u":"%3Cinit%3E(int...)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"Vector(Shape)","u":"%3Cinit%3E(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"Vector(Shape, double)","u":"%3Cinit%3E(org.flag4j.core.Shape,double)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"Vector(Vector)","u":"%3Cinit%3E(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseEquals","l":"vectorEquals(CNumber[], CNumber[], int[], int)","u":"vectorEquals(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber[],int[],int)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseEquals","l":"vectorEquals(CNumber[], double[], int[], int)","u":"vectorEquals(org.flag4j.complex_numbers.CNumber[],double[],int[],int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseEquals","l":"vectorEquals(CooCVector, CooCVector)","u":"vectorEquals(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseEquals","l":"vectorEquals(CooVector, CooCVector)","u":"vectorEquals(org.flag4j.arrays.sparse.CooVector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseEquals","l":"vectorEquals(CooVector, CooVector)","u":"vectorEquals(org.flag4j.arrays.sparse.CooVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseEquals","l":"vectorEquals(double[], CNumber[], int[], int)","u":"vectorEquals(double[],org.flag4j.complex_numbers.CNumber[],int[],int)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseEquals","l":"vectorEquals(double[], double[])","u":"vectorEquals(double[],double[])"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseEquals","l":"vectorEquals(double[], double[], int[], int)","u":"vectorEquals(double[],double[],int[],int)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"VectorNorms()","u":"%3Cinit%3E()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"vectorType()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"vectorType()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"vectorType()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"vectorType()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"vectorType()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"vectorType()"},{"p":"org.flag4j.core","c":"MatrixPropertiesMixin","l":"vectorType()"},{"p":"org.flag4j.linalg.transformations","c":"View","l":"View()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"workArray"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"workArray"},{"p":"org.flag4j.linalg.solvers.exact","c":"ComplexExactTensorSolver","l":"wrap(CVector, Shape)","u":"wrap(org.flag4j.arrays.dense.CVector,org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"wrap(double[], int[])","u":"wrap(double[],int[])"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"wrap(double[], int[], int[])","u":"wrap(double[],int[],int[])"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"wrap(double[], int[][])","u":"wrap(double[],int[][])"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"wrap(T[], int[])","u":"wrap(T[],int[])"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"wrap(T[], int[], int[])","u":"wrap(T[],int[],int[])"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"wrap(T[], int[][])","u":"wrap(T[],int[][])"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactTensorSolver","l":"wrap(V, Shape)","u":"wrap(V,org.flag4j.core.Shape)"},{"p":"org.flag4j.linalg.solvers.exact","c":"RealExactTensorSolver","l":"wrap(Vector, Shape)","u":"wrap(org.flag4j.arrays.dense.Vector,org.flag4j.core.Shape)"},{"p":"org.flag4j.io","c":"TensorOutputStream","l":"write(int)"},{"p":"org.flag4j.io","c":"TensorWriter","l":"write(String, TensorBase)","u":"write(java.lang.String,org.flag4j.core.TensorBase)"},{"p":"org.flag4j.io","c":"TensorOutputStream","l":"write(TensorBase)","u":"write(org.flag4j.core.TensorBase)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"BackSolver","l":"x"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ForwardSolver","l":"x"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"BackSolver","l":"X"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ForwardSolver","l":"X"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"BackSolver","l":"xCol"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ForwardSolver","l":"xCol"},{"p":"org.flag4j.linalg.decompositions.lu","c":"ComplexLU","l":"z"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"ZERO"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"ZERO"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"ComplexUnitaryDecomposition","l":"ZERO"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"zero()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"zeroPivotTol"}];updateSearchResults(); \ No newline at end of file +memberSearchIndex = [{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"abs()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"abs()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"abs()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"abs()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"abs()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"abs()"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"abs()"},{"p":"org.flag4j.operations.common.complex","c":"ComplexOperations","l":"abs(CNumber[])","u":"abs(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.common.real","c":"RealOperations","l":"abs(double[])"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"acos(CNumber)","u":"acos(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"acos(double)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"add(CMatrix)","u":"add(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"add(CMatrix)","u":"add(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"add(CMatrix)","u":"add(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"add(CMatrix)","u":"add(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"add(CMatrix)","u":"add(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"add(CMatrix)","u":"add(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixOperations","l":"add(CMatrix, CooCMatrix)","u":"add(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"add(CMatrix, CooMatrix)","u":"add(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"add(CNumber)","u":"add(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"add(CNumber)","u":"add(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"add(CNumber)","u":"add(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"add(CNumber)","u":"add(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"add(CNumber)","u":"add(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"add(CNumber)","u":"add(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"add(CNumber)","u":"add(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"add(CNumber)","u":"add(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"add(CNumber)","u":"add(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"add(CNumber)","u":"add(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"add(CNumber)","u":"add(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"add(CNumber)","u":"add(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"add(CNumber[], CNumber)","u":"add(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseOperations","l":"add(CNumber[], double)","u":"add(org.flag4j.complex_numbers.CNumber[],double)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"add(CNumber[], Shape, CNumber[], Shape)","u":"add(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseOperations","l":"add(CNumber[], Shape, double[], Shape)","u":"add(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"add(CooCMatrix)","u":"add(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"add(CooCMatrix)","u":"add(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"add(CooCMatrix)","u":"add(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"add(CooCMatrix)","u":"add(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"add(CooCMatrix)","u":"add(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"add(CooCMatrix)","u":"add(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"add(CooCMatrix)","u":"add(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixOperations","l":"add(CooCMatrix, CNumber)","u":"add(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixOperations","l":"add(CooCMatrix, CooCMatrix)","u":"add(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixOperations","l":"add(CooCMatrix, CooMatrix)","u":"add(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixOperations","l":"add(CooCMatrix, double)","u":"add(org.flag4j.arrays.sparse.CooCMatrix,double)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"add(CooCTensor)","u":"add(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"add(CooCTensor)","u":"add(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"add(CooCTensor)","u":"add(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"add(CooCTensor)","u":"add(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"add(CooCTensor)","u":"add(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseOperations","l":"add(CooCTensor, CNumber)","u":"add(org.flag4j.arrays.sparse.CooCTensor,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexCooTensorOperations","l":"add(CooCTensor, CooCTensor)","u":"add(org.flag4j.arrays.sparse.CooCTensor,org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexCooTensorOperations","l":"add(CooCTensor, CooTensor)","u":"add(org.flag4j.arrays.sparse.CooCTensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseOperations","l":"add(CooCTensor, double)","u":"add(org.flag4j.arrays.sparse.CooCTensor,double)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"add(CooCVector)","u":"add(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"add(CooCVector)","u":"add(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"add(CooCVector)","u":"add(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"add(CooCVector)","u":"add(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"add(CooCVector)","u":"add(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseVectorOperations","l":"add(CooCVector, CNumber)","u":"add(org.flag4j.arrays.sparse.CooCVector,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseVectorOperations","l":"add(CooCVector, CooCVector)","u":"add(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseVectorOperations","l":"add(CooCVector, CooVector)","u":"add(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseVectorOperations","l":"add(CooCVector, double)","u":"add(org.flag4j.arrays.sparse.CooCVector,double)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseVectorOperations","l":"add(CooCVector, double)","u":"add(org.flag4j.arrays.sparse.CooCVector,double)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"add(CooMatrix)","u":"add(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"add(CooMatrix)","u":"add(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"add(CooMatrix)","u":"add(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"add(CooMatrix)","u":"add(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"add(CooMatrix)","u":"add(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"add(CooMatrix)","u":"add(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"add(CooMatrix)","u":"add(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixOperations","l":"add(CooMatrix, CNumber)","u":"add(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixOperations","l":"add(CooMatrix, CooMatrix)","u":"add(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixOperations","l":"add(CooMatrix, double)","u":"add(org.flag4j.arrays.sparse.CooMatrix,double)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"add(CooTensor)","u":"add(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"add(CooTensor)","u":"add(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"add(CooTensor)","u":"add(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"add(CooTensor)","u":"add(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"add(CooTensor)","u":"add(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseOperations","l":"add(CooTensor, CNumber)","u":"add(org.flag4j.arrays.sparse.CooTensor,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealCooTensorOperations","l":"add(CooTensor, CooTensor)","u":"add(org.flag4j.arrays.sparse.CooTensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseTensorOperations","l":"add(CooTensor, double)","u":"add(org.flag4j.arrays.sparse.CooTensor,double)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"add(CooVector)","u":"add(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"add(CooVector)","u":"add(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"add(CooVector)","u":"add(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"add(CooVector)","u":"add(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"add(CooVector)","u":"add(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseVectorOperations","l":"add(CooVector, CNumber)","u":"add(org.flag4j.arrays.sparse.CooVector,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseVectorOperations","l":"add(CooVector, CooVector)","u":"add(org.flag4j.arrays.sparse.CooVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseVectorOperations","l":"add(CooVector, double)","u":"add(org.flag4j.arrays.sparse.CooVector,double)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"add(CsrCMatrix)","u":"add(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"add(CsrCMatrix)","u":"add(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"add(CsrCMatrix)","u":"add(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"add(CsrCMatrix)","u":"add(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"add(CsrCMatrix)","u":"add(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"add(CsrCMatrix)","u":"add(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"add(CsrCMatrix)","u":"add(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"add(CsrMatrix)","u":"add(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"add(CsrMatrix)","u":"add(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"add(CsrMatrix)","u":"add(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"add(CsrMatrix)","u":"add(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"add(CsrMatrix)","u":"add(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"add(CsrMatrix)","u":"add(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"add(CsrMatrix)","u":"add(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"add(CTensor)","u":"add(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"add(CTensor)","u":"add(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"add(CTensor)","u":"add(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"add(CTensor)","u":"add(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseOperations","l":"add(CTensor, CooCTensor)","u":"add(org.flag4j.arrays.dense.CTensor,org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseOperations","l":"add(CTensor, CooTensor)","u":"add(org.flag4j.arrays.dense.CTensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"add(CVector)","u":"add(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"add(CVector)","u":"add(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"add(CVector)","u":"add(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"add(CVector)","u":"add(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseVectorOperations","l":"add(CVector, CooCVector)","u":"add(org.flag4j.arrays.dense.CVector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"add(CVector, CooVector)","u":"add(org.flag4j.arrays.dense.CVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"add(double)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"add(double)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"add(double)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"add(double)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"add(double)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"add(double)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"add(double)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"add(double)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"add(double)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"add(double)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"add(double)"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"add(double)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"add(double[], CNumber)","u":"add(double[],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseVectorOperations","l":"add(double[], CNumber)","u":"add(double[],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseOperations","l":"add(double[], double)","u":"add(double[],double)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseOperations","l":"add(double[], Shape, double[], Shape)","u":"add(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"add(Matrix)","u":"add(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"add(Matrix)","u":"add(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"add(Matrix)","u":"add(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"add(Matrix)","u":"add(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"add(Matrix)","u":"add(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"add(Matrix)","u":"add(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"add(Matrix, CooCMatrix)","u":"add(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixOperations","l":"add(Matrix, CooMatrix)","u":"add(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"add(T)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"add(T)"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"add(T)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"add(Tensor)","u":"add(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"add(Tensor)","u":"add(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"add(Tensor)","u":"add(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"add(Tensor)","u":"add(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseOperations","l":"add(Tensor, CooCTensor)","u":"add(org.flag4j.arrays.dense.Tensor,org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseTensorOperations","l":"add(Tensor, CooTensor)","u":"add(org.flag4j.arrays.dense.Tensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"add(Vector)","u":"add(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"add(Vector)","u":"add(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"add(Vector)","u":"add(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"add(Vector)","u":"add(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"add(Vector, CooCVector)","u":"add(org.flag4j.arrays.dense.Vector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseVectorOperations","l":"add(Vector, CooVector)","u":"add(org.flag4j.arrays.dense.Vector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixOperations","l":"addEq(CMatrix, CooCMatrix)","u":"addEq(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"addEq(CMatrix, CooMatrix)","u":"addEq(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"addEq(CNumber)","u":"addEq(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"addEq(CNumber[], CNumber)","u":"addEq(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseOperations","l":"addEq(CNumber[], double)","u":"addEq(org.flag4j.complex_numbers.CNumber[],double)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"addEq(CNumber[], Shape, CNumber[], Shape)","u":"addEq(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseOperations","l":"addEq(CNumber[], Shape, double[], Shape)","u":"addEq(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"addEq(CooCMatrix)","u":"addEq(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"addEq(CooCTensor)","u":"addEq(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"addEq(CooCTensor)","u":"addEq(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.core","c":"ComplexTensorExclusiveMixin","l":"addEq(CooCTensor)","u":"addEq(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"addEq(CooCVector)","u":"addEq(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"addEq(CooMatrix)","u":"addEq(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"addEq(CooMatrix)","u":"addEq(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"addEq(CooMatrix)","u":"addEq(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"addEq(CooTensor)","u":"addEq(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"addEq(CooTensor)","u":"addEq(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"addEq(CooVector)","u":"addEq(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"addEq(CooVector)","u":"addEq(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core.dense_base","c":"DenseVectorMixin","l":"addEq(CooVector)","u":"addEq(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseOperations","l":"addEq(CTensor, CooCTensor)","u":"addEq(org.flag4j.arrays.dense.CTensor,org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseOperations","l":"addEq(CTensor, CooTensor)","u":"addEq(org.flag4j.arrays.dense.CTensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseVectorOperations","l":"addEq(CVector, CooCVector)","u":"addEq(org.flag4j.arrays.dense.CVector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"addEq(CVector, CooVector)","u":"addEq(org.flag4j.arrays.dense.CVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"addEq(Double)","u":"addEq(java.lang.Double)"},{"p":"org.flag4j.core.dense_base","c":"DenseMixin","l":"addEq(Double)","u":"addEq(java.lang.Double)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"addEq(Double)","u":"addEq(java.lang.Double)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseOperations","l":"addEq(double[], double)","u":"addEq(double[],double)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseOperations","l":"addEq(double[], Shape, double[], Shape)","u":"addEq(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"addEq(Matrix)","u":"addEq(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"addEq(Matrix)","u":"addEq(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixOperations","l":"addEq(Matrix, CooMatrix)","u":"addEq(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"addEq(T)"},{"p":"org.flag4j.core.dense_base","c":"DenseTensorBase","l":"addEq(T)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"addEq(T)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"addEq(Tensor)","u":"addEq(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"addEq(Tensor)","u":"addEq(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.core","c":"ComplexTensorExclusiveMixin","l":"addEq(Tensor)","u":"addEq(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.core.dense_base","c":"DenseTensorMixin","l":"addEq(Tensor)","u":"addEq(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseTensorOperations","l":"addEq(Tensor, CooTensor)","u":"addEq(org.flag4j.arrays.dense.Tensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"addEq(Vector)","u":"addEq(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core.dense_base","c":"DenseVectorMixin","l":"addEq(Vector)","u":"addEq(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseVectorOperations","l":"addEq(Vector, CooVector)","u":"addEq(org.flag4j.arrays.dense.Vector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core.dense_base","c":"DenseMixin","l":"addEq(X)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"addInv()"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"addNotInCol(List, List, List, CooMatrix, int)","u":"addNotInCol(java.util.List,java.util.List,java.util.List,org.flag4j.arrays.sparse.CooMatrix,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixOperations","l":"addToEachCol(CooCMatrix, CooCVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixOperations","l":"addToEachCol(CooCMatrix, CooVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixOperations","l":"addToEachCol(CooCMatrix, CVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"addToEachCol(CooCMatrix, Vector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"addToEachCol(CooCVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"addToEachCol(CooCVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"addToEachCol(CooCVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"addToEachCol(CooCVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"addToEachCol(CooCVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"addToEachCol(CooCVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"addToEachCol(CooCVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixOperations","l":"addToEachCol(CooMatrix, CooCVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixOperations","l":"addToEachCol(CooMatrix, CooVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"addToEachCol(CooMatrix, CVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixOperations","l":"addToEachCol(CooMatrix, Vector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"addToEachCol(CooVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"addToEachCol(CooVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"addToEachCol(CooVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"addToEachCol(CooVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"addToEachCol(CooVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"addToEachCol(CooVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"addToEachCol(CooVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrOperations","l":"addToEachCol(CsrCMatrix, CooCVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrOperations","l":"addToEachCol(CsrCMatrix, CooVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrOperations","l":"addToEachCol(CsrCMatrix, CVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrOperations","l":"addToEachCol(CsrCMatrix, Vector)","u":"addToEachCol(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrOperations","l":"addToEachCol(CsrMatrix, CooCVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrOperations","l":"addToEachCol(CsrMatrix, CooVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrOperations","l":"addToEachCol(CsrMatrix, CVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrOperations","l":"addToEachCol(CsrMatrix, Vector)","u":"addToEachCol(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"addToEachCol(CVector)","u":"addToEachCol(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"addToEachCol(CVector)","u":"addToEachCol(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"addToEachCol(CVector)","u":"addToEachCol(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"addToEachCol(CVector)","u":"addToEachCol(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"addToEachCol(CVector)","u":"addToEachCol(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"addToEachCol(CVector)","u":"addToEachCol(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"addToEachCol(CVector)","u":"addToEachCol(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"addToEachCol(Vector)","u":"addToEachCol(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"addToEachCol(Vector)","u":"addToEachCol(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"addToEachCol(Vector)","u":"addToEachCol(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"addToEachCol(Vector)","u":"addToEachCol(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"addToEachCol(Vector)","u":"addToEachCol(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"addToEachCol(Vector)","u":"addToEachCol(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"addToEachCol(Vector)","u":"addToEachCol(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixOperations","l":"addToEachRow(CooCMatrix, CooCVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixOperations","l":"addToEachRow(CooCMatrix, CooVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixOperations","l":"addToEachRow(CooCMatrix, CVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"addToEachRow(CooCMatrix, Vector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"addToEachRow(CooCVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"addToEachRow(CooCVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"addToEachRow(CooCVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"addToEachRow(CooCVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"addToEachRow(CooCVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"addToEachRow(CooCVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"addToEachRow(CooCVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixOperations","l":"addToEachRow(CooMatrix, CooCVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixOperations","l":"addToEachRow(CooMatrix, CooVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"addToEachRow(CooMatrix, CVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixOperations","l":"addToEachRow(CooMatrix, Vector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"addToEachRow(CooVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"addToEachRow(CooVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"addToEachRow(CooVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"addToEachRow(CooVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"addToEachRow(CooVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"addToEachRow(CooVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"addToEachRow(CooVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrOperations","l":"addToEachRow(CsrCMatrix, CooCVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrOperations","l":"addToEachRow(CsrCMatrix, CooVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrOperations","l":"addToEachRow(CsrCMatrix, CVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrOperations","l":"addToEachRow(CsrCMatrix, Vector)","u":"addToEachRow(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrOperations","l":"addToEachRow(CsrMatrix, CooCVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrOperations","l":"addToEachRow(CsrMatrix, CooVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrOperations","l":"addToEachRow(CsrMatrix, CVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrOperations","l":"addToEachRow(CsrMatrix, Vector)","u":"addToEachRow(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"addToEachRow(CVector)","u":"addToEachRow(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"addToEachRow(CVector)","u":"addToEachRow(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"addToEachRow(CVector)","u":"addToEachRow(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"addToEachRow(CVector)","u":"addToEachRow(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"addToEachRow(CVector)","u":"addToEachRow(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"addToEachRow(CVector)","u":"addToEachRow(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"addToEachRow(CVector)","u":"addToEachRow(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"addToEachRow(Vector)","u":"addToEachRow(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"addToEachRow(Vector)","u":"addToEachRow(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"addToEachRow(Vector)","u":"addToEachRow(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"addToEachRow(Vector)","u":"addToEachRow(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"addToEachRow(Vector)","u":"addToEachRow(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"addToEachRow(Vector)","u":"addToEachRow(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"addToEachRow(Vector)","u":"addToEachRow(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.common.complex","c":"AggregateComplex","l":"AggregateComplex()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.complex","c":"AggregateDenseComplex","l":"AggregateDenseComplex()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real","c":"AggregateDenseReal","l":"AggregateDenseReal()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.common.real","c":"AggregateReal","l":"AggregateReal()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations","c":"TransposeDispatcher.Algorithm","l":"Algorithm()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher","l":"algorithmMap"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"AlgorithmName()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"AlgorithmNames()","u":"%3Cinit%3E()"},{"p":"org.flag4j.util","c":"Axis2D","l":"allAxes()"},{"p":"org.flag4j.operations.common.complex","c":"ComplexProperties","l":"allClose(CNumber[], CNumber[])","u":"allClose(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.common.complex","c":"ComplexProperties","l":"allClose(CNumber[], CNumber[], double, double)","u":"allClose(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber[],double,double)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"allClose(CooCMatrix, double, double)","u":"allClose(org.flag4j.arrays.sparse.CooCMatrix,double,double)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"allClose(CooCTensor, double, double)","u":"allClose(org.flag4j.arrays.sparse.CooCTensor,double,double)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"allClose(CooCVector, double, double)","u":"allClose(org.flag4j.arrays.sparse.CooCVector,double,double)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"allClose(CooMatrix, double, double)","u":"allClose(org.flag4j.arrays.sparse.CooMatrix,double,double)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"allClose(CooTensor, double, double)","u":"allClose(org.flag4j.arrays.sparse.CooTensor,double,double)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"allClose(CooVector, double, double)","u":"allClose(org.flag4j.arrays.sparse.CooVector,double,double)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrEquals","l":"allClose(CsrCMatrix, CsrCMatrix, double, double)","u":"allClose(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CsrCMatrix,double,double)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"allClose(CsrCMatrix, double, double)","u":"allClose(org.flag4j.arrays.sparse.CsrCMatrix,double,double)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrEquals","l":"allClose(CsrMatrix, CsrMatrix, double, double)","u":"allClose(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CsrMatrix,double,double)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"allClose(CsrMatrix, double, double)","u":"allClose(org.flag4j.arrays.sparse.CsrMatrix,double,double)"},{"p":"org.flag4j.operations.common.real","c":"RealProperties","l":"allClose(double[], double[])","u":"allClose(double[],double[])"},{"p":"org.flag4j.operations.common.real","c":"RealProperties","l":"allClose(double[], double[], double, double)","u":"allClose(double[],double[],double,double)"},{"p":"org.flag4j.core","c":"TensorBase","l":"allClose(T)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"allClose(T, double, double)","u":"allClose(T,double,double)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"allClose(T, double, double)","u":"allClose(T,double,double)"},{"p":"org.flag4j.core","c":"TensorBase","l":"allClose(T, double, double)","u":"allClose(T,double,double)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseEquals","l":"allCloseMatrix(CooCMatrix, CooCMatrix, double, double)","u":"allCloseMatrix(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooCMatrix,double,double)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseEquals","l":"allCloseMatrix(CooMatrix, CooMatrix, double, double)","u":"allCloseMatrix(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooMatrix,double,double)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseEquals","l":"allCloseTensor(CooCTensor, CooCTensor, double, double)","u":"allCloseTensor(org.flag4j.arrays.sparse.CooCTensor,org.flag4j.arrays.sparse.CooCTensor,double,double)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseEquals","l":"allCloseTensor(CooTensor, CooTensor, double, double)","u":"allCloseTensor(org.flag4j.arrays.sparse.CooTensor,org.flag4j.arrays.sparse.CooTensor,double,double)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseEquals","l":"allCloseVector(CooCVector, CooCVector, double, double)","u":"allCloseVector(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.sparse.CooCVector,double,double)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseEquals","l":"allCloseVector(CooVector, CooVector, double, double)","u":"allCloseVector(org.flag4j.arrays.sparse.CooVector,org.flag4j.arrays.sparse.CooVector,double,double)"},{"p":"org.flag4j.operations","c":"RealDenseTensorBinaryOperation","l":"apply(double[], Shape, double[], Shape)","u":"apply(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.csr.complex","c":"ComplexCsrDenseOperations","l":"applyBinOpp(CMatrix, CsrCMatrix, BinaryOperator)","u":"applyBinOpp(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CsrCMatrix,java.util.function.BinaryOperator)"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseOperations","l":"applyBinOpp(CMatrix, CsrMatrix, BiFunction)","u":"applyBinOpp(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CsrMatrix,java.util.function.BiFunction)"},{"p":"org.flag4j.operations.dense_sparse.csr.complex","c":"ComplexCsrDenseOperations","l":"applyBinOpp(CsrCMatrix, CMatrix, BinaryOperator, UnaryOperator)","u":"applyBinOpp(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.dense.CMatrix,java.util.function.BinaryOperator,java.util.function.UnaryOperator)"},{"p":"org.flag4j.operations.dense_sparse.csr.complex","c":"ComplexCsrDenseOperations","l":"applyBinOpp(CsrCMatrix, CNumber, BinaryOperator, UnaryOperator)","u":"applyBinOpp(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.complex_numbers.CNumber,java.util.function.BinaryOperator,java.util.function.UnaryOperator)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrOperations","l":"applyBinOpp(CsrCMatrix, CsrCMatrix, BinaryOperator, UnaryOperator)","u":"applyBinOpp(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CsrCMatrix,java.util.function.BinaryOperator,java.util.function.UnaryOperator)"},{"p":"org.flag4j.operations.sparse.csr.real_complex","c":"RealComplexCsrOperations","l":"applyBinOpp(CsrCMatrix, CsrMatrix, BiFunction, UnaryOperator)","u":"applyBinOpp(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CsrMatrix,java.util.function.BiFunction,java.util.function.UnaryOperator)"},{"p":"org.flag4j.operations.dense_sparse.csr.complex","c":"ComplexCsrDenseOperations","l":"applyBinOpp(CsrCMatrix, double, BinaryOperator, UnaryOperator)","u":"applyBinOpp(org.flag4j.arrays.sparse.CsrCMatrix,double,java.util.function.BinaryOperator,java.util.function.UnaryOperator)"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseOperations","l":"applyBinOpp(CsrCMatrix, Matrix, BiFunction, UnaryOperator)","u":"applyBinOpp(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.dense.Matrix,java.util.function.BiFunction,java.util.function.UnaryOperator)"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseOperations","l":"applyBinOpp(CsrMatrix, CMatrix, BiFunction, UnaryOperator)","u":"applyBinOpp(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.CMatrix,java.util.function.BiFunction,java.util.function.UnaryOperator)"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseOperations","l":"applyBinOpp(CsrMatrix, CNumber, BiFunction, UnaryOperator)","u":"applyBinOpp(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.complex_numbers.CNumber,java.util.function.BiFunction,java.util.function.UnaryOperator)"},{"p":"org.flag4j.operations.sparse.csr.real_complex","c":"RealComplexCsrOperations","l":"applyBinOpp(CsrMatrix, CsrCMatrix, BiFunction, UnaryOperator)","u":"applyBinOpp(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CsrCMatrix,java.util.function.BiFunction,java.util.function.UnaryOperator)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrOperations","l":"applyBinOpp(CsrMatrix, CsrMatrix, BinaryOperator, UnaryOperator)","u":"applyBinOpp(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CsrMatrix,java.util.function.BinaryOperator,java.util.function.UnaryOperator)"},{"p":"org.flag4j.operations.dense_sparse.csr.real","c":"RealCsrDenseOperations","l":"applyBinOpp(CsrMatrix, double, BinaryOperator, UnaryOperator)","u":"applyBinOpp(org.flag4j.arrays.sparse.CsrMatrix,double,java.util.function.BinaryOperator,java.util.function.UnaryOperator)"},{"p":"org.flag4j.operations.dense_sparse.csr.real","c":"RealCsrDenseOperations","l":"applyBinOpp(CsrMatrix, Matrix, BinaryOperator, UnaryOperator)","u":"applyBinOpp(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.Matrix,java.util.function.BinaryOperator,java.util.function.UnaryOperator)"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseOperations","l":"applyBinOpp(Matrix, CsrCMatrix, BiFunction)","u":"applyBinOpp(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CsrCMatrix,java.util.function.BiFunction)"},{"p":"org.flag4j.operations.dense_sparse.csr.real","c":"RealCsrDenseOperations","l":"applyBinOpp(Matrix, CsrMatrix, BinaryOperator)","u":"applyBinOpp(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CsrMatrix,java.util.function.BinaryOperator)"},{"p":"org.flag4j.operations.dense_sparse.csr.complex","c":"ComplexCsrDenseOperations","l":"applyBinOppToSparse(CMatrix, CsrCMatrix, BinaryOperator)","u":"applyBinOppToSparse(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CsrCMatrix,java.util.function.BinaryOperator)"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseOperations","l":"applyBinOppToSparse(CMatrix, CsrMatrix, BiFunction)","u":"applyBinOppToSparse(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CsrMatrix,java.util.function.BiFunction)"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseOperations","l":"applyBinOppToSparse(CsrMatrix, CMatrix, BiFunction)","u":"applyBinOppToSparse(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.CMatrix,java.util.function.BiFunction)"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseOperations","l":"applyBinOppToSparse(Matrix, CsrCMatrix, BiFunction)","u":"applyBinOppToSparse(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CsrCMatrix,java.util.function.BiFunction)"},{"p":"org.flag4j.operations.dense_sparse.csr.real","c":"RealCsrDenseOperations","l":"applyBinOppToSparse(Matrix, CsrMatrix, BinaryOperator)","u":"applyBinOppToSparse(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CsrMatrix,java.util.function.BinaryOperator)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"applyDoubleShiftReflector(int, boolean)","u":"applyDoubleShiftReflector(int,boolean)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"applyDoubleShiftReflector(int, boolean)","u":"applyDoubleShiftReflector(int,boolean)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"applyReflector(int, int)","u":"applyReflector(int,int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"applyReflector(int, int)","u":"applyReflector(int,int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"applySingleShiftReflector(int, boolean)","u":"applySingleShiftReflector(int,boolean)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"applySingleShiftReflector(int, boolean)","u":"applySingleShiftReflector(int,boolean)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"applyTransform(CNumber[], Function)","u":"applyTransform(org.flag4j.complex_numbers.CNumber[],java.util.function.Function)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"applyTransform(double[], Function)","u":"applyTransform(double[],java.util.function.Function)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"applyTransform(double[], UnaryOperator)","u":"applyTransform(double[],java.util.function.UnaryOperator)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"applyTransform(T[], UnaryOperator)","u":"applyTransform(T[],java.util.function.UnaryOperator)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"applyUpdate"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"arg(CNumber)","u":"arg(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"argAsCNumber(CNumber)","u":"argAsCNumber(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.real","c":"AggregateDenseReal","l":"argEq(double[], double)","u":"argEq(double[],double)"},{"p":"org.flag4j.operations.dense.real","c":"AggregateDenseReal","l":"argEq(int[], int)","u":"argEq(int[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"argMax()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"argMax()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"argMax()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"argMax()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"argMax()"},{"p":"org.flag4j.core","c":"TensorPropertiesMixin","l":"argMax()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"argMax(CNumber...)","u":"argMax(org.flag4j.complex_numbers.CNumber...)"},{"p":"org.flag4j.operations.dense.complex","c":"AggregateDenseComplex","l":"argMax(CNumber[])","u":"argMax(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.real","c":"AggregateDenseReal","l":"argMax(double[])"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"argMaxReal(CNumber...)","u":"argMaxReal(org.flag4j.complex_numbers.CNumber...)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"argMin()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"argMin()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"argMin()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"argMin()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"argMin()"},{"p":"org.flag4j.core","c":"TensorPropertiesMixin","l":"argMin()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"argMin(CNumber...)","u":"argMin(org.flag4j.complex_numbers.CNumber...)"},{"p":"org.flag4j.operations.dense.complex","c":"AggregateDenseComplex","l":"argMin(CNumber[])","u":"argMin(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.real","c":"AggregateDenseReal","l":"argMin(double[])"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"argMinReal(CNumber...)","u":"argMinReal(org.flag4j.complex_numbers.CNumber...)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"ARRAY_LENGTHS_MISMATCH_ERR"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"arraycopy(double[], int, CNumber[], int, int)","u":"arraycopy(double[],int,org.flag4j.complex_numbers.CNumber[],int,int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"ArrayUtils()","u":"%3Cinit%3E()"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"asDouble(int[], double[])","u":"asDouble(int[],double[])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"asDouble(Integer[], double[])","u":"asDouble(java.lang.Integer[],double[])"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"asin(CNumber)","u":"asin(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"asin(double)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertArrayLengthsEq(int...)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertAxis2D(int)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertBroadcastable(Shape, Shape)","u":"assertBroadcastable(org.flag4j.core.Shape,org.flag4j.core.Shape)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertEquals(double...)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertEquals(int...)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertEqualShape(Shape, Shape)","u":"assertEqualShape(org.flag4j.core.Shape,org.flag4j.core.Shape)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertGreaterEq(double, double, String)","u":"assertGreaterEq(double,double,java.lang.String)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertGreaterEq(double, double...)","u":"assertGreaterEq(double,double...)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertGreaterEq(int, int)","u":"assertGreaterEq(int,int)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertGreaterEq(int, int...)","u":"assertGreaterEq(int,int...)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertIndexInBounds(int, int...)","u":"assertIndexInBounds(int,int...)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertInRange(double, double, double, String)","u":"assertInRange(double,double,double,java.lang.String)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertLessEq(BigInteger, int, String)","u":"assertLessEq(java.math.BigInteger,int,java.lang.String)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertLessEq(double, double, String)","u":"assertLessEq(double,double,java.lang.String)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertLessEq(double, double...)","u":"assertLessEq(double,double...)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertLessEq(int, int...)","u":"assertLessEq(int,int...)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertMatMultShapes(Shape, Shape)","u":"assertMatMultShapes(org.flag4j.core.Shape,org.flag4j.core.Shape)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertNonNegative(int)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertNotEquals(double, double)","u":"assertNotEquals(double,double)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertPermutation(int...)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertPositive(int)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertRank(int, Shape)","u":"assertRank(int,org.flag4j.core.Shape)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertSquare(Shape)","u":"assertSquare(org.flag4j.core.Shape)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertSquareMatrix(int, int)","u":"assertSquareMatrix(int,int)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertSquareMatrix(Shape)","u":"assertSquareMatrix(org.flag4j.core.Shape)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertTotalEntriesEq(double[][], CNumber[])","u":"assertTotalEntriesEq(double[][],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertTotalEntriesEq(double[][], double[])","u":"assertTotalEntriesEq(double[][],double[])"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertTotalEntriesEq(int[][], CNumber[])","u":"assertTotalEntriesEq(int[][],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertTotalEntriesEq(int[][], double[])","u":"assertTotalEntriesEq(int[][],double[])"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertTotalEntriesEq(Object[][], CNumber[])","u":"assertTotalEntriesEq(java.lang.Object[][],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertTotalEntriesEq(Object[][], double[])","u":"assertTotalEntriesEq(java.lang.Object[][],double[])"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertValidIndex(Shape, int...)","u":"assertValidIndex(org.flag4j.core.Shape,int...)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertValidIndices(int, int...)","u":"assertValidIndices(int,int...)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"atan(CNumber)","u":"atan(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"atan(double)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"atan2(CNumber)","u":"atan2(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"atan2AsCNumber(CNumber)","u":"atan2AsCNumber(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"augment(CMatrix)","u":"augment(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"augment(CMatrix)","u":"augment(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"augment(CMatrix)","u":"augment(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"augment(CMatrix)","u":"augment(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"augment(CMatrix)","u":"augment(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"augment(CMatrix)","u":"augment(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"augment(CMatrix)","u":"augment(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"augment(CooCMatrix)","u":"augment(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"augment(CooCMatrix)","u":"augment(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"augment(CooCMatrix)","u":"augment(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"augment(CooCMatrix)","u":"augment(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"augment(CooCMatrix)","u":"augment(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"augment(CooCMatrix)","u":"augment(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"augment(CooCMatrix)","u":"augment(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"augment(CooCVector)","u":"augment(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"augment(CooCVector)","u":"augment(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"augment(CooCVector)","u":"augment(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"augment(CooCVector)","u":"augment(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"augment(CooCVector)","u":"augment(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"augment(CooCVector)","u":"augment(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"augment(CooCVector)","u":"augment(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"augment(CooMatrix)","u":"augment(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"augment(CooMatrix)","u":"augment(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"augment(CooMatrix)","u":"augment(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"augment(CooMatrix)","u":"augment(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"augment(CooMatrix)","u":"augment(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"augment(CooMatrix)","u":"augment(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"augment(CooMatrix)","u":"augment(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"augment(CooVector)","u":"augment(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"augment(CooVector)","u":"augment(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"augment(CooVector)","u":"augment(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"augment(CooVector)","u":"augment(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"augment(CooVector)","u":"augment(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"augment(CooVector)","u":"augment(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"augment(CooVector)","u":"augment(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"augment(CsrCMatrix)","u":"augment(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"augment(CsrCMatrix)","u":"augment(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"augment(CsrMatrix)","u":"augment(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"augment(CsrMatrix)","u":"augment(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"augment(CVector)","u":"augment(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"augment(CVector)","u":"augment(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"augment(CVector)","u":"augment(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"augment(CVector)","u":"augment(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"augment(CVector)","u":"augment(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"augment(CVector)","u":"augment(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"augment(CVector)","u":"augment(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"augment(Matrix)","u":"augment(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"augment(Matrix)","u":"augment(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"augment(Matrix)","u":"augment(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"augment(Matrix)","u":"augment(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"augment(Matrix)","u":"augment(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"augment(Matrix)","u":"augment(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"augment(Matrix)","u":"augment(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"augment(Vector)","u":"augment(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"augment(Vector)","u":"augment(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"augment(Vector)","u":"augment(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"augment(Vector)","u":"augment(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"augment(Vector)","u":"augment(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"augment(Vector)","u":"augment(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"augment(Vector)","u":"augment(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"AXIS_ERR"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"AXIS_ERR_RANGE"},{"p":"org.flag4j.util","c":"Axis2D","l":"Axis2D()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactSolver","l":"backSolver"},{"p":"org.flag4j.linalg.solvers.lstsq","c":"LstsqSolver","l":"backSolver"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"BackSolver","l":"BackSolver(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"BLOCKED"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"BLOCKED"},{"p":"org.flag4j.operations","c":"TransposeDispatcher.Algorithm","l":"BLOCKED"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"BLOCKED_REORDERED"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"BLOCKED_REORDERED"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"BLOCKED_VECTOR"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"BLOCKED_VECTOR"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultiplication","l":"blocked(CNumber[], Shape, CNumber[], Shape)","u":"blocked(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"blocked(CNumber[], Shape, double[], Shape)","u":"blocked(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"blocked(double[], Shape, CNumber[], Shape)","u":"blocked(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultiplication","l":"blocked(double[], Shape, double[], Shape)","u":"blocked(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseTranspose","l":"blockedIntMatrix(int[][])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"blockedMatrix(CNumber[], int, int)","u":"blockedMatrix(org.flag4j.complex_numbers.CNumber[],int,int)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseTranspose","l":"blockedMatrix(double[], int, int)","u":"blockedMatrix(double[],int,int)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"blockedMatrixConcurrent(CNumber[], int, int)","u":"blockedMatrixConcurrent(org.flag4j.complex_numbers.CNumber[],int,int)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseTranspose","l":"blockedMatrixConcurrent(double[], int, int)","u":"blockedMatrixConcurrent(double[],int,int)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"blockedMatrixConcurrentHerm(CNumber[], int, int)","u":"blockedMatrixConcurrentHerm(org.flag4j.complex_numbers.CNumber[],int,int)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"blockedMatrixHerm(CNumber[], int, int)","u":"blockedMatrixHerm(org.flag4j.complex_numbers.CNumber[],int,int)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultiplication","l":"blockedReordered(CNumber[], Shape, CNumber[], Shape)","u":"blockedReordered(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"blockedReordered(CNumber[], Shape, double[], Shape)","u":"blockedReordered(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"blockedReordered(double[], Shape, CNumber[], Shape)","u":"blockedReordered(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultiplication","l":"blockedReordered(double[], Shape, double[], Shape)","u":"blockedReordered(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixMultiplication","l":"blockedVector(CNumber[], Shape, CNumber[], int[])","u":"blockedVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultiplication","l":"blockedVector(CNumber[], Shape, CNumber[], Shape)","u":"blockedVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"blockedVector(CNumber[], Shape, double[], int[])","u":"blockedVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],int[])"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"blockedVector(CNumber[], Shape, double[], Shape)","u":"blockedVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"blockedVector(double[], Shape, CNumber[], int[])","u":"blockedVector(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[])"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"blockedVector(double[], Shape, CNumber[], Shape)","u":"blockedVector(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixMultiplication","l":"blockedVector(double[], Shape, double[], int[])","u":"blockedVector(double[],org.flag4j.core.Shape,double[],int[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultiplication","l":"blockedVector(double[], Shape, double[], Shape)","u":"blockedVector(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.concurrency","c":"Configurations","l":"blockSize"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"boxed(double[])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"boxed(int[])"},{"p":"org.flag4j.io","c":"PrintOptions","l":"center"},{"p":"org.flag4j.util","c":"StringUtils","l":"center(String, int)","u":"center(java.lang.String,int)"},{"p":"org.flag4j.util","c":"StringUtils","l":"center(String, int, String)","u":"center(java.lang.String,int,java.lang.String)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"checkConvergence(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"checkConvergence(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"checkConvergence(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"checkFinite"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"BackSolver","l":"checkParams(T, int)","u":"checkParams(T,int)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ForwardSolver","l":"checkParams(T, int)","u":"checkParams(T,int)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"BackSolver","l":"checkSingular(double, int, int)","u":"checkSingular(double,int,int)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ForwardSolver","l":"checkSingular(double, int, int)","u":"checkSingular(double,int,int)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactTensorSolver","l":"checkSize(int, int)","u":"checkSize(int,int)"},{"p":"org.flag4j.linalg.decompositions.chol","c":"Cholesky","l":"Cholesky(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"chooseAlgorithm(Shape)","u":"chooseAlgorithm(org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"chooseAlgorithmComplex(Shape)","u":"chooseAlgorithmComplex(org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"chooseAlgorithmComplex(Shape, Shape)","u":"chooseAlgorithmComplex(org.flag4j.core.Shape,org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"chooseAlgorithmComplexTranspose(Shape)","u":"chooseAlgorithmComplexTranspose(org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"chooseAlgorithmComplexVector(Shape)","u":"chooseAlgorithmComplexVector(org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"chooseAlgorithmHermitian(Shape)","u":"chooseAlgorithmHermitian(org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"chooseAlgorithmRealComplex(Shape, Shape)","u":"chooseAlgorithmRealComplex(org.flag4j.core.Shape,org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"chooseAlgorithmRealComplexTranspose(Shape)","u":"chooseAlgorithmRealComplexTranspose(org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"chooseAlgorithmRealComplexVector(Shape)","u":"chooseAlgorithmRealComplexVector(org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"chooseAlgorithmRealVector(Shape)","u":"chooseAlgorithmRealVector(org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"chooseAlgorithmTensor(int)"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"chooseAlgorithmTensor(int, int)","u":"chooseAlgorithmTensor(int,int)"},{"p":"org.flag4j.io","c":"TensorInputStream","l":"close()"},{"p":"org.flag4j.io","c":"TensorOutputStream","l":"close()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(CMatrix)","u":"%3Cinit%3E(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(CNumber[][])","u":"%3Cinit%3E(org.flag4j.complex_numbers.CNumber[][])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(double[][])","u":"%3Cinit%3E(double[][])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(int)","u":"%3Cinit%3E(int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(int, CNumber)","u":"%3Cinit%3E(int,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(int, double)","u":"%3Cinit%3E(int,double)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(int, int)","u":"%3Cinit%3E(int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(int, int, CNumber)","u":"%3Cinit%3E(int,int,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(int, int, CNumber[])","u":"%3Cinit%3E(int,int,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(int, int, double)","u":"%3Cinit%3E(int,int,double)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(int[][])","u":"%3Cinit%3E(int[][])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(Matrix)","u":"%3Cinit%3E(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(Shape)","u":"%3Cinit%3E(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(Shape, CNumber)","u":"%3Cinit%3E(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(Shape, CNumber...)","u":"%3Cinit%3E(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber...)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(Shape, double)","u":"%3Cinit%3E(org.flag4j.core.Shape,double)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(Shape, double...)","u":"%3Cinit%3E(org.flag4j.core.Shape,double...)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(String[][])","u":"%3Cinit%3E(java.lang.String[][])"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"CNumber(double)","u":"%3Cinit%3E(double)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"CNumber(double, double)","u":"%3Cinit%3E(double,double)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"CNumber(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"org.flag4j.complex_numbers","c":"CNumberLexer","l":"CNumberLexer(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"org.flag4j.complex_numbers","c":"CNumberParser","l":"CNumberParser()","u":"%3Cinit%3E()"},{"p":"org.flag4j.complex_numbers","c":"CNumberToken","l":"CNumberToken(String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String)"},{"p":"org.flag4j.complex_numbers","c":"CNumberUtils","l":"CNumberUtils()","u":"%3Cinit%3E()"},{"p":"org.flag4j.util","c":"Axis2D","l":"COL"},{"p":"org.flag4j.util","c":"Axis2D","l":"col()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"colIndices"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"colIndices"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"colIndices"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"colIndices"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"colSwaps"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"compareTo(CNumber)","u":"compareTo(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"compareToReal(CNumber)","u":"compareToReal(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"compareToReal(double)"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"COMPLEX_BLOCKED_THRESHOLD"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"COMPLEX_RNG"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexBackSolver","l":"ComplexBackSolver()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexBackSolver","l":"ComplexBackSolver(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.linalg.decompositions.chol","c":"ComplexCholesky","l":"ComplexCholesky()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.chol","c":"ComplexCholesky","l":"ComplexCholesky(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexCooTensorDot","l":"ComplexCooTensorDot()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexCooTensorOperations","l":"ComplexCooTensorOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.csr.complex","c":"ComplexCsrDenseMatrixMultiplication","l":"ComplexCsrDenseMatrixMultiplication()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.csr.complex","c":"ComplexCsrDenseOperations","l":"ComplexCsrDenseOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrEquals","l":"ComplexCsrEquals()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrManipulations","l":"ComplexCsrManipulations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrMatrixMultiplication","l":"ComplexCsrMatrixMultiplication()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrOperations","l":"ComplexCsrOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrProperties","l":"ComplexCsrProperties()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseDeterminant","l":"ComplexDenseDeterminant()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseElemDiv","l":"ComplexDenseElemDiv()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseElemMult","l":"ComplexDenseElemMult()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseEquals","l":"ComplexDenseEquals()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.common","c":"TensorEquals","l":"complexDenseLookUp"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultiplication","l":"ComplexDenseMatrixMultiplication()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultTranspose","l":"ComplexDenseMatrixMultTranspose()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"ComplexDenseOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseProperties","l":"ComplexDenseProperties()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseSetOperations","l":"ComplexDenseSetOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseEquals","l":"ComplexDenseSparseEquals()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixMultiplication","l":"ComplexDenseSparseMatrixMultiplication()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixMultTranspose","l":"ComplexDenseSparseMatrixMultTranspose()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixOperations","l":"ComplexDenseSparseMatrixOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseOperations","l":"ComplexDenseSparseOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseVectorOperations","l":"ComplexDenseSparseVectorOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"ComplexDenseTensorBase(Shape, CNumber[])","u":"%3Cinit%3E(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTensorDot","l":"ComplexDenseTensorDot()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"ComplexDenseTranspose()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseVectorOperations","l":"ComplexDenseVectorOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.solvers.exact","c":"ComplexExactSolver","l":"ComplexExactSolver()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.solvers.exact","c":"ComplexExactTensorSolver","l":"ComplexExactTensorSolver()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexForwardSolver","l":"ComplexForwardSolver()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexForwardSolver","l":"ComplexForwardSolver(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexForwardSolver","l":"ComplexForwardSolver(boolean, boolean)","u":"%3Cinit%3E(boolean,boolean)"},{"p":"org.flag4j.linalg.decompositions.hess","c":"ComplexHess","l":"ComplexHess()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.hess","c":"ComplexHess","l":"ComplexHess(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.linalg.solvers.lstsq","c":"ComplexLstsqSolver","l":"ComplexLstsqSolver()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"ComplexLU","l":"ComplexLU()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"ComplexLU","l":"ComplexLU(int)","u":"%3Cinit%3E(int)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"ComplexLU","l":"ComplexLU(int, double)","u":"%3Cinit%3E(int,double)"},{"p":"org.flag4j.operations.common.complex","c":"ComplexOperations","l":"ComplexOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.common.complex","c":"ComplexProperties","l":"ComplexProperties()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.qr","c":"ComplexQR","l":"ComplexQR()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.qr","c":"ComplexQR","l":"ComplexQR(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"ComplexSchur()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"ComplexSchur(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"ComplexSchur(boolean, long)","u":"%3Cinit%3E(boolean,long)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"ComplexSchur(long)","u":"%3Cinit%3E(long)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseElementSearch","l":"ComplexSparseElementSearch()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseEquals","l":"ComplexSparseEquals()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.common","c":"TensorEquals","l":"complexSparseLookUp"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"ComplexSparseMatrixGetSet()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixManipulations","l":"ComplexSparseMatrixManipulations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixMultiplication","l":"ComplexSparseMatrixMultiplication()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixOperations","l":"ComplexSparseMatrixOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixProperties","l":"ComplexSparseMatrixProperties()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseNorms","l":"ComplexSparseNorms()","u":"%3Cinit%3E()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"ComplexSparseTensorBase(Shape, int, CNumber[], int[], int[]...)","u":"%3Cinit%3E(org.flag4j.core.Shape,int,org.flag4j.complex_numbers.CNumber[],int[],int[]...)"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"ComplexSparseTensorBase(Shape, int, CNumber[], int[][])","u":"%3Cinit%3E(org.flag4j.core.Shape,int,org.flag4j.complex_numbers.CNumber[],int[][])"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseVectorOperations","l":"ComplexSparseVectorOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.svd","c":"ComplexSVD","l":"ComplexSVD()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.svd","c":"ComplexSVD","l":"ComplexSVD(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.linalg.decompositions.svd","c":"ComplexSVD","l":"ComplexSVD(boolean, boolean)","u":"%3Cinit%3E(boolean,boolean)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"ComplexUnitaryDecomposition","l":"ComplexUnitaryDecomposition(int)","u":"%3Cinit%3E(int)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"ComplexUnitaryDecomposition","l":"ComplexUnitaryDecomposition(int, boolean)","u":"%3Cinit%3E(int,boolean)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"computeExceptionalShift(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"computeExceptionalShift(int)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"ComplexUnitaryDecomposition","l":"computeHouseholder(int)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"RealUnitaryDecomposition","l":"computeHouseholder(int)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"computeHouseholder(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"computeImplicitDoubleShift(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"computeImplicitDoubleShift(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"computeImplicitSingleShift(int, CNumber)","u":"computeImplicitSingleShift(int,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"computeImplicitSingleShift(int, double)","u":"computeImplicitSingleShift(int,double)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"ComplexUnitaryDecomposition","l":"computePhasedNorm(int, double)","u":"computePhasedNorm(int,double)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"RealUnitaryDecomposition","l":"computePhasedNorm(int, double)","u":"computePhasedNorm(int,double)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"computePhasedNorm(int, double)","u":"computePhasedNorm(int,double)"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"computeRank(int, int, double[])","u":"computeRank(int,int,double[])"},{"p":"org.flag4j.linalg.decompositions.lu","c":"ComplexLU","l":"computeRows(int)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"RealLU","l":"computeRows(int)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"computeSwaps()"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"computeU"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"computeUV"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"CONCURRENT_BLOCKED"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"CONCURRENT_BLOCKED"},{"p":"org.flag4j.operations","c":"TransposeDispatcher.Algorithm","l":"CONCURRENT_BLOCKED"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"CONCURRENT_BLOCKED_REORDERED"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"CONCURRENT_BLOCKED_REORDERED"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"CONCURRENT_BLOCKED_VECTOR"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"CONCURRENT_BLOCKED_VECTOR"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"CONCURRENT_REORDERED"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"CONCURRENT_REORDERED"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"CONCURRENT_STANDARD"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"CONCURRENT_STANDARD"},{"p":"org.flag4j.operations","c":"TransposeDispatcher.Algorithm","l":"CONCURRENT_STANDARD"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"CONCURRENT_STANDARD_VECTOR"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"CONCURRENT_STANDARD_VECTOR"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"CONCURRENT_SWAPPED_THRESHOLD"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher","l":"CONCURRENT_SWAPPED_THRESHOLD"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseElemDiv","l":"CONCURRENT_THRESHOLD"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseElemMult","l":"CONCURRENT_THRESHOLD"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseElemDiv","l":"CONCURRENT_THRESHOLD"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseElemMult","l":"CONCURRENT_THRESHOLD"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseElemDiv","l":"CONCURRENT_THRESHOLD"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseElemMult","l":"CONCURRENT_THRESHOLD"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"CONCURRENT_THRESHOLD"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixMultiplication","l":"concurrentAtomicArray(double[], int[], int[], Shape, double[], Shape)","u":"concurrentAtomicArray(double[],int[],int[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultiplication","l":"concurrentBlocked(CNumber[], Shape, CNumber[], Shape)","u":"concurrentBlocked(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"concurrentBlocked(CNumber[], Shape, double[], Shape)","u":"concurrentBlocked(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"concurrentBlocked(double[], Shape, CNumber[], Shape)","u":"concurrentBlocked(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultiplication","l":"concurrentBlocked(double[], Shape, double[], Shape)","u":"concurrentBlocked(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultiplication","l":"concurrentBlockedReordered(CNumber[], Shape, CNumber[], Shape)","u":"concurrentBlockedReordered(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"concurrentBlockedReordered(CNumber[], Shape, double[], Shape)","u":"concurrentBlockedReordered(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"concurrentBlockedReordered(double[], Shape, CNumber[], Shape)","u":"concurrentBlockedReordered(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultiplication","l":"concurrentBlockedReordered(double[], Shape, double[], Shape)","u":"concurrentBlockedReordered(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixMultiplication","l":"concurrentBlockedVector(CNumber[], Shape, CNumber[], int[])","u":"concurrentBlockedVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultiplication","l":"concurrentBlockedVector(CNumber[], Shape, CNumber[], Shape)","u":"concurrentBlockedVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"concurrentBlockedVector(CNumber[], Shape, double[], int[])","u":"concurrentBlockedVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],int[])"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"concurrentBlockedVector(CNumber[], Shape, double[], Shape)","u":"concurrentBlockedVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"concurrentBlockedVector(double[], Shape, CNumber[], int[])","u":"concurrentBlockedVector(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[])"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"concurrentBlockedVector(double[], Shape, CNumber[], Shape)","u":"concurrentBlockedVector(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixMultiplication","l":"concurrentBlockedVector(double[], Shape, double[], int[])","u":"concurrentBlockedVector(double[],org.flag4j.core.Shape,double[],int[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultiplication","l":"concurrentBlockedVector(double[], Shape, double[], Shape)","u":"concurrentBlockedVector(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.concurrency","c":"ThreadManager","l":"concurrentLoop(int, int, int, IntConsumer)","u":"concurrentLoop(int,int,int,java.util.function.IntConsumer)"},{"p":"org.flag4j.concurrency","c":"ThreadManager","l":"concurrentLoop(int, int, IntConsumer)","u":"concurrentLoop(int,int,java.util.function.IntConsumer)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultiplication","l":"concurrentReordered(CNumber[], Shape, CNumber[], Shape)","u":"concurrentReordered(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"concurrentReordered(CNumber[], Shape, double[], Shape)","u":"concurrentReordered(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"concurrentReordered(double[], Shape, CNumber[], Shape)","u":"concurrentReordered(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultiplication","l":"concurrentReordered(double[], Shape, double[], Shape)","u":"concurrentReordered(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixMultiplication","l":"concurrentStandard(CNumber[], int[], int[], Shape, CNumber[], int[], int[], Shape)","u":"concurrentStandard(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixMultiplication","l":"concurrentStandard(CNumber[], int[], int[], Shape, CNumber[], Shape)","u":"concurrentStandard(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixMultiplication","l":"concurrentStandard(CNumber[], int[], int[], Shape, double[], int[], int[], Shape)","u":"concurrentStandard(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,double[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"concurrentStandard(CNumber[], int[], int[], Shape, double[], Shape)","u":"concurrentStandard(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixMultiplication","l":"concurrentStandard(CNumber[], Shape, CNumber[], int[], int[], Shape)","u":"concurrentStandard(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultiplication","l":"concurrentStandard(CNumber[], Shape, CNumber[], Shape)","u":"concurrentStandard(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"concurrentStandard(CNumber[], Shape, double[], int[], int[], Shape)","u":"concurrentStandard(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"concurrentStandard(CNumber[], Shape, double[], Shape)","u":"concurrentStandard(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixMultiplication","l":"concurrentStandard(double[], int[], int[], Shape, CNumber[], int[], int[], Shape)","u":"concurrentStandard(double[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"concurrentStandard(double[], int[], int[], Shape, CNumber[], Shape)","u":"concurrentStandard(double[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixMultiplication","l":"concurrentStandard(double[], int[], int[], Shape, double[], int[], int[], Shape)","u":"concurrentStandard(double[],int[],int[],org.flag4j.core.Shape,double[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixMultiplication","l":"concurrentStandard(double[], int[], int[], Shape, double[], Shape)","u":"concurrentStandard(double[],int[],int[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"concurrentStandard(double[], Shape, CNumber[], int[], int[], Shape)","u":"concurrentStandard(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"concurrentStandard(double[], Shape, CNumber[], Shape)","u":"concurrentStandard(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixMultiplication","l":"concurrentStandard(double[], Shape, double[], int[], int[], Shape)","u":"concurrentStandard(double[],org.flag4j.core.Shape,double[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultiplication","l":"concurrentStandard(double[], Shape, double[], Shape)","u":"concurrentStandard(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixMultiplication","l":"concurrentStandardVector(CNumber[], int[], int[], Shape, CNumber[], int[])","u":"concurrentStandardVector(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[])"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixMultiplication","l":"concurrentStandardVector(CNumber[], int[], int[], Shape, CNumber[], Shape)","u":"concurrentStandardVector(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixMultiplication","l":"concurrentStandardVector(CNumber[], int[], int[], Shape, double[], int[], Shape)","u":"concurrentStandardVector(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,double[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"concurrentStandardVector(CNumber[], int[], int[], Shape, double[], Shape)","u":"concurrentStandardVector(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixMultiplication","l":"concurrentStandardVector(CNumber[], Shape, CNumber[], int[])","u":"concurrentStandardVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultiplication","l":"concurrentStandardVector(CNumber[], Shape, CNumber[], Shape)","u":"concurrentStandardVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"concurrentStandardVector(CNumber[], Shape, double[], int[])","u":"concurrentStandardVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],int[])"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"concurrentStandardVector(CNumber[], Shape, double[], Shape)","u":"concurrentStandardVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixMultiplication","l":"concurrentStandardVector(double[], int[], int[], Shape, CNumber[], int[], Shape)","u":"concurrentStandardVector(double[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"concurrentStandardVector(double[], int[], int[], Shape, CNumber[], Shape)","u":"concurrentStandardVector(double[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixMultiplication","l":"concurrentStandardVector(double[], int[], int[], Shape, double[], int[])","u":"concurrentStandardVector(double[],int[],int[],org.flag4j.core.Shape,double[],int[])"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixMultiplication","l":"concurrentStandardVector(double[], int[], int[], Shape, double[], Shape)","u":"concurrentStandardVector(double[],int[],int[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"concurrentStandardVector(double[], Shape, CNumber[], int[])","u":"concurrentStandardVector(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[])"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"concurrentStandardVector(double[], Shape, CNumber[], Shape)","u":"concurrentStandardVector(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixMultiplication","l":"concurrentStandardVector(double[], Shape, double[], int[])","u":"concurrentStandardVector(double[],org.flag4j.core.Shape,double[],int[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultiplication","l":"concurrentStandardVector(double[], Shape, double[], Shape)","u":"concurrentStandardVector(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.linalg","c":"Condition","l":"cond(CMatrix)","u":"cond(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"Condition","l":"cond(CMatrix, double)","u":"cond(org.flag4j.arrays.dense.CMatrix,double)"},{"p":"org.flag4j.linalg","c":"Condition","l":"cond(Matrix)","u":"cond(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg","c":"Condition","l":"cond(Matrix, double)","u":"cond(org.flag4j.arrays.dense.Matrix,double)"},{"p":"org.flag4j.linalg","c":"Condition","l":"Condition()","u":"%3Cinit%3E()"},{"p":"org.flag4j.concurrency","c":"Configurations","l":"Configurations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"conj()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"conj()"},{"p":"org.flag4j.core","c":"ComplexMatrixMixin","l":"conj()"},{"p":"org.flag4j.core","c":"ComplexTensorMixin","l":"conj()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"conj()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"conj()"},{"p":"org.flag4j.operations.common.complex","c":"ComplexOperations","l":"conj(CNumber[])","u":"conj(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.core","c":"ComplexMatrixMixin","l":"conjT()"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"contains(double[], double)","u":"contains(double[],double)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"contains(double[], double...)","u":"contains(double[],double...)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"contains(int[], int)","u":"contains(int[],int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"contains(int[], int...)","u":"contains(int[],int...)"},{"p":"org.flag4j.complex_numbers","c":"CNumberLexer","l":"content"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"CooCMatrix(CooCMatrix)","u":"%3Cinit%3E(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"CooCMatrix(int)","u":"%3Cinit%3E(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"CooCMatrix(int, CNumber[], int[], int[])","u":"%3Cinit%3E(int,org.flag4j.complex_numbers.CNumber[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"CooCMatrix(int, double[], int[], int[])","u":"%3Cinit%3E(int,double[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"CooCMatrix(int, int)","u":"%3Cinit%3E(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"CooCMatrix(int, int, CNumber[], int[], int[])","u":"%3Cinit%3E(int,int,org.flag4j.complex_numbers.CNumber[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"CooCMatrix(int, int, double[], int[], int[])","u":"%3Cinit%3E(int,int,double[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"CooCMatrix(int, int, int[], int[], int[])","u":"%3Cinit%3E(int,int,int[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"CooCMatrix(int, int[], int[], int[])","u":"%3Cinit%3E(int,int[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"CooCMatrix(Shape)","u":"%3Cinit%3E(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"CooCMatrix(Shape, CNumber[], int[], int[])","u":"%3Cinit%3E(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"CooCMatrix(Shape, double[], int[], int[])","u":"%3Cinit%3E(org.flag4j.core.Shape,double[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"CooCMatrix(Shape, int[], int[], int[])","u":"%3Cinit%3E(org.flag4j.core.Shape,int[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"CooCMatrix(Shape, List, List, List)","u":"%3Cinit%3E(org.flag4j.core.Shape,java.util.List,java.util.List,java.util.List)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"CooCTensor(CooCTensor)","u":"%3Cinit%3E(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"CooCTensor(Shape)","u":"%3Cinit%3E(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"CooCTensor(Shape, CNumber[], int[][])","u":"%3Cinit%3E(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"CooCTensor(Shape, double[], int[][])","u":"%3Cinit%3E(org.flag4j.core.Shape,double[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"CooCTensor(Shape, int[], int[][])","u":"%3Cinit%3E(org.flag4j.core.Shape,int[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"CooCTensor(Shape, List, List)","u":"%3Cinit%3E(org.flag4j.core.Shape,java.util.List,java.util.List)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"CooCVector(CooCVector)","u":"%3Cinit%3E(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"CooCVector(int)","u":"%3Cinit%3E(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"CooCVector(int, CNumber[], int[])","u":"%3Cinit%3E(int,org.flag4j.complex_numbers.CNumber[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"CooCVector(int, double[], int[])","u":"%3Cinit%3E(int,double[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"CooCVector(int, int[], int[])","u":"%3Cinit%3E(int,int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"CooCVector(int, List, List)","u":"%3Cinit%3E(int,java.util.List,java.util.List)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"CooMatrix(CooMatrix)","u":"%3Cinit%3E(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"CooMatrix(int)","u":"%3Cinit%3E(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"CooMatrix(int, double[], int[], int[])","u":"%3Cinit%3E(int,double[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"CooMatrix(int, int)","u":"%3Cinit%3E(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"CooMatrix(int, int, double[], int[], int[])","u":"%3Cinit%3E(int,int,double[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"CooMatrix(int, int, int[], int[], int[])","u":"%3Cinit%3E(int,int,int[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"CooMatrix(int, int[], int[], int[])","u":"%3Cinit%3E(int,int[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"CooMatrix(Shape)","u":"%3Cinit%3E(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"CooMatrix(Shape, double[], int[], int[])","u":"%3Cinit%3E(org.flag4j.core.Shape,double[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"CooMatrix(Shape, int[], int[], int[])","u":"%3Cinit%3E(org.flag4j.core.Shape,int[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"CooMatrix(Shape, List, List, List)","u":"%3Cinit%3E(org.flag4j.core.Shape,java.util.List,java.util.List,java.util.List)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"CooTensor(CooTensor)","u":"%3Cinit%3E(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"CooTensor(Shape)","u":"%3Cinit%3E(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"CooTensor(Shape, double[], int[][])","u":"%3Cinit%3E(org.flag4j.core.Shape,double[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"CooTensor(Shape, int[], int[][])","u":"%3Cinit%3E(org.flag4j.core.Shape,int[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"CooTensor(Shape, List, List)","u":"%3Cinit%3E(org.flag4j.core.Shape,java.util.List,java.util.List)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"CooVector(CooVector)","u":"%3Cinit%3E(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"CooVector(int)","u":"%3Cinit%3E(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"CooVector(int, double[], int[])","u":"%3Cinit%3E(int,double[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"CooVector(int, int[], int[])","u":"%3Cinit%3E(int,int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"CooVector(int, List, List)","u":"%3Cinit%3E(int,java.util.List,java.util.List)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"copy()"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"copy()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"copy()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"copy()"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"copy()"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"copy()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"copy()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"copy()"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"copy()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"copy()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"copy()"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"copy()"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"copy()"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"copy2CNumber(double[], CNumber[])","u":"copy2CNumber(double[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"copy2CNumber(Double[], CNumber[])","u":"copy2CNumber(java.lang.Double[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"copy2CNumber(int[], CNumber[])","u":"copy2CNumber(int[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"copy2CNumber(Integer[], CNumber[])","u":"copy2CNumber(java.lang.Integer[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"copy2CNumber(String[], CNumber[])","u":"copy2CNumber(java.lang.String[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"copyIndices()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"copyIndices()"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixManipulations","l":"copyRanges(CooCMatrix, CNumber[], int[], int[], int[])","u":"copyRanges(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.complex_numbers.CNumber[],int[],int[],int[])"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixManipulations","l":"copyRanges(CooMatrix, double[], int[], int[], int[])","u":"copyRanges(org.flag4j.arrays.sparse.CooMatrix,double[],int[],int[],int[])"},{"p":"org.flag4j.linalg.decompositions.hess","c":"SymmHess","l":"copyUpperTri(Matrix)","u":"copyUpperTri(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"copyValuesNotInSlice(CooCMatrix, List, List, List, int[], int[])","u":"copyValuesNotInSlice(org.flag4j.arrays.sparse.CooCMatrix,java.util.List,java.util.List,java.util.List,int[],int[])"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"copyValuesNotInSlice(CooMatrix, List, List, List, int[], int[])","u":"copyValuesNotInSlice(org.flag4j.arrays.sparse.CooMatrix,java.util.List,java.util.List,java.util.List,int[],int[])"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"cos(CNumber)","u":"cos(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"cos(double)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"cosh(CNumber)","u":"cosh(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"cosh(double)"},{"p":"org.flag4j.linalg.decompositions","c":"DecompositionFactory","l":"createComplexChol()"},{"p":"org.flag4j.linalg.decompositions","c":"DecompositionFactory","l":"createComplexHess()"},{"p":"org.flag4j.linalg.decompositions","c":"DecompositionFactory","l":"createComplexLU()"},{"p":"org.flag4j.linalg.decompositions","c":"DecompositionFactory","l":"createComplexQR()"},{"p":"org.flag4j.linalg.decompositions","c":"DecompositionFactory","l":"createComplexSchur()"},{"p":"org.flag4j.linalg.decompositions","c":"DecompositionFactory","l":"createComplexSVD()"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseUtils","l":"createMap(int, int[])","u":"createMap(int,int[])"},{"p":"org.flag4j.core","c":"Shape","l":"createNewStrides()"},{"p":"org.flag4j.linalg.decompositions","c":"DecompositionFactory","l":"createRealChol()"},{"p":"org.flag4j.linalg.decompositions","c":"DecompositionFactory","l":"createRealHess()"},{"p":"org.flag4j.linalg.decompositions","c":"DecompositionFactory","l":"createRealLU()"},{"p":"org.flag4j.linalg.decompositions","c":"DecompositionFactory","l":"createRealQR()"},{"p":"org.flag4j.linalg.decompositions","c":"DecompositionFactory","l":"createRealSchur()"},{"p":"org.flag4j.linalg.decompositions","c":"DecompositionFactory","l":"createRealSVD()"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"createUniqueMapping(int[])"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"cross(CVector)","u":"cross(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"cross(CVector)","u":"cross(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"cross(Vector)","u":"cross(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"cross(Vector)","u":"cross(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"CsrCMatrix(CooCMatrix)","u":"%3Cinit%3E(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"CsrCMatrix(CooMatrix)","u":"%3Cinit%3E(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"CsrCMatrix(CsrCMatrix)","u":"%3Cinit%3E(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"CsrCMatrix(int, int)","u":"%3Cinit%3E(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"CsrCMatrix(int, int, CNumber[], int[], int[])","u":"%3Cinit%3E(int,int,org.flag4j.complex_numbers.CNumber[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"CsrCMatrix(Shape)","u":"%3Cinit%3E(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"CsrCMatrix(Shape, CNumber[], int[], int[])","u":"%3Cinit%3E(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"CsrCMatrix(Shape, double[], int[], int[])","u":"%3Cinit%3E(org.flag4j.core.Shape,double[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"SparseUtils","l":"CSREquals(CsrCMatrix, CsrCMatrix)","u":"CSREquals(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"SparseUtils","l":"CSREquals(CsrMatrix, CsrMatrix)","u":"CSREquals(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"CsrMatrix(CooMatrix)","u":"%3Cinit%3E(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"CsrMatrix(CsrMatrix)","u":"%3Cinit%3E(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"CsrMatrix(int, int)","u":"%3Cinit%3E(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"CsrMatrix(int, int, double[], int[], int[])","u":"%3Cinit%3E(int,int,double[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"CsrMatrix(Shape)","u":"%3Cinit%3E(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"CsrMatrix(Shape, double[], int[], int[])","u":"%3Cinit%3E(org.flag4j.core.Shape,double[],int[],int[])"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"CTensor(CTensor)","u":"%3Cinit%3E(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"CTensor(Shape)","u":"%3Cinit%3E(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"CTensor(Shape, CNumber)","u":"%3Cinit%3E(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"CTensor(Shape, CNumber[])","u":"%3Cinit%3E(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"CTensor(Shape, double)","u":"%3Cinit%3E(org.flag4j.core.Shape,double)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"CTensor(Shape, double[])","u":"%3Cinit%3E(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"CTensor(Shape, int[])","u":"%3Cinit%3E(org.flag4j.core.Shape,int[])"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"CTensor(Tensor)","u":"%3Cinit%3E(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"currentFactor"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"currentFactor"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"ComplexUnitaryDecomposition","l":"currentFactor"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"RealUnitaryDecomposition","l":"currentFactor"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"CVector(CNumber...)","u":"%3Cinit%3E(org.flag4j.complex_numbers.CNumber...)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"CVector(CVector)","u":"%3Cinit%3E(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"CVector(double...)","u":"%3Cinit%3E(double...)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"CVector(int)","u":"%3Cinit%3E(int)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"CVector(int, CNumber)","u":"%3Cinit%3E(int,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"CVector(int, double)","u":"%3Cinit%3E(int,double)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"CVector(int...)","u":"%3Cinit%3E(int...)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"CVector(Vector)","u":"%3Cinit%3E(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.concurrency","c":"ThreadManager","l":"daemonFactory"},{"p":"org.flag4j.linalg.decompositions.chol","c":"ComplexCholesky","l":"decompose(CMatrix)","u":"decompose(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.decompositions.hess","c":"ComplexHess","l":"decompose(CMatrix)","u":"decompose(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.decompositions.qr","c":"ComplexQR","l":"decompose(CMatrix)","u":"decompose(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"decompose(CMatrix)","u":"decompose(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.decompositions.chol","c":"RealCholesky","l":"decompose(Matrix)","u":"decompose(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.decompositions.hess","c":"RealHess","l":"decompose(Matrix)","u":"decompose(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.decompositions.hess","c":"SymmHess","l":"decompose(Matrix)","u":"decompose(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.decompositions.qr","c":"RealQR","l":"decompose(Matrix)","u":"decompose(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"decompose(Matrix)","u":"decompose(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.decompositions","c":"Decomposition","l":"decompose(T)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"decompose(T)"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"decompose(T)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactSolver","l":"decompose(T)"},{"p":"org.flag4j.linalg.solvers.lstsq","c":"LstsqSolver","l":"decompose(T)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"decomposeBase(T)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"decomposeBase(T)"},{"p":"org.flag4j.linalg.decompositions","c":"DecompositionFactory","l":"DecompositionFactory()","u":"%3Cinit%3E()"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"deepCopy(int[][], int[][])","u":"deepCopy(int[][],int[][])"},{"p":"org.flag4j.concurrency","c":"Configurations","l":"DEFAULT_BLOCK_SIZE"},{"p":"org.flag4j.io","c":"PrintOptions","l":"DEFAULT_CENTER"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"DEFAULT_EXCEPTIONAL_ITERS"},{"p":"org.flag4j.io","c":"PrintOptions","l":"DEFAULT_MAX_COLS"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"DEFAULT_MAX_ITERS_FACTOR"},{"p":"org.flag4j.io","c":"PrintOptions","l":"DEFAULT_MAX_ROWS"},{"p":"org.flag4j.concurrency","c":"Configurations","l":"DEFAULT_MIN_RECURSIVE_SIZE"},{"p":"org.flag4j.concurrency","c":"Configurations","l":"DEFAULT_NUM_THREADS"},{"p":"org.flag4j.io","c":"PrintOptions","l":"DEFAULT_PADDING"},{"p":"org.flag4j.linalg.decompositions.chol","c":"Cholesky","l":"DEFAULT_POS_DEF_TOLERANCE"},{"p":"org.flag4j.io","c":"PrintOptions","l":"DEFAULT_PRECISION"},{"p":"org.flag4j.core","c":"TensorBase","l":"DEFAULT_ROUND_TO_ZERO_THRESHOLD"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"DEFAULT_ZERO_PIVOT_TOLERANCE"},{"p":"org.flag4j.core.dense_base","c":"DenseTensorBase","l":"DenseTensorBase(Shape, D)","u":"%3Cinit%3E(org.flag4j.core.Shape,D)"},{"p":"org.flag4j.core.sparse_base","c":"SparseTensorBase","l":"density()"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexBackSolver","l":"det"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexForwardSolver","l":"det"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealBackSolver","l":"det"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealForwardSolver","l":"det"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"det()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"det()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"det()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"det()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"det()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"det()"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"det()"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"det()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseDeterminant","l":"det(CMatrix)","u":"det(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseDeterminant","l":"det(Matrix)","u":"det(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseDeterminant","l":"det1(CMatrix)","u":"det1(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseDeterminant","l":"det1(Matrix)","u":"det1(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseDeterminant","l":"det2(CMatrix)","u":"det2(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseDeterminant","l":"det2(Matrix)","u":"det2(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseDeterminant","l":"det3(CMatrix)","u":"det3(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseDeterminant","l":"det3(Matrix)","u":"det3(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.complex_numbers","c":"CNumberToken","l":"details"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseDeterminant","l":"detLU(CMatrix)","u":"detLU(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseDeterminant","l":"detLU(Matrix)","u":"detLU(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseDeterminant","l":"detTri(CMatrix)","u":"detTri(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseDeterminant","l":"detTri(Matrix)","u":"detTri(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"SymmTriDiagonal","l":"diag"},{"p":"org.flag4j.complex_numbers","c":"CNumberLexer","l":"digit(int)"},{"p":"org.flag4j.core","c":"Shape","l":"dims"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"DirectSum()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CMatrix, CMatrix)","u":"directSum(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CMatrix, CooCMatrix)","u":"directSum(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CMatrix, CooMatrix)","u":"directSum(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CMatrix, Matrix)","u":"directSum(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CooCMatrix, CMatrix)","u":"directSum(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CooCMatrix, CooCMatrix)","u":"directSum(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CooCMatrix, CooMatrix)","u":"directSum(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CooCMatrix, Matrix)","u":"directSum(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CooMatrix, CMatrix)","u":"directSum(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CooMatrix, CooCMatrix)","u":"directSum(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CooMatrix, CooMatrix)","u":"directSum(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CooMatrix, Matrix)","u":"directSum(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CsrCMatrix, CMatrix)","u":"directSum(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CsrCMatrix, CooCMatrix)","u":"directSum(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CsrCMatrix, CooMatrix)","u":"directSum(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CsrCMatrix, Matrix)","u":"directSum(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CsrMatrix, CMatrix)","u":"directSum(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CsrMatrix, CooCMatrix)","u":"directSum(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CsrMatrix, CooMatrix)","u":"directSum(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CsrMatrix, Matrix)","u":"directSum(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(Matrix, CMatrix)","u":"directSum(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(Matrix, CooCMatrix)","u":"directSum(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(Matrix, CooMatrix)","u":"directSum(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(Matrix, Matrix)","u":"directSum(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"dispatch(CMatrix)","u":"dispatch(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"dispatch(CMatrix, CMatrix)","u":"dispatch(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"dispatch(CMatrix, CVector)","u":"dispatch(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"dispatch(CMatrix, Matrix)","u":"dispatch(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"dispatch(CMatrix, Vector)","u":"dispatch(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseElemDiv","l":"dispatch(CNumber[], Shape, CNumber[], Shape)","u":"dispatch(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseElemMult","l":"dispatch(CNumber[], Shape, CNumber[], Shape)","u":"dispatch(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"dispatch(CNumber[], Shape, CNumber[], Shape)","u":"dispatch(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseElemDiv","l":"dispatch(CNumber[], Shape, double[], Shape)","u":"dispatch(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseElemMult","l":"dispatch(CNumber[], Shape, double[], Shape)","u":"dispatch(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseElemDiv","l":"dispatch(double[], Shape, CNumber[], Shape)","u":"dispatch(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseElemDiv","l":"dispatch(double[], Shape, double[], Shape)","u":"dispatch(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseElemMult","l":"dispatch(double[], Shape, double[], Shape)","u":"dispatch(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher","l":"dispatch(double[], Shape, double[], Shape)","u":"dispatch(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"dispatch(Matrix)","u":"dispatch(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"dispatch(Matrix, CMatrix)","u":"dispatch(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"dispatch(Matrix, CVector)","u":"dispatch(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher","l":"dispatch(Matrix, Matrix)","u":"dispatch(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"dispatch(Matrix, Vector)","u":"dispatch(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"dispatchHermitian(CMatrix)","u":"dispatchHermitian(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseVectorOperations","l":"dispatchOuter(Vector, Vector)","u":"dispatchOuter(org.flag4j.arrays.dense.Vector,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"dispatchTensor(CTensor, int, int)","u":"dispatchTensor(org.flag4j.arrays.dense.CTensor,int,int)"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"dispatchTensor(double[], Shape, int[])","u":"dispatchTensor(double[],org.flag4j.core.Shape,int[])"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"dispatchTensor(Tensor, int, int)","u":"dispatchTensor(org.flag4j.arrays.dense.Tensor,int,int)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"dispatchTranspose(CMatrix, CMatrix)","u":"dispatchTranspose(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"dispatchTranspose(CMatrix, Matrix)","u":"dispatchTranspose(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"dispatchTranspose(Matrix, CMatrix)","u":"dispatchTranspose(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher","l":"dispatchTranspose(Matrix, Matrix)","u":"dispatchTranspose(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"div(CNumber)","u":"div(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"div(CNumber)","u":"div(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"div(CNumber)","u":"div(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"div(CNumber)","u":"div(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"div(CNumber)","u":"div(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"div(CNumber)","u":"div(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"div(CNumber)","u":"div(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"div(CNumber)","u":"div(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"div(double)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"div(double)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"div(double)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"div(double)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"div(double)"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"div(double)"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"div(double)"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"div(double)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTensorDot","l":"dot(CTensor, CTensor)","u":"dot(org.flag4j.arrays.dense.CTensor,org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"doubleImaginaryValue()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"doubleValue()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"E"},{"p":"org.flag4j.linalg","c":"Eigen","l":"Eigen()","u":"%3Cinit%3E()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"elemDiv(CMatrix)","u":"elemDiv(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"elemDiv(CMatrix)","u":"elemDiv(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"elemDiv(CMatrix)","u":"elemDiv(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"elemDiv(CMatrix)","u":"elemDiv(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"elemDiv(CMatrix)","u":"elemDiv(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"elemDiv(CMatrix)","u":"elemDiv(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseElemDiv","l":"elemDiv(CNumber[], Shape, CNumber[], Shape)","u":"elemDiv(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseElemDiv","l":"elemDiv(CNumber[], Shape, double[], Shape)","u":"elemDiv(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixOperations","l":"elemDiv(CooCMatrix, CMatrix)","u":"elemDiv(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"elemDiv(CooCMatrix, Matrix)","u":"elemDiv(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseVectorOperations","l":"elemDiv(CooCVector, CVector)","u":"elemDiv(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"elemDiv(CooCVector, Vector)","u":"elemDiv(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"elemDiv(CooMatrix, CMatrix)","u":"elemDiv(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixOperations","l":"elemDiv(CooMatrix, Matrix)","u":"elemDiv(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"elemDiv(CooVector, CVector)","u":"elemDiv(org.flag4j.arrays.sparse.CooVector,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseVectorOperations","l":"elemDiv(CooVector, Vector)","u":"elemDiv(org.flag4j.arrays.sparse.CooVector,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"elemDiv(CTensor)","u":"elemDiv(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"elemDiv(CTensor)","u":"elemDiv(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"elemDiv(CTensor)","u":"elemDiv(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"elemDiv(CTensor)","u":"elemDiv(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"elemDiv(CVector)","u":"elemDiv(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"elemDiv(CVector)","u":"elemDiv(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"elemDiv(CVector)","u":"elemDiv(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"elemDiv(CVector)","u":"elemDiv(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseElemDiv","l":"elemDiv(double[], Shape, CNumber[], Shape)","u":"elemDiv(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseElemDiv","l":"elemDiv(double[], Shape, double[], Shape)","u":"elemDiv(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"elemDiv(Matrix)","u":"elemDiv(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"elemDiv(Matrix)","u":"elemDiv(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"elemDiv(Matrix)","u":"elemDiv(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"elemDiv(Matrix)","u":"elemDiv(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"elemDiv(Matrix)","u":"elemDiv(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"elemDiv(Matrix)","u":"elemDiv(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"elemDiv(T)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"elemDiv(T)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"elemDiv(Tensor)","u":"elemDiv(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"elemDiv(Tensor)","u":"elemDiv(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"elemDiv(Tensor)","u":"elemDiv(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"elemDiv(Tensor)","u":"elemDiv(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"elemDiv(U)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"elemDiv(Vector)","u":"elemDiv(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"elemDiv(Vector)","u":"elemDiv(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"elemDiv(Vector)","u":"elemDiv(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"elemDiv(Vector)","u":"elemDiv(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseElemDiv","l":"elemDivConcurrent(CNumber[], Shape, CNumber[], Shape)","u":"elemDivConcurrent(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseElemDiv","l":"elemDivConcurrent(CNumber[], Shape, double[], Shape)","u":"elemDivConcurrent(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseElemDiv","l":"elemDivConcurrent(double[], Shape, CNumber[], Shape)","u":"elemDivConcurrent(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseElemDiv","l":"elemDivConcurrent(double[], Shape, double[], Shape)","u":"elemDivConcurrent(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"elemMult(CMatrix)","u":"elemMult(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"elemMult(CMatrix)","u":"elemMult(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"elemMult(CMatrix)","u":"elemMult(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"elemMult(CMatrix)","u":"elemMult(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"elemMult(CMatrix)","u":"elemMult(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"elemMult(CMatrix)","u":"elemMult(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixOperations","l":"elemMult(CMatrix, CooCMatrix)","u":"elemMult(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"elemMult(CMatrix, CooMatrix)","u":"elemMult(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseElemMult","l":"elemMult(CNumber[], Shape, CNumber[], Shape)","u":"elemMult(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseElemMult","l":"elemMult(CNumber[], Shape, double[], Shape)","u":"elemMult(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"elemMult(CooCMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"elemMult(CooCMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"elemMult(CooCMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"elemMult(CooCMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"elemMult(CooCMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"elemMult(CooCMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"elemMult(CooCMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixOperations","l":"elemMult(CooCMatrix, CooCMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixOperations","l":"elemMult(CooCMatrix, CooMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"elemMult(CooCTensor)","u":"elemMult(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"elemMult(CooCTensor)","u":"elemMult(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"elemMult(CooCTensor)","u":"elemMult(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"elemMult(CooCTensor)","u":"elemMult(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"elemMult(CooCTensor)","u":"elemMult(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"elemMult(CooCVector)","u":"elemMult(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"elemMult(CooCVector)","u":"elemMult(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"elemMult(CooCVector)","u":"elemMult(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"elemMult(CooCVector)","u":"elemMult(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"elemMult(CooCVector)","u":"elemMult(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseVectorOperations","l":"elemMult(CooCVector, CooCVector)","u":"elemMult(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseVectorOperations","l":"elemMult(CooCVector, CooVector)","u":"elemMult(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"elemMult(CooMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"elemMult(CooMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"elemMult(CooMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"elemMult(CooMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"elemMult(CooMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"elemMult(CooMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"elemMult(CooMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixOperations","l":"elemMult(CooMatrix, CooMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"elemMult(CooTensor)","u":"elemMult(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"elemMult(CooTensor)","u":"elemMult(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"elemMult(CooTensor)","u":"elemMult(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"elemMult(CooTensor)","u":"elemMult(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"elemMult(CooTensor)","u":"elemMult(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"elemMult(CooVector)","u":"elemMult(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"elemMult(CooVector)","u":"elemMult(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"elemMult(CooVector)","u":"elemMult(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"elemMult(CooVector)","u":"elemMult(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"elemMult(CooVector)","u":"elemMult(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseVectorOperations","l":"elemMult(CooVector, CooVector)","u":"elemMult(org.flag4j.arrays.sparse.CooVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"elemMult(CsrCMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"elemMult(CsrCMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.operations.sparse.csr.real_complex","c":"RealComplexCsrOperations","l":"elemMult(CsrCMatrix, CsrMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"elemMult(CsrMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"elemMult(CsrMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"elemMult(CTensor)","u":"elemMult(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"elemMult(CTensor)","u":"elemMult(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"elemMult(CTensor)","u":"elemMult(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"elemMult(CTensor)","u":"elemMult(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseOperations","l":"elemMult(CTensor, CooCTensor)","u":"elemMult(org.flag4j.arrays.dense.CTensor,org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseOperations","l":"elemMult(CTensor, CooTensor)","u":"elemMult(org.flag4j.arrays.dense.CTensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"elemMult(CVector)","u":"elemMult(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"elemMult(CVector)","u":"elemMult(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"elemMult(CVector)","u":"elemMult(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"elemMult(CVector)","u":"elemMult(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseVectorOperations","l":"elemMult(CVector, CooCVector)","u":"elemMult(org.flag4j.arrays.dense.CVector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"elemMult(CVector, CooVector)","u":"elemMult(org.flag4j.arrays.dense.CVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseElemMult","l":"elemMult(double[], Shape, double[], Shape)","u":"elemMult(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"elemMult(Matrix)","u":"elemMult(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"elemMult(Matrix)","u":"elemMult(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"elemMult(Matrix)","u":"elemMult(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"elemMult(Matrix)","u":"elemMult(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"elemMult(Matrix)","u":"elemMult(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"elemMult(Matrix)","u":"elemMult(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"elemMult(Matrix, CooCMatrix)","u":"elemMult(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixOperations","l":"elemMult(Matrix, CooMatrix)","u":"elemMult(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"elemMult(T)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"elemMult(T)"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"elemMult(T)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"elemMult(Tensor)","u":"elemMult(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"elemMult(Tensor)","u":"elemMult(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"elemMult(Tensor)","u":"elemMult(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"elemMult(Tensor)","u":"elemMult(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseOperations","l":"elemMult(Tensor, CooCTensor)","u":"elemMult(org.flag4j.arrays.dense.Tensor,org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseTensorOperations","l":"elemMult(Tensor, CooTensor)","u":"elemMult(org.flag4j.arrays.dense.Tensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"elemMult(Vector)","u":"elemMult(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"elemMult(Vector)","u":"elemMult(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"elemMult(Vector)","u":"elemMult(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"elemMult(Vector)","u":"elemMult(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"elemMult(Vector, CooCVector)","u":"elemMult(org.flag4j.arrays.dense.Vector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseVectorOperations","l":"elemMult(Vector, CooVector)","u":"elemMult(org.flag4j.arrays.dense.Vector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseElemMult","l":"elemMultConcurrent(CNumber[], Shape, CNumber[], Shape)","u":"elemMultConcurrent(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseElemMult","l":"elemMultConcurrent(CNumber[], Shape, double[], Shape)","u":"elemMultConcurrent(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseElemMult","l":"elemMultConcurrent(double[], Shape, double[], Shape)","u":"elemMultConcurrent(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.linalg.decompositions.chol","c":"Cholesky","l":"enforceHermitian"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ForwardSolver","l":"enforceLower"},{"p":"org.flag4j.linalg.decompositions.hess","c":"SymmHess","l":"enforceSymmetric"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"BackSolver","l":"enforceTriU"},{"p":"org.flag4j.operations.common","c":"TensorEquals","l":"ensureTensor(TensorBase)","u":"ensureTensor(org.flag4j.core.TensorBase)"},{"p":"org.flag4j.core","c":"TensorBase","l":"entries"},{"p":"org.flag4j.core","c":"Shape","l":"entriesIndex(int...)"},{"p":"org.flag4j.util","c":"Flag4jConstants","l":"EPS_F32"},{"p":"org.flag4j.util","c":"Flag4jConstants","l":"EPS_F64"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"EQ_SHAPE_MISMATCH_ERR"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"equals(double)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"equals(double[], CNumber[])","u":"equals(double[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.arrays.sparse","c":"SymmTriDiagonal","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.core","c":"Shape","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.core","c":"TensorComparisonsMixin","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"equalShapeErrMsg(Shape, Shape)","u":"equalShapeErrMsg(org.flag4j.core.Shape,org.flag4j.core.Shape)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"equalsNumber(Number)","u":"equalsNumber(java.lang.Number)"},{"p":"org.flag4j.complex_numbers","c":"CNumberLexer","l":"ERR_MSG"},{"p":"org.flag4j.linalg","c":"RowEchelon","l":"erref(CMatrix)","u":"erref(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"RowEchelon","l":"erref(Matrix)","u":"erref(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.complex_numbers","c":"CNumberLexer","l":"error(String)","u":"error(java.lang.String)"},{"p":"org.flag4j.complex_numbers","c":"CNumberToken","l":"errorCheck(String)","u":"errorCheck(java.lang.String)"},{"p":"org.flag4j.complex_numbers","c":"CNumberToken","l":"errorCheck(String, String)","u":"errorCheck(java.lang.String,java.lang.String)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"ErrorMessages()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactSolver","l":"ExactSolver(LU, LinearSolver, LinearSolver)","u":"%3Cinit%3E(org.flag4j.linalg.decompositions.lu.LU,org.flag4j.linalg.solvers.LinearSolver,org.flag4j.linalg.solvers.LinearSolver)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactTensorSolver","l":"ExactTensorSolver(LinearSolver)","u":"%3Cinit%3E(org.flag4j.linalg.solvers.LinearSolver)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"exceptionalThreshold"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"exp(CNumber)","u":"exp(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"exp(double)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"extend(int, int)","u":"extend(int,int)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"extend(int, int)","u":"extend(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"extend(int, int)","u":"extend(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"extend(int, int)","u":"extend(int,int)"},{"p":"org.flag4j.core","c":"VectorManipulationsMixin","l":"extend(int, int)","u":"extend(int,int)"},{"p":"org.flag4j.linalg.decompositions.svd","c":"ComplexSVD","l":"extractNormalizedCols(CMatrix, int)","u":"extractNormalizedCols(org.flag4j.arrays.dense.CMatrix,int)"},{"p":"org.flag4j.linalg.decompositions.svd","c":"RealSVD","l":"extractNormalizedCols(Matrix, int)","u":"extractNormalizedCols(org.flag4j.arrays.dense.Matrix,int)"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"extractNormalizedCols(T, int)","u":"extractNormalizedCols(T,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"fib(CMatrix)","u":"fib(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"fib(CMatrix)","u":"fib(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"fib(CMatrix)","u":"fib(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"fib(CMatrix)","u":"fib(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"fib(CMatrix)","u":"fib(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"fib(CMatrix)","u":"fib(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"fib(CMatrix)","u":"fib(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"fib(CooCMatrix)","u":"fib(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"fib(CooCMatrix)","u":"fib(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"fib(CooCMatrix)","u":"fib(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"fib(CooCMatrix)","u":"fib(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"fib(CooCMatrix)","u":"fib(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"fib(CooCMatrix)","u":"fib(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"fib(CooCMatrix)","u":"fib(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"fib(CooMatrix)","u":"fib(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"fib(CooMatrix)","u":"fib(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"fib(CooMatrix)","u":"fib(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"fib(CooMatrix)","u":"fib(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"fib(CooMatrix)","u":"fib(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"fib(CooMatrix)","u":"fib(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"fib(CooMatrix)","u":"fib(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"fib(CsrCMatrix)","u":"fib(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"fib(CsrMatrix)","u":"fib(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"fib(Matrix)","u":"fib(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"fib(Matrix)","u":"fib(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"fib(Matrix)","u":"fib(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"fib(Matrix)","u":"fib(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"fib(Matrix)","u":"fib(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"fib(Matrix)","u":"fib(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"fib(Matrix)","u":"fib(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.io","c":"TensorInputStream","l":"fileIn"},{"p":"org.flag4j.io","c":"TensorOutputStream","l":"fileOut"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"fill(CNumber[], double)","u":"fill(org.flag4j.complex_numbers.CNumber[],double)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"fill(CNumber[], double, int, int)","u":"fill(org.flag4j.complex_numbers.CNumber[],double,int,int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"fill(CNumber[], int, int, CNumber)","u":"fill(org.flag4j.complex_numbers.CNumber[],int,int,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"fill(CNumber[][], CNumber)","u":"fill(org.flag4j.complex_numbers.CNumber[][],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"fill(double[][], double)","u":"fill(double[][],double)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"filledArray(int, int)","u":"filledArray(int,int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"fillZeros(CNumber[][])","u":"fillZeros(org.flag4j.complex_numbers.CNumber[][])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"findFirstLast(int[], int)","u":"findFirstLast(int[],int)"},{"p":"org.flag4j.linalg.decompositions.hess","c":"SymmHess","l":"findMaxAndInit(int)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"ComplexUnitaryDecomposition","l":"findMaxAndInit(int)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"RealUnitaryDecomposition","l":"findMaxAndInit(int)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"findMaxAndInit(int)"},{"p":"org.flag4j.util","c":"Flag4jConstants","l":"Flag4jConstants()","u":"%3Cinit%3E()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"flatten()"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"flatten()"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"flatten()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"flatten()"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"flatten()"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"flatten()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"flatten()"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"flatten()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"flatten()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"flatten()"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"flatten()"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"flatten()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"flatten()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"flatten()"},{"p":"org.flag4j.core","c":"TensorManipulationsMixin","l":"flatten()"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"flatten(CNumber[][])","u":"flatten(org.flag4j.complex_numbers.CNumber[][])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"flatten(double[][])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"flatten(int)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"flatten(int)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"flatten(int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"flatten(int)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"flatten(int)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"flatten(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"flatten(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"flatten(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"flatten(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"flatten(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"flatten(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"flatten(int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"flatten(int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"flatten(int)"},{"p":"org.flag4j.core","c":"TensorManipulationsMixin","l":"flatten(int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"flatten(int[][])"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"floatImaginaryValue()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"floatValue()"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactSolver","l":"forwardSolver"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ForwardSolver","l":"ForwardSolver(boolean, boolean)","u":"%3Cinit%3E(boolean,boolean)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"fromColSwaps(int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"fromDense(CMatrix)","u":"fromDense(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"fromDense(CTensor)","u":"fromDense(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"fromDense(CVector)","u":"fromDense(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"fromDense(Matrix)","u":"fromDense(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"fromDense(Tensor)","u":"fromDense(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"fromDense(Vector)","u":"fromDense(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"fromDoubleList(List)","u":"fromDoubleList(java.util.List)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"fromIntegerList(List)","u":"fromIntegerList(java.util.List)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"fromIntegerList(List, int[])","u":"fromIntegerList(java.util.List,int[])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"fromList(List, T[])","u":"fromList(java.util.List,T[])"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"fromPolar(double, double)","u":"fromPolar(double,double)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU.Pivoting","l":"FULL"},{"p":"org.flag4j.linalg.decompositions.lu","c":"ComplexLU","l":"fullPivot()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"fullPivot()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"RealLU","l":"fullPivot()"},{"p":"org.flag4j.operations.common","c":"TensorEquals","l":"generalEquals(CooCTensor, SparseTensorBase)","u":"generalEquals(org.flag4j.arrays.sparse.CooCTensor,org.flag4j.core.sparse_base.SparseTensorBase)"},{"p":"org.flag4j.operations.common","c":"TensorEquals","l":"generalEquals(CooTensor, SparseTensorBase)","u":"generalEquals(org.flag4j.arrays.sparse.CooTensor,org.flag4j.core.sparse_base.SparseTensorBase)"},{"p":"org.flag4j.operations.common","c":"TensorEquals","l":"generalEquals(CTensor, DenseTensorBase)","u":"generalEquals(org.flag4j.arrays.dense.CTensor,org.flag4j.core.dense_base.DenseTensorBase)"},{"p":"org.flag4j.operations.common","c":"TensorEquals","l":"generalEquals(CTensor, SparseTensorBase)","u":"generalEquals(org.flag4j.arrays.dense.CTensor,org.flag4j.core.sparse_base.SparseTensorBase)"},{"p":"org.flag4j.operations.common","c":"TensorEquals","l":"generalEquals(DenseTensorBase, SparseTensorBase)","u":"generalEquals(org.flag4j.core.dense_base.DenseTensorBase,org.flag4j.core.sparse_base.SparseTensorBase)"},{"p":"org.flag4j.operations.common","c":"TensorEquals","l":"generalEquals(Tensor, DenseTensorBase)","u":"generalEquals(org.flag4j.arrays.dense.Tensor,org.flag4j.core.dense_base.DenseTensorBase)"},{"p":"org.flag4j.operations.common","c":"TensorEquals","l":"generalEquals(Tensor, SparseTensorBase)","u":"generalEquals(org.flag4j.arrays.dense.Tensor,org.flag4j.core.sparse_base.SparseTensorBase)"},{"p":"org.flag4j.operations.common","c":"TensorEquals","l":"generalEquals(TensorBase, TensorBase)","u":"generalEquals(org.flag4j.core.TensorBase,org.flag4j.core.TensorBase)"},{"p":"org.flag4j.rng","c":"RandomArray","l":"genNormalComplexArray(int)"},{"p":"org.flag4j.rng","c":"RandomArray","l":"genNormalComplexArray(int, double, double)","u":"genNormalComplexArray(int,double,double)"},{"p":"org.flag4j.rng","c":"RandomArray","l":"genNormalRealArray(int)"},{"p":"org.flag4j.rng","c":"RandomArray","l":"genNormalRealArray(int, double, double)","u":"genNormalRealArray(int,double,double)"},{"p":"org.flag4j.rng","c":"RandomArray","l":"genRandomRows(int, int, int, int)","u":"genRandomRows(int,int,int,int)"},{"p":"org.flag4j.rng","c":"RandomArray","l":"genUniformComplexArray(int)"},{"p":"org.flag4j.rng","c":"RandomArray","l":"genUniformComplexArray(int, double, double)","u":"genUniformComplexArray(int,double,double)"},{"p":"org.flag4j.rng","c":"RandomArray","l":"genUniformRealArray(int)"},{"p":"org.flag4j.rng","c":"RandomArray","l":"genUniformRealArray(int, double, double)","u":"genUniformRealArray(int,double,double)"},{"p":"org.flag4j.rng","c":"RandomArray","l":"genUniformRealIntArray(int)"},{"p":"org.flag4j.rng","c":"RandomArray","l":"genUniformRealIntArray(int, int, int)","u":"genUniformRealIntArray(int,int,int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"geRandomTrilMatrix(int, int, int)","u":"geRandomTrilMatrix(int,int,int)"},{"p":"org.flag4j.core","c":"Shape","l":"get(int)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU.Pivoting","l":"get(int)"},{"p":"org.flag4j.arrays.sparse","c":"SymmTriDiagonal","l":"get(int, int)","u":"get(int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"get(int...)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"get(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"get(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"get(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"get(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"get(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"get(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"get(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"get(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"get(int...)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"get(int...)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"get(int...)"},{"p":"org.flag4j.core","c":"MatrixMixin","l":"get(int...)"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"get(int...)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"get2x2EigenValues(CMatrix)","u":"get2x2EigenValues(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"get2x2EigenValues(CNumber, CNumber, CNumber, CNumber)","u":"get2x2EigenValues(org.flag4j.complex_numbers.CNumber,org.flag4j.complex_numbers.CNumber,org.flag4j.complex_numbers.CNumber,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"get2x2EigenValues(double, double, double, double)","u":"get2x2EigenValues(double,double,double,double)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"get2x2EigenValues(Matrix)","u":"get2x2EigenValues(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.transformations","c":"Givens","l":"get2x2Rotator(CNumber, CNumber)","u":"get2x2Rotator(org.flag4j.complex_numbers.CNumber,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.linalg.transformations","c":"Givens","l":"get2x2Rotator(CVector)","u":"get2x2Rotator(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.linalg.transformations","c":"Givens","l":"get2x2Rotator(double, double)","u":"get2x2Rotator(double,double)"},{"p":"org.flag4j.linalg.transformations","c":"Givens","l":"get2x2Rotator(Vector)","u":"get2x2Rotator(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getArrayLengthsMismatchErr(int...)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getAxisErr(int)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getAxisErr(int, int...)","u":"getAxisErr(int,int...)"},{"p":"org.flag4j.concurrency","c":"Configurations","l":"getBlockSize()"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"getCol(CooCMatrix, int)","u":"getCol(org.flag4j.arrays.sparse.CooCMatrix,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"getCol(CooCMatrix, int, int, int)","u":"getCol(org.flag4j.arrays.sparse.CooCMatrix,int,int,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"getCol(CooMatrix, int)","u":"getCol(org.flag4j.arrays.sparse.CooMatrix,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"getCol(CooMatrix, int, int, int)","u":"getCol(org.flag4j.arrays.sparse.CooMatrix,int,int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"getCol(int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"getCol(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"getCol(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"getCol(int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"getCol(int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"getCol(int)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"getCol(int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"getCol(int, int, int)","u":"getCol(int,int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"getCol(int, int, int)","u":"getCol(int,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"getCol(int, int, int)","u":"getCol(int,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"getCol(int, int, int)","u":"getCol(int,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"getCol(int, int, int)","u":"getCol(int,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"getCol(int, int, int)","u":"getCol(int,int,int)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"getCol(int, int, int)","u":"getCol(int,int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"getColAsVector(int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"getColAsVector(int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"getColBelow(int, int)","u":"getColBelow(int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"getColBelow(int, int)","u":"getColBelow(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"getColBelow(int, int)","u":"getColBelow(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"getColBelow(int, int)","u":"getColBelow(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"getColBelow(int, int)","u":"getColBelow(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"getColBelow(int, int)","u":"getColBelow(int,int)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"getColBelow(int, int)","u":"getColBelow(int,int)"},{"p":"org.flag4j.linalg","c":"SubSpace","l":"getColSpace(CMatrix)","u":"getColSpace(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"SubSpace","l":"getColSpace(Matrix)","u":"getColSpace(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.complex_numbers","c":"CNumberLexer","l":"getContent()"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexBackSolver","l":"getDet()"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexForwardSolver","l":"getDet()"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealBackSolver","l":"getDet()"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealForwardSolver","l":"getDet()"},{"p":"org.flag4j.complex_numbers","c":"CNumberToken","l":"getDetails()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"getDiag()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"getDiag()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"getDiag()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"getDiag()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"getDiag()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"getDiag()"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"getDiag()"},{"p":"org.flag4j.core","c":"Shape","l":"getDims()"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenPairs(CMatrix)","u":"getEigenPairs(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenPairs(Matrix)","u":"getEigenPairs(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenValues(CMatrix)","u":"getEigenValues(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenValues(CMatrix, ComplexSchur)","u":"getEigenValues(org.flag4j.arrays.dense.CMatrix,org.flag4j.linalg.decompositions.schur.ComplexSchur)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenValues(CMatrix, long)","u":"getEigenValues(org.flag4j.arrays.dense.CMatrix,long)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenValues(CMatrix, long, int)","u":"getEigenValues(org.flag4j.arrays.dense.CMatrix,long,int)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenValues(Matrix)","u":"getEigenValues(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenValues(Matrix, long)","u":"getEigenValues(org.flag4j.arrays.dense.Matrix,long)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenValues(Matrix, long, int)","u":"getEigenValues(org.flag4j.arrays.dense.Matrix,long,int)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenValues(Matrix, RealSchur)","u":"getEigenValues(org.flag4j.arrays.dense.Matrix,org.flag4j.linalg.decompositions.schur.RealSchur)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenVectors(CMatrix)","u":"getEigenVectors(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenVectors(CMatrix, ComplexSchur)","u":"getEigenVectors(org.flag4j.arrays.dense.CMatrix,org.flag4j.linalg.decompositions.schur.ComplexSchur)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenVectors(CMatrix, long)","u":"getEigenVectors(org.flag4j.arrays.dense.CMatrix,long)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenVectors(CMatrix, long, int)","u":"getEigenVectors(org.flag4j.arrays.dense.CMatrix,long,int)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenVectors(Matrix)","u":"getEigenVectors(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenVectors(Matrix, long)","u":"getEigenVectors(org.flag4j.arrays.dense.Matrix,long)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenVectors(Matrix, long, int)","u":"getEigenVectors(org.flag4j.arrays.dense.Matrix,long,int)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenVectors(Matrix, RealSchur)","u":"getEigenVectors(org.flag4j.arrays.dense.Matrix,org.flag4j.linalg.decompositions.schur.RealSchur)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenVectorsTriu(CMatrix)","u":"getEigenVectorsTriu(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenVectorsTriu(Matrix)","u":"getEigenVectorsTriu(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"getEmpty(int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"getEmpty(int, int)","u":"getEmpty(int,int)"},{"p":"org.flag4j.core","c":"TensorBase","l":"getEntries()"},{"p":"org.flag4j.linalg.transformations","c":"Givens","l":"getGeneralRotator(int, int, int, double)","u":"getGeneralRotator(int,int,int,double)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getGreaterEqErr(double, double)","u":"getGreaterEqErr(double,double)"},{"p":"org.flag4j.linalg.decompositions.hess","c":"ComplexHess","l":"getH()"},{"p":"org.flag4j.linalg.decompositions.hess","c":"RealHess","l":"getH()"},{"p":"org.flag4j.linalg.decompositions.hess","c":"SymmHess","l":"getH()"},{"p":"org.flag4j.core","c":"Shape","l":"getIndices(int)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getIndicesRankErr(int, int)","u":"getIndicesRankErr(int,int)"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher","l":"getInstance()"},{"p":"org.flag4j.linalg","c":"TensorInvert","l":"getInvShape(Shape, int)","u":"getInvShape(org.flag4j.core.Shape,int)"},{"p":"org.flag4j.complex_numbers","c":"CNumberToken","l":"getKind()"},{"p":"org.flag4j.linalg.decompositions.chol","c":"Cholesky","l":"getL()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"ComplexLU","l":"getL()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"getL()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"RealLU","l":"getL()"},{"p":"org.flag4j.linalg","c":"SubSpace","l":"getLeftNullSpace(CMatrix)","u":"getLeftNullSpace(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"SubSpace","l":"getLeftNullSpace(Matrix)","u":"getLeftNullSpace(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getLessEqErr(double, double)","u":"getLessEqErr(double,double)"},{"p":"org.flag4j.linalg.decompositions.chol","c":"Cholesky","l":"getLH()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"getLU()"},{"p":"org.flag4j.io","c":"PrintOptions","l":"getMaxColumns()"},{"p":"org.flag4j.io","c":"PrintOptions","l":"getMaxRows()"},{"p":"org.flag4j.concurrency","c":"Configurations","l":"getMinRecursiveSize()"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getNamedGreaterEqErr(double, double, String)","u":"getNamedGreaterEqErr(double,double,java.lang.String)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getNamedLessEqErr(BigInteger, double, String)","u":"getNamedLessEqErr(java.math.BigInteger,double,java.lang.String)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getNamedLessEqErr(double, double, String)","u":"getNamedLessEqErr(double,double,java.lang.String)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getNegValueErr(double)"},{"p":"org.flag4j.core","c":"Shape","l":"getNextIndices(int[], int)","u":"getNextIndices(int[],int)"},{"p":"org.flag4j.complex_numbers","c":"CNumberLexer","l":"getNextSymbol()"},{"p":"org.flag4j.complex_numbers","c":"CNumberLexer","l":"getNextToken()"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getNonPosErr(double)"},{"p":"org.flag4j.linalg","c":"SubSpace","l":"getNullSpace(CMatrix)","u":"getNullSpace(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"SubSpace","l":"getNullSpace(Matrix)","u":"getNullSpace(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"getNumColSwaps()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"getNumRowSwaps()"},{"p":"org.flag4j.concurrency","c":"Configurations","l":"getNumThreads()"},{"p":"org.flag4j.linalg.transformations","c":"Projection","l":"getOrthogonal(double, double, double, double)","u":"getOrthogonal(double,double,double,double)"},{"p":"org.flag4j.linalg.transformations","c":"Projection","l":"getOrthogonal(double, double, double, double, double, double)","u":"getOrthogonal(double,double,double,double,double,double)"},{"p":"org.flag4j.linalg.transformations","c":"Projection","l":"getOrthogonal2D(double, double)","u":"getOrthogonal2D(double,double)"},{"p":"org.flag4j.linalg.transformations","c":"Projection","l":"getOrthogonal2D(double, double, double, double)","u":"getOrthogonal2D(double,double,double,double)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactTensorSolver","l":"getOutputShape(T, T, int)","u":"getOutputShape(T,T,int)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"getP()"},{"p":"org.flag4j.io","c":"PrintOptions","l":"getPadding()"},{"p":"org.flag4j.concurrency","c":"ThreadManager","l":"getParallelismLevel()"},{"p":"org.flag4j.linalg.transformations","c":"Projection","l":"getPerspective(double, double, double, double)","u":"getPerspective(double,double,double,double)"},{"p":"org.flag4j.linalg.transformations","c":"Projection","l":"getPerspective(double, double, double, double, double)","u":"getPerspective(double,double,double,double,double)"},{"p":"org.flag4j.io","c":"PrintOptions","l":"getPrecision()"},{"p":"org.flag4j.linalg","c":"TensorInvert","l":"getProduct(int[], int)","u":"getProduct(int[],int)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"getQ()"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"ComplexUnitaryDecomposition","l":"getQ()"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"RealUnitaryDecomposition","l":"getQ()"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"getQ()"},{"p":"org.flag4j.linalg.decompositions.qr","c":"ComplexQR","l":"getR()"},{"p":"org.flag4j.linalg.decompositions.qr","c":"RealQR","l":"getR()"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getRangeErr(double, double, double, String)","u":"getRangeErr(double,double,double,java.lang.String)"},{"p":"org.flag4j.core","c":"Shape","l":"getRank()"},{"p":"org.flag4j.core","c":"TensorBase","l":"getRank()"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"getRank()"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"getRank()"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"getRatio(Shape)","u":"getRatio(org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher","l":"getRatio(Shape)","u":"getRatio(org.flag4j.core.Shape)"},{"p":"org.flag4j.linalg.transformations","c":"Householder","l":"getReflector(CVector)","u":"getReflector(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.linalg.transformations","c":"Householder","l":"getReflector(Vector)","u":"getReflector(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.linalg.transformations","c":"Givens","l":"getRotator(CVector, int)","u":"getRotator(org.flag4j.arrays.dense.CVector,int)"},{"p":"org.flag4j.linalg.transformations","c":"Givens","l":"getRotator(double[], int)","u":"getRotator(double[],int)"},{"p":"org.flag4j.linalg.transformations","c":"Givens","l":"getRotator(Vector, int)","u":"getRotator(org.flag4j.arrays.dense.Vector,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"getRow(CooCMatrix, int)","u":"getRow(org.flag4j.arrays.sparse.CooCMatrix,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"getRow(CooCMatrix, int, int, int)","u":"getRow(org.flag4j.arrays.sparse.CooCMatrix,int,int,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"getRow(CooMatrix, int)","u":"getRow(org.flag4j.arrays.sparse.CooMatrix,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"getRow(CooMatrix, int, int, int)","u":"getRow(org.flag4j.arrays.sparse.CooMatrix,int,int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"getRow(int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"getRow(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"getRow(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"getRow(int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"getRow(int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"getRow(int)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"getRow(int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"getRowAfter(int, int)","u":"getRowAfter(int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"getRowAfter(int, int)","u":"getRowAfter(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"getRowAfter(int, int)","u":"getRowAfter(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"getRowAfter(int, int)","u":"getRowAfter(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"getRowAfter(int, int)","u":"getRowAfter(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"getRowAfter(int, int)","u":"getRowAfter(int,int)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"getRowAfter(int, int)","u":"getRowAfter(int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"getRowAsVector(int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"getRowAsVector(int)"},{"p":"org.flag4j.linalg","c":"SubSpace","l":"getRowSpace(CMatrix)","u":"getRowSpace(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"SubSpace","l":"getRowSpace(Matrix)","u":"getRowSpace(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"getS()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"getSelf()"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"getSelf()"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"getSelf()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"getSelf()"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"getSelf()"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"getSelf()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"getSelf()"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"getSelf()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"getSelf()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"getSelf()"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"getSelf()"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"getSelf()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"getSelf()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"getSelf()"},{"p":"org.flag4j.core","c":"TensorBase","l":"getSelf()"},{"p":"org.flag4j.core","c":"TensorBase","l":"getShape()"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getShapeBroadcastErr(Shape, Shape)","u":"getShapeBroadcastErr(org.flag4j.core.Shape,org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"getSlice(CooCMatrix, int, int, int, int)","u":"getSlice(org.flag4j.arrays.sparse.CooCMatrix,int,int,int,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"getSlice(CooMatrix, int, int, int, int)","u":"getSlice(org.flag4j.arrays.sparse.CooMatrix,int,int,int,int)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrOperations","l":"getSlice(CsrCMatrix, int, int, int, int)","u":"getSlice(org.flag4j.arrays.sparse.CsrCMatrix,int,int,int,int)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrOperations","l":"getSlice(CsrMatrix, int, int, int, int)","u":"getSlice(org.flag4j.arrays.sparse.CsrMatrix,int,int,int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"getSlice(int, int, int, int)","u":"getSlice(int,int,int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"getSlice(int, int, int, int)","u":"getSlice(int,int,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"getSlice(int, int, int, int)","u":"getSlice(int,int,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"getSlice(int, int, int, int)","u":"getSlice(int,int,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"getSlice(int, int, int, int)","u":"getSlice(int,int,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"getSlice(int, int, int, int)","u":"getSlice(int,int,int,int)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"getSlice(int, int, int, int)","u":"getSlice(int,int,int,int)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getSquareShapeErr(Shape)","u":"getSquareShapeErr(org.flag4j.core.Shape)"},{"p":"org.flag4j.core","c":"Shape","l":"getStrides()"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"getT()"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getTotalEntriesErr()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"ComplexLU","l":"getU()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"getU()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"RealLU","l":"getU()"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"getU()"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"getU()"},{"p":"org.flag4j.linalg.decompositions.hess","c":"ComplexHess","l":"getUpper()"},{"p":"org.flag4j.linalg.decompositions.hess","c":"RealHess","l":"getUpper()"},{"p":"org.flag4j.linalg.decompositions.qr","c":"ComplexQR","l":"getUpper()"},{"p":"org.flag4j.linalg.decompositions.qr","c":"RealQR","l":"getUpper()"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"getUpper()"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"ComplexUnitaryDecomposition","l":"getUpper(CMatrix)","u":"getUpper(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"RealUnitaryDecomposition","l":"getUpper(Matrix)","u":"getUpper(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"getUpper(T)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getUtilityClassErrMsg()"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"getV()"},{"p":"org.flag4j.linalg.transformations","c":"Householder","l":"getVector(Vector)","u":"getVector(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.linalg.transformations","c":"Givens","l":"Givens()","u":"%3Cinit%3E()"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"GREATER_EQ_ERR"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"H()"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"H()"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"H()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"H()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"H()"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"H()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"H()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"H()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"H()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"H()"},{"p":"org.flag4j.core","c":"ComplexMatrixMixin","l":"H()"},{"p":"org.flag4j.core","c":"ComplexTensorMixin","l":"H()"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"H()"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"H(int, int)","u":"H(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"H(int, int)","u":"H(int,int)"},{"p":"org.flag4j.core","c":"ComplexTensorExclusiveMixin","l":"H(int, int)","u":"H(int,int)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"H(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"H(int...)"},{"p":"org.flag4j.core","c":"ComplexTensorExclusiveMixin","l":"H(int...)"},{"p":"org.flag4j.linalg","c":"SubSpace","l":"hasEqualSpan(CMatrix, CMatrix)","u":"hasEqualSpan(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"SubSpace","l":"hasEqualSpan(Matrix, Matrix)","u":"hasEqualSpan(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"hashCode()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"hashCode()"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"hashCode()"},{"p":"org.flag4j.arrays.sparse","c":"SymmTriDiagonal","l":"hashCode()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"hashCode()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"hashCode()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"hashCode()"},{"p":"org.flag4j.core","c":"Shape","l":"hashCode()"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"HERMATION_BLOCKED_THRESHOLD"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"hermTranspose()"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"hermTranspose()"},{"p":"org.flag4j.core","c":"ComplexTensorMixin","l":"hermTranspose()"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrOperations","l":"hermTranspose(CsrCMatrix)","u":"hermTranspose(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.core","c":"ComplexTensorExclusiveMixin","l":"hermTranspose(int, int)","u":"hermTranspose(int,int)"},{"p":"org.flag4j.core","c":"ComplexTensorExclusiveMixin","l":"hermTranspose(int...)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"hess"},{"p":"org.flag4j.linalg.transformations","c":"Householder","l":"Householder()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"householderVector"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"householderVector"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"I(int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"I(int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"I(int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"I(int, int)","u":"I(int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"I(int, int)","u":"I(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"I(int, int)","u":"I(int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"I(Shape)","u":"I(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"I(Shape)","u":"I(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"I(Shape)","u":"I(org.flag4j.core.Shape)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"im"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"im()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"IMAGINARY_UNIT"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"indexOf(int[], int)","u":"indexOf(int[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"indices"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"indices"},{"p":"org.flag4j.core.sparse_base","c":"SparseTensorBase","l":"indices"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"INDICES_RANK_ERR"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"infNorm(CMatrix)","u":"infNorm(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"infNorm(ComplexDenseTensorBase)","u":"infNorm(org.flag4j.core.dense_base.ComplexDenseTensorBase)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"infNorm(CooCVector)","u":"infNorm(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"infNorm(CooVector)","u":"infNorm(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"infNorm(CTensor)","u":"infNorm(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"infNorm(CVector)","u":"infNorm(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"infNorm(Matrix)","u":"infNorm(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"infNorm(RealDenseTensorBase)","u":"infNorm(org.flag4j.core.dense_base.RealDenseTensorBase)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"infNorm(Vector)","u":"infNorm(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.util.exceptions","c":"SingularMatrixException","l":"INFO"},{"p":"org.flag4j.linalg.decompositions.lu","c":"ComplexLU","l":"initLU(CMatrix)","u":"initLU(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"RealLU","l":"initLU(Matrix)","u":"initLU(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"initLU(T)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ComplexExactTensorSolver","l":"initMatrix(CTensor, int)","u":"initMatrix(org.flag4j.arrays.dense.CTensor,int)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactTensorSolver","l":"initMatrix(T, int)","u":"initMatrix(T,int)"},{"p":"org.flag4j.linalg.solvers.exact","c":"RealExactTensorSolver","l":"initMatrix(Tensor, int)","u":"initMatrix(org.flag4j.arrays.dense.Tensor,int)"},{"p":"org.flag4j.linalg.decompositions.hess","c":"ComplexHess","l":"initQ()"},{"p":"org.flag4j.linalg.decompositions.hess","c":"RealHess","l":"initQ()"},{"p":"org.flag4j.linalg.decompositions.qr","c":"ComplexQR","l":"initQ()"},{"p":"org.flag4j.linalg.decompositions.qr","c":"RealQR","l":"initQ()"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"initQ()"},{"p":"org.flag4j.linalg.decompositions.svd","c":"ComplexSVD","l":"initUV(Shape, int)","u":"initUV(org.flag4j.core.Shape,int)"},{"p":"org.flag4j.linalg.decompositions.svd","c":"RealSVD","l":"initUV(Shape, int)","u":"initUV(org.flag4j.core.Shape,int)"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"initUV(Shape, int)","u":"initUV(org.flag4j.core.Shape,int)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ComplexExactTensorSolver","l":"initVector(CTensor)","u":"initVector(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactTensorSolver","l":"initVector(T)"},{"p":"org.flag4j.linalg.solvers.exact","c":"RealExactTensorSolver","l":"initVector(Tensor)","u":"initVector(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"ComplexUnitaryDecomposition","l":"initWorkArrays(int)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"RealUnitaryDecomposition","l":"initWorkArrays(int)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"initWorkArrays(int)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"inner(CNumber[], double[], int[], int)","u":"inner(org.flag4j.complex_numbers.CNumber[],double[],int[],int)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"inner(CooCVector)","u":"inner(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"inner(CooCVector)","u":"inner(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"inner(CooCVector)","u":"inner(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"inner(CooCVector)","u":"inner(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"inner(CooCVector)","u":"inner(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseVectorOperations","l":"inner(CooCVector, CooCVector)","u":"inner(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseVectorOperations","l":"inner(CooCVector, CooVector)","u":"inner(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"inner(CooVector)","u":"inner(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"inner(CooVector)","u":"inner(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"inner(CooVector)","u":"inner(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"inner(CooVector)","u":"inner(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"inner(CooVector)","u":"inner(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseVectorOperations","l":"inner(CooVector, CooCVector)","u":"inner(org.flag4j.arrays.sparse.CooVector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseVectorOperations","l":"inner(CooVector, CooVector)","u":"inner(org.flag4j.arrays.sparse.CooVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"inner(CVector)","u":"inner(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"inner(CVector)","u":"inner(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"inner(CVector)","u":"inner(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"inner(CVector)","u":"inner(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"inner(CVector)","u":"inner(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"inner(double[], CNumber[], int[], int)","u":"inner(double[],org.flag4j.complex_numbers.CNumber[],int[],int)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseVectorOperations","l":"inner(double[], double[], int[], int)","u":"inner(double[],double[],int[],int)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"inner(double[], int[], int, CNumber[])","u":"inner(double[],int[],int,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"inner(Vector)","u":"inner(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"inner(Vector)","u":"inner(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"inner(Vector)","u":"inner(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"inner(Vector)","u":"inner(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"inner(Vector)","u":"inner(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseVectorOperations","l":"innerProduct(CNumber[], CNumber[])","u":"innerProduct(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseVectorOperations","l":"innerProduct(CNumber[], CNumber[], int[], int)","u":"innerProduct(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber[],int[],int)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseVectorOperations","l":"innerProduct(CNumber[], double[])","u":"innerProduct(org.flag4j.complex_numbers.CNumber[],double[])"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseVectorOperations","l":"innerProduct(CNumber[], int[], int, CNumber[])","u":"innerProduct(org.flag4j.complex_numbers.CNumber[],int[],int,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseVectorOperations","l":"innerProduct(double[], CNumber[])","u":"innerProduct(double[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseVectorOperations","l":"innerProduct(double[], double[])","u":"innerProduct(double[],double[])"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"innerSelf()"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"inSlice(int, int, int, int, int, int)","u":"inSlice(int,int,int,int,int,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"inSlice(int, int, int, int, int, int)","u":"inSlice(int,int,int,int,int,int)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"intImaginaryValue()"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"intRange(int, int)","u":"intRange(int,int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"intRange(int, int, int)","u":"intRange(int,int,int)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"intValue()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"INV_IMAGINARY_UNIT"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"inv()"},{"p":"org.flag4j.linalg","c":"Invert","l":"inv(CMatrix)","u":"inv(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"TensorInvert","l":"inv(CTensor, int)","u":"inv(org.flag4j.arrays.dense.CTensor,int)"},{"p":"org.flag4j.linalg","c":"Invert","l":"inv(Matrix)","u":"inv(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg","c":"TensorInvert","l":"inv(Tensor, int)","u":"inv(org.flag4j.arrays.dense.Tensor,int)"},{"p":"org.flag4j.linalg","c":"Invert","l":"invDiag(CMatrix)","u":"invDiag(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"Invert","l":"invDiag(Matrix)","u":"invDiag(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.decompositions.svd","c":"ComplexSVD","l":"invDirectSum(CMatrix)","u":"invDirectSum(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CMatrix, CMatrix)","u":"invDirectSum(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CMatrix, CooCMatrix)","u":"invDirectSum(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CMatrix, CooMatrix)","u":"invDirectSum(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CMatrix, Matrix)","u":"invDirectSum(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CooCMatrix, CMatrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CooCMatrix, CooCMatrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CooCMatrix, CooMatrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CooCMatrix, Matrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CooMatrix, CMatrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CooMatrix, CooCMatrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CooMatrix, CooMatrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CooMatrix, Matrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CsrCMatrix, CMatrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CsrCMatrix, CooCMatrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CsrCMatrix, CooMatrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CsrCMatrix, CsrMatrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CsrCMatrix, Matrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CsrMatrix, CMatrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CsrMatrix, CooCMatrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CsrMatrix, CooMatrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CsrMatrix, CsrMatrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CsrMatrix, Matrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.decompositions.svd","c":"RealSVD","l":"invDirectSum(Matrix)","u":"invDirectSum(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(Matrix, CMatrix)","u":"invDirectSum(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(Matrix, CooCMatrix)","u":"invDirectSum(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(Matrix, CooMatrix)","u":"invDirectSum(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(Matrix, Matrix)","u":"invDirectSum(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"invDirectSum(T)"},{"p":"org.flag4j.linalg","c":"Invert","l":"Invert()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg","c":"Invert","l":"invHermPosDef(CMatrix)","u":"invHermPosDef(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"Invert","l":"invHermPosDef(CMatrix, boolean)","u":"invHermPosDef(org.flag4j.arrays.dense.CMatrix,boolean)"},{"p":"org.flag4j.linalg","c":"Invert","l":"invSymPosDef(Matrix)","u":"invSymPosDef(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg","c":"Invert","l":"invSymPosDef(Matrix, boolean)","u":"invSymPosDef(org.flag4j.arrays.dense.Matrix,boolean)"},{"p":"org.flag4j.linalg","c":"Invert","l":"invTriL(CMatrix)","u":"invTriL(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"Invert","l":"invTriL(Matrix)","u":"invTriL(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg","c":"Invert","l":"invTriU(CMatrix)","u":"invTriU(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"Invert","l":"invTriU(Matrix)","u":"invTriU(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"isAntiHermitian()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"isAntiHermitian()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"isAntiHermitian()"},{"p":"org.flag4j.core","c":"ComplexMatrixMixin","l":"isAntiHermitian()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseProperties","l":"isAntiHermitian(CNumber[], Shape)","u":"isAntiHermitian(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixProperties","l":"isAntiHermitian(CooCMatrix)","u":"isAntiHermitian(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrProperties","l":"isAntiHermitian(CsrCMatrix)","u":"isAntiHermitian(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"isAntiSymmetric()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"isAntiSymmetric()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"isAntiSymmetric()"},{"p":"org.flag4j.core","c":"RealMatrixMixin","l":"isAntiSymmetric()"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixProperties","l":"isAntiSymmetric(CooMatrix)","u":"isAntiSymmetric(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrProperties","l":"isAntiSymmetric(CsrMatrix)","u":"isAntiSymmetric(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseProperties","l":"isAntiSymmetric(double[], Shape)","u":"isAntiSymmetric(double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"isCloseToI()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"isCloseToI()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseProperties","l":"isCloseToIdentity(CMatrix)","u":"isCloseToIdentity(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseProperties","l":"isCloseToIdentity(Matrix)","u":"isCloseToIdentity(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"isComplex()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"isComplex()"},{"p":"org.flag4j.core","c":"ComplexMatrixMixin","l":"isComplex()"},{"p":"org.flag4j.core","c":"ComplexTensorMixin","l":"isComplex()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"isComplex()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"isComplex()"},{"p":"org.flag4j.operations.common.complex","c":"ComplexProperties","l":"isComplex(CNumber[])","u":"isComplex(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"isDiag()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"isDiag()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"isDiag()"},{"p":"org.flag4j.core","c":"MatrixPropertiesMixin","l":"isDiag()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"isDouble()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"isFinite()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"isFullRank()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"isFullRank()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"isFullRank()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"isFullRank()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"isFullRank()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"isFullRank()"},{"p":"org.flag4j.core","c":"MatrixPropertiesMixin","l":"isFullRank()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"isHermitian()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"isHermitian()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"isHermitian()"},{"p":"org.flag4j.core","c":"ComplexMatrixMixin","l":"isHermitian()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseProperties","l":"isHermitian(CNumber[], Shape)","u":"isHermitian(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixProperties","l":"isHermitian(CooCMatrix)","u":"isHermitian(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrProperties","l":"isHermitian(CsrCMatrix)","u":"isHermitian(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"isI()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"isI()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"isI()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"isI()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"isI()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"isI()"},{"p":"org.flag4j.core","c":"MatrixComparisonsMixin","l":"isI()"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixProperties","l":"isIdentity(CooCMatrix)","u":"isIdentity(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixProperties","l":"isIdentity(CooMatrix)","u":"isIdentity(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrProperties","l":"isIdentity(CsrCMatrix)","u":"isIdentity(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrProperties","l":"isIdentity(CsrMatrix)","u":"isIdentity(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseProperties","l":"isIdentity(Matrix)","u":"isIdentity(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"isImaginary()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"isInfinite()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"isInt()"},{"p":"org.flag4j.linalg","c":"Invert","l":"isInv(CMatrix, CMatrix)","u":"isInv(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"Invert","l":"isInv(Matrix, Matrix)","u":"isInv(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"isInvertible()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"isInvertible()"},{"p":"org.flag4j.core","c":"MatrixPropertiesMixin","l":"isInvertible()"},{"p":"org.flag4j.complex_numbers","c":"CNumberToken","l":"isKind(String)","u":"isKind(java.lang.String)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"isNaN()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"isNeg()"},{"p":"org.flag4j.core","c":"RealTensorMixin","l":"isNeg()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"isNeg()"},{"p":"org.flag4j.operations.common.real","c":"RealProperties","l":"isNeg(double[])"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"isOnes()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"isOnes()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"isOnes()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"isOnes()"},{"p":"org.flag4j.core","c":"TensorComparisonsMixin","l":"isOnes()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseProperties","l":"isOnes(CNumber[])","u":"isOnes(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseProperties","l":"isOnes(double[])"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"isOrthogonal()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"isOrthogonal()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"isOrthogonal()"},{"p":"org.flag4j.core","c":"RealMatrixMixin","l":"isOrthogonal()"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"isParallel(Vector)","u":"isParallel(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"isParallel(Vector)","u":"isParallel(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"isParallel(Vector)","u":"isParallel(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"isParallel(Vector)","u":"isParallel(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"isParallel(Vector)","u":"isParallel(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"isPerp(Vector)","u":"isPerp(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"isPerp(Vector)","u":"isPerp(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"isPerp(Vector)","u":"isPerp(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"isPerp(Vector)","u":"isPerp(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"isPerp(Vector)","u":"isPerp(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"isPos()"},{"p":"org.flag4j.core","c":"RealTensorMixin","l":"isPos()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"isPos()"},{"p":"org.flag4j.operations.common.real","c":"RealProperties","l":"isPos(double[])"},{"p":"org.flag4j.linalg","c":"PositiveDefiniteness","l":"isPosDef(CMatrix)","u":"isPosDef(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"PositiveDefiniteness","l":"isPosDef(Matrix)","u":"isPosDef(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg","c":"PositiveDefiniteness","l":"isPosSemiDef(CMatrix)","u":"isPosSemiDef(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"PositiveDefiniteness","l":"isPosSemiDef(Matrix)","u":"isPosSemiDef(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"isReal()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"isReal()"},{"p":"org.flag4j.core","c":"ComplexMatrixMixin","l":"isReal()"},{"p":"org.flag4j.core","c":"ComplexTensorMixin","l":"isReal()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"isReal()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"isReal()"},{"p":"org.flag4j.operations.common.complex","c":"ComplexProperties","l":"isReal(CNumber[])","u":"isReal(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"isSingular()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"isSingular()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"isSingular()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"isSingular()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"isSingular()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"isSingular()"},{"p":"org.flag4j.core","c":"MatrixPropertiesMixin","l":"isSingular()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"isSquare()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"isSquare()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"isSquare()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"isSquare()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"isSquare()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"isSquare()"},{"p":"org.flag4j.core","c":"MatrixPropertiesMixin","l":"isSquare()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"isSymmetric()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"isSymmetric()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"isSymmetric()"},{"p":"org.flag4j.core","c":"RealMatrixMixin","l":"isSymmetric()"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixProperties","l":"isSymmetric(CooMatrix)","u":"isSymmetric(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrProperties","l":"isSymmetric(CsrMatrix)","u":"isSymmetric(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseProperties","l":"isSymmetric(double[], Shape)","u":"isSymmetric(double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.linalg","c":"PositiveDefiniteness","l":"isSymmPosDef(CMatrix)","u":"isSymmPosDef(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"PositiveDefiniteness","l":"isSymmPosDef(Matrix)","u":"isSymmPosDef(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"isTri()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"isTri()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"isTri()"},{"p":"org.flag4j.core","c":"MatrixPropertiesMixin","l":"isTri()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"isTriL()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"isTriL()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"isTriL()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"isTriL()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"isTriL()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"isTriL()"},{"p":"org.flag4j.core","c":"MatrixPropertiesMixin","l":"isTriL()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"isTriU()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"isTriU()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"isTriU()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"isTriU()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"isTriU()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"isTriU()"},{"p":"org.flag4j.core","c":"MatrixPropertiesMixin","l":"isTriU()"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ForwardSolver","l":"isUnit"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"isUnitary()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"isUnitary()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"isUnitary()"},{"p":"org.flag4j.core","c":"ComplexMatrixMixin","l":"isUnitary()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"isVector()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"isVector()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"isVector()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"isVector()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"isVector()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"isVector()"},{"p":"org.flag4j.core","c":"MatrixPropertiesMixin","l":"isVector()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"isZeros()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"isZeros()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"isZeros()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"isZeros()"},{"p":"org.flag4j.core","c":"TensorComparisonsMixin","l":"isZeros()"},{"p":"org.flag4j.operations.common.complex","c":"ComplexProperties","l":"isZeros(CNumber[])","u":"isZeros(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.common.real","c":"RealProperties","l":"isZeros(double[])"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"join(CooCVector)","u":"join(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"join(CooCVector)","u":"join(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"join(CooCVector)","u":"join(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"join(CooCVector)","u":"join(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"join(CooCVector)","u":"join(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"join(CooVector)","u":"join(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"join(CooVector)","u":"join(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"join(CooVector)","u":"join(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"join(CooVector)","u":"join(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"join(CooVector)","u":"join(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"join(CVector)","u":"join(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"join(CVector)","u":"join(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"join(CVector)","u":"join(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"join(CVector)","u":"join(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"join(CVector)","u":"join(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"join(double[], double[])","u":"join(double[],double[])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"join(int[], int[])","u":"join(int[],int[])"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"join(Vector)","u":"join(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"join(Vector)","u":"join(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"join(Vector)","u":"join(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"join(Vector)","u":"join(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"join(Vector)","u":"join(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"keys"},{"p":"org.flag4j.complex_numbers","c":"CNumberToken","l":"kind"},{"p":"org.flag4j.linalg.decompositions.chol","c":"Cholesky","l":"L"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"leftMult(CMatrix)","u":"leftMult(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"leftMult(CVector)","u":"leftMult(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"leftMult(Matrix)","u":"leftMult(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"leftMult(Vector)","u":"leftMult(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.linalg.transformations","c":"Givens","l":"leftMult2x2Rotator(CMatrix, CMatrix, int, CNumber[])","u":"leftMult2x2Rotator(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CMatrix,int,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.linalg.transformations","c":"Givens","l":"leftMult2x2Rotator(Matrix, Matrix, int, double[])","u":"leftMult2x2Rotator(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Matrix,int,double[])"},{"p":"org.flag4j.linalg.transformations","c":"Householder","l":"leftMultReflector(CMatrix, CNumber[], CNumber, int, int, int, CNumber[])","u":"leftMultReflector(org.flag4j.arrays.dense.CMatrix,org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber,int,int,int,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.linalg.transformations","c":"Householder","l":"leftMultReflector(CMatrix, CVector, CNumber, int, int, int)","u":"leftMultReflector(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CVector,org.flag4j.complex_numbers.CNumber,int,int,int)"},{"p":"org.flag4j.linalg.transformations","c":"Householder","l":"leftMultReflector(Matrix, double[], double, int, int, int, double[])","u":"leftMultReflector(org.flag4j.arrays.dense.Matrix,double[],double,int,int,int,double[])"},{"p":"org.flag4j.linalg.transformations","c":"Householder","l":"leftMultReflector(Matrix, Vector, double, int, int, int)","u":"leftMultReflector(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Vector,double,int,int,int)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"length()"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"length()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"length()"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"length()"},{"p":"org.flag4j.core","c":"VectorPropertiesMixin","l":"length()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"length(CNumber)","u":"length(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"LESS_EQ_ERR"},{"p":"org.flag4j.util.exceptions","c":"LinearAlgebraException","l":"LinearAlgebraException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"ln(CNumber)","u":"ln(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"ln(double)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"log(CNumber)","u":"log(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"log(CNumber, CNumber)","u":"log(org.flag4j.complex_numbers.CNumber,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"log(double)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"log(double, CNumber)","u":"log(double,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"log(double, double)","u":"log(double,double)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"longImaginaryValue()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"longValue()"},{"p":"org.flag4j.linalg.transformations","c":"View","l":"lookAt(Vector, Vector, Vector)","u":"lookAt(org.flag4j.arrays.dense.Vector,org.flag4j.arrays.dense.Vector,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.linalg.solvers.lstsq","c":"LstsqSolver","l":"LstsqSolver(UnitaryDecomposition, LinearSolver)","u":"%3Cinit%3E(org.flag4j.linalg.decompositions.unitary.UnitaryDecomposition,org.flag4j.linalg.solvers.LinearSolver)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactSolver","l":"lu"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"LU"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactSolver","l":"LU"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"LU(int)","u":"%3Cinit%3E(int)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"LU(int, double)","u":"%3Cinit%3E(int,double)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"mag()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"magSquared()"},{"p":"org.flag4j.core","c":"Shape","l":"main(String[])","u":"main(java.lang.String[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseTranspose","l":"main(String[])","u":"main(java.lang.String[])"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"makeComplexTensor(Shape, CNumber[])","u":"makeComplexTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"makeComplexTensor(Shape, CNumber[])","u":"makeComplexTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"makeComplexTensor(Shape, CNumber[])","u":"makeComplexTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"makeComplexTensor(Shape, CNumber[])","u":"makeComplexTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"makeComplexTensor(Shape, CNumber[], int[][])","u":"makeComplexTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"makeComplexTensor(Shape, CNumber[], int[][])","u":"makeComplexTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"makeComplexTensor(Shape, CNumber[], int[][])","u":"makeComplexTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"makeComplexTensor(Shape, CNumber[], int[][])","u":"makeComplexTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[][])"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"makeComplexTensor(Shape, CNumber[], int[][])","u":"makeComplexTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[][])"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"makeComplexTensor(Shape, double[])","u":"makeComplexTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"makeComplexTensor(Shape, double[])","u":"makeComplexTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"makeComplexTensor(Shape, double[])","u":"makeComplexTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"makeComplexTensor(Shape, double[])","u":"makeComplexTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"makeDenseTensor(Shape, double[])","u":"makeDenseTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"makeDenseTensor(Shape, double[])","u":"makeDenseTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"makeDenseTensor(Shape, double[])","u":"makeDenseTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"makeDenseTensor(Shape, double[])","u":"makeDenseTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"makeDenseTensor(Shape, double[])","u":"makeDenseTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.linalg.decompositions.svd","c":"ComplexSVD","l":"makeEigenPairs(CMatrix, double[])","u":"makeEigenPairs(org.flag4j.arrays.dense.CMatrix,double[])"},{"p":"org.flag4j.linalg.decompositions.svd","c":"RealSVD","l":"makeEigenPairs(Matrix, double[])","u":"makeEigenPairs(org.flag4j.arrays.dense.Matrix,double[])"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"makeEigenPairs(T, double[])","u":"makeEigenPairs(T,double[])"},{"p":"org.flag4j.linalg.decompositions.svd","c":"ComplexSVD","l":"makeEigenVals(CMatrix, double[])","u":"makeEigenVals(org.flag4j.arrays.dense.CMatrix,double[])"},{"p":"org.flag4j.linalg.decompositions.svd","c":"RealSVD","l":"makeEigenVals(Matrix, double[])","u":"makeEigenVals(org.flag4j.arrays.dense.Matrix,double[])"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"makeEigenVals(T, double[])","u":"makeEigenVals(T,double[])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"makeRealTensor(Shape, double[])","u":"makeRealTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"makeRealTensor(Shape, double[])","u":"makeRealTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"makeRealTensor(Shape, double[])","u":"makeRealTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"makeRealTensor(Shape, double[])","u":"makeRealTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"makeRealTensor(Shape, double[], int[][])","u":"makeRealTensor(org.flag4j.core.Shape,double[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"makeRealTensor(Shape, double[], int[][])","u":"makeRealTensor(org.flag4j.core.Shape,double[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"makeRealTensor(Shape, double[], int[][])","u":"makeRealTensor(org.flag4j.core.Shape,double[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"makeRealTensor(Shape, double[], int[][])","u":"makeRealTensor(org.flag4j.core.Shape,double[],int[][])"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"makeRealTensor(Shape, double[], int[][])","u":"makeRealTensor(org.flag4j.core.Shape,double[],int[][])"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"makeReflector(int, CNumber, CNumber)","u":"makeReflector(int,org.flag4j.complex_numbers.CNumber,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"makeReflector(int, CNumber, CNumber, CNumber)","u":"makeReflector(int,org.flag4j.complex_numbers.CNumber,org.flag4j.complex_numbers.CNumber,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"makeReflector(int, double, double)","u":"makeReflector(int,double,double)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"makeReflector(int, double, double, double)","u":"makeReflector(int,double,double,double)"},{"p":"org.flag4j.core","c":"Shape","l":"makeStridesIfNull()"},{"p":"org.flag4j.linalg","c":"Eigen","l":"makeSystem(CMatrix, int, CMatrix, CVector)","u":"makeSystem(org.flag4j.arrays.dense.CMatrix,int,org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"makeSystem(Matrix, int, Matrix, Vector)","u":"makeSystem(org.flag4j.arrays.dense.Matrix,int,org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"makeTensor(Shape, CNumber...)","u":"makeTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber...)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"makeTensor(Shape, CNumber[])","u":"makeTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"makeTensor(Shape, CNumber[])","u":"makeTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"makeTensor(Shape, CNumber[], int[][])","u":"makeTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"makeTensor(Shape, CNumber[], int[][])","u":"makeTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"makeTensor(Shape, CNumber[], int[][])","u":"makeTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"makeTensor(Shape, CNumber[], int[][])","u":"makeTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[][])"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"makeTensor(Shape, CNumber[], int[][])","u":"makeTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[][])"},{"p":"org.flag4j.core.dense_base","c":"DenseTensorBase","l":"makeTensor(Shape, D)","u":"makeTensor(org.flag4j.core.Shape,D)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"makeTensor(Shape, double[])","u":"makeTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"makeTensor(Shape, double[])","u":"makeTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"makeTensor(Shape, double[])","u":"makeTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"makeTensor(Shape, double[], int[][])","u":"makeTensor(org.flag4j.core.Shape,double[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"makeTensor(Shape, double[], int[][])","u":"makeTensor(org.flag4j.core.Shape,double[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"makeTensor(Shape, double[], int[][])","u":"makeTensor(org.flag4j.core.Shape,double[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"makeTensor(Shape, double[], int[][])","u":"makeTensor(org.flag4j.core.Shape,double[],int[][])"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"makeTensor(Shape, double[], int[][])","u":"makeTensor(org.flag4j.core.Shape,double[],int[][])"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"MAT_MULT_DIM_MISMATCH_ERR"},{"p":"org.flag4j.complex_numbers","c":"CNumberToken","l":"matches(String, String)","u":"matches(java.lang.String,java.lang.String)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"matMultShapeErrMsg(Shape, Shape)","u":"matMultShapeErrMsg(org.flag4j.core.Shape,org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"Matrix(double[][])","u":"%3Cinit%3E(double[][])"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"Matrix(Double[][])","u":"%3Cinit%3E(java.lang.Double[][])"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"Matrix(int)","u":"%3Cinit%3E(int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"Matrix(int, double)","u":"%3Cinit%3E(int,double)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"Matrix(int, int)","u":"%3Cinit%3E(int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"Matrix(int, int, double)","u":"%3Cinit%3E(int,int,double)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"Matrix(int, int, double[])","u":"%3Cinit%3E(int,int,double[])"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"Matrix(int[][])","u":"%3Cinit%3E(int[][])"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"Matrix(Integer[][])","u":"%3Cinit%3E(java.lang.Integer[][])"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"Matrix(Matrix)","u":"%3Cinit%3E(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"Matrix(Shape)","u":"%3Cinit%3E(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"Matrix(Shape, double)","u":"%3Cinit%3E(org.flag4j.core.Shape,double)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"Matrix(Shape, double[])","u":"%3Cinit%3E(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseElementSearch","l":"matrixBinarySearch(CooCMatrix, int, int)","u":"matrixBinarySearch(org.flag4j.arrays.sparse.CooCMatrix,int,int)"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseElementSearch","l":"matrixBinarySearch(int[], int[], int, int)","u":"matrixBinarySearch(int[],int[],int,int)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseEquals","l":"matrixEquals(CMatrix, CMatrix)","u":"matrixEquals(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseEquals","l":"matrixEquals(CMatrix, CooCMatrix)","u":"matrixEquals(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseEquals","l":"matrixEquals(CMatrix, CooMatrix)","u":"matrixEquals(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseEquals","l":"matrixEquals(CooCMatrix, CooCMatrix)","u":"matrixEquals(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseEquals","l":"matrixEquals(CooMatrix, CooCMatrix)","u":"matrixEquals(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseEquals","l":"matrixEquals(CooMatrix, CooMatrix)","u":"matrixEquals(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseEquals","l":"matrixEquals(Matrix, CMatrix)","u":"matrixEquals(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseEquals","l":"matrixEquals(Matrix, CooCMatrix)","u":"matrixEquals(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseEquals","l":"matrixEquals(Matrix, CooMatrix)","u":"matrixEquals(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseEquals","l":"matrixEquals(Matrix, Matrix)","u":"matrixEquals(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseElementSearch","l":"matrixFindRowStartEnd(CooCMatrix, int)","u":"matrixFindRowStartEnd(org.flag4j.arrays.sparse.CooCMatrix,int)"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseElementSearch","l":"matrixFindRowStartEnd(int[], int)","u":"matrixFindRowStartEnd(int[],int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"matrixGet(CooCMatrix, int, int)","u":"matrixGet(org.flag4j.arrays.sparse.CooCMatrix,int,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"matrixGet(CooMatrix, int, int)","u":"matrixGet(org.flag4j.arrays.sparse.CooMatrix,int,int)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"matrixInfNorm(CNumber[], Shape)","u":"matrixInfNorm(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"matrixInfNorm(double[], Shape)","u":"matrixInfNorm(double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"matrixMaxNorm(CNumber[])","u":"matrixMaxNorm(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"matrixMaxNorm(double[])"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"MatrixMultiplyDispatcher()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"matrixNormL2(CNumber[], Shape)","u":"matrixNormL2(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseNorms","l":"matrixNormL2(CooCMatrix)","u":"matrixNormL2(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseNorms","l":"matrixNormL2(CooMatrix)","u":"matrixNormL2(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"matrixNormLp(CNumber[], Shape, double)","u":"matrixNormLp(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseNorms","l":"matrixNormLp(CooCMatrix, double)","u":"matrixNormLp(org.flag4j.arrays.sparse.CooCMatrix,double)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseNorms","l":"matrixNormLp(CooMatrix, double)","u":"matrixNormLp(org.flag4j.arrays.sparse.CooMatrix,double)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"matrixNormLpq(CNumber[], Shape, double, double)","u":"matrixNormLpq(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double,double)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseNorms","l":"matrixNormLpq(CooCMatrix, double, double)","u":"matrixNormLpq(org.flag4j.arrays.sparse.CooCMatrix,double,double)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseNorms","l":"matrixNormLpq(CooMatrix, double, double)","u":"matrixNormLpq(org.flag4j.arrays.sparse.CooMatrix,double,double)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"matrixNormLpq(CsrMatrix, double, double)","u":"matrixNormLpq(org.flag4j.arrays.sparse.CsrMatrix,double,double)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"matrixNormLpq(double[], Shape, double, double)","u":"matrixNormLpq(double[],org.flag4j.core.Shape,double,double)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"MatrixNorms()","u":"%3Cinit%3E()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"matrixRank()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"matrixRank()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"matrixRank()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"matrixRank()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"matrixRank()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"matrixRank()"},{"p":"org.flag4j.core","c":"MatrixPropertiesMixin","l":"matrixRank()"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"matrixSet(CooCMatrix, int, int, CNumber)","u":"matrixSet(org.flag4j.arrays.sparse.CooCMatrix,int,int,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"matrixSet(CooMatrix, int, int, double)","u":"matrixSet(org.flag4j.arrays.sparse.CooMatrix,int,int,double)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactTensorSolver","l":"matrixSolver"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"MAX_REAL"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"max()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"max()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"max()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"max()"},{"p":"org.flag4j.core","c":"TensorPropertiesMixin","l":"max()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"max(CNumber...)","u":"max(org.flag4j.complex_numbers.CNumber...)"},{"p":"org.flag4j.operations.common.real","c":"AggregateReal","l":"max(double[])"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"maxAbs()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"maxAbs()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"maxAbs()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"maxAbs()"},{"p":"org.flag4j.core","c":"TensorPropertiesMixin","l":"maxAbs()"},{"p":"org.flag4j.core","c":"VectorPropertiesMixin","l":"maxAbs()"},{"p":"org.flag4j.operations.common.complex","c":"AggregateComplex","l":"maxAbs(CNumber...)","u":"maxAbs(org.flag4j.complex_numbers.CNumber...)"},{"p":"org.flag4j.operations.common.real","c":"AggregateReal","l":"maxAbs(double...)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"ComplexLU","l":"maxColIndex(int)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"RealLU","l":"maxColIndex(int)"},{"p":"org.flag4j.io","c":"PrintOptions","l":"maxColumns"},{"p":"org.flag4j.linalg.decompositions.lu","c":"ComplexLU","l":"maxIndex(int)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"RealLU","l":"maxIndex(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"maxIterations"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"maxIterationsFactor"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"maxNorm(CMatrix)","u":"maxNorm(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"maxNorm(CooCMatrix)","u":"maxNorm(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"maxNorm(CooMatrix)","u":"maxNorm(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"maxNorm(CsrMatrix)","u":"maxNorm(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"maxNorm(Matrix)","u":"maxNorm(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"maxRe(CNumber...)","u":"maxRe(org.flag4j.complex_numbers.CNumber...)"},{"p":"org.flag4j.io","c":"PrintOptions","l":"maxRows"},{"p":"org.flag4j.complex_numbers","c":"CNumberUtils","l":"maxStringLength(CNumber[])","u":"maxStringLength(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.complex_numbers","c":"CNumberUtils","l":"maxStringLength(CNumber[], int)","u":"maxStringLength(org.flag4j.complex_numbers.CNumber[],int)"},{"p":"org.flag4j.complex_numbers","c":"CNumberUtils","l":"maxStringLength(double[])"},{"p":"org.flag4j.complex_numbers","c":"CNumberUtils","l":"maxStringLength(double[], int)","u":"maxStringLength(double[],int)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"MIN_REAL"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"MIN_REAL_NORMAL"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"min()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"min()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"min()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"min()"},{"p":"org.flag4j.core","c":"TensorPropertiesMixin","l":"min()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"min(CNumber...)","u":"min(org.flag4j.complex_numbers.CNumber...)"},{"p":"org.flag4j.operations.common.real","c":"AggregateReal","l":"min(double[])"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"minAbs()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"minAbs()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"minAbs()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"minAbs()"},{"p":"org.flag4j.core","c":"TensorPropertiesMixin","l":"minAbs()"},{"p":"org.flag4j.operations.common.complex","c":"AggregateComplex","l":"minAbs(CNumber[])","u":"minAbs(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.common.real","c":"AggregateReal","l":"minAbs(double[])"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"minAxisSize"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"minRe(CNumber...)","u":"minRe(org.flag4j.complex_numbers.CNumber...)"},{"p":"org.flag4j.concurrency","c":"Configurations","l":"minRecursiveSize"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrManipulations","l":"moveAndShiftLeft(CsrCMatrix, int, int, int)","u":"moveAndShiftLeft(org.flag4j.arrays.sparse.CsrCMatrix,int,int,int)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrManipulations","l":"moveAndShiftLeft(CsrMatrix, int, int, int)","u":"moveAndShiftLeft(org.flag4j.arrays.sparse.CsrMatrix,int,int,int)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrManipulations","l":"moveAndShiftRight(CsrCMatrix, int, int, int)","u":"moveAndShiftRight(org.flag4j.arrays.sparse.CsrCMatrix,int,int,int)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrManipulations","l":"moveAndShiftRight(CsrMatrix, int, int, int)","u":"moveAndShiftRight(org.flag4j.arrays.sparse.CsrMatrix,int,int,int)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"MULT_T"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"MULT_T"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"MULT_T_BLOCKED"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"MULT_T_BLOCKED"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"MULT_T_BLOCKED_CONCURRENT"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"MULT_T_BLOCKED_CONCURRENT"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"MULT_T_CONCURRENT"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"MULT_T_CONCURRENT"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"mult(CMatrix)","u":"mult(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"mult(CMatrix)","u":"mult(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"mult(CMatrix)","u":"mult(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"mult(CMatrix)","u":"mult(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"mult(CMatrix)","u":"mult(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"mult(CMatrix)","u":"mult(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"mult(CMatrix)","u":"mult(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"mult(CNumber)","u":"mult(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"mult(CNumber)","u":"mult(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"mult(CNumber)","u":"mult(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"mult(CNumber)","u":"mult(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"mult(CNumber)","u":"mult(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"mult(CNumber)","u":"mult(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"mult(CNumber)","u":"mult(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"mult(CooCMatrix)","u":"mult(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"mult(CooCMatrix)","u":"mult(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"mult(CooCMatrix)","u":"mult(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"mult(CooCMatrix)","u":"mult(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"mult(CooCMatrix)","u":"mult(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"mult(CooCMatrix)","u":"mult(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"mult(CooCMatrix)","u":"mult(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"mult(CooCVector)","u":"mult(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"mult(CooCVector)","u":"mult(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"mult(CooCVector)","u":"mult(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"mult(CooCVector)","u":"mult(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"mult(CooCVector)","u":"mult(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"mult(CooCVector)","u":"mult(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"mult(CooCVector)","u":"mult(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"mult(CooMatrix)","u":"mult(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"mult(CooMatrix)","u":"mult(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"mult(CooMatrix)","u":"mult(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"mult(CooMatrix)","u":"mult(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"mult(CooMatrix)","u":"mult(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"mult(CooMatrix)","u":"mult(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"mult(CooMatrix)","u":"mult(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"mult(CooVector)","u":"mult(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"mult(CooVector)","u":"mult(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"mult(CooVector)","u":"mult(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"mult(CooVector)","u":"mult(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"mult(CooVector)","u":"mult(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"mult(CooVector)","u":"mult(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"mult(CooVector)","u":"mult(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"mult(CsrCMatrix)","u":"mult(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"mult(CsrCMatrix)","u":"mult(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"mult(CsrCMatrix)","u":"mult(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"mult(CsrCMatrix)","u":"mult(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"mult(CsrCMatrix)","u":"mult(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"mult(CsrCMatrix)","u":"mult(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"mult(CsrCMatrix)","u":"mult(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"mult(CsrMatrix)","u":"mult(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"mult(CsrMatrix)","u":"mult(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"mult(CsrMatrix)","u":"mult(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"mult(CsrMatrix)","u":"mult(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"mult(CsrMatrix)","u":"mult(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"mult(CsrMatrix)","u":"mult(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"mult(CsrMatrix)","u":"mult(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"mult(CVector)","u":"mult(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"mult(CVector)","u":"mult(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"mult(CVector)","u":"mult(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"mult(CVector)","u":"mult(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"mult(CVector)","u":"mult(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"mult(CVector)","u":"mult(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"mult(CVector)","u":"mult(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"mult(double)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"mult(double)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"mult(double)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"mult(double)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"mult(double)"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"mult(double)"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"mult(double)"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"mult(double)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"mult(Matrix)","u":"mult(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"mult(Matrix)","u":"mult(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"mult(Matrix)","u":"mult(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"mult(Matrix)","u":"mult(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"mult(Matrix)","u":"mult(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"mult(Matrix)","u":"mult(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"mult(Matrix)","u":"mult(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"mult(T)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"mult(TT)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"mult(Vector)","u":"mult(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"mult(Vector)","u":"mult(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"mult(Vector)","u":"mult(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"mult(Vector)","u":"mult(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"mult(Vector)","u":"mult(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"mult(Vector)","u":"mult(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"mult(Vector)","u":"mult(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"mult2CSR(CooCMatrix)","u":"mult2CSR(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"mult2CSR(CooCMatrix)","u":"mult2CSR(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"mult2CSR(CooMatrix)","u":"mult2CSR(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"mult2CSR(CooMatrix)","u":"mult2CSR(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"mult2CSR(CsrCMatrix)","u":"mult2CSR(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"mult2CSR(CsrCMatrix)","u":"mult2CSR(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"mult2CSR(CsrMatrix)","u":"mult2CSR(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"mult2CSR(CsrMatrix)","u":"mult2CSR(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"multInv()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"multTranspose(CMatrix)","u":"multTranspose(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"multTranspose(CMatrix)","u":"multTranspose(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"multTranspose(CMatrix)","u":"multTranspose(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"multTranspose(CMatrix)","u":"multTranspose(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"multTranspose(CMatrix)","u":"multTranspose(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixMultTranspose","l":"multTranspose(CNumber[], Shape, CNumber[], int[], int[], Shape)","u":"multTranspose(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultTranspose","l":"multTranspose(CNumber[], Shape, CNumber[], Shape)","u":"multTranspose(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultTranspose","l":"multTranspose(CNumber[], Shape, double[], int[], int[], Shape)","u":"multTranspose(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultTranspose","l":"multTranspose(CNumber[], Shape, double[], Shape)","u":"multTranspose(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"multTranspose(CooCMatrix)","u":"multTranspose(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"multTranspose(CooCMatrix)","u":"multTranspose(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"multTranspose(CooCMatrix)","u":"multTranspose(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"multTranspose(CooCMatrix)","u":"multTranspose(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"multTranspose(CooCMatrix)","u":"multTranspose(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"multTranspose(CooMatrix)","u":"multTranspose(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"multTranspose(CooMatrix)","u":"multTranspose(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"multTranspose(CooMatrix)","u":"multTranspose(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"multTranspose(CooMatrix)","u":"multTranspose(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"multTranspose(CooMatrix)","u":"multTranspose(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"multTranspose(CsrCMatrix)","u":"multTranspose(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"multTranspose(CsrMatrix)","u":"multTranspose(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultTranspose","l":"multTranspose(double[], Shape, CNumber[], int[], int[], Shape)","u":"multTranspose(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultTranspose","l":"multTranspose(double[], Shape, CNumber[], Shape)","u":"multTranspose(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixMultTranspose","l":"multTranspose(double[], Shape, double[], int[], int[], Shape)","u":"multTranspose(double[],org.flag4j.core.Shape,double[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultTranspose","l":"multTranspose(double[], Shape, double[], Shape)","u":"multTranspose(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"multTranspose(Matrix)","u":"multTranspose(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"multTranspose(Matrix)","u":"multTranspose(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"multTranspose(Matrix)","u":"multTranspose(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"multTranspose(Matrix)","u":"multTranspose(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"multTranspose(Matrix)","u":"multTranspose(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultTranspose","l":"multTransposeBlocked(CNumber[], Shape, CNumber[], Shape)","u":"multTransposeBlocked(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultTranspose","l":"multTransposeBlocked(CNumber[], Shape, double[], Shape)","u":"multTransposeBlocked(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultTranspose","l":"multTransposeBlocked(double[], Shape, CNumber[], Shape)","u":"multTransposeBlocked(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultTranspose","l":"multTransposeBlocked(double[], Shape, double[], Shape)","u":"multTransposeBlocked(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultTranspose","l":"multTransposeBlockedConcurrent(CNumber[], Shape, CNumber[], Shape)","u":"multTransposeBlockedConcurrent(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultTranspose","l":"multTransposeBlockedConcurrent(CNumber[], Shape, double[], Shape)","u":"multTransposeBlockedConcurrent(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultTranspose","l":"multTransposeBlockedConcurrent(double[], Shape, CNumber[], Shape)","u":"multTransposeBlockedConcurrent(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultTranspose","l":"multTransposeBlockedConcurrent(double[], Shape, double[], Shape)","u":"multTransposeBlockedConcurrent(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultTranspose","l":"multTransposeConcurrent(CNumber[], Shape, CNumber[], Shape)","u":"multTransposeConcurrent(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultTranspose","l":"multTransposeConcurrent(CNumber[], Shape, double[], Shape)","u":"multTransposeConcurrent(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultTranspose","l":"multTransposeConcurrent(double[], Shape, CNumber[], Shape)","u":"multTransposeConcurrent(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultTranspose","l":"multTransposeConcurrent(double[], Shape, double[], Shape)","u":"multTransposeConcurrent(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"NAMED_GREATER_EQ_ERR"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"NAMED_LESS_EQ_BI_ERR"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"NAMED_LESS_EQ_ERR"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"NaN"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"nearZero(CNumber, double)","u":"nearZero(org.flag4j.complex_numbers.CNumber,double)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"NEG_DIM_ERR"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"NEG_VALUE_ERR"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"NEGATIVE_INFINITY"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"NEGATIVE_ONE"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"negativeDimErrMsg(int[])"},{"p":"org.flag4j.core.sparse_base","c":"SparseTensorBase","l":"nnz"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"NON_POS_ERR"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU.Pivoting","l":"NONE"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"nonZeroEntries()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"nonZeroEntries()"},{"p":"org.flag4j.core.sparse_base","c":"SparseTensorBase","l":"nonZeroEntries()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"ComplexLU","l":"noPivot()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"noPivot()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"RealLU","l":"noPivot()"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"norm"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"norm"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"ComplexUnitaryDecomposition","l":"norm"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"RealUnitaryDecomposition","l":"norm"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"norm(CMatrix)","u":"norm(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"norm(CMatrix, double)","u":"norm(org.flag4j.arrays.dense.CMatrix,double)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"norm(CMatrix, double, double)","u":"norm(org.flag4j.arrays.dense.CMatrix,double,double)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"norm(CNumber...)","u":"norm(org.flag4j.complex_numbers.CNumber...)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"norm(CNumber[], double)","u":"norm(org.flag4j.complex_numbers.CNumber[],double)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"norm(CooCMatrix)","u":"norm(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"norm(CooCMatrix, double)","u":"norm(org.flag4j.arrays.sparse.CooCMatrix,double)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"norm(CooCMatrix, double, double)","u":"norm(org.flag4j.arrays.sparse.CooCMatrix,double,double)"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"norm(CooCTensor)","u":"norm(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"norm(CooCTensor, double)","u":"norm(org.flag4j.arrays.sparse.CooCTensor,double)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"norm(CooCVector)","u":"norm(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"norm(CooCVector, double)","u":"norm(org.flag4j.arrays.sparse.CooCVector,double)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"norm(CooMatrix)","u":"norm(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"norm(CooMatrix, double)","u":"norm(org.flag4j.arrays.sparse.CooMatrix,double)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"norm(CooMatrix, double, double)","u":"norm(org.flag4j.arrays.sparse.CooMatrix,double,double)"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"norm(CooTensor)","u":"norm(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"norm(CooTensor, double)","u":"norm(org.flag4j.arrays.sparse.CooTensor,double)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"norm(CooVector)","u":"norm(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"norm(CooVector, double)","u":"norm(org.flag4j.arrays.sparse.CooVector,double)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"norm(CsrMatrix)","u":"norm(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"norm(CsrMatrix, double)","u":"norm(org.flag4j.arrays.sparse.CsrMatrix,double)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"norm(CsrMatrix, double, double)","u":"norm(org.flag4j.arrays.sparse.CsrMatrix,double,double)"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"norm(CTensor)","u":"norm(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"norm(CTensor, double)","u":"norm(org.flag4j.arrays.dense.CTensor,double)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"norm(CVector)","u":"norm(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"norm(CVector, double)","u":"norm(org.flag4j.arrays.dense.CVector,double)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"norm(double...)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"norm(double[], double)","u":"norm(double[],double)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"norm(Matrix)","u":"norm(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"norm(Matrix, double)","u":"norm(org.flag4j.arrays.dense.Matrix,double)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"norm(Matrix, double, double)","u":"norm(org.flag4j.arrays.dense.Matrix,double,double)"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"norm(Tensor)","u":"norm(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"norm(Tensor, double)","u":"norm(org.flag4j.arrays.dense.Tensor,double)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"norm(Vector)","u":"norm(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"norm(Vector, double)","u":"norm(org.flag4j.arrays.dense.Vector,double)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"normalize()"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"normalize()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"normalize()"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"normalize()"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"normalize()"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"ComplexUnitaryDecomposition","l":"normRe"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"notContains(int[], int)","u":"notContains(int[],int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"notInAxes(int[], int)","u":"notInAxes(int[],int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"numCols"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"numCols"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"numCols"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"numCols"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"numCols"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"numCols"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"numCols"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"numCols()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"numCols()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"numCols()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"numCols()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"numCols()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"numCols()"},{"p":"org.flag4j.core","c":"MatrixMixin","l":"numCols()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"numColSwaps"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"numExceptional"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"numRows"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"numRows"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"numRows"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"numRows"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"numRows"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"numRows"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"numRows"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"numRows"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"numRows()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"numRows()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"numRows()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"numRows()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"numRows()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"numRows()"},{"p":"org.flag4j.core","c":"MatrixMixin","l":"numRows()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"numRowSwaps"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"numUnique(double[])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"numUnique(int[])"},{"p":"org.flag4j.io","c":"TensorInputStream","l":"objectIn"},{"p":"org.flag4j.io","c":"TensorOutputStream","l":"objectOut"},{"p":"org.flag4j.arrays.sparse","c":"SymmTriDiagonal","l":"offDiag"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"ONE"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseVectorOperations","l":"OUTER_CONCURRENT_THRESHOLD"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"outer(CooCVector)","u":"outer(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"outer(CooCVector)","u":"outer(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"outer(CooCVector)","u":"outer(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"outer(CooCVector)","u":"outer(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"outer(CooCVector)","u":"outer(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"outer(CooVector)","u":"outer(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"outer(CooVector)","u":"outer(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"outer(CooVector)","u":"outer(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"outer(CooVector)","u":"outer(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"outer(CooVector)","u":"outer(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"outer(CVector)","u":"outer(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"outer(CVector)","u":"outer(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"outer(CVector)","u":"outer(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"outer(CVector)","u":"outer(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"outer(CVector)","u":"outer(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"outer(Vector)","u":"outer(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"outer(Vector)","u":"outer(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"outer(Vector)","u":"outer(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"outer(Vector)","u":"outer(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"outer(Vector)","u":"outer(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseVectorOperations","l":"outerProduct(CNumber[], CNumber[])","u":"outerProduct(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseVectorOperations","l":"outerProduct(CNumber[], CNumber[], int[], int)","u":"outerProduct(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber[],int[],int)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseVectorOperations","l":"outerProduct(CNumber[], double[])","u":"outerProduct(org.flag4j.complex_numbers.CNumber[],double[])"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"outerProduct(CNumber[], double[], int[], int)","u":"outerProduct(org.flag4j.complex_numbers.CNumber[],double[],int[],int)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseVectorOperations","l":"outerProduct(CNumber[], int[], int, CNumber[])","u":"outerProduct(org.flag4j.complex_numbers.CNumber[],int[],int,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"outerProduct(CNumber[], int[], int, double[])","u":"outerProduct(org.flag4j.complex_numbers.CNumber[],int[],int,double[])"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseVectorOperations","l":"outerProduct(CooCVector, CooCVector)","u":"outerProduct(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseVectorOperations","l":"outerProduct(CooCVector, CooVector)","u":"outerProduct(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseVectorOperations","l":"outerProduct(CooVector, CooCVector)","u":"outerProduct(org.flag4j.arrays.sparse.CooVector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseVectorOperations","l":"outerProduct(CooVector, CooVector)","u":"outerProduct(org.flag4j.arrays.sparse.CooVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseVectorOperations","l":"outerProduct(double[], CNumber[])","u":"outerProduct(double[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"outerProduct(double[], CNumber[], int[], int)","u":"outerProduct(double[],org.flag4j.complex_numbers.CNumber[],int[],int)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseVectorOperations","l":"outerProduct(double[], double[])","u":"outerProduct(double[],double[])"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseVectorOperations","l":"outerProduct(double[], double[], int[], int)","u":"outerProduct(double[],double[],int[],int)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"outerProduct(double[], int[], int, CNumber[])","u":"outerProduct(double[],int[],int,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseVectorOperations","l":"outerProduct(double[], int[], int, double[])","u":"outerProduct(double[],int[],int,double[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseVectorOperations","l":"outerProductConcurrent(double[], double[])","u":"outerProductConcurrent(double[],double[])"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"P"},{"p":"org.flag4j.io","c":"PrintOptions","l":"padding"},{"p":"org.flag4j.concurrency","c":"ThreadManager","l":"parallelismLevel"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"ParameterChecks()","u":"%3Cinit%3E()"},{"p":"org.flag4j.complex_numbers","c":"CNumberParser","l":"parseNumber(String)","u":"parseNumber(java.lang.String)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU.Pivoting","l":"PARTIAL"},{"p":"org.flag4j.linalg.decompositions.lu","c":"ComplexLU","l":"partialPivot()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"partialPivot()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"RealLU","l":"partialPivot()"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"performDoubleShift(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"performDoubleShift(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"performDoubleShift(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"performExceptionalShift(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"performExceptionalShift(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"performExceptionalShift(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"performSingleShift(int, CNumber)","u":"performSingleShift(int,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"performSingleShift(int, double)","u":"performSingleShift(int,double)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"PermutationMatrix(int)","u":"%3Cinit%3E(int)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"PermutationMatrix(int[])","u":"%3Cinit%3E(int[])"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"PermutationMatrix(PermutationMatrix)","u":"%3Cinit%3E(org.flag4j.arrays.sparse.PermutationMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"PermutationMatrix(Shape)","u":"%3Cinit%3E(org.flag4j.core.Shape)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ComplexExactSolver","l":"permuteRows(CMatrix)","u":"permuteRows(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ComplexExactSolver","l":"permuteRows(CVector)","u":"permuteRows(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"permuteRows(int[])"},{"p":"org.flag4j.linalg.solvers.exact","c":"RealExactSolver","l":"permuteRows(Matrix)","u":"permuteRows(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactSolver","l":"permuteRows(T)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactSolver","l":"permuteRows(U)"},{"p":"org.flag4j.linalg.solvers.exact","c":"RealExactSolver","l":"permuteRows(Vector)","u":"permuteRows(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"PI"},{"p":"org.flag4j.linalg","c":"Invert","l":"pInv(CMatrix)","u":"pInv(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"Invert","l":"pInv(Matrix)","u":"pInv(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"pivotFlag"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU.Pivoting","l":"Pivoting()","u":"%3Cinit%3E()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"POSITIVE_INFINITY"},{"p":"org.flag4j.linalg","c":"PositiveDefiniteness","l":"PositiveDefiniteness()","u":"%3Cinit%3E()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"pow(CNumber, CNumber)","u":"pow(org.flag4j.complex_numbers.CNumber,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"pow(CNumber, double)","u":"pow(org.flag4j.complex_numbers.CNumber,double)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"pow(double, CNumber)","u":"pow(double,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"pow(double, double)","u":"pow(double,double)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"pow(int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"pow(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"pow(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"pow(int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"pow(int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"pow(int)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"pow(int)"},{"p":"org.flag4j.io","c":"PrintOptions","l":"precision"},{"p":"org.flag4j.io","c":"PrintOptions","l":"PrintOptions()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"prod(CNumber[])","u":"prod(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseOperations","l":"prod(double[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseOperations","l":"prod(int[])"},{"p":"org.flag4j.linalg.transformations","c":"Projection","l":"Projection()","u":"%3Cinit%3E()"},{"p":"org.flag4j.complex_numbers","c":"CNumberLexer","l":"putBackSymbol(int)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"Q"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"qFactors"},{"p":"org.flag4j.linalg.solvers.lstsq","c":"LstsqSolver","l":"Qh"},{"p":"org.flag4j.linalg.solvers.lstsq","c":"LstsqSolver","l":"qr"},{"p":"org.flag4j.linalg.solvers.lstsq","c":"LstsqSolver","l":"R"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"RAND_ARRAY"},{"p":"org.flag4j.rng","c":"RandomCNumber","l":"randn()"},{"p":"org.flag4j.rng","c":"RandomCNumber","l":"randn(double, double)","u":"randn(double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnCMatrix(int, int)","u":"randnCMatrix(int,int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnCMatrix(int, int, double, double)","u":"randnCMatrix(int,int,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnCMatrix(Shape)","u":"randnCMatrix(org.flag4j.core.Shape)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnCMatrix(Shape, double, double)","u":"randnCMatrix(org.flag4j.core.Shape,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnCTensor(Shape)","u":"randnCTensor(org.flag4j.core.Shape)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnCTensor(Shape, double, double)","u":"randnCTensor(org.flag4j.core.Shape,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnCVector(int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnCVector(int, double, double)","u":"randnCVector(int,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnMatrix(int, int)","u":"randnMatrix(int,int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnMatrix(int, int, double, double)","u":"randnMatrix(int,int,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnMatrix(Shape)","u":"randnMatrix(org.flag4j.core.Shape)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnMatrix(Shape, double, double)","u":"randnMatrix(org.flag4j.core.Shape,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnTensor(Shape)","u":"randnTensor(org.flag4j.core.Shape)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnTensor(Shape, double, double)","u":"randnTensor(org.flag4j.core.Shape,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnVector(int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnVector(int, double, double)","u":"randnVector(int,double,double)"},{"p":"org.flag4j.rng","c":"RandomCNumber","l":"random()"},{"p":"org.flag4j.rng","c":"RandomCNumber","l":"random(double)"},{"p":"org.flag4j.rng","c":"RandomCNumber","l":"random(double, double)","u":"random(double,double)"},{"p":"org.flag4j.rng","c":"RandomArray","l":"RandomArray()","u":"%3Cinit%3E()"},{"p":"org.flag4j.rng","c":"RandomArray","l":"RandomArray(RandomCNumber)","u":"%3Cinit%3E(org.flag4j.rng.RandomCNumber)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCMatrix(int, int)","u":"randomCMatrix(int,int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCMatrix(int, int, double, double)","u":"randomCMatrix(int,int,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCMatrix(Shape)","u":"randomCMatrix(org.flag4j.core.Shape)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCMatrix(Shape, double, double)","u":"randomCMatrix(org.flag4j.core.Shape,double,double)"},{"p":"org.flag4j.rng","c":"RandomCNumber","l":"RandomCNumber()","u":"%3Cinit%3E()"},{"p":"org.flag4j.rng","c":"RandomCNumber","l":"RandomCNumber(long)","u":"%3Cinit%3E(long)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCooMatrix(int, int, double, double, double)","u":"randomCooMatrix(int,int,double,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCooMatrix(int, int, double, double, int)","u":"randomCooMatrix(int,int,double,double,int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCooMatrix(Shape, double, double, double)","u":"randomCooMatrix(org.flag4j.core.Shape,double,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCooMatrix(Shape, double, double, int)","u":"randomCooMatrix(org.flag4j.core.Shape,double,double,int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCsrMatrix(int, int, double, double, double)","u":"randomCsrMatrix(int,int,double,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCsrMatrix(int, int, double, double, int)","u":"randomCsrMatrix(int,int,double,double,int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCsrMatrix(Shape, double, double, double)","u":"randomCsrMatrix(org.flag4j.core.Shape,double,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCsrMatrix(Shape, double, double, int)","u":"randomCsrMatrix(org.flag4j.core.Shape,double,double,int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCTensor(Shape)","u":"randomCTensor(org.flag4j.core.Shape)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCTensor(Shape, double, double)","u":"randomCTensor(org.flag4j.core.Shape,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCVector(int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCVector(int, double, double)","u":"randomCVector(int,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomMatrix(int, int)","u":"randomMatrix(int,int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomMatrix(int, int, double, double)","u":"randomMatrix(int,int,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomMatrix(Shape)","u":"randomMatrix(org.flag4j.core.Shape)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomMatrix(Shape, double, double)","u":"randomMatrix(org.flag4j.core.Shape,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomOrthogonalMatrix(int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomSparseCMatrix(int, int, double, double, double)","u":"randomSparseCMatrix(int,int,double,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomSparseCMatrix(int, int, double, double, int)","u":"randomSparseCMatrix(int,int,double,double,int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomSparseCMatrix(Shape, double, double, double)","u":"randomSparseCMatrix(org.flag4j.core.Shape,double,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomSparseCMatrix(Shape, double, double, int)","u":"randomSparseCMatrix(org.flag4j.core.Shape,double,double,int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomSymmetricCooMatrix(int, int, int, double)","u":"randomSymmetricCooMatrix(int,int,int,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomSymmetricCsrMatrix(int, int, int, double)","u":"randomSymmetricCsrMatrix(int,int,int,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomSymmetricMatrix(int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"RandomTensor()","u":"%3Cinit%3E()"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"RandomTensor(long)","u":"%3Cinit%3E(long)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomTensor(Shape)","u":"randomTensor(org.flag4j.core.Shape)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomTensor(Shape, double, double)","u":"randomTensor(org.flag4j.core.Shape,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomTriuMatrix(int, int, int)","u":"randomTriuMatrix(int,int,int)"},{"p":"org.flag4j.rng","c":"RandomArray","l":"randomUniqueIndices(int, int, int)","u":"randomUniqueIndices(int,int,int)"},{"p":"org.flag4j.rng","c":"RandomArray","l":"randomUniqueIndices2D(int, int, int, int, int)","u":"randomUniqueIndices2D(int,int,int,int,int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomUnitaryMatrix(int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomVector(int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomVector(int, double, double)","u":"randomVector(int,double,double)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"RANGE_ERR"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"range(int, int)","u":"range(int,int)"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"rank"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"BackSolver","l":"RANK_CONDITION"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ForwardSolver","l":"RANK_CONDITION"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"re"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"re()"},{"p":"org.flag4j.io","c":"TensorInputStream","l":"read()"},{"p":"org.flag4j.io","c":"TensorInputStream","l":"readMatrix()"},{"p":"org.flag4j.io","c":"TensorReader","l":"readMatrix(String)","u":"readMatrix(java.lang.String)"},{"p":"org.flag4j.io","c":"TensorInputStream","l":"readTensor()"},{"p":"org.flag4j.io","c":"TensorReader","l":"readTensor(String)","u":"readTensor(java.lang.String)"},{"p":"org.flag4j.io","c":"TensorInputStream","l":"readVector()"},{"p":"org.flag4j.io","c":"TensorReader","l":"readVector(String)","u":"readVector(java.lang.String)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"real2ComplexSchur()"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"real2ComplexSchur()"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealBackSolver","l":"RealBackSolver()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealBackSolver","l":"RealBackSolver(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.linalg.decompositions.chol","c":"RealCholesky","l":"RealCholesky()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.chol","c":"RealCholesky","l":"RealCholesky(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexCooTensorOperations","l":"RealComplexCooTensorOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseMatrixMultiplication","l":"RealComplexCsrDenseMatrixMultiplication()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseOperations","l":"RealComplexCsrDenseOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.csr.real_complex","c":"RealComplexCsrMatrixMultiplication","l":"RealComplexCsrMatrixMultiplication()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.csr.real_complex","c":"RealComplexCsrOperations","l":"RealComplexCsrOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseElemDiv","l":"RealComplexDenseElemDiv()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseElemMult","l":"RealComplexDenseElemMult()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseEquals","l":"RealComplexDenseEquals()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"RealComplexDenseMatrixMultiplication()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultTranspose","l":"RealComplexDenseMatrixMultTranspose()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseOperations","l":"RealComplexDenseOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseEquals","l":"RealComplexDenseSparseEquals()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"RealComplexDenseSparseMatrixMultiplication()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultTranspose","l":"RealComplexDenseSparseMatrixMultTranspose()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"RealComplexDenseSparseMatrixOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseOperations","l":"RealComplexDenseSparseOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"RealComplexDenseSparseVectorOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseVectorOperations","l":"RealComplexDenseVectorOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseEquals","l":"RealComplexSparseEquals()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixMultiplication","l":"RealComplexSparseMatrixMultiplication()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixOperations","l":"RealComplexSparseMatrixOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseVectorOperations","l":"RealComplexSparseVectorOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealCooTensorDot","l":"RealCooTensorDot()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealCooTensorOperations","l":"RealCooTensorOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrConcats","l":"RealCsrConcats()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.csr.real","c":"RealCsrDenseMatrixMultiplication","l":"RealCsrDenseMatrixMultiplication()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.csr.real","c":"RealCsrDenseOperations","l":"RealCsrDenseOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrEquals","l":"RealCsrEquals()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrManipulations","l":"RealCsrManipulations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrMatrixMultiplication","l":"RealCsrMatrixMultiplication()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrOperations","l":"RealCsrOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrProperties","l":"RealCsrProperties()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseDeterminant","l":"RealDenseDeterminant()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseElemDiv","l":"RealDenseElemDiv()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseElemMult","l":"RealDenseElemMult()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseEquals","l":"RealDenseEquals()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.common","c":"TensorEquals","l":"realDenseLookUp"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultiplication","l":"RealDenseMatrixMultiplication()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher","l":"RealDenseMatrixMultiplyDispatcher()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultTranspose","l":"RealDenseMatrixMultTranspose()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseOperations","l":"RealDenseOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseProperties","l":"RealDenseProperties()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseSetOperations","l":"RealDenseSetOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseEquals","l":"RealDenseSparseEquals()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixMultiplication","l":"RealDenseSparseMatrixMultiplication()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixMultTranspose","l":"RealDenseSparseMatrixMultTranspose()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixOperations","l":"RealDenseSparseMatrixOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseTensorOperations","l":"RealDenseSparseTensorOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseVectorOperations","l":"RealDenseSparseVectorOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"RealDenseTensorBase(Shape, double[])","u":"%3Cinit%3E(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseTensorDot","l":"RealDenseTensorDot()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseTranspose","l":"RealDenseTranspose()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseVectorOperations","l":"RealDenseVectorOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.solvers.exact","c":"RealExactSolver","l":"RealExactSolver()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.solvers.exact","c":"RealExactTensorSolver","l":"RealExactTensorSolver()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealForwardSolver","l":"RealForwardSolver()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealForwardSolver","l":"RealForwardSolver(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealForwardSolver","l":"RealForwardSolver(boolean, boolean)","u":"%3Cinit%3E(boolean,boolean)"},{"p":"org.flag4j.linalg.decompositions.hess","c":"RealHess","l":"RealHess()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.hess","c":"RealHess","l":"RealHess(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.linalg.solvers.lstsq","c":"RealLstsqSolver","l":"RealLstsqSolver()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"RealLU","l":"RealLU()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"RealLU","l":"RealLU(int)","u":"%3Cinit%3E(int)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"RealLU","l":"RealLU(int, double)","u":"%3Cinit%3E(int,double)"},{"p":"org.flag4j.operations.common.real","c":"RealOperations","l":"RealOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.common.real","c":"RealProperties","l":"RealProperties()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.qr","c":"RealQR","l":"RealQR()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.qr","c":"RealQR","l":"RealQR(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"RealSchur()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"RealSchur(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"RealSchur(boolean, long)","u":"%3Cinit%3E(boolean,long)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"RealSchur(long)","u":"%3Cinit%3E(long)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseEquals","l":"RealSparseEquals()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.common","c":"TensorEquals","l":"realSparseLookUp"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseManipulations","l":"RealSparseManipulations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"RealSparseMatrixGetSet()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixManipulations","l":"RealSparseMatrixManipulations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixMultiplication","l":"RealSparseMatrixMultiplication()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixOperations","l":"RealSparseMatrixOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixProperties","l":"RealSparseMatrixProperties()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseNorms","l":"RealSparseNorms()","u":"%3Cinit%3E()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"RealSparseTensorBase(Shape, int, double[], int[], int[]...)","u":"%3Cinit%3E(org.flag4j.core.Shape,int,double[],int[],int[]...)"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"RealSparseTensorBase(Shape, int, double[], int[][])","u":"%3Cinit%3E(org.flag4j.core.Shape,int,double[],int[][])"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseVectorOperations","l":"RealSparseVectorOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.svd","c":"RealSVD","l":"RealSVD()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.svd","c":"RealSVD","l":"RealSVD(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.linalg.decompositions.svd","c":"RealSVD","l":"RealSVD(boolean, boolean)","u":"%3Cinit%3E(boolean,boolean)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"RealUnitaryDecomposition","l":"RealUnitaryDecomposition(int)","u":"%3Cinit%3E(int)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"RealUnitaryDecomposition","l":"RealUnitaryDecomposition(int, boolean)","u":"%3Cinit%3E(int,boolean)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"recip()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"recip()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"recip()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"recip()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"recip()"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"recip()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"recip(CNumber[])","u":"recip(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseOperations","l":"recip(double[])"},{"p":"org.flag4j.linalg.decompositions.qr","c":"ComplexQR","l":"reduced"},{"p":"org.flag4j.linalg.decompositions.qr","c":"RealQR","l":"reduced"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"reduced"},{"p":"org.flag4j.linalg","c":"RowEchelon","l":"ref(CMatrix)","u":"ref(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"RowEchelon","l":"ref(Matrix)","u":"ref(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrEquals","l":"removeCloseToZero(CsrCMatrix, List, int[], List, double)","u":"removeCloseToZero(org.flag4j.arrays.sparse.CsrCMatrix,java.util.List,int[],java.util.List,double)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrEquals","l":"removeCloseToZero(CsrMatrix, List, int[], List, double)","u":"removeCloseToZero(org.flag4j.arrays.sparse.CsrMatrix,java.util.List,int[],java.util.List,double)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixManipulations","l":"removeCol(CooCMatrix, int)","u":"removeCol(org.flag4j.arrays.sparse.CooCMatrix,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixManipulations","l":"removeCol(CooMatrix, int)","u":"removeCol(org.flag4j.arrays.sparse.CooMatrix,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"removeCol(int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"removeCol(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"removeCol(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"removeCol(int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"removeCol(int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"removeCol(int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"removeCol(int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixManipulations","l":"removeCols(CooCMatrix, int...)","u":"removeCols(org.flag4j.arrays.sparse.CooCMatrix,int...)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixManipulations","l":"removeCols(CooMatrix, int...)","u":"removeCols(org.flag4j.arrays.sparse.CooMatrix,int...)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"removeCols(int...)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"removeCols(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"removeCols(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"removeCols(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"removeCols(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"removeCols(int...)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"removeCols(int...)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixManipulations","l":"removeRow(CooCMatrix, int)","u":"removeRow(org.flag4j.arrays.sparse.CooCMatrix,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixManipulations","l":"removeRow(CooMatrix, int)","u":"removeRow(org.flag4j.arrays.sparse.CooMatrix,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"removeRow(int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"removeRow(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"removeRow(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"removeRow(int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"removeRow(int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"removeRow(int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"removeRow(int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixManipulations","l":"removeRows(CooCMatrix, int...)","u":"removeRows(org.flag4j.arrays.sparse.CooCMatrix,int...)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixManipulations","l":"removeRows(CooMatrix, int...)","u":"removeRows(org.flag4j.arrays.sparse.CooMatrix,int...)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"removeRows(int...)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"removeRows(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"removeRows(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"removeRows(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"removeRows(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"removeRows(int...)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"removeRows(int...)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"REORDERED"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"REORDERED"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultiplication","l":"reordered(CNumber[], Shape, CNumber[], Shape)","u":"reordered(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"reordered(CNumber[], Shape, double[], Shape)","u":"reordered(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"reordered(double[], Shape, CNumber[], Shape)","u":"reordered(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultiplication","l":"reordered(double[], Shape, double[], Shape)","u":"reordered(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"repeat(int, int)","u":"repeat(int,int)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"repeat(int, int)","u":"repeat(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"repeat(int, int)","u":"repeat(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"repeat(int, int)","u":"repeat(int,int)"},{"p":"org.flag4j.core","c":"VectorMixin","l":"repeat(int, int)","u":"repeat(int,int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"repeat(int, int[])","u":"repeat(int,int[])"},{"p":"org.flag4j.concurrency","c":"Configurations","l":"resetAll()"},{"p":"org.flag4j.io","c":"PrintOptions","l":"resetAll()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"reshape(int...)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"reshape(int...)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"reshape(int...)"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"reshape(int...)"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"reshape(int...)"},{"p":"org.flag4j.core","c":"TensorManipulationsMixin","l":"reshape(int...)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"reshape(Shape)","u":"reshape(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"reshape(Shape)","u":"reshape(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"reshape(Shape)","u":"reshape(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"reshape(Shape)","u":"reshape(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"reshape(Shape)","u":"reshape(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"reshape(Shape)","u":"reshape(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"reshape(Shape)","u":"reshape(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"reshape(Shape)","u":"reshape(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"reshape(Shape)","u":"reshape(org.flag4j.core.Shape)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"reshape(Shape)","u":"reshape(org.flag4j.core.Shape)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"reshape(Shape)","u":"reshape(org.flag4j.core.Shape)"},{"p":"org.flag4j.core","c":"TensorManipulationsMixin","l":"reshape(Shape)","u":"reshape(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"rightMult(CMatrix)","u":"rightMult(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"rightMult(CVector)","u":"rightMult(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"rightMult(Matrix)","u":"rightMult(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"rightMult(Vector)","u":"rightMult(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.linalg.transformations","c":"Givens","l":"rightMult2x2Rotator(CMatrix, CMatrix, int, CNumber[])","u":"rightMult2x2Rotator(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CMatrix,int,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.linalg.transformations","c":"Givens","l":"rightMult2x2Rotator(Matrix, Matrix, int, double[])","u":"rightMult2x2Rotator(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Matrix,int,double[])"},{"p":"org.flag4j.linalg.transformations","c":"Householder","l":"rightMultReflector(CMatrix, CNumber[], CNumber, int, int, int)","u":"rightMultReflector(org.flag4j.arrays.dense.CMatrix,org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber,int,int,int)"},{"p":"org.flag4j.linalg.transformations","c":"Householder","l":"rightMultReflector(CMatrix, CVector, CNumber, int, int, int)","u":"rightMultReflector(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CVector,org.flag4j.complex_numbers.CNumber,int,int,int)"},{"p":"org.flag4j.linalg.transformations","c":"Householder","l":"rightMultReflector(Matrix, double[], double, int, int, int)","u":"rightMultReflector(org.flag4j.arrays.dense.Matrix,double[],double,int,int,int)"},{"p":"org.flag4j.linalg.transformations","c":"Householder","l":"rightMultReflector(Matrix, Vector, double, int, int, int)","u":"rightMultReflector(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Vector,double,int,int,int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"rng"},{"p":"org.flag4j.rng","c":"RandomArray","l":"rng"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"ROOT_THREE"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"ROOT_TWO"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"round()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"round()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"round()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"round()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"round()"},{"p":"org.flag4j.core","c":"TensorManipulationsMixin","l":"round()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"round(CNumber)","u":"round(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"round(CNumber, int)","u":"round(org.flag4j.complex_numbers.CNumber,int)"},{"p":"org.flag4j.operations.common.complex","c":"ComplexOperations","l":"round(CNumber[])","u":"round(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.common.complex","c":"ComplexOperations","l":"round(CNumber[], int)","u":"round(org.flag4j.complex_numbers.CNumber[],int)"},{"p":"org.flag4j.operations.common.real","c":"RealOperations","l":"round(double[])"},{"p":"org.flag4j.operations.common.real","c":"RealOperations","l":"round(double[], int)","u":"round(double[],int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"round(int)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"round(int)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"round(int)"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"round(int)"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"round(int)"},{"p":"org.flag4j.core","c":"TensorManipulationsMixin","l":"round(int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"roundToZero()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"roundToZero()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"roundToZero()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"roundToZero()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"roundToZero()"},{"p":"org.flag4j.core","c":"TensorManipulationsMixin","l":"roundToZero()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"roundToZero(CNumber, double)","u":"roundToZero(org.flag4j.complex_numbers.CNumber,double)"},{"p":"org.flag4j.operations.common.complex","c":"ComplexOperations","l":"roundToZero(CNumber[], double)","u":"roundToZero(org.flag4j.complex_numbers.CNumber[],double)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"roundToZero(double)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"roundToZero(double)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"roundToZero(double)"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"roundToZero(double)"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"roundToZero(double)"},{"p":"org.flag4j.core","c":"TensorManipulationsMixin","l":"roundToZero(double)"},{"p":"org.flag4j.operations.common.real","c":"RealOperations","l":"roundToZero(double[], double)","u":"roundToZero(double[],double)"},{"p":"org.flag4j.util","c":"Axis2D","l":"ROW"},{"p":"org.flag4j.util","c":"Axis2D","l":"row()"},{"p":"org.flag4j.linalg","c":"RowEchelon","l":"RowEchelon()","u":"%3Cinit%3E()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"rowIndices"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"rowIndices"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactSolver","l":"rowPermute"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"rowPointers"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"rowPointers"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"rowSwaps"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"rowToString(int, int, List)","u":"rowToString(int,int,java.util.List)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"rowToString(int, int, List)","u":"rowToString(int,int,java.util.List)"},{"p":"org.flag4j.linalg","c":"RowEchelon","l":"rref(CMatrix)","u":"rref(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"RowEchelon","l":"rref(Matrix)","u":"rref(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"S"},{"p":"org.flag4j.core","c":"TensorBase","l":"sameLength(TensorBase, TensorBase, int)","u":"sameLength(org.flag4j.core.TensorBase,org.flag4j.core.TensorBase,int)"},{"p":"org.flag4j.core","c":"TensorBase","l":"sameShape(TensorBase)","u":"sameShape(org.flag4j.core.TensorBase)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"scalDiv(CNumber[], CNumber)","u":"scalDiv(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"scalDiv(CNumber[], double)","u":"scalDiv(org.flag4j.complex_numbers.CNumber[],double)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseOperations","l":"scalDiv(CNumber[], double)","u":"scalDiv(org.flag4j.complex_numbers.CNumber[],double)"},{"p":"org.flag4j.operations.common.complex","c":"ComplexOperations","l":"scalDiv(double[], CNumber)","u":"scalDiv(double[],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseOperations","l":"scalDiv(double[], CNumber)","u":"scalDiv(double[],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.common.real","c":"RealOperations","l":"scalDiv(double[], double)","u":"scalDiv(double[],double)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseOperations","l":"scalDiv(double[], double)","u":"scalDiv(double[],double)"},{"p":"org.flag4j.operations.common.complex","c":"ComplexOperations","l":"scalMult(CNumber[], CNumber)","u":"scalMult(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"scalMult(CNumber[], CNumber)","u":"scalMult(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.common.complex","c":"ComplexOperations","l":"scalMult(CNumber[], CNumber[], CNumber)","u":"scalMult(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.common.complex","c":"ComplexOperations","l":"scalMult(CNumber[], CNumber[], CNumber, int, int)","u":"scalMult(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber,int,int)"},{"p":"org.flag4j.operations.common.complex","c":"ComplexOperations","l":"scalMult(CNumber[], double)","u":"scalMult(org.flag4j.complex_numbers.CNumber[],double)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"scalMult(CNumber[], double)","u":"scalMult(org.flag4j.complex_numbers.CNumber[],double)"},{"p":"org.flag4j.operations.common.complex","c":"ComplexOperations","l":"scalMult(double[], CNumber)","u":"scalMult(double[],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.common.real","c":"RealOperations","l":"scalMult(double[], double)","u":"scalMult(double[],double)"},{"p":"org.flag4j.operations.common.real","c":"RealOperations","l":"scalMult(double[], double[], double)","u":"scalMult(double[],double[],double)"},{"p":"org.flag4j.operations.common.real","c":"RealOperations","l":"scalMult(double[], double[], double, int, int)","u":"scalMult(double[],double[],double,int,int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"Schur(boolean, RandomCNumber, UnitaryDecomposition)","u":"%3Cinit%3E(boolean,org.flag4j.rng.RandomCNumber,org.flag4j.linalg.decompositions.unitary.UnitaryDecomposition)"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher","l":"selectAlgorithm(Shape, Shape)","u":"selectAlgorithm(org.flag4j.core.Shape,org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher","l":"selectAlgorithmTranspose(Shape)","u":"selectAlgorithmTranspose(org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"SEQUENTIAL_SWAPPED_THRESHOLD"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher","l":"SEQUENTIAL_SWAPPED_THRESHOLD"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"set(CNumber, int, int)","u":"set(org.flag4j.complex_numbers.CNumber,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"set(CNumber, int, int)","u":"set(org.flag4j.complex_numbers.CNumber,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"set(CNumber, int, int)","u":"set(org.flag4j.complex_numbers.CNumber,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"set(CNumber, int...)","u":"set(org.flag4j.complex_numbers.CNumber,int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"set(CNumber, int...)","u":"set(org.flag4j.complex_numbers.CNumber,int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"set(CNumber, int...)","u":"set(org.flag4j.complex_numbers.CNumber,int...)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"set(CNumber, int...)","u":"set(org.flag4j.complex_numbers.CNumber,int...)"},{"p":"org.flag4j.core","c":"ComplexTensorMixin","l":"set(CNumber, int...)","u":"set(org.flag4j.complex_numbers.CNumber,int...)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"set(CNumber, int...)","u":"set(org.flag4j.complex_numbers.CNumber,int...)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseSetOperations","l":"set(CNumber[], Shape, CNumber, int...)","u":"set(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber,int...)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseSetOperations","l":"set(CNumber[], Shape, double, int...)","u":"set(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double,int...)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"set(double, int, int)","u":"set(double,int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"set(double, int, int)","u":"set(double,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"set(double, int, int)","u":"set(double,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"set(double, int, int)","u":"set(double,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"set(double, int, int)","u":"set(double,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"set(double, int, int)","u":"set(double,int,int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"set(double, int, int)","u":"set(double,int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"set(Double, int, int)","u":"set(java.lang.Double,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"set(Double, int, int)","u":"set(java.lang.Double,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"set(Double, int, int)","u":"set(java.lang.Double,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"set(double, int...)","u":"set(double,int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"set(double, int...)","u":"set(double,int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"set(double, int...)","u":"set(double,int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"set(double, int...)","u":"set(double,int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"set(double, int...)","u":"set(double,int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"set(double, int...)","u":"set(double,int...)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"set(double, int...)","u":"set(double,int...)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"set(double, int...)","u":"set(double,int...)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"set(double, int...)","u":"set(double,int...)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"set(double, int...)","u":"set(double,int...)"},{"p":"org.flag4j.core","c":"TensorManipulationsMixin","l":"set(double, int...)","u":"set(double,int...)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseSetOperations","l":"set(double[], Shape, double, int...)","u":"set(double[],org.flag4j.core.Shape,double,int...)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"set(X, int, int)","u":"set(X,int,int)"},{"p":"org.flag4j.concurrency","c":"Configurations","l":"setBlockSize(int)"},{"p":"org.flag4j.io","c":"PrintOptions","l":"setCentering(boolean)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setCol(CNumber[], int)","u":"setCol(org.flag4j.complex_numbers.CNumber[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setCol(CNumber[], int)","u":"setCol(org.flag4j.complex_numbers.CNumber[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setCol(CNumber[], int)","u":"setCol(org.flag4j.complex_numbers.CNumber[],int)"},{"p":"org.flag4j.core","c":"ComplexMatrixMixin","l":"setCol(CNumber[], int)","u":"setCol(org.flag4j.complex_numbers.CNumber[],int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setCol(CooCMatrix, int, CNumber[])","u":"setCol(org.flag4j.arrays.sparse.CooCMatrix,int,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setCol(CooCMatrix, int, CooCVector)","u":"setCol(org.flag4j.arrays.sparse.CooCMatrix,int,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setCol(CooCMatrix, int, double[])","u":"setCol(org.flag4j.arrays.sparse.CooCMatrix,int,double[])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setCol(CooCVector, int)","u":"setCol(org.flag4j.arrays.sparse.CooCVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setCol(CooCVector, int)","u":"setCol(org.flag4j.arrays.sparse.CooCVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setCol(CooCVector, int)","u":"setCol(org.flag4j.arrays.sparse.CooCVector,int)"},{"p":"org.flag4j.core","c":"ComplexMatrixMixin","l":"setCol(CooCVector, int)","u":"setCol(org.flag4j.arrays.sparse.CooCVector,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"setCol(CooMatrix, int, CooVector)","u":"setCol(org.flag4j.arrays.sparse.CooMatrix,int,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"setCol(CooMatrix, int, double[])","u":"setCol(org.flag4j.arrays.sparse.CooMatrix,int,double[])"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setCol(CooVector, int)","u":"setCol(org.flag4j.arrays.sparse.CooVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setCol(CooVector, int)","u":"setCol(org.flag4j.arrays.sparse.CooVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setCol(CooVector, int)","u":"setCol(org.flag4j.arrays.sparse.CooVector,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setCol(CVector, int)","u":"setCol(org.flag4j.arrays.dense.CVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setCol(CVector, int)","u":"setCol(org.flag4j.arrays.dense.CVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setCol(CVector, int)","u":"setCol(org.flag4j.arrays.dense.CVector,int)"},{"p":"org.flag4j.core","c":"ComplexMatrixMixin","l":"setCol(CVector, int)","u":"setCol(org.flag4j.arrays.dense.CVector,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setCol(double[], int)","u":"setCol(double[],int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setCol(double[], int)","u":"setCol(double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setCol(double[], int)","u":"setCol(double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setCol(double[], int)","u":"setCol(double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setCol(double[], int)","u":"setCol(double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setCol(double[], int)","u":"setCol(double[],int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setCol(double[], int)","u":"setCol(double[],int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setCol(Double[], int)","u":"setCol(java.lang.Double[],int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setCol(Double[], int)","u":"setCol(java.lang.Double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setCol(Double[], int)","u":"setCol(java.lang.Double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setCol(Double[], int)","u":"setCol(java.lang.Double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setCol(Double[], int)","u":"setCol(java.lang.Double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setCol(Double[], int)","u":"setCol(java.lang.Double[],int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setCol(Double[], int)","u":"setCol(java.lang.Double[],int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setCol(int[], int)","u":"setCol(int[],int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setCol(int[], int)","u":"setCol(int[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setCol(int[], int)","u":"setCol(int[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setCol(int[], int)","u":"setCol(int[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setCol(int[], int)","u":"setCol(int[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setCol(int[], int)","u":"setCol(int[],int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setCol(int[], int)","u":"setCol(int[],int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setCol(Integer[], int)","u":"setCol(java.lang.Integer[],int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setCol(Integer[], int)","u":"setCol(java.lang.Integer[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setCol(Integer[], int)","u":"setCol(java.lang.Integer[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setCol(Integer[], int)","u":"setCol(java.lang.Integer[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setCol(Integer[], int)","u":"setCol(java.lang.Integer[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setCol(Integer[], int)","u":"setCol(java.lang.Integer[],int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setCol(Integer[], int)","u":"setCol(java.lang.Integer[],int)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"setCol(TT, int)","u":"setCol(TT,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setCol(Vector, int)","u":"setCol(org.flag4j.arrays.dense.Vector,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setCol(Vector, int)","u":"setCol(org.flag4j.arrays.dense.Vector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setCol(Vector, int)","u":"setCol(org.flag4j.arrays.dense.Vector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setCol(Vector, int)","u":"setCol(org.flag4j.arrays.dense.Vector,int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setCol(X[], int)","u":"setCol(X[],int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"setExceptionalThreshold(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"setExceptionalThreshold(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"setExceptionalThreshold(int)"},{"p":"org.flag4j.io","c":"PrintOptions","l":"setMaxColumns(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"setMaxIterationFactor(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"setMaxIterationFactor(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"setMaxIterationFactor(int)"},{"p":"org.flag4j.io","c":"PrintOptions","l":"setMaxRows(int)"},{"p":"org.flag4j.io","c":"PrintOptions","l":"setMaxRowsCols(int)"},{"p":"org.flag4j.io","c":"PrintOptions","l":"setMaxRowsCols(int, int)","u":"setMaxRowsCols(int,int)"},{"p":"org.flag4j.concurrency","c":"Configurations","l":"setMinRecursiveSize(int)"},{"p":"org.flag4j.concurrency","c":"Configurations","l":"setNumThreads(int)"},{"p":"org.flag4j.concurrency","c":"Configurations","l":"setNumThreadsAsAvailableProcessors()"},{"p":"org.flag4j.io","c":"PrintOptions","l":"setPadding(int)"},{"p":"org.flag4j.concurrency","c":"ThreadManager","l":"setParallelismLevel(int)"},{"p":"org.flag4j.io","c":"PrintOptions","l":"setPrecision(int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setRow(CNumber[], int)","u":"setRow(org.flag4j.complex_numbers.CNumber[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setRow(CNumber[], int)","u":"setRow(org.flag4j.complex_numbers.CNumber[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setRow(CNumber[], int)","u":"setRow(org.flag4j.complex_numbers.CNumber[],int)"},{"p":"org.flag4j.core","c":"ComplexMatrixMixin","l":"setRow(CNumber[], int)","u":"setRow(org.flag4j.complex_numbers.CNumber[],int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setRow(CooCMatrix, int, CNumber[])","u":"setRow(org.flag4j.arrays.sparse.CooCMatrix,int,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setRow(CooCMatrix, int, CooCVector)","u":"setRow(org.flag4j.arrays.sparse.CooCMatrix,int,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setRow(CooCMatrix, int, double[])","u":"setRow(org.flag4j.arrays.sparse.CooCMatrix,int,double[])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setRow(CooCVector, int)","u":"setRow(org.flag4j.arrays.sparse.CooCVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setRow(CooCVector, int)","u":"setRow(org.flag4j.arrays.sparse.CooCVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setRow(CooCVector, int)","u":"setRow(org.flag4j.arrays.sparse.CooCVector,int)"},{"p":"org.flag4j.core","c":"ComplexMatrixMixin","l":"setRow(CooCVector, int)","u":"setRow(org.flag4j.arrays.sparse.CooCVector,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"setRow(CooMatrix, int, double[])","u":"setRow(org.flag4j.arrays.sparse.CooMatrix,int,double[])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setRow(CVector, int)","u":"setRow(org.flag4j.arrays.dense.CVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setRow(CVector, int)","u":"setRow(org.flag4j.arrays.dense.CVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setRow(CVector, int)","u":"setRow(org.flag4j.arrays.dense.CVector,int)"},{"p":"org.flag4j.core","c":"ComplexMatrixMixin","l":"setRow(CVector, int)","u":"setRow(org.flag4j.arrays.dense.CVector,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setRow(double[], int)","u":"setRow(double[],int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setRow(double[], int)","u":"setRow(double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setRow(double[], int)","u":"setRow(double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setRow(double[], int)","u":"setRow(double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setRow(double[], int)","u":"setRow(double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setRow(double[], int)","u":"setRow(double[],int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setRow(double[], int)","u":"setRow(double[],int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setRow(Double[], int)","u":"setRow(java.lang.Double[],int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setRow(Double[], int)","u":"setRow(java.lang.Double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setRow(Double[], int)","u":"setRow(java.lang.Double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setRow(Double[], int)","u":"setRow(java.lang.Double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setRow(Double[], int)","u":"setRow(java.lang.Double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setRow(Double[], int)","u":"setRow(java.lang.Double[],int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setRow(Double[], int)","u":"setRow(java.lang.Double[],int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setRow(int[], int)","u":"setRow(int[],int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setRow(int[], int)","u":"setRow(int[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setRow(int[], int)","u":"setRow(int[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setRow(int[], int)","u":"setRow(int[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setRow(int[], int)","u":"setRow(int[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setRow(int[], int)","u":"setRow(int[],int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setRow(int[], int)","u":"setRow(int[],int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setRow(Integer[], int)","u":"setRow(java.lang.Integer[],int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setRow(Integer[], int)","u":"setRow(java.lang.Integer[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setRow(Integer[], int)","u":"setRow(java.lang.Integer[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setRow(Integer[], int)","u":"setRow(java.lang.Integer[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setRow(Integer[], int)","u":"setRow(java.lang.Integer[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setRow(Integer[], int)","u":"setRow(java.lang.Integer[],int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setRow(Integer[], int)","u":"setRow(java.lang.Integer[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setRow(Vector, int)","u":"setRow(org.flag4j.arrays.dense.Vector,int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setRow(X[], int)","u":"setRow(X[],int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSlice(CMatrix, int, int)","u":"setSlice(org.flag4j.arrays.dense.CMatrix,int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSlice(CNumber[][], int, int)","u":"setSlice(org.flag4j.complex_numbers.CNumber[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setSlice(CNumber[][], int, int)","u":"setSlice(org.flag4j.complex_numbers.CNumber[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setSlice(CNumber[][], int, int)","u":"setSlice(org.flag4j.complex_numbers.CNumber[][],int,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setSlice(CooCMatrix, CNumber[], int, int, int[], int[], int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.complex_numbers.CNumber[],int,int,int[],int[],int,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setSlice(CooCMatrix, CNumber[][], int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.complex_numbers.CNumber[][],int,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setSlice(CooCMatrix, CooCMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooCMatrix,int,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setSlice(CooCMatrix, CooMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooMatrix,int,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setSlice(CooCMatrix, double[], int, int, int[], int[], int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooCMatrix,double[],int,int,int[],int[],int,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setSlice(CooCMatrix, double[][], int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooCMatrix,double[][],int,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setSlice(CooCMatrix, Double[][], int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooCMatrix,java.lang.Double[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSlice(CooCMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooCMatrix,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setSlice(CooCMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooCMatrix,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setSlice(CooCMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooCMatrix,int,int)"},{"p":"org.flag4j.core","c":"ComplexMatrixMixin","l":"setSlice(CooCMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooCMatrix,int,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setSlice(CooCMatrix, int[][], int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooCMatrix,int[][],int,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setSlice(CooCMatrix, Integer[][], int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooCMatrix,java.lang.Integer[][],int,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setSlice(CooCMatrix, Matrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.dense.Matrix,int,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"setSlice(CooMatrix, CooMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooMatrix,int,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"setSlice(CooMatrix, double[], int, int, int[], int[], int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooMatrix,double[],int,int,int[],int[],int,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"setSlice(CooMatrix, double[][], int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooMatrix,double[][],int,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"setSlice(CooMatrix, Double[][], int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooMatrix,java.lang.Double[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSlice(CooMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooMatrix,int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setSlice(CooMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooMatrix,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setSlice(CooMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooMatrix,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setSlice(CooMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooMatrix,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setSlice(CooMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooMatrix,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setSlice(CooMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooMatrix,int,int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setSlice(CooMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooMatrix,int,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"setSlice(CooMatrix, int[][], int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooMatrix,int[][],int,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"setSlice(CooMatrix, Integer[][], int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooMatrix,java.lang.Integer[][],int,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"setSlice(CooMatrix, Matrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.dense.Matrix,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setSlice(CsrCMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CsrCMatrix,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setSlice(CsrMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CsrMatrix,int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSlice(double[][], int, int)","u":"setSlice(double[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setSlice(double[][], int, int)","u":"setSlice(double[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setSlice(double[][], int, int)","u":"setSlice(double[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setSlice(double[][], int, int)","u":"setSlice(double[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setSlice(double[][], int, int)","u":"setSlice(double[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setSlice(double[][], int, int)","u":"setSlice(double[][],int,int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setSlice(double[][], int, int)","u":"setSlice(double[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSlice(Double[][], int, int)","u":"setSlice(java.lang.Double[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setSlice(Double[][], int, int)","u":"setSlice(java.lang.Double[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setSlice(Double[][], int, int)","u":"setSlice(java.lang.Double[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setSlice(Double[][], int, int)","u":"setSlice(java.lang.Double[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setSlice(Double[][], int, int)","u":"setSlice(java.lang.Double[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setSlice(Double[][], int, int)","u":"setSlice(java.lang.Double[][],int,int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setSlice(Double[][], int, int)","u":"setSlice(java.lang.Double[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSlice(int[][], int, int)","u":"setSlice(int[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setSlice(int[][], int, int)","u":"setSlice(int[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setSlice(int[][], int, int)","u":"setSlice(int[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setSlice(int[][], int, int)","u":"setSlice(int[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setSlice(int[][], int, int)","u":"setSlice(int[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setSlice(int[][], int, int)","u":"setSlice(int[][],int,int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setSlice(int[][], int, int)","u":"setSlice(int[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSlice(Integer[][], int, int)","u":"setSlice(java.lang.Integer[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setSlice(Integer[][], int, int)","u":"setSlice(java.lang.Integer[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setSlice(Integer[][], int, int)","u":"setSlice(java.lang.Integer[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setSlice(Integer[][], int, int)","u":"setSlice(java.lang.Integer[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setSlice(Integer[][], int, int)","u":"setSlice(java.lang.Integer[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setSlice(Integer[][], int, int)","u":"setSlice(java.lang.Integer[][],int,int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setSlice(Integer[][], int, int)","u":"setSlice(java.lang.Integer[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSlice(Matrix, int, int)","u":"setSlice(org.flag4j.arrays.dense.Matrix,int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setSlice(Matrix, int, int)","u":"setSlice(org.flag4j.arrays.dense.Matrix,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setSlice(Matrix, int, int)","u":"setSlice(org.flag4j.arrays.dense.Matrix,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setSlice(Matrix, int, int)","u":"setSlice(org.flag4j.arrays.dense.Matrix,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setSlice(Matrix, int, int)","u":"setSlice(org.flag4j.arrays.dense.Matrix,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setSlice(Matrix, int, int)","u":"setSlice(org.flag4j.arrays.dense.Matrix,int,int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setSlice(Matrix, int, int)","u":"setSlice(org.flag4j.arrays.dense.Matrix,int,int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setSlice(T, int, int)","u":"setSlice(T,int,int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setSlice(X[][], int, int)","u":"setSlice(X[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSliceCopy(CMatrix, int, int)","u":"setSliceCopy(org.flag4j.arrays.dense.CMatrix,int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSliceCopy(CNumber[][], int, int)","u":"setSliceCopy(org.flag4j.complex_numbers.CNumber[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSliceCopy(CooCMatrix, int, int)","u":"setSliceCopy(org.flag4j.arrays.sparse.CooCMatrix,int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSliceCopy(CooMatrix, int, int)","u":"setSliceCopy(org.flag4j.arrays.sparse.CooMatrix,int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setSliceCopy(CooMatrix, int, int)","u":"setSliceCopy(org.flag4j.arrays.sparse.CooMatrix,int,int)"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"setSliceCopy(CooMatrix, int, int)","u":"setSliceCopy(org.flag4j.arrays.sparse.CooMatrix,int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSliceCopy(double[][], int, int)","u":"setSliceCopy(double[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setSliceCopy(double[][], int, int)","u":"setSliceCopy(double[][],int,int)"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"setSliceCopy(double[][], int, int)","u":"setSliceCopy(double[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSliceCopy(Double[][], int, int)","u":"setSliceCopy(java.lang.Double[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setSliceCopy(Double[][], int, int)","u":"setSliceCopy(java.lang.Double[][],int,int)"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"setSliceCopy(Double[][], int, int)","u":"setSliceCopy(java.lang.Double[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSliceCopy(int[][], int, int)","u":"setSliceCopy(int[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setSliceCopy(int[][], int, int)","u":"setSliceCopy(int[][],int,int)"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"setSliceCopy(int[][], int, int)","u":"setSliceCopy(int[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSliceCopy(Integer[][], int, int)","u":"setSliceCopy(java.lang.Integer[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setSliceCopy(Integer[][], int, int)","u":"setSliceCopy(java.lang.Integer[][],int,int)"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"setSliceCopy(Integer[][], int, int)","u":"setSliceCopy(java.lang.Integer[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSliceCopy(Matrix, int, int)","u":"setSliceCopy(org.flag4j.arrays.dense.Matrix,int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setSliceCopy(Matrix, int, int)","u":"setSliceCopy(org.flag4j.arrays.dense.Matrix,int,int)"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"setSliceCopy(Matrix, int, int)","u":"setSliceCopy(org.flag4j.arrays.dense.Matrix,int,int)"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"setSliceCopy(T, int, int)","u":"setSliceCopy(T,int,int)"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"setSliceCopy(X[][], int, int)","u":"setSliceCopy(X[][],int,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setSliceParamCheck(T, int, int, int, int)","u":"setSliceParamCheck(T,int,int,int,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setSliceParamCheck(T, U, int, int)","u":"setSliceParamCheck(T,U,int,int)"},{"p":"org.flag4j.linalg.decompositions.hess","c":"SymmHess","l":"setUp(Matrix)","u":"setUp(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"setUp(T)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"setUp(T)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"setUpArrays()"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"setUpArrays()"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"setUpArrays()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseSetOperations","l":"setValues(CNumber[], CNumber[])","u":"setValues(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setValues(CNumber[][])","u":"setValues(org.flag4j.complex_numbers.CNumber[][])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseSetOperations","l":"setValues(CNumber[][], CNumber[])","u":"setValues(org.flag4j.complex_numbers.CNumber[][],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseSetOperations","l":"setValues(double[], CNumber[])","u":"setValues(double[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseSetOperations","l":"setValues(Double[], CNumber[])","u":"setValues(java.lang.Double[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseSetOperations","l":"setValues(double[], double[])","u":"setValues(double[],double[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseSetOperations","l":"setValues(Double[], double[])","u":"setValues(java.lang.Double[],double[])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setValues(double[][])"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setValues(double[][])"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"setValues(double[][])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setValues(Double[][])","u":"setValues(java.lang.Double[][])"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setValues(Double[][])","u":"setValues(java.lang.Double[][])"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"setValues(Double[][])","u":"setValues(java.lang.Double[][])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseSetOperations","l":"setValues(double[][], CNumber[])","u":"setValues(double[][],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseSetOperations","l":"setValues(Double[][], CNumber[])","u":"setValues(java.lang.Double[][],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseSetOperations","l":"setValues(double[][], double[])","u":"setValues(double[][],double[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseSetOperations","l":"setValues(Double[][], double[])","u":"setValues(java.lang.Double[][],double[])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseSetOperations","l":"setValues(int[], CNumber[])","u":"setValues(int[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseSetOperations","l":"setValues(int[], double[])","u":"setValues(int[],double[])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setValues(int[][])"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setValues(int[][])"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"setValues(int[][])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseSetOperations","l":"setValues(int[][], CNumber[])","u":"setValues(int[][],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseSetOperations","l":"setValues(int[][], double[])","u":"setValues(int[][],double[])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseSetOperations","l":"setValues(Integer[], CNumber[])","u":"setValues(java.lang.Integer[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseSetOperations","l":"setValues(Integer[], double[])","u":"setValues(java.lang.Integer[],double[])"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setValues(Integer[][])","u":"setValues(java.lang.Integer[][])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseSetOperations","l":"setValues(Integer[][], CNumber[])","u":"setValues(java.lang.Integer[][],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseSetOperations","l":"setValues(Integer[][], double[])","u":"setValues(java.lang.Integer[][],double[])"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"setValues(X[][])"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"sgn(CNumber)","u":"sgn(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core","c":"TensorBase","l":"shape"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"SHAPE_BROADCAST_ERR"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"SHAPE_ENTRIES_ERR"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"SHAPE_RANK_ERR"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"shape()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"shape()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"shape()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"shape()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"shape()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"shape()"},{"p":"org.flag4j.arrays.sparse","c":"SymmTriDiagonal","l":"shape()"},{"p":"org.flag4j.core","c":"MatrixMixin","l":"shape()"},{"p":"org.flag4j.core","c":"Shape","l":"Shape(boolean, int...)","u":"%3Cinit%3E(boolean,int...)"},{"p":"org.flag4j.core","c":"Shape","l":"Shape(int...)","u":"%3Cinit%3E(int...)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"shapeEntriesError(Shape, int)","u":"shapeEntriesError(org.flag4j.core.Shape,int)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"shapeRankErr(int, int)","u":"shapeRankErr(int,int)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"ComplexUnitaryDecomposition","l":"shift"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"RealUnitaryDecomposition","l":"shift"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"shift(int, int[])","u":"shift(int,int[])"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"shiftCol"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"shiftRange(int, int[], int, int)","u":"shiftRange(int,int[],int,int)"},{"p":"org.flag4j.rng","c":"RandomArray","l":"shuffle(double[])"},{"p":"org.flag4j.rng","c":"RandomArray","l":"shuffle(int[])"},{"p":"org.flag4j.rng","c":"RandomArray","l":"shuffle(Object[])","u":"shuffle(java.lang.Object[])"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"sin(CNumber)","u":"sin(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"sin(double)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"sinceLastExceptional"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher","l":"singletonInstance"},{"p":"org.flag4j.util.exceptions","c":"SingularMatrixException","l":"SingularMatrixException()","u":"%3Cinit%3E()"},{"p":"org.flag4j.util.exceptions","c":"SingularMatrixException","l":"SingularMatrixException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"sinh(CNumber)","u":"sinh(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"sinh(double)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"size"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"size"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"size"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"size"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"size"},{"p":"org.flag4j.arrays.sparse","c":"SymmTriDiagonal","l":"size"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"size()"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"size()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"size()"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"size()"},{"p":"org.flag4j.core","c":"VectorMixin","l":"size()"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexBackSolver","l":"solve(CMatrix, CMatrix)","u":"solve(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexForwardSolver","l":"solve(CMatrix, CMatrix)","u":"solve(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexBackSolver","l":"solve(CMatrix, CVector)","u":"solve(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexForwardSolver","l":"solve(CMatrix, CVector)","u":"solve(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealBackSolver","l":"solve(Matrix, Matrix)","u":"solve(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealForwardSolver","l":"solve(Matrix, Matrix)","u":"solve(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealBackSolver","l":"solve(Matrix, Vector)","u":"solve(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealForwardSolver","l":"solve(Matrix, Vector)","u":"solve(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactSolver","l":"solve(T, T)","u":"solve(T,T)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactTensorSolver","l":"solve(T, T)","u":"solve(T,T)"},{"p":"org.flag4j.linalg.solvers","c":"LinearSolver","l":"solve(T, T)","u":"solve(T,T)"},{"p":"org.flag4j.linalg.solvers","c":"LinearTensorSolver","l":"solve(T, T)","u":"solve(T,T)"},{"p":"org.flag4j.linalg.solvers.lstsq","c":"LstsqSolver","l":"solve(T, T)","u":"solve(T,T)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactSolver","l":"solve(T, U)","u":"solve(T,U)"},{"p":"org.flag4j.linalg.solvers","c":"LinearSolver","l":"solve(T, U)","u":"solve(T,U)"},{"p":"org.flag4j.linalg.solvers.lstsq","c":"LstsqSolver","l":"solve(T, U)","u":"solve(T,U)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexBackSolver","l":"solveIdentity(CMatrix)","u":"solveIdentity(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexForwardSolver","l":"solveIdentity(CMatrix)","u":"solveIdentity(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealBackSolver","l":"solveIdentity(Matrix)","u":"solveIdentity(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealForwardSolver","l":"solveIdentity(Matrix)","u":"solveIdentity(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexBackSolver","l":"solveLower(CMatrix, CMatrix)","u":"solveLower(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexForwardSolver","l":"solveLower(CMatrix, CMatrix)","u":"solveLower(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexForwardSolver","l":"solveLower(CMatrix, CVector)","u":"solveLower(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealBackSolver","l":"solveLower(Matrix, Matrix)","u":"solveLower(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealForwardSolver","l":"solveLower(Matrix, Matrix)","u":"solveLower(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealForwardSolver","l":"solveLower(Matrix, Vector)","u":"solveLower(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexForwardSolver","l":"solveLowerIdentity(CMatrix)","u":"solveLowerIdentity(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealForwardSolver","l":"solveLowerIdentity(Matrix)","u":"solveLowerIdentity(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexForwardSolver","l":"solveUnitLower(CMatrix, CMatrix)","u":"solveUnitLower(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexForwardSolver","l":"solveUnitLower(CMatrix, CVector)","u":"solveUnitLower(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealForwardSolver","l":"solveUnitLower(Matrix, Matrix)","u":"solveUnitLower(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealForwardSolver","l":"solveUnitLower(Matrix, Vector)","u":"solveUnitLower(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexForwardSolver","l":"solveUnitLowerIdentity(CMatrix)","u":"solveUnitLowerIdentity(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealForwardSolver","l":"solveUnitLowerIdentity(Matrix)","u":"solveUnitLowerIdentity(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"sortIndices()"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"sortIndices()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"sortIndices()"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"sortIndices()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"sortIndices()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"sortIndices()"},{"p":"org.flag4j.core.sparse_base","c":"SparseTensorMixin","l":"sortIndices()"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"SparseDataWrapper(T[], int[][], boolean)","u":"%3Cinit%3E(T[],int[][],boolean)"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseElementSearch","l":"SparseElementSearch()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"sparseSort()"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"sparseSortHelper(int, int, int)","u":"sparseSortHelper(int,int,int)"},{"p":"org.flag4j.core.sparse_base","c":"SparseTensorBase","l":"SparseTensorBase(Shape, int, D, int[], int[]...)","u":"%3Cinit%3E(org.flag4j.core.Shape,int,D,int[],int[]...)"},{"p":"org.flag4j.core.sparse_base","c":"SparseTensorBase","l":"SparseTensorBase(Shape, int, D, int[][])","u":"%3Cinit%3E(org.flag4j.core.Shape,int,D,int[][])"},{"p":"org.flag4j.arrays.sparse","c":"SparseUtils","l":"SparseUtils()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseUtils","l":"SparseUtils()","u":"%3Cinit%3E()"},{"p":"org.flag4j.core.sparse_base","c":"SparseTensorBase","l":"sparsity()"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"splice(CNumber[], CNumber[], int)","u":"splice(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber[],int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"splice(CNumber[], double[], int)","u":"splice(org.flag4j.complex_numbers.CNumber[],double[],int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"splice(double[], CNumber[], int)","u":"splice(double[],org.flag4j.complex_numbers.CNumber[],int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"splice(double[], double[], int)","u":"splice(double[],double[],int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"splice(int[], int[], int)","u":"splice(int[],int[],int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"splice(List, CNumber[], int)","u":"splice(java.util.List,org.flag4j.complex_numbers.CNumber[],int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"splice(List, double[], int)","u":"splice(java.util.List,double[],int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"splice(List, int[], int)","u":"splice(java.util.List,int[],int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"spliceDouble(List, double[], int)","u":"spliceDouble(java.util.List,double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"sqrt()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"sqrt()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"sqrt()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"sqrt()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"sqrt()"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"sqrt()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"sqrt(CNumber)","u":"sqrt(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.common.complex","c":"ComplexOperations","l":"sqrt(CNumber[])","u":"sqrt(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"sqrt(double)"},{"p":"org.flag4j.operations.common.complex","c":"ComplexOperations","l":"sqrt(double[])"},{"p":"org.flag4j.operations.common.real","c":"RealOperations","l":"sqrt(double[])"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"sqrtComplex()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"sqrtComplex()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"sqrtComplex()"},{"p":"org.flag4j.core","c":"RealMatrixMixin","l":"sqrtComplex()"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"SQUARE_SHAPE_ERR"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"SQUARENESS_RATIO"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher","l":"SQUARENESS_RATIO"},{"p":"org.flag4j.linalg.transformations","c":"Givens","l":"stableTrigVals(double, double)","u":"stableTrigVals(double,double)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"stack(CMatrix)","u":"stack(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"stack(CMatrix)","u":"stack(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"stack(CMatrix)","u":"stack(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"stack(CMatrix)","u":"stack(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"stack(CMatrix)","u":"stack(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"stack(CMatrix)","u":"stack(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CMatrix)","u":"stack(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CMatrix, int)","u":"stack(org.flag4j.arrays.dense.CMatrix,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"stack(CooCMatrix)","u":"stack(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"stack(CooCMatrix)","u":"stack(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"stack(CooCMatrix)","u":"stack(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"stack(CooCMatrix)","u":"stack(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"stack(CooCMatrix)","u":"stack(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"stack(CooCMatrix)","u":"stack(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CooCMatrix)","u":"stack(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CooCMatrix, int)","u":"stack(org.flag4j.arrays.sparse.CooCMatrix,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"stack(CooCVector)","u":"stack(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"stack(CooCVector)","u":"stack(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"stack(CooCVector)","u":"stack(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"stack(CooCVector)","u":"stack(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"stack(CooCVector)","u":"stack(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"stack(CooCVector)","u":"stack(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"stack(CooCVector)","u":"stack(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"stack(CooCVector)","u":"stack(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"stack(CooCVector)","u":"stack(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"stack(CooCVector)","u":"stack(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CooCVector)","u":"stack(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"stack(CooCVector)","u":"stack(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"stack(CooCVector, int)","u":"stack(org.flag4j.arrays.sparse.CooCVector,int)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"stack(CooCVector, int)","u":"stack(org.flag4j.arrays.sparse.CooCVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"stack(CooCVector, int)","u":"stack(org.flag4j.arrays.sparse.CooCVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"stack(CooCVector, int)","u":"stack(org.flag4j.arrays.sparse.CooCVector,int)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CooCVector, int)","u":"stack(org.flag4j.arrays.sparse.CooCVector,int)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"stack(CooCVector, int)","u":"stack(org.flag4j.arrays.sparse.CooCVector,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"stack(CooMatrix)","u":"stack(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"stack(CooMatrix)","u":"stack(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"stack(CooMatrix)","u":"stack(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"stack(CooMatrix)","u":"stack(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"stack(CooMatrix)","u":"stack(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"stack(CooMatrix)","u":"stack(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CooMatrix)","u":"stack(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CooMatrix, int)","u":"stack(org.flag4j.arrays.sparse.CooMatrix,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"stack(CooVector)","u":"stack(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"stack(CooVector)","u":"stack(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"stack(CooVector)","u":"stack(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"stack(CooVector)","u":"stack(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"stack(CooVector)","u":"stack(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"stack(CooVector)","u":"stack(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"stack(CooVector)","u":"stack(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"stack(CooVector)","u":"stack(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"stack(CooVector)","u":"stack(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"stack(CooVector)","u":"stack(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CooVector)","u":"stack(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"stack(CooVector)","u":"stack(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"stack(CooVector, int)","u":"stack(org.flag4j.arrays.sparse.CooVector,int)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"stack(CooVector, int)","u":"stack(org.flag4j.arrays.sparse.CooVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"stack(CooVector, int)","u":"stack(org.flag4j.arrays.sparse.CooVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"stack(CooVector, int)","u":"stack(org.flag4j.arrays.sparse.CooVector,int)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CooVector, int)","u":"stack(org.flag4j.arrays.sparse.CooVector,int)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"stack(CooVector, int)","u":"stack(org.flag4j.arrays.sparse.CooVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"stack(CsrCMatrix)","u":"stack(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CsrCMatrix)","u":"stack(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CsrCMatrix, int)","u":"stack(org.flag4j.arrays.sparse.CsrCMatrix,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"stack(CsrMatrix)","u":"stack(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CsrMatrix)","u":"stack(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CsrMatrix, int)","u":"stack(org.flag4j.arrays.sparse.CsrMatrix,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"stack(CVector)","u":"stack(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"stack(CVector)","u":"stack(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"stack(CVector)","u":"stack(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"stack(CVector)","u":"stack(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"stack(CVector)","u":"stack(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"stack(CVector)","u":"stack(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"stack(CVector)","u":"stack(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"stack(CVector)","u":"stack(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"stack(CVector)","u":"stack(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"stack(CVector)","u":"stack(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CVector)","u":"stack(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"stack(CVector)","u":"stack(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"stack(CVector, int)","u":"stack(org.flag4j.arrays.dense.CVector,int)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"stack(CVector, int)","u":"stack(org.flag4j.arrays.dense.CVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"stack(CVector, int)","u":"stack(org.flag4j.arrays.dense.CVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"stack(CVector, int)","u":"stack(org.flag4j.arrays.dense.CVector,int)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CVector, int)","u":"stack(org.flag4j.arrays.dense.CVector,int)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"stack(CVector, int)","u":"stack(org.flag4j.arrays.dense.CVector,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"stack(Matrix)","u":"stack(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"stack(Matrix)","u":"stack(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"stack(Matrix)","u":"stack(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"stack(Matrix)","u":"stack(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"stack(Matrix)","u":"stack(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"stack(Matrix)","u":"stack(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(Matrix)","u":"stack(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(Matrix, int)","u":"stack(org.flag4j.arrays.dense.Matrix,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"stack(Vector)","u":"stack(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"stack(Vector)","u":"stack(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"stack(Vector)","u":"stack(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"stack(Vector)","u":"stack(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"stack(Vector)","u":"stack(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"stack(Vector)","u":"stack(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"stack(Vector)","u":"stack(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"stack(Vector)","u":"stack(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"stack(Vector)","u":"stack(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"stack(Vector)","u":"stack(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(Vector)","u":"stack(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"stack(Vector)","u":"stack(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"stack(Vector, int)","u":"stack(org.flag4j.arrays.dense.Vector,int)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"stack(Vector, int)","u":"stack(org.flag4j.arrays.dense.Vector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"stack(Vector, int)","u":"stack(org.flag4j.arrays.dense.Vector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"stack(Vector, int)","u":"stack(org.flag4j.arrays.dense.Vector,int)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(Vector, int)","u":"stack(org.flag4j.arrays.dense.Vector,int)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"stack(Vector, int)","u":"stack(org.flag4j.arrays.dense.Vector,int)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"STANDARD"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"STANDARD"},{"p":"org.flag4j.operations","c":"TransposeDispatcher.Algorithm","l":"STANDARD"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"STANDARD_THRESHOLD"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"STANDARD_VECTOR"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"STANDARD_VECTOR"},{"p":"org.flag4j.operations.dense_sparse.csr.complex","c":"ComplexCsrDenseMatrixMultiplication","l":"standard(CMatrix, CsrCMatrix)","u":"standard(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseMatrixMultiplication","l":"standard(CMatrix, CsrMatrix)","u":"standard(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixMultiplication","l":"standard(CNumber[], int[], int[], Shape, CNumber[], int[], int[], Shape)","u":"standard(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixMultiplication","l":"standard(CNumber[], int[], int[], Shape, CNumber[], Shape)","u":"standard(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixMultiplication","l":"standard(CNumber[], int[], int[], Shape, double[], int[], int[], Shape)","u":"standard(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,double[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"standard(CNumber[], int[], int[], Shape, double[], Shape)","u":"standard(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixMultiplication","l":"standard(CNumber[], Shape, CNumber[], int[], int[], Shape)","u":"standard(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultiplication","l":"standard(CNumber[], Shape, CNumber[], Shape)","u":"standard(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"standard(CNumber[], Shape, double[], int[], int[], Shape)","u":"standard(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"standard(CNumber[], Shape, double[], Shape)","u":"standard(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"standard(CNumber[], Shape, int, int)","u":"standard(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,int,int)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"standard(CNumber[], Shape, int[])","u":"standard(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,int[])"},{"p":"org.flag4j.operations.dense_sparse.csr.complex","c":"ComplexCsrDenseMatrixMultiplication","l":"standard(CsrCMatrix, CMatrix)","u":"standard(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrMatrixMultiplication","l":"standard(CsrCMatrix, CsrCMatrix)","u":"standard(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.operations.sparse.csr.real_complex","c":"RealComplexCsrMatrixMultiplication","l":"standard(CsrCMatrix, CsrMatrix)","u":"standard(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseMatrixMultiplication","l":"standard(CsrCMatrix, Matrix)","u":"standard(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseMatrixMultiplication","l":"standard(CsrMatrix, CMatrix)","u":"standard(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.sparse.csr.real_complex","c":"RealComplexCsrMatrixMultiplication","l":"standard(CsrMatrix, CsrCMatrix)","u":"standard(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrMatrixMultiplication","l":"standard(CsrMatrix, CsrMatrix)","u":"standard(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.operations.dense_sparse.csr.real","c":"RealCsrDenseMatrixMultiplication","l":"standard(CsrMatrix, Matrix)","u":"standard(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixMultiplication","l":"standard(double[], int[], int[], Shape, CNumber[], int[], int[], Shape)","u":"standard(double[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"standard(double[], int[], int[], Shape, CNumber[], Shape)","u":"standard(double[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixMultiplication","l":"standard(double[], int[], int[], Shape, double[], int[], int[], Shape)","u":"standard(double[],int[],int[],org.flag4j.core.Shape,double[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixMultiplication","l":"standard(double[], int[], int[], Shape, double[], Shape)","u":"standard(double[],int[],int[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"standard(double[], Shape, CNumber[], int[], int[], Shape)","u":"standard(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"standard(double[], Shape, CNumber[], Shape)","u":"standard(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixMultiplication","l":"standard(double[], Shape, double[], int[], int[], Shape)","u":"standard(double[],org.flag4j.core.Shape,double[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultiplication","l":"standard(double[], Shape, double[], Shape)","u":"standard(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseTranspose","l":"standard(double[], Shape, int, int)","u":"standard(double[],org.flag4j.core.Shape,int,int)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseTranspose","l":"standard(double[], Shape, int[])","u":"standard(double[],org.flag4j.core.Shape,int[])"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseMatrixMultiplication","l":"standard(Matrix, CsrCMatrix)","u":"standard(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.operations.dense_sparse.csr.real","c":"RealCsrDenseMatrixMultiplication","l":"standard(Matrix, CsrMatrix)","u":"standard(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrMatrixMultiplication","l":"standardAsSparse(CsrCMatrix, CsrCMatrix)","u":"standardAsSparse(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.operations.sparse.csr.real_complex","c":"RealComplexCsrMatrixMultiplication","l":"standardAsSparse(CsrCMatrix, CsrMatrix)","u":"standardAsSparse(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.operations.sparse.csr.real_complex","c":"RealComplexCsrMatrixMultiplication","l":"standardAsSparse(CsrMatrix, CsrCMatrix)","u":"standardAsSparse(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrMatrixMultiplication","l":"standardAsSparse(CsrMatrix, CsrMatrix)","u":"standardAsSparse(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"standardConcurrent(CNumber[], Shape, int, int)","u":"standardConcurrent(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,int,int)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"standardConcurrent(CNumber[], Shape, int[])","u":"standardConcurrent(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,int[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseTranspose","l":"standardConcurrent(double[], Shape, int, int)","u":"standardConcurrent(double[],org.flag4j.core.Shape,int,int)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseTranspose","l":"standardConcurrent(double[], Shape, int[])","u":"standardConcurrent(double[],org.flag4j.core.Shape,int[])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"standardConcurrentHerm(CNumber[], Shape, int, int)","u":"standardConcurrentHerm(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,int,int)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"standardConcurrentHerm(CNumber[], Shape, int[])","u":"standardConcurrentHerm(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,int[])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"standardHerm(CNumber[], Shape, int, int)","u":"standardHerm(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,int,int)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseTranspose","l":"standardIntMatrix(int[][])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"standardMatrix(CNumber[], int, int)","u":"standardMatrix(org.flag4j.complex_numbers.CNumber[],int,int)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseTranspose","l":"standardMatrix(double[], int, int)","u":"standardMatrix(double[],int,int)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"standardMatrixConcurrent(CNumber[], int, int)","u":"standardMatrixConcurrent(org.flag4j.complex_numbers.CNumber[],int,int)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseTranspose","l":"standardMatrixConcurrent(double[], int, int)","u":"standardMatrixConcurrent(double[],int,int)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"standardMatrixConcurrentHerm(CNumber[], int, int)","u":"standardMatrixConcurrentHerm(org.flag4j.complex_numbers.CNumber[],int,int)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"standardMatrixHerm(CNumber[], int, int)","u":"standardMatrixHerm(org.flag4j.complex_numbers.CNumber[],int,int)"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseMatrixMultiplication","l":"standardTranspose(CsrMatrix, CMatrix)","u":"standardTranspose(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense_sparse.csr.real","c":"RealCsrDenseMatrixMultiplication","l":"standardTranspose(CsrMatrix, Matrix)","u":"standardTranspose(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixMultiplication","l":"standardVector(CNumber[], int[], int[], Shape, CNumber[], int[])","u":"standardVector(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[])"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixMultiplication","l":"standardVector(CNumber[], int[], int[], Shape, CNumber[], Shape)","u":"standardVector(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixMultiplication","l":"standardVector(CNumber[], int[], int[], Shape, double[], int[], Shape)","u":"standardVector(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,double[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"standardVector(CNumber[], int[], int[], Shape, double[], Shape)","u":"standardVector(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixMultiplication","l":"standardVector(CNumber[], Shape, CNumber[], int[])","u":"standardVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultiplication","l":"standardVector(CNumber[], Shape, CNumber[], Shape)","u":"standardVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"standardVector(CNumber[], Shape, double[], int[])","u":"standardVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],int[])"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"standardVector(CNumber[], Shape, double[], Shape)","u":"standardVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrMatrixMultiplication","l":"standardVector(CsrCMatrix, CooCVector)","u":"standardVector(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.csr.real_complex","c":"RealComplexCsrMatrixMultiplication","l":"standardVector(CsrCMatrix, CooVector)","u":"standardVector(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.dense_sparse.csr.complex","c":"ComplexCsrDenseMatrixMultiplication","l":"standardVector(CsrCMatrix, CVector)","u":"standardVector(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseMatrixMultiplication","l":"standardVector(CsrCMatrix, Vector)","u":"standardVector(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.sparse.csr.real_complex","c":"RealComplexCsrMatrixMultiplication","l":"standardVector(CsrMatrix, CooCVector)","u":"standardVector(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.dense_sparse.csr.real","c":"RealCsrDenseMatrixMultiplication","l":"standardVector(CsrMatrix, CooVector)","u":"standardVector(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseMatrixMultiplication","l":"standardVector(CsrMatrix, CVector)","u":"standardVector(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.dense_sparse.csr.real","c":"RealCsrDenseMatrixMultiplication","l":"standardVector(CsrMatrix, Vector)","u":"standardVector(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixMultiplication","l":"standardVector(double[], int[], int[], Shape, CNumber[], int[], Shape)","u":"standardVector(double[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"standardVector(double[], int[], int[], Shape, CNumber[], Shape)","u":"standardVector(double[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixMultiplication","l":"standardVector(double[], int[], int[], Shape, double[], int[])","u":"standardVector(double[],int[],int[],org.flag4j.core.Shape,double[],int[])"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixMultiplication","l":"standardVector(double[], int[], int[], Shape, double[], Shape)","u":"standardVector(double[],int[],int[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"standardVector(double[], Shape, CNumber[], int[])","u":"standardVector(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[])"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"standardVector(double[], Shape, CNumber[], Shape)","u":"standardVector(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixMultiplication","l":"standardVector(double[], Shape, double[], int[])","u":"standardVector(double[],org.flag4j.core.Shape,double[],int[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultiplication","l":"standardVector(double[], Shape, double[], Shape)","u":"standardVector(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"storeReflectors"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"stridedFillZeros(CNumber[], int, int)","u":"stridedFillZeros(org.flag4j.complex_numbers.CNumber[],int,int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"stridedFillZeros(CNumber[], int, int, int)","u":"stridedFillZeros(org.flag4j.complex_numbers.CNumber[],int,int,int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"stridedFillZeros(double[], int, int)","u":"stridedFillZeros(double[],int,int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"stridedFillZeros(double[], int, int, int)","u":"stridedFillZeros(double[],int,int,int)"},{"p":"org.flag4j.core","c":"Shape","l":"strides"},{"p":"org.flag4j.util","c":"StringUtils","l":"StringUtils()","u":"%3Cinit%3E()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"sub(CMatrix)","u":"sub(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"sub(CMatrix)","u":"sub(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"sub(CMatrix)","u":"sub(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"sub(CMatrix)","u":"sub(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"sub(CMatrix)","u":"sub(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"sub(CMatrix)","u":"sub(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixOperations","l":"sub(CMatrix, CooCMatrix)","u":"sub(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"sub(CMatrix, CooMatrix)","u":"sub(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"sub(CNumber)","u":"sub(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"sub(CNumber)","u":"sub(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"sub(CNumber)","u":"sub(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"sub(CNumber)","u":"sub(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"sub(CNumber)","u":"sub(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"sub(CNumber)","u":"sub(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"sub(CNumber)","u":"sub(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"sub(CNumber)","u":"sub(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"sub(CNumber)","u":"sub(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"sub(CNumber)","u":"sub(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"sub(CNumber)","u":"sub(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"sub(CNumber)","u":"sub(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"sub(CNumber[], CNumber)","u":"sub(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseOperations","l":"sub(CNumber[], double)","u":"sub(org.flag4j.complex_numbers.CNumber[],double)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"sub(CNumber[], Shape, CNumber[], Shape)","u":"sub(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseOperations","l":"sub(CNumber[], Shape, double[], Shape)","u":"sub(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"sub(CooCMatrix)","u":"sub(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"sub(CooCMatrix)","u":"sub(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"sub(CooCMatrix)","u":"sub(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"sub(CooCMatrix)","u":"sub(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"sub(CooCMatrix)","u":"sub(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"sub(CooCMatrix)","u":"sub(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"sub(CooCMatrix)","u":"sub(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixOperations","l":"sub(CooCMatrix, CMatrix)","u":"sub(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixOperations","l":"sub(CooCMatrix, CNumber)","u":"sub(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixOperations","l":"sub(CooCMatrix, CooCMatrix)","u":"sub(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixOperations","l":"sub(CooCMatrix, CooMatrix)","u":"sub(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixOperations","l":"sub(CooCMatrix, double)","u":"sub(org.flag4j.arrays.sparse.CooCMatrix,double)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"sub(CooCMatrix, Matrix)","u":"sub(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"sub(CooCTensor)","u":"sub(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"sub(CooCTensor)","u":"sub(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"sub(CooCTensor)","u":"sub(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"sub(CooCTensor)","u":"sub(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"sub(CooCTensor)","u":"sub(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexCooTensorOperations","l":"sub(CooCTensor, CooCTensor)","u":"sub(org.flag4j.arrays.sparse.CooCTensor,org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexCooTensorOperations","l":"sub(CooCTensor, CooTensor)","u":"sub(org.flag4j.arrays.sparse.CooCTensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseOperations","l":"sub(CooCTensor, CTensor)","u":"sub(org.flag4j.arrays.sparse.CooCTensor,org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseOperations","l":"sub(CooCTensor, Tensor)","u":"sub(org.flag4j.arrays.sparse.CooCTensor,org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"sub(CooCVector)","u":"sub(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"sub(CooCVector)","u":"sub(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"sub(CooCVector)","u":"sub(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"sub(CooCVector)","u":"sub(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"sub(CooCVector)","u":"sub(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseVectorOperations","l":"sub(CooCVector, CNumber)","u":"sub(org.flag4j.arrays.sparse.CooCVector,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseVectorOperations","l":"sub(CooCVector, CooCVector)","u":"sub(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseVectorOperations","l":"sub(CooCVector, CooVector)","u":"sub(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseVectorOperations","l":"sub(CooCVector, CVector)","u":"sub(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseVectorOperations","l":"sub(CooCVector, double)","u":"sub(org.flag4j.arrays.sparse.CooCVector,double)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"sub(CooCVector, Vector)","u":"sub(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"sub(CooMatrix)","u":"sub(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"sub(CooMatrix)","u":"sub(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"sub(CooMatrix)","u":"sub(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"sub(CooMatrix)","u":"sub(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"sub(CooMatrix)","u":"sub(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"sub(CooMatrix)","u":"sub(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"sub(CooMatrix)","u":"sub(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"sub(CooMatrix, CMatrix)","u":"sub(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixOperations","l":"sub(CooMatrix, CNumber)","u":"sub(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixOperations","l":"sub(CooMatrix, CooCMatrix)","u":"sub(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixOperations","l":"sub(CooMatrix, CooMatrix)","u":"sub(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixOperations","l":"sub(CooMatrix, double)","u":"sub(org.flag4j.arrays.sparse.CooMatrix,double)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixOperations","l":"sub(CooMatrix, Matrix)","u":"sub(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"sub(CooTensor)","u":"sub(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"sub(CooTensor)","u":"sub(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"sub(CooTensor)","u":"sub(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"sub(CooTensor)","u":"sub(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"sub(CooTensor)","u":"sub(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexCooTensorOperations","l":"sub(CooTensor, CooCTensor)","u":"sub(org.flag4j.arrays.sparse.CooTensor,org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealCooTensorOperations","l":"sub(CooTensor, CooTensor)","u":"sub(org.flag4j.arrays.sparse.CooTensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseOperations","l":"sub(CooTensor, CTensor)","u":"sub(org.flag4j.arrays.sparse.CooTensor,org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseTensorOperations","l":"sub(CooTensor, Tensor)","u":"sub(org.flag4j.arrays.sparse.CooTensor,org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"sub(CooVector)","u":"sub(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"sub(CooVector)","u":"sub(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"sub(CooVector)","u":"sub(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"sub(CooVector)","u":"sub(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"sub(CooVector)","u":"sub(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseVectorOperations","l":"sub(CooVector, CNumber)","u":"sub(org.flag4j.arrays.sparse.CooVector,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseVectorOperations","l":"sub(CooVector, CooCVector)","u":"sub(org.flag4j.arrays.sparse.CooVector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseVectorOperations","l":"sub(CooVector, CooVector)","u":"sub(org.flag4j.arrays.sparse.CooVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"sub(CooVector, CVector)","u":"sub(org.flag4j.arrays.sparse.CooVector,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseVectorOperations","l":"sub(CooVector, double)","u":"sub(org.flag4j.arrays.sparse.CooVector,double)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseVectorOperations","l":"sub(CooVector, Vector)","u":"sub(org.flag4j.arrays.sparse.CooVector,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"sub(CsrCMatrix)","u":"sub(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"sub(CsrCMatrix)","u":"sub(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"sub(CsrCMatrix)","u":"sub(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"sub(CsrCMatrix)","u":"sub(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"sub(CsrCMatrix)","u":"sub(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"sub(CsrCMatrix)","u":"sub(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"sub(CsrCMatrix)","u":"sub(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"sub(CsrMatrix)","u":"sub(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"sub(CsrMatrix)","u":"sub(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"sub(CsrMatrix)","u":"sub(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"sub(CsrMatrix)","u":"sub(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"sub(CsrMatrix)","u":"sub(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"sub(CsrMatrix)","u":"sub(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"sub(CsrMatrix)","u":"sub(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"sub(CTensor)","u":"sub(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"sub(CTensor)","u":"sub(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"sub(CTensor)","u":"sub(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"sub(CTensor)","u":"sub(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseOperations","l":"sub(CTensor, CooCTensor)","u":"sub(org.flag4j.arrays.dense.CTensor,org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseOperations","l":"sub(CTensor, CooTensor)","u":"sub(org.flag4j.arrays.dense.CTensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"sub(CVector)","u":"sub(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"sub(CVector)","u":"sub(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"sub(CVector)","u":"sub(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"sub(CVector)","u":"sub(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseVectorOperations","l":"sub(CVector, CooCVector)","u":"sub(org.flag4j.arrays.dense.CVector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"sub(CVector, CooVector)","u":"sub(org.flag4j.arrays.dense.CVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"sub(double)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"sub(double)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"sub(double)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"sub(double)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"sub(double)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"sub(double)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"sub(double)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"sub(double)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"sub(double)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"sub(double)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"sub(double)"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"sub(double)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"sub(double[], CNumber)","u":"sub(double[],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseOperations","l":"sub(double[], CNumber)","u":"sub(double[],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseOperations","l":"sub(double[], double)","u":"sub(double[],double)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseOperations","l":"sub(double[], Shape, CNumber[], Shape)","u":"sub(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseOperations","l":"sub(double[], Shape, double[], Shape)","u":"sub(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"sub(Matrix)","u":"sub(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"sub(Matrix)","u":"sub(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"sub(Matrix)","u":"sub(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"sub(Matrix)","u":"sub(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"sub(Matrix)","u":"sub(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"sub(Matrix)","u":"sub(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"sub(Matrix, CooCMatrix)","u":"sub(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixOperations","l":"sub(Matrix, CooMatrix)","u":"sub(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"sub(T)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"sub(T)"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"sub(T)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"sub(Tensor)","u":"sub(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"sub(Tensor)","u":"sub(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"sub(Tensor)","u":"sub(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"sub(Tensor)","u":"sub(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseOperations","l":"sub(Tensor, CooCTensor)","u":"sub(org.flag4j.arrays.dense.Tensor,org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseTensorOperations","l":"sub(Tensor, CooTensor)","u":"sub(org.flag4j.arrays.dense.Tensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"sub(Vector)","u":"sub(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"sub(Vector)","u":"sub(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"sub(Vector)","u":"sub(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"sub(Vector)","u":"sub(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"sub(Vector, CooCVector)","u":"sub(org.flag4j.arrays.dense.Vector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseVectorOperations","l":"sub(Vector, CooVector)","u":"sub(org.flag4j.arrays.dense.Vector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"subDiagonal"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixOperations","l":"subEq(CMatrix, CooCMatrix)","u":"subEq(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"subEq(CMatrix, CooMatrix)","u":"subEq(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"subEq(CNumber)","u":"subEq(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"subEq(CNumber[], CNumber)","u":"subEq(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseOperations","l":"subEq(CNumber[], double)","u":"subEq(org.flag4j.complex_numbers.CNumber[],double)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"subEq(CNumber[], Shape, CNumber[], Shape)","u":"subEq(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseOperations","l":"subEq(CNumber[], Shape, double[], Shape)","u":"subEq(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"subEq(CooCMatrix)","u":"subEq(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"subEq(CooCTensor)","u":"subEq(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"subEq(CooCTensor)","u":"subEq(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.core","c":"ComplexTensorExclusiveMixin","l":"subEq(CooCTensor)","u":"subEq(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"subEq(CooCVector)","u":"subEq(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"subEq(CooMatrix)","u":"subEq(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"subEq(CooMatrix)","u":"subEq(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"subEq(CooMatrix)","u":"subEq(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"subEq(CooTensor)","u":"subEq(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"subEq(CooTensor)","u":"subEq(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"subEq(CooVector)","u":"subEq(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"subEq(CooVector)","u":"subEq(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core.dense_base","c":"DenseVectorMixin","l":"subEq(CooVector)","u":"subEq(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseOperations","l":"subEq(CTensor, CooCTensor)","u":"subEq(org.flag4j.arrays.dense.CTensor,org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseOperations","l":"subEq(CTensor, CooTensor)","u":"subEq(org.flag4j.arrays.dense.CTensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseVectorOperations","l":"subEq(CVector, CooCVector)","u":"subEq(org.flag4j.arrays.dense.CVector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"subEq(CVector, CooVector)","u":"subEq(org.flag4j.arrays.dense.CVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"subEq(Double)","u":"subEq(java.lang.Double)"},{"p":"org.flag4j.core.dense_base","c":"DenseMixin","l":"subEq(Double)","u":"subEq(java.lang.Double)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"subEq(Double)","u":"subEq(java.lang.Double)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseOperations","l":"subEq(double[], double)","u":"subEq(double[],double)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseOperations","l":"subEq(double[], Shape, double[], Shape)","u":"subEq(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"subEq(Matrix)","u":"subEq(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"subEq(Matrix)","u":"subEq(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixOperations","l":"subEq(Matrix, CooMatrix)","u":"subEq(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"subEq(T)"},{"p":"org.flag4j.core.dense_base","c":"DenseTensorBase","l":"subEq(T)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"subEq(T)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"subEq(Tensor)","u":"subEq(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"subEq(Tensor)","u":"subEq(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.core","c":"ComplexTensorExclusiveMixin","l":"subEq(Tensor)","u":"subEq(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.core.dense_base","c":"DenseTensorMixin","l":"subEq(Tensor)","u":"subEq(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseTensorOperations","l":"subEq(Tensor, CooTensor)","u":"subEq(org.flag4j.arrays.dense.Tensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"subEq(Vector)","u":"subEq(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core.dense_base","c":"DenseVectorMixin","l":"subEq(Vector)","u":"subEq(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseVectorOperations","l":"subEq(Vector, CooVector)","u":"subEq(org.flag4j.arrays.dense.Vector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core.dense_base","c":"DenseMixin","l":"subEq(X)"},{"p":"org.flag4j.linalg","c":"SubSpace","l":"SubSpace()","u":"%3Cinit%3E()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"sum()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"sum()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"sum()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"sum()"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"sum()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"sum(CNumber...)","u":"sum(org.flag4j.complex_numbers.CNumber...)"},{"p":"org.flag4j.operations.common.complex","c":"AggregateComplex","l":"sum(CNumber[])","u":"sum(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.common.real","c":"AggregateReal","l":"sum(double[])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"sumCols()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"sumCols()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"sumCols()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"sumCols()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"sumCols()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"sumCols()"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"sumCols()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"sumRows()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"sumRows()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"sumRows()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"sumRows()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"sumRows()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"sumRows()"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"sumRows()"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"SVD(boolean, boolean)","u":"%3Cinit%3E(boolean,boolean)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"swap(double[], int, int)","u":"swap(double[],int,int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"swap(int[], int, int)","u":"swap(int[],int,int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"swap(int[], int[])","u":"swap(int[],int[])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"swap(Object[], int, int)","u":"swap(java.lang.Object[],int,int)"},{"p":"org.flag4j.core","c":"Shape","l":"swapAxes(int, int)","u":"swapAxes(int,int)"},{"p":"org.flag4j.core","c":"Shape","l":"swapAxes(int...)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixManipulations","l":"swapCols(CooCMatrix, int, int)","u":"swapCols(org.flag4j.arrays.sparse.CooCMatrix,int,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixManipulations","l":"swapCols(CooMatrix, int, int)","u":"swapCols(org.flag4j.arrays.sparse.CooMatrix,int,int)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrManipulations","l":"swapCols(CsrCMatrix, int, int)","u":"swapCols(org.flag4j.arrays.sparse.CsrCMatrix,int,int)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrManipulations","l":"swapCols(CsrMatrix, int, int)","u":"swapCols(org.flag4j.arrays.sparse.CsrMatrix,int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"swapCols(int, int)","u":"swapCols(int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"swapCols(int, int)","u":"swapCols(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"swapCols(int, int)","u":"swapCols(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"swapCols(int, int)","u":"swapCols(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"swapCols(int, int)","u":"swapCols(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"swapCols(int, int)","u":"swapCols(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"swapCols(int, int)","u":"swapCols(int,int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"swapCols(int, int)","u":"swapCols(int,int)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"swapCols(int, int)","u":"swapCols(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"swapPointers"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixManipulations","l":"swapRows(CooCMatrix, int, int)","u":"swapRows(org.flag4j.arrays.sparse.CooCMatrix,int,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixManipulations","l":"swapRows(CooMatrix, int, int)","u":"swapRows(org.flag4j.arrays.sparse.CooMatrix,int,int)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrManipulations","l":"swapRows(CsrCMatrix, int, int)","u":"swapRows(org.flag4j.arrays.sparse.CsrCMatrix,int,int)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrManipulations","l":"swapRows(CsrMatrix, int, int)","u":"swapRows(org.flag4j.arrays.sparse.CsrMatrix,int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"swapRows(int, int)","u":"swapRows(int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"swapRows(int, int)","u":"swapRows(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"swapRows(int, int)","u":"swapRows(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"swapRows(int, int)","u":"swapRows(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"swapRows(int, int)","u":"swapRows(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"swapRows(int, int)","u":"swapRows(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"swapRows(int, int)","u":"swapRows(int,int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"swapRows(int, int)","u":"swapRows(int,int)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"swapRows(int, int)","u":"swapRows(int,int)"},{"p":"org.flag4j.linalg.decompositions.hess","c":"SymmHess","l":"SymmHess()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.hess","c":"SymmHess","l":"SymmHess(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.linalg.decompositions.hess","c":"SymmHess","l":"SymmHess(boolean, boolean)","u":"%3Cinit%3E(boolean,boolean)"},{"p":"org.flag4j.linalg.transformations","c":"Householder","l":"symmLeftRightMultReflector(Matrix, double[], double, int, double[])","u":"symmLeftRightMultReflector(org.flag4j.arrays.dense.Matrix,double[],double,int,double[])"},{"p":"org.flag4j.arrays.sparse","c":"SymmTriDiagonal","l":"SymmTriDiagonal(double[], double[])","u":"%3Cinit%3E(double[],double[])"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"T"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"T()"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"T()"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"T()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"T()"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"T()"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"T()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"T()"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"T()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"T()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"T()"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"T()"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"T()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"T()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"T()"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"T()"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"T()"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"T(int, int)","u":"T(int,int)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"T(int, int)","u":"T(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"T(int, int)","u":"T(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"T(int, int)","u":"T(int,int)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"T(int, int)","u":"T(int,int)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"T(int...)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"T(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"T(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"T(int...)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"T(int...)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"tan(CNumber)","u":"tan(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"tan(double)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"tanh(CNumber)","u":"tanh(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"tanh(double)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"temp"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"Tensor(Matrix)","u":"%3Cinit%3E(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"Tensor(Shape)","u":"%3Cinit%3E(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"Tensor(Shape, double)","u":"%3Cinit%3E(org.flag4j.core.Shape,double)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"Tensor(Shape, double[])","u":"%3Cinit%3E(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"Tensor(Shape, Double[])","u":"%3Cinit%3E(org.flag4j.core.Shape,java.lang.Double[])"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"Tensor(Shape, int[])","u":"%3Cinit%3E(org.flag4j.core.Shape,int[])"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"Tensor(Shape, Integer[])","u":"%3Cinit%3E(org.flag4j.core.Shape,java.lang.Integer[])"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"Tensor(Tensor)","u":"%3Cinit%3E(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"Tensor(Vector)","u":"%3Cinit%3E(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"TensorBase","l":"TensorBase(Shape, D)","u":"%3Cinit%3E(org.flag4j.core.Shape,D)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexCooTensorDot","l":"tensorDot(CooCTensor, CooCTensor, int[], int[])","u":"tensorDot(org.flag4j.arrays.sparse.CooCTensor,org.flag4j.arrays.sparse.CooCTensor,int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"tensorDot(CooCTensor, int[], int[])","u":"tensorDot(org.flag4j.arrays.sparse.CooCTensor,int[],int[])"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealCooTensorDot","l":"tensorDot(CooTensor, CooTensor, int[], int[])","u":"tensorDot(org.flag4j.arrays.sparse.CooTensor,org.flag4j.arrays.sparse.CooTensor,int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"tensorDot(CooTensor, int[], int[])","u":"tensorDot(org.flag4j.arrays.sparse.CooTensor,int[],int[])"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"tensorDot(CTensor)","u":"tensorDot(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTensorDot","l":"tensorDot(CTensor, CTensor, int[], int[])","u":"tensorDot(org.flag4j.arrays.dense.CTensor,org.flag4j.arrays.dense.CTensor,int[],int[])"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"tensorDot(CTensor, int[], int[])","u":"tensorDot(org.flag4j.arrays.dense.CTensor,int[],int[])"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"tensorDot(T)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"tensorDot(T, int)","u":"tensorDot(T,int)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"tensorDot(T, int, int)","u":"tensorDot(T,int,int)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"tensorDot(T, int[], int[])","u":"tensorDot(T,int[],int[])"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"tensorDot(Tensor)","u":"tensorDot(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"tensorDot(Tensor, int[], int[])","u":"tensorDot(org.flag4j.arrays.dense.Tensor,int[],int[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseTensorDot","l":"tensorDot(Tensor, Tensor)","u":"tensorDot(org.flag4j.arrays.dense.Tensor,org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseTensorDot","l":"tensorDot(Tensor, Tensor, int[], int[])","u":"tensorDot(org.flag4j.arrays.dense.Tensor,org.flag4j.arrays.dense.Tensor,int[],int[])"},{"p":"org.flag4j.operations.common","c":"TensorEquals","l":"TensorEquals()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseEquals","l":"tensorEquals(CNumber[], Shape, CNumber[], Shape)","u":"tensorEquals(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseEquals","l":"tensorEquals(CooCTensor, CooCTensor)","u":"tensorEquals(org.flag4j.arrays.sparse.CooCTensor,org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseEquals","l":"tensorEquals(CooTensor, CooCTensor)","u":"tensorEquals(org.flag4j.arrays.sparse.CooTensor,org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseEquals","l":"tensorEquals(CooTensor, CooTensor)","u":"tensorEquals(org.flag4j.arrays.sparse.CooTensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseEquals","l":"tensorEquals(CTensor, CooCTensor)","u":"tensorEquals(org.flag4j.arrays.dense.CTensor,org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseEquals","l":"tensorEquals(CTensor, CooTensor)","u":"tensorEquals(org.flag4j.arrays.dense.CTensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseEquals","l":"tensorEquals(double[], Shape, CNumber[], Shape)","u":"tensorEquals(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseEquals","l":"tensorEquals(double[], Shape, double[], Shape)","u":"tensorEquals(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseEquals","l":"tensorEquals(Tensor, CooCTensor)","u":"tensorEquals(org.flag4j.arrays.dense.Tensor,org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseEquals","l":"tensorEquals(Tensor, CooTensor)","u":"tensorEquals(org.flag4j.arrays.dense.Tensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseEquals","l":"tensorEquals(Tensor, CTensor)","u":"tensorEquals(org.flag4j.arrays.dense.Tensor,org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseEquals","l":"tensorEquals(Tensor, Tensor)","u":"tensorEquals(org.flag4j.arrays.dense.Tensor,org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.core","c":"TensorBase","l":"tensorEquals(TensorBase)","u":"tensorEquals(org.flag4j.core.TensorBase)"},{"p":"org.flag4j.core","c":"TensorComparisonsMixin","l":"tensorEquals(TensorBase)","u":"tensorEquals(org.flag4j.core.TensorBase)"},{"p":"org.flag4j.io","c":"TensorInputStream","l":"TensorInputStream(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"tensorInv()"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"tensorInv(int)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"tensorInv(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"tensorInv(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"tensorInv(int)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"tensorInv(int)"},{"p":"org.flag4j.linalg","c":"TensorInvert","l":"TensorInvert()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"tensorNormL2(CNumber[])","u":"tensorNormL2(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"tensorNormL2(double[])"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"tensorNormLp(CNumber[], double)","u":"tensorNormLp(org.flag4j.complex_numbers.CNumber[],double)"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"tensorNormLp(double[], double)","u":"tensorNormLp(double[],double)"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"TensorNorms()","u":"%3Cinit%3E()"},{"p":"org.flag4j.io","c":"TensorOutputStream","l":"TensorOutputStream(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"org.flag4j.io","c":"TensorReader","l":"TensorReader()","u":"%3Cinit%3E()"},{"p":"org.flag4j.util.exceptions","c":"TensorShapeException","l":"TensorShapeException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"org.flag4j.util.exceptions","c":"TensorShapeException","l":"TensorShapeException(String, Shape)","u":"%3Cinit%3E(java.lang.String,org.flag4j.core.Shape)"},{"p":"org.flag4j.util.exceptions","c":"TensorShapeException","l":"TensorShapeException(String, Shape, Shape)","u":"%3Cinit%3E(java.lang.String,org.flag4j.core.Shape,org.flag4j.core.Shape)"},{"p":"org.flag4j.io","c":"TensorWriter","l":"TensorWriter()","u":"%3Cinit%3E()"},{"p":"org.flag4j.concurrency","c":"ThreadManager","l":"threadLogger"},{"p":"org.flag4j.concurrency","c":"ThreadManager","l":"ThreadManager()","u":"%3Cinit%3E()"},{"p":"org.flag4j.concurrency","c":"ThreadManager","l":"threadPool"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"toArrayList(CNumber[])","u":"toArrayList(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"toArrayList(double[])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"toArrayList(int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"toComplex()"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"toComplex()"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"toComplex()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"toComplex()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"toComplex()"},{"p":"org.flag4j.core","c":"RealTensorMixin","l":"toComplex()"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"toComplexArrayList(double[])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"toCoo()"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"toCoo()"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"toCoo()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"toCoo()"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"toCoo()"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"toCoo()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"toCoo()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"toCoo()"},{"p":"org.flag4j.core.dense_base","c":"DenseTensorBase","l":"toCoo()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"toCsr()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"toCsr()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"toCsr()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"toCsr()"},{"p":"org.flag4j.io","c":"TensorWriter","l":"toCsv(String, MatrixMixin)","u":"toCsv(java.lang.String,org.flag4j.core.MatrixMixin)"},{"p":"org.flag4j.io","c":"TensorWriter","l":"toCsv(String, MatrixMixin, String)","u":"toCsv(java.lang.String,org.flag4j.core.MatrixMixin,java.lang.String)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"toDense()"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"toDense()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"toDense()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"toDense()"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"toDense()"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"toDense()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"toDense()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"toDense()"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"toDense()"},{"p":"org.flag4j.arrays.sparse","c":"SymmTriDiagonal","l":"toDense()"},{"p":"org.flag4j.core.sparse_base","c":"SparseTensorBase","l":"toDense()"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"toMatrix()"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"toMatrix()"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"toMatrix()"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"toMatrix()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"toMatrix()"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"toMatrix()"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"toMatrix()"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"toMatrix(boolean)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"toMatrix(boolean)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"toMatrix(boolean)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"toMatrix(boolean)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"toMatrix(boolean)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"toMatrix(Shape)","u":"toMatrix(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"toMatrix(Shape)","u":"toMatrix(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"toMatrix(Shape)","u":"toMatrix(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"toMatrix(Shape)","u":"toMatrix(org.flag4j.core.Shape)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"toPolar()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"toReal()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"toReal()"},{"p":"org.flag4j.core","c":"ComplexTensorMixin","l":"toReal()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"toReal()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"toReal()"},{"p":"org.flag4j.operations.common.complex","c":"ComplexOperations","l":"toReal(CNumber[])","u":"toReal(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"toRealSafe()"},{"p":"org.flag4j.core","c":"ComplexTensorMixin","l":"toRealSafe()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"toRealSafe()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"toRealSafe()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"toString()"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"toString()"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"toString()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"toString()"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"toString()"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"toString()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"toString()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"toString()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"toString()"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"toString()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"toString()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"toString()"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"toString()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"toString()"},{"p":"org.flag4j.complex_numbers","c":"CNumberToken","l":"toString()"},{"p":"org.flag4j.core","c":"Shape","l":"toString()"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"TOTAL_ENTRIES_ERR"},{"p":"org.flag4j.core","c":"Shape","l":"totalEntries"},{"p":"org.flag4j.core","c":"Shape","l":"totalEntries()"},{"p":"org.flag4j.core","c":"TensorBase","l":"totalEntries()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"toTensor()"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"toTensor()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"toTensor()"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"toTensor()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"toTensor()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"toTensor()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"toTensor()"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"toTensor()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"toTensor()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"toTensor()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"toVector()"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"toVector()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"toVector()"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"toVector()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"toVector()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"toVector()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"toVector()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"toVector()"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"toVector()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"tr()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"tr()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"tr()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"tr()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"tr()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"tr()"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"tr()"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"tr()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"trace()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"trace()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"trace()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"trace()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"trace()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"trace()"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"trace()"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"trace()"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"transformData"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"transformMatrix"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"transpose()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"transpose()"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"transpose()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"transpose()"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"transpose()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"transpose()"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"transpose()"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrOperations","l":"transpose(CsrCMatrix)","u":"transpose(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrOperations","l":"transpose(CsrMatrix)","u":"transpose(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"transpose(int, int)","u":"transpose(int,int)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"transpose(int...)"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"TransposeDispatcher()","u":"%3Cinit%3E()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"TWO"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"U"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"U"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"unbox(Double[])","u":"unbox(java.lang.Double[])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"unbox(Integer[])","u":"unbox(java.lang.Integer[])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"unboxFlatten(Double[][])","u":"unboxFlatten(java.lang.Double[][])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"uniqueSorted(int[])"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"UnitaryDecomposition(int, boolean)","u":"%3Cinit%3E(int,boolean)"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"unwrap(double[], int[])","u":"unwrap(double[],int[])"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"unwrap(double[], int[], int[])","u":"unwrap(double[],int[],int[])"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"unwrap(double[], int[][])","u":"unwrap(double[],int[][])"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"unwrap(T[], int[])","u":"unwrap(T[],int[])"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"unwrap(T[], int[], int[])","u":"unwrap(T[],int[],int[])"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"unwrap(T[], int[][])","u":"unwrap(T[],int[][])"},{"p":"org.flag4j.linalg.decompositions.hess","c":"SymmHess","l":"updateData(int)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"ComplexUnitaryDecomposition","l":"updateData(int)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"RealUnitaryDecomposition","l":"updateData(int)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"updateData(int)"},{"p":"org.flag4j.io","c":"PrintOptions","l":"useCentering()"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseElemDiv","l":"useConcurrent(int)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"UTILITY_CLASS_ERR"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"V"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU.Pivoting","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"org.flag4j.operations","c":"TransposeDispatcher.Algorithm","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"org.flag4j.util","c":"Axis2D","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"org.flag4j.util","c":"StringUtils","l":"ValueOfRound(CNumber, int)","u":"ValueOfRound(org.flag4j.complex_numbers.CNumber,int)"},{"p":"org.flag4j.util","c":"StringUtils","l":"ValueOfRound(double, int)","u":"ValueOfRound(double,int)"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"values"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU.Pivoting","l":"values()"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"values()"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"values()"},{"p":"org.flag4j.operations","c":"TransposeDispatcher.Algorithm","l":"values()"},{"p":"org.flag4j.util","c":"Axis2D","l":"values()"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"VEC_COL_ORIENTATION_ERR"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"VEC_ROW_ORIENTATION_ERR"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"vecColOrientErrMsg(Shape)","u":"vecColOrientErrMsg(org.flag4j.core.Shape)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"vecRowOrientErrMsg(Shape)","u":"vecRowOrientErrMsg(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"Vector(double...)","u":"%3Cinit%3E(double...)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"Vector(int)","u":"%3Cinit%3E(int)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"Vector(int, double)","u":"%3Cinit%3E(int,double)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"Vector(int...)","u":"%3Cinit%3E(int...)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"Vector(Shape)","u":"%3Cinit%3E(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"Vector(Shape, double)","u":"%3Cinit%3E(org.flag4j.core.Shape,double)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"Vector(Vector)","u":"%3Cinit%3E(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseEquals","l":"vectorEquals(CNumber[], CNumber[], int[], int)","u":"vectorEquals(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber[],int[],int)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseEquals","l":"vectorEquals(CNumber[], double[], int[], int)","u":"vectorEquals(org.flag4j.complex_numbers.CNumber[],double[],int[],int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseEquals","l":"vectorEquals(CooCVector, CooCVector)","u":"vectorEquals(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseEquals","l":"vectorEquals(CooVector, CooCVector)","u":"vectorEquals(org.flag4j.arrays.sparse.CooVector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseEquals","l":"vectorEquals(CooVector, CooVector)","u":"vectorEquals(org.flag4j.arrays.sparse.CooVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseEquals","l":"vectorEquals(double[], CNumber[], int[], int)","u":"vectorEquals(double[],org.flag4j.complex_numbers.CNumber[],int[],int)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseEquals","l":"vectorEquals(double[], double[])","u":"vectorEquals(double[],double[])"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseEquals","l":"vectorEquals(double[], double[], int[], int)","u":"vectorEquals(double[],double[],int[],int)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"VectorNorms()","u":"%3Cinit%3E()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"vectorType()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"vectorType()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"vectorType()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"vectorType()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"vectorType()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"vectorType()"},{"p":"org.flag4j.core","c":"MatrixPropertiesMixin","l":"vectorType()"},{"p":"org.flag4j.linalg.transformations","c":"View","l":"View()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"workArray"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"workArray"},{"p":"org.flag4j.linalg.solvers.exact","c":"ComplexExactTensorSolver","l":"wrap(CVector, Shape)","u":"wrap(org.flag4j.arrays.dense.CVector,org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"wrap(double[], int[])","u":"wrap(double[],int[])"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"wrap(double[], int[], int[])","u":"wrap(double[],int[],int[])"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"wrap(double[], int[][])","u":"wrap(double[],int[][])"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"wrap(T[], int[])","u":"wrap(T[],int[])"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"wrap(T[], int[], int[])","u":"wrap(T[],int[],int[])"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"wrap(T[], int[][])","u":"wrap(T[],int[][])"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactTensorSolver","l":"wrap(V, Shape)","u":"wrap(V,org.flag4j.core.Shape)"},{"p":"org.flag4j.linalg.solvers.exact","c":"RealExactTensorSolver","l":"wrap(Vector, Shape)","u":"wrap(org.flag4j.arrays.dense.Vector,org.flag4j.core.Shape)"},{"p":"org.flag4j.io","c":"TensorOutputStream","l":"write(int)"},{"p":"org.flag4j.io","c":"TensorWriter","l":"write(String, TensorBase)","u":"write(java.lang.String,org.flag4j.core.TensorBase)"},{"p":"org.flag4j.io","c":"TensorOutputStream","l":"write(TensorBase)","u":"write(org.flag4j.core.TensorBase)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"BackSolver","l":"x"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ForwardSolver","l":"x"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"BackSolver","l":"X"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ForwardSolver","l":"X"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"BackSolver","l":"xCol"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ForwardSolver","l":"xCol"},{"p":"org.flag4j.linalg.decompositions.lu","c":"ComplexLU","l":"z"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"ZERO"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"ZERO"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"zeroPivotTol"}];updateSearchResults(); \ No newline at end of file diff --git a/docs/org/flag4j/arrays/dense/CMatrix.html b/docs/org/flag4j/arrays/dense/CMatrix.html index cc0513898..b94fa66fa 100644 --- a/docs/org/flag4j/arrays/dense/CMatrix.html +++ b/docs/org/flag4j/arrays/dense/CMatrix.html @@ -1,11 +1,11 @@ - + CMatrix - + @@ -96,12 +96,12 @@

    Class CMatrix

    All Implemented Interfaces:
    -
    Serializable, ComplexMatrixMixin<CMatrix>, ComplexTensorMixin<CMatrix,Matrix>, DenseMatrixMixin<CMatrix,CNumber>, DenseMixin<CNumber>, MatrixComparisonsMixin<CMatrix>, MatrixManipulationsMixin<CMatrix,CNumber>, MatrixMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>, MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>, MatrixPropertiesMixin, TensorComparisonsMixin, TensorManipulationsMixin<CMatrix>, TensorOperationsMixin<CMatrix,CMatrix,CMatrix,CMatrix,Matrix,CNumber>, TensorPropertiesMixin
    +
    Serializable, ComplexMatrixMixin<CMatrix>, ComplexTensorMixin<CMatrix,Matrix>, DenseMatrixMixin<CMatrix,CNumber>, DenseMixin<CNumber>, MatrixComparisonsMixin<CMatrix>, MatrixManipulationsMixin<CMatrix,CNumber>, MatrixMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>, MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>, MatrixPropertiesMixin, TensorComparisonsMixin, TensorManipulationsMixin<CMatrix>, TensorOperationsMixin<CMatrix,CMatrix,CMatrix,CMatrix,Matrix,CNumber>, TensorPropertiesMixin

    +implements MatrixMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>, ComplexMatrixMixin<CMatrix>, DenseMatrixMixin<CMatrix,CNumber>
    Complex dense matrix. Stored in row major format. This class is mostly equivalent to a complex dense tensor. However, specialized methods are provided for this class which may result in slightly better performance than equivalent operations with a complex dense tensor of rank 2. Additionally, methods specific to matrices @@ -1555,7 +1555,7 @@

    numRows

    Gets the number of rows in this matrix.
    Specified by:
    -
    numRows in interface MatrixMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    numRows in interface MatrixMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Returns:
    The number of rows in this matrix.
    @@ -1570,7 +1570,7 @@

    numCols

    Gets the number of columns in this matrix.
    Specified by:
    -
    numCols in interface MatrixMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    numCols in interface MatrixMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Returns:
    The number of columns in this matrix.
    @@ -1585,7 +1585,7 @@

    shape

    Gets the shape of this matrix.
    Specified by:
    -
    shape in interface MatrixMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    shape in interface MatrixMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Returns:
    The shape of this matrix.
    @@ -1614,7 +1614,7 @@

    toVector

    it will be flattened then converted to a vector.
    Specified by:
    -
    toVector in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    toVector in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Returns:
    A vector equivalent to this matrix.
    @@ -2032,7 +2032,7 @@

    setCol

    Specified by:
    setCol in interface ComplexMatrixMixin<CMatrix>
    Specified by:
    -
    setCol in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    setCol in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    values - New values for the column.
    colIndex - The index of the column which is to be set.
    @@ -2844,7 +2844,7 @@

    add

    Computes the element-wise addition between two matrices.
    Specified by:
    -
    add in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    add in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    B - Second matrix in the addition.
    Returns:
    @@ -2863,7 +2863,7 @@

    add

    Computes the element-wise addition between two tensors of the same rank.
    Specified by:
    -
    add in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    add in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    B - Second tensor in the addition.
    Returns:
    @@ -2882,7 +2882,7 @@

    add

    Computes the element-wise addition between two tensors of the same rank.
    Specified by:
    -
    add in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    add in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    B - Second tensor in the addition.
    Returns:
    @@ -2901,7 +2901,7 @@

    add

    Computes the element-wise addition between two tensors of the same rank.
    Specified by:
    -
    add in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    add in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    B - Second tensor in the addition.
    Returns:
    @@ -2920,7 +2920,7 @@

    add

    Computes the element-wise addition between two tensors of the same rank.
    Specified by:
    -
    add in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    add in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    B - Second tensor in the addition.
    Returns:
    @@ -2939,7 +2939,7 @@

    sub

    Computes the element-wise subtraction of two tensors of the same rank.
    Specified by:
    -
    sub in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    sub in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    B - Second tensor in the subtraction.
    Returns:
    @@ -2958,7 +2958,7 @@

    sub

    Computes the element-wise subtraction of two tensors of the same rank.
    Specified by:
    -
    sub in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    sub in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    B - Second tensor in the subtraction.
    Returns:
    @@ -2977,7 +2977,7 @@

    sub

    Computes the element-wise subtraction of two tensors of the same rank.
    Specified by:
    -
    sub in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    sub in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    B - Second tensor in the subtraction.
    Returns:
    @@ -2996,7 +2996,7 @@

    sub

    Computes the element-wise subtraction of two tensors of the same rank.
    Specified by:
    -
    sub in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    sub in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    B - Second tensor in the subtraction.
    Returns:
    @@ -3036,7 +3036,7 @@

    H

    Specified by:
    H in interface ComplexTensorMixin<CMatrix,Matrix>
    Specified by:
    -
    H in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    H in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Returns:
    The conjugate transpose.
    @@ -3096,7 +3096,7 @@

    sub

    Computes the element-wise subtraction of two tensors of the same rank.
    Specified by:
    -
    sub in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    sub in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    B - Second tensor in the subtraction.
    Returns:
    @@ -3175,7 +3175,7 @@

    mult

    Computes the matrix multiplication between two matrices.
    Specified by:
    -
    mult in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    mult in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    B - Second matrix in the matrix multiplication.
    Returns:
    @@ -3194,7 +3194,7 @@

    mult

    Computes the matrix multiplication between two matrices.
    Specified by:
    -
    mult in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    mult in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    B - Second matrix in the matrix multiplication.
    Returns:
    @@ -3213,7 +3213,7 @@

    mult

    Computes the matrix multiplication between two matrices.
    Specified by:
    -
    mult in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    mult in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    B - Second matrix in the matrix multiplication.
    Returns:
    @@ -3232,7 +3232,7 @@

    mult

    Computes the matrix multiplication between two matrices.
    Specified by:
    -
    mult in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    mult in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    B - Second matrix in the matrix multiplication.
    Returns:
    @@ -3251,7 +3251,7 @@

    mult

    Computes the matrix multiplication between two matrices.
    Specified by:
    -
    mult in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    mult in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    B - Second matrix in the matrix multiplication.
    Returns:
    @@ -3270,7 +3270,7 @@

    mult

    Computes the matrix multiplication between two matrices.
    Specified by:
    -
    mult in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    mult in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    B - Second matrix in the matrix multiplication.
    Returns:
    @@ -3289,7 +3289,7 @@

    mult

    Computes matrix-vector multiplication.
    Specified by:
    -
    mult in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    mult in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    b - Vector in the matrix-vector multiplication.
    Returns:
    @@ -3308,7 +3308,7 @@

    mult

    Computes matrix-vector multiplication.
    Specified by:
    -
    mult in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    mult in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    b - Vector in the matrix-vector multiplication.
    Returns:
    @@ -3327,7 +3327,7 @@

    mult

    Computes matrix-vector multiplication.
    Specified by:
    -
    mult in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    mult in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    b - Vector in the matrix-vector multiplication.
    Returns:
    @@ -3346,7 +3346,7 @@

    mult

    Computes matrix-vector multiplication.
    Specified by:
    -
    mult in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    mult in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    b - Vector in the matrix-vector multiplication.
    Returns:
    @@ -3369,7 +3369,7 @@

    multTranspose

    this.mult(B.T()).
    Specified by:
    -
    multTranspose in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    multTranspose in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    B - The second matrix in the multiplication and the matrix to transpose/
    Returns:
    @@ -3390,7 +3390,7 @@

    multTranspose

    this.mult(B.T()).
    Specified by:
    -
    multTranspose in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    multTranspose in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    B - The second matrix in the multiplication and the matrix to transpose/
    Returns:
    @@ -3411,7 +3411,7 @@

    multTranspose

    this.mult(B.T()).
    Specified by:
    -
    multTranspose in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    multTranspose in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    B - The second matrix in the multiplication and the matrix to transpose/
    Returns:
    @@ -3432,7 +3432,7 @@

    multTranspose

    this.mult(B.T()).
    Specified by:
    -
    multTranspose in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    multTranspose in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    B - The second matrix in the multiplication and the matrix to transpose/
    Returns:
    @@ -3451,7 +3451,7 @@

    pow

    faster.
    Specified by:
    -
    pow in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    pow in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    exponent - The exponent in the matrix power.
    Returns:
    @@ -3468,7 +3468,7 @@

    elemMult

    Computes the element-wise multiplication (Hadamard product) between two matrices.
    Specified by:
    -
    elemMult in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    elemMult in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    B - Second matrix in the element-wise multiplication.
    Returns:
    @@ -3487,7 +3487,7 @@

    elemMult

    Computes the element-wise multiplication (Hadamard product) between two matrices.
    Specified by:
    -
    elemMult in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    elemMult in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    B - Second matrix in the element-wise multiplication.
    Returns:
    @@ -3506,7 +3506,7 @@

    elemMult

    Computes the element-wise multiplication (Hadamard product) between two matrices.
    Specified by:
    -
    elemMult in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    elemMult in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    B - Second matrix in the element-wise multiplication.
    Returns:
    @@ -3525,7 +3525,7 @@

    elemDiv

    Computes the element-wise division between two matrices.
    Specified by:
    -
    elemDiv in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    elemDiv in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    B - Second matrix in the element-wise division.
    Returns:
    @@ -3545,7 +3545,7 @@

    det

    Computes the determinant of a square matrix.
    Specified by:
    -
    det in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    det in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Returns:
    The determinant of this matrix.
    Throws:
    @@ -3562,7 +3562,7 @@

    fib

    Computes the Frobenius inner product of two matrices.
    Specified by:
    -
    fib in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    fib in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    B - Second matrix in the Frobenius inner product
    Returns:
    @@ -3581,7 +3581,7 @@

    fib

    Computes the Frobenius inner product of two matrices.
    Specified by:
    -
    fib in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    fib in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    B - Second matrix in the Frobenius inner product
    Returns:
    @@ -3600,7 +3600,7 @@

    fib

    Computes the Frobenius inner product of two matrices.
    Specified by:
    -
    fib in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    fib in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    B - Second matrix in the Frobenius inner product
    Returns:
    @@ -3619,7 +3619,7 @@

    fib

    Computes the Frobenius inner product of two matrices.
    Specified by:
    -
    fib in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    fib in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    B - Second matrix in the Frobenius inner product
    Returns:
    @@ -3638,7 +3638,7 @@

    sumCols

    Sums together the columns of a matrix as if each column was a column vector.
    Specified by:
    -
    sumCols in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    sumCols in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Returns:
    The result of summing together all columns of the matrix as column vectors. If this matrix is an m-by-n matrix, then the result will be a vectors of length m.
    @@ -3654,7 +3654,7 @@

    sumRows

    Sums together the rows of a matrix as if each row was a row vector.
    Specified by:
    -
    sumRows in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    sumRows in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Returns:
    The result of summing together all rows of the matrix as row vectors. If this matrix is an m-by-n matrix, then the result will be a vector of length n.
    @@ -3671,7 +3671,7 @@

    addToEachCol

    treated as if it were a column vector.
    Specified by:
    -
    addToEachCol in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    addToEachCol in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    b - Vector to add to each column of this matrix.
    Returns:
    @@ -3689,7 +3689,7 @@

    addToEachCol

    treated as if it were a column vector.
    Specified by:
    -
    addToEachCol in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    addToEachCol in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    b - Vector to add to each column of this matrix.
    Returns:
    @@ -3707,7 +3707,7 @@

    addToEachCol

    treated as if it were a column vector.
    Specified by:
    -
    addToEachCol in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    addToEachCol in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    b - Vector to add to each column of this matrix.
    Returns:
    @@ -3725,7 +3725,7 @@

    addToEachCol

    treated as if it were a column vector.
    Specified by:
    -
    addToEachCol in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    addToEachCol in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    b - Vector to add to each column of this matrix.
    Returns:
    @@ -3743,7 +3743,7 @@

    addToEachRow

    treated as if it were a row vector for this operation.
    Specified by:
    -
    addToEachRow in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    addToEachRow in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    b - Vector to add to each row of this matrix.
    Returns:
    @@ -3761,7 +3761,7 @@

    addToEachRow

    treated as if it were a row vector for this operation.
    Specified by:
    -
    addToEachRow in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    addToEachRow in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    b - Vector to add to each row of this matrix.
    Returns:
    @@ -3779,7 +3779,7 @@

    addToEachRow

    treated as if it were a row vector for this operation.
    Specified by:
    -
    addToEachRow in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    addToEachRow in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    b - Vector to add to each row of this matrix.
    Returns:
    @@ -3797,7 +3797,7 @@

    addToEachRow

    treated as if it were a row vector for this operation.
    Specified by:
    -
    addToEachRow in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    addToEachRow in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    b - Vector to add to each row of this matrix.
    Returns:
    @@ -3815,7 +3815,7 @@

    stack

    Also see MatrixOperationsMixin.stack(Matrix, int) and augment(Matrix).
    Specified by:
    -
    stack in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    stack in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    B - Matrix to stack to this matrix.
    Returns:
    @@ -3835,7 +3835,7 @@

    stack

    Also see MatrixOperationsMixin.stack(Matrix, int) and augment(Matrix).
    Specified by:
    -
    stack in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    stack in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    B - Matrix to stack to this matrix.
    Returns:
    @@ -3855,7 +3855,7 @@

    stack

    Also see MatrixOperationsMixin.stack(Matrix, int) and augment(Matrix).
    Specified by:
    -
    stack in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    stack in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    B - Matrix to stack to this matrix.
    Returns:
    @@ -3875,7 +3875,7 @@

    stack

    Also see MatrixOperationsMixin.stack(Matrix, int) and augment(Matrix).
    Specified by:
    -
    stack in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    stack in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    B - Matrix to stack to this matrix.
    Returns:
    @@ -3895,7 +3895,7 @@

    augment

    Also see stack(Matrix) and MatrixOperationsMixin.stack(Matrix, int).
    Specified by:
    -
    augment in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    augment in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    B - Matrix to stack to this matrix.
    Returns:
    @@ -3915,7 +3915,7 @@

    augment

    Also see stack(Matrix) and MatrixOperationsMixin.stack(Matrix, int).
    Specified by:
    -
    augment in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    augment in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    B - Matrix to stack to this matrix.
    Returns:
    @@ -3935,7 +3935,7 @@

    augment

    Also see stack(Matrix) and MatrixOperationsMixin.stack(Matrix, int).
    Specified by:
    -
    augment in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    augment in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    B - Matrix to stack to this matrix.
    Returns:
    @@ -3955,7 +3955,7 @@

    augment

    Also see stack(Matrix) and MatrixOperationsMixin.stack(Matrix, int).
    Specified by:
    -
    augment in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    augment in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    B - Matrix to stack to this matrix.
    Returns:
    @@ -3976,7 +3976,7 @@

    stack

    Also see MatrixOperationsMixin.stack(Vector, int) and augment(Vector).
    Specified by:
    -
    stack in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    stack in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    b - Vector to stack to this matrix.
    Returns:
    @@ -3998,7 +3998,7 @@

    stack

    Also see MatrixOperationsMixin.stack(CooVector, int) and augment(CooVector).
    Specified by:
    -
    stack in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    stack in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    b - Vector to stack to this matrix.
    Returns:
    @@ -4020,7 +4020,7 @@

    stack

    Also see MatrixOperationsMixin.stack(CVector, int) and augment(CVector).
    Specified by:
    -
    stack in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    stack in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    b - Vector to stack to this matrix.
    Returns:
    @@ -4042,7 +4042,7 @@

    stack

    Also see MatrixOperationsMixin.stack(CooCVector, int) and augment(CooCVector).
    Specified by:
    -
    stack in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    stack in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    b - Vector to stack to this matrix.
    Returns:
    @@ -4065,7 +4065,7 @@

    augment

    Also see stack(Vector) and MatrixOperationsMixin.stack(Vector, int).
    Specified by:
    -
    augment in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    augment in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    b - vector to augment to this matrix.
    Returns:
    @@ -4087,7 +4087,7 @@

    augment

    Also see stack(CooVector) and MatrixOperationsMixin.stack(CooVector, int).
    Specified by:
    -
    augment in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    augment in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    b - vector to augment to this matrix.
    Returns:
    @@ -4109,7 +4109,7 @@

    augment

    Also see stack(CVector) and MatrixOperationsMixin.stack(CVector, int).
    Specified by:
    -
    augment in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    augment in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    b - vector to augment to this matrix.
    Returns:
    @@ -4131,7 +4131,7 @@

    augment

    Also see stack(CooCVector) and MatrixOperationsMixin.stack(CooCVector, int).
    Specified by:
    -
    augment in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    augment in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    b - vector to augment to this matrix.
    Returns:
    @@ -4150,7 +4150,7 @@

    getRow

    Get the row of this matrix at the specified index.
    Specified by:
    -
    getRow in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    getRow in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    i - Index of row to get.
    Returns:
    @@ -4185,7 +4185,7 @@

    getCol

    Get the column of this matrix at the specified index.
    Specified by:
    -
    getCol in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    getCol in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    j - Index of column to get.
    Returns:
    @@ -4223,7 +4223,7 @@

    getSlice

    Gets a specified slice of this matrix.
    Specified by:
    -
    getSlice in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    getSlice in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    rowStart - Starting row index of slice (inclusive).
    rowEnd - Ending row index of slice (exclusive).
    @@ -4247,7 +4247,7 @@

    getColBelow

    Get a specified column of this matrix at and below a specified row.
    Specified by:
    -
    getColBelow in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    getColBelow in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    rowStart - Index of the row to begin at.
    j - Index of column to get.
    @@ -4270,7 +4270,7 @@

    getCol

    Gets a specified column of this matrix between rowStart (inclusive) and rowEnd (exclusive).
    Specified by:
    -
    getCol in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    getCol in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    colIdx - Index of the column of this matrix to get.
    rowStart - Starting row of the column (inclusive).
    @@ -4294,7 +4294,7 @@

    getRowAfter

    Get a specified row of this matrix at and after a specified column.
    Specified by:
    -
    getRowAfter in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    getRowAfter in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Parameters:
    colStart - Index of the row to begin at.
    i - Index of the row to get.
    @@ -4316,7 +4316,7 @@

    trace

    Same as tr()
    Specified by:
    -
    trace in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    trace in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Returns:
    The trace of this matrix.
    Throws:
    @@ -4334,7 +4334,7 @@

    tr

    Same as trace()
    Specified by:
    -
    tr in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    tr in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Returns:
    The trace of this matrix.
    Throws:
    @@ -4351,7 +4351,7 @@

    getDiag

    Extracts the diagonal elements of this matrix and returns them as a vector.
    Specified by:
    -
    getDiag in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    getDiag in interface MatrixOperationsMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Returns:
    A vector containing the diagonal entries of this matrix.
    @@ -4615,7 +4615,7 @@

    get

    Gets the element in this tensor at the specified indices.
    Specified by:
    -
    get in interface MatrixMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CNumber,CVector,CVector>
    +
    get in interface MatrixMixin<CMatrix,CMatrix,CooCMatrix,CMatrix,CooCMatrix,CNumber,CVector,CVector>
    Specified by:
    get in interface TensorOperationsMixin<CMatrix,CMatrix,CMatrix,CMatrix,Matrix,CNumber>
    Overrides:
    diff --git a/docs/org/flag4j/arrays/dense/CTensor.html b/docs/org/flag4j/arrays/dense/CTensor.html index 331a60ea5..ff67d7892 100644 --- a/docs/org/flag4j/arrays/dense/CTensor.html +++ b/docs/org/flag4j/arrays/dense/CTensor.html @@ -1,11 +1,11 @@ - + CTensor - + @@ -354,14 +354,19 @@

    Method Summary

    Converts this tensor to an equivalent matrix.
    - - + +
    toMatrix(Shape matShape)
    -
    Formats this tensor as a human-readable string.
    +
    Converts this tensor to a matrix with the specified shape.
    - - + +
    +
    Formats this tensor as a human-readable string.
    +
    + + +
    Converts this tensor to an equivalent vector.
    @@ -384,7 +389,7 @@

    Methods hermTranspose

    Methods inherited from interface org.flag4j.core.TensorExclusiveMixin

    -add, elemDiv, elemMult, sub, tensorDot, tensorDot, tensorInv, transpose, transpose
    +add, elemDiv, elemMult, getRank, sub, tensorDot, tensorDot, tensorInv, transpose, transpose

    Methods inherited from interface org.flag4j.core.TensorOperationsMixin

    transpose
    @@ -990,8 +995,6 @@

    addEq

    public void addEq(CooTensor B)
    Computes the element-wise subtraction of two tensors of the same rank and stores the result in this tensor.
    -
    Specified by:
    -
    addEq in interface TensorExclusiveMixin<CTensor,CTensor,CooCTensor,CTensor>
    Parameters:
    B - Second tensor in the subtraction.
    Throws:
    @@ -1007,8 +1010,6 @@

    subEq

    public void subEq(CooTensor B)
    Computes the element-wise subtraction of two tensors of the same rank and stores the result in this tensor.
    -
    Specified by:
    -
    subEq in interface TensorExclusiveMixin<CTensor,CTensor,CooCTensor,CTensor>
    Parameters:
    B - Second tensor in the subtraction.
    Throws:
    @@ -1150,6 +1151,21 @@

    toVector

    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

    Rz>6pYJgHu}c}f$0~dZJRd$wv9RlVJ@`W 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 From a0399d2ef9bb42c70f3ec4f3b63c7fc9a4d97e15 Mon Sep 17 00:00:00 2001 From: jacob Date: Thu, 8 Aug 2024 15:36:01 -0600 Subject: [PATCH 4/8] CNumber objects are not immutable. --- qodana.yaml | 31 ++ .../java/org/flag4j/arrays/dense/CMatrix.java | 210 +++++----- .../java/org/flag4j/arrays/dense/CTensor.java | 12 +- .../java/org/flag4j/arrays/dense/CVector.java | 117 +++--- .../java/org/flag4j/arrays/dense/Matrix.java | 90 +++-- .../java/org/flag4j/arrays/dense/Vector.java | 14 +- .../org/flag4j/arrays/sparse/CooCMatrix.java | 86 ++-- .../org/flag4j/arrays/sparse/CooCTensor.java | 41 +- .../org/flag4j/arrays/sparse/CooCVector.java | 53 +-- .../org/flag4j/arrays/sparse/CooMatrix.java | 22 +- .../org/flag4j/arrays/sparse/CooTensor.java | 25 +- .../org/flag4j/arrays/sparse/CooVector.java | 10 +- .../org/flag4j/arrays/sparse/CsrCMatrix.java | 52 ++- .../org/flag4j/arrays/sparse/CsrMatrix.java | 6 +- .../arrays/sparse/PermutationMatrix.java | 2 +- .../org/flag4j/arrays/sparse/SparseUtils.java | 2 +- .../org/flag4j/complex_numbers/CNumber.java | 376 ++---------------- .../java/org/flag4j/core/MatrixMixin.java | 13 +- .../flag4j/core/MatrixOperationsMixin.java | 11 +- .../org/flag4j/core/TensorExclusiveMixin.java | 26 +- .../dense_base/ComplexDenseTensorBase.java | 3 +- src/main/java/org/flag4j/io/TensorWriter.java | 4 +- src/main/java/org/flag4j/linalg/Eigen.java | 39 +- src/main/java/org/flag4j/linalg/Invert.java | 4 +- .../java/org/flag4j/linalg/RowEchelon.java | 2 +- .../linalg/decompositions/Decomposition.java | 2 +- .../linalg/decompositions/chol/Cholesky.java | 2 +- .../decompositions/chol/ComplexCholesky.java | 4 +- .../linalg/decompositions/lu/ComplexLU.java | 6 +- .../flag4j/linalg/decompositions/lu/LU.java | 2 +- .../decompositions/schur/ComplexSchur.java | 68 ++-- .../decompositions/schur/RealSchur.java | 2 +- .../linalg/decompositions/schur/Schur.java | 2 +- .../flag4j/linalg/decompositions/svd/SVD.java | 2 +- .../unitary/ComplexUnitaryDecomposition.java | 28 +- .../unitary/UnitaryDecomposition.java | 2 +- .../java/org/flag4j/linalg/ops/DirectSum.java | 73 ++-- .../flag4j/linalg/solvers/LinearSolver.java | 2 +- .../linalg/solvers/exact/ExactSolver.java | 2 +- .../solvers/exact/ExactTensorSolver.java | 2 +- .../solvers/exact/triangular/BackSolver.java | 2 +- .../exact/triangular/ComplexBackSolver.java | 36 +- .../triangular/ComplexForwardSolver.java | 42 +- .../exact/triangular/ForwardSolver.java | 2 +- .../linalg/solvers/lstsq/LstsqSolver.java | 2 +- .../flag4j/linalg/transformations/Givens.java | 25 +- .../linalg/transformations/Householder.java | 17 +- .../common/complex/AggregateComplex.java | 6 +- .../complex/ComplexDenseDeterminant.java | 10 +- .../ComplexDenseMatrixMultTranspose.java | 21 +- .../ComplexDenseMatrixMultiplication.java | 30 +- .../dense/complex/ComplexDenseOperations.java | 20 +- .../complex/ComplexDenseSetOperations.java | 6 +- .../dense/complex/ComplexDenseTensorDot.java | 4 +- .../dense/complex/ComplexDenseTranspose.java | 14 +- .../complex/ComplexDenseVectorOperations.java | 4 +- .../dense/real/RealDenseTensorDot.java | 4 +- .../RealComplexDenseMatrixMultTranspose.java | 37 +- .../RealComplexDenseMatrixMultiplication.java | 79 ++-- .../RealComplexDenseOperations.java | 18 +- .../RealComplexDenseVectorOperations.java | 10 +- .../coo/complex/ComplexDenseSparseEquals.java | 13 +- ...ComplexDenseSparseMatrixMultTranspose.java | 9 +- ...omplexDenseSparseMatrixMultiplication.java | 78 ++-- .../ComplexDenseSparseMatrixOperations.java | 35 +- .../complex/ComplexDenseSparseOperations.java | 18 +- .../ComplexDenseSparseVectorOperations.java | 29 +- .../RealComplexDenseSparseEquals.java | 13 +- ...ComplexDenseSparseMatrixMultTranspose.java | 16 +- ...omplexDenseSparseMatrixMultiplication.java | 69 ++-- ...ealComplexDenseSparseMatrixOperations.java | 54 ++- .../RealComplexDenseSparseOperations.java | 33 +- ...ealComplexDenseSparseVectorOperations.java | 43 +- .../ComplexCsrDenseMatrixMultiplication.java | 53 ++- .../complex/ComplexCsrDenseOperations.java | 11 +- ...alComplexCsrDenseMatrixMultiplication.java | 34 +- .../RealComplexCsrDenseOperations.java | 7 +- .../coo/complex/ComplexCooTensorDot.java | 133 +++++++ .../complex/ComplexCooTensorOperations.java | 8 +- .../complex/ComplexSparseMatrixGetSet.java | 58 +-- .../ComplexSparseMatrixManipulations.java | 12 +- .../ComplexSparseMatrixMultiplication.java | 15 +- .../ComplexSparseMatrixOperations.java | 18 +- .../ComplexSparseVectorOperations.java | 37 +- .../sparse/coo/real/RealCooTensorDot.java | 8 +- .../RealComplexCooTensorOperations.java | 4 +- ...RealComplexSparseMatrixMultiplication.java | 36 +- .../RealComplexSparseMatrixOperations.java | 22 +- .../RealComplexSparseVectorOperations.java | 28 +- .../ComplexCsrMatrixMultiplication.java | 10 +- .../csr/complex/ComplexCsrOperations.java | 38 +- .../csr/complex/ComplexCsrProperties.java | 6 +- .../sparse/csr/real/RealCsrOperations.java | 14 +- .../RealComplexCsrMatrixMultiplication.java | 20 +- .../RealComplexCsrOperations.java | 14 +- .../java/org/flag4j/rng/RandomCNumber.java | 5 +- src/main/java/org/flag4j/util/ArrayUtils.java | 359 +++++------------ src/test/java/org/flag4j/TestHelpers.java | 8 +- .../CMatrixConstructorTests.java | 26 +- .../complex_matrix/CMatrixDirectSumTests.java | 16 +- .../complex_matrix/CMatrixElemDivTests.java | 6 +- .../complex_matrix/CMatrixElemMultTests.java | 16 +- .../complex_matrix/CMatrixEqualsTests.java | 50 +-- .../CMatrixMatVecMultTests.java | 16 +- .../complex_matrix/CMatrixMultTests.java | 32 +- .../complex_matrix/CMatrixRowColSumTests.java | 52 +-- .../CMatrixSetOperationTests.java | 38 +- .../complex_matrix/CMatrixStackTests.java | 128 +++--- .../complex_matrix/CMatrixToStringTests.java | 16 +- .../CNumberBinaryOperationsTest.java | 14 +- .../CNumberConstructorTest.java | 10 +- .../complex_numbers/CNumberMinMaxSumTest.java | 2 +- .../complex_numbers/CNumberSqrtTest.java | 8 +- .../complex_numbers/CNumberToStringTest.java | 2 +- .../CNumberUnaryOperationsTest.java | 12 +- .../complex_tensor/CTensorAddTests.java | 39 +- .../CTensorConstructorTests.java | 13 +- .../CTensorConversionTests.java | 9 +- .../complex_tensor/CTensorElemMultTests.java | 9 +- .../complex_tensor/CTensorReshapeTests.java | 19 +- .../complex_tensor/CTensorSubTests.java | 39 +- .../CVectorConstructorTests.java | 8 +- .../complex_vector/CVectorElemMultTests.java | 12 +- .../complex_vector/CVectorEqualsTests.java | 48 +-- .../CVectorStackJoinExtendTest.java | 30 +- .../complex_vector/CVectorZeroOneTests.java | 8 +- .../org/flag4j/linalg/CMatrixInvertTests.java | 20 +- .../org/flag4j/linalg/ComplexEigenTests.java | 6 +- .../org/flag4j/linalg/RealEigenTests.java | 2 +- .../java/org/flag4j/linalg/SubSpaceTests.java | 2 +- .../solvers/ComplexExactSolverTests.java | 4 +- .../solvers/ComplexForwardSolverTests.java | 42 +- .../linalg/transformations/GivensTests.java | 2 +- .../org/flag4j/matrix/MatrixElemDivTests.java | 2 +- .../flag4j/matrix/MatrixElemMultTests.java | 4 +- .../org/flag4j/matrix/MatrixStackTests.java | 18 +- .../dense/complex/CMatrixMultiplyTests.java | 4 +- .../dense/complex/ComplexDenseDetTests.java | 22 +- .../complex/ComplexDenseOperationsTests.java | 2 +- ...mplexDenseSparseMatMultTransposeTests.java | 2 +- .../CooCVectorConversionTests.java | 23 +- .../CooCVectorJoinTests.java | 4 +- .../CooCVectorRepeatTests.java | 136 +++---- .../CsrCMatrixAddSubTests.java | 4 +- .../CsrCMatrixEqualsTests.java | 35 +- .../CsrCMatrixToVectorTests.java | 40 +- .../CsrCMatrixTransposeTests.java | 14 +- .../CsrMatrixAddSubTests.java | 4 +- .../sparse_matrix/CooMatrixEqualsTest.java | 10 +- .../CooVectorInnerProdTests.java | 8 +- .../org/flag4j/tensor/TensorAddTests.java | 4 +- .../flag4j/tensor/TensorElemMultTests.java | 4 +- .../org/flag4j/tensor/TensorSubTests.java | 4 +- .../flag4j/vector/VectorStackJoinTests.java | 10 +- target/flag4j-v0.1.0-beta.jar | Bin 622085 -> 627467 bytes 155 files changed, 2074 insertions(+), 2243 deletions(-) create mode 100644 qodana.yaml create mode 100644 src/main/java/org/flag4j/operations/sparse/coo/complex/ComplexCooTensorDot.java diff --git a/qodana.yaml b/qodana.yaml new file mode 100644 index 000000000..021f333f6 --- /dev/null +++ b/qodana.yaml @@ -0,0 +1,31 @@ +#-------------------------------------------------------------------------------# +# Qodana analysis is configured by qodana.yaml file # +# https://www.jetbrains.com/help/qodana/qodana-yaml.html # +#-------------------------------------------------------------------------------# +version: "1.0" + +#Specify inspection profile for code analysis +profile: + name: qodana.starter + +#Enable inspections +#include: +# - name: + +#Disable inspections +#exclude: +# - name: +# paths: +# - + +projectJDK: 22 #(Applied in CI/CD pipeline) + +#Execute shell command before Qodana execution (Applied in CI/CD pipeline) +#bootstrap: sh ./prepare-qodana.sh + +#Install IDE plugins before Qodana execution (Applied in CI/CD pipeline) +#plugins: +# - id: #(plugin id can be found at https://plugins.jetbrains.com) + +#Specify Qodana linter for analysis (Applied in CI/CD pipeline) +linter: jetbrains/qodana-jvm:latest diff --git a/src/main/java/org/flag4j/arrays/dense/CMatrix.java b/src/main/java/org/flag4j/arrays/dense/CMatrix.java index 22f4390f7..d0348aede 100644 --- a/src/main/java/org/flag4j/arrays/dense/CMatrix.java +++ b/src/main/java/org/flag4j/arrays/dense/CMatrix.java @@ -52,12 +52,14 @@ import org.flag4j.operations.dense_sparse.coo.real_complex.RealComplexDenseSparseMatrixMultTranspose; import org.flag4j.operations.dense_sparse.coo.real_complex.RealComplexDenseSparseMatrixMultiplication; import org.flag4j.operations.dense_sparse.coo.real_complex.RealComplexDenseSparseMatrixOperations; +import org.flag4j.operations.dense_sparse.csr.complex.ComplexCsrDenseMatrixMultiplication; import org.flag4j.operations.dense_sparse.csr.complex.ComplexCsrDenseOperations; import org.flag4j.operations.dense_sparse.csr.real_complex.RealComplexCsrDenseMatrixMultiplication; import org.flag4j.operations.dense_sparse.csr.real_complex.RealComplexCsrDenseOperations; import org.flag4j.util.*; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; /** @@ -68,7 +70,7 @@ */ public class CMatrix extends ComplexDenseTensorBase - implements MatrixMixin, + implements MatrixMixin, ComplexMatrixMixin, DenseMatrixMixin { @@ -89,7 +91,7 @@ public class CMatrix */ public CMatrix(int size) { super(new Shape(size, size), new CNumber[size*size]); - ArrayUtils.fillZeros(super.entries); + Arrays.fill(super.entries, CNumber.ZERO); this.numRows = shape.get(0); this.numCols = shape.get(1); } @@ -124,7 +126,7 @@ public CMatrix(int size, CNumber value) { this.numCols = shape.get(1); for(int i=0; i maxList) { // Get last entry in the column now value = StringUtils.ValueOfRound(this.get(i, this.numCols-1), PrintOptions.getPrecision()); - width = PrintOptions.getPadding() + maxList.get(maxList.size()-1); + width = PrintOptions.getPadding() + maxList.getLast(); value = PrintOptions.useCentering() ? StringUtils.center(value, width) : value; result.append(String.format("%-" + width + "s]", value)); @@ -3600,12 +3600,12 @@ public String toString() { List maxList = new ArrayList<>(colStopIndex + 1); for (int j = 0; j < colStopIndex; j++) { maxList.add(CNumberUtils.maxStringLength(this.getCol(j).entries, rowStopIndex)); - totalRowLength += maxList.get(maxList.size() - 1); + totalRowLength += maxList.getLast(); } if (colStopIndex < this.numCols) { maxList.add(CNumberUtils.maxStringLength(this.getCol(this.numCols - 1).entries)); - totalRowLength += maxList.get(maxList.size() - 1); + totalRowLength += maxList.getLast(); } if (colStopIndex < this.numCols - 1) { diff --git a/src/main/java/org/flag4j/arrays/dense/CTensor.java b/src/main/java/org/flag4j/arrays/dense/CTensor.java index d70588857..626128cd7 100644 --- a/src/main/java/org/flag4j/arrays/dense/CTensor.java +++ b/src/main/java/org/flag4j/arrays/dense/CTensor.java @@ -65,7 +65,7 @@ public class CTensor public CTensor(Shape shape) { super(shape, new CNumber[shape.totalEntries().intValue()]); shape.makeStridesIfNull(); - ArrayUtils.fillZeros(super.entries); + Arrays.fill(super.entries, CNumber.ZERO); } @@ -89,7 +89,7 @@ public CTensor(Shape shape, double fillValue) { public CTensor(Shape shape, CNumber fillValue) { super(shape, new CNumber[shape.totalEntries().intValue()]); shape.makeStridesIfNull(); - ArrayUtils.fill(super.entries, fillValue); + Arrays.fill(super.entries, fillValue); } @@ -160,7 +160,7 @@ public CTensor(Tensor A) { public CTensor(CTensor A) { super(A.shape, new CNumber[A.totalEntries().intValue()]); shape.makeStridesIfNull(); - ArrayUtils.copy2CNumber(A.entries, super.entries); + System.arraycopy(A.entries, 0, super.entries, 0, A.entries.length); } @@ -639,7 +639,7 @@ public CTensor flatten() { */ public CVector toVector() { CNumber[] entries = new CNumber[this.entries.length]; - ArrayUtils.copy2CNumber(this.entries, entries); + System.arraycopy(this.entries, 0, entries, 0, entries.length); return new CVector(entries); } @@ -654,7 +654,7 @@ public CMatrix toMatrix(Shape matShape) { ParameterChecks.assertBroadcastable(shape, matShape); ParameterChecks.assertRank(2, matShape); - return new CMatrix(matShape, ArrayUtils.copyOf(entries)); + return new CMatrix(matShape, Arrays.copyOf(entries, entries.length)); } @@ -668,7 +668,7 @@ public CMatrix toMatrix() { CMatrix mat; CNumber[] entries = new CNumber[this.entries.length]; - ArrayUtils.copy2CNumber(this.entries, entries); + System.arraycopy(this.entries, 0, entries, 0, entries.length); if(this.getRank()==2) { mat = new CMatrix(this.shape, entries); diff --git a/src/main/java/org/flag4j/arrays/dense/CVector.java b/src/main/java/org/flag4j/arrays/dense/CVector.java index 51f3c5476..b0a04cc1a 100644 --- a/src/main/java/org/flag4j/arrays/dense/CVector.java +++ b/src/main/java/org/flag4j/arrays/dense/CVector.java @@ -43,6 +43,8 @@ import org.flag4j.operations.dense_sparse.coo.real_complex.RealComplexDenseSparseVectorOperations; import org.flag4j.util.*; +import java.util.Arrays; + /** * Complex dense vector. This class is mostly equivalent to a rank 1 complex tensor. */ @@ -61,7 +63,7 @@ public class CVector extends ComplexDenseTensorBase */ public CVector(int size) { super(new Shape(size), new CNumber[size]); - ArrayUtils.fillZeros(super.entries); + Arrays.fill(super.entries, CNumber.ZERO); this.size = shape.get(0); } @@ -85,7 +87,7 @@ public CVector(int size, double fillValue) { */ public CVector(int size, CNumber fillValue) { super(new Shape(size), new CNumber[size]); - ArrayUtils.fill(super.entries, fillValue); + Arrays.fill(super.entries, fillValue); this.size = shape.get(0); } @@ -139,7 +141,7 @@ public CVector(Vector a) { */ public CVector(CVector a) { super(a.shape, new CNumber[a.totalEntries().intValue()]); - ArrayUtils.copy2CNumber(a.entries, super.entries); + System.arraycopy(a.entries, 0, super.entries, 0, a.entries.length); this.size = shape.get(0); } @@ -186,6 +188,32 @@ public CVector add(CooCVector B) { } + /** + * Computes the element-wise addition between this vector and the specified vector and stores the result + * in this vector. + * + * @param B Vector to add to this vector. + * @throws IllegalArgumentException If this vector and the specified vector have different lengths. + */ + @Override + public void addEq(Vector B) { + RealComplexDenseOperations.addEq(this.entries, this.shape, B.entries, B.shape); + } + + + /** + * Computes the element-wise subtraction between this vector and the specified vector and stores the result + * in this vector. + * + * @param B Vector to subtract this vector. + * @throws IllegalArgumentException If this vector and the specified vector have different lengths. + */ + @Override + public void subEq(Vector B) { + RealComplexDenseOperations.subEq(this.entries, this.shape, B.entries, B.shape); + } + + /** * Computes the element-wise addition between this vector and the specified vector. * @@ -365,7 +393,7 @@ public CMatrix extend(int n, int axis) { if(axis==0) { extended = new CMatrix(n, this.size); for(int i=0; i - implements MatrixMixin, + implements MatrixMixin, RealMatrixMixin, DenseMatrixMixin { @@ -1759,7 +1759,9 @@ public CMatrix elemMult(CMatrix B) { * Computes the element-wise multiplication (Hadamard product) between two matrices. * * @param B Second matrix in the element-wise multiplication. + * * @return The result of element-wise multiplication of this matrix with the matrix B. + * * @throws IllegalArgumentException If this matrix and B have different shapes. */ @Override @@ -1956,7 +1958,7 @@ public CMatrix addToEachCol(CVector b) { for(int i=0; i= 0) - System.arraycopy(entries, i*numCols, stacked.entries, i*stacked.numCols, numCols); + System.arraycopy(entries, i*numCols, stacked.entries, i*stacked.numCols, numCols); } // Copy elements from b vector. @@ -2498,14 +2512,17 @@ public CMatrix augment(CVector b) { // Copy elements of this matrix. for(int i=0; i maxList) { // Get last entry in the column now value = StringUtils.ValueOfRound(this.get(i, this.numCols-1), PrintOptions.getPrecision()); - width = PrintOptions.getPadding() + maxList.get(maxList.size()-1); + width = PrintOptions.getPadding() + maxList.getLast(); value = PrintOptions.useCentering() ? StringUtils.center(value, width) : value; result.append(String.format("%-" + width + "s]", value)); @@ -3133,12 +3153,12 @@ public String toString() { List maxList = new ArrayList<>(colStopIndex + 1); for (int j = 0; j < colStopIndex; j++) { maxList.add(CNumberUtils.maxStringLength(this.getCol(j).entries, rowStopIndex)); - totalRowLength += maxList.get(maxList.size() - 1); + totalRowLength += maxList.getLast(); } if (colStopIndex < this.numCols) { maxList.add(CNumberUtils.maxStringLength(this.getCol(this.numCols - 1).entries)); - totalRowLength += maxList.get(maxList.size() - 1); + totalRowLength += maxList.getLast(); } if (colStopIndex < this.numCols - 1) { diff --git a/src/main/java/org/flag4j/arrays/dense/Vector.java b/src/main/java/org/flag4j/arrays/dense/Vector.java index f150f3f97..ed937522e 100644 --- a/src/main/java/org/flag4j/arrays/dense/Vector.java +++ b/src/main/java/org/flag4j/arrays/dense/Vector.java @@ -410,7 +410,7 @@ public Vector join(Vector b) { public CVector join(CVector b) { CNumber[] entries = new CNumber[this.size+b.size]; ArrayUtils.arraycopy(this.entries, 0, entries, 0, this.size); - ArrayUtils.arraycopy(b.entries, 0, entries, this.size, b.size); + System.arraycopy(b.entries, 0, entries, this.size, b.size); return new CVector(entries); } @@ -453,7 +453,7 @@ public CVector join(CooCVector b) { int index; for(int i=0; i - implements MatrixMixin, + implements MatrixMixin, ComplexMatrixMixin { /** @@ -365,7 +365,7 @@ public CooCMatrix(Shape shape, List entries, List rowIndices, public CooCMatrix(CooCMatrix A) { super(A.shape, A.nonZeroEntries(), - ArrayUtils.copyOf(A.entries), + Arrays.copyOf(A.entries, A.entries.length), A.rowIndices.clone(), A.colIndices.clone() ); @@ -532,7 +532,7 @@ public CooCMatrix transpose() { public CooCMatrix T() { CooCMatrix transpose = new CooCMatrix( shape.swapAxes(0, 1), - ArrayUtils.copyOf(entries), + Arrays.copyOf(entries, entries.length), colIndices.clone(), rowIndices.clone() ); @@ -569,7 +569,7 @@ public CNumber get(int... indices) { public CooCMatrix copy() { return new CooCMatrix( shape, - ArrayUtils.copyOf(entries), + Arrays.copyOf(entries, entries.length), rowIndices.clone(), colIndices.clone() ); @@ -647,7 +647,7 @@ public void sortIndices() { @Override public CMatrix toDense() { CNumber[] entries = new CNumber[totalEntries().intValueExact()]; - ArrayUtils.fillZeros(entries); + Arrays.fill(entries, CNumber.ZERO); int row; int col; @@ -1245,7 +1245,7 @@ public CVector sumCols() { int nnz = entries.length; for(int i=0; i= 0) { // Then the index was found in the sparse vector. destIndices = this.indices.clone(); - destEntries = ArrayUtils.copyOf(entries); + destEntries = Arrays.copyOf(entries, entries.length); destEntries[idx] = value; } else{ @@ -344,7 +345,7 @@ public CooVector toRealSafe() { public CooCTensor toTensor() { return new CooCTensor( this.shape, - ArrayUtils.copyOf(entries), + Arrays.copyOf(entries, entries.length), RealDenseTranspose.blockedIntMatrix(new int[][]{this.indices.clone()}) ); } @@ -415,7 +416,7 @@ public CooCVector flatten() { @Override public CVector join(Vector b) { CNumber[] newEntries = new CNumber[this.size + b.entries.length]; - ArrayUtils.fillZeros(newEntries); + Arrays.fill(newEntries, CNumber.ZERO); // Copy over sparse values. for(int i=0; i - implements MatrixMixin, + implements MatrixMixin, RealMatrixMixin { @@ -1669,10 +1669,10 @@ public CMatrix stack(CMatrix B) { CNumber[] destEntries = new CNumber[destShape.totalEntries().intValueExact()]; // Copy values from B - ArrayUtils.arraycopy(B.entries, 0, destEntries, shape.totalEntries().intValueExact(), B.entries.length); + System.arraycopy(B.entries, 0, destEntries, shape.totalEntries().intValueExact(), B.entries.length); // Copy non-zero values from this matrix (and set zero values to zero.). - ArrayUtils.fillZeros(destEntries, 0, shape.totalEntries().intValueExact()); + Arrays.fill(destEntries, 0, shape.totalEntries().intValueExact(), CNumber.ZERO); for(int i=0; i - implements MatrixMixin, + implements MatrixMixin, ComplexMatrixMixin { /** @@ -182,7 +182,7 @@ public CsrCMatrix(Shape shape, double[] entries, int[] rowPointers, int[] colInd * @param src Matrix to create copy of. */ public CsrCMatrix(CsrCMatrix src) { - super(src.shape, src.entries.length, ArrayUtils.copyOf(src.entries), + super(src.shape, src.entries.length, Arrays.copyOf(src.entries, src.entries.length), src.rowPointers.clone(), src.colIndices.clone()); this.rowPointers = indices[0]; @@ -209,7 +209,7 @@ public CsrCMatrix(CooCMatrix src) { this.numRows = shape.get(0); this.numCols = shape.get(1); - ArrayUtils.copy2CNumber(src.entries, entries); // Deep copy non-zero entries. + System.arraycopy(src.entries, 0, entries, 0, entries.length); // Copy non-zero entries. // Copy the non-zero entries anc column indices. Count number of entries per row. for(int i=0; i= 0) return entries[loc]; - else return CNumber.zero(); + else return CNumber.ZERO; } @@ -1015,10 +1015,8 @@ public CsrCMatrix elemMult(CMatrix B) { * @throws IllegalArgumentException If this matrix and B have different shapes. */ @Override - public CooCMatrix elemMult(CooCMatrix B) { - // TODO: This should return a CsrCMatrix. Need to add complex sparse type as generic type parameter to MatrixOperationsMixin - // for this to work properly. - return this.elemMult(B.toCsr()).toCoo(); + public CsrCMatrix elemMult(CooCMatrix B) { + return this.elemMult(B.toCsr()); } @@ -1257,7 +1255,7 @@ public CVector sumCols() { int rowStop = rowPointers.length-1; for(int i=0; i= colStart) { - row.add(entries[j].copy()); + row.add(entries[j]); indices.add(col-colStart); } } @@ -1896,7 +1894,7 @@ public CNumber trace() { public CNumber tr() { ParameterChecks.assertSquareMatrix(shape); - CNumber trace = new CNumber(); + CNumber trace = CNumber.ZERO; for(int i=0; i= 0) { - destEntries.add(entries[loc].copy()); + destEntries.add(entries[loc]); destIndices.add(i); } } @@ -1975,13 +1973,13 @@ protected CsrMatrix makeRealTensor(Shape shape, double[] entries, int[][] indice @Override public CMatrix toDense() { CNumber[] dest = new CNumber[shape.totalEntries().intValueExact()]; - ArrayUtils.fillZeros(dest); + Arrays.fill(dest, CNumber.ZERO); for(int i=0; i - implements MatrixMixin, + implements MatrixMixin, RealMatrixMixin { @@ -544,8 +544,8 @@ public CsrCMatrix elemMult(CMatrix B) { * @throws IllegalArgumentException If this matrix and B have different shapes. */ @Override - public CooCMatrix elemMult(CooCMatrix B) { - return this.elemMult(B.toCsr()).toCoo(); + public CsrCMatrix elemMult(CooCMatrix B) { + return this.elemMult(B.toCsr()); } diff --git a/src/main/java/org/flag4j/arrays/sparse/PermutationMatrix.java b/src/main/java/org/flag4j/arrays/sparse/PermutationMatrix.java index 11e16eaa6..588f270df 100644 --- a/src/main/java/org/flag4j/arrays/sparse/PermutationMatrix.java +++ b/src/main/java/org/flag4j/arrays/sparse/PermutationMatrix.java @@ -232,7 +232,7 @@ public CMatrix leftMult(CMatrix src) { for(int rowIdx=0; rowIdxA complex number stored in rectangular form with both the real and imaginary components stored as a 64-bit floats.

    + * + *

    A {@link CNumber} is immutable.

    */ public class CNumber extends Number { // Several constants are provided for convenience. /** * The complex number with zero imaginary and real parts. */ - private static final CNumber ZERO = new CNumber(); + public static final CNumber ZERO = new CNumber(0); /** * The complex number with zero imaginary part and one real part. */ - private static final CNumber ONE = new CNumber(1); + public static final CNumber ONE = new CNumber(1); /** * The complex number with zero imaginary part and two real part. */ - private static final CNumber TWO = new CNumber(2); + public static final CNumber TWO = new CNumber(2); /** * The complex number with zero imaginary part and negative one real part. */ - private static final CNumber NEGATIVE_ONE = new CNumber(1); + public static final CNumber NEGATIVE_ONE = new CNumber(1); /** * The real double value closer to pi than any other. */ - private static final CNumber PI = new CNumber(Math.PI); + public static final CNumber PI = new CNumber(Math.PI); /** * The real double value closer to the mathematical constant e than any other. */ - private static final CNumber E = new CNumber(Math.E); + public static final CNumber E = new CNumber(Math.E); /** * The double value closer than any other to the square root of 2 */ - private static final CNumber ROOT_TWO = new CNumber(Math.sqrt(2)); + public static final CNumber ROOT_TWO = new CNumber(Math.sqrt(2)); /** * The double value closer than any other to the square root of 3 */ - private static final CNumber ROOT_THREE = new CNumber(Math.sqrt(3)); + public static final CNumber ROOT_THREE = new CNumber(Math.sqrt(3)); /** * The imaginary unit i. */ - private static final CNumber IMAGINARY_UNIT = new CNumber(0, 1); + public static final CNumber IMAGINARY_UNIT = new CNumber(0, 1); /** * The additive inverse of the imaginary unit, -i. */ - private static final CNumber INV_IMAGINARY_UNIT = new CNumber(0, -1); + public static final CNumber INV_IMAGINARY_UNIT = new CNumber(0, -1); /** * The maximum real double value 1.7976931348623157E308. */ - private static final CNumber MAX_REAL = new CNumber(Double.MAX_VALUE); + public static final CNumber MAX_REAL = new CNumber(Double.MAX_VALUE); /** * The minimum real double value 4.9E-324 */ - private static final CNumber MIN_REAL = new CNumber(Double.MIN_VALUE); + public static final CNumber MIN_REAL = new CNumber(Double.MIN_VALUE); /** * The smallest possible real normal double 2.2250738585072014E-308. */ - private static final CNumber MIN_REAL_NORMAL = new CNumber(Double.MIN_NORMAL); + public static final CNumber MIN_REAL_NORMAL = new CNumber(Double.MIN_NORMAL); /** * Complex number with real part equal to {@link Double#POSITIVE_INFINITY}. */ - private static final CNumber POSITIVE_INFINITY = new CNumber(Double.POSITIVE_INFINITY); + public static final CNumber POSITIVE_INFINITY = new CNumber(Double.POSITIVE_INFINITY); /** * Complex number with real part equal to {@link Double#NEGATIVE_INFINITY}. */ - private static final CNumber NEGATIVE_INFINITY = new CNumber(Double.NEGATIVE_INFINITY); + public static final CNumber NEGATIVE_INFINITY = new CNumber(Double.NEGATIVE_INFINITY); /** * Complex number with real and imaginary parts equal to {@link Double#NaN}. */ - private static final CNumber NaN = new CNumber(Double.NaN, Double.NaN); + public static final CNumber NaN = new CNumber(Double.NaN, Double.NaN); /** * Real component of the complex number. */ - public double re; + public final double re; /** * Imaginary component of the complex number. */ - public double im; - - - /** - * Constructs a complex number with value and magnitude 0. - */ - public CNumber() { - re = 0; - im = 0; - } + public final double im; /** @@ -143,16 +132,6 @@ public CNumber(double re, double im) { } - /** - * Creates a new complex number which is the copy of the specified complex number. - * @param num The complex number to copy. - */ - public CNumber(CNumber num) { - this.re = num.re; - this.im = num.im; - } - - /** * Constructs a complex number from a string of the form {@code "a +/- bi"} where {@code a} and {b} are real values and either may be * omitted. i.e. {@code "a", "bi", "a +/- i"}, and {@code "i"} are all also valid. @@ -163,16 +142,6 @@ public CNumber(String num) { this.re = complexNum.re; this.im = complexNum.im; } - - - - /** - * Creates a copy of this complex number. Same as {@link #CNumber(CNumber)}. - * @return A complex number with real and complex components equivalent to this complex number. - */ - public CNumber copy() { - return new CNumber(this); - } /** @@ -206,14 +175,14 @@ public boolean equalsNumber(Number b) { /** - * Checks if a complex number is equal to some double value. That is, if the real component of this complex number + * Checks if a complex number is numerically equal to some double value. That is, if the real component of this complex number * is zero and the real component is equivalent to the double parameter. * @param b The double to compare. * @return True if b is a complex number and is equivalent to this complex number in both the real and * imaginary components. False, otherwise. */ public boolean equals(double b) { - return this.im==0 && this.re==b; + return im==0 && re==b; } @@ -226,8 +195,8 @@ public int hashCode() { final int hashPrime1 = 7; final int hashPrime2 = 31; - int hash = hashPrime2*hashPrime1 + Double.hashCode(this.re); - hash = hashPrime2*hash + Double.hashCode(this.im); + int hash = hashPrime2*hashPrime1 + Double.hashCode(re); + hash = hashPrime2*hash + Double.hashCode(im); return hash; } @@ -328,7 +297,7 @@ public long longImaginaryValue() { * @return The result of adding this complex number with b. */ public CNumber add(CNumber b) { - return new CNumber(this.re + b.re, this.im + b.im); + return new CNumber(re + b.re, im + b.im); } @@ -338,48 +307,7 @@ public CNumber add(CNumber b) { * @return The result of adding b to this complex number. */ public CNumber add(double b) { - return new CNumber(this.re + b, this.im); - } - - - /** - * Adds a specified number to this complex number and stores the result in this complex number. - * @param b The value to add to this complex number. - * @return A reference to this complex number. - */ - public CNumber addEq(CNumber b) { - this.re += b.re; - this.im += b.im; - - return this; - } - - - /** - * Adds a specified number to this complex number and stores the result in this complex number. - * @param b The value to add to this complex number. - */ - public void addEq(double b) { - re += b; - } - - - /** - * Subtracts a specified number from this complex number and stores the result in this complex number. - * @param b The value to add to this complex number. - */ - public void subEq(CNumber b) { - re -= b.re; - im -= b.im; - } - - - /** - * Subtracts a specified number to this complex number and stores the result in this complex number. - * @param b The value to add to this complex number. - */ - public void subEq(double b) { - re -= b; + return new CNumber(re + b, im); } @@ -389,7 +317,7 @@ public void subEq(double b) { * @return The result of subtracting b from this complex number. */ public CNumber sub(CNumber b) { - return new CNumber(this.re - b.re, this.im - b.im); + return new CNumber(re - b.re, im - b.im); } @@ -399,7 +327,7 @@ public CNumber sub(CNumber b) { * @return The result of subtracting b from this complex number. */ public CNumber sub(double b) { - return new CNumber(this.re - b, this.im); + return new CNumber(re - b, im); } @@ -442,32 +370,7 @@ public CNumber mult(CNumber b) { * @return Product of this complex number with b. */ public CNumber mult(double b) { - return new CNumber(this.re*b, this.im*b); - } - - - /** - * Multiplies this complex number with another complex number and stores the result in this {@link CNumber}. - * - * @param b Second complex number in the product. - */ - public void multEq(CNumber b) { - double tempRe = re*b.re - im*b.im; - double tempIm = re*b.im + im*b.re; - - re = tempRe; - im = tempIm; - } - - - /** - * Multiplies this complex number with another complex number and stores the result in this {@link CNumber}. - * - * @param b Second complex number in the product. - */ - public void multEq(double b) { - re *= b; - im *= b; + return new CNumber(re*b, im*b); } @@ -481,17 +384,17 @@ public CNumber div(CNumber b) { CNumber quotient; if (this.equals(ZERO) && !b.equals(ZERO)) { - quotient = new CNumber(); + quotient = ZERO; } else if(b.isReal() && !b.equals(ZERO)) { - quotient = new CNumber(this.re/b.re, this.im/b.re); + quotient = new CNumber(re/b.re, im/b.re); } else { double divisor = b.re*b.re + b.im*b.im; quotient = new CNumber( - (this.re*b.re + this.im*b.im) / divisor, - (this.im*b.re - this.re*b.im) / divisor); + (re*b.re + im*b.im) / divisor, + (im*b.re - re*b.im) / divisor); } return quotient; @@ -505,52 +408,8 @@ public CNumber div(CNumber b) { * {@link CNumber#NaN} is returned. */ public CNumber div(double b) { - CNumber quotient; - - if (this.equals(ZERO) && b != 0) { - quotient = new CNumber(); - } - else { - quotient = new CNumber(this.re/b, this.im/b); - } - - return quotient; - } - - - /** - * Computes the division of a complex numbers with a double value and stores in this complex number. - * @param b The divisor for the complex division. - */ - public void divEq(double b) { - this.re/=b; - this.im/=b; - } - - - /** - * Computes the division of a complex numbers with a double value and stores in this complex number. - * @param b The divisor for the complex division. - */ - public void divEq(CNumber b) { - boolean bIsNotZero = !b.equals(ZERO); - - if(re==0 && im==0 && bIsNotZero) { - re = im = 0; - - } else if(im == 0 && bIsNotZero) { - re/=b.re; - im/=b.re; - - } else { - double divisor = b.re*b.re + b.im*b.im; - - double newRe = (re*b.re + im*b.im) / divisor; - double newIm = (im*b.re - re*b.im) / divisor; - - re = newRe; - im = newIm; - } + if(this.equals(ZERO) && b != 0) return ZERO; + else return new CNumber(re/b, im/b); } @@ -596,7 +455,7 @@ public double mag() { * @return The additive inverse of this complex number. */ public CNumber addInv() { - return new CNumber(-this.re, -this.im); + return new CNumber(-re, -im); } @@ -614,7 +473,7 @@ public CNumber multInv() { * @return The complex conjugate of this complex number. */ public CNumber conj() { - return new CNumber(this.re, -this.im); + return new CNumber(re, -im); } @@ -908,17 +767,13 @@ public static CNumber sqrt(CNumber num) { * @return If the number is zero then this function returns zero. Otherwise, returns the number divided by its magnitude. */ public static CNumber sgn(CNumber value) { - CNumber result; - - if(value.equals(CNumber.ZERO)) { - result = new CNumber(); + if(value.equals(ZERO)) { + return value; } else { double magnitude = value.mag(); return new CNumber(value.re / magnitude, value.im / magnitude); } - - return result; } @@ -1315,9 +1170,9 @@ public static CNumber round(CNumber n, int decimals) { */ public static CNumber roundToZero(CNumber n, double tol) { if(nearZero(n, tol)) { - return new CNumber(); + return ZERO; } else { - return n.copy(); + return n; } } @@ -1631,7 +1486,6 @@ public boolean isInfinite() { } - /** * Gets the real component of this complex number. * @return The real component of this complex number. @@ -1660,150 +1514,6 @@ public static int length(CNumber a) { } - /** - * Gets the complex number equivalent to zero. - * @return The complex number which is equivalent to zero. - */ - public static CNumber zero() { - return ZERO.copy(); - } - - - /** - * Gets the complex number equivalent to one. - * @return The complex number equivalent to one. - */ - public static CNumber one() { - return ONE.copy(); - } - - - /** - * Gets the complex number equivalent to two. - * @return The complex number equivalent to two. - */ - public static CNumber two() { - return TWO.copy(); - } - - - /** - * Gets the complex number equivalent to negative one. - * @return The complex number equivalent to negative one. - */ - public static CNumber negOne() { - return NEGATIVE_ONE.copy(); - } - - - /** - * Gets the complex number equivalent to the square root of two. - * @return The complex number equivalent to the square root of two. - */ - public static CNumber rootTwo() { - return ROOT_TWO.copy(); - } - - - /** - * Gets the complex number equivalent to the square root of three. - * @return The complex number equivalent to the square root of three. - */ - public static CNumber rootThree() { - return ROOT_THREE.copy(); - } - - - /** - * Gets the complex number equivalent to {@link Double#POSITIVE_INFINITY}. - * @return The complex number equivalent to {@link Double#POSITIVE_INFINITY}. - */ - public static CNumber posInfinity() { - return POSITIVE_INFINITY.copy(); - } - - - /** - * Gets the complex number equivalent to {@link Double#NEGATIVE_INFINITY}. - * @return The complex number equivalent to {@link Double#NEGATIVE_INFINITY}. - */ - public static CNumber negInfinity() { - return NEGATIVE_INFINITY.copy(); - } - - - /** - * Gets the complex number equivalent to {@link Math#PI}. - * @return The complex number equivalent to {@link Math#PI}. - */ - public static CNumber pi() { - return PI.copy(); - } - - - /** - * Gets the complex number equivalent to {@link Math#E}. - * @return The complex number equivalent to {@link Math#E}. - */ - public static CNumber eulers() { - return E.copy(); - } - - - /** - * Gets the complex number equivalent to {@link Double#NaN}. - * @return The complex number equivalent to {@link Double#NaN}. - */ - public static CNumber nan() { - return NaN.copy(); - } - - - /** - * Gets the complex number equivalent to {@code i}. - * @return The complex number equivalent to {@code i}. - */ - public static CNumber imagUnit() { - return IMAGINARY_UNIT.copy(); - } - - - /** - * Gets the complex number equivalent to {@code -i}. - * @return The complex number equivalent to {@code -i}. - */ - public static CNumber negImagUnit() { - return INV_IMAGINARY_UNIT.copy(); - } - - - /** - * Gets the complex number equivalent to {@link Double#MIN_VALUE}. - * @return The complex number equivalent to {@link Double#MIN_VALUE}. - */ - public static CNumber minReal() { - return MIN_REAL.copy(); - } - - - /** - * Gets the complex number equivalent to {@link Double#MIN_NORMAL}. - * @return The complex number equivalent to {@link Double#MIN_NORMAL}. - */ - public static CNumber minRealNormal() { - return MIN_REAL_NORMAL.copy(); - } - - - /** - * Gets the complex number equivalent to {@link Double#MAX_VALUE}. - * @return The complex number equivalent to {@link Double#MAX_VALUE}. - */ - public static CNumber maxReal() { - return MAX_REAL.copy(); - } - - /** * Converts the complex number to a string representation. * @return A string representation of the complex number. @@ -1814,7 +1524,7 @@ public String toString() { double real = re; double imaginary = im; - if (real != 0) { + if(real != 0) { if (real % 1 == 0) { result += (int) real; } else { diff --git a/src/main/java/org/flag4j/core/MatrixMixin.java b/src/main/java/org/flag4j/core/MatrixMixin.java index 5d9ec86f8..a17105047 100644 --- a/src/main/java/org/flag4j/core/MatrixMixin.java +++ b/src/main/java/org/flag4j/core/MatrixMixin.java @@ -30,23 +30,24 @@ /** * This interface specified methods which all matrices should implement. * @param Matrix type. - * @param Dense Matrix type. - * @param Sparse Matrix type. - * @param Complex Matrix type. - * @param Real Matrix type. + * @param Dense matrix type. + * @param Sparse matrix type. + * @param Complex matrix type. + * @param Complex sparse matrix type. + * @param Real matrix type. * @param Matrix entry type. * @param Vector type equivalent. * @param Dense vector type. */ public interface MatrixMixin< T, - U, V, W, X extends Number, + U, V, W, VV, X extends Number, TT extends VectorMixin, UU extends VectorMixin> extends MatrixPropertiesMixin, MatrixComparisonsMixin, MatrixManipulationsMixin, - MatrixOperationsMixin { + MatrixOperationsMixin { /** * Gets the number of rows in this matrix. diff --git a/src/main/java/org/flag4j/core/MatrixOperationsMixin.java b/src/main/java/org/flag4j/core/MatrixOperationsMixin.java index 0c5899bda..25f6108b6 100644 --- a/src/main/java/org/flag4j/core/MatrixOperationsMixin.java +++ b/src/main/java/org/flag4j/core/MatrixOperationsMixin.java @@ -37,16 +37,17 @@ /** * This interface specifies operations which should be implemented by any matrix (rank 2 tensor). * @param Matrix type. - * @param Dense Matrix type. - * @param Sparse Matrix type. - * @param Complex Matrix type. + * @param Dense matrix type. + * @param Sparse matrix type. + * @param Complex matrix type. + * @param Complex sparse matrix type. * @param Matrix entry type. * @param Vector type equivalent. * @param Dense vector type. */ public interface MatrixOperationsMixin< T, - U, V, W, X extends Number, + U, V, W, Y, X extends Number, TT extends VectorMixin, UU extends VectorMixin> { @@ -397,7 +398,7 @@ default CMatrix multTranspose(CsrCMatrix B) { * @return The result of element-wise multiplication of this matrix with the matrix B. * @throws IllegalArgumentException If this matrix and B have different shapes. */ - CooCMatrix elemMult(CooCMatrix B); + Y elemMult(CooCMatrix B); /** diff --git a/src/main/java/org/flag4j/core/TensorExclusiveMixin.java b/src/main/java/org/flag4j/core/TensorExclusiveMixin.java index 80ccaf2e2..e595e2763 100644 --- a/src/main/java/org/flag4j/core/TensorExclusiveMixin.java +++ b/src/main/java/org/flag4j/core/TensorExclusiveMixin.java @@ -59,7 +59,7 @@ public interface TensorExclusiveMixin< * and {@code bAxis}. * @throws IllegalArgumentException If either axis is out of bounds of the corresponding tensor. */ - default T tensorDot(T src2, int axes){ + default U tensorDot(T src2, int axes){ int rank2 = src2.getRank(); int[] src1Axes = ArrayUtils.intRange(0, axes); int[] src2Axes = ArrayUtils.intRange(rank2-axes, rank2); @@ -79,7 +79,7 @@ default T tensorDot(T src2, int axes){ * and {@code bAxis}. * @throws IllegalArgumentException If either axis is out of bounds of the corresponding tensor. */ - default T tensorDot(T src2, int aAxis, int bAxis) { + default U tensorDot(T src2, int aAxis, int bAxis) { return tensorDot(src2, new int[]{aAxis}, new int[]{bAxis}); } @@ -96,7 +96,7 @@ default T tensorDot(T src2, int aAxis, int bAxis) { * @throws IllegalArgumentException If {@code aAxes} and {@code bAxes} do not match in length, or if any of the axes * are out of bounds for the corresponding tensor. */ - T tensorDot(T src2, int[] aAxes, int[] bAxes); + U tensorDot(T src2, int[] aAxes, int[] bAxes); /** @@ -108,7 +108,15 @@ default T tensorDot(T src2, int aAxis, int bAxis) { * @throws IllegalArgumentException If this tensors shape along the last axis does not match {@code src2} shape * along the second-to-last axis. */ - T tensorDot(T src2); + default U tensorDot(T src2) { + int src1Rank = this.getRank(); + int src2Rank = src2.getRank(); + + // If second tensor has rank one, then use zero axis. Otherwise, use second to last axis. + src2Rank = (src2Rank==1) ? 0 : src2Rank-2; + + return this.tensorDot(src2, new int[]{src1Rank - 1}, new int[]{src2Rank}); + } /** @@ -318,4 +326,14 @@ default U tensorInv(){ * @see #tensorInv() */ U tensorInv(int numIndices); + + + /** + *

    Gets the rank of this tensor. The rank is the number of indices required to uniquely identify an element in the tensor.

    + * + *

    Note, this differs from matrix rank.

    + * + * @return The rank of this tensor. + */ + int getRank(); } diff --git a/src/main/java/org/flag4j/core/dense_base/ComplexDenseTensorBase.java b/src/main/java/org/flag4j/core/dense_base/ComplexDenseTensorBase.java index ff64f7d2e..f050ec281 100644 --- a/src/main/java/org/flag4j/core/dense_base/ComplexDenseTensorBase.java +++ b/src/main/java/org/flag4j/core/dense_base/ComplexDenseTensorBase.java @@ -32,7 +32,6 @@ import org.flag4j.operations.common.complex.ComplexProperties; import org.flag4j.operations.dense.complex.*; import org.flag4j.operations.dense.real_complex.RealComplexDenseOperations; -import org.flag4j.util.ArrayUtils; import org.flag4j.util.ParameterChecks; import java.util.Arrays; @@ -246,7 +245,7 @@ public Y toRealSafe() { */ @Override public T copy() { - return makeTensor(this.shape, ArrayUtils.copyOf(entries)); + return makeTensor(this.shape, Arrays.copyOf(entries, entries.length)); } diff --git a/src/main/java/org/flag4j/io/TensorWriter.java b/src/main/java/org/flag4j/io/TensorWriter.java index 53632fa53..1d5c1d6e5 100644 --- a/src/main/java/org/flag4j/io/TensorWriter.java +++ b/src/main/java/org/flag4j/io/TensorWriter.java @@ -78,7 +78,7 @@ public static boolean write(String fileName, TensorBase src * @param delimiter Delimiter to use in csv file. * @return True if the write was successful. False if the write failed. */ - public static boolean toCsv(String fileName, MatrixMixin src, String delimiter) { + public static boolean toCsv(String fileName, MatrixMixin src, String delimiter) { boolean successfulWrite = true; int numRows = src.numRows(); @@ -107,7 +107,7 @@ public static boolean toCsv(String fileName, MatrixMixin sr * @param src Matrix to write to csv file. * @return True if the write was successful. False if the write failed. */ - public static boolean toCsv(String fileName, MatrixMixin src) { + public static boolean toCsv(String fileName, MatrixMixin src) { return toCsv(fileName, src, ", "); } } diff --git a/src/main/java/org/flag4j/linalg/Eigen.java b/src/main/java/org/flag4j/linalg/Eigen.java index 3e5c204d5..30f246c72 100644 --- a/src/main/java/org/flag4j/linalg/Eigen.java +++ b/src/main/java/org/flag4j/linalg/Eigen.java @@ -35,9 +35,10 @@ import org.flag4j.linalg.solvers.exact.triangular.ComplexBackSolver; import org.flag4j.linalg.solvers.exact.triangular.RealBackSolver; import org.flag4j.operations.common.real.AggregateReal; -import org.flag4j.util.ArrayUtils; import org.flag4j.util.ParameterChecks; +import java.util.Arrays; + import static org.flag4j.util.Flag4jConstants.EPS_F64; /** @@ -71,7 +72,7 @@ public static CNumber[] get2x2EigenValues(double a11, double a12, double a21, do double maxAbs = AggregateReal.maxAbs(a11, a12, a21, a22); if(maxAbs == 0) { - ArrayUtils.fillZeros(lambda); + Arrays.fill(lambda, CNumber.ZERO); return lambda; } else { a11 /= maxAbs; @@ -151,34 +152,34 @@ public static CNumber[] get2x2EigenValues(CNumber a11, CNumber a12, CNumber a21, double maxAbs = Math.max(Math.max(a11.mag(), a12.mag()), Math.max(a21.mag(), a22.mag())); if(maxAbs == 0) { - lambda[0] = new CNumber(0, 0); - lambda[1] = new CNumber(0, 0); + lambda[0] = CNumber.ZERO; + lambda[1] = CNumber.ZERO; return lambda; } // Scale the matrix to avoid overflow/underflow - a11 = a11.div(new CNumber(maxAbs, 0)); - a12 = a12.div(new CNumber(maxAbs, 0)); - a21 = a21.div(new CNumber(maxAbs, 0)); - a22 = a22.div(new CNumber(maxAbs, 0)); + a11 = a11.div(maxAbs); + a12 = a12.div(maxAbs); + a21 = a21.div(maxAbs); + a22 = a22.div(maxAbs); // Trace and determinant for the 2x2 matrix CNumber trace = a11.add(a22); CNumber det = a11.mult(a22).sub(a12.mult(a21)); // Compute the middle term of the quadratic equation - CNumber middleTerm = trace.mult(trace).div(new CNumber(4, 0)).sub(det); + CNumber middleTerm = trace.mult(trace).div(4).sub(det); // Compute the square root of the middle term CNumber sqrtMiddle = CNumber.sqrt(middleTerm); // Compute eigenvalues - lambda[0] = trace.div(new CNumber(2)).add(sqrtMiddle); - lambda[1] = trace.div(new CNumber(2)).sub(sqrtMiddle); + lambda[0] = trace.div(2).add(sqrtMiddle); + lambda[1] = trace.div(2).sub(sqrtMiddle); // Scale back the eigenvalues - lambda[0] = lambda[0].mult(new CNumber(maxAbs, 0)); - lambda[1] = lambda[1].mult(new CNumber(maxAbs, 0)); + lambda[0] = lambda[0].mult(new CNumber(maxAbs)); + lambda[1] = lambda[1].mult(new CNumber(maxAbs)); return lambda; } @@ -325,7 +326,7 @@ private static CVector getEigenValues(CMatrix src, ComplexSchur schur) { // Extract eigenvalues of T. for(int m=0; m Matrix type to decompose. */ -public interface Decomposition> { +public interface Decomposition> { /** * Applies decomposition to the source matrix. diff --git a/src/main/java/org/flag4j/linalg/decompositions/chol/Cholesky.java b/src/main/java/org/flag4j/linalg/decompositions/chol/Cholesky.java index d34302674..4c2fe159c 100644 --- a/src/main/java/org/flag4j/linalg/decompositions/chol/Cholesky.java +++ b/src/main/java/org/flag4j/linalg/decompositions/chol/Cholesky.java @@ -39,7 +39,7 @@ * * @param The type of matrix to compute the Cholesky decomposition of. */ -public abstract class Cholesky> +public abstract class Cholesky> implements Decomposition { /** diff --git a/src/main/java/org/flag4j/linalg/decompositions/chol/ComplexCholesky.java b/src/main/java/org/flag4j/linalg/decompositions/chol/ComplexCholesky.java index 3981f0a02..02290193f 100644 --- a/src/main/java/org/flag4j/linalg/decompositions/chol/ComplexCholesky.java +++ b/src/main/java/org/flag4j/linalg/decompositions/chol/ComplexCholesky.java @@ -95,12 +95,12 @@ public ComplexCholesky decompose(CMatrix src) { lIndex1 = i*L.numCols; for(int j=0; j<=i; j++) { - sum = new CNumber(); + sum = CNumber.ZERO; lIndex2 = j*L.numCols; lIndex3 = lIndex1 + j; for(int k=0; kIf full pivoting is used, the decomposition will yield an additional permutation matrix {@code Q} such that * {@code PAQ=LU}.

    */ -public abstract class LU> implements Decomposition { +public abstract class LU> implements Decomposition { /** * Flag indicating what pivoting to use. diff --git a/src/main/java/org/flag4j/linalg/decompositions/schur/ComplexSchur.java b/src/main/java/org/flag4j/linalg/decompositions/schur/ComplexSchur.java index cbf3989a0..0a64a1295 100644 --- a/src/main/java/org/flag4j/linalg/decompositions/schur/ComplexSchur.java +++ b/src/main/java/org/flag4j/linalg/decompositions/schur/ComplexSchur.java @@ -56,7 +56,7 @@ public class ComplexSchur extends Schur { /** * The complex number equal to zero. */ - private final static CNumber ZERO = CNumber.zero(); + private final static CNumber ZERO = CNumber.ZERO; /** * For computing the norm of a column for use when computing Householder reflectors. @@ -231,8 +231,8 @@ protected CNumber computeExceptionalShift(int k) { */ protected void computeImplicitSingleShift(int k, CNumber shift) { int leftIdx = k-1; - shiftCol[0] = T.entries[leftIdx*numRows + leftIdx].copy().sub(shift); - shiftCol[1] = T.entries[k*numRows + leftIdx].copy(); + shiftCol[0] = T.entries[leftIdx*numRows + leftIdx].sub(shift); + shiftCol[1] = T.entries[k*numRows + leftIdx]; } @@ -255,8 +255,8 @@ protected void performSingleShift(int workingSize, CNumber shift) { applySingleShiftReflector(i, i>0); // Apply the reflector if needed. // Set values to be used in computing the next bulge chasing reflector. - p1 = T.entries[(i + 1)*numRows + i].copy(); - if(i < workingSize-1) p2 = T.entries[(i + 2)*numRows + i].copy(); + p1 = T.entries[(i + 1)*numRows + i]; + if(i < workingSize-1) p2 = T.entries[(i + 2)*numRows + i]; } } @@ -280,7 +280,7 @@ protected void applySingleShiftReflector(int i, boolean set) { if(set) { // Explicitly zeros out values which should be zeroed by the reflector. T.entries[i*numRows + i - 1] = norm.addInv(); - T.entries[(i+1)*numRows + i - 1] = CNumber.zero(); + T.entries[(i+1)*numRows + i - 1] = CNumber.ZERO; } } @@ -305,9 +305,9 @@ protected void performDoubleShift(int workingSize) { applyDoubleShiftReflector(i, i>0); // Apply the reflector if needed. // Set values to be used in computing the next bulge chasing reflector. - p1 = T.entries[(i + 1)*numRows + i].copy(); - p2 = T.entries[(i + 2)*numRows + i].copy(); - if(i < workingSize-2) p3 = T.entries[(i + 3)*numRows + i].copy(); + p1 = T.entries[(i + 1)*numRows + i]; + p2 = T.entries[(i + 2)*numRows + i]; + if(i < workingSize-2) p3 = T.entries[(i + 3)*numRows + i]; } // The last reflector in the bulge chase only acts on last two rows of the working matrix. @@ -329,25 +329,25 @@ protected void computeImplicitDoubleShift(int workingSize) { // Extract values from lower right 2x2 sub-matrix within the working size. int leftIdx = workingSize-1; - CNumber x11 = T.entries[leftIdx*numRows + leftIdx].copy(); - CNumber x12 = T.entries[leftIdx*numRows + workingSize].copy(); - CNumber x21 = T.entries[workingSize*numRows + leftIdx].copy(); - CNumber x22 = T.entries[workingSize*numRows + workingSize].copy(); + CNumber x11 = T.entries[leftIdx*numRows + leftIdx]; + CNumber x12 = T.entries[leftIdx*numRows + workingSize]; + CNumber x21 = T.entries[workingSize*numRows + leftIdx]; + CNumber x22 = T.entries[workingSize*numRows + workingSize]; // Extract top right entries of T for use in computing the shift p. - CNumber a11 = T.entries[0].copy(); - CNumber a12 = T.entries[1].copy(); - CNumber a21 = T.entries[numRows].copy(); - CNumber a22 = T.entries[numRows + 1].copy(); - CNumber a32 = T.entries[2*numRows + 1].copy(); + CNumber a11 = T.entries[0]; + CNumber a12 = T.entries[1]; + CNumber a21 = T.entries[numRows]; + CNumber a22 = T.entries[numRows + 1]; + CNumber a32 = T.entries[2*numRows + 1]; // Scale values to improve stability and help avoid possible over(under)flow issues. temp[0] = a11; temp[1] = a21; temp[2] = a12; temp[3] = a22; temp[4] = a32; temp[5] = x11; temp[6] = x22; temp[7] = x12; temp[8] = x21; double maxAbs = AggregateComplex.maxAbs(temp); - a11.divEq(maxAbs); a12.divEq(maxAbs); a21.divEq(maxAbs); a22.divEq(maxAbs); a32.divEq(maxAbs); - x11.divEq(maxAbs); x12.divEq(maxAbs); x21.divEq(maxAbs); x22.divEq(maxAbs); + a11 = a11.div(maxAbs); a12 = a12.div(maxAbs); a21 = a21.div(maxAbs); a22 = a22.div(maxAbs); a32 = a32.div(maxAbs); + x11 = x11.div(maxAbs); x12 = x12.div(maxAbs); x21 = x21.div(maxAbs); x22 = x22.div(maxAbs); CNumber[] rho = Eigen.get2x2EigenValues(x11, x12, x21, x22); // Compute shifts to be eigenvalues of trailing 2x2 sub-matrix. @@ -369,8 +369,8 @@ protected void applyDoubleShiftReflector(int i, boolean set) { if(set) { // Explicitly zeros out values which should be zeroed by the reflector. T.entries[i*numRows + i - 1] = norm.addInv(); - T.entries[(i+1)*numRows + i - 1] = CNumber.zero(); - T.entries[(i+2)*numRows + i - 1] = CNumber.zero(); + T.entries[(i+1)*numRows + i - 1] = CNumber.ZERO; + T.entries[(i+2)*numRows + i - 1] = CNumber.ZERO; } } @@ -413,9 +413,9 @@ protected boolean makeReflector(int i, CNumber p1, CNumber p2, CNumber p3) { return false; // No reflector needs to be constructed or applied. } - p1.divEq(maxAbs); - p2.divEq(maxAbs); - p3.divEq(maxAbs); + p1 = p1.div(maxAbs); + p2 = p2.div(maxAbs); + p3 = p3.div(maxAbs); double m1 = p1.mag(); double m2 = p2.mag(); @@ -428,9 +428,9 @@ protected boolean makeReflector(int i, CNumber p1, CNumber p2, CNumber p3) { CNumber div = p1.add(norm); currentFactor = div.div(norm); - norm.multEq(maxAbs); // Rescale norm to be proper magnitude. + norm = norm.mult(maxAbs); // Rescale norm to be proper magnitude. - householderVector[i] = CNumber.one(); + householderVector[i] = CNumber.ONE; householderVector[i+1] = p2.div(div); householderVector[i+2] = p3.div(div); @@ -454,8 +454,8 @@ protected boolean makeReflector(int i, CNumber p1, CNumber p2) { } // Scale components for stability and over(under)flow purposes. - p1.divEq(maxAbs); - p2.divEq(maxAbs); + p1 = p1.div(maxAbs); + p2 = p2.div(maxAbs); double m1 = p1.mag(); double m2 = p2.mag(); @@ -467,9 +467,9 @@ protected boolean makeReflector(int i, CNumber p1, CNumber p2) { CNumber divisor = p1.add(norm); currentFactor = divisor.div(norm); - norm.multEq(maxAbs); // Rescale norm to be proper magnitude. + norm = norm.mult(maxAbs); // Rescale norm to be proper magnitude. - householderVector[i] = CNumber.one(); // Ensure first value of reflector is 1. + householderVector[i] = CNumber.ONE; // Ensure first value of reflector is 1. householderVector[i+1] = p2.div(divisor); return true; // Reflector has been constructed and must be applied. @@ -498,10 +498,10 @@ protected int checkConvergence(int workingSize) { // |A[k, k-1]| *|A[k-1, k]| <= eps * |A[k, k]| * |A[k, k] - A[k-1, k-1]| if(a32.mag() < EPS_F64*(a33.mag() + a22.mag()) && a32.mag()*a23.mag() <= EPS_F64*a33.mag() * (a33.sub(a22)).mag()) { - T.entries[workingSize*numRows + workingSize - 1] = CNumber.zero(); // Zero out converged value. + T.entries[workingSize*numRows + workingSize - 1] = CNumber.ZERO; // Zero out converged value. return 1; // Deflate by 1. } else if(a21.mag() < EPS_F64*(a11.mag() + a22.mag())) { - T.entries[leftRow + workingSize - 2] = CNumber.zero(); // Zero out converged value. + T.entries[leftRow + workingSize - 2] = CNumber.ZERO; // Zero out converged value. return 2; // Deflate by 2. } @@ -524,7 +524,7 @@ public CMatrix[] real2ComplexSchur() { if(a21.mag() > EPS_F64*(a11.mag() + a22.mag())) { // non-converged 2x2 block found. CNumber[] mu = Eigen.get2x2EigenValues(a11, a12, a21, a22); - mu[0].subEq(a22); // Shift eigenvalue. + mu[0] = mu[0].sub(a22); // Shift eigenvalue. // Construct a givens rotator to bring matrix into properly upper triangular form. CMatrix G = Givens.get2x2Rotator(new CVector(mu[0], a21)); diff --git a/src/main/java/org/flag4j/linalg/decompositions/schur/RealSchur.java b/src/main/java/org/flag4j/linalg/decompositions/schur/RealSchur.java index 7d657b1b3..e095a1682 100644 --- a/src/main/java/org/flag4j/linalg/decompositions/schur/RealSchur.java +++ b/src/main/java/org/flag4j/linalg/decompositions/schur/RealSchur.java @@ -534,7 +534,7 @@ public CMatrix[] real2ComplexSchur() { if(a21.mag() > EPS_F64*(a11.mag() + a22.mag())) { // non-converged 2x2 block found. CNumber[] mu = Eigen.get2x2EigenValues(a11, a12, a21, a22); - mu[0].subEq(a22); // Shift eigenvalue. + mu[0] = mu[0].sub(a22); // Shift eigenvalue. // Construct a givens rotator to bring matrix into properly upper triangular form. CMatrix G = Givens.get2x2Rotator(new CVector(mu[0], a21)); diff --git a/src/main/java/org/flag4j/linalg/decompositions/schur/Schur.java b/src/main/java/org/flag4j/linalg/decompositions/schur/Schur.java index 11b09f4a2..c862c4e1a 100644 --- a/src/main/java/org/flag4j/linalg/decompositions/schur/Schur.java +++ b/src/main/java/org/flag4j/linalg/decompositions/schur/Schur.java @@ -44,7 +44,7 @@ * @param The type for the internal storage datastructure of the matrix to be decomposed. */ public abstract class Schur< - T extends MatrixMixin, + T extends MatrixMixin, U> implements Decomposition { /** diff --git a/src/main/java/org/flag4j/linalg/decompositions/svd/SVD.java b/src/main/java/org/flag4j/linalg/decompositions/svd/SVD.java index f75372672..fea8ed222 100644 --- a/src/main/java/org/flag4j/linalg/decompositions/svd/SVD.java +++ b/src/main/java/org/flag4j/linalg/decompositions/svd/SVD.java @@ -40,7 +40,7 @@ * @param The type of the matrix to compute the singular value decomposition of. */ public abstract class SVD< - T extends MatrixMixin> + T extends MatrixMixin> implements Decomposition { /** diff --git a/src/main/java/org/flag4j/linalg/decompositions/unitary/ComplexUnitaryDecomposition.java b/src/main/java/org/flag4j/linalg/decompositions/unitary/ComplexUnitaryDecomposition.java index 14004243a..fe553f448 100644 --- a/src/main/java/org/flag4j/linalg/decompositions/unitary/ComplexUnitaryDecomposition.java +++ b/src/main/java/org/flag4j/linalg/decompositions/unitary/ComplexUnitaryDecomposition.java @@ -27,7 +27,6 @@ import org.flag4j.arrays.dense.CMatrix; import org.flag4j.complex_numbers.CNumber; import org.flag4j.linalg.transformations.Householder; -import org.flag4j.util.ArrayUtils; import org.flag4j.util.Flag4jConstants; /** @@ -53,10 +52,6 @@ public abstract class ComplexUnitaryDecomposition extends UnitaryDecomposition=subDiagonal; j--) { - householderVector[j] = CNumber.one(); // Ensure first value of reflector is 1. + householderVector[j] = CNumber.ONE; // Ensure first value of reflector is 1. for(int i=j + 1; i= Flag4jConstants.EPS_F64; if(!applyUpdate) { - currentFactor = CNumber.zero(); + currentFactor = CNumber.ZERO; } else { computePhasedNorm(j, maxAbs); - householderVector[j] = CNumber.one(); // Ensure first value in Householder vector is one. + householderVector[j] = CNumber.ONE; // Ensure first value in Householder vector is one. for(int i=j+1; i Internal storage datatype of the matrix. */ public abstract class UnitaryDecomposition< - T extends MatrixMixin, U> implements Decomposition { + T extends MatrixMixin, U> implements Decomposition { /** *

    diff --git a/src/main/java/org/flag4j/linalg/ops/DirectSum.java b/src/main/java/org/flag4j/linalg/ops/DirectSum.java index c6e472775..2df478a9c 100644 --- a/src/main/java/org/flag4j/linalg/ops/DirectSum.java +++ b/src/main/java/org/flag4j/linalg/ops/DirectSum.java @@ -148,7 +148,7 @@ public static CMatrix directSum(Matrix A, CooCMatrix B) { row = B.rowIndices[i]; col = B.colIndices[i]; - sum.entries[(row+A.numRows)*sum.numCols + (col+A.numCols)] = B.entries[i].copy(); + sum.entries[(row+A.numRows)*sum.numCols + (col+A.numCols)] = B.entries[i]; } return sum; @@ -227,7 +227,7 @@ public static CMatrix invDirectSum(Matrix A, CMatrix B) { // Copy over second matrix. for(int i=0; i Type of the vectors in the linear system. */ public interface LinearSolver< - T extends MatrixMixin, + T extends MatrixMixin, U extends VectorMixin> { diff --git a/src/main/java/org/flag4j/linalg/solvers/exact/ExactSolver.java b/src/main/java/org/flag4j/linalg/solvers/exact/ExactSolver.java index af594fe76..27ffae163 100644 --- a/src/main/java/org/flag4j/linalg/solvers/exact/ExactSolver.java +++ b/src/main/java/org/flag4j/linalg/solvers/exact/ExactSolver.java @@ -39,7 +39,7 @@ * {@link LstsqSolver least-squares solver}.

    */ public abstract class ExactSolver< - T extends MatrixMixin, + T extends MatrixMixin, U extends VectorMixin> implements LinearSolver { diff --git a/src/main/java/org/flag4j/linalg/solvers/exact/ExactTensorSolver.java b/src/main/java/org/flag4j/linalg/solvers/exact/ExactTensorSolver.java index e969686f2..ebfb98cb4 100644 --- a/src/main/java/org/flag4j/linalg/solvers/exact/ExactTensorSolver.java +++ b/src/main/java/org/flag4j/linalg/solvers/exact/ExactTensorSolver.java @@ -41,7 +41,7 @@ */ public abstract class ExactTensorSolver< T extends TensorBase, - U extends MatrixMixin, + U extends MatrixMixin, V extends VectorMixin> implements LinearTensorSolver { diff --git a/src/main/java/org/flag4j/linalg/solvers/exact/triangular/BackSolver.java b/src/main/java/org/flag4j/linalg/solvers/exact/triangular/BackSolver.java index 5235bf121..dde69592c 100644 --- a/src/main/java/org/flag4j/linalg/solvers/exact/triangular/BackSolver.java +++ b/src/main/java/org/flag4j/linalg/solvers/exact/triangular/BackSolver.java @@ -39,7 +39,7 @@ * @param Type of internal storage for the matrix and vector. */ public abstract class BackSolver< - T extends MatrixMixin, + T extends MatrixMixin, U extends VectorMixin, V> implements LinearSolver { diff --git a/src/main/java/org/flag4j/linalg/solvers/exact/triangular/ComplexBackSolver.java b/src/main/java/org/flag4j/linalg/solvers/exact/triangular/ComplexBackSolver.java index 1aa232259..a31ff3eb5 100644 --- a/src/main/java/org/flag4j/linalg/solvers/exact/triangular/ComplexBackSolver.java +++ b/src/main/java/org/flag4j/linalg/solvers/exact/triangular/ComplexBackSolver.java @@ -88,19 +88,19 @@ public CVector solve(CMatrix U, CVector b) { int uIndex; int n = b.size; x = new CVector(U.numRows); - det = U.entries[n*n-1].copy(); + det = U.entries[n*n-1]; x.entries[n-1] = b.entries[n-1].div(det); for(int i=n-2; i>-1; i--) { - sum = new CNumber(); + sum = CNumber.ZERO; uIndex = i*U.numCols; CNumber diag = U.entries[i*(n+1)]; - det.multEq(diag); + det = det.mult(diag); for(int j=i+1; j-1; i--) { - sum = new CNumber(); + sum = CNumber.ZERO; uIndex = i*U.numCols; xIndex = i*X.numCols + j; diag = U.entries[i*(n+1)]; - if(j==0) det.multEq(diag); + if(j==0) det = det.mult(diag); for(int k=i+1; k-1; i--) { - sum = (i == j) ? CNumber.one() : CNumber.zero(); + sum = (i == j) ? CNumber.ONE : CNumber.ZERO; uIndex = i*U.numCols; xIndex = uIndex + j; uIndex += i+1; diag = U.entries[i*(n+1)]; - if(j==0) det.multEq(diag); + if(j==0) det = det.mult(diag); for(int k=i+1; k=0; i--) { - sum = CNumber.zero(); + sum = CNumber.ZERO; uIndex = i*U.numCols; xIndex = uIndex + j; diag = U.entries[i*(n+1)]; - if(j==0) det.multEq(diag); + if(j==0) det = det.mult(diag); for(int k=i+1; k-1; j--) { - sum.addEq(L.entries[lIndexStart + j].mult(x.entries[j])); + sum = sum.add(L.entries[lIndexStart + j].mult(x.entries[j])); } x.entries[i] = b.entries[i].sub(sum); @@ -184,7 +184,7 @@ private CMatrix solveUnitLowerIdentity(CMatrix L) { det = new CNumber(L.numRows); // Since it is unit lower, matrix has full rank. xCol = new CNumber[L.numRows]; - X.entries[0] = CNumber.one(); + X.entries[0] = CNumber.ONE; for(int j=0; j-1; j--) { - sum.addEq(L.entries[lIndexStart + j].mult(x.entries[j])); + sum = sum.add(L.entries[lIndexStart + j].mult(x.entries[j])); } x.entries[i] = b.entries[i].sub(sum).div(diag); @@ -312,7 +312,7 @@ private CMatrix solveUnitLower(CMatrix L, CMatrix B) { xCol = new CNumber[L.numRows]; for(int j=0; j Type of the internal storage datastructures in the matrix and vector. */ public abstract class ForwardSolver< - T extends MatrixMixin, + T extends MatrixMixin, U extends VectorMixin, V> implements LinearSolver { diff --git a/src/main/java/org/flag4j/linalg/solvers/lstsq/LstsqSolver.java b/src/main/java/org/flag4j/linalg/solvers/lstsq/LstsqSolver.java index adfde831d..6526e03b3 100644 --- a/src/main/java/org/flag4j/linalg/solvers/lstsq/LstsqSolver.java +++ b/src/main/java/org/flag4j/linalg/solvers/lstsq/LstsqSolver.java @@ -41,7 +41,7 @@ * This is done using a {@link UnitaryDecomposition QR decomposition}. */ public abstract class LstsqSolver< - T extends MatrixMixin, + T extends MatrixMixin, U extends VectorMixin> implements LinearSolver { diff --git a/src/main/java/org/flag4j/linalg/transformations/Givens.java b/src/main/java/org/flag4j/linalg/transformations/Givens.java index 16883c92c..035f6f17c 100644 --- a/src/main/java/org/flag4j/linalg/transformations/Givens.java +++ b/src/main/java/org/flag4j/linalg/transformations/Givens.java @@ -30,10 +30,11 @@ import org.flag4j.arrays.dense.Vector; import org.flag4j.complex_numbers.CNumber; import org.flag4j.linalg.VectorNorms; -import org.flag4j.util.ArrayUtils; import org.flag4j.util.ErrorMessages; import org.flag4j.util.ParameterChecks; +import java.util.Arrays; + /** * This class contains methods for computing real or complex Givens' rotation matrices. @@ -41,7 +42,7 @@ * a counterclockwise rotation of {@code theta} radians of the vector in the {@code (i, j)} plane. Givens rotators * are a unitary transformation. */ -public class Givens { +public final class Givens { private Givens() { // Hide default constructor for utility class. @@ -308,7 +309,7 @@ public static void leftMult2x2Rotator(CMatrix src, CMatrix G, int row, CNumber[] int cols2 = src.shape.get(1); int destCols = (cols2 - (row-1)); if(workArray==null) workArray = new CNumber[2*destCols]; - ArrayUtils.fillZeros(workArray, 0, 2*destCols); + Arrays.fill(workArray, 0, 2*destCols, CNumber.ZERO); int m = row-1; int src2Row1 = m*cols2 + m; @@ -324,10 +325,10 @@ public static void leftMult2x2Rotator(CMatrix src, CMatrix G, int row, CNumber[] int destIdx1 = j - m; int destIdx2 = destCols + destIdx1; - workArray[destIdx1].addEq(g11.mult(src2[src2Row1])); - workArray[destIdx2].addEq(g21.mult(src2[src2Row1++])); - workArray[destIdx1].addEq(g12.mult(src2[src2Row2])); - workArray[destIdx2].addEq(g22.mult(src2[src2Row2++])); + workArray[destIdx1] = workArray[destIdx1].add(g11.mult(src2[src2Row1])); + workArray[destIdx2] = workArray[destIdx2].add(g21.mult(src2[src2Row1++])); + workArray[destIdx1] = workArray[destIdx1].add(g12.mult(src2[src2Row2])); + workArray[destIdx2] = workArray[destIdx2].add(g22.mult(src2[src2Row2++])); } // Copy result back into src matrix. @@ -361,7 +362,7 @@ public static void rightMult2x2Rotator(CMatrix src, CMatrix G, int row, CNumber[ int cols1 = src.numCols; int rows1 = src.numRows; if(workArray==null) workArray = new CNumber[2*rows1]; // Has shape (row+1, 2) - ArrayUtils.fillZeros(workArray); + Arrays.fill(workArray, CNumber.ZERO); int m = row - 1; @@ -377,10 +378,10 @@ public static void rightMult2x2Rotator(CMatrix src, CMatrix G, int row, CNumber[ int src1Idx1 = i*cols1 + m; int src1Idx2 = src1Idx1 + 1; - workArray[tempIdx1].addEq(src1[src1Idx1].mult(g11)); - workArray[tempIdx1].addEq(src1[src1Idx2].mult(g12)); - workArray[tempIdx2].addEq(src1[src1Idx1].mult(g21)); - workArray[tempIdx2].addEq(src1[src1Idx2].mult(g22)); + workArray[tempIdx1] = workArray[tempIdx1].add(src1[src1Idx1].mult(g11)); + workArray[tempIdx1] = workArray[tempIdx1].add(src1[src1Idx2].mult(g12)); + workArray[tempIdx2] = workArray[tempIdx2].add(src1[src1Idx1].mult(g21)); + workArray[tempIdx2] = workArray[tempIdx2].add(src1[src1Idx2].mult(g22)); } // Copy result back into source matrix. diff --git a/src/main/java/org/flag4j/linalg/transformations/Householder.java b/src/main/java/org/flag4j/linalg/transformations/Householder.java index e04ad084f..d9678fa7d 100644 --- a/src/main/java/org/flag4j/linalg/transformations/Householder.java +++ b/src/main/java/org/flag4j/linalg/transformations/Householder.java @@ -38,7 +38,7 @@ * This class contains methods for computing real or complex Householder reflectors (also known as elementary reflectors). * A Householder reflector is a transformation matrix which reflects a vector about a hyperplane containing the origin. */ -public class Householder { +public final class Householder { private Householder() { // Hide default constructor for utility class. @@ -131,7 +131,7 @@ public static CMatrix getReflector(CVector normal) { int step = P.numCols+1; for(int i=0; i * WARNING: These methods do not perform any sanity checks. */ -public class ComplexDenseMatrixMultTranspose { +public final class ComplexDenseMatrixMultTranspose { private ComplexDenseMatrixMultTranspose() { // Hide default constructor. @@ -61,7 +62,7 @@ public static CNumber[] multTranspose(CNumber[] src1, Shape shape1, CNumber[] sr int cols2 = shape2.get(1); CNumber[] dest = new CNumber[rows1*rows2]; // Since second matrix is transposed, its columns will become rows. - ArrayUtils.fillZeros(dest); + Arrays.fill(dest, CNumber.ZERO); int src1Index, src2Index, destIndex, src1IndexStart, destIndexStart, end; @@ -76,7 +77,7 @@ public static CNumber[] multTranspose(CNumber[] src1, Shape shape1, CNumber[] sr destIndex = destIndexStart + j; while(src1Index { int src1IndexStart = i*cols2; @@ -169,7 +170,7 @@ public static CNumber[] multTransposeConcurrent(CNumber[] src1, Shape shape1, CN int destIndex = destIndexStart + j; while(src1Index * WARNING: These methods do not perform any sanity checks. */ -public class ComplexDenseMatrixMultiplication { +public final class ComplexDenseMatrixMultiplication { private ComplexDenseMatrixMultiplication() { // Hide default constructor. @@ -74,7 +74,7 @@ public static CNumber[] standard(CNumber[] src1, Shape shape1, CNumber[] src2, S end = src1Index + rows2; while(src1Index { int[] destIndices = shape.getIndices(i); ArrayUtils.swap(destIndices, axis1, axis2); // Compute destination indices. - dest[destShape.entriesIndex(destIndices)] = src[i].copy(); // Apply transpose for the element + dest[destShape.entriesIndex(destIndices)] = src[i]; // Apply transpose for the element }); return dest; @@ -181,7 +181,7 @@ public static CNumber[] standardMatrix(final CNumber[] src, final int numRows, f end = destIndex + numRows; while (destIndex < end) { - dest[destIndex++] = src[srcIndex].copy(); + dest[destIndex++] = src[srcIndex]; srcIndex += numCols; } } @@ -217,7 +217,7 @@ public static CNumber[] blockedMatrix(final CNumber[] src, final int numRows, fi end = destIndex + blockRowEnd; while (destIndex < end) { - dest[destIndex++] = src[srcIndex].copy(); + dest[destIndex++] = src[srcIndex]; srcIndex += numCols; } } @@ -245,7 +245,7 @@ public static CNumber[] standardMatrixConcurrent(final CNumber[] src, final int int end = destIndex + numRows; while (destIndex < end) { - dest[destIndex++] = src[srcIndex].copy(); + dest[destIndex++] = src[srcIndex]; srcIndex += numCols; } }); @@ -278,7 +278,7 @@ public static CNumber[] blockedMatrixConcurrent(final CNumber[] src, final int n int end = destIndex + blockRowEnd; while (destIndex < end) { - dest[destIndex++] = src[srcIndex].copy(); + dest[destIndex++] = src[srcIndex]; srcIndex += numCols; } } diff --git a/src/main/java/org/flag4j/operations/dense/complex/ComplexDenseVectorOperations.java b/src/main/java/org/flag4j/operations/dense/complex/ComplexDenseVectorOperations.java index 9c0ddbd91..e7ac805fa 100644 --- a/src/main/java/org/flag4j/operations/dense/complex/ComplexDenseVectorOperations.java +++ b/src/main/java/org/flag4j/operations/dense/complex/ComplexDenseVectorOperations.java @@ -48,10 +48,10 @@ private ComplexDenseVectorOperations() { */ public static CNumber innerProduct(CNumber[] src1, CNumber[] src2) { ParameterChecks.assertArrayLengthsEq(src1.length, src2.length); - CNumber innerProd = new CNumber(); + CNumber innerProd = CNumber.ZERO; for(int i=0; i * WARNING: These methods do not perform any sanity checks. */ -public class RealComplexDenseMatrixMultTranspose { +public final class RealComplexDenseMatrixMultTranspose { private RealComplexDenseMatrixMultTranspose() { // Hide default constructor. @@ -59,7 +60,7 @@ public static CNumber[] multTranspose(CNumber[] src1, Shape shape1, double[] src int cols2 = shape2.get(1); CNumber[] dest = new CNumber[rows1*rows2]; // Since second matrix is transposed, its columns will become rows. - ArrayUtils.fillZeros(dest); + Arrays.fill(dest, CNumber.ZERO); int src1Index, src2Index, destIndex, src1IndexStart, destIndexStart, end; @@ -74,7 +75,7 @@ public static CNumber[] multTranspose(CNumber[] src1, Shape shape1, double[] src destIndex = destIndexStart + j; while(src1Index { int src1IndexStart = i*cols2; @@ -167,7 +168,7 @@ public static CNumber[] multTransposeConcurrent(CNumber[] src1, Shape shape1, do int destIndex = destIndexStart + j; while(src1Index { int src1IndexStart = i*cols2; @@ -351,7 +352,7 @@ public static CNumber[] multTransposeConcurrent(double[] src1, Shape shape1, CNu int destIndex = destIndexStart + j; while(src1Index * WARNING: These methods do not perform any sanity checks. */ -public class RealComplexDenseMatrixMultiplication { +public final class RealComplexDenseMatrixMultiplication { private RealComplexDenseMatrixMultiplication() { @@ -76,8 +76,7 @@ public static CNumber[] standard(double[] src1, Shape shape1, CNumber[] src2, Sh end = src1Index + rows2; while(src1Index * WARNING: These methods do not perform any sanity checks. */ -public class ComplexDenseSparseMatrixMultTranspose { +public final class ComplexDenseSparseMatrixMultTranspose { private ComplexDenseSparseMatrixMultTranspose() { // Hide default constructor. @@ -60,7 +61,7 @@ public static CNumber[] multTranspose(CNumber[] dSrc, Shape dShape, int cols2 = spShape.get(1); CNumber[] dest = new CNumber[rows1*rows2]; // Since second matrix is transposed, its columns will become rows. - ArrayUtils.fillZeros(dest); + Arrays.fill(dest, CNumber.ZERO); int row, col; int destStart, dSrcStart; @@ -74,7 +75,7 @@ public static CNumber[] multTranspose(CNumber[] dSrc, Shape dShape, row = colIndices[j]; col = rowIndices[j]; - dest[destStart + col].addEq(dSrc[dSrcStart + row].mult(spSrc[j])); + dest[destStart + col] = dest[destStart + col].add(dSrc[dSrcStart + row].mult(spSrc[j])); } } diff --git a/src/main/java/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseMatrixMultiplication.java b/src/main/java/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseMatrixMultiplication.java index e2bcb884b..79b347ba4 100644 --- a/src/main/java/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseMatrixMultiplication.java +++ b/src/main/java/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseMatrixMultiplication.java @@ -28,14 +28,15 @@ import org.flag4j.concurrency.Configurations; import org.flag4j.concurrency.ThreadManager; import org.flag4j.core.Shape; -import org.flag4j.util.ArrayUtils; import org.flag4j.util.ErrorMessages; +import java.util.Arrays; + /** * This class provides low level methods for computing the matrix multiplication between * a sparse/dense matrix and dense/sparse matrix/vector. */ -public class ComplexDenseSparseMatrixMultiplication { +public final class ComplexDenseSparseMatrixMultiplication { private ComplexDenseSparseMatrixMultiplication() { // Hide default constructor in utility class. @@ -62,17 +63,20 @@ public static CNumber[] standard(CNumber[] src1, Shape shape1, CNumber[] src2, int cols2 = shape2.get(1); CNumber[] dest = new CNumber[rows1*cols2]; - ArrayUtils.fillZeros(dest); + Arrays.fill(dest, CNumber.ZERO); int row, col; for(int i=0; i { // Loop over non-zero entries of sparse matrix. @@ -141,7 +143,7 @@ public static CNumber[] concurrentStandard(CNumber[] src1, Shape shape1, CNumber CNumber product = src1[i*cols1 + row].mult(src2[j]); synchronized (dest) { - dest[i*cols2 + col].addEq(product); + dest[i*cols2 + col] = dest[i*cols2 + col].add(product); } } }); @@ -168,7 +170,7 @@ public static CNumber[] concurrentStandard(CNumber[] src1, int[] rowIndices, int int cols2 = shape2.get(1); CNumber[] dest = new CNumber[rows1*cols2]; - ArrayUtils.fillZeros(dest); // Initialize to zeros + Arrays.fill(dest, CNumber.ZERO); // Initialize to zeros ThreadManager.concurrentLoop(0, src1.length, (i) -> { int row = rowIndices[i]; @@ -178,7 +180,7 @@ public static CNumber[] concurrentStandard(CNumber[] src1, int[] rowIndices, int CNumber product = src1[i].mult(src2[col*cols2 + j]); synchronized (dest) { - dest[row*cols2 + j].addEq(product); + dest[row*cols2 + j] = dest[row*cols2 + j].add(product); } } }); @@ -203,15 +205,17 @@ public static CNumber[] standardVector(CNumber[] src1, Shape shape1, CNumber[] s int nonZeros = src2.length; CNumber[] dest = new CNumber[denseRows]; - ArrayUtils.fillZeros(dest); // Initialize to zeros - - int k; + Arrays.fill(dest, CNumber.ZERO); // Initialize to zeros for(int i=0; i { + CNumber val = dest[i]; + for(int j=0; j { int row = rowIndices[i]; @@ -333,7 +344,7 @@ public static CNumber[] concurrentStandardVector(CNumber[] src1, int[] rowIndice CNumber product = src1[i].mult(src2[col]); synchronized (dest) { - dest[row].addEq(product); + dest[row] = dest[row].add(product); } }); @@ -357,17 +368,22 @@ public static CNumber[] concurrentBlockedVector(CNumber[] src1, Shape shape1, CN final int bsize = Configurations.getBlockSize(); // Get the block size to use. CNumber[] dest = new CNumber[rows1]; - ArrayUtils.fillZeros(dest); // Initialize to zeros + Arrays.fill(dest, CNumber.ZERO); // Initialize to zeros // Blocked matrix-vector multiply ThreadManager.concurrentLoop(0, rows1, bsize, (ii) -> { for(int jj=0; jj { for(int j=0; j { for(int j=0; j uOpp) { CNumber[] dest = new CNumber[src1.totalEntries().intValueExact()]; if(uOpp != null) b = uOpp.apply(b); // Apply unary operator if specified. - ArrayUtils.fill(dest, b); + Arrays.fill(dest, b); for(int i=0; iUtility class for computing tensor dot products between two {@link CooCTensor complex sparse COO tensors}.

    + */ +public class ComplexCooTensorDot { + + private ComplexCooTensorDot() { + // Hide default constructor for utility class. + throw new IllegalStateException(ErrorMessages.getUtilityClassErrMsg()); + } + + + /** + * Computes the tensor contraction of this tensor with a specified tensor over the specified set of axes. That is, + * computes the sum of products between the two tensors along the specified set of axes. + * @param src1 First tensor in the contraction. + * @param src2 Second tensor in the contraction. + * @param src1Axes Axes along which to compute products for {@code src1} tensor. + * @param src2Axes Axes along which to compute products for {@code src2} tensor. + * @return The tensor dot product over the specified axes. + * @throws IllegalArgumentException If the two tensors shapes do not match along the specified axes pairwise in + * {@code aAxes} and {@code bAxes}. + * @throws IllegalArgumentException If {@code aAxes} and {@code bAxes} do not match in length, or if any of the axes + * are out of bounds for the corresponding tensor. + */ + public static CTensor tensorDot(CooCTensor src1, CooCTensor src2, int[] src1Axes, int[] src2Axes) { + // Each array must specify the same number of axes. + ParameterChecks.assertEquals(src1Axes.length, src2Axes.length); + + // Axis values must be less than the rank of the tensor and non-negative + ParameterChecks.assertLessEq(src1.getRank()-1, src1Axes); + ParameterChecks.assertGreaterEq(0, src1Axes); + ParameterChecks.assertLessEq(src2.getRank()-1, src2Axes); + ParameterChecks.assertGreaterEq(0, src2Axes); + + int[] notin; + int n1; + int n2; + int pos; + + // ---- Compute new axes and shapes for first tensor. ---- + notin = ArrayUtils.notInAxes(src1Axes, src1.getRank()); + int[] src1NewAxes = ArrayUtils.join(notin, src1Axes); + + n2 = 1; + for(int axis : src1Axes) { + n2 *= src1.shape.get(axis); + } + + n1 = 1; + int[] src1OldDims = new int[notin.length]; + pos = 0; + for(int axis : notin) { + int a = src1.shape.get(axis); + n1 *= a; + src1OldDims[pos++] = a; + } + + Shape src1NewShape = new Shape(n1, n2); + // ----------------------------------------------------- + + // ---- Compute new axes and shapes for second tensor. ---- + notin = ArrayUtils.notInAxes(src2Axes, src2.getRank()); + int[] src2NewAxes = ArrayUtils.join(src2Axes, notin); + + n2 = 1; + for(int axis : src2Axes) { + n2 *= src2.shape.get(axis); + } + + n1 = 1; + pos = 0; + int[] src2OldDims = new int[notin.length]; + for(int axis : notin) { + int a = src2.shape.get(axis); + n1 *= a; + src2OldDims[pos++] = a; + } + + Shape src2NewShape = new Shape(n2, n1); + // ----------------------------------------------------- + + // Reform tensor dot product problem as a matrix multiplication problem. + CooCMatrix at = src1.T(src1NewAxes).toMatrix(src1NewShape); + CooCMatrix bt = src2.T(src2NewAxes).toMatrix(src2NewShape); + + CTensor product = at.mult(bt).toTensor(); + + // TODO: Should allow for zero dim shape indicating a scalar. Then only the else block would be needed. + Shape productShape; + if(src1Axes.length == src1.getRank() && src2Axes.length == src2.getRank()) { + productShape = new Shape(1); + } else { + productShape = new Shape(ArrayUtils.join(src1OldDims, src2OldDims)); + } + + return product.reshape(productShape); + } +} diff --git a/src/main/java/org/flag4j/operations/sparse/coo/complex/ComplexCooTensorOperations.java b/src/main/java/org/flag4j/operations/sparse/coo/complex/ComplexCooTensorOperations.java index 0714a2241..23c16620c 100644 --- a/src/main/java/org/flag4j/operations/sparse/coo/complex/ComplexCooTensorOperations.java +++ b/src/main/java/org/flag4j/operations/sparse/coo/complex/ComplexCooTensorOperations.java @@ -71,7 +71,7 @@ public static CooCTensor add(CooCTensor src1, CooCTensor src2) { // Insert elements from src2 whose index is less than the current element from src1 while(src2Pos < src2.nnz && Arrays.compare(src2Indices[src2Pos], src1Idx) < 0) { - sumEntries.add(src2.entries[src2Pos].copy()); + sumEntries.add(src2.entries[src2Pos]); sumIndices.add(src2Indices[src2Pos++]); } @@ -79,14 +79,14 @@ public static CooCTensor add(CooCTensor src1, CooCTensor src2) { if(src2Pos < src2.nnz && Arrays.equals(src1Idx, src2Indices[src2Pos])) { sumEntries.add(val1.add(src2.entries[src2Pos++])); } else { - sumEntries.add(val1.copy()); + sumEntries.add(val1); } sumIndices.add(src1Idx); } // Insert any remaining elements from src2 while(src2Pos < src2.nnz) { - sumEntries.add(src2.entries[src2Pos].copy()); + sumEntries.add(src2.entries[src2Pos]); sumIndices.add(src2Indices[src2Pos++]); } @@ -128,7 +128,7 @@ public static CooCTensor sub(CooCTensor src1, CooCTensor src2) { if(src2Pos < src2.nnz && Arrays.equals(src1Idx, src2Indices[src2Pos])) { sumEntries.add(val1.sub(src2.entries[src2Pos++])); } else { - sumEntries.add(val1.copy()); + sumEntries.add(val1); } sumIndices.add(src1Idx); } diff --git a/src/main/java/org/flag4j/operations/sparse/coo/complex/ComplexSparseMatrixGetSet.java b/src/main/java/org/flag4j/operations/sparse/coo/complex/ComplexSparseMatrixGetSet.java index d67e722df..cffdcc992 100644 --- a/src/main/java/org/flag4j/operations/sparse/coo/complex/ComplexSparseMatrixGetSet.java +++ b/src/main/java/org/flag4j/operations/sparse/coo/complex/ComplexSparseMatrixGetSet.java @@ -63,7 +63,7 @@ private ComplexSparseMatrixGetSet() { */ public static CNumber matrixGet(CooCMatrix src, int row, int col) { int idx = SparseElementSearch.matrixBinarySearch(src.rowIndices, src.colIndices, row, col); - return idx<0 ? new CNumber() : src.entries[idx]; + return idx<0 ? CNumber.ZERO : src.entries[idx]; } @@ -85,7 +85,7 @@ public static CooCMatrix matrixSet(CooCMatrix src, int row, int col, CNumber val if(idx < 0) { // No non-zero element with these indices exists. Insert new value. destEntries = new CNumber[src.entries.length + 1]; - ArrayUtils.arraycopy(src.entries, 0, destEntries, 0, -idx-1); + System.arraycopy(src.entries, 0, destEntries, 0, -idx-1); destEntries[-idx-1] = value; System.arraycopy(src.entries, -idx-1, destEntries, -idx, src.entries.length+idx+1); @@ -100,7 +100,7 @@ public static CooCMatrix matrixSet(CooCMatrix src, int row, int col, CNumber val System.arraycopy(src.colIndices, -idx-1, destColIndices, -idx, src.colIndices.length+idx+1); } else { // Value with these indices exists. Simply update value. - destEntries = ArrayUtils.copyOf(src.entries); + destEntries = Arrays.copyOf(src.entries, src.entries.length); destEntries[idx] = value; destRowIndices = src.rowIndices.clone(); destColIndices = src.colIndices.clone(); @@ -135,9 +135,9 @@ public static CooCMatrix setRow(CooCMatrix src, int rowIdx, double[] row) { destRowIndices = new int[destEntries.length]; destColIndices = new int[destEntries.length]; - ArrayUtils.arraycopy(src.entries, 0, destEntries, 0, -start-1); + System.arraycopy(src.entries, 0, destEntries, 0, -start-1); ArrayUtils.arraycopy(row, 0, destEntries, -start-1, row.length); - ArrayUtils.arraycopy( + System.arraycopy( src.entries, -start-1, destEntries, -start-1+row.length, destEntries.length-(row.length - start - 1) ); @@ -162,9 +162,9 @@ public static CooCMatrix setRow(CooCMatrix src, int rowIdx, double[] row) { destRowIndices = new int[destEntries.length]; destColIndices = new int[destEntries.length]; - ArrayUtils.arraycopy(src.entries, 0, destEntries, 0, start); + System.arraycopy(src.entries, 0, destEntries, 0, start); ArrayUtils.arraycopy(row, 0, destEntries, start, row.length); - ArrayUtils.arraycopy( + System.arraycopy( src.entries, end, destEntries, start + row.length, destEntries.length-(start + row.length) ); @@ -213,9 +213,9 @@ public static CooCMatrix setRow(CooCMatrix src, int rowIdx, CNumber[] row) { destRowIndices = new int[destEntries.length]; destColIndices = new int[destEntries.length]; - ArrayUtils.arraycopy(src.entries, 0, destEntries, 0, -start-1); - ArrayUtils.arraycopy(row, 0, destEntries, -start-1, row.length); - ArrayUtils.arraycopy( + System.arraycopy(src.entries, 0, destEntries, 0, -start-1); + System.arraycopy(row, 0, destEntries, -start-1, row.length); + System.arraycopy( src.entries, -start-1, destEntries, -start-1+row.length, destEntries.length-(row.length - start - 1) ); @@ -240,9 +240,9 @@ public static CooCMatrix setRow(CooCMatrix src, int rowIdx, CNumber[] row) { destRowIndices = new int[destEntries.length]; destColIndices = new int[destEntries.length]; - ArrayUtils.arraycopy(src.entries, 0, destEntries, 0, start); - ArrayUtils.arraycopy(row, 0, destEntries, start, row.length); - ArrayUtils.arraycopy( + System.arraycopy(src.entries, 0, destEntries, 0, start); + System.arraycopy(row, 0, destEntries, start, row.length); + System.arraycopy( src.entries, end, destEntries, start + row.length, destEntries.length-(start + row.length) ); @@ -291,9 +291,9 @@ public static CooCMatrix setRow(CooCMatrix src, int rowIdx, CooCVector row) { destRowIndices = new int[destEntries.length]; destColIndices = new int[destEntries.length]; - ArrayUtils.arraycopy(src.entries, 0, destEntries, 0, -start-1); - ArrayUtils.arraycopy(row.entries, 0, destEntries, -start-1, row.entries.length); - ArrayUtils.arraycopy( + System.arraycopy(src.entries, 0, destEntries, 0, -start-1); + System.arraycopy(row.entries, 0, destEntries, -start-1, row.entries.length); + System.arraycopy( src.entries, -start-1, destEntries, -start-1+row.entries.length, destEntries.length-(row.entries.length - start - 1) ); @@ -318,11 +318,11 @@ public static CooCMatrix setRow(CooCMatrix src, int rowIdx, CooCVector row) { destRowIndices = new int[destEntries.length]; destColIndices = new int[destEntries.length]; - ArrayUtils.arraycopy(src.entries, 0, destEntries, 0, start); - ArrayUtils.arraycopy(row.entries, 0, destEntries, start, row.entries.length); + System.arraycopy(src.entries, 0, destEntries, 0, start); + System.arraycopy(row.entries, 0, destEntries, start, row.entries.length); int length = destEntries.length - (start + row.entries.length); - ArrayUtils.arraycopy( + System.arraycopy( src.entries, end, destEntries, start + row.entries.length, length ); @@ -373,7 +373,7 @@ public static CooCMatrix setCol(CooCMatrix src, int colIdx, CNumber[] col) { // Add all entries in old matrix that are NOT in the specified column. for(int i=0; i= start && src.colIndices[i] < end) { - entries.add(src.entries[i].copy()); + entries.add(src.entries[i]); indices.add(src.colIndices[i]); } } @@ -830,7 +830,7 @@ public static CooCVector getCol(CooCMatrix src, int colIdx) { for(int i=0; i= start && src.rowIndices[i] < end) { - entries.add(src.entries[i].copy()); + entries.add(src.entries[i]); indices.add(src.rowIndices[i]); } } @@ -934,7 +934,7 @@ private static void copyValuesNotInSlice(CooCMatrix src, List entries, if( !(ArrayUtils.contains(rowRange, src.rowIndices[i]) && ArrayUtils.contains(colRange, src.colIndices[i])) ) { // Then the entry is not in the slice so add it. - entries.add(src.entries[i].copy()); + entries.add(src.entries[i]); rowIndices.add(src.rowIndices[i]); colIndices.add(src.colIndices[i]); } @@ -942,7 +942,7 @@ private static void copyValuesNotInSlice(CooCMatrix src, List entries, } - private static , U extends MatrixMixin> + private static , U extends MatrixMixin> void setSliceParamCheck(T src, U values, int row, int col) { ParameterChecks.assertIndexInBounds(src.numRows(), row); ParameterChecks.assertIndexInBounds(src.numCols(), col); @@ -951,7 +951,7 @@ void setSliceParamCheck(T src, U values, int row, int col) { } - private static > + private static > void setSliceParamCheck(T src, int valueRows, int valueCols, int row, int col) { ParameterChecks.assertIndexInBounds(src.numRows(), row); ParameterChecks.assertIndexInBounds(src.numCols(), col); diff --git a/src/main/java/org/flag4j/operations/sparse/coo/complex/ComplexSparseMatrixManipulations.java b/src/main/java/org/flag4j/operations/sparse/coo/complex/ComplexSparseMatrixManipulations.java index 4376326af..e90d8d62f 100644 --- a/src/main/java/org/flag4j/operations/sparse/coo/complex/ComplexSparseMatrixManipulations.java +++ b/src/main/java/org/flag4j/operations/sparse/coo/complex/ComplexSparseMatrixManipulations.java @@ -85,7 +85,7 @@ public static CooCMatrix removeRows(CooCMatrix src, int... rowIdxs) { for(int i=0; i 0) { - ArrayUtils.arraycopy(src.entries, 0, entries, 0, startEnd[0]); - ArrayUtils.arraycopy(src.entries, startEnd[1], entries, startEnd[0], entries.length - startEnd[0]); + System.arraycopy(src.entries, 0, entries, 0, startEnd[0]); + System.arraycopy(src.entries, startEnd[1], entries, startEnd[0], entries.length - startEnd[0]); System.arraycopy(src.rowIndices, 0, rowIndices, 0, startEnd[0]); System.arraycopy(src.rowIndices, startEnd[1], rowIndices, startEnd[0], entries.length - startEnd[0]); @@ -172,7 +172,7 @@ private static void copyRanges(CooCMatrix src, CNumber[] entries, int[] System.arraycopy(src.colIndices, 0, colIndices, 0, startEnd[0]); System.arraycopy(src.colIndices, startEnd[1], colIndices, startEnd[0], entries.length - startEnd[0]); } else { - ArrayUtils.arraycopy(src.entries, 0, entries, 0, entries.length); + System.arraycopy(src.entries, 0, entries, 0, entries.length); System.arraycopy(src.rowIndices, 0, rowIndices, 0, rowIndices.length); System.arraycopy(src.colIndices, 0, colIndices, 0, colIndices.length); } diff --git a/src/main/java/org/flag4j/operations/sparse/coo/complex/ComplexSparseMatrixMultiplication.java b/src/main/java/org/flag4j/operations/sparse/coo/complex/ComplexSparseMatrixMultiplication.java index 2af260a0f..28d72a578 100644 --- a/src/main/java/org/flag4j/operations/sparse/coo/complex/ComplexSparseMatrixMultiplication.java +++ b/src/main/java/org/flag4j/operations/sparse/coo/complex/ComplexSparseMatrixMultiplication.java @@ -31,6 +31,7 @@ import org.flag4j.util.ArrayUtils; import org.flag4j.util.ErrorMessages; +import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; @@ -40,7 +41,7 @@ * This class contains low level methods for computing the matrix multiplication of sparse complex matrices/vectors.
    * WARNING: The methods in this class do not perform any sanity checks. */ -public class ComplexSparseMatrixMultiplication { +public final class ComplexSparseMatrixMultiplication { private ComplexSparseMatrixMultiplication() { // Hide default constructor for utility class. @@ -66,7 +67,7 @@ public static CNumber[] standard(CNumber[] src1, int[] rowIndices1, int[] colInd int cols2 = shape2.get(1); CNumber[] dest = new CNumber[rows1*cols2]; - ArrayUtils.fillZeros(dest); + Arrays.fill(dest, CNumber.ZERO); // Create a map where key is row index from src2. // and value is a list of indices in src2 where this row appears. @@ -82,7 +83,7 @@ public static CNumber[] standard(CNumber[] src1, int[] rowIndices1, int[] colInd for(int j : map.get(c1)) { // Iterate over all entries in src2 where rowIndices[j] == colIndices[j] int c2 = colIndices2[j]; // = j - dest[rowIdx + c2].addEq(src1[i].mult(src2[j])); + dest[rowIdx + c2] = dest[rowIdx + c2].add(src1[i].mult(src2[j])); } } } @@ -112,7 +113,7 @@ public static CNumber[] concurrentStandard(CNumber[] src1, int[] rowIndices1, in int cols2 = shape2.get(1); CNumber[] dest = new CNumber[rows1*cols2]; - ArrayUtils.fillZeros(dest); + Arrays.fill(dest, CNumber.ZERO); ConcurrentMap destMap = new ConcurrentHashMap<>(); // Create a map where key is row index from src2. @@ -129,7 +130,7 @@ public static CNumber[] concurrentStandard(CNumber[] src1, int[] rowIndices1, in for(int j : map.get(c1)) { // Iterate over all entries in src2 where rowIndices[j] == colIndices[j] int idx = rowIdx + colIndices2[j]; - destMap.put(idx, destMap.getOrDefault(idx, new CNumber()).add(src1[i].mult(src2[j]))); + destMap.put(idx, destMap.getOrDefault(idx, CNumber.ZERO).add(src1[i].mult(src2[j]))); } } }); @@ -172,7 +173,7 @@ public static CNumber[] standardVector(CNumber[] src1, int[] rowIndices1, int[] r2 = indices[j]; // = k if(c1==r2) { // Then we multiply and add to sum. - dest[r1].addEq(src1[i].mult(src2[j])); + dest[r1] = dest[r1].add(src1[i].mult(src2[j])); } } } @@ -210,7 +211,7 @@ public static CNumber[] concurrentStandardVector(CNumber[] src1, int[] rowIndice CNumber product = src1[i].mult(src2[j]); synchronized (dest) { - dest[r1].addEq(product); + dest[r1] = dest[r1].add(product); } } } diff --git a/src/main/java/org/flag4j/operations/sparse/coo/complex/ComplexSparseMatrixOperations.java b/src/main/java/org/flag4j/operations/sparse/coo/complex/ComplexSparseMatrixOperations.java index eeba73292..d276f0df7 100644 --- a/src/main/java/org/flag4j/operations/sparse/coo/complex/ComplexSparseMatrixOperations.java +++ b/src/main/java/org/flag4j/operations/sparse/coo/complex/ComplexSparseMatrixOperations.java @@ -28,17 +28,17 @@ import org.flag4j.arrays.sparse.CooCMatrix; import org.flag4j.arrays.sparse.CooCVector; import org.flag4j.complex_numbers.CNumber; -import org.flag4j.util.ArrayUtils; import org.flag4j.util.ErrorMessages; import org.flag4j.util.ParameterChecks; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; /** * This class has low level implementations for operations between two complex sparse matrices. */ -public class ComplexSparseMatrixOperations { +public final class ComplexSparseMatrixOperations { private ComplexSparseMatrixOperations() { // Hide default constructor for utility class. @@ -96,12 +96,12 @@ public static CooCMatrix add(CooCMatrix src1, CooCMatrix src2) { src1Counter++; src2Counter++; } else if(add1) { - values.add(src1.entries[src1Counter].copy()); + values.add(src1.entries[src1Counter]); rowIndices.add(src1.rowIndices[src1Counter]); colIndices.add(src1.colIndices[src1Counter]); src1Counter++; } else { - values.add(src2.entries[src2Counter].copy()); + values.add(src2.entries[src2Counter]); rowIndices.add(src2.rowIndices[src2Counter]); colIndices.add(src2.colIndices[src2Counter]); src2Counter++; @@ -127,7 +127,7 @@ public static CooCMatrix add(CooCMatrix src1, CooCMatrix src2) { */ public static CMatrix add(CooCMatrix src, CNumber a) { CNumber[] sum = new CNumber[src.totalEntries().intValueExact()]; - ArrayUtils.fill(sum, a); + Arrays.fill(sum, a); int row; int col; @@ -135,7 +135,7 @@ public static CMatrix add(CooCMatrix src, CNumber a) { for(int i=0; iUtility class for computing tensor dot products between two {@link CooTensor real sparse COO tensors}.

    + */ public final class RealCooTensorDot { private RealCooTensorDot() { @@ -69,7 +73,7 @@ public static Tensor tensorDot(CooTensor src1, CooTensor src2, int[] src1Axes, i int pos; // ---- Compute new axes and shapes for first tensor. ---- - notin = ArrayUtils.notinAxes(src1Axes, src1.getRank()); + notin = ArrayUtils.notInAxes(src1Axes, src1.getRank()); int[] src1NewAxes = ArrayUtils.join(notin, src1Axes); n2 = 1; @@ -90,7 +94,7 @@ public static Tensor tensorDot(CooTensor src1, CooTensor src2, int[] src1Axes, i // ----------------------------------------------------- // ---- Compute new axes and shapes for second tensor. ---- - notin = ArrayUtils.notinAxes(src2Axes, src2.getRank()); + notin = ArrayUtils.notInAxes(src2Axes, src2.getRank()); int[] src2NewAxes = ArrayUtils.join(src2Axes, notin); n2 = 1; diff --git a/src/main/java/org/flag4j/operations/sparse/coo/real_complex/RealComplexCooTensorOperations.java b/src/main/java/org/flag4j/operations/sparse/coo/real_complex/RealComplexCooTensorOperations.java index 83485de6d..b26305bbf 100644 --- a/src/main/java/org/flag4j/operations/sparse/coo/real_complex/RealComplexCooTensorOperations.java +++ b/src/main/java/org/flag4j/operations/sparse/coo/real_complex/RealComplexCooTensorOperations.java @@ -80,7 +80,7 @@ public static CooCTensor add(CooCTensor src1, CooTensor src2) { if(src2Pos < src2.nnz && Arrays.equals(src1Idx, src2Indices[src2Pos])) { sumEntries.add(val1.add(src2.entries[src2Pos++])); } else { - sumEntries.add(val1.copy()); + sumEntries.add(val1); } sumIndices.add(src1Idx); } @@ -129,7 +129,7 @@ public static CooCTensor sub(CooCTensor src1, CooTensor src2) { if(src2Pos < src2.nnz && Arrays.equals(src1Idx, src2Indices[src2Pos])) { sumEntries.add(val1.sub(src2.entries[src2Pos++])); } else { - sumEntries.add(val1.copy()); + sumEntries.add(val1); } sumIndices.add(src1Idx); } diff --git a/src/main/java/org/flag4j/operations/sparse/coo/real_complex/RealComplexSparseMatrixMultiplication.java b/src/main/java/org/flag4j/operations/sparse/coo/real_complex/RealComplexSparseMatrixMultiplication.java index f01856dae..1657e4d23 100644 --- a/src/main/java/org/flag4j/operations/sparse/coo/real_complex/RealComplexSparseMatrixMultiplication.java +++ b/src/main/java/org/flag4j/operations/sparse/coo/real_complex/RealComplexSparseMatrixMultiplication.java @@ -28,9 +28,9 @@ import org.flag4j.concurrency.ThreadManager; import org.flag4j.core.Shape; import org.flag4j.operations.sparse.coo.SparseUtils; -import org.flag4j.util.ArrayUtils; import org.flag4j.util.ErrorMessages; +import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; @@ -42,7 +42,7 @@ * matrix/vector.
    * WARNING: The methods in this class do not provide sanity checks. */ -public class RealComplexSparseMatrixMultiplication { +public final class RealComplexSparseMatrixMultiplication { private RealComplexSparseMatrixMultiplication() { // Hide default constructor for utility class. @@ -68,7 +68,7 @@ public static CNumber[] standard(CNumber[] src1, int[] rowIndices1, int[] colInd int cols2 = shape2.get(1); CNumber[] dest = new CNumber[rows1*cols2]; - ArrayUtils.fillZeros(dest); + Arrays.fill(dest, CNumber.ZERO); // Create a map where key is row index from src2. // and value is a list of indices in src2 where this row appears. @@ -84,7 +84,7 @@ public static CNumber[] standard(CNumber[] src1, int[] rowIndices1, int[] colInd for(int j : map.get(c1)) { // Iterate over all entries in src2 where rowIndices[j] == colIndices[j] int c2 = colIndices2[j]; // = j - dest[rowIdx + c2].addEq(src1[i].mult(src2[j])); + dest[rowIdx + c2] = dest[rowIdx + c2].add(src1[i].mult(src2[j])); } } } @@ -112,7 +112,7 @@ public static CNumber[] concurrentStandard(CNumber[] src1, int[] rowIndices1, in int cols2 = shape2.get(1); CNumber[] dest = new CNumber[rows1*cols2]; - ArrayUtils.fillZeros(dest); + Arrays.fill(dest, CNumber.ZERO); ConcurrentMap destMap = new ConcurrentHashMap<>(); // Create a map where key is row index from src2. @@ -129,7 +129,7 @@ public static CNumber[] concurrentStandard(CNumber[] src1, int[] rowIndices1, in for(int j : map.get(c1)) { // Iterate over all entries in src2 where rowIndices[j] == colIndices[j] int idx = rowIdx + colIndices2[j]; - destMap.put(idx, destMap.getOrDefault(idx, new CNumber()).add(src1[i].mult(src2[j]))); + destMap.put(idx, destMap.getOrDefault(idx, CNumber.ZERO).add(src1[i].mult(src2[j]))); } } }); @@ -161,7 +161,7 @@ public static CNumber[] standardVector(CNumber[] src1, int[] rowIndices1, int[] int cols2 = shape2.get(1); CNumber[] dest = new CNumber[rows1*cols2]; - ArrayUtils.fillZeros(dest); + Arrays.fill(dest, CNumber.ZERO); // r1, c1, and r2 store the indices for non-zero values in src1 and src2. int r1, c1, r2; @@ -174,7 +174,7 @@ public static CNumber[] standardVector(CNumber[] src1, int[] rowIndices1, int[] r2 = indices[j]; // = k if(c1==r2) { // Then we multiply and add to sum. - dest[r1*cols2].addEq(src1[i].mult(src2[j])); + dest[r1*cols2] = dest[r1*cols2].add(src1[i].mult(src2[j])); } } } @@ -202,7 +202,7 @@ public static CNumber[] concurrentStandardVector(CNumber[] src1, int[] rowIndice int cols2 = shape2.get(1); CNumber[] dest = new CNumber[rows1*cols2]; - ArrayUtils.fillZeros(dest); + Arrays.fill(dest, CNumber.ZERO); ThreadManager.concurrentLoop(0, src1.length, (i) -> { int r1 = rowIndices1[i]; // = i @@ -215,7 +215,7 @@ public static CNumber[] concurrentStandardVector(CNumber[] src1, int[] rowIndice CNumber product = src1[i].mult(src2[j]); synchronized (dest) { - dest[r1*cols2].addEq(product); + dest[r1*cols2] = dest[r1*cols2].add(product); } } } @@ -243,7 +243,7 @@ public static CNumber[] standard(double[] src1, int[] rowIndices1, int[] colIndi int cols2 = shape2.get(1); CNumber[] dest = new CNumber[rows1*cols2]; - ArrayUtils.fillZeros(dest); + Arrays.fill(dest, CNumber.ZERO); // Create a map where key is row index from src2. // and value is a list of indices in src2 where this row appears. @@ -259,7 +259,7 @@ public static CNumber[] standard(double[] src1, int[] rowIndices1, int[] colIndi for(int j : map.get(c1)) { // Iterate over all entries in src2 where rowIndices[j] == colIndices[j] int c2 = colIndices2[j]; // = j - dest[rowIdx + c2].addEq(src2[j].mult(src1[i])); + dest[rowIdx + c2] = dest[rowIdx + c2].add(src2[j].mult(src1[i])); } } } @@ -287,7 +287,7 @@ public static CNumber[] concurrentStandard(double[] src1, int[] rowIndices1, int int cols2 = shape2.get(1); CNumber[] dest = new CNumber[rows1*cols2]; - ArrayUtils.fillZeros(dest); + Arrays.fill(dest, CNumber.ZERO); ConcurrentMap destMap = new ConcurrentHashMap<>(); // Create a map where key is row index from src2. @@ -304,7 +304,7 @@ public static CNumber[] concurrentStandard(double[] src1, int[] rowIndices1, int for(int j : map.get(c1)) { // Iterate over all entries in src2 where rowIndices[j] == colIndices[j] int idx = rowIdx + colIndices2[j]; - destMap.put(idx, destMap.getOrDefault(idx, new CNumber()).add(src2[j].mult(src1[i]))); + destMap.put(idx, destMap.getOrDefault(idx, CNumber.ZERO).add(src2[j].mult(src1[i]))); } } }); @@ -336,7 +336,7 @@ public static CNumber[] standardVector(double[] src1, int[] rowIndices1, int[] c int cols2 = shape2.get(1); CNumber[] dest = new CNumber[rows1*cols2]; - ArrayUtils.fillZeros(dest); + Arrays.fill(dest, CNumber.ZERO); // r1, c1, r2, and store the indices for non-zero values in src1 and src2. int r1, c1, r2; @@ -349,7 +349,7 @@ public static CNumber[] standardVector(double[] src1, int[] rowIndices1, int[] c r2 = indices[j]; // = k if(c1==r2) { // Then we multiply and add to sum. - dest[r1*cols2].addEq(src2[j].mult(src1[i])); + dest[r1*cols2] = dest[r1*cols2].add(src2[j].mult(src1[i])); } } } @@ -377,7 +377,7 @@ public static CNumber[] concurrentStandardVector(double[] src1, int[] rowIndices int cols2 = shape2.get(1); CNumber[] dest = new CNumber[rows1*cols2]; - ArrayUtils.fillZeros(dest); + Arrays.fill(dest, CNumber.ZERO); ThreadManager.concurrentLoop(0, src1.length, (i) -> { int r1 = rowIndices1[i]; // = i @@ -390,7 +390,7 @@ public static CNumber[] concurrentStandardVector(double[] src1, int[] rowIndices CNumber product = src2[j].mult(src1[i]); synchronized (dest) { - dest[r1*cols2].addEq(product); + dest[r1*cols2] = dest[r1*cols2].add(product); } } } diff --git a/src/main/java/org/flag4j/operations/sparse/coo/real_complex/RealComplexSparseMatrixOperations.java b/src/main/java/org/flag4j/operations/sparse/coo/real_complex/RealComplexSparseMatrixOperations.java index 784c0678b..eaa1695f4 100644 --- a/src/main/java/org/flag4j/operations/sparse/coo/real_complex/RealComplexSparseMatrixOperations.java +++ b/src/main/java/org/flag4j/operations/sparse/coo/real_complex/RealComplexSparseMatrixOperations.java @@ -35,12 +35,13 @@ import org.flag4j.util.ParameterChecks; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; /** * This class has low level implementations for operations between a real sparse matrix and a complex sparse matrix. */ -public class RealComplexSparseMatrixOperations { +public final class RealComplexSparseMatrixOperations { private RealComplexSparseMatrixOperations() { // Hide default constructor for utility class. @@ -99,7 +100,7 @@ public static CooCMatrix add(CooCMatrix src1, CooMatrix src2) { src1Counter++; src2Counter++; } else if(add1) { - values.add(src1.entries[src1Counter].copy()); + values.add(src1.entries[src1Counter]); rowIndices.add(src1.rowIndices[src1Counter]); colIndices.add(src1.colIndices[src1Counter]); src1Counter++; @@ -155,15 +156,14 @@ public static CMatrix add(CooCMatrix src, double a) { */ public static CMatrix add(CooMatrix src, CNumber a) { CNumber[] sum = new CNumber[src.totalEntries().intValueExact()]; - ArrayUtils.fill(sum, a); + Arrays.fill(sum, a); int row; int col; for(int i=0; i= colStart && col < colEnd) { - slice.add(src.entries[j].copy()); + slice.add(src.entries[j]); sliceRowIndices.add(i); sliceColIndices.add(col); } @@ -157,7 +157,7 @@ public static CsrCMatrix transpose(CsrCMatrix src) { for (int i = src.rowPointers[row]; i < src.rowPointers[row + 1]; i++) { int col = src.colIndices[i]; int pos = tempPos[col]; - dest[pos] = src.entries[i].copy(); + dest[pos] = src.entries[i]; colIndices[pos] = row; tempPos[col]++; } @@ -208,12 +208,12 @@ public static CsrCMatrix applyBinOpp(CsrCMatrix src1, CsrCMatrix src2, rowPtr1++; rowPtr2++; } else if(col1 < col2) { - dest.add(src1.entries[rowPtr1].copy()); + dest.add(src1.entries[rowPtr1]); colIndices.add(col1); rowPtr1++; } else { if(uOpp!=null) dest.add(uOpp.apply(src2.entries[rowPtr2])); - else dest.add(src2.entries[rowPtr2].copy()); + else dest.add(src2.entries[rowPtr2]); colIndices.add(col2); rowPtr2++; } @@ -222,7 +222,7 @@ public static CsrCMatrix applyBinOpp(CsrCMatrix src1, CsrCMatrix src2, } while(rowPtr1 < src1.rowPointers[i+1]) { - dest.add(src1.entries[rowPtr1].copy()); + dest.add(src1.entries[rowPtr1]); colIndices.add(src1.colIndices[rowPtr1]); rowPtr1++; rowPointers[i+1]++; @@ -230,7 +230,7 @@ public static CsrCMatrix applyBinOpp(CsrCMatrix src1, CsrCMatrix src2, while(rowPtr2 < src2.rowPointers[i+1]) { if(uOpp!=null) dest.add(uOpp.apply(src2.entries[rowPtr2])); - else dest.add(src2.entries[rowPtr2].copy()); + else dest.add(src2.entries[rowPtr2]); colIndices.add(src2.colIndices[rowPtr2]); rowPtr2++; rowPointers[i+1]++; @@ -268,7 +268,8 @@ public static CMatrix addToEachCol(CsrCMatrix src1, Vector src2) { int rowOffset = i*sum.numCols; for(int j=rowStart; j= src.numCols) { int diagCount = 0; - CNumber one = CNumber.one(); - CNumber zero = CNumber.zero(); + CNumber one = CNumber.ONE; + CNumber zero = CNumber.ZERO; for(int i=0; i - * Fills an array with zeros seperated by the given stride. + * Fills an array with zeros separated by the given stride. *

    * *

    @@ -331,7 +208,7 @@ public static void fillZeros(double[] dest, int start, int end) { * @throws IllegalArgumentException If stride is less than 1. * @throws IllegalArgumentException If start is less than 0. */ - public static void stridedFillZeros(double[] dest, int start, int stride) { + public static void stridedFillZeros(final double[] dest, final int start, final int stride) { ParameterChecks.assertGreaterEq(1, stride); ParameterChecks.assertGreaterEq(0, start); @@ -342,7 +219,7 @@ public static void stridedFillZeros(double[] dest, int start, int stride) { /** *

    - * Fills an array with zeros seperated by the given stride. + * Fills an array with zeros separated by the given stride. *

    * *

    @@ -355,12 +232,12 @@ public static void stridedFillZeros(double[] dest, int start, int stride) { * @throws IllegalArgumentException If stride is less than 1. * @throws IllegalArgumentException If start is less than 0. */ - public static void stridedFillZeros(CNumber[] dest, int start, int stride) { + public static void stridedFillZeros(final CNumber[] dest, final int start, final int stride) { ParameterChecks.assertGreaterEq(1, stride); ParameterChecks.assertGreaterEq(0, start); for(int i = start; i < dest.length; i += stride) - dest[i] = new CNumber(); + dest[i] = CNumber.ZERO; } @@ -383,13 +260,13 @@ public static void stridedFillZeros(CNumber[] dest, int start, int stride) { * @throws IllegalArgumentException If stride or length is less than one. * @throws IllegalArgumentException If start is less than zero. */ - public static void stridedFillZeros(CNumber[] dest, int start, int length, int stride) { + public static void stridedFillZeros(final CNumber[] dest, final int start, final int length, final int stride) { ParameterChecks.assertGreaterEq(1, stride, length); ParameterChecks.assertGreaterEq(0, start); for (int i = start; i < dest.length; i += stride + length) { for (int j = 0; j < length; j++) { - dest[i + j] = new CNumber(); + dest[i + j] = CNumber.ZERO; } } } @@ -397,8 +274,8 @@ public static void stridedFillZeros(CNumber[] dest, int start, int length, int s /** *

    - * Fills an array with a range of zeros, each seperated by the given stride. Specifically, the destination array will - * be filled with several sequential ranges of zeros of specified length. Each range of zeros will be seperated by + * Fills an array with a range of zeros, each separated by the given stride. Specifically, the destination array will + * be filled with several sequential ranges of zeros of specified length. Each range of zeros will be separated by * the stride. *

    * @@ -414,7 +291,7 @@ public static void stridedFillZeros(CNumber[] dest, int start, int length, int s * @throws IllegalArgumentException If stride or length is less than one. * @throws IllegalArgumentException If start is less than zero. */ - public static void stridedFillZeros(double[] dest, int start, int length, int stride) { + public static void stridedFillZeros(final double[] dest, final int start, final int length, final int stride) { ParameterChecks.assertGreaterEq(1, stride, length); ParameterChecks.assertGreaterEq(0, start); @@ -432,9 +309,9 @@ public static void stridedFillZeros(double[] dest, int start, int length, int st * @param dest Array to fill. * @param fillValue Value to fill array with. */ - public static void fill(CNumber[] dest, double fillValue) { - for (int i = 0; i < dest.length; i++) - dest[i] = new CNumber(fillValue); + public static void fill(final CNumber[] dest, final double fillValue) { + CNumber fillValueComplex = new CNumber(fillValue); + Arrays.fill(dest, fillValueComplex); } @@ -444,12 +321,9 @@ public static void fill(CNumber[] dest, double fillValue) { * @param dest Array to fill. * @param fillValue Value to fill array with. */ - public static void fill(CNumber[][] dest, CNumber fillValue) { - for (int i = 0; i < dest.length; i++) { - for (int j = 0; j < dest[0].length; j++) { - dest[i][j] = fillValue.copy(); - } - } + public static void fill(final CNumber[][] dest, final CNumber fillValue) { + for(CNumber[] row : dest) + Arrays.fill(row, fillValue); } @@ -461,7 +335,7 @@ public static void fill(CNumber[][] dest, CNumber fillValue) { * @param from Staring index of range (inclusive). * @param to Ending index of range (exclusive). */ - public static void fill(CNumber[] dest, double fillValue, int from, int to) { + public static void fill(final CNumber[] dest, final double fillValue, final int from, final int to) { ParameterChecks.assertLessEq(to, from + 1); for (int i = from; i < to; i++) @@ -469,18 +343,6 @@ public static void fill(CNumber[] dest, double fillValue, int from, int to) { } - /** - * Fills an array with specified value. - * - * @param dest Array to fill. - * @param fillValue Value to fill array with. - */ - public static void fill(CNumber[] dest, CNumber fillValue) { - for (int i = 0; i < dest.length; i++) - dest[i] = fillValue.copy(); - } - - /** * Fills an array with specified value. Similar to {@link Arrays#fill(Object[], Object)} but creates deep copy of the fill value * for each position. @@ -492,9 +354,9 @@ public static void fill(CNumber[] dest, CNumber fillValue) { * of this value. * @throws ArrayIndexOutOfBoundsException If {@code start} or {@code end} is not within the destination array. */ - public static void fill(CNumber[] dest, int start, int end, CNumber fillValue) { + public static void fill(final CNumber[] dest, final int start, final int end, final CNumber fillValue) { for (int i = start; i < end; i++) - dest[i] = fillValue.copy(); + dest[i] = fillValue; } @@ -504,7 +366,7 @@ public static void fill(CNumber[] dest, int start, int end, CNumber fillValue) { * @param dest Array to fill. * @param fillValue Value to fill array with. */ - public static void fill(double[][] dest, double fillValue) { + public static void fill(final double[][] dest, final double fillValue) { for (double[] doubles : dest) Arrays.fill(doubles, fillValue); } @@ -516,7 +378,7 @@ public static void fill(double[][] dest, double fillValue) { * @param src Array to convert. * @return An equivalent array list. */ - public static ArrayList toArrayList(double[] src) { + public static ArrayList toArrayList(final double[] src) { ArrayList list = new ArrayList<>(src.length); for(double value : src) @@ -532,11 +394,10 @@ public static ArrayList toArrayList(double[] src) { * @param src Array to convert. * @return An equivalent array list. */ - public static ArrayList toArrayList(CNumber[] src) { + public static ArrayList toArrayList(final CNumber[] src) { ArrayList list = new ArrayList<>(src.length); - for(CNumber value : src) - list.add(value.copy()); + list.addAll(Arrays.asList(src)); return list; } @@ -548,7 +409,7 @@ public static ArrayList toArrayList(CNumber[] src) { * @param src Array to convert. * @return An equivalent complex array list. */ - public static ArrayList toComplexArrayList(double[] src) { + public static ArrayList toComplexArrayList(final double[] src) { ArrayList list = new ArrayList<>(src.length); for (double value : src) @@ -564,7 +425,7 @@ public static ArrayList toComplexArrayList(double[] src) { * @param src Array to convert. * @return An equivalent array list. */ - public static ArrayList toArrayList(int[] src) { + public static ArrayList toArrayList(final int[] src) { ArrayList list = new ArrayList<>(src.length); for (int value : src) @@ -580,7 +441,7 @@ public static ArrayList toArrayList(int[] src) { * @param src Source list to convert. * @return An array containing the same values as the {@code src} list. */ - public static double[] fromDoubleList(List src) { + public static double[] fromDoubleList(final List src) { double[] dest = new double[src.size()]; for (int i = 0; i < dest.length; i++) @@ -596,7 +457,7 @@ public static double[] fromDoubleList(List src) { * @param src Source list to convert. * @return An array containing the same values as the {@code src} list. */ - public static int[] fromIntegerList(List src) { + public static int[] fromIntegerList(final List src) { int[] dest = new int[src.size()]; for (int i = 0; i < dest.length; i++) @@ -613,7 +474,7 @@ public static int[] fromIntegerList(List src) { * @param dest Destination array to store values from {@code src} in (modified). Must be at least as large as {@code src}. * @return A reference to the {@code dest} array. */ - public static int[] fromIntegerList(List src, int[] dest) { + public static int[] fromIntegerList(final List src, final int[] dest) { ParameterChecks.assertGreaterEq(src.size(), dest.length); for (int i = 0; i < dest.length; i++) @@ -632,7 +493,7 @@ public static int[] fromIntegerList(List src, int[] dest) { * @throws IllegalArgumentException If the {@code dest} array is not large enough to store all entries of {@code src} * list. */ - public static T[] fromList(List src, T[] dest) { + public static T[] fromList(final List src, final T[] dest) { ParameterChecks.assertGreaterEq(src.size(), dest.length); return src.toArray(dest); } @@ -646,7 +507,7 @@ public static T[] fromList(List src, T[] dest) { * @param j Index of second value to swap. * @throws IndexOutOfBoundsException If {@code i} or {@code j} are out of the bounds of {@code arr}. */ - public static void swap(int[] arr, int i, int j) { + public static void swap(final int[] arr, final int i, final int j) { int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; @@ -661,7 +522,7 @@ public static void swap(int[] arr, int i, int j) { * the array must be a permutation of {@code {0, 1, 2, ..., N-1}}. * @throws IllegalArgumentException If {@code indices} is not a permutation of {@code {0, 1, 2, ..., N-1}}. */ - public static void swap(int[] src, int[] indices) { + public static void swap(final int[] src, final int[] indices) { ParameterChecks.assertPermutation(indices); int[] swapped = new int[src.length]; @@ -682,7 +543,7 @@ public static void swap(int[] src, int[] indices) { * @param j Index of second value to swap. * @throws IndexOutOfBoundsException If {@code i} or {@code j} are out of the bounds of {@code arr}. */ - public static void swap(double[] arr, int i, int j) { + public static void swap(final double[] arr, final int i, final int j) { double temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; @@ -697,29 +558,13 @@ public static void swap(double[] arr, int i, int j) { * @param j Index of second value to swap. * @throws IndexOutOfBoundsException If {@code i} or {@code j} are out of the bounds of {@code arr}. */ - public static void swap(Object[] arr, int i, int j) { + public static void swap(final Object[] arr, final int i, final int j) { Object temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } - /** - * Copy and swaps to elements from a source array to a destination array. - * - * @param src Array to swap elements in. - * @param i Index of first value to swap. - * @param j Index of second value to swap. - * @param dest Destination array for copy (Assumed to be correctly sized). - * @throws IndexOutOfBoundsException If {@code i} or {@code j} are out of the bounds of {@code src}. - */ - public static void swapCopy(int[] src, int i, int j, int[] dest) { - int temp = src[i]; - src[i] = src[j]; - src[j] = temp; - } - - /** * Gets an array filled with integers from {@code start} (inclusive) to {@code end} (exclusive) * @@ -727,12 +572,12 @@ public static void swapCopy(int[] src, int i, int j, int[] dest) { * @param end Stopping value (exclusive). * @return An array containing the integer range {@code [start, end)}. */ - public static double[] range(int start, int end) { + public static double[] range(final int start, final int end) { double[] rangeArr = new double[end - start]; - int randeIdx = 0; + int rangeIdx = 0; for(int i = start; i < end; i++) - rangeArr[randeIdx++] = i; + rangeArr[rangeIdx++] = i; return rangeArr; } @@ -745,7 +590,7 @@ public static double[] range(int start, int end) { * @param end Stopping value (exclusive). * @return An array containing the integer range {@code [start, end)}. */ - public static int[] intRange(int start, int end) { + public static int[] intRange(final int start, final int end) { int[] rangeArr = new int[end - start]; int rangeIdx = 0; @@ -768,7 +613,7 @@ public static int[] intRange(int start, int end) { * @throws NegativeArraySizeException If {@code stride} is negative. * @throws IllegalArgumentException If {@code start} is not in {@code [0, end)} */ - public static int[] intRange(int start, int end, int stride) { + public static int[] intRange(final int start, final int end, final int stride) { ParameterChecks.assertInRange(start, 0, end, "start"); int[] rangeArr = new int[(end - start) * stride]; @@ -790,7 +635,7 @@ public static int[] intRange(int start, int end, int stride) { * @return True if all entries in {@code src2} have zero imaginary component and real component equal to the * corresponding entry in {@code src1}. Otherwise, returns false. */ - public static boolean equals(double[] src1, CNumber[] src2) { + public static boolean equals(final double[] src1, final CNumber[] src2) { boolean equal = true; if (src1.length != src2.length) { @@ -816,7 +661,7 @@ public static boolean equals(double[] src1, CNumber[] src2) { * @param key Values to check if they are in the source array. * @return A boolean describing if the specified key is in the array or not. */ - public static boolean notContains(int[] src, int key) { + public static boolean notContains(final int[] src, final int key) { return !contains(src, key); } @@ -830,7 +675,7 @@ public static boolean notContains(int[] src, int key) { * @return A boolean array with the same length as {@code keys} describing if the associated keys are in the * array. */ - public static boolean[] contains(double[] src, double... keys) { + public static boolean[] contains(final double[] src, final double... keys) { boolean[] result = new boolean[keys.length]; for (int i = 0; i < keys.length; i++) { @@ -850,7 +695,7 @@ public static boolean[] contains(double[] src, double... keys) { * @return A boolean array with the same length as {@code keys} describing if the associated keys are in the * array. */ - public static boolean[] contains(int[] src, int... keys) { + public static boolean[] contains(final int[] src, final int... keys) { boolean[] result = new boolean[keys.length]; for (int i = 0; i < keys.length; i++) { @@ -870,7 +715,7 @@ public static boolean[] contains(int[] src, int... keys) { * @return True if the {@code key} value is found in the array. False otherwise. * @see Arrays#sort(int[]) */ - public static boolean contains(int[] arr, int key) { + public static boolean contains(final int[] arr, final int key) { return Arrays.binarySearch(arr, key) >= 0; } @@ -884,7 +729,7 @@ public static boolean contains(int[] arr, int key) { * @return True if the {@code key} value is found in the array. False otherwise. * @see Arrays#sort(int[]) */ - public static boolean contains(double[] arr, double key) { + public static boolean contains(final double[] arr, final double key) { return Arrays.binarySearch(arr, key) >= 0; } @@ -895,7 +740,7 @@ public static boolean contains(double[] arr, double key) { * @param src Array to flatten. * @return The flattened array. */ - public static int[] flatten(int[][] src) { + public static int[] flatten(final int[][] src) { int[] flat = new int[src.length * src[0].length]; // Copy 2D array to 1D array. @@ -914,7 +759,7 @@ public static int[] flatten(int[][] src) { * @param src Array to flatten. * @return The flattened array. */ - public static double[] flatten(double[][] src) { + public static double[] flatten(final double[][] src) { double[] flat = new double[src.length * src[0].length]; // Copy 2D array to 1D array. @@ -933,7 +778,7 @@ public static double[] flatten(double[][] src) { * @param src Array to flatten and unbox. * @return The flattened array. */ - public static double[] unboxFlatten(Double[][] src) { + public static double[] unboxFlatten(final Double[][] src) { double[] flat = new double[src.length * src[0].length]; // Copy 2D array to 1D array. @@ -952,14 +797,14 @@ public static double[] unboxFlatten(Double[][] src) { * @param src Array to flatten. * @return The flattened array. */ - public static CNumber[] flatten(CNumber[][] src) { + public static CNumber[] flatten(final CNumber[][] src) { CNumber[] flat = new CNumber[src.length * src[0].length]; // Copy 2D array to 1D array. int flatIdx = 0; for (CNumber[] row : src) for (CNumber value : row) - flat[flatIdx++] = value.copy(); + flat[flatIdx++] = value; return flat; } @@ -973,7 +818,7 @@ public static CNumber[] flatten(CNumber[][] src) { * @return A single array of length {@code src1.length + src2.length} containing the elements of {@code src1} * followed by the elements of {@code src2}. */ - public static double[] join(double[] src1, double[] src2) { + public static double[] join(final double[] src1, final double[] src2) { double[] concatenate = Arrays.copyOf(src1, src1.length + src2.length); System.arraycopy(src2, 0, concatenate, src1.length, src2.length); @@ -989,7 +834,7 @@ public static double[] join(double[] src1, double[] src2) { * @return A single array of length {@code src1.length + src2.length} containing the elements of {@code src1} * followed by the elements of {@code src2}. */ - public static int[] join(int[] src1, int[] src2) { + public static int[] join(final int[] src1, final int[] src2) { int[] concatenate = Arrays.copyOf(src1, src1.length + src2.length); System.arraycopy(src2, 0, concatenate, src1.length, src2.length); @@ -1006,24 +851,24 @@ public static int[] join(int[] src1, int[] src2) { * @param dim Dimension of space which contains the axes of interest. * @return An array containing the set subtraction {@code {0, 1, 2, ...., dim-1}} - srcAxes. */ - public static int[] notinAxes(int[] srcAxes, int dim) { - int[] notin = new int[dim - srcAxes.length]; + public static int[] notInAxes(final int[] srcAxes, final int dim) { + int[] notIn = new int[dim - srcAxes.length]; // Copy and sort array. int[] srcAxesCopy = srcAxes.clone(); Arrays.sort(srcAxesCopy); int srcIndex = 0; - int notinIndex = 0; + int notInIndex = 0; for (int i = 0; i < dim; i++) { if(srcIndex < srcAxesCopy.length && srcAxesCopy[srcIndex] == i) srcIndex++; else - notin[notinIndex++] = i; + notIn[notInIndex++] = i; } - return notin; + return notIn; } @@ -1035,7 +880,7 @@ public static int[] notinAxes(int[] srcAxes, int dim) { * @return A reference to {@code indices}. * @see #shiftRange(int, int[], int, int) */ - public static int[] shift(int shift, int[] indices) { + public static int[] shift(final int shift, final int[] indices) { return shiftRange(shift, indices, 0, indices.length); } @@ -1051,7 +896,7 @@ public static int[] shift(int shift, int[] indices) { * @throws ArrayIndexOutOfBoundsException If start or stop is not within the bounds of the {@code indices} array. * @see #shift(int, int[]) */ - public static int[] shiftRange(int shift, int[] indices, int start, int stop) { + public static int[] shiftRange(final int shift, final int[] indices, final int start, final int stop) { for (int i = start; i < stop; i++) indices[i] += shift; @@ -1065,7 +910,7 @@ public static int[] shiftRange(int shift, int[] indices, int start, int stop) { * @param src The array to get unique values from. * @return A sorted array containing all unique values in the {@code src} array. */ - public static int[] uniqueSorted(int[] src) { + public static int[] uniqueSorted(final int[] src) { HashSet hashSet = new HashSet<>(); for(int j : src) @@ -1084,7 +929,7 @@ public static int[] uniqueSorted(int[] src) { * @return Returns the first index of the value {@code key} within the {@code arr} array. If the {@code key} does * not occur in the array, {@code -1} will be returned. */ - public static int indexOf(int[] arr, int key) { + public static int indexOf(final int[] arr, final int key) { for(int i = 0; i < arr.length; i++) if (arr[i] == key) return i; @@ -1098,7 +943,7 @@ public static int indexOf(int[] arr, int key) { * @param arr Array to convert. * @return A primitive array equivalent to {@code arr}. */ - public static double[] unbox(Double[] arr) { + public static double[] unbox(final Double[] arr) { int size = arr.length; double[] prim = new double[size]; @@ -1115,7 +960,7 @@ public static double[] unbox(Double[] arr) { * @param arr Array to convert. * @return A primitive array equivalent to {@code arr}. */ - public static int[] unbox(Integer[] arr) { + public static int[] unbox(final Integer[] arr) { int size = arr.length; int[] prim = new int[size]; @@ -1132,7 +977,7 @@ public static int[] unbox(Integer[] arr) { * @param src The source primitive array to box. * @return A boxed array equivalent to the {@code src} primitive array. */ - public static Double[] boxed(double[] src) { + public static Double[] boxed(final double[] src) { int size = src.length; Double[] boxed = new Double[size]; @@ -1149,7 +994,7 @@ public static Double[] boxed(double[] src) { * @param src The source primitive array to box. * @return A boxed array equivalent to the {@code src} primitive array. */ - public static Integer[] boxed(int[] src) { + public static Integer[] boxed(final int[] src) { int size = src.length; Integer[] boxed = new Integer[size]; @@ -1166,7 +1011,7 @@ public static Integer[] boxed(int[] src) { * @param arr Array to count unique elements in. * @return The number of unique elements in {@code arr}. */ - public static int numUnique(double[] arr) { + public static int numUnique(final double[] arr) { // For very large arrays, HashMap is quite a bit faster than HashSet. Map map = new HashMap<>(arr.length); @@ -1183,7 +1028,7 @@ public static int numUnique(double[] arr) { * @param arr Array to count unique elements in. * @return The number of unique elements in {@code arr}. */ - public static int numUnique(int[] arr) { + public static int numUnique(final int[] arr) { // For very large arrays, HashMap is quite a bit faster than HashSet. Map map = new HashMap<>(arr.length); @@ -1204,7 +1049,7 @@ public static int numUnique(int[] arr) { * {@link #numUnique(int[]) numUnique(arr) - 1}. */ @SuppressWarnings("ConstantConditions") - public static HashMap createUniqueMapping(int[] arr) { + public static HashMap createUniqueMapping(final int[] arr) { if (arr.length == 0 || arr == null) return new HashMap<>(); int[] arrSorted = Arrays.copyOf(arr, arr.length); @@ -1236,7 +1081,7 @@ public static HashMap createUniqueMapping(int[] arr) { * {@code (-insertion_point - 1)} where {@code insertion_point} is defined as the index the {@code key} would be * inserted into the sorted array. */ - public static int[] findFirstLast(int[] src, int key) { + public static int[] findFirstLast(final int[] src, final int key) { int keyIdx = Arrays.binarySearch(src, key); if (keyIdx < 0) return new int[]{keyIdx, keyIdx}; // Row not found. @@ -1265,7 +1110,7 @@ public static int[] findFirstLast(int[] src, int key) { * @param src The source array to repeat. * @return The {@code src} array repeated {@code numTimes times}. */ - public static int[] repeat(int numTimes, int[] src) { + public static int[] repeat(final int numTimes, final int[] src) { int[] repeated = new int[src.length * numTimes]; for(int i = 0; i < repeated.length; i += src.length) @@ -1283,7 +1128,7 @@ public static int[] repeat(int numTimes, int[] src) { * @return An array of specified {@code size} filled with the specified {@code value}. * @throws NegativeArraySizeException If {@code} is negative. */ - public static int[] filledArray(int size, int value) { + public static int[] filledArray(final int size, final int value) { int[] dest = new int[size]; Arrays.fill(dest, value); @@ -1299,7 +1144,7 @@ public static int[] filledArray(int size, int value) { * If null, a new double array with the same size as {@code src} will be created. * @return A reference to the {@code dest} array. */ - public static double[] asDouble(int[] src, double[] dest) { + public static double[] asDouble(final int[] src, double[] dest) { if(dest == null) dest = new double[src.length]; for (int i = 0; i < src.length; i++) @@ -1317,7 +1162,7 @@ public static double[] asDouble(int[] src, double[] dest) { * If null, a new double array with the same size as {@code src} will be created. * @return A reference to the {@code dest} array. */ - public static double[] asDouble(Integer[] src, double[] dest) { + public static double[] asDouble(final Integer[] src, double[] dest) { if (dest == null) dest = new double[src.length]; for(int i = 0; i < src.length; i++) @@ -1335,13 +1180,13 @@ public static double[] asDouble(Integer[] src, double[] dest) { * @param spliceIdx The index within {@code arr1} to splice {@code arr2} into. * @return The result of splicing {@code arr2} into {@code arr1} at the index {@code spliceIdx}. */ - public static CNumber[] splice(CNumber[] arr1, CNumber[] arr2, int spliceIdx) { + public static CNumber[] splice(final CNumber[] arr1, final CNumber[] arr2, final int spliceIdx) { ParameterChecks.assertIndexInBounds(arr1.length + 1, spliceIdx); CNumber[] spliced = new CNumber[arr1.length + arr2.length]; - arraycopy(arr1, 0, spliced, 0, spliceIdx); - arraycopy(arr2, 0, spliced, spliceIdx, arr2.length); - arraycopy(arr1, spliceIdx, spliced, spliceIdx + arr2.length, arr1.length - spliceIdx); + System.arraycopy(arr1, 0, spliced, 0, spliceIdx); + System.arraycopy(arr2, 0, spliced, spliceIdx, arr2.length); + System.arraycopy(arr1, spliceIdx, spliced, spliceIdx + arr2.length, arr1.length - spliceIdx); return spliced; } @@ -1355,13 +1200,13 @@ public static CNumber[] splice(CNumber[] arr1, CNumber[] arr2, int spliceIdx) { * @param spliceIdx The index within {@code arr1} to splice {@code arr2} into. * @return The result of splicing {@code arr2} into {@code arr1} at the index {@code spliceIdx}. */ - public static CNumber[] splice(CNumber[] arr1, double[] arr2, int spliceIdx) { + public static CNumber[] splice(final CNumber[] arr1, final double[] arr2, final int spliceIdx) { ParameterChecks.assertIndexInBounds(arr1.length + 1, spliceIdx); CNumber[] spliced = new CNumber[arr1.length + arr2.length]; - arraycopy(arr1, 0, spliced, 0, spliceIdx); + System.arraycopy(arr1, 0, spliced, 0, spliceIdx); arraycopy(arr2, 0, spliced, spliceIdx, arr2.length); - arraycopy(arr1, spliceIdx, spliced, spliceIdx + arr2.length, arr1.length - spliceIdx); + System.arraycopy(arr1, spliceIdx, spliced, spliceIdx + arr2.length, arr1.length - spliceIdx); return spliced; } @@ -1375,12 +1220,12 @@ public static CNumber[] splice(CNumber[] arr1, double[] arr2, int spliceIdx) { * @param spliceIdx The index within {@code arr1} to splice {@code arr2} into. * @return The result of splicing {@code arr2} into {@code arr1} at the index {@code spliceIdx}. */ - public static CNumber[] splice(double[] arr1, CNumber[] arr2, int spliceIdx) { + public static CNumber[] splice(final double[] arr1, final CNumber[] arr2, final int spliceIdx) { ParameterChecks.assertIndexInBounds(arr1.length + 1, spliceIdx); CNumber[] spliced = new CNumber[arr1.length + arr2.length]; arraycopy(arr1, 0, spliced, 0, spliceIdx); - arraycopy(arr2, 0, spliced, spliceIdx, arr2.length); + System.arraycopy(arr2, 0, spliced, spliceIdx, arr2.length); arraycopy(arr1, spliceIdx, spliced, spliceIdx + arr2.length, arr1.length - spliceIdx); return spliced; @@ -1395,7 +1240,7 @@ public static CNumber[] splice(double[] arr1, CNumber[] arr2, int spliceIdx) { * @param spliceIdx The index within {@code arr1} to splice {@code arr2} into. * @return The result of splicing {@code arr2} into {@code arr1} at the index {@code spliceIdx}. */ - public static double[] splice(double[] arr1, double[] arr2, int spliceIdx) { + public static double[] splice(final double[] arr1, final double[] arr2, final int spliceIdx) { ParameterChecks.assertIndexInBounds(arr1.length + 1, spliceIdx); double[] spliced = new double[arr1.length + arr2.length]; @@ -1415,7 +1260,7 @@ public static double[] splice(double[] arr1, double[] arr2, int spliceIdx) { * @param spliceIdx The index within {@code arr1} to splice {@code arr2} into. * @return The result of splicing {@code arr2} into {@code arr1} at the index {@code spliceIdx}. */ - public static int[] splice(int[] arr1, int[] arr2, int spliceIdx) { + public static int[] splice(final int[] arr1, final int[] arr2, final int spliceIdx) { ParameterChecks.assertIndexInBounds(arr1.length + 1, spliceIdx); int[] spliced = new int[arr1.length + arr2.length]; @@ -1435,7 +1280,7 @@ public static int[] splice(int[] arr1, int[] arr2, int spliceIdx) { * @param spliceIdx The index within {@code list} to splice {@code arr} into. * @return The result of splicing {@code arr} into {@code list} at the index {@code spliceIdx}. */ - public static double[] splice(List list, double[] arr, int spliceIdx) { + public static double[] splice(final List list,final double[] arr, final int spliceIdx) { ParameterChecks.assertIndexInBounds(list.size() + 1, spliceIdx); double[] spliced = new double[list.size() + arr.length]; @@ -1459,7 +1304,7 @@ public static double[] splice(List list, double[] arr, int spliceIdx) { * @param spliceIdx The index within {@code list} to splice {@code arr} into. * @return The result of splicing {@code arr} into {@code list} at the index {@code spliceIdx}. */ - public static CNumber[] spliceDouble(List list, double[] arr, int spliceIdx) { + public static CNumber[] spliceDouble(final List list, final double[] arr, final int spliceIdx) { ParameterChecks.assertIndexInBounds(list.size() + 1, spliceIdx); CNumber[] spliced = new CNumber[list.size() + arr.length]; @@ -1483,14 +1328,14 @@ public static CNumber[] spliceDouble(List list, double[] arr, int splic * @param spliceIdx The index within {@code list} to splice {@code arr} into. * @return The result of splicing {@code arr} into {@code list} at the index {@code spliceIdx}. */ - public static CNumber[] splice(List list, CNumber[] arr, int spliceIdx) { + public static CNumber[] splice(final List list, final CNumber[] arr, final int spliceIdx) { ParameterChecks.assertIndexInBounds(list.size() + 1, spliceIdx); CNumber[] spliced = new CNumber[list.size() + arr.length]; for (int i = 0; i < spliceIdx; i++) spliced[i] = list.get(i); - ArrayUtils.arraycopy(arr, 0, spliced, spliceIdx, arr.length); + System.arraycopy(arr, 0, spliced, spliceIdx, arr.length); for (int i = spliceIdx; i < list.size(); i++) spliced[i + arr.length] = list.get(i); @@ -1507,7 +1352,7 @@ public static CNumber[] splice(List list, CNumber[] arr, int spliceIdx) * @param spliceIdx The index within {@code list} to splice {@code arr} into. * @return The result of splicing {@code arr} into {@code list} at the index {@code spliceIdx}. */ - public static int[] splice(List list, int[] arr, int spliceIdx) { + public static int[] splice(final List list, final int[] arr, final int spliceIdx) { ParameterChecks.assertIndexInBounds(list.size() + 1, spliceIdx); int[] spliced = new int[list.size() + arr.length]; @@ -1529,7 +1374,7 @@ public static int[] splice(List list, int[] arr, int spliceIdx) { * @param opp Operation to use to transform the array. * @return A reference to the {@code src} array. */ - public static double[] applyTransform(double[] src, UnaryOperator opp) { + public static double[] applyTransform(final double[] src, final UnaryOperator opp) { for(int i=0; i opp) { * @param opp Operation to use to transform the array. * @return A reference to the {@code src} array. */ - public static T[] applyTransform(T[] src, UnaryOperator opp) { + public static T[] applyTransform(final T[] src, final UnaryOperator opp) { for(int i=0; i T[] applyTransform(T[] src, UnaryOperator opp) { * @see #applyTransform(Object[], UnaryOperator) * @see #applyTransform(double[], UnaryOperator) */ - public static CNumber[] applyTransform(double[] src, Function opp) { + public static CNumber[] applyTransform(final double[] src, final Function opp) { CNumber[] dest = new CNumber[src.length]; for(int i=0; i o * @see #applyTransform(Object[], UnaryOperator) * @see #applyTransform(double[], UnaryOperator) */ - public static double[] applyTransform(CNumber[] src, Function opp) { + public static double[] applyTransform(final CNumber[] src, final Function opp) { double[] dest = new double[src.length]; for(int i=0; i) arg); + printAsNumpyArray((MatrixMixin) arg); } else { System.out.print(arg.toString()); } @@ -24,7 +24,7 @@ public static void printAsNumpyArray(Object... args) { public static void printAsJavaArray(Object... args) { for(Object arg : args) { if(arg instanceof MatrixMixin) { - printAsJavaArray((MatrixMixin) arg); + printAsJavaArray((MatrixMixin) arg); } else { System.out.print(arg.toString()); } @@ -32,7 +32,7 @@ public static void printAsJavaArray(Object... args) { } - private static > void printAsNumpyArray(T A) { + private static > void printAsNumpyArray(T A) { System.out.println(" = np.array(["); for(int i=0; i> void printAsJavaArray(T A) { + private static > void printAsJavaArray(T A) { System.out.println("{"); for(int i=0; iA.pow(-1)); } diff --git a/src/test/java/org/flag4j/complex_matrix/CMatrixRowColSumTests.java b/src/test/java/org/flag4j/complex_matrix/CMatrixRowColSumTests.java index 361504dbe..88ccde007 100644 --- a/src/test/java/org/flag4j/complex_matrix/CMatrixRowColSumTests.java +++ b/src/test/java/org/flag4j/complex_matrix/CMatrixRowColSumTests.java @@ -28,7 +28,7 @@ void sumRowsTestCase() { aEntries = new CNumber[][]{ {new CNumber(123.5, -9.3), new CNumber(45.2, -0.0333), new CNumber(5.4)}, {new CNumber(1), new CNumber(0, -743.1), new CNumber(-34.5, -93.)}, - {new CNumber(7617.445), new CNumber(0), new CNumber()}, + {new CNumber(7617.445), new CNumber(0), CNumber.ZERO}, {new CNumber(234.65, -345.), new CNumber(9.2146623235, 15.1), new CNumber(-4)}}; A = new CMatrix(aEntries); expVecEntries = new CNumber[]{new CNumber("7976.594999999999-354.3i"), new CNumber("54.4146623235-728.0333i"), new CNumber( @@ -48,7 +48,7 @@ void addToEachRowRealTestCase() { aEntries = new CNumber[][]{ {new CNumber(123.5, -9.3), new CNumber(45.2, -0.0333), new CNumber(5.4)}, {new CNumber(1), new CNumber(0, -743.1), new CNumber(-34.5, -93.)}, - {new CNumber(7617.445), new CNumber(0), new CNumber()}, + {new CNumber(7617.445), new CNumber(0), CNumber.ZERO}, {new CNumber(234.65, -345.), new CNumber(9.2146623235, 15.1), new CNumber(-4)}}; A = new CMatrix(aEntries); bEntries = new double[]{1.445, -775.14, 9.4}; @@ -57,7 +57,7 @@ void addToEachRowRealTestCase() { {new CNumber(123.5, -9.3).add(bEntries[0]), new CNumber(45.2, -0.0333).add(bEntries[1]), new CNumber(5.4).add(bEntries[2])}, {new CNumber(1).add(bEntries[0]), new CNumber(0, -743.1).add(bEntries[1]), new CNumber(-34.5, -93.).add(bEntries[2])}, - {new CNumber(7617.445).add(bEntries[0]), new CNumber(0).add(bEntries[1]), new CNumber().add(bEntries[2])}, + {new CNumber(7617.445).add(bEntries[0]), new CNumber(0).add(bEntries[1]), CNumber.ZERO.add(bEntries[2])}, {new CNumber(234.65, -345.).add(bEntries[0]), new CNumber(9.2146623235, 15.1).add(bEntries[1]), new CNumber(-4).add(bEntries[2])}}; exp = new CMatrix(expEntries); @@ -67,7 +67,7 @@ void addToEachRowRealTestCase() { aEntries = new CNumber[][]{ {new CNumber(123.5, -9.3), new CNumber(45.2, -0.0333), new CNumber(5.4)}, {new CNumber(1), new CNumber(0, -743.1), new CNumber(-34.5, -93.)}, - {new CNumber(7617.445), new CNumber(0), new CNumber()}, + {new CNumber(7617.445), new CNumber(0), CNumber.ZERO}, {new CNumber(234.65, -345.), new CNumber(9.2146623235, 15.1), new CNumber(-4)}}; A = new CMatrix(aEntries); bEntries = new double[]{23.456}; @@ -87,7 +87,7 @@ void addToEachRowComplexTestCase() { aEntries = new CNumber[][]{ {new CNumber(123.5, -9.3), new CNumber(45.2, -0.0333), new CNumber(5.4)}, {new CNumber(1), new CNumber(0, -743.1), new CNumber(-34.5, -93.)}, - {new CNumber(7617.445), new CNumber(0), new CNumber()}, + {new CNumber(7617.445), new CNumber(0), CNumber.ZERO}, {new CNumber(234.65, -345.), new CNumber(9.2146623235, 15.1), new CNumber(-4)}}; A = new CMatrix(aEntries); bEntries = new CNumber[]{new CNumber(234.6, 8.4), new CNumber(0.345, -9), new CNumber(23.56, -7.34)}; @@ -95,7 +95,7 @@ void addToEachRowComplexTestCase() { expEntries = new CNumber[][]{ {new CNumber(123.5, -9.3).add(bEntries[0]), new CNumber(45.2, -0.0333).add(bEntries[1]), new CNumber(5.4).add(bEntries[2])}, {new CNumber(1).add(bEntries[0]), new CNumber(0, -743.1).add(bEntries[1]), new CNumber(-34.5, -93.).add(bEntries[2])}, - {new CNumber(7617.445).add(bEntries[0]), new CNumber(0).add(bEntries[1]), new CNumber().add(bEntries[2])}, + {new CNumber(7617.445).add(bEntries[0]), new CNumber(0).add(bEntries[1]), CNumber.ZERO.add(bEntries[2])}, {new CNumber(234.65, -345.).add(bEntries[0]), new CNumber(9.2146623235, 15.1).add(bEntries[1]), new CNumber(-4).add(bEntries[2])}}; exp = new CMatrix(expEntries); @@ -105,7 +105,7 @@ void addToEachRowComplexTestCase() { aEntries = new CNumber[][]{ {new CNumber(123.5, -9.3), new CNumber(45.2, -0.0333), new CNumber(5.4)}, {new CNumber(1), new CNumber(0, -743.1), new CNumber(-34.5, -93.)}, - {new CNumber(7617.445), new CNumber(0), new CNumber()}, + {new CNumber(7617.445), new CNumber(0), CNumber.ZERO}, {new CNumber(234.65, -345.), new CNumber(9.2146623235, 15.1), new CNumber(-4)}}; A = new CMatrix(aEntries); bEntries = new CNumber[]{new CNumber(234.6, 8.4), new CNumber(0.345, -9), new CNumber(23.56, -7.34), new CNumber(84.35, -6767)}; @@ -125,7 +125,7 @@ void addToEachRowComplexSparseTestCase() { aEntries = new CNumber[][]{ {new CNumber(123.5, -9.3), new CNumber(45.2, -0.0333), new CNumber(5.4)}, {new CNumber(1), new CNumber(0, -743.1), new CNumber(-34.5, -93.)}, - {new CNumber(7617.445), new CNumber(0), new CNumber()}, + {new CNumber(7617.445), new CNumber(0), CNumber.ZERO}, {new CNumber(234.65, -345.), new CNumber(9.2146623235, 15.1), new CNumber(-4)}}; A = new CMatrix(aEntries); bEntries = new CNumber[]{new CNumber(32.56, -8.4)}; @@ -134,7 +134,7 @@ void addToEachRowComplexSparseTestCase() { expEntries = new CNumber[][]{ {new CNumber(123.5, -9.3), new CNumber(45.2, -0.0333).add(bEntries[0]), new CNumber(5.4)}, {new CNumber(1), new CNumber(0, -743.1).add(bEntries[0]), new CNumber(-34.5, -93.)}, - {new CNumber(7617.445), new CNumber(0).add(bEntries[0]), new CNumber()}, + {new CNumber(7617.445), new CNumber(0).add(bEntries[0]), CNumber.ZERO}, {new CNumber(234.65, -345.), new CNumber(9.2146623235, 15.1).add(bEntries[0]), new CNumber(-4)}}; exp = new CMatrix(expEntries); @@ -144,7 +144,7 @@ void addToEachRowComplexSparseTestCase() { aEntries = new CNumber[][]{ {new CNumber(123.5, -9.3), new CNumber(45.2, -0.0333), new CNumber(5.4)}, {new CNumber(1), new CNumber(0, -743.1), new CNumber(-34.5, -93.)}, - {new CNumber(7617.445), new CNumber(0), new CNumber()}, + {new CNumber(7617.445), new CNumber(0), CNumber.ZERO}, {new CNumber(234.65, -345.), new CNumber(9.2146623235, 15.1), new CNumber(-4)}}; A = new CMatrix(aEntries); bEntries = new CNumber[]{new CNumber(32.56, -8.4)}; @@ -165,7 +165,7 @@ void addToEachRowRealSparseTestCase() { aEntries = new CNumber[][]{ {new CNumber(123.5, -9.3), new CNumber(45.2, -0.0333), new CNumber(5.4)}, {new CNumber(1), new CNumber(0, -743.1), new CNumber(-34.5, -93.)}, - {new CNumber(7617.445), new CNumber(0), new CNumber()}, + {new CNumber(7617.445), new CNumber(0), CNumber.ZERO}, {new CNumber(234.65, -345.), new CNumber(9.2146623235, 15.1), new CNumber(-4)}}; A = new CMatrix(aEntries); bEntries = new double[]{3.46567}; @@ -174,7 +174,7 @@ void addToEachRowRealSparseTestCase() { expEntries = new CNumber[][]{ {new CNumber(123.5, -9.3), new CNumber(45.2, -0.0333).add(bEntries[0]), new CNumber(5.4)}, {new CNumber(1), new CNumber(0, -743.1).add(bEntries[0]), new CNumber(-34.5, -93.)}, - {new CNumber(7617.445), new CNumber(0).add(bEntries[0]), new CNumber()}, + {new CNumber(7617.445), new CNumber(0).add(bEntries[0]), CNumber.ZERO}, {new CNumber(234.65, -345.), new CNumber(9.2146623235, 15.1).add(bEntries[0]), new CNumber(-4)}}; exp = new CMatrix(expEntries); @@ -184,7 +184,7 @@ void addToEachRowRealSparseTestCase() { aEntries = new CNumber[][]{ {new CNumber(123.5, -9.3), new CNumber(45.2, -0.0333), new CNumber(5.4)}, {new CNumber(1), new CNumber(0, -743.1), new CNumber(-34.5, -93.)}, - {new CNumber(7617.445), new CNumber(0), new CNumber()}, + {new CNumber(7617.445), new CNumber(0), CNumber.ZERO}, {new CNumber(234.65, -345.), new CNumber(9.2146623235, 15.1), new CNumber(-4)}}; A = new CMatrix(aEntries); bEntries = new double[]{-9899234.2}; @@ -202,7 +202,7 @@ void sumColsTestCase() { aEntries = new CNumber[][]{ {new CNumber(123.5, -9.3), new CNumber(45.2, -0.0333), new CNumber(5.4)}, {new CNumber(1), new CNumber(0, -743.1), new CNumber(-34.5, -93.)}, - {new CNumber(7617.445), new CNumber(0), new CNumber()}, + {new CNumber(7617.445), new CNumber(0), CNumber.ZERO}, {new CNumber(234.65, -345.), new CNumber(9.2146623235, 15.1), new CNumber(-4)}}; A = new CMatrix(aEntries); expVecEntries = new CNumber[]{ @@ -225,7 +225,7 @@ void addToEachColRealTestCase() { aEntries = new CNumber[][]{ {new CNumber(123.5, -9.3), new CNumber(45.2, -0.0333), new CNumber(5.4)}, {new CNumber(1), new CNumber(0, -743.1), new CNumber(-34.5, -93.)}, - {new CNumber(7617.445), new CNumber(0), new CNumber()}, + {new CNumber(7617.445), new CNumber(0), CNumber.ZERO}, {new CNumber(234.65, -345.), new CNumber(9.2146623235, 15.1), new CNumber(-4)}}; A = new CMatrix(aEntries); bEntries = new double[]{234.66, -8.54, 9.45, 16}; @@ -233,7 +233,7 @@ void addToEachColRealTestCase() { expEntries = new CNumber[][]{ {new CNumber(123.5, -9.3).add(bEntries[0]), new CNumber(45.2, -0.0333).add(bEntries[0]), new CNumber(5.4).add(bEntries[0])}, {new CNumber(1).add(bEntries[1]), new CNumber(0, -743.1).add(bEntries[1]), new CNumber(-34.5, -93.).add(bEntries[1])}, - {new CNumber(7617.445).add(bEntries[2]), new CNumber(0).add(bEntries[2]), new CNumber().add(bEntries[2])}, + {new CNumber(7617.445).add(bEntries[2]), new CNumber(0).add(bEntries[2]), CNumber.ZERO.add(bEntries[2])}, {new CNumber(234.65, -345.).add(bEntries[3]), new CNumber(9.2146623235, 15.1).add(bEntries[3]), new CNumber(-4).add(bEntries[3])}}; exp = new CMatrix(expEntries); @@ -243,7 +243,7 @@ void addToEachColRealTestCase() { aEntries = new CNumber[][]{ {new CNumber(123.5, -9.3), new CNumber(45.2, -0.0333), new CNumber(5.4)}, {new CNumber(1), new CNumber(0, -743.1), new CNumber(-34.5, -93.)}, - {new CNumber(7617.445), new CNumber(0), new CNumber()}, + {new CNumber(7617.445), new CNumber(0), CNumber.ZERO}, {new CNumber(234.65, -345.), new CNumber(9.2146623235, 15.1), new CNumber(-4)}}; A = new CMatrix(aEntries); bEntries = new double[]{234.66, -8.54, 9.45}; @@ -263,7 +263,7 @@ void addToEachColComplexTestCase() { aEntries = new CNumber[][]{ {new CNumber(123.5, -9.3), new CNumber(45.2, -0.0333), new CNumber(5.4)}, {new CNumber(1), new CNumber(0, -743.1), new CNumber(-34.5, -93.)}, - {new CNumber(7617.445), new CNumber(0), new CNumber()}, + {new CNumber(7617.445), new CNumber(0), CNumber.ZERO}, {new CNumber(234.65, -345.), new CNumber(9.2146623235, 15.1), new CNumber(-4)}}; A = new CMatrix(aEntries); bEntries = new CNumber[]{new CNumber(234.6, 8.4), new CNumber(0.345, -9), new CNumber(23.56, -7.34), new CNumber(84.35, -6767)}; @@ -271,7 +271,7 @@ void addToEachColComplexTestCase() { expEntries = new CNumber[][]{ {new CNumber(123.5, -9.3).add(bEntries[0]), new CNumber(45.2, -0.0333).add(bEntries[0]), new CNumber(5.4).add(bEntries[0])}, {new CNumber(1).add(bEntries[1]), new CNumber(0, -743.1).add(bEntries[1]), new CNumber(-34.5, -93.).add(bEntries[1])}, - {new CNumber(7617.445).add(bEntries[2]), new CNumber(0).add(bEntries[2]), new CNumber().add(bEntries[2])}, + {new CNumber(7617.445).add(bEntries[2]), new CNumber(0).add(bEntries[2]), CNumber.ZERO.add(bEntries[2])}, {new CNumber(234.65, -345.).add(bEntries[3]), new CNumber(9.2146623235, 15.1).add(bEntries[3]), new CNumber(-4).add(bEntries[3])}}; exp = new CMatrix(expEntries); @@ -281,7 +281,7 @@ void addToEachColComplexTestCase() { aEntries = new CNumber[][]{ {new CNumber(123.5, -9.3), new CNumber(45.2, -0.0333), new CNumber(5.4)}, {new CNumber(1), new CNumber(0, -743.1), new CNumber(-34.5, -93.)}, - {new CNumber(7617.445), new CNumber(0), new CNumber()}, + {new CNumber(7617.445), new CNumber(0), CNumber.ZERO}, {new CNumber(234.65, -345.), new CNumber(9.2146623235, 15.1), new CNumber(-4)}}; A = new CMatrix(aEntries); bEntries = new CNumber[]{new CNumber(234.6, 8.4), new CNumber(0.345, -9), new CNumber(23.56, -7.34)}; @@ -301,7 +301,7 @@ void addToEachColRealSparseTestCase() { aEntries = new CNumber[][]{ {new CNumber(123.5, -9.3), new CNumber(45.2, -0.0333), new CNumber(5.4)}, {new CNumber(1), new CNumber(0, -743.1), new CNumber(-34.5, -93.)}, - {new CNumber(7617.445), new CNumber(0), new CNumber()}, + {new CNumber(7617.445), new CNumber(0), CNumber.ZERO}, {new CNumber(234.65, -345.), new CNumber(9.2146623235, 15.1), new CNumber(-4)}}; A = new CMatrix(aEntries); bEntries = new double[]{234.66}; @@ -310,7 +310,7 @@ void addToEachColRealSparseTestCase() { expEntries = new CNumber[][]{ {new CNumber(123.5, -9.3), new CNumber(45.2, -0.0333), new CNumber(5.4)}, {new CNumber(1), new CNumber(0, -743.1), new CNumber(-34.5, -93.)}, - {new CNumber(7617.445).add(234.66), new CNumber(0).add(234.66), new CNumber().add(234.66)}, + {new CNumber(7617.445).add(234.66), new CNumber(0).add(234.66), CNumber.ZERO.add(234.66)}, {new CNumber(234.65, -345.), new CNumber(9.2146623235, 15.1), new CNumber(-4)}}; exp = new CMatrix(expEntries); @@ -320,7 +320,7 @@ void addToEachColRealSparseTestCase() { aEntries = new CNumber[][]{ {new CNumber(123.5, -9.3), new CNumber(45.2, -0.0333), new CNumber(5.4)}, {new CNumber(1), new CNumber(0, -743.1), new CNumber(-34.5, -93.)}, - {new CNumber(7617.445), new CNumber(0), new CNumber()}, + {new CNumber(7617.445), new CNumber(0), CNumber.ZERO}, {new CNumber(234.65, -345.), new CNumber(9.2146623235, 15.1), new CNumber(-4)}}; A = new CMatrix(aEntries); bEntries = new double[]{234.66}; @@ -341,7 +341,7 @@ void addToEachColComplexSparseTestCase() { aEntries = new CNumber[][]{ {new CNumber(123.5, -9.3), new CNumber(45.2, -0.0333), new CNumber(5.4)}, {new CNumber(1), new CNumber(0, -743.1), new CNumber(-34.5, -93.)}, - {new CNumber(7617.445), new CNumber(0), new CNumber()}, + {new CNumber(7617.445), new CNumber(0), CNumber.ZERO}, {new CNumber(234.65, -345.), new CNumber(9.2146623235, 15.1), new CNumber(-4)}}; A = new CMatrix(aEntries); bEntries = new CNumber[]{new CNumber(3.678, -8.4322)}; @@ -350,7 +350,7 @@ void addToEachColComplexSparseTestCase() { expEntries = new CNumber[][]{ {new CNumber(123.5, -9.3), new CNumber(45.2, -0.0333), new CNumber(5.4)}, {new CNumber(1).add(bEntries[0]), new CNumber(0, -743.1).add(bEntries[0]), new CNumber(-34.5, -93.).add(bEntries[0])}, - {new CNumber(7617.445), new CNumber(0), new CNumber()}, + {new CNumber(7617.445), new CNumber(0), CNumber.ZERO}, {new CNumber(234.65, -345.), new CNumber(9.2146623235, 15.1), new CNumber(-4)}}; exp = new CMatrix(expEntries); @@ -360,7 +360,7 @@ void addToEachColComplexSparseTestCase() { aEntries = new CNumber[][]{ {new CNumber(123.5, -9.3), new CNumber(45.2, -0.0333), new CNumber(5.4)}, {new CNumber(1), new CNumber(0, -743.1), new CNumber(-34.5, -93.)}, - {new CNumber(7617.445), new CNumber(0), new CNumber()}, + {new CNumber(7617.445), new CNumber(0), CNumber.ZERO}, {new CNumber(234.65, -345.), new CNumber(9.2146623235, 15.1), new CNumber(-4)}}; A = new CMatrix(aEntries); bEntries = new CNumber[]{new CNumber(3.678, -8.4322)}; diff --git a/src/test/java/org/flag4j/complex_matrix/CMatrixSetOperationTests.java b/src/test/java/org/flag4j/complex_matrix/CMatrixSetOperationTests.java index f4f059bfe..889b1c964 100644 --- a/src/test/java/org/flag4j/complex_matrix/CMatrixSetOperationTests.java +++ b/src/test/java/org/flag4j/complex_matrix/CMatrixSetOperationTests.java @@ -444,7 +444,7 @@ void setColumnSparseCVectorTestCase() { col = 0; entriesExp = new CNumber[][]{ {new CNumber(2.445, -0.91354), new CNumber(0)}, - {new CNumber(), new CNumber(4)}, + {CNumber.ZERO, new CNumber(4)}, {new CNumber(0, 6.2132), new CNumber(-1334.5)}}; exp = new CMatrix(entriesExp); entriesA = new CNumber[][]{ @@ -463,9 +463,9 @@ void setColumnSparseCVectorTestCase() { valuesVec = new CooCVector(sparseSize, values, sparseIndices); col = 1; entriesExp = new CNumber[][]{ - {new CNumber(0), new CNumber()}, + {new CNumber(0), CNumber.ZERO}, {new CNumber(1), new CNumber(2.445, -0.91354)}, - {new CNumber(1331.14), new CNumber()}}; + {new CNumber(1331.14), CNumber.ZERO}}; exp = new CMatrix(entriesExp); entriesA = new CNumber[][]{ {new CNumber(0), new CNumber(0)}, @@ -857,9 +857,9 @@ void setRowSparseCVectorTestCase() { valuesVec = new CooCVector(sparseSize, values, sparseIndices); row = 2; entriesExp = new CNumber[][]{ - {new CNumber(), new CNumber()}, + {CNumber.ZERO, CNumber.ZERO}, {new CNumber(1), new CNumber(4)}, - {new CNumber(34, -55.6), new CNumber()}}; + {new CNumber(34, -55.6), CNumber.ZERO}}; exp = new CMatrix(entriesExp); entriesA = new CNumber[][]{ {new CNumber(0), new CNumber(0)}, @@ -1031,8 +1031,8 @@ void setSliceSparseMatrixTestCase() { {new CNumber(11.346), new CNumber(124.6), new CNumber(-7.13), new CNumber(0.00013)}}; A = new CMatrix(entriesA); entriesExp = new CNumber[][]{ - {new CNumber(), new CNumber(), new CNumber(1.3), new CNumber(83.1)}, - {new CNumber(5.626), new CNumber(), new CNumber(-3.0001), new CNumber(0.00013)}}; + {CNumber.ZERO, CNumber.ZERO, new CNumber(1.3), new CNumber(83.1)}, + {new CNumber(5.626), CNumber.ZERO, new CNumber(-3.0001), new CNumber(0.00013)}}; exp = new CMatrix(entriesExp); A.setSlice(values, row, col); @@ -1051,7 +1051,7 @@ void setSliceSparseMatrixTestCase() { {new CNumber(11.346), new CNumber(124.6), new CNumber(-7.13), new CNumber(0.00013)}}; A = new CMatrix(entriesA); entriesExp = new CNumber[][]{ - {new CNumber(-99.234), new CNumber(), new CNumber(1.3), new CNumber(83.1)}, + {new CNumber(-99.234), CNumber.ZERO, new CNumber(1.3), new CNumber(83.1)}, {new CNumber(11.346), new CNumber( 5.626), new CNumber(-3.0001), new CNumber(0.00013)}}; exp = new CMatrix(entriesExp); @@ -1116,8 +1116,8 @@ void setSliceCopySparseMatrixTestCase() { {new CNumber(11.346), new CNumber(124.6), new CNumber(-7.13), new CNumber(0.00013)}}; A = new CMatrix(entriesA); entriesExp = new CNumber[][]{ - {new CNumber(), new CNumber(), new CNumber(1.3), new CNumber(83.1)}, - {new CNumber(5.626), new CNumber(), new CNumber(-3.0001), new CNumber(0.00013)}}; + {CNumber.ZERO, CNumber.ZERO, new CNumber(1.3), new CNumber(83.1)}, + {new CNumber(5.626), CNumber.ZERO, new CNumber(-3.0001), new CNumber(0.00013)}}; exp = new CMatrix(entriesExp); B = A.setSliceCopy(values, row, col); @@ -1136,7 +1136,7 @@ void setSliceCopySparseMatrixTestCase() { {new CNumber(11.346), new CNumber(124.6), new CNumber(-7.13), new CNumber(0.00013)}}; A = new CMatrix(entriesA); entriesExp = new CNumber[][]{ - {new CNumber(-99.234), new CNumber(), new CNumber(1.3), new CNumber(83.1)}, + {new CNumber(-99.234), CNumber.ZERO, new CNumber(1.3), new CNumber(83.1)}, {new CNumber(11.346), new CNumber( 5.626), new CNumber(-3.0001), new CNumber(0.00013)}}; exp = new CMatrix(entriesExp); @@ -1653,8 +1653,8 @@ void setSliceSparseCMatrixTestCase() { {new CNumber(11.346), new CNumber(124.6), new CNumber(-7.13), new CNumber(0.00013)}}; A = new CMatrix(entriesA); entriesExp = new CNumber[][]{ - {new CNumber(), new CNumber(), new CNumber(234.5, -99.234), new CNumber(83.1)}, - {new CNumber(), new CNumber(new CNumber(0, -88.245)), new CNumber(), new CNumber(0.00013)}}; + {CNumber.ZERO, CNumber.ZERO, new CNumber(234.5, -99.234), new CNumber(83.1)}, + {CNumber.ZERO, new CNumber(0, -88.245), CNumber.ZERO, new CNumber(0.00013)}}; exp = new CMatrix(entriesExp); A.setSlice(mat, row, col); @@ -1673,8 +1673,8 @@ void setSliceSparseCMatrixTestCase() { {new CNumber(11.346), new CNumber(124.6), new CNumber(-7.13), new CNumber(0.00013)}}; A = new CMatrix(entriesA); entriesExp = new CNumber[][]{ - {new CNumber(-99.234), new CNumber(132), new CNumber(), new CNumber(234.5, -99.234)}, - {new CNumber(11.346), new CNumber(124.6), new CNumber(0, -88.245), new CNumber()}}; + {new CNumber(-99.234), new CNumber(132), CNumber.ZERO, new CNumber(234.5, -99.234)}, + {new CNumber(11.346), new CNumber(124.6), new CNumber(0, -88.245), CNumber.ZERO}}; exp = new CMatrix(entriesExp); A.setSlice(mat, row, col); @@ -1717,8 +1717,8 @@ void setSliceCopySparseCMatrixTestCase() { {new CNumber(11.346), new CNumber(124.6), new CNumber(-7.13), new CNumber(0.00013)}}; A = new CMatrix(entriesA); entriesExp = new CNumber[][]{ - {new CNumber(), new CNumber(), new CNumber(234.5, -99.234), new CNumber(83.1)}, - {new CNumber(), new CNumber(new CNumber(0, -88.245)), new CNumber(), new CNumber(0.00013)}}; + {CNumber.ZERO, CNumber.ZERO, new CNumber(234.5, -99.234), new CNumber(83.1)}, + {CNumber.ZERO, new CNumber(0, -88.245), CNumber.ZERO, new CNumber(0.00013)}}; exp = new CMatrix(entriesExp); B = A.setSliceCopy(mat, row, col); @@ -1737,8 +1737,8 @@ void setSliceCopySparseCMatrixTestCase() { {new CNumber(11.346), new CNumber(124.6), new CNumber(-7.13), new CNumber(0.00013)}}; A = new CMatrix(entriesA); entriesExp = new CNumber[][]{ - {new CNumber(-99.234), new CNumber(132), new CNumber(), new CNumber(234.5, -99.234)}, - {new CNumber(11.346), new CNumber(124.6), new CNumber(0, -88.245), new CNumber()}}; + {new CNumber(-99.234), new CNumber(132), CNumber.ZERO, new CNumber(234.5, -99.234)}, + {new CNumber(11.346), new CNumber(124.6), new CNumber(0, -88.245), CNumber.ZERO}}; exp = new CMatrix(entriesExp); B = A.setSliceCopy(mat, row, col); diff --git a/src/test/java/org/flag4j/complex_matrix/CMatrixStackTests.java b/src/test/java/org/flag4j/complex_matrix/CMatrixStackTests.java index 2aa48f34b..0c8307087 100644 --- a/src/test/java/org/flag4j/complex_matrix/CMatrixStackTests.java +++ b/src/test/java/org/flag4j/complex_matrix/CMatrixStackTests.java @@ -29,13 +29,13 @@ void realMatrixTestCase() { // ----------------------- Sub-case 1 ----------------------- aEntries = new CNumber[][]{ {new CNumber(9.234, -0.864), new CNumber(58.1, 3), new CNumber(-984, -72.3)}, - {new CNumber(1), new CNumber(), new CNumber(0, 87.3)}}; + {new CNumber(1), CNumber.ZERO, new CNumber(0, 87.3)}}; A = new CMatrix(aEntries); bEntries = new double[][]{{13.45, 5.5}, {-94.3345, 435.6}}; B = new Matrix(bEntries); expEntries = new CNumber[][]{ {new CNumber(9.234, -0.864), new CNumber(58.1, 3), new CNumber(-984, -72.3), new CNumber(13.45), new CNumber(5.5)}, - {new CNumber(1), new CNumber(), new CNumber(0, 87.3), new CNumber(-94.3345), new CNumber(435.6)}}; + {new CNumber(1), CNumber.ZERO, new CNumber(0, 87.3), new CNumber(-94.3345), new CNumber(435.6)}}; exp = new CMatrix(expEntries); assertEquals(exp, A.stack(B, 0)); @@ -43,7 +43,7 @@ void realMatrixTestCase() { // ----------------------- Sub-case 2 ----------------------- aEntries = new CNumber[][]{ {new CNumber(9.234, -0.864), new CNumber(58.1, 3), new CNumber(-984, -72.3)}, - {new CNumber(1), new CNumber(), new CNumber(0, 87.3)}}; + {new CNumber(1), CNumber.ZERO, new CNumber(0, 87.3)}}; A = new CMatrix(aEntries); bEntries = new double[][]{{13.45, 5.5, 23.45}, {-94.3345, 435.6, -8234.2}, {3.67, -798.41, 45.6}}; B = new Matrix(bEntries); @@ -54,13 +54,13 @@ void realMatrixTestCase() { // ----------------------- Sub-case 3 ----------------------- aEntries = new CNumber[][]{ {new CNumber(9.234, -0.864), new CNumber(58.1, 3), new CNumber(-984, -72.3)}, - {new CNumber(1), new CNumber(), new CNumber(0, 87.3)}}; + {new CNumber(1), CNumber.ZERO, new CNumber(0, 87.3)}}; A = new CMatrix(aEntries); bEntries = new double[][]{{13.45, 5.5, 4.5}, {-94.3345, 435.6, 94.}}; B = new Matrix(bEntries); expEntries = new CNumber[][]{ {new CNumber(9.234, -0.864), new CNumber(58.1, 3), new CNumber(-984, -72.3)}, - {new CNumber(1), new CNumber(), new CNumber(0, 87.3)}, + {new CNumber(1), CNumber.ZERO, new CNumber(0, 87.3)}, {new CNumber(13.45), new CNumber(5.5), new CNumber(4.5)}, {new CNumber(-94.3345), new CNumber(435.6), new CNumber(94.)}}; exp = new CMatrix(expEntries); @@ -70,7 +70,7 @@ void realMatrixTestCase() { // ----------------------- Sub-case 4 ----------------------- aEntries = new CNumber[][]{ {new CNumber(9.234, -0.864), new CNumber(58.1, 3), new CNumber(-984, -72.3)}, - {new CNumber(1), new CNumber(), new CNumber(0, 87.3)}}; + {new CNumber(1), CNumber.ZERO, new CNumber(0, 87.3)}}; A = new CMatrix(aEntries); bEntries = new double[][]{{13.45, 5.5}, {-94.3345, 435.6}}; B = new Matrix(bEntries); @@ -81,7 +81,7 @@ void realMatrixTestCase() { // ----------------------- Sub-case 5 ----------------------- aEntries = new CNumber[][]{ {new CNumber(9.234, -0.864), new CNumber(58.1, 3), new CNumber(-984, -72.3)}, - {new CNumber(1), new CNumber(), new CNumber(0, 87.3)}}; + {new CNumber(1), CNumber.ZERO, new CNumber(0, 87.3)}}; A = new CMatrix(aEntries); bEntries = new double[][]{{13.45, 5.5}, {-94.3345, 435.6}}; B = new Matrix(bEntries); @@ -99,7 +99,7 @@ void realSparseMatrixTestCase() { // ----------------------- Sub-case 1 ----------------------- aEntries = new CNumber[][]{ {new CNumber(9.234, -0.864), new CNumber(58.1, 3), new CNumber(-984, -72.3)}, - {new CNumber(1), new CNumber(), new CNumber(0, 87.3)}}; + {new CNumber(1), CNumber.ZERO, new CNumber(0, 87.3)}}; A = new CMatrix(aEntries); bEntries = new double[]{1.234}; rowIndices = new int[]{0}; @@ -107,8 +107,8 @@ void realSparseMatrixTestCase() { sparseShape = new Shape(2, 3); B = new CooMatrix(sparseShape, bEntries, rowIndices, colIndices); expEntries = new CNumber[][]{ - {new CNumber(9.234, -0.864), new CNumber(58.1, 3), new CNumber(-984, -72.3), new CNumber(), new CNumber(1.234), new CNumber()}, - {new CNumber(1), new CNumber(), new CNumber(0, 87.3), new CNumber(), new CNumber(), new CNumber()}}; + {new CNumber(9.234, -0.864), new CNumber(58.1, 3), new CNumber(-984, -72.3), CNumber.ZERO, new CNumber(1.234), CNumber.ZERO}, + {new CNumber(1), CNumber.ZERO, new CNumber(0, 87.3), CNumber.ZERO, CNumber.ZERO, CNumber.ZERO}}; exp = new CMatrix(expEntries); assertEquals(exp, A.stack(B, 0)); @@ -116,7 +116,7 @@ void realSparseMatrixTestCase() { // ----------------------- Sub-case 2 ----------------------- aEntries = new CNumber[][]{ {new CNumber(9.234, -0.864), new CNumber(58.1, 3), new CNumber(-984, -72.3)}, - {new CNumber(1), new CNumber(), new CNumber(0, 87.3)}}; + {new CNumber(1), CNumber.ZERO, new CNumber(0, 87.3)}}; A = new CMatrix(aEntries); bEntries = new double[]{1.234}; rowIndices = new int[]{0}; @@ -130,7 +130,7 @@ void realSparseMatrixTestCase() { // ----------------------- Sub-case 3 ----------------------- aEntries = new CNumber[][]{ {new CNumber(9.234, -0.864), new CNumber(58.1, 3), new CNumber(-984, -72.3)}, - {new CNumber(1), new CNumber(), new CNumber(0, 87.3)}}; + {new CNumber(1), CNumber.ZERO, new CNumber(0, 87.3)}}; A = new CMatrix(aEntries); bEntries = new double[]{1.234}; rowIndices = new int[]{0}; @@ -139,9 +139,9 @@ void realSparseMatrixTestCase() { B = new CooMatrix(sparseShape, bEntries, rowIndices, colIndices); expEntries = new CNumber[][]{ {new CNumber(9.234, -0.864), new CNumber(58.1, 3), new CNumber(-984, -72.3)}, - {new CNumber(1), new CNumber(), new CNumber(0, 87.3)}, - {new CNumber(), new CNumber(1.234), new CNumber()}, - {new CNumber(), new CNumber(), new CNumber()}}; + {new CNumber(1), CNumber.ZERO, new CNumber(0, 87.3)}, + {CNumber.ZERO, new CNumber(1.234), CNumber.ZERO}, + {CNumber.ZERO, CNumber.ZERO, CNumber.ZERO}}; exp = new CMatrix(expEntries); assertEquals(exp, A.stack(B, 1)); @@ -149,7 +149,7 @@ void realSparseMatrixTestCase() { // ----------------------- Sub-case 4 ----------------------- aEntries = new CNumber[][]{ {new CNumber(9.234, -0.864), new CNumber(58.1, 3), new CNumber(-984, -72.3)}, - {new CNumber(1), new CNumber(), new CNumber(0, 87.3)}}; + {new CNumber(1), CNumber.ZERO, new CNumber(0, 87.3)}}; A = new CMatrix(aEntries); bEntries = new double[]{1.234}; rowIndices = new int[]{0}; @@ -163,7 +163,7 @@ void realSparseMatrixTestCase() { // ----------------------- Sub-case 5 ----------------------- aEntries = new CNumber[][]{ {new CNumber(9.234, -0.864), new CNumber(58.1, 3), new CNumber(-984, -72.3)}, - {new CNumber(1), new CNumber(), new CNumber(0, 87.3)}}; + {new CNumber(1), CNumber.ZERO, new CNumber(0, 87.3)}}; A = new CMatrix(aEntries); bEntries = new double[]{1.234}; rowIndices = new int[]{0}; @@ -184,13 +184,13 @@ void complexMatrixTestCase() { // ----------------------- Sub-case 1 ----------------------- aEntries = new CNumber[][]{ {new CNumber(9.234, -0.864), new CNumber(58.1, 3), new CNumber(-984, -72.3)}, - {new CNumber(1), new CNumber(), new CNumber(0, 87.3)}}; + {new CNumber(1), CNumber.ZERO, new CNumber(0, 87.3)}}; A = new CMatrix(aEntries); bEntries = new CNumber[][]{{new CNumber(234.5, -87.234)}, {new CNumber(-1867.4, 77.51)}}; B = new CMatrix(bEntries); expEntries = new CNumber[][]{ {new CNumber(9.234, -0.864), new CNumber(58.1, 3), new CNumber(-984, -72.3), new CNumber(234.5, -87.234)}, - {new CNumber(1), new CNumber(), new CNumber(0, 87.3), new CNumber(-1867.4, 77.51)}}; + {new CNumber(1), CNumber.ZERO, new CNumber(0, 87.3), new CNumber(-1867.4, 77.51)}}; exp = new CMatrix(expEntries); assertEquals(exp, A.stack(B, 0)); @@ -198,7 +198,7 @@ void complexMatrixTestCase() { // ----------------------- Sub-case 2 ----------------------- aEntries = new CNumber[][]{ {new CNumber(9.234, -0.864), new CNumber(58.1, 3), new CNumber(-984, -72.3)}, - {new CNumber(1), new CNumber(), new CNumber(0, 87.3)}}; + {new CNumber(1), CNumber.ZERO, new CNumber(0, 87.3)}}; A = new CMatrix(aEntries); bEntries = new CNumber[][]{{new CNumber(43.566920234, 234.5)}}; B = new CMatrix(bEntries); @@ -209,13 +209,13 @@ void complexMatrixTestCase() { // ----------------------- Sub-case 3 ----------------------- aEntries = new CNumber[][]{ {new CNumber(9.234, -0.864), new CNumber(58.1, 3), new CNumber(-984, -72.3)}, - {new CNumber(1), new CNumber(), new CNumber(0, 87.3)}}; + {new CNumber(1), CNumber.ZERO, new CNumber(0, 87.3)}}; A = new CMatrix(aEntries); bEntries = new CNumber[][]{{new CNumber(234.5, -87.234), new CNumber(-1867.4, 77.51), new CNumber(9, -987.43)}}; B = new CMatrix(bEntries); expEntries = new CNumber[][]{ {new CNumber(9.234, -0.864), new CNumber(58.1, 3), new CNumber(-984, -72.3)}, - {new CNumber(1), new CNumber(), new CNumber(0, 87.3)}, + {new CNumber(1), CNumber.ZERO, new CNumber(0, 87.3)}, {new CNumber(234.5, -87.234), new CNumber(-1867.4, 77.51), new CNumber(9, -987.43)}}; exp = new CMatrix(expEntries); @@ -224,7 +224,7 @@ void complexMatrixTestCase() { // ----------------------- Sub-case 4 ----------------------- aEntries = new CNumber[][]{ {new CNumber(9.234, -0.864), new CNumber(58.1, 3), new CNumber(-984, -72.3)}, - {new CNumber(1), new CNumber(), new CNumber(0, 87.3)}}; + {new CNumber(1), CNumber.ZERO, new CNumber(0, 87.3)}}; A = new CMatrix(aEntries); bEntries = new CNumber[][]{{new CNumber(234.5, -87.234), new CNumber(-1867.4, 77.51)}}; B = new CMatrix(bEntries); @@ -235,7 +235,7 @@ void complexMatrixTestCase() { // ----------------------- Sub-case 5 ----------------------- aEntries = new CNumber[][]{ {new CNumber(9.234, -0.864), new CNumber(58.1, 3), new CNumber(-984, -72.3)}, - {new CNumber(1), new CNumber(), new CNumber(0, 87.3)}}; + {new CNumber(1), CNumber.ZERO, new CNumber(0, 87.3)}}; A = new CMatrix(aEntries); bEntries = new CNumber[][]{{new CNumber(234.5, -87.234), new CNumber(-1867.4, 77.51)}}; B = new CMatrix(bEntries); @@ -253,7 +253,7 @@ void complexSparseMatrixTestCase() { // ----------------------- Sub-case 1 ----------------------- aEntries = new CNumber[][]{ {new CNumber(9.234, -0.864), new CNumber(58.1, 3), new CNumber(-984, -72.3)}, - {new CNumber(1), new CNumber(), new CNumber(0, 87.3)}}; + {new CNumber(1), CNumber.ZERO, new CNumber(0, 87.3)}}; A = new CMatrix(aEntries); bEntries = new CNumber[]{new CNumber(-8324.324, 234.25)}; rowIndices = new int[]{0}; @@ -261,8 +261,8 @@ void complexSparseMatrixTestCase() { sparseShape = new Shape(2, 3); B = new CooCMatrix(sparseShape, bEntries, rowIndices, colIndices); expEntries = new CNumber[][]{ - {new CNumber(9.234, -0.864), new CNumber(58.1, 3), new CNumber(-984, -72.3), new CNumber(), new CNumber(-8324.324, 234.25), new CNumber()}, - {new CNumber(1), new CNumber(), new CNumber(0, 87.3), new CNumber(), new CNumber(), new CNumber()}}; + {new CNumber(9.234, -0.864), new CNumber(58.1, 3), new CNumber(-984, -72.3), CNumber.ZERO, new CNumber(-8324.324, 234.25), CNumber.ZERO}, + {new CNumber(1), CNumber.ZERO, new CNumber(0, 87.3), CNumber.ZERO, CNumber.ZERO, CNumber.ZERO}}; exp = new CMatrix(expEntries); assertEquals(exp, A.stack(B, 0)); @@ -270,7 +270,7 @@ void complexSparseMatrixTestCase() { // ----------------------- Sub-case 2 ----------------------- aEntries = new CNumber[][]{ {new CNumber(9.234, -0.864), new CNumber(58.1, 3), new CNumber(-984, -72.3)}, - {new CNumber(1), new CNumber(), new CNumber(0, 87.3)}}; + {new CNumber(1), CNumber.ZERO, new CNumber(0, 87.3)}}; A = new CMatrix(aEntries); bEntries = new CNumber[]{new CNumber(-8324.324, 234.25)}; rowIndices = new int[]{0}; @@ -284,7 +284,7 @@ void complexSparseMatrixTestCase() { // ----------------------- Sub-case 3 ----------------------- aEntries = new CNumber[][]{ {new CNumber(9.234, -0.864), new CNumber(58.1, 3), new CNumber(-984, -72.3)}, - {new CNumber(1), new CNumber(), new CNumber(0, 87.3)}}; + {new CNumber(1), CNumber.ZERO, new CNumber(0, 87.3)}}; A = new CMatrix(aEntries); bEntries = new CNumber[]{new CNumber(-8324.324, 234.25)}; rowIndices = new int[]{0}; @@ -293,9 +293,9 @@ void complexSparseMatrixTestCase() { B = new CooCMatrix(sparseShape, bEntries, rowIndices, colIndices); expEntries = new CNumber[][]{ {new CNumber(9.234, -0.864), new CNumber(58.1, 3), new CNumber(-984, -72.3)}, - {new CNumber(1), new CNumber(), new CNumber(0, 87.3)}, - {new CNumber(), new CNumber(-8324.324, 234.25), new CNumber()}, - {new CNumber(), new CNumber(), new CNumber()}}; + {new CNumber(1), CNumber.ZERO, new CNumber(0, 87.3)}, + {CNumber.ZERO, new CNumber(-8324.324, 234.25), CNumber.ZERO}, + {CNumber.ZERO, CNumber.ZERO, CNumber.ZERO}}; exp = new CMatrix(expEntries); assertEquals(exp, A.stack(B, 1)); @@ -303,7 +303,7 @@ void complexSparseMatrixTestCase() { // ----------------------- Sub-case 4 ----------------------- aEntries = new CNumber[][]{ {new CNumber(9.234, -0.864), new CNumber(58.1, 3), new CNumber(-984, -72.3)}, - {new CNumber(1), new CNumber(), new CNumber(0, 87.3)}}; + {new CNumber(1), CNumber.ZERO, new CNumber(0, 87.3)}}; A = new CMatrix(aEntries); bEntries = new CNumber[]{new CNumber(-8324.324, 234.25)}; rowIndices = new int[]{0}; @@ -317,7 +317,7 @@ void complexSparseMatrixTestCase() { // ----------------------- Sub-case 5 ----------------------- aEntries = new CNumber[][]{ {new CNumber(9.234, -0.864), new CNumber(58.1, 3), new CNumber(-984, -72.3)}, - {new CNumber(1), new CNumber(), new CNumber(0, 87.3)}}; + {new CNumber(1), CNumber.ZERO, new CNumber(0, 87.3)}}; A = new CMatrix(aEntries); bEntries = new CNumber[]{new CNumber(-8324.324, 234.25)}; rowIndices = new int[]{0}; @@ -338,13 +338,13 @@ void realVectorTestCase() { // ----------------------- Sub-case 1 ----------------------- aEntries = new CNumber[][]{ {new CNumber(9.234, -0.864), new CNumber(58.1, 3), new CNumber(-984, -72.3)}, - {new CNumber(1), new CNumber(), new CNumber(0, 87.3)}}; + {new CNumber(1), CNumber.ZERO, new CNumber(0, 87.3)}}; A = new CMatrix(aEntries); bEntries = new double[]{12.34, -89345.5}; B = new Vector(bEntries); expEntries = new CNumber[][]{ {new CNumber(9.234, -0.864), new CNumber(58.1, 3), new CNumber(-984, -72.3), new CNumber(12.34)}, - {new CNumber(1), new CNumber(), new CNumber(0, 87.3), new CNumber(-89345.5)}}; + {new CNumber(1), CNumber.ZERO, new CNumber(0, 87.3), new CNumber(-89345.5)}}; exp = new CMatrix(expEntries); assertEquals(exp, A.stack(B, 0)); @@ -352,7 +352,7 @@ void realVectorTestCase() { // ----------------------- Sub-case 2 ----------------------- aEntries = new CNumber[][]{ {new CNumber(9.234, -0.864), new CNumber(58.1, 3), new CNumber(-984, -72.3)}, - {new CNumber(1), new CNumber(), new CNumber(0, 87.3)}}; + {new CNumber(1), CNumber.ZERO, new CNumber(0, 87.3)}}; A = new CMatrix(aEntries); bEntries = new double[]{12.34, -89345.5, 3.4}; B = new Vector(bEntries); @@ -363,13 +363,13 @@ void realVectorTestCase() { // ----------------------- Sub-case 3 ----------------------- aEntries = new CNumber[][]{ {new CNumber(9.234, -0.864), new CNumber(58.1, 3), new CNumber(-984, -72.3)}, - {new CNumber(1), new CNumber(), new CNumber(0, 87.3)}}; + {new CNumber(1), CNumber.ZERO, new CNumber(0, 87.3)}}; A = new CMatrix(aEntries); bEntries = new double[]{12.34, -89345.5, 234.56}; B = new Vector(bEntries); expEntries = new CNumber[][]{ {new CNumber(9.234, -0.864), new CNumber(58.1, 3), new CNumber(-984, -72.3)}, - {new CNumber(1), new CNumber(), new CNumber(0, 87.3)}, + {new CNumber(1), CNumber.ZERO, new CNumber(0, 87.3)}, {new CNumber(12.34), new CNumber(-89345.5), new CNumber(234.56)}}; exp = new CMatrix(expEntries); @@ -378,7 +378,7 @@ void realVectorTestCase() { // ----------------------- Sub-case 4 ----------------------- aEntries = new CNumber[][]{ {new CNumber(9.234, -0.864), new CNumber(58.1, 3), new CNumber(-984, -72.3)}, - {new CNumber(1), new CNumber(), new CNumber(0, 87.3)}}; + {new CNumber(1), CNumber.ZERO, new CNumber(0, 87.3)}}; A = new CMatrix(aEntries); bEntries = new double[]{12.34, -89345.5}; B = new Vector(bEntries); @@ -389,7 +389,7 @@ void realVectorTestCase() { // ----------------------- Sub-case 5 ----------------------- aEntries = new CNumber[][]{ {new CNumber(9.234, -0.864), new CNumber(58.1, 3), new CNumber(-984, -72.3)}, - {new CNumber(1), new CNumber(), new CNumber(0, 87.3)}}; + {new CNumber(1), CNumber.ZERO, new CNumber(0, 87.3)}}; A = new CMatrix(aEntries); bEntries = new double[]{12.34, -89345.5}; B = new Vector(bEntries); @@ -407,13 +407,13 @@ void complexVectorTestCase() { // ----------------------- Sub-case 1 ----------------------- aEntries = new CNumber[][]{ {new CNumber(9.234, -0.864), new CNumber(58.1, 3), new CNumber(-984, -72.3)}, - {new CNumber(1), new CNumber(), new CNumber(0, 87.3)}}; + {new CNumber(1), CNumber.ZERO, new CNumber(0, 87.3)}}; A = new CMatrix(aEntries); bEntries = new CNumber[]{new CNumber(943.5, -85.4), new CNumber(-4.3, 50.123)}; B = new CVector(bEntries); expEntries = new CNumber[][]{ {new CNumber(9.234, -0.864), new CNumber(58.1, 3), new CNumber(-984, -72.3), new CNumber(943.5, -85.4)}, - {new CNumber(1), new CNumber(), new CNumber(0, 87.3), new CNumber(-4.3, 50.123)}}; + {new CNumber(1), CNumber.ZERO, new CNumber(0, 87.3), new CNumber(-4.3, 50.123)}}; exp = new CMatrix(expEntries); assertEquals(exp, A.stack(B, 0)); @@ -421,7 +421,7 @@ void complexVectorTestCase() { // ----------------------- Sub-case 2 ----------------------- aEntries = new CNumber[][]{ {new CNumber(9.234, -0.864), new CNumber(58.1, 3), new CNumber(-984, -72.3)}, - {new CNumber(1), new CNumber(), new CNumber(0, 87.3)}}; + {new CNumber(1), CNumber.ZERO, new CNumber(0, 87.3)}}; A = new CMatrix(aEntries); bEntries = new CNumber[]{new CNumber(943.5, -85.4), new CNumber(-4.3, 50.123), new CNumber(985.355, 634634.202)}; B = new CVector(bEntries); @@ -432,13 +432,13 @@ void complexVectorTestCase() { // ----------------------- Sub-case 3 ----------------------- aEntries = new CNumber[][]{ {new CNumber(9.234, -0.864), new CNumber(58.1, 3), new CNumber(-984, -72.3)}, - {new CNumber(1), new CNumber(), new CNumber(0, 87.3)}}; + {new CNumber(1), CNumber.ZERO, new CNumber(0, 87.3)}}; A = new CMatrix(aEntries); bEntries = new CNumber[]{new CNumber(943.5, -85.4), new CNumber(-4.3, 50.123), new CNumber(985.355, 634634.202)}; B = new CVector(bEntries); expEntries = new CNumber[][]{ {new CNumber(9.234, -0.864), new CNumber(58.1, 3), new CNumber(-984, -72.3)}, - {new CNumber(1), new CNumber(), new CNumber(0, 87.3)}, + {new CNumber(1), CNumber.ZERO, new CNumber(0, 87.3)}, {new CNumber(943.5, -85.4), new CNumber(-4.3, 50.123), new CNumber(985.355, 634634.202)}}; exp = new CMatrix(expEntries); @@ -447,7 +447,7 @@ void complexVectorTestCase() { // ----------------------- Sub-case 4 ----------------------- aEntries = new CNumber[][]{ {new CNumber(9.234, -0.864), new CNumber(58.1, 3), new CNumber(-984, -72.3)}, - {new CNumber(1), new CNumber(), new CNumber(0, 87.3)}}; + {new CNumber(1), CNumber.ZERO, new CNumber(0, 87.3)}}; A = new CMatrix(aEntries); bEntries = new CNumber[]{new CNumber(943.5, -85.4), new CNumber(-4.3, 50.123)}; B = new CVector(bEntries); @@ -458,7 +458,7 @@ void complexVectorTestCase() { // ----------------------- Sub-case 5 ----------------------- aEntries = new CNumber[][]{ {new CNumber(9.234, -0.864), new CNumber(58.1, 3), new CNumber(-984, -72.3)}, - {new CNumber(1), new CNumber(), new CNumber(0, 87.3)}}; + {new CNumber(1), CNumber.ZERO, new CNumber(0, 87.3)}}; A = new CMatrix(aEntries); bEntries = new CNumber[]{new CNumber(943.5, -85.4), new CNumber(-4.3, 50.123)}; B = new CVector(bEntries); @@ -476,14 +476,14 @@ void realSparseVectorTestCase() { // ----------------------- Sub-case 1 ----------------------- aEntries = new CNumber[][]{ {new CNumber(9.234, -0.864), new CNumber(58.1, 3), new CNumber(-984, -72.3)}, - {new CNumber(1), new CNumber(), new CNumber(0, 87.3)}}; + {new CNumber(1), CNumber.ZERO, new CNumber(0, 87.3)}}; A = new CMatrix(aEntries); bEntries = new double[]{1.234}; rowIndices = new int[]{0}; B = new CooVector(2, bEntries, rowIndices); expEntries = new CNumber[][]{ {new CNumber(9.234, -0.864), new CNumber(58.1, 3), new CNumber(-984, -72.3), new CNumber(1.234)}, - {new CNumber(1), new CNumber(), new CNumber(0, 87.3), new CNumber()}}; + {new CNumber(1), CNumber.ZERO, new CNumber(0, 87.3), CNumber.ZERO}}; exp = new CMatrix(expEntries); assertEquals(exp, A.stack(B, 0)); @@ -491,7 +491,7 @@ void realSparseVectorTestCase() { // ----------------------- Sub-case 2 ----------------------- aEntries = new CNumber[][]{ {new CNumber(9.234, -0.864), new CNumber(58.1, 3), new CNumber(-984, -72.3)}, - {new CNumber(1), new CNumber(), new CNumber(0, 87.3)}}; + {new CNumber(1), CNumber.ZERO, new CNumber(0, 87.3)}}; A = new CMatrix(aEntries); bEntries = new double[]{1.234}; rowIndices = new int[]{0}; @@ -503,15 +503,15 @@ void realSparseVectorTestCase() { // ----------------------- Sub-case 3 ----------------------- aEntries = new CNumber[][]{ {new CNumber(9.234, -0.864), new CNumber(58.1, 3), new CNumber(-984, -72.3)}, - {new CNumber(1), new CNumber(), new CNumber(0, 87.3)}}; + {new CNumber(1), CNumber.ZERO, new CNumber(0, 87.3)}}; A = new CMatrix(aEntries); bEntries = new double[]{1.234}; rowIndices = new int[]{0}; B = new CooVector(3, bEntries, rowIndices); expEntries = new CNumber[][]{ {new CNumber(9.234, -0.864), new CNumber(58.1, 3), new CNumber(-984, -72.3)}, - {new CNumber(1), new CNumber(), new CNumber(0, 87.3)}, - {new CNumber(1.234), new CNumber(), new CNumber()}}; + {new CNumber(1), CNumber.ZERO, new CNumber(0, 87.3)}, + {new CNumber(1.234), CNumber.ZERO, CNumber.ZERO}}; exp = new CMatrix(expEntries); assertEquals(exp, A.stack(B, 1)); @@ -519,7 +519,7 @@ void realSparseVectorTestCase() { // ----------------------- Sub-case 4 ----------------------- aEntries = new CNumber[][]{ {new CNumber(9.234, -0.864), new CNumber(58.1, 3), new CNumber(-984, -72.3)}, - {new CNumber(1), new CNumber(), new CNumber(0, 87.3)}}; + {new CNumber(1), CNumber.ZERO, new CNumber(0, 87.3)}}; A = new CMatrix(aEntries); bEntries = new double[]{1.234}; rowIndices = new int[]{0}; @@ -531,7 +531,7 @@ void realSparseVectorTestCase() { // ----------------------- Sub-case 5 ----------------------- aEntries = new CNumber[][]{ {new CNumber(9.234, -0.864), new CNumber(58.1, 3), new CNumber(-984, -72.3)}, - {new CNumber(1), new CNumber(), new CNumber(0, 87.3)}}; + {new CNumber(1), CNumber.ZERO, new CNumber(0, 87.3)}}; A = new CMatrix(aEntries); bEntries = new double[]{1.234}; rowIndices = new int[]{0}; @@ -550,14 +550,14 @@ void complexSparseVectorTestCase() { // ----------------------- Sub-case 1 ----------------------- aEntries = new CNumber[][]{ {new CNumber(9.234, -0.864), new CNumber(58.1, 3), new CNumber(-984, -72.3)}, - {new CNumber(1), new CNumber(), new CNumber(0, 87.3)}}; + {new CNumber(1), CNumber.ZERO, new CNumber(0, 87.3)}}; A = new CMatrix(aEntries); bEntries = new CNumber[]{new CNumber(23.45, -732.4)}; rowIndices = new int[]{0}; B = new CooCVector(2, bEntries, rowIndices); expEntries = new CNumber[][]{ {new CNumber(9.234, -0.864), new CNumber(58.1, 3), new CNumber(-984, -72.3), new CNumber(23.45, -732.4)}, - {new CNumber(1), new CNumber(), new CNumber(0, 87.3), new CNumber()}}; + {new CNumber(1), CNumber.ZERO, new CNumber(0, 87.3), CNumber.ZERO}}; exp = new CMatrix(expEntries); assertEquals(exp, A.stack(B, 0)); @@ -565,7 +565,7 @@ void complexSparseVectorTestCase() { // ----------------------- Sub-case 2 ----------------------- aEntries = new CNumber[][]{ {new CNumber(9.234, -0.864), new CNumber(58.1, 3), new CNumber(-984, -72.3)}, - {new CNumber(1), new CNumber(), new CNumber(0, 87.3)}}; + {new CNumber(1), CNumber.ZERO, new CNumber(0, 87.3)}}; A = new CMatrix(aEntries); bEntries = new CNumber[]{new CNumber(23.45, -732.4)}; rowIndices = new int[]{0}; @@ -577,15 +577,15 @@ void complexSparseVectorTestCase() { // ----------------------- Sub-case 3 ----------------------- aEntries = new CNumber[][]{ {new CNumber(9.234, -0.864), new CNumber(58.1, 3), new CNumber(-984, -72.3)}, - {new CNumber(1), new CNumber(), new CNumber(0, 87.3)}}; + {new CNumber(1), CNumber.ZERO, new CNumber(0, 87.3)}}; A = new CMatrix(aEntries); bEntries = new CNumber[]{new CNumber(23.45, -732.4)}; rowIndices = new int[]{0}; B = new CooCVector(3, bEntries, rowIndices); expEntries = new CNumber[][]{ {new CNumber(9.234, -0.864), new CNumber(58.1, 3), new CNumber(-984, -72.3)}, - {new CNumber(1), new CNumber(), new CNumber(0, 87.3)}, - {new CNumber(23.45, -732.4), new CNumber(), new CNumber()}}; + {new CNumber(1), CNumber.ZERO, new CNumber(0, 87.3)}, + {new CNumber(23.45, -732.4), CNumber.ZERO, CNumber.ZERO}}; exp = new CMatrix(expEntries); assertEquals(exp, A.stack(B, 1)); @@ -593,7 +593,7 @@ void complexSparseVectorTestCase() { // ----------------------- Sub-case 4 ----------------------- aEntries = new CNumber[][]{ {new CNumber(9.234, -0.864), new CNumber(58.1, 3), new CNumber(-984, -72.3)}, - {new CNumber(1), new CNumber(), new CNumber(0, 87.3)}}; + {new CNumber(1), CNumber.ZERO, new CNumber(0, 87.3)}}; A = new CMatrix(aEntries); bEntries = new CNumber[]{new CNumber(23.45, -732.4)}; rowIndices = new int[]{0}; @@ -605,7 +605,7 @@ void complexSparseVectorTestCase() { // ----------------------- Sub-case 5 ----------------------- aEntries = new CNumber[][]{ {new CNumber(9.234, -0.864), new CNumber(58.1, 3), new CNumber(-984, -72.3)}, - {new CNumber(1), new CNumber(), new CNumber(0, 87.3)}}; + {new CNumber(1), CNumber.ZERO, new CNumber(0, 87.3)}}; A = new CMatrix(aEntries); bEntries = new CNumber[]{new CNumber(23.45, -732.4)}; rowIndices = new int[]{0}; diff --git a/src/test/java/org/flag4j/complex_matrix/CMatrixToStringTests.java b/src/test/java/org/flag4j/complex_matrix/CMatrixToStringTests.java index e273d296a..b8bd6d8be 100644 --- a/src/test/java/org/flag4j/complex_matrix/CMatrixToStringTests.java +++ b/src/test/java/org/flag4j/complex_matrix/CMatrixToStringTests.java @@ -20,7 +20,7 @@ void toStringTestCase() { aEntries = new CNumber[][]{ {new CNumber(2, 4.25), new CNumber(-0.0002345), new CNumber(0, 9.4), new CNumber(1.2598)}, - {new CNumber(56.25, -0.0024), new CNumber(), + {new CNumber(56.25, -0.0024), CNumber.ZERO, new CNumber(0, -1.4545), new CNumber(-3.356, -84.2525)}}; A = new CMatrix(aEntries); PrintOptions.setPrecision(50); @@ -37,7 +37,7 @@ void toStringTestCase() { aEntries = new CNumber[][]{ {new CNumber(2, 4.25), new CNumber(-0.0002345), new CNumber(0, 9.4), new CNumber(1.2598)}, - {new CNumber(56.25, -0.0024), new CNumber(), + {new CNumber(56.25, -0.0024), CNumber.ZERO, new CNumber(0, -1.4545), new CNumber(-3.356, -84.2525)}}; A = new CMatrix(aEntries); PrintOptions.setPrecision(3); @@ -54,7 +54,7 @@ void toStringTestCase() { aEntries = new CNumber[][]{ {new CNumber(2, 4.25), new CNumber(-0.0002345), new CNumber(0, 9.4), new CNumber(1.2598)}, - {new CNumber(56.25, -0.0024), new CNumber(), + {new CNumber(56.25, -0.0024), CNumber.ZERO, new CNumber(0, -1.4545), new CNumber(-3.356, -84.2525)}}; A = new CMatrix(aEntries); PrintOptions.setPrecision(0); @@ -71,7 +71,7 @@ void toStringTestCase() { aEntries = new CNumber[][]{ {new CNumber(2, 4.25), new CNumber(-0.0002345), new CNumber(0, 9.4), new CNumber(1.2598)}, - {new CNumber(56.25, -0.0024), new CNumber(), + {new CNumber(56.25, -0.0024), CNumber.ZERO, new CNumber(0, -1.4545), new CNumber(-3.356, -84.2525)}}; A = new CMatrix(aEntries); PrintOptions.setPrecision(2); @@ -88,7 +88,7 @@ void toStringTestCase() { aEntries = new CNumber[][]{ {new CNumber(2, 4.25), new CNumber(-0.0002345), new CNumber(0, 9.4), new CNumber(1.2598)}, - {new CNumber(56.25, -0.0024), new CNumber(), + {new CNumber(56.25, -0.0024), CNumber.ZERO, new CNumber(0, -1.4545), new CNumber(-3.356, -84.2525)}}; A = new CMatrix(aEntries); PrintOptions.setPrecision(2); @@ -106,7 +106,7 @@ void toStringTestCase() { aEntries = new CNumber[][]{ {new CNumber(2, 4.25), new CNumber(-0.0002345), new CNumber(0, 9.4), new CNumber(1.2598)}, - {new CNumber(56.25, -0.0024), new CNumber(), + {new CNumber(56.25, -0.0024), CNumber.ZERO, new CNumber(0, -1.4545), new CNumber(-3.356, -84.2525)}}; A = new CMatrix(aEntries); PrintOptions.setPrecision(2); @@ -124,7 +124,7 @@ void toStringTestCase() { aEntries = new CNumber[][]{ {new CNumber(2, 4.25), new CNumber(-0.0002345), new CNumber(0, 9.4), new CNumber(1.2598)}, - {new CNumber(56.25, -0.0024), new CNumber(), + {new CNumber(56.25, -0.0024), CNumber.ZERO, new CNumber(0, -1.4545), new CNumber(-3.356, -84.2525)}}; A = new CMatrix(aEntries); PrintOptions.setPrecision(2); @@ -142,7 +142,7 @@ void toStringTestCase() { aEntries = new CNumber[][]{ {new CNumber(2, 4.25), new CNumber(-0.0002345), new CNumber(0, 9.4), new CNumber(1.2598)}, - {new CNumber(56.25, -0.0024), new CNumber(), + {new CNumber(56.25, -0.0024), CNumber.ZERO, new CNumber(0, -1.4545), new CNumber(-3.356, -84.2525)}}; A = new CMatrix(aEntries); PrintOptions.setPrecision(3); diff --git a/src/test/java/org/flag4j/complex_numbers/CNumberBinaryOperationsTest.java b/src/test/java/org/flag4j/complex_numbers/CNumberBinaryOperationsTest.java index 63030be00..8a58e91f1 100644 --- a/src/test/java/org/flag4j/complex_numbers/CNumberBinaryOperationsTest.java +++ b/src/test/java/org/flag4j/complex_numbers/CNumberBinaryOperationsTest.java @@ -405,7 +405,7 @@ void multTestCase() { // --------------- Sub-case 3 --------------- a = new CNumber(1.345, -93.13); b = new CNumber(0, 0); - expResult = CNumber.zero(); + expResult = CNumber.ZERO; result = a.mult(b); @@ -415,7 +415,7 @@ void multTestCase() { // --------------- Sub-case 4 --------------- a = new CNumber(0, 0); b = new CNumber(1.345, -93.13); - expResult = CNumber.zero(); + expResult = CNumber.ZERO; result = a.mult(b); @@ -459,7 +459,7 @@ void multDoubleTestCase() { a = new CNumber(0, 0); bDouble = 9.234e10; - expResult = CNumber.zero(); + expResult = CNumber.ZERO; result = a.mult(bDouble); @@ -468,7 +468,7 @@ void multDoubleTestCase() { // --------------- Sub-case 3 --------------- a = new CNumber(1.345, -93.13); bDouble = 0; - expResult = CNumber.zero(); + expResult = CNumber.ZERO; result = a.mult(bDouble); @@ -520,7 +520,7 @@ void divTestCase() { // --------------- Sub-case 3 --------------- a = new CNumber(1.345, -93.13); b = new CNumber(0, 0); - expResult = CNumber.nan(); + expResult = CNumber.NaN; result = a.div(b); @@ -531,7 +531,7 @@ void divTestCase() { // --------------- Sub-case 4 --------------- a = new CNumber(0, 0); b = new CNumber(1.345, -93.13); - expResult = CNumber.zero(); + expResult = CNumber.ZERO; result = a.div(b); @@ -591,7 +591,7 @@ void divDoubleTestCase() { // --------------- Sub-case 4 --------------- a = new CNumber(0, 0); bDouble = 24.134; - expResult = CNumber.zero(); + expResult = CNumber.ZERO; result = a.div(bDouble); diff --git a/src/test/java/org/flag4j/complex_numbers/CNumberConstructorTest.java b/src/test/java/org/flag4j/complex_numbers/CNumberConstructorTest.java index 53dc5a9d0..e8c49f259 100644 --- a/src/test/java/org/flag4j/complex_numbers/CNumberConstructorTest.java +++ b/src/test/java/org/flag4j/complex_numbers/CNumberConstructorTest.java @@ -14,7 +14,7 @@ class CNumberConstructorTest { @Test void defaultConstructorTestCase() { // ---------- sub-case 1 ---------- - a = new CNumber(); + a = CNumber.ZERO; expRe=0; expIm=0; @@ -136,10 +136,10 @@ void reImConstructorTestCase() { @Test void copyConstructorTestCase() { // ---------- sub-case 1 ---------- - a = new CNumber(); + a = CNumber.ZERO; expRe = a.re; expIm = a.im; - b = new CNumber(a); + b = a; assertEquals(expRe, b.re); assertEquals(expIm, b.im); @@ -148,7 +148,7 @@ void copyConstructorTestCase() { a = new CNumber(1023.343); expRe = a.re; expIm = a.im; - b = new CNumber(a); + b = a; assertEquals(expRe, b.re); assertEquals(expIm, b.im); @@ -158,7 +158,7 @@ void copyConstructorTestCase() { a = new CNumber(Double.POSITIVE_INFINITY, 03.3210003); expRe = a.re; expIm = a.im; - b = new CNumber(a); + b = a; assertEquals(expRe, b.re); assertEquals(expIm, b.im); diff --git a/src/test/java/org/flag4j/complex_numbers/CNumberMinMaxSumTest.java b/src/test/java/org/flag4j/complex_numbers/CNumberMinMaxSumTest.java index 7d93899a4..24ee8ab60 100644 --- a/src/test/java/org/flag4j/complex_numbers/CNumberMinMaxSumTest.java +++ b/src/test/java/org/flag4j/complex_numbers/CNumberMinMaxSumTest.java @@ -27,7 +27,7 @@ void sumTestCase() { // ------------ Sub-case 2 ------------ sum = CNumber.sum(); - expSum = new CNumber(); + expSum = CNumber.ZERO; Assertions.assertEquals(sum, expSum); } diff --git a/src/test/java/org/flag4j/complex_numbers/CNumberSqrtTest.java b/src/test/java/org/flag4j/complex_numbers/CNumberSqrtTest.java index 0da0a21fa..582732ad7 100644 --- a/src/test/java/org/flag4j/complex_numbers/CNumberSqrtTest.java +++ b/src/test/java/org/flag4j/complex_numbers/CNumberSqrtTest.java @@ -24,14 +24,14 @@ void sqrtDoubleTestCase() { // ------------- Sub-case 3 ------------- a = 2; - expResult = CNumber.rootTwo(); + expResult = CNumber.ROOT_TWO; actResult = CNumber.sqrt(a); Assertions.assertEquals(expResult, actResult); // ------------- Sub-case 4 ------------- a = 3; - expResult = CNumber.rootThree(); + expResult = CNumber.ROOT_THREE; actResult = CNumber.sqrt(a); Assertions.assertEquals(expResult, actResult); @@ -83,14 +83,14 @@ void sqrtTestCase() { // ------------- Sub-case 3 ------------- aComplex = new CNumber(2); - expResult = CNumber.rootTwo(); + expResult = CNumber.ROOT_TWO; actResult = CNumber.sqrt(aComplex); Assertions.assertEquals(expResult, actResult); // ------------- Sub-case 4 ------------- aComplex = new CNumber(3); - expResult = CNumber.rootThree(); + expResult = CNumber.ROOT_THREE; actResult = CNumber.sqrt(aComplex); Assertions.assertEquals(expResult, actResult); diff --git a/src/test/java/org/flag4j/complex_numbers/CNumberToStringTest.java b/src/test/java/org/flag4j/complex_numbers/CNumberToStringTest.java index 31e0d587f..35f9c00c2 100644 --- a/src/test/java/org/flag4j/complex_numbers/CNumberToStringTest.java +++ b/src/test/java/org/flag4j/complex_numbers/CNumberToStringTest.java @@ -28,7 +28,7 @@ void realToStringTestCase() { Assertions.assertEquals(expStr.length(), CNumber.length(a)); // ---------- Sub-case 4 ------------ - a = new CNumber(); + a = CNumber.ZERO; expStr = "0"; Assertions.assertEquals(expStr, a.toString()); Assertions.assertEquals(expStr.length(), CNumber.length(a)); diff --git a/src/test/java/org/flag4j/complex_numbers/CNumberUnaryOperationsTest.java b/src/test/java/org/flag4j/complex_numbers/CNumberUnaryOperationsTest.java index b2222fbdf..1e35375f9 100644 --- a/src/test/java/org/flag4j/complex_numbers/CNumberUnaryOperationsTest.java +++ b/src/test/java/org/flag4j/complex_numbers/CNumberUnaryOperationsTest.java @@ -197,7 +197,7 @@ void addInvTestCase() { Assertions.assertEquals(expValue, value); // ---------- Sub-case 5 ------------ - a = CNumber.nan(); + a = CNumber.NaN; value = a.addInv(); Assertions.assertTrue(Double.isNaN(value.re)); Assertions.assertTrue(Double.isNaN(value.im)); @@ -232,7 +232,7 @@ void multInvTestCase() { Assertions.assertTrue(Double.isNaN(value.im)); // ---------- Sub-case 5 ------------ - a = CNumber.nan(); + a = CNumber.NaN; value = a.multInv(); Assertions.assertTrue(Double.isNaN(value.re)); Assertions.assertTrue(Double.isNaN(value.im)); @@ -272,7 +272,7 @@ void conjTestCase() { Assertions.assertEquals(expValue, value); // --------- Sub-case 6 ----------- - a = CNumber.nan(); + a = CNumber.NaN; value = a.conj(); Assertions.assertTrue(Double.isNaN(value.re)); Assertions.assertTrue(Double.isNaN(value.im)); @@ -301,13 +301,13 @@ void sgnTestCase() { // --------- Sub-case 4 ----------- a = new CNumber(1.4, 13.4); - expValue = new CNumber(a.div(a.mag())); + expValue = a.div(a.mag()); value = CNumber.sgn(a); Assertions.assertEquals(expValue, value); // --------- Sub-case 5 ----------- a = new CNumber(-13.13, 4141.2); - expValue = new CNumber(a.div(a.mag())); + expValue = a.div(a.mag()); value = CNumber.sgn(a); Assertions.assertEquals(expValue, value); @@ -318,7 +318,7 @@ void sgnTestCase() { Assertions.assertTrue(Double.isNaN(value.re)); // --------- Sub-case 7 ----------- - a = CNumber.nan(); + a = CNumber.NaN; value = CNumber.sgn(a); Assertions.assertTrue(Double.isNaN(value.im)); Assertions.assertTrue(Double.isNaN(value.re)); diff --git a/src/test/java/org/flag4j/complex_tensor/CTensorAddTests.java b/src/test/java/org/flag4j/complex_tensor/CTensorAddTests.java index d2ed8525c..bfcf7395e 100644 --- a/src/test/java/org/flag4j/complex_tensor/CTensorAddTests.java +++ b/src/test/java/org/flag4j/complex_tensor/CTensorAddTests.java @@ -6,11 +6,12 @@ import org.flag4j.arrays.sparse.CooTensor; import org.flag4j.complex_numbers.CNumber; import org.flag4j.core.Shape; -import org.flag4j.util.ArrayUtils; import org.flag4j.util.exceptions.LinearAlgebraException; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import java.util.Arrays; + import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; @@ -94,11 +95,11 @@ void realSparseTestCase() { {0, 2, 1}, {1, 1, 0}, {1, 2, 1} }; B = new CooTensor(bShape, bEntries, sparseIndices); - expEntries = ArrayUtils.copyOf(aEntries); + expEntries = Arrays.copyOf(aEntries, aEntries.length); expShape = new Shape(true,2, 3, 2); - expEntries[expShape.entriesIndex(sparseIndices[0])].addEq(bEntries[0]); - expEntries[expShape.entriesIndex(sparseIndices[1])].addEq(bEntries[1]); - expEntries[expShape.entriesIndex(sparseIndices[2])].addEq(bEntries[2]); + expEntries[expShape.entriesIndex(sparseIndices[0])] = expEntries[expShape.entriesIndex(sparseIndices[0])].add(bEntries[0]); + expEntries[expShape.entriesIndex(sparseIndices[1])] = expEntries[expShape.entriesIndex(sparseIndices[1])].add(bEntries[1]); + expEntries[expShape.entriesIndex(sparseIndices[2])] = expEntries[expShape.entriesIndex(sparseIndices[2])].add(bEntries[2]); exp = new CTensor(expShape, expEntries); assertEquals(exp, A.add(B)); @@ -172,10 +173,10 @@ void complexSparseTestCase() { {0, 2, 1}, {1, 1, 0} }; B = new CooCTensor(bShape, bEntries, sparseIndices); - expEntries = ArrayUtils.copyOf(aEntries); + expEntries = Arrays.copyOf(aEntries, aEntries.length); expShape = new Shape(true,2, 3, 2); - expEntries[expShape.entriesIndex(sparseIndices[0])].addEq(bEntries[0]); - expEntries[expShape.entriesIndex(sparseIndices[1])].addEq(bEntries[1]); + expEntries[expShape.entriesIndex(sparseIndices[0])] = expEntries[expShape.entriesIndex(sparseIndices[0])].add(bEntries[0]); + expEntries[expShape.entriesIndex(sparseIndices[1])] = expEntries[expShape.entriesIndex(sparseIndices[1])].add(bEntries[1]); exp = new CTensor(expShape, expEntries); assertEquals(exp, A.add(B)); @@ -297,11 +298,11 @@ void realSparseAddEqTestCase() { {0, 2, 1}, {1, 1, 0}, {1, 2, 1} }; B = new CooTensor(bShape, bEntries, sparseIndices); - expEntries = ArrayUtils.copyOf(aEntries); + expEntries = Arrays.copyOf(aEntries, aEntries.length); expShape = new Shape(true,2, 3, 2); - expEntries[expShape.entriesIndex(sparseIndices[0])].addEq(bEntries[0]); - expEntries[expShape.entriesIndex(sparseIndices[1])].addEq(bEntries[1]); - expEntries[expShape.entriesIndex(sparseIndices[2])].addEq(bEntries[2]); + expEntries[expShape.entriesIndex(sparseIndices[0])] = expEntries[expShape.entriesIndex(sparseIndices[0])].add(bEntries[0]); + expEntries[expShape.entriesIndex(sparseIndices[1])] = expEntries[expShape.entriesIndex(sparseIndices[1])].add(bEntries[1]); + expEntries[expShape.entriesIndex(sparseIndices[2])] = expEntries[expShape.entriesIndex(sparseIndices[2])].add(bEntries[2]); exp = new CTensor(expShape, expEntries); A.addEq(B); @@ -352,7 +353,7 @@ void complexDenseAddEqTestCase() { new CNumber(1.34, -0.324), new CNumber(0.134), new CNumber(0, 2.501), new CNumber(-994.1, 0.0234), new CNumber(9.4, 0.14), new CNumber(5.2, 1104.5), new CNumber(103.45, 6), new CNumber(-23.45, 1.4), new CNumber(-2, -0.4), - new CNumber(3.55), new CNumber(), new CNumber(100.2456), + new CNumber(3.55), CNumber.ZERO, new CNumber(100.2456), }; bShape = new Shape(2, 3, 2); B = new CTensor(bShape, bEntries); @@ -373,7 +374,7 @@ void complexDenseAddEqTestCase() { new CNumber(1.34, -0.324), new CNumber(0.134), new CNumber(0, 2.501), new CNumber(-994.1, 0.0234), new CNumber(9.4, 0.14), new CNumber(5.2, 1104.5), new CNumber(103.45, 6), new CNumber(-23.45, 1.4), new CNumber(-2, -0.4), - new CNumber(3.55), new CNumber(), new CNumber(100.2456), + new CNumber(3.55), CNumber.ZERO, new CNumber(100.2456), }; bShape = new Shape(2, 3, 2, 1); B = new CTensor(bShape, bEntries); @@ -386,7 +387,7 @@ void complexDenseAddEqTestCase() { new CNumber(1.34, -0.324), new CNumber(0.134), new CNumber(0, 2.501), new CNumber(-994.1, 0.0234), new CNumber(9.4, 0.14), new CNumber(5.2, 1104.5), new CNumber(103.45, 6), new CNumber(-23.45, 1.4), new CNumber(-2, -0.4), - new CNumber(3.55), new CNumber(), new CNumber(100.2456), + new CNumber(3.55), CNumber.ZERO, new CNumber(100.2456), new CNumber(1.344), new CNumber(0.924, 55.6) }; bShape = new Shape(7, 2); @@ -411,11 +412,11 @@ void complexSparseAddEqTestCase() { {0, 2, 1}, {1, 1, 0}, {1, 2, 1} }; B = new CooCTensor(bShape, bEntries, sparseIndices); - expEntries = ArrayUtils.copyOf(aEntries); + expEntries = Arrays.copyOf(aEntries, aEntries.length); expShape = new Shape(true,2, 3, 2); - expEntries[expShape.entriesIndex(sparseIndices[0])].addEq(bEntries[0]); - expEntries[expShape.entriesIndex(sparseIndices[1])].addEq(bEntries[1]); - expEntries[expShape.entriesIndex(sparseIndices[2])].addEq(bEntries[2]); + expEntries[expShape.entriesIndex(sparseIndices[0])] = expEntries[expShape.entriesIndex(sparseIndices[0])].add(bEntries[0]); + expEntries[expShape.entriesIndex(sparseIndices[1])] = expEntries[expShape.entriesIndex(sparseIndices[1])].add(bEntries[1]); + expEntries[expShape.entriesIndex(sparseIndices[2])] = expEntries[expShape.entriesIndex(sparseIndices[2])].add(bEntries[2]); exp = new CTensor(expShape, expEntries); A.addEq(B); diff --git a/src/test/java/org/flag4j/complex_tensor/CTensorConstructorTests.java b/src/test/java/org/flag4j/complex_tensor/CTensorConstructorTests.java index ccd52c74a..34f659b9e 100644 --- a/src/test/java/org/flag4j/complex_tensor/CTensorConstructorTests.java +++ b/src/test/java/org/flag4j/complex_tensor/CTensorConstructorTests.java @@ -27,7 +27,7 @@ void shapeConstructorTestCase() { expShape = new Shape(4, 5, 6, 7, 1, 2, 4); expEntries = new CNumber[expShape.totalEntries().intValue()]; for(int i=0; iComplexDenseDeterminant.det1(A)); } @@ -91,15 +91,15 @@ void det2Test() { assertEquals(exp, act); // -------------- Sub-case 5 -------------- - entries = new CNumber[][]{{new CNumber()}}; + entries = new CNumber[][]{{CNumber.ZERO}}; A = new CMatrix(entries); assertThrows(LinearAlgebraException.class, ()->ComplexDenseDeterminant.det2(A)); // -------------- Sub-case 6 -------------- entries = new CNumber[][]{ - {new CNumber(), new CNumber(), new CNumber()}, - {new CNumber(), new CNumber(), new CNumber()}, - {new CNumber(), new CNumber(), new CNumber()}}; + {CNumber.ZERO, CNumber.ZERO, CNumber.ZERO}, + {CNumber.ZERO, CNumber.ZERO, CNumber.ZERO}, + {CNumber.ZERO, CNumber.ZERO, CNumber.ZERO}}; A = new CMatrix(entries); assertThrows(LinearAlgebraException.class, ()->ComplexDenseDeterminant.det2(A)); } @@ -113,7 +113,7 @@ void det3Test() { {new CNumber("4"), new CNumber("5"), new CNumber("6")}, {new CNumber("7"), new CNumber("8"), new CNumber("9")}}; A = new CMatrix(entries); - exp = new CNumber(); + exp = CNumber.ZERO; act = ComplexDenseDeterminant.det(A); assertEquals(exp, act); @@ -138,16 +138,16 @@ void det3Test() { assertEquals(exp, act); // -------------- Sub-case 4 -------------- - entries = new CNumber[][]{{new CNumber(), new CNumber()}, {new CNumber(), new CNumber()}}; + entries = new CNumber[][]{{CNumber.ZERO, CNumber.ZERO}, {CNumber.ZERO, CNumber.ZERO}}; A = new CMatrix(entries); assertThrows(LinearAlgebraException.class, ()->ComplexDenseDeterminant.det3(A)); // -------------- Sub-case 5 -------------- entries = new CNumber[][]{ - {new CNumber(), new CNumber(), new CNumber(), new CNumber()}, - {new CNumber(), new CNumber(), new CNumber(), new CNumber()}, - {new CNumber(), new CNumber(), new CNumber(), new CNumber()}, - {new CNumber(), new CNumber(), new CNumber(), new CNumber()}}; + {CNumber.ZERO, CNumber.ZERO, CNumber.ZERO, CNumber.ZERO}, + {CNumber.ZERO, CNumber.ZERO, CNumber.ZERO, CNumber.ZERO}, + {CNumber.ZERO, CNumber.ZERO, CNumber.ZERO, CNumber.ZERO}, + {CNumber.ZERO, CNumber.ZERO, CNumber.ZERO, CNumber.ZERO}}; A = new CMatrix(entries); assertThrows(LinearAlgebraException.class, ()->ComplexDenseDeterminant.det3(A)); } diff --git a/src/test/java/org/flag4j/operations/dense/complex/ComplexDenseOperationsTests.java b/src/test/java/org/flag4j/operations/dense/complex/ComplexDenseOperationsTests.java index 9b27e661c..f332de1c1 100644 --- a/src/test/java/org/flag4j/operations/dense/complex/ComplexDenseOperationsTests.java +++ b/src/test/java/org/flag4j/operations/dense/complex/ComplexDenseOperationsTests.java @@ -153,7 +153,7 @@ void prodTestCase() { // ---------- Sub-case 2 ----------------- src1 = new CNumber[]{}; - expResultC = new CNumber(); + expResultC = CNumber.ZERO; assertEquals(expResultC, prod(src1)); } diff --git a/src/test/java/org/flag4j/operations/dense_sparse/real_complex/RealComplexDenseSparseMatMultTransposeTests.java b/src/test/java/org/flag4j/operations/dense_sparse/real_complex/RealComplexDenseSparseMatMultTransposeTests.java index 7f656ad21..dd152d1c0 100644 --- a/src/test/java/org/flag4j/operations/dense_sparse/real_complex/RealComplexDenseSparseMatMultTransposeTests.java +++ b/src/test/java/org/flag4j/operations/dense_sparse/real_complex/RealComplexDenseSparseMatMultTransposeTests.java @@ -40,7 +40,7 @@ static void setup() { }; cdEntries = new CNumber[][]{ {new CNumber(-0.24, 14.5), new CNumber(0.425)}, - {new CNumber(8.33, -84.4), new CNumber()}, + {new CNumber(8.33, -84.4), CNumber.ZERO}, {new CNumber(4.5, -9.24), new CNumber(0, -85.2)}, {new CNumber("1.345"), new CNumber("-85.445+15.5i")} }; diff --git a/src/test/java/org/flag4j/sparse_complex_vector/CooCVectorConversionTests.java b/src/test/java/org/flag4j/sparse_complex_vector/CooCVectorConversionTests.java index d8154006b..c494e3f97 100644 --- a/src/test/java/org/flag4j/sparse_complex_vector/CooCVectorConversionTests.java +++ b/src/test/java/org/flag4j/sparse_complex_vector/CooCVectorConversionTests.java @@ -8,10 +8,11 @@ import org.flag4j.arrays.sparse.CooVector; import org.flag4j.complex_numbers.CNumber; import org.flag4j.core.Shape; -import org.flag4j.util.ArrayUtils; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; +import java.util.Arrays; + import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -121,11 +122,11 @@ void toDenseTestCase() { // ------------------- Sub-case 1 ------------------- expEntries = new CNumber[sparseSize]; - ArrayUtils.fillZeros(expEntries); - expEntries[aIndices[0]] = aEntries[0].copy(); - expEntries[aIndices[1]] = aEntries[1].copy(); - expEntries[aIndices[2]] = aEntries[2].copy(); - expEntries[aIndices[3]] = aEntries[3].copy(); + Arrays.fill(expEntries, CNumber.ZERO); + expEntries[aIndices[0]] = aEntries[0]; + expEntries[aIndices[1]] = aEntries[1]; + expEntries[aIndices[2]] = aEntries[2]; + expEntries[aIndices[3]] = aEntries[3]; exp = new CVector(expEntries); assertTrue(exp.tensorEquals(a.toDense())); @@ -139,11 +140,11 @@ void fromDenseTestCase() { // ------------------- Sub-case 1 ------------------- denseEntries = new CNumber[sparseSize]; - ArrayUtils.fillZeros(denseEntries); - denseEntries[aIndices[0]] = aEntries[0].copy(); - denseEntries[aIndices[1]] = aEntries[1].copy(); - denseEntries[aIndices[2]] = aEntries[2].copy(); - denseEntries[aIndices[3]] = aEntries[3].copy(); + Arrays.fill(denseEntries, CNumber.ZERO); + denseEntries[aIndices[0]] = aEntries[0]; + denseEntries[aIndices[1]] = aEntries[1]; + denseEntries[aIndices[2]] = aEntries[2]; + denseEntries[aIndices[3]] = aEntries[3]; denseVector = new CVector(denseEntries); assertEquals(a, CooCVector.fromDense(denseVector)); diff --git a/src/test/java/org/flag4j/sparse_complex_vector/CooCVectorJoinTests.java b/src/test/java/org/flag4j/sparse_complex_vector/CooCVectorJoinTests.java index e5dffad02..07483dd1f 100644 --- a/src/test/java/org/flag4j/sparse_complex_vector/CooCVectorJoinTests.java +++ b/src/test/java/org/flag4j/sparse_complex_vector/CooCVectorJoinTests.java @@ -42,8 +42,8 @@ void denseRealJoinTestCase() { // ------------------- Sub-case 1 ------------------- bEntries = new double[]{24.53, 66.1, -234.5, 0.0}; b = new Vector(bEntries); - expEntries = new CNumber[]{new CNumber(224.5, -93.2), new CNumber(322.5), new CNumber(), - new CNumber(), new CNumber(), new CNumber(), new CNumber(46.72), new CNumber(), + expEntries = new CNumber[]{new CNumber(224.5, -93.2), new CNumber(322.5), CNumber.ZERO, + CNumber.ZERO, CNumber.ZERO, CNumber.ZERO, new CNumber(46.72), CNumber.ZERO, new CNumber(24.53), new CNumber(66.1), new CNumber(-234.5), new CNumber(0.0) }; exp = new CVector(expEntries); diff --git a/src/test/java/org/flag4j/sparse_complex_vector/CooCVectorRepeatTests.java b/src/test/java/org/flag4j/sparse_complex_vector/CooCVectorRepeatTests.java index f17cc486d..67a0ab904 100644 --- a/src/test/java/org/flag4j/sparse_complex_vector/CooCVectorRepeatTests.java +++ b/src/test/java/org/flag4j/sparse_complex_vector/CooCVectorRepeatTests.java @@ -20,56 +20,56 @@ class CooCVectorRepeatTests { @Test void repeatRowTest() { // ---------------------- Sub-case 1 ---------------------- - aEntries = new CNumber[]{new CNumber(0.14, 9.2352), new CNumber(), new CNumber(134.4, -51.00024), new CNumber(), - new CNumber(), new CNumber(0, -1.445), new CNumber(2.45), new CNumber(), - new CNumber(), new CNumber(), new CNumber(), new CNumber()}; + aEntries = new CNumber[]{new CNumber(0.14, 9.2352), CNumber.ZERO, new CNumber(134.4, -51.00024), CNumber.ZERO, + CNumber.ZERO, new CNumber(0, -1.445), new CNumber(2.45), CNumber.ZERO, + CNumber.ZERO, CNumber.ZERO, CNumber.ZERO, CNumber.ZERO}; a = new CVector(aEntries).toCoo(); expEntries = new CNumber[][]{ - {new CNumber(0.14, 9.2352), new CNumber(), new CNumber(134.4, -51.00024), new CNumber(), - new CNumber(), new CNumber(0, -1.445), new CNumber(2.45), new CNumber(), - new CNumber(), new CNumber(), new CNumber(), new CNumber()}, - {new CNumber(0.14, 9.2352), new CNumber(), new CNumber(134.4, -51.00024), new CNumber(), - new CNumber(), new CNumber(0, -1.445), new CNumber(2.45), new CNumber(), - new CNumber(), new CNumber(), new CNumber(), new CNumber()}, - {new CNumber(0.14, 9.2352), new CNumber(), new CNumber(134.4, -51.00024), new CNumber(), - new CNumber(), new CNumber(0, -1.445), new CNumber(2.45), new CNumber(), - new CNumber(), new CNumber(), new CNumber(), new CNumber()}, - {new CNumber(0.14, 9.2352), new CNumber(), new CNumber(134.4, -51.00024), new CNumber(), - new CNumber(), new CNumber(0, -1.445), new CNumber(2.45), new CNumber(), - new CNumber(), new CNumber(), new CNumber(), new CNumber()}, - {new CNumber(0.14, 9.2352), new CNumber(), new CNumber(134.4, -51.00024), new CNumber(), - new CNumber(), new CNumber(0, -1.445), new CNumber(2.45), new CNumber(), - new CNumber(), new CNumber(), new CNumber(), new CNumber()} + {new CNumber(0.14, 9.2352), CNumber.ZERO, new CNumber(134.4, -51.00024), CNumber.ZERO, + CNumber.ZERO, new CNumber(0, -1.445), new CNumber(2.45), CNumber.ZERO, + CNumber.ZERO, CNumber.ZERO, CNumber.ZERO, CNumber.ZERO}, + {new CNumber(0.14, 9.2352), CNumber.ZERO, new CNumber(134.4, -51.00024), CNumber.ZERO, + CNumber.ZERO, new CNumber(0, -1.445), new CNumber(2.45), CNumber.ZERO, + CNumber.ZERO, CNumber.ZERO, CNumber.ZERO, CNumber.ZERO}, + {new CNumber(0.14, 9.2352), CNumber.ZERO, new CNumber(134.4, -51.00024), CNumber.ZERO, + CNumber.ZERO, new CNumber(0, -1.445), new CNumber(2.45), CNumber.ZERO, + CNumber.ZERO, CNumber.ZERO, CNumber.ZERO, CNumber.ZERO}, + {new CNumber(0.14, 9.2352), CNumber.ZERO, new CNumber(134.4, -51.00024), CNumber.ZERO, + CNumber.ZERO, new CNumber(0, -1.445), new CNumber(2.45), CNumber.ZERO, + CNumber.ZERO, CNumber.ZERO, CNumber.ZERO, CNumber.ZERO}, + {new CNumber(0.14, 9.2352), CNumber.ZERO, new CNumber(134.4, -51.00024), CNumber.ZERO, + CNumber.ZERO, new CNumber(0, -1.445), new CNumber(2.45), CNumber.ZERO, + CNumber.ZERO, CNumber.ZERO, CNumber.ZERO, CNumber.ZERO} }; exp = new CMatrix(expEntries).toCoo(); assertEquals(exp, a.repeat(5, 0)); // ---------------------- Sub-case 2 ---------------------- - aEntries = new CNumber[]{new CNumber(), new CNumber(), new CNumber(134.4, -51.00024), new CNumber(), - new CNumber(), new CNumber(), new CNumber(2.45), new CNumber(), - new CNumber(), new CNumber(), new CNumber(), new CNumber(2.45), - new CNumber(), new CNumber(2.45)}; + aEntries = new CNumber[]{CNumber.ZERO, CNumber.ZERO, new CNumber(134.4, -51.00024), CNumber.ZERO, + CNumber.ZERO, CNumber.ZERO, new CNumber(2.45), CNumber.ZERO, + CNumber.ZERO, CNumber.ZERO, CNumber.ZERO, new CNumber(2.45), + CNumber.ZERO, new CNumber(2.45)}; a = new CVector(aEntries).toCoo(); expEntries = new CNumber[][]{ - {new CNumber(), new CNumber(), new CNumber(134.4, -51.00024), new CNumber(), - new CNumber(), new CNumber(), new CNumber(2.45), new CNumber(), - new CNumber(), new CNumber(), new CNumber(), new CNumber(2.45), - new CNumber(), new CNumber(2.45)}, - {new CNumber(), new CNumber(), new CNumber(134.4, -51.00024), new CNumber(), - new CNumber(), new CNumber(), new CNumber(2.45), new CNumber(), - new CNumber(), new CNumber(), new CNumber(), new CNumber(2.45), - new CNumber(), new CNumber(2.45)} + {CNumber.ZERO, CNumber.ZERO, new CNumber(134.4, -51.00024), CNumber.ZERO, + CNumber.ZERO, CNumber.ZERO, new CNumber(2.45), CNumber.ZERO, + CNumber.ZERO, CNumber.ZERO, CNumber.ZERO, new CNumber(2.45), + CNumber.ZERO, new CNumber(2.45)}, + {CNumber.ZERO, CNumber.ZERO, new CNumber(134.4, -51.00024), CNumber.ZERO, + CNumber.ZERO, CNumber.ZERO, new CNumber(2.45), CNumber.ZERO, + CNumber.ZERO, CNumber.ZERO, CNumber.ZERO, new CNumber(2.45), + CNumber.ZERO, new CNumber(2.45)} }; exp = new CMatrix(expEntries).toCoo(); assertEquals(exp, a.repeat(2, 0)); // ---------------------- Sub-case 3 ---------------------- - aEntries = new CNumber[]{new CNumber(), new CNumber(), new CNumber(134.4, -51.00024), new CNumber(), - new CNumber(), new CNumber(), new CNumber(2.45), new CNumber(), - new CNumber(), new CNumber(), new CNumber(), new CNumber(2.45), - new CNumber(), new CNumber(2.45)}; + aEntries = new CNumber[]{CNumber.ZERO, CNumber.ZERO, new CNumber(134.4, -51.00024), CNumber.ZERO, + CNumber.ZERO, CNumber.ZERO, new CNumber(2.45), CNumber.ZERO, + CNumber.ZERO, CNumber.ZERO, CNumber.ZERO, new CNumber(2.45), + CNumber.ZERO, new CNumber(2.45)}; a = new CVector(aEntries).toCoo(); assertThrows(IllegalArgumentException.class, ()-> a.repeat(-1, 0)); @@ -81,56 +81,56 @@ void repeatRowTest() { @Test void repeatColTest() { // ---------------------- Sub-case 1 ---------------------- - aEntries = new CNumber[]{new CNumber(0.14, 9.2352), new CNumber(), new CNumber(134.4, -51.00024), new CNumber(), - new CNumber(), new CNumber(0, -1.445), new CNumber(2.45), new CNumber(), - new CNumber(), new CNumber(), new CNumber(), new CNumber()}; + aEntries = new CNumber[]{new CNumber(0.14, 9.2352), CNumber.ZERO, new CNumber(134.4, -51.00024), CNumber.ZERO, + CNumber.ZERO, new CNumber(0, -1.445), new CNumber(2.45), CNumber.ZERO, + CNumber.ZERO, CNumber.ZERO, CNumber.ZERO, CNumber.ZERO}; a = new CVector(aEntries).toCoo(); expEntries = new CNumber[][]{ - {new CNumber(0.14, 9.2352), new CNumber(), new CNumber(134.4, -51.00024), new CNumber(), - new CNumber(), new CNumber(0, -1.445), new CNumber(2.45), new CNumber(), - new CNumber(), new CNumber(), new CNumber(), new CNumber()}, - {new CNumber(0.14, 9.2352), new CNumber(), new CNumber(134.4, -51.00024), new CNumber(), - new CNumber(), new CNumber(0, -1.445), new CNumber(2.45), new CNumber(), - new CNumber(), new CNumber(), new CNumber(), new CNumber()}, - {new CNumber(0.14, 9.2352), new CNumber(), new CNumber(134.4, -51.00024), new CNumber(), - new CNumber(), new CNumber(0, -1.445), new CNumber(2.45), new CNumber(), - new CNumber(), new CNumber(), new CNumber(), new CNumber()}, - {new CNumber(0.14, 9.2352), new CNumber(), new CNumber(134.4, -51.00024), new CNumber(), - new CNumber(), new CNumber(0, -1.445), new CNumber(2.45), new CNumber(), - new CNumber(), new CNumber(), new CNumber(), new CNumber()}, - {new CNumber(0.14, 9.2352), new CNumber(), new CNumber(134.4, -51.00024), new CNumber(), - new CNumber(), new CNumber(0, -1.445), new CNumber(2.45), new CNumber(), - new CNumber(), new CNumber(), new CNumber(), new CNumber()} + {new CNumber(0.14, 9.2352), CNumber.ZERO, new CNumber(134.4, -51.00024), CNumber.ZERO, + CNumber.ZERO, new CNumber(0, -1.445), new CNumber(2.45), CNumber.ZERO, + CNumber.ZERO, CNumber.ZERO, CNumber.ZERO, CNumber.ZERO}, + {new CNumber(0.14, 9.2352), CNumber.ZERO, new CNumber(134.4, -51.00024), CNumber.ZERO, + CNumber.ZERO, new CNumber(0, -1.445), new CNumber(2.45), CNumber.ZERO, + CNumber.ZERO, CNumber.ZERO, CNumber.ZERO, CNumber.ZERO}, + {new CNumber(0.14, 9.2352), CNumber.ZERO, new CNumber(134.4, -51.00024), CNumber.ZERO, + CNumber.ZERO, new CNumber(0, -1.445), new CNumber(2.45), CNumber.ZERO, + CNumber.ZERO, CNumber.ZERO, CNumber.ZERO, CNumber.ZERO}, + {new CNumber(0.14, 9.2352), CNumber.ZERO, new CNumber(134.4, -51.00024), CNumber.ZERO, + CNumber.ZERO, new CNumber(0, -1.445), new CNumber(2.45), CNumber.ZERO, + CNumber.ZERO, CNumber.ZERO, CNumber.ZERO, CNumber.ZERO}, + {new CNumber(0.14, 9.2352), CNumber.ZERO, new CNumber(134.4, -51.00024), CNumber.ZERO, + CNumber.ZERO, new CNumber(0, -1.445), new CNumber(2.45), CNumber.ZERO, + CNumber.ZERO, CNumber.ZERO, CNumber.ZERO, CNumber.ZERO} }; exp = new CMatrix(expEntries).T().toCoo(); assertEquals(exp, a.repeat(5, 1)); // ---------------------- Sub-case 2 ---------------------- - aEntries = new CNumber[]{new CNumber(), new CNumber(), new CNumber(134.4, -51.00024), new CNumber(), - new CNumber(), new CNumber(), new CNumber(2.45), new CNumber(), - new CNumber(), new CNumber(), new CNumber(), new CNumber(2.45), - new CNumber(), new CNumber(2.45)}; + aEntries = new CNumber[]{CNumber.ZERO, CNumber.ZERO, new CNumber(134.4, -51.00024), CNumber.ZERO, + CNumber.ZERO, CNumber.ZERO, new CNumber(2.45), CNumber.ZERO, + CNumber.ZERO, CNumber.ZERO, CNumber.ZERO, new CNumber(2.45), + CNumber.ZERO, new CNumber(2.45)}; a = new CVector(aEntries).toCoo(); expEntries = new CNumber[][]{ - {new CNumber(), new CNumber(), new CNumber(134.4, -51.00024), new CNumber(), - new CNumber(), new CNumber(), new CNumber(2.45), new CNumber(), - new CNumber(), new CNumber(), new CNumber(), new CNumber(2.45), - new CNumber(), new CNumber(2.45)}, - {new CNumber(), new CNumber(), new CNumber(134.4, -51.00024), new CNumber(), - new CNumber(), new CNumber(), new CNumber(2.45), new CNumber(), - new CNumber(), new CNumber(), new CNumber(), new CNumber(2.45), - new CNumber(), new CNumber(2.45)} + {CNumber.ZERO, CNumber.ZERO, new CNumber(134.4, -51.00024), CNumber.ZERO, + CNumber.ZERO, CNumber.ZERO, new CNumber(2.45), CNumber.ZERO, + CNumber.ZERO, CNumber.ZERO, CNumber.ZERO, new CNumber(2.45), + CNumber.ZERO, new CNumber(2.45)}, + {CNumber.ZERO, CNumber.ZERO, new CNumber(134.4, -51.00024), CNumber.ZERO, + CNumber.ZERO, CNumber.ZERO, new CNumber(2.45), CNumber.ZERO, + CNumber.ZERO, CNumber.ZERO, CNumber.ZERO, new CNumber(2.45), + CNumber.ZERO, new CNumber(2.45)} }; exp = new CMatrix(expEntries).T().toCoo(); assertEquals(exp, a.repeat(2, 1)); // ---------------------- Sub-case 3 ---------------------- - aEntries = new CNumber[]{new CNumber(), new CNumber(), new CNumber(134.4, -51.00024), new CNumber(), - new CNumber(), new CNumber(), new CNumber(2.45), new CNumber(), - new CNumber(), new CNumber(), new CNumber(), new CNumber(2.45), - new CNumber(), new CNumber(2.45)}; + aEntries = new CNumber[]{CNumber.ZERO, CNumber.ZERO, new CNumber(134.4, -51.00024), CNumber.ZERO, + CNumber.ZERO, CNumber.ZERO, new CNumber(2.45), CNumber.ZERO, + CNumber.ZERO, CNumber.ZERO, CNumber.ZERO, new CNumber(2.45), + CNumber.ZERO, new CNumber(2.45)}; a = new CVector(aEntries).toCoo(); assertThrows(IllegalArgumentException.class, ()-> a.repeat(-1, 1)); diff --git a/src/test/java/org/flag4j/sparse_csr_complex_matrix/CsrCMatrixAddSubTests.java b/src/test/java/org/flag4j/sparse_csr_complex_matrix/CsrCMatrixAddSubTests.java index 57ebb0106..9509e9051 100644 --- a/src/test/java/org/flag4j/sparse_csr_complex_matrix/CsrCMatrixAddSubTests.java +++ b/src/test/java/org/flag4j/sparse_csr_complex_matrix/CsrCMatrixAddSubTests.java @@ -179,7 +179,7 @@ void addSubSpCmpTests() { {new CNumber("0.030397833484514858+0.0339598081443111i"), new CNumber("0.0"), new CNumber("0.0"), new CNumber("0.8303067369813061+0.6672665799918752i"), new CNumber("0.0"), new CNumber("0.0")}, {new CNumber("0.0"), new CNumber("0.08364434412041977+0.4996667151892932i"), new CNumber("0.4271149460271625+0.6885614097388274i"), new CNumber("0.0"), new CNumber("0.0"), new CNumber("0.0")}}; bEntriesCmp = new CNumber[aEntries.length][aEntries[0].length]; - ArrayUtils.fillZeros(bEntriesCmp); + ArrayUtils.fill(bEntriesCmp, CNumber.ZERO); bEntriesCmp[0][0] = new CNumber(23, 1.34); bEntriesCmp[1][0] = new CNumber(0.133, -41.4); bEntriesCmp[1][3] = new CNumber(-4.1, -34.1); @@ -215,7 +215,7 @@ void addSubDeCmpTests() { {new CNumber("0.030397833484514858+0.0339598081443111i"), new CNumber("0.0"), new CNumber("0.0"), new CNumber("0.8303067369813061+0.6672665799918752i"), new CNumber("0.0"), new CNumber("0.0")}, {new CNumber("0.0"), new CNumber("0.08364434412041977+0.4996667151892932i"), new CNumber("0.4271149460271625+0.6885614097388274i"), new CNumber("0.0"), new CNumber("0.0"), new CNumber("0.0")}}; bEntriesCmp = new CNumber[aEntries.length][aEntries[0].length]; - ArrayUtils.fillZeros(bEntriesCmp); + ArrayUtils.fill(bEntriesCmp, CNumber.ZERO); bEntriesCmp[0][0] = new CNumber(23, 1.34); bEntriesCmp[1][0] = new CNumber(0.133, -41.4); bEntriesCmp[1][3] = new CNumber(-4.1, -34.1); diff --git a/src/test/java/org/flag4j/sparse_csr_complex_matrix/CsrCMatrixEqualsTests.java b/src/test/java/org/flag4j/sparse_csr_complex_matrix/CsrCMatrixEqualsTests.java index a7e77eda0..167a96c91 100644 --- a/src/test/java/org/flag4j/sparse_csr_complex_matrix/CsrCMatrixEqualsTests.java +++ b/src/test/java/org/flag4j/sparse_csr_complex_matrix/CsrCMatrixEqualsTests.java @@ -29,10 +29,9 @@ public class CsrCMatrixEqualsTests { void realCsrEqualsTests() { // ---------------------- Sub-case 1 ---------------------- aEntries = new CNumber[150][235]; - ArrayUtils.fillZeros(aEntries); + ArrayUtils.fill(aEntries, CNumber.ZERO); bEntries = new CNumber[150][235]; - ArrayUtils.fillZeros(bEntries); - + ArrayUtils.fill(bEntries, CNumber.ZERO); aEntries[0][1] = new CNumber(134.4, -0.0234); aEntries[15][234] = new CNumber(-0.00024, 1.45); aEntries[49][1] = new CNumber(234.25000024, 234.5); @@ -71,12 +70,12 @@ void realCsrEqualsTests() { assertEquals(A, B); // ---------------------- Sub-case 3 ---------------------- - aNnz = new CNumber[]{new CNumber(234.5, -0.2), new CNumber(), new CNumber(345.1, 2.5), new CNumber(9.4, -1), - new CNumber(235.1, 94.2), new CNumber(3.12, 4), new CNumber(), + aNnz = new CNumber[]{new CNumber(234.5, -0.2), CNumber.ZERO, new CNumber(345.1, 2.5), new CNumber(9.4, -1), + new CNumber(235.1, 94.2), new CNumber(3.12, 4), CNumber.ZERO, new CNumber(0, 1), new CNumber(2,9733)}; - bNnz = new CNumber[]{new CNumber(234.5, -0.2), new CNumber(), new CNumber(), new CNumber(), new CNumber(345.1, 2.5), + bNnz = new CNumber[]{new CNumber(234.5, -0.2), CNumber.ZERO, CNumber.ZERO, CNumber.ZERO, new CNumber(345.1, 2.5), new CNumber(9.4, -1), - new CNumber(), new CNumber(235.1, 94.2), new CNumber(3.12, 4), + CNumber.ZERO, new CNumber(235.1, 94.2), new CNumber(3.12, 4), new CNumber(0, 1), new CNumber(2,9733)}; aIndices = new int[][]{ {0, 0, 0, 1, 5, 12, 14, 67, 67}, @@ -93,11 +92,11 @@ void realCsrEqualsTests() { // ---------------------- Sub-case 4 ---------------------- aNnz = new CNumber[]{new CNumber(234.5, -0.2), new CNumber(4.23, 9), new CNumber(345.1, 2.5), new CNumber(9.4, -1), - new CNumber(235.1, 94.2), new CNumber(3.12, 4), new CNumber(), + new CNumber(235.1, 94.2), new CNumber(3.12, 4), CNumber.ZERO, new CNumber(0, 1), new CNumber(2,9733)}; - bNnz = new CNumber[]{new CNumber(234.5, -0.2), new CNumber(), new CNumber(), new CNumber(), new CNumber(345.1, 2.5), + bNnz = new CNumber[]{new CNumber(234.5, -0.2), CNumber.ZERO, CNumber.ZERO, CNumber.ZERO, new CNumber(345.1, 2.5), new CNumber(9.4, -1), - new CNumber(), new CNumber(235.1, 94.2), new CNumber(3.12, 4), + CNumber.ZERO, new CNumber(235.1, 94.2), new CNumber(3.12, 4), new CNumber(0, 1), new CNumber(2,9733)}; aIndices = new int[][]{ {0, 0, 0, 1, 5, 12, 14, 67, 67}, @@ -113,12 +112,12 @@ void realCsrEqualsTests() { assertNotEquals(A, B); // ---------------------- Sub-case 5 ---------------------- - aNnz = new CNumber[]{new CNumber(234.5, -0.2), new CNumber(), new CNumber(345.1, 2.5), new CNumber(9.4, -1), - new CNumber(235.1, 94.2), new CNumber(3.12, 4), new CNumber(), + aNnz = new CNumber[]{new CNumber(234.5, -0.2), CNumber.ZERO, new CNumber(345.1, 2.5), new CNumber(9.4, -1), + new CNumber(235.1, 94.2), new CNumber(3.12, 4), CNumber.ZERO, new CNumber(0, 1), new CNumber(2,9733)}; - bNnz = new CNumber[]{new CNumber(234.5, -0.2), new CNumber(), new CNumber(), new CNumber(), new CNumber(345.1, 2.5), + bNnz = new CNumber[]{new CNumber(234.5, -0.2), CNumber.ZERO, CNumber.ZERO, CNumber.ZERO, new CNumber(345.1, 2.5), new CNumber(9.4, -1), - new CNumber(), new CNumber(235.1, 94.2), new CNumber(3.12, 4), + CNumber.ZERO, new CNumber(235.1, 94.2), new CNumber(3.12, 4), new CNumber(0, 1), new CNumber(2,9733)}; aIndices = new int[][]{ {0, 0, 0, 1, 3, 12, 14, 67, 67}, @@ -134,12 +133,12 @@ void realCsrEqualsTests() { assertNotEquals(A, B); // ---------------------- Sub-case 6 ---------------------- - aNnz = new CNumber[]{new CNumber(234.5, -0.2), new CNumber(), new CNumber(345.1, 2.5), new CNumber(9.4, -1), - new CNumber(235.1, 94.2), new CNumber(3.12, 4), new CNumber(), + aNnz = new CNumber[]{new CNumber(234.5, -0.2), CNumber.ZERO, new CNumber(345.1, 2.5), new CNumber(9.4, -1), + new CNumber(235.1, 94.2), new CNumber(3.12, 4), CNumber.ZERO, new CNumber(0, 1), new CNumber(2,9733)}; - bNnz = new CNumber[]{new CNumber(234.5, -0.2), new CNumber(), new CNumber(), new CNumber(), new CNumber(345.1, 2.5), + bNnz = new CNumber[]{new CNumber(234.5, -0.2), CNumber.ZERO, CNumber.ZERO, CNumber.ZERO, new CNumber(345.1, 2.5), new CNumber(9.4, -1), - new CNumber(), new CNumber(235.1, 94.2), new CNumber(3.12, 4), + CNumber.ZERO, new CNumber(235.1, 94.2), new CNumber(3.12, 4), new CNumber(0, 1), new CNumber(2,9733)}; aIndices = new int[][]{ {0, 0, 0, 1, 5, 12, 14, 67, 67}, diff --git a/src/test/java/org/flag4j/sparse_csr_complex_matrix/CsrCMatrixToVectorTests.java b/src/test/java/org/flag4j/sparse_csr_complex_matrix/CsrCMatrixToVectorTests.java index 08e8299e7..03c1f0104 100644 --- a/src/test/java/org/flag4j/sparse_csr_complex_matrix/CsrCMatrixToVectorTests.java +++ b/src/test/java/org/flag4j/sparse_csr_complex_matrix/CsrCMatrixToVectorTests.java @@ -19,40 +19,40 @@ class CsrCMatrixToVectorTests { @Test void toVectorTests() { // ------------------------- Sub-case 1 ------------------------- - aEntries = new CNumber[][]{{new CNumber(1.23, -9.25), new CNumber(), new CNumber(), - new CNumber(), new CNumber(), new CNumber(1.526, -3.1), - new CNumber(), new CNumber(), new CNumber(0, 1.2)}}; + aEntries = new CNumber[][]{{new CNumber(1.23, -9.25), CNumber.ZERO, CNumber.ZERO, + CNumber.ZERO, CNumber.ZERO, new CNumber(1.526, -3.1), + CNumber.ZERO, CNumber.ZERO, new CNumber(0, 1.2)}}; A = new CMatrix(aEntries).toCsr(); - expEntries = new CNumber[]{new CNumber(1.23, -9.25), new CNumber(), new CNumber(), - new CNumber(), new CNumber(), new CNumber(1.526, -3.1), - new CNumber(), new CNumber(), new CNumber(0, 1.2)}; + expEntries = new CNumber[]{new CNumber(1.23, -9.25), CNumber.ZERO, CNumber.ZERO, + CNumber.ZERO, CNumber.ZERO, new CNumber(1.526, -3.1), + CNumber.ZERO, CNumber.ZERO, new CNumber(0, 1.2)}; exp = new CVector(expEntries).toCoo(); assertEquals(exp, A.toVector()); // ------------------------- Sub-case 2 ------------------------- - aEntries = new CNumber[][]{{new CNumber(1.23, -9.25)}, {new CNumber()}, {new CNumber()}, - {new CNumber()}, {new CNumber()}, {new CNumber(1.526, -3.1)}, - {new CNumber()}, {new CNumber()}, {new CNumber(0, 1.2)}}; + aEntries = new CNumber[][]{{new CNumber(1.23, -9.25)}, {CNumber.ZERO}, {CNumber.ZERO}, + {CNumber.ZERO}, {CNumber.ZERO}, {new CNumber(1.526, -3.1)}, + {CNumber.ZERO}, {CNumber.ZERO}, {new CNumber(0, 1.2)}}; A = new CMatrix(aEntries).toCsr(); - expEntries = new CNumber[]{new CNumber(1.23, -9.25), new CNumber(), new CNumber(), - new CNumber(), new CNumber(), new CNumber(1.526, -3.1), - new CNumber(), new CNumber(), new CNumber(0, 1.2)}; + expEntries = new CNumber[]{new CNumber(1.23, -9.25), CNumber.ZERO, CNumber.ZERO, + CNumber.ZERO, CNumber.ZERO, new CNumber(1.526, -3.1), + CNumber.ZERO, CNumber.ZERO, new CNumber(0, 1.2)}; exp = new CVector(expEntries).toCoo(); assertEquals(exp, A.toVector()); // ------------------------- Sub-case 3 ------------------------- aEntries = new CNumber[][]{ - {new CNumber(1.23, -9.25), new CNumber()}, - {new CNumber(), new CNumber()}, - {new CNumber(), new CNumber(1.526, -3.1)}, - {new CNumber(), new CNumber()}, - {new CNumber(0, 1.2), new CNumber()}}; + {new CNumber(1.23, -9.25), CNumber.ZERO}, + {CNumber.ZERO, CNumber.ZERO}, + {CNumber.ZERO, new CNumber(1.526, -3.1)}, + {CNumber.ZERO, CNumber.ZERO}, + {new CNumber(0, 1.2), CNumber.ZERO}}; A = new CMatrix(aEntries).toCsr(); - expEntries = new CNumber[]{new CNumber(1.23, -9.25), new CNumber(), new CNumber(), - new CNumber(), new CNumber(), new CNumber(1.526, -3.1), - new CNumber(), new CNumber(), new CNumber(0, 1.2), new CNumber()}; + expEntries = new CNumber[]{new CNumber(1.23, -9.25), CNumber.ZERO, CNumber.ZERO, + CNumber.ZERO, CNumber.ZERO, new CNumber(1.526, -3.1), + CNumber.ZERO, CNumber.ZERO, new CNumber(0, 1.2), CNumber.ZERO}; exp = new CVector(expEntries).toCoo(); assertEquals(exp, A.toVector()); diff --git a/src/test/java/org/flag4j/sparse_csr_complex_matrix/CsrCMatrixTransposeTests.java b/src/test/java/org/flag4j/sparse_csr_complex_matrix/CsrCMatrixTransposeTests.java index c2be5c14c..afdd2f0dd 100644 --- a/src/test/java/org/flag4j/sparse_csr_complex_matrix/CsrCMatrixTransposeTests.java +++ b/src/test/java/org/flag4j/sparse_csr_complex_matrix/CsrCMatrixTransposeTests.java @@ -86,9 +86,9 @@ void transposeTests() { // -------------------- Sub-case 4 --------------------- aEntries = new CNumber[140][23]; - ArrayUtils.fillZeros(aEntries); + ArrayUtils.fill(aEntries, CNumber.ZERO); expEntries = new CNumber[23][140]; - ArrayUtils.fillZeros(expEntries); + ArrayUtils.fill(expEntries, CNumber.ZERO); buildFromDense(); assertEquals(exp, A.T()); @@ -153,9 +153,9 @@ void hermitianTransposeTests() { // -------------------- Sub-case 4 --------------------- aEntries = new CNumber[140][23]; - ArrayUtils.fillZeros(aEntries); + ArrayUtils.fill(aEntries, CNumber.ZERO); expEntries = new CNumber[23][140]; - ArrayUtils.fillZeros(expEntries); + ArrayUtils.fill(expEntries, CNumber.ZERO); buildFromDense(); assertEquals(exp, A.H()); @@ -166,7 +166,7 @@ void hermitianTransposeTests() { void isHermitianTests() { // -------------------- Sub-case 1 --------------------- aEntries = new CNumber[5][5]; - ArrayUtils.fillZeros(aEntries); + ArrayUtils.fill(aEntries, CNumber.ZERO); aEntries[0][0] = new CNumber(1.5); aEntries[2][1] = new CNumber(2.45, 85.12); aEntries[1][2] = new CNumber(2.45, -85.12); @@ -179,7 +179,7 @@ void isHermitianTests() { // -------------------- Sub-case 2 --------------------- aEntries = new CNumber[5][6]; - ArrayUtils.fillZeros(aEntries); + ArrayUtils.fill(aEntries, CNumber.ZERO); aEntries[0][0] = new CNumber(1.5); aEntries[2][1] = new CNumber(2.45, 85.12); aEntries[1][2] = new CNumber(2.45, -85.12); @@ -192,7 +192,7 @@ void isHermitianTests() { // -------------------- Sub-case 1 --------------------- aEntries = new CNumber[415][415]; - ArrayUtils.fillZeros(aEntries); + ArrayUtils.fill(aEntries, CNumber.ZERO); aEntries[0][0] = new CNumber(87.35); aEntries[2][1] = new CNumber(9671.4, -774.1); aEntries[1][2] = new CNumber(9671.4, 774.1); diff --git a/src/test/java/org/flag4j/sparse_csr_matrix/CsrMatrixAddSubTests.java b/src/test/java/org/flag4j/sparse_csr_matrix/CsrMatrixAddSubTests.java index c5d97abfb..a34f5cd97 100644 --- a/src/test/java/org/flag4j/sparse_csr_matrix/CsrMatrixAddSubTests.java +++ b/src/test/java/org/flag4j/sparse_csr_matrix/CsrMatrixAddSubTests.java @@ -158,7 +158,7 @@ void addSubSpCmpTests() { {0, 14.1, 0, 0, 0, 0}, {0, 0, 0, 9.143, 1.4, -2.1}}; bCmpEntries = new CNumber[aEntries.length][aEntries[0].length]; - ArrayUtils.fillZeros(bCmpEntries); + ArrayUtils.fill(bCmpEntries, CNumber.ZERO); bCmpEntries[0][0] = new CNumber(23, 1.34); bCmpEntries[1][0] = new CNumber(0.133, -41.4); bCmpEntries[1][3] = new CNumber(-4.1, -34.1); @@ -191,7 +191,7 @@ void addSubDeCmpTests() { {0, 14.1, 0, 0, 0, 0}, {0, 0, 0, 9.143, 1.4, -2.1}}; bCmpEntries = new CNumber[aEntries.length][aEntries[0].length]; - ArrayUtils.fillZeros(bCmpEntries); + ArrayUtils.fill(bCmpEntries, CNumber.ZERO); bCmpEntries[0][0] = new CNumber(23, 1.34); bCmpEntries[1][0] = new CNumber(0.133, -41.4); bCmpEntries[1][3] = new CNumber(-4.1, -34.1); diff --git a/src/test/java/org/flag4j/sparse_matrix/CooMatrixEqualsTest.java b/src/test/java/org/flag4j/sparse_matrix/CooMatrixEqualsTest.java index 5ed8b0fe2..0f781a935 100644 --- a/src/test/java/org/flag4j/sparse_matrix/CooMatrixEqualsTest.java +++ b/src/test/java/org/flag4j/sparse_matrix/CooMatrixEqualsTest.java @@ -81,7 +81,7 @@ void denseComplexEqualsTest() { // --------------------- Sub-case 1 --------------------- bEntries = new CNumber[aShape.get(0)][aShape.get(1)]; - ArrayUtils.fill(bEntries, CNumber.zero()); + ArrayUtils.fill(bEntries, CNumber.ZERO); fillDense(bEntries); B = new CMatrix(bEntries); @@ -89,7 +89,7 @@ void denseComplexEqualsTest() { // --------------------- Sub-case 2 --------------------- bEntries = new CNumber[aShape.get(0)-1][aShape.get(1)+13]; - ArrayUtils.fill(bEntries, CNumber.zero()); + ArrayUtils.fill(bEntries, CNumber.ZERO); fillDense(bEntries); B = new CMatrix(bEntries); @@ -97,7 +97,7 @@ void denseComplexEqualsTest() { // --------------------- Sub-case 3 --------------------- bEntries = new CNumber[aShape.get(0)][aShape.get(1)]; - ArrayUtils.fill(bEntries, CNumber.zero()); + ArrayUtils.fill(bEntries, CNumber.ZERO); fillDense(bEntries); bEntries[134][7624] = new CNumber(0, -0.3); B = new CMatrix(bEntries); @@ -106,9 +106,9 @@ void denseComplexEqualsTest() { // --------------------- Sub-case 4 --------------------- bEntries = new CNumber[aShape.get(0)][aShape.get(1)]; - ArrayUtils.fill(bEntries, CNumber.zero()); + ArrayUtils.fill(bEntries, CNumber.ZERO); fillDense(bEntries); - bEntries[141][41] = new CNumber(); + bEntries[141][41] = CNumber.ZERO; B = new CMatrix(bEntries); assertFalse(A.tensorEquals(B)); diff --git a/src/test/java/org/flag4j/sparse_vector/CooVectorInnerProdTests.java b/src/test/java/org/flag4j/sparse_vector/CooVectorInnerProdTests.java index 003c0d014..b59210d2e 100644 --- a/src/test/java/org/flag4j/sparse_vector/CooVectorInnerProdTests.java +++ b/src/test/java/org/flag4j/sparse_vector/CooVectorInnerProdTests.java @@ -117,9 +117,9 @@ void denseComplexInnerProdTestCase() { // ----------------------- Sub-case 1 ----------------------- bEntries = new CNumber[]{ new CNumber(24.1, 54.1), new CNumber(-9.245, 3.4), new CNumber(14.5), - new CNumber(0, 94.14), new CNumber(), new CNumber(113, 55.62), + new CNumber(0, 94.14), CNumber.ZERO, new CNumber(113, 55.62), new CNumber(54.13, 5.1), new CNumber(0.0013), new CNumber(-0.924, -994.15), - new CNumber(24.5516, -0.415), new CNumber(0, 13.46), new CNumber(), + new CNumber(24.5516, -0.415), new CNumber(0, 13.46), CNumber.ZERO, new CNumber(5.2, 0.924), new CNumber(0.15, .135), new CNumber(25591, 13.5), }; b = new CVector(bEntries); @@ -137,9 +137,9 @@ void denseComplexInnerProdTestCase() { // ----------------------- Sub-case 2 ----------------------- bEntries = new CNumber[]{ new CNumber(24.1, 54.1), new CNumber(-9.245, 3.4), new CNumber(14.5), - new CNumber(0, 94.14), new CNumber(), new CNumber(113, 55.62), + new CNumber(0, 94.14), CNumber.ZERO, new CNumber(113, 55.62), new CNumber(54.13, 5.1), new CNumber(0.0013), new CNumber(-0.924, -994.15), - new CNumber(24.5516, -0.415), new CNumber(0, 13.46), new CNumber(), + new CNumber(24.5516, -0.415), new CNumber(0, 13.46), CNumber.ZERO, new CNumber(5.2, 0.924), new CNumber(0.15, .135), new CNumber(25591, 13.5), new CNumber(1.15, 4.55), new CNumber(91) }; diff --git a/src/test/java/org/flag4j/tensor/TensorAddTests.java b/src/test/java/org/flag4j/tensor/TensorAddTests.java index 73644c6b0..d9dc15922 100644 --- a/src/test/java/org/flag4j/tensor/TensorAddTests.java +++ b/src/test/java/org/flag4j/tensor/TensorAddTests.java @@ -179,8 +179,8 @@ void complexSparseTestCase() { new CNumber(0.001345), new CNumber(2.677), new CNumber(8.14), new CNumber(-0.000194), new CNumber(1), new CNumber(234) }; expShape = new Shape(true,2, 3, 2); - expEntries[expShape.entriesIndex(sparseIndices[0])].addEq(bEntries[0]); - expEntries[expShape.entriesIndex(sparseIndices[1])].addEq(bEntries[1]); + expEntries[expShape.entriesIndex(sparseIndices[0])] = expEntries[expShape.entriesIndex(sparseIndices[0])].add(bEntries[0]); + expEntries[expShape.entriesIndex(sparseIndices[1])] = expEntries[expShape.entriesIndex(sparseIndices[1])].add(bEntries[1]); exp = new CTensor(expShape, expEntries); assertEquals(exp, A.add(B)); diff --git a/src/test/java/org/flag4j/tensor/TensorElemMultTests.java b/src/test/java/org/flag4j/tensor/TensorElemMultTests.java index 74a7963a6..c3d020c79 100644 --- a/src/test/java/org/flag4j/tensor/TensorElemMultTests.java +++ b/src/test/java/org/flag4j/tensor/TensorElemMultTests.java @@ -173,8 +173,8 @@ void complexSparseTestCase() { }; B = new CooCTensor(bShape, bEntries, sparseIndices); expEntries = new CNumber[]{ - new CNumber(), new CNumber(), new CNumber(), new CNumber(), new CNumber(), new CNumber(), - new CNumber(), new CNumber(), new CNumber(), new CNumber(), new CNumber(), new CNumber() + CNumber.ZERO, CNumber.ZERO, CNumber.ZERO, CNumber.ZERO, CNumber.ZERO, CNumber.ZERO, + CNumber.ZERO, CNumber.ZERO, CNumber.ZERO, CNumber.ZERO, CNumber.ZERO, CNumber.ZERO }; expShape = new Shape(true, 2, 3, 2); expEntries[expShape.entriesIndex(sparseIndices[0])] = bEntries[0].mult(aEntries[expShape.entriesIndex(sparseIndices[0])]); diff --git a/src/test/java/org/flag4j/tensor/TensorSubTests.java b/src/test/java/org/flag4j/tensor/TensorSubTests.java index f623a4473..e48c6bcdd 100644 --- a/src/test/java/org/flag4j/tensor/TensorSubTests.java +++ b/src/test/java/org/flag4j/tensor/TensorSubTests.java @@ -179,8 +179,8 @@ void complexSparseTestCase() { new CNumber(0.001345), new CNumber(2.677), new CNumber(8.14), new CNumber(-0.000194), new CNumber(1), new CNumber(234) }; expShape = new Shape(true,2, 3, 2); - expEntries[expShape.entriesIndex(sparseIndices[0])].subEq(bEntries[0]); - expEntries[expShape.entriesIndex(sparseIndices[1])].subEq(bEntries[1]); + expEntries[expShape.entriesIndex(sparseIndices[0])] = expEntries[expShape.entriesIndex(sparseIndices[0])].sub(bEntries[0]); + expEntries[expShape.entriesIndex(sparseIndices[1])] = expEntries[expShape.entriesIndex(sparseIndices[1])].sub(bEntries[1]); exp = new CTensor(expShape, expEntries); assertEquals(exp, A.sub(B)); diff --git a/src/test/java/org/flag4j/vector/VectorStackJoinTests.java b/src/test/java/org/flag4j/vector/VectorStackJoinTests.java index b94fd9524..4f179150a 100644 --- a/src/test/java/org/flag4j/vector/VectorStackJoinTests.java +++ b/src/test/java/org/flag4j/vector/VectorStackJoinTests.java @@ -80,7 +80,7 @@ void complexSparseJoinTestCase() { indices = new int[]{0, 3}; b = new CooCVector(sparseSize, bEntries, indices); expEntries = new CNumber[]{new CNumber(1.5), new CNumber(6.2546), new CNumber(-0.24), - new CNumber(1.56, -99345.2), new CNumber(), new CNumber(), new CNumber("i"), new CNumber()}; + new CNumber(1.56, -99345.2), CNumber.ZERO, CNumber.ZERO, new CNumber("i"), CNumber.ZERO}; exp = new CVector(expEntries); assertEquals(exp, a.join(b)); @@ -286,7 +286,7 @@ void complexSparseStackTestCase() { indices = new int[]{2}; b = new CooCVector(sparseSize, bEntries, indices); expEntries = new CNumber[][]{{new CNumber(1.5), new CNumber(6.2546), new CNumber(-0.24)}, - {new CNumber(), new CNumber(), new CNumber(-0.234242, 8.1)}}; + {CNumber.ZERO, CNumber.ZERO, new CNumber(-0.234242, 8.1)}}; exp = new CMatrix(expEntries); assertEquals(exp, a.stack(b)); @@ -306,7 +306,7 @@ void complexSparseStackTestCase() { indices = new int[]{2}; b = new CooCVector(sparseSize, bEntries, indices); expEntries = new CNumber[][]{{new CNumber(1.5), new CNumber(6.2546), new CNumber(-0.24)}, - {new CNumber(), new CNumber(), new CNumber(-0.234242, 8.1)}}; + {CNumber.ZERO, CNumber.ZERO, new CNumber(-0.234242, 8.1)}}; exp = new CMatrix(expEntries); assertEquals(exp, a.stack(b, 0)); @@ -325,8 +325,8 @@ void complexSparseStackTestCase() { sparseSize = 3; indices = new int[]{2}; b = new CooCVector(sparseSize, bEntries, indices); - expEntries = new CNumber[][]{{new CNumber(1.5), new CNumber()}, - {new CNumber(6.2546), new CNumber()}, + expEntries = new CNumber[][]{{new CNumber(1.5), CNumber.ZERO}, + {new CNumber(6.2546), CNumber.ZERO}, {new CNumber(-0.24), new CNumber(-0.234242, 8.1)}}; exp = new CMatrix(expEntries); diff --git a/target/flag4j-v0.1.0-beta.jar b/target/flag4j-v0.1.0-beta.jar index 8e678f2301afa85871ade5dc3472de2ae7e57976..c4c2f7ad113e091da7eefd414cd332cdb64eb8fa 100644 GIT binary patch delta 382913 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�&#TDFSWiIK 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 ? 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�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

    VYi0~>|*8M?R=ZvZ!%O5)} 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 z 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 From d7313b03fb0883c3d0c541e1a0add50cc6f18ea1 Mon Sep 17 00:00:00 2001 From: jacob Date: Thu, 8 Aug 2024 15:37:31 -0600 Subject: [PATCH 5/8] Update JavaDoc. --- docs/allclasses-index.html | 494 ++++---- docs/allpackages-index.html | 4 +- docs/constant-values.html | 4 +- docs/help-doc.html | 4 +- docs/index-files/index-1.html | 105 +- docs/index-files/index-10.html | 4 +- docs/index-files/index-11.html | 4 +- docs/index-files/index-12.html | 4 +- docs/index-files/index-13.html | 62 +- docs/index-files/index-14.html | 34 +- docs/index-files/index-15.html | 8 +- docs/index-files/index-16.html | 16 +- docs/index-files/index-17.html | 4 +- docs/index-files/index-18.html | 70 +- docs/index-files/index-19.html | 118 +- docs/index-files/index-2.html | 4 +- docs/index-files/index-20.html | 84 +- docs/index-files/index-21.html | 4 +- docs/index-files/index-22.html | 4 +- docs/index-files/index-23.html | 4 +- docs/index-files/index-24.html | 4 +- docs/index-files/index-25.html | 12 +- docs/index-files/index-3.html | 58 +- docs/index-files/index-4.html | 28 +- docs/index-files/index-5.html | 42 +- docs/index-files/index-6.html | 44 +- docs/index-files/index-7.html | 8 +- docs/index-files/index-8.html | 12 +- docs/index-files/index-9.html | 28 +- docs/index.html | 4 +- docs/member-search-index.js | 2 +- docs/org/flag4j/arrays/dense/CMatrix.html | 160 +-- docs/org/flag4j/arrays/dense/CTensor.html | 40 +- docs/org/flag4j/arrays/dense/CVector.html | 76 +- docs/org/flag4j/arrays/dense/Matrix.html | 160 +-- docs/org/flag4j/arrays/dense/Tensor.html | 40 +- docs/org/flag4j/arrays/dense/Vector.html | 4 +- .../flag4j/arrays/dense/package-summary.html | 4 +- .../org/flag4j/arrays/dense/package-tree.html | 8 +- docs/org/flag4j/arrays/sparse/CooCMatrix.html | 467 +++---- docs/org/flag4j/arrays/sparse/CooCTensor.html | 1077 +++++++++-------- docs/org/flag4j/arrays/sparse/CooCVector.html | 10 +- docs/org/flag4j/arrays/sparse/CooMatrix.html | 479 ++++---- docs/org/flag4j/arrays/sparse/CooTensor.html | 683 +++++++---- docs/org/flag4j/arrays/sparse/CooVector.html | 177 ++- docs/org/flag4j/arrays/sparse/CsrCMatrix.html | 471 +++---- docs/org/flag4j/arrays/sparse/CsrMatrix.html | 517 ++++---- .../arrays/sparse/PermutationMatrix.html | 4 +- .../org/flag4j/arrays/sparse/SparseUtils.html | 4 +- .../flag4j/arrays/sparse/SymmTriDiagonal.html | 4 +- .../flag4j/arrays/sparse/package-summary.html | 4 +- .../flag4j/arrays/sparse/package-tree.html | 16 +- docs/org/flag4j/complex_numbers/CNumber.html | 859 +++---------- .../flag4j/complex_numbers/CNumberLexer.html | 4 +- .../flag4j/complex_numbers/CNumberParser.html | 4 +- .../flag4j/complex_numbers/CNumberToken.html | 4 +- .../flag4j/complex_numbers/CNumberUtils.html | 4 +- .../complex_numbers/package-summary.html | 6 +- .../flag4j/complex_numbers/package-tree.html | 4 +- .../flag4j/concurrency/Configurations.html | 4 +- .../org/flag4j/concurrency/ThreadManager.html | 4 +- .../flag4j/concurrency/package-summary.html | 4 +- docs/org/flag4j/concurrency/package-tree.html | 4 +- docs/org/flag4j/core/ComplexMatrixMixin.html | 4 +- .../core/ComplexTensorExclusiveMixin.html | 8 +- docs/org/flag4j/core/ComplexTensorMixin.html | 4 +- .../flag4j/core/MatrixComparisonsMixin.html | 6 +- .../flag4j/core/MatrixManipulationsMixin.html | 6 +- docs/org/flag4j/core/MatrixMixin.html | 21 +- .../flag4j/core/MatrixOperationsMixin.html | 21 +- .../flag4j/core/MatrixPropertiesMixin.html | 6 +- docs/org/flag4j/core/RealMatrixMixin.html | 4 +- docs/org/flag4j/core/RealTensorMixin.html | 4 +- docs/org/flag4j/core/Shape.html | 157 +-- docs/org/flag4j/core/TensorBase.html | 4 +- .../flag4j/core/TensorComparisonsMixin.html | 4 +- .../org/flag4j/core/TensorExclusiveMixin.html | 162 ++- .../flag4j/core/TensorManipulationsMixin.html | 4 +- .../flag4j/core/TensorOperationsMixin.html | 4 +- .../flag4j/core/TensorPropertiesMixin.html | 4 +- .../flag4j/core/VectorComparisonsMixin.html | 4 +- .../flag4j/core/VectorManipulationsMixin.html | 4 +- docs/org/flag4j/core/VectorMixin.html | 4 +- .../flag4j/core/VectorOperationsMixin.html | 4 +- .../flag4j/core/VectorPropertiesMixin.html | 4 +- .../dense_base/ComplexDenseTensorBase.html | 4 +- .../core/dense_base/DenseMatrixMixin.html | 4 +- .../flag4j/core/dense_base/DenseMixin.html | 4 +- .../core/dense_base/DenseTensorBase.html | 4 +- .../core/dense_base/DenseTensorMixin.html | 4 +- .../core/dense_base/DenseVectorMixin.html | 4 +- .../core/dense_base/RealDenseTensorBase.html | 4 +- .../core/dense_base/package-summary.html | 4 +- .../flag4j/core/dense_base/package-tree.html | 4 +- docs/org/flag4j/core/package-summary.html | 8 +- docs/org/flag4j/core/package-tree.html | 14 +- .../sparse_base/ComplexSparseTensorBase.html | 120 +- .../sparse_base/RealSparseTensorBase.html | 127 +- .../core/sparse_base/SparseTensorBase.html | 22 +- .../core/sparse_base/SparseTensorMixin.html | 4 +- .../core/sparse_base/package-summary.html | 4 +- .../flag4j/core/sparse_base/package-tree.html | 4 +- docs/org/flag4j/io/PrintOptions.html | 4 +- docs/org/flag4j/io/TensorInputStream.html | 4 +- docs/org/flag4j/io/TensorOutputStream.html | 4 +- docs/org/flag4j/io/TensorReader.html | 4 +- docs/org/flag4j/io/TensorWriter.html | 53 +- docs/org/flag4j/io/package-summary.html | 4 +- docs/org/flag4j/io/package-tree.html | 4 +- docs/org/flag4j/linalg/Condition.html | 4 +- docs/org/flag4j/linalg/Eigen.html | 4 +- docs/org/flag4j/linalg/Invert.html | 4 +- docs/org/flag4j/linalg/MatrixNorms.html | 4 +- .../flag4j/linalg/PositiveDefiniteness.html | 4 +- docs/org/flag4j/linalg/RowEchelon.html | 4 +- docs/org/flag4j/linalg/SubSpace.html | 4 +- docs/org/flag4j/linalg/TensorInvert.html | 4 +- docs/org/flag4j/linalg/TensorNorms.html | 4 +- docs/org/flag4j/linalg/VectorNorms.html | 4 +- .../linalg/decompositions/Decomposition.html | 8 +- .../decompositions/DecompositionFactory.html | 4 +- .../linalg/decompositions/chol/Cholesky.html | 10 +- .../decompositions/chol/ComplexCholesky.html | 4 +- .../decompositions/chol/RealCholesky.html | 4 +- .../decompositions/chol/package-summary.html | 6 +- .../decompositions/chol/package-tree.html | 4 +- .../decompositions/hess/ComplexHess.html | 4 +- .../linalg/decompositions/hess/RealHess.html | 4 +- .../linalg/decompositions/hess/SymmHess.html | 4 +- .../decompositions/hess/package-summary.html | 4 +- .../decompositions/hess/package-tree.html | 4 +- .../linalg/decompositions/lu/ComplexLU.html | 4 +- .../linalg/decompositions/lu/LU.Pivoting.html | 6 +- .../flag4j/linalg/decompositions/lu/LU.html | 12 +- .../linalg/decompositions/lu/RealLU.html | 4 +- .../decompositions/lu/package-summary.html | 6 +- .../decompositions/lu/package-tree.html | 4 +- .../decompositions/package-summary.html | 6 +- .../linalg/decompositions/package-tree.html | 4 +- .../linalg/decompositions/qr/ComplexQR.html | 4 +- .../linalg/decompositions/qr/RealQR.html | 4 +- .../decompositions/qr/package-summary.html | 4 +- .../decompositions/qr/package-tree.html | 4 +- .../decompositions/schur/ComplexSchur.html | 4 +- .../decompositions/schur/RealSchur.html | 4 +- .../linalg/decompositions/schur/Schur.html | 14 +- .../decompositions/schur/package-summary.html | 6 +- .../decompositions/schur/package-tree.html | 4 +- .../linalg/decompositions/svd/ComplexSVD.html | 4 +- .../linalg/decompositions/svd/RealSVD.html | 4 +- .../flag4j/linalg/decompositions/svd/SVD.html | 14 +- .../decompositions/svd/package-summary.html | 6 +- .../decompositions/svd/package-tree.html | 4 +- .../unitary/ComplexUnitaryDecomposition.html | 18 +- .../unitary/RealUnitaryDecomposition.html | 4 +- .../unitary/UnitaryDecomposition.html | 10 +- .../unitary/package-summary.html | 6 +- .../decompositions/unitary/package-tree.html | 4 +- docs/org/flag4j/linalg/ops/DirectSum.html | 4 +- .../flag4j/linalg/ops/package-summary.html | 4 +- docs/org/flag4j/linalg/ops/package-tree.html | 4 +- docs/org/flag4j/linalg/package-summary.html | 4 +- docs/org/flag4j/linalg/package-tree.html | 4 +- .../flag4j/linalg/solvers/LinearSolver.html | 8 +- .../linalg/solvers/LinearTensorSolver.html | 4 +- .../solvers/exact/ComplexExactSolver.html | 4 +- .../exact/ComplexExactTensorSolver.html | 4 +- .../linalg/solvers/exact/ExactSolver.html | 20 +- .../solvers/exact/ExactTensorSolver.html | 10 +- .../linalg/solvers/exact/RealExactSolver.html | 4 +- .../solvers/exact/RealExactTensorSolver.html | 4 +- .../linalg/solvers/exact/package-summary.html | 8 +- .../linalg/solvers/exact/package-tree.html | 4 +- .../solvers/exact/triangular/BackSolver.html | 10 +- .../exact/triangular/ComplexBackSolver.html | 4 +- .../triangular/ComplexForwardSolver.html | 4 +- .../exact/triangular/ForwardSolver.html | 10 +- .../exact/triangular/RealBackSolver.html | 4 +- .../exact/triangular/RealForwardSolver.html | 4 +- .../exact/triangular/package-summary.html | 8 +- .../exact/triangular/package-tree.html | 4 +- .../solvers/lstsq/ComplexLstsqSolver.html | 4 +- .../linalg/solvers/lstsq/LstsqSolver.html | 20 +- .../linalg/solvers/lstsq/RealLstsqSolver.html | 4 +- .../linalg/solvers/lstsq/package-summary.html | 6 +- .../linalg/solvers/lstsq/package-tree.html | 4 +- .../linalg/solvers/package-summary.html | 6 +- .../flag4j/linalg/solvers/package-tree.html | 4 +- .../flag4j/linalg/transformations/Givens.html | 6 +- .../linalg/transformations/Householder.html | 6 +- .../linalg/transformations/Projection.html | 4 +- .../flag4j/linalg/transformations/View.html | 4 +- .../transformations/package-summary.html | 4 +- .../linalg/transformations/package-tree.html | 4 +- ...atrixMultiplyDispatcher.AlgorithmName.html | 4 +- .../operations/MatrixMultiplyDispatcher.html | 4 +- ...trixMultiplyDispatcher.AlgorithmNames.html | 4 +- .../RealDenseMatrixMultiplyDispatcher.html | 4 +- .../RealDenseTensorBinaryOperation.html | 4 +- .../TransposeDispatcher.Algorithm.html | 4 +- .../operations/TransposeDispatcher.html | 4 +- .../operations/common/TensorEquals.html | 4 +- .../common/complex/AggregateComplex.html | 6 +- .../common/complex/ComplexOperations.html | 4 +- .../common/complex/ComplexProperties.html | 4 +- .../common/complex/package-summary.html | 4 +- .../common/complex/package-tree.html | 4 +- .../operations/common/package-summary.html | 4 +- .../operations/common/package-tree.html | 4 +- .../operations/common/real/AggregateReal.html | 4 +- .../common/real/RealOperations.html | 4 +- .../common/real/RealProperties.html | 4 +- .../common/real/package-summary.html | 4 +- .../operations/common/real/package-tree.html | 4 +- .../dense/complex/AggregateDenseComplex.html | 4 +- .../complex/ComplexDenseDeterminant.html | 6 +- .../dense/complex/ComplexDenseElemDiv.html | 4 +- .../dense/complex/ComplexDenseElemMult.html | 4 +- .../dense/complex/ComplexDenseEquals.html | 4 +- .../ComplexDenseMatrixMultTranspose.html | 6 +- .../ComplexDenseMatrixMultiplication.html | 6 +- .../dense/complex/ComplexDenseOperations.html | 65 +- .../dense/complex/ComplexDenseProperties.html | 4 +- .../complex/ComplexDenseSetOperations.html | 6 +- .../dense/complex/ComplexDenseTensorDot.html | 4 +- .../dense/complex/ComplexDenseTranspose.html | 6 +- .../complex/ComplexDenseVectorOperations.html | 4 +- .../dense/complex/package-summary.html | 4 +- .../dense/complex/package-tree.html | 4 +- .../dense/real/AggregateDenseReal.html | 4 +- .../dense/real/RealDenseDeterminant.html | 4 +- .../dense/real/RealDenseElemDiv.html | 4 +- .../dense/real/RealDenseElemMult.html | 4 +- .../dense/real/RealDenseEquals.html | 4 +- .../real/RealDenseMatrixMultTranspose.html | 4 +- .../real/RealDenseMatrixMultiplication.html | 4 +- .../dense/real/RealDenseOperations.html | 58 +- .../dense/real/RealDenseProperties.html | 8 +- .../dense/real/RealDenseSetOperations.html | 4 +- .../dense/real/RealDenseTensorDot.html | 4 +- .../dense/real/RealDenseTranspose.html | 4 +- .../dense/real/RealDenseVectorOperations.html | 4 +- .../dense/real/package-summary.html | 4 +- .../operations/dense/real/package-tree.html | 4 +- .../real_complex/RealComplexDenseElemDiv.html | 4 +- .../RealComplexDenseElemMult.html | 4 +- .../real_complex/RealComplexDenseEquals.html | 4 +- .../RealComplexDenseMatrixMultTranspose.html | 6 +- .../RealComplexDenseMatrixMultiplication.html | 6 +- .../RealComplexDenseOperations.html | 4 +- .../RealComplexDenseVectorOperations.html | 6 +- .../dense/real_complex/package-summary.html | 4 +- .../dense/real_complex/package-tree.html | 4 +- .../coo/complex/ComplexDenseSparseEquals.html | 6 +- ...ComplexDenseSparseMatrixMultTranspose.html | 6 +- ...omplexDenseSparseMatrixMultiplication.html | 6 +- .../ComplexDenseSparseMatrixOperations.html | 14 +- .../complex/ComplexDenseSparseOperations.html | 71 +- .../ComplexDenseSparseVectorOperations.html | 6 +- .../coo/complex/package-summary.html | 4 +- .../coo/complex/package-tree.html | 4 +- .../coo/real/RealDenseSparseEquals.html | 4 +- .../RealDenseSparseMatrixMultTranspose.html | 4 +- .../RealDenseSparseMatrixMultiplication.html | 4 +- .../real/RealDenseSparseMatrixOperations.html | 4 +- .../real/RealDenseSparseTensorOperations.html | 71 +- .../real/RealDenseSparseVectorOperations.html | 4 +- .../coo/real/package-summary.html | 4 +- .../dense_sparse/coo/real/package-tree.html | 4 +- .../RealComplexDenseSparseEquals.html | 6 +- ...ComplexDenseSparseMatrixMultTranspose.html | 4 +- ...omplexDenseSparseMatrixMultiplication.html | 6 +- ...ealComplexDenseSparseMatrixOperations.html | 6 +- .../RealComplexDenseSparseOperations.html | 104 +- ...ealComplexDenseSparseVectorOperations.html | 6 +- .../coo/real_complex/package-summary.html | 4 +- .../coo/real_complex/package-tree.html | 4 +- .../ComplexCsrDenseMatrixMultiplication.html | 44 +- .../complex/ComplexCsrDenseOperations.html | 6 +- .../csr/complex/package-summary.html | 4 +- .../csr/complex/package-tree.html | 4 +- .../RealCsrDenseMatrixMultiplication.html | 4 +- .../csr/real/RealCsrDenseOperations.html | 4 +- .../csr/real/package-summary.html | 4 +- .../dense_sparse/csr/real/package-tree.html | 4 +- ...alComplexCsrDenseMatrixMultiplication.html | 6 +- .../RealComplexCsrDenseOperations.html | 6 +- .../csr/real_complex/package-summary.html | 4 +- .../csr/real_complex/package-tree.html | 4 +- .../flag4j/operations/package-summary.html | 4 +- docs/org/flag4j/operations/package-tree.html | 4 +- .../sparse/coo/SparseDataWrapper.html | 4 +- .../sparse/coo/SparseElementSearch.html | 4 +- .../operations/sparse/coo/SparseUtils.html | 4 +- .../coo/complex/ComplexCooTensorDot.html | 201 +++ .../complex/ComplexCooTensorOperations.html | 216 ++++ .../complex/ComplexSparseElementSearch.html | 4 +- .../coo/complex/ComplexSparseEquals.html | 4 +- .../complex/ComplexSparseMatrixGetSet.html | 10 +- .../ComplexSparseMatrixManipulations.html | 4 +- .../ComplexSparseMatrixMultiplication.html | 6 +- .../ComplexSparseMatrixOperations.html | 6 +- .../ComplexSparseMatrixProperties.html | 4 +- .../coo/complex/ComplexSparseNorms.html | 4 +- .../ComplexSparseVectorOperations.html | 6 +- .../sparse/coo/complex/package-summary.html | 12 +- .../sparse/coo/complex/package-tree.html | 6 +- .../sparse/coo/package-summary.html | 4 +- .../operations/sparse/coo/package-tree.html | 4 +- .../sparse/coo/real/RealCooTensorDot.html | 201 +++ .../coo/real/RealCooTensorOperations.html | 216 ++++ .../sparse/coo/real/RealSparseEquals.html | 4 +- .../coo/real/RealSparseManipulations.html | 4 +- .../coo/real/RealSparseMatrixGetSet.html | 4 +- .../real/RealSparseMatrixManipulations.html | 4 +- .../real/RealSparseMatrixMultiplication.html | 4 +- .../coo/real/RealSparseMatrixOperations.html | 4 +- .../coo/real/RealSparseMatrixProperties.html | 4 +- .../sparse/coo/real/RealSparseNorms.html | 4 +- .../coo/real/RealSparseVectorOperations.html | 4 +- .../sparse/coo/real/package-summary.html | 12 +- .../sparse/coo/real/package-tree.html | 6 +- .../RealComplexCooTensorOperations.html | 241 ++++ .../real_complex/RealComplexSparseEquals.html | 4 +- ...RealComplexSparseMatrixMultiplication.html | 6 +- .../RealComplexSparseMatrixOperations.html | 6 +- .../RealComplexSparseVectorOperations.html | 6 +- .../coo/real_complex/package-summary.html | 22 +- .../sparse/coo/real_complex/package-tree.html | 5 +- .../sparse/csr/complex/ComplexCsrEquals.html | 4 +- .../csr/complex/ComplexCsrManipulations.html | 4 +- .../ComplexCsrMatrixMultiplication.html | 6 +- .../csr/complex/ComplexCsrOperations.html | 6 +- .../csr/complex/ComplexCsrProperties.html | 6 +- .../sparse/csr/complex/package-summary.html | 4 +- .../sparse/csr/complex/package-tree.html | 4 +- .../sparse/csr/real/RealCsrConcats.html | 4 +- .../sparse/csr/real/RealCsrEquals.html | 4 +- .../sparse/csr/real/RealCsrManipulations.html | 4 +- .../csr/real/RealCsrMatrixMultiplication.html | 4 +- .../sparse/csr/real/RealCsrOperations.html | 4 +- .../sparse/csr/real/RealCsrProperties.html | 4 +- .../sparse/csr/real/package-summary.html | 4 +- .../sparse/csr/real/package-tree.html | 4 +- .../RealComplexCsrMatrixMultiplication.html | 6 +- .../RealComplexCsrOperations.html | 6 +- .../csr/real_complex/package-summary.html | 4 +- .../sparse/csr/real_complex/package-tree.html | 4 +- docs/org/flag4j/rng/RandomArray.html | 4 +- docs/org/flag4j/rng/RandomCNumber.html | 4 +- docs/org/flag4j/rng/RandomTensor.html | 4 +- docs/org/flag4j/rng/package-summary.html | 4 +- docs/org/flag4j/rng/package-tree.html | 4 +- docs/org/flag4j/util/ArrayUtils.html | 291 +---- docs/org/flag4j/util/Axis2D.html | 4 +- docs/org/flag4j/util/ErrorMessages.html | 4 +- docs/org/flag4j/util/Flag4jConstants.html | 4 +- docs/org/flag4j/util/ParameterChecks.html | 4 +- docs/org/flag4j/util/StringUtils.html | 4 +- .../exceptions/LinearAlgebraException.html | 4 +- .../exceptions/SingularMatrixException.html | 4 +- .../util/exceptions/TensorShapeException.html | 4 +- .../util/exceptions/package-summary.html | 4 +- .../flag4j/util/exceptions/package-tree.html | 4 +- docs/org/flag4j/util/package-summary.html | 4 +- docs/org/flag4j/util/package-tree.html | 4 +- docs/overview-summary.html | 4 +- docs/overview-tree.html | 35 +- docs/search.html | 4 +- docs/serialized-form.html | 23 +- docs/type-search-index.js | 2 +- 371 files changed, 5811 insertions(+), 4721 deletions(-) create mode 100644 docs/org/flag4j/operations/sparse/coo/complex/ComplexCooTensorDot.html create mode 100644 docs/org/flag4j/operations/sparse/coo/complex/ComplexCooTensorOperations.html create mode 100644 docs/org/flag4j/operations/sparse/coo/real/RealCooTensorDot.html create mode 100644 docs/org/flag4j/operations/sparse/coo/real/RealCooTensorOperations.html create mode 100644 docs/org/flag4j/operations/sparse/coo/real_complex/RealComplexCooTensorOperations.html diff --git a/docs/allclasses-index.html b/docs/allclasses-index.html index 67cd565ce..7c57fa2a1 100644 --- a/docs/allclasses-index.html +++ b/docs/allclasses-index.html @@ -1,11 +1,11 @@ - + All Classes and Interfaces - + @@ -93,7 +93,7 @@

    All Classes and Interfaces<
    -
    A complex number stored in rectangular form.
    +
    A complex number stored in rectangular form with both the real and imaginary components stored as a 64-bit floats.
    @@ -121,6 +121,14 @@

    All Classes and Interfaces<
    This abstract class specifies methods for computing the Cholesky decomposition of a hermitian positive-definite matrix.

    + +
    +
    Utility class for computing tensor dot products between two complex sparse COO tensors.
    +
    + +
    +
    Utility class for computing operations between two complex sparse COO tensors.
    +
    This class contains low-level implementations of complex-complex sparse-sparse matrix multiplication where the sparse matrices @@ -488,7 +496,7 @@

    All Classes and Interfaces<
    This interface specifies manipulations which all matrices should implement.
    - +
    This interface specified methods which all matrices should implement.
    @@ -504,7 +512,7 @@

    All Classes and Interfaces<
    Utility class for computing norms of matrices.
    - +
    This interface specifies operations which should be implemented by any matrix (rank 2 tensor).
    @@ -555,501 +563,513 @@

    All Classes and Interfaces<
    An instance of this class allows for the computation of a Cholesky decomposition for a real dense matrix.

    - +
    +
    Utility class for computing operations between a complex sparse COO tensor and a real coo tensor.
    +
    + +
    This class contains low-level implementations of real-complex sparse-dense matrix multiplication where the sparse matrix is in CSR format.
    - -
    + +
    This class contains low-level operations which act on a real/complex dense and a complex/real sparse CSR matrix.
    - -
    + +
    This class provides low-level implementation of matrix multiplication between a real CSR matrix and a complex CSR matrix.
    - -
    + +
    This class contains low-level implementations for element-wise operations on real/complex CSR matrices.
    - -
    + +
    This class contains low-level implementations of element-wise tensor division for a real dense and complex dense tensor.
    - -
    + +
    This class contains low-level implementations of element-wise tensor multiplication for a real dense and complex dense tensor.
    - -
    + +
    This class provides methods for checking the equality of one real and one complex dense tensors.
    - -
    + +
    This class contains several low level methods for computing real/complex matrix-matrix multiplications.
    - -
    + +
    This class contains several low level methods for computing matrix-matrix multiplications with a transpose for a real dense matrix and a complex dense matrix.
    - -
    + +
    This class provides low level methods for computing operations with at least one real tensor and at least one complex tensor.
    - -
    + +
    This class contains methods for checking the equality of real dense/sparse and complex dense/sparse tensors.
    - -
    + +
    This class contains low level methods for computing the matrix multiplication (and matrix vector multiplication) between a real dense/sparse matrix and a real sparse/dense matrix or vector.
    - -
    + +
    This class contains several low level methods for computing matrix-matrix multiplications with a transpose for a real/complex sparse/dense
    WARNING: These methods do not perform any sanity checks.
    - -
    + +
    This class contains low level implementations of operations between real/complex and dense/sparse matrices.
    - -
    + +
    This class contains methods to apply common binary operations to a real/complex dense matrix and to a complex/real sparse matrix.
    - -
    + +
    This class provides low level methods for computing operations between a real/complex dense/sparse vector and a complex/real sparse/dense vector.
    - -
    + +
    This class provides low level implementations for vector operations with a real/complex dense vector and a complex/real dense vector.
    - -
    + +
    This class contains methods for checking the equality of real/complex sparse tensors.
    - -
    + +
    This class contains low level methods for computing the multiplication between a real/complex matrix and a complex/real matrix/vector.
    - -
    + +
    This class has low level implementations for operations between a real sparse matrix and a complex sparse matrix.
    - -
    + +
    This class contains low level implementations of operations on a real sparse tensor and a complex sparse tensor.
    - + +
    +
    Utility class for computing tensor dot products between two real sparse COO tensors.
    +
    +
    -
    Utility class for concatenating real CSR matrices
    +
    Utility class for computing operations between two real sparse COO tensors.
    - +
    +
    Utility class for concatenating real CSR matrices
    +
    + +
    This class contains low-level implementations of real sparse-dense matrix multiplication where the sparse matrix is in CSR format.
    - -
    + +
    This class contains low-level operations which act on a real dense and a real sparse CSR matrix.
    - -
    + +
    This class contains methods to check equality or approximate equality between two sparse CSR matrices.
    - -
    + +
    Utility class for manipulating real sparse CSR matrices (e.g.
    - -
    + +
    This class provides low-level implementation of matrix multiplication between two real CSR matrices.
    - -
    + +
    This class contains low-level implementations for element-wise operations on CSR matrices.
    - -
    + +
    This class contains low-level implementations for determining certain properties of real sparse CSR matrices.
    - -
    + +
    This class contains methods for computing the determinant of a real dense matrix.
    - -
    + +
    This class contains low level implementations of element-wise division algorithms for real dense tensors.
    - -
    + +
    This class contains low level implementations of element-wise multiplications algorithms for real dense tensors.
    - -
    + +
    This class provides methods for checking the equality of real dense tensors.
    - -
    + +
    This class contains several low level methods for computing matrix-matrix multiplications.
    - -
    + +
    Singleton class which stores a map of all viable real dense matrix multiply algorithms and uses that map to dispatch a real dense matrix multiply problem to the appropriate algorithm.
    - -
    + +
    Simple enum class containing all possible choices of real dense matrix multiply algorithms.
    - -
    + +
    This class contains several low level methods for computing matrix-matrix multiplications with a transpose for two real dense matrices.
    - -
    + +
    This class provides low level methods for computing operations on real dense tensors.
    - -
    + +
    This class contains low-level implementations for operations which check if a tensor satisfies some property.
    - -
    + +
    This class contains low-level implementations of setting operations for real dense tensors.
    - -
    + +
    This class contains methods for checking the equality of a real dense and real sparse tensors.
    - -
    + +
    This class contains low level methods for computing the matrix multiplication (and matrix vector multiplication) between a real dense/sparse matrix and a real sparse/dense matrix or vector.
    - -
    + +
    This class contains several low level methods for computing matrix-matrix multiplications with a transpose for a real dense matrix and a real sparse matrix.
    - -
    + +
    This class contains low-level operations between a real dense and real sparse matrix.
    - -
    + +
    This class contains methods to apply common binary operations to a real dense matrix and to a real sparse matrix.
    - -
    + +
    This class provides low level methods for computing operations between a real dense/sparse vector and a real sparse/dense vector.
    - -
    + +
    The base class for all real dense tensors.
    - -
    + +
    Functional interface for creating a lambda which implements an operation acting on two real dense tensors.
    - -
    + +
    This class contains methods for computing a tensor dot product, i.e.
    - -
    + +
    This class contains several low-level algorithms for computing the transpose of real dense tensors.
    - -
    + +
    This class provides low level implementations for several vector operation.
    - -
    + +
    Solver for solving a well determined system of linear equations in an exact sense using the LU decomposition.
    - -
    + +
    Solver for solving a real well determined linear tensor equation A*X=B in an exact sense.
    - -
    + +
    This solver solves linear systems of equations where the coefficient matrix in a lower triangular real dense matrix and the constant vector is a real dense vector.
    - -
    + +
    Computes the Hessenburg decomposition of a real dense square matrix.
    - -
    + +
    This class solves a linear system of equations Ax=b in a least-squares sense.
    - -
    + +
    This class provides methods for computing the LU decomposition of a real dense matrix.
    - -
    + +
    This interface specifies methods which all real matrices should implement.
    - -
    + +
    This class provides low level methods for computing operations on real tensors.
    - -
    + +
    This class provides low level methods for checking tensor properties.
    - -
    + +
    Instances of this class compute the QR decomposition of a real dense matrix.
    - -
    + +
    This class computes the Schur decomposition of a real dense square matrix.
    - -
    + +
    This class contains methods for checking the equality of real sparse tensors.
    - -
    + +
    This utility class provides methods for inserting/removing values in a real sparse vector.
    - -
    + +
    This class provides methods for getting and setting elements and slices from/to a real sparse matrix.
    - -
    + +
    This class contains implementations for real sparse matrix manipulations.
    - -
    + +
    This class contains low level implementations of matrix multiplication for real sparse matrices.
    - -
    + +
    This class has low level implementations for operations between two real sparse matrices.
    - -
    + +
    This class contains low level implementations for methods to evaluate certain properties of a real sparse matrix.
    - -
    + +
    This class contains low level implementations of norms for tensors, matrices and vector.
    - -
    + +
    Base class for all sparse tensor.
    - -
    + +
    This class contains low level implementations of operations on two real sparse tensors.
    - -
    + +
    Instances of this class can be used to compute the singular value decomposition (SVD) of a real dense matrix.
    - -
    + +
    This interface specifies methods which all real tensors should implement.
    - -
    + +
    This class is the base class for real matrix decompositions which proceed by using unitary/orthogonal transformations (specifically Householder reflectors) to bring a matrix into an upper triangular/Hessenburg matrix.
    - -
    + +
    This class contains several methods for computing row echelon, reduced row echelon, and extended reduced row echelon forms of a matrix.
    - -
    + +
    The base class for Schur decompositions.
    - -
    + +
    An object to store the shape of a tensor.
    - -
    + +
    An exception which is thrown when some operation not defined for singular matrices is attempted to be performed on a singular matrix.
    - -
    + +
    A wrapper to wrap the entries and indices from a sparse tensor, vector, or matrix.
    - -
    + +
    This class provides methods for efficiently finding if a sparse vector, matrix, or tensor contains a non-zero item at a specified index.
    - -
    + +
    The base class for all sparse tensors.
    - -
    + +
    This interface specifies methods which all sparse tensor, matrices, and vectors should implement.
    - -
    + +
    Utility class for computations with sparse tensor, matrices, and vectors.
    - -
    + +
    Contains common utility functions for working with sparse matrices.
    - -
    + +
    A class which provides simple utility methods for strings.
    - -
    + +
    This class contains several methods for computing the subspace of a matrix.
    - -
    + +
    This abstract class specifies methods for computing the singular value decomposition (SVD) of a matrix.
    - -
    + +
    Computes the Hessenburg decomposition of a real dense symmetric matrix.
    - -
    + +
    A real symmetric tri-diagonal matrix.
    - -
    + +
    Real Dense Tensor.
    - -
    + +
    The base class for all tensors.
    - -
    + +
    This interface specifies comparisons which all tensors (i.e.
    - -
    + +
    Utility class for determining if arbitrary pairs of tensors are equal.
    - -
    + +
    This interface contains several methods which should be implemented by all tensors which are NOT a matrix or vector.
    - -
    + +
    A TensorInputStream obtains bytes from a system file using a FileInputStream containing a serialized tensor, matrix, or vector.
    - -
    + +
    This class provides methods for computing the 'inverse' of a tensor with respect to some tensor dot product operation.
    - -
    + +
    This interface specifies manipulations which all tensors (i.e.
    - -
    + +
    Utility class for computing "norms" of tensors.
    - -
    + +
    This interface specifies operations which all tensors (i.e.
    - -
    + +
    A class for writing tensors to a file in various formats.
    - -
    + +
    This interface specifies methods which provide properties of a tensor.
    - -
    + +
    The TensorReader class provides several static methods for reading serialized tensors, matrices, and vectors from a file.
    - -
     
    - -
    + +
     
    + +
    The TensorWriter class provides several static methods for writing serialized tensors, matrices, and vectors to a file.
    - -
    + +
    This class contains the base thread pool for all concurrent operations and several methods for managing the pool.
    - -
    + +
    Provides a dispatch method for dynamically choosing the best matrix transpose algorithm.
    - -
    + +
    Simple enum class containing available algorithms for computing a matrix transpose.
    - -
    + +
    This class is the base class for all decompositions which proceed by using unitary transformations (specifically Householder reflectors) to bring a matrix into an upper triangular matrix or an upper Hessenburg matrix.
    - -
    + +
    Real dense vector.
    - -
    + +
    This interface specifies comparisons which all vectors should implement.
    - -
    + +
    This interface specifies manipulations which all vectors should implement.
    - -
    + +
    This interface specifies methods which all vectors should implement.
    - -
    + +
    Utility class for computing norms of vectors.
    - -
    + +
    This interface specifies operations which should be implemented by any vector.
    - -
    + +
    This interface specifies methods which provide properties of a vector.
    - -
    + +
    Utility class for generating view matrices.
    diff --git a/docs/allpackages-index.html b/docs/allpackages-index.html index 92ded857d..21ee34ca7 100644 --- a/docs/allpackages-index.html +++ b/docs/allpackages-index.html @@ -1,11 +1,11 @@ - + All Packages - + diff --git a/docs/constant-values.html b/docs/constant-values.html index 569d5bc7c..cfe1b3616 100644 --- a/docs/constant-values.html +++ b/docs/constant-values.html @@ -1,11 +1,11 @@ - + Constant Field Values - + diff --git a/docs/help-doc.html b/docs/help-doc.html index 53d137ffb..9e494875a 100644 --- a/docs/help-doc.html +++ b/docs/help-doc.html @@ -1,11 +1,11 @@ - + API Help - + diff --git a/docs/index-files/index-1.html b/docs/index-files/index-1.html index 8248c8848..73ee3967d 100644 --- a/docs/index-files/index-1.html +++ b/docs/index-files/index-1.html @@ -1,11 +1,11 @@ - + A-Index - + @@ -51,18 +51,10 @@

    Index

    A B C D E F G H I J K L M N O P Q R S T U V W X Z 
    All Classes and Interfaces|All Packages|Constant Field Values|Serialized Form

    A

    -
    abs() - Method in class org.flag4j.arrays.sparse.CooCTensor
    -
    -
    Computes the element-wise absolute value/magnitude of a tensor.
    -
    abs() - Method in class org.flag4j.arrays.sparse.CooCVector
    Computes the element-wise absolute value/magnitude of a tensor.
    -
    abs() - Method in class org.flag4j.arrays.sparse.CooTensor
    -
    -
    Computes the element-wise absolute value/magnitude of a tensor.
    -
    abs() - Method in class org.flag4j.complex_numbers.CNumber
    Computes the absolute value / magnitude of a complex number.
    @@ -195,6 +187,14 @@

    A

    Computes the element-wise addition between two tensors of the same rank.
    +
    add(CTensor) - Method in class org.flag4j.arrays.sparse.CooCTensor
    +
    +
    Computes the element-wise addition between two tensors of the same rank.
    +
    +
    add(CTensor) - Method in class org.flag4j.arrays.sparse.CooTensor
    +
    +
    Computes the element-wise addition between two tensors of the same rank.
    +
    add(CTensor) - Method in interface org.flag4j.core.TensorExclusiveMixin
    Computes the element-wise addition between two tensors of the same rank.
    @@ -267,6 +267,14 @@

    A

    Computes the element-wise addition between two tensors of the same rank.
    +
    add(Tensor) - Method in class org.flag4j.arrays.sparse.CooCTensor
    +
    +
    Computes the element-wise addition between two tensors of the same rank.
    +
    +
    add(Tensor) - Method in class org.flag4j.arrays.sparse.CooTensor
    +
    +
    Computes the element-wise addition between two tensors of the same rank.
    +
    add(Tensor) - Method in interface org.flag4j.core.TensorExclusiveMixin
    Computes the element-wise addition between two tensors of the same rank.
    @@ -359,10 +367,30 @@

    A

    Computes the element-wise addition between two tensors of the same rank.
    +
    add(CooCTensor) - Method in class org.flag4j.arrays.sparse.CooTensor
    +
    +
    Computes the element-wise addition between two tensors of the same rank.
    +
    add(CooCTensor) - Method in interface org.flag4j.core.TensorExclusiveMixin
    Computes the element-wise addition between two tensors of the same rank.
    +
    add(CooCTensor, double) - Static method in class org.flag4j.operations.dense_sparse.coo.real_complex.RealComplexDenseSparseOperations
    +
    +
    Adds a scalar to a real sparse COO tensor.
    +
    +
    add(CooCTensor, CooCTensor) - Static method in class org.flag4j.operations.sparse.coo.complex.ComplexCooTensorOperations
    +
    +
    Sums two complex sparse COO tensors and stores result in a new COO tensor.
    +
    +
    add(CooCTensor, CooTensor) - Static method in class org.flag4j.operations.sparse.coo.real_complex.RealComplexCooTensorOperations
    +
    +
    Sums two sparse COO tensors and stores result in a new COO tensor.
    +
    +
    add(CooCTensor, CNumber) - Static method in class org.flag4j.operations.dense_sparse.coo.complex.ComplexDenseSparseOperations
    +
    +
    Adds a scalar to a complex sparse COO tensor.
    +
    add(CooCVector) - Method in class org.flag4j.arrays.dense.CVector
    Computes the element-wise addition between this vector and the specified vector.
    @@ -451,6 +479,10 @@

    A

    Computes the element-wise addition between two tensors of the same rank.
    +
    add(CooTensor) - Method in class org.flag4j.arrays.sparse.CooCTensor
    +
    +
    Computes the element-wise addition between two tensors of the same rank.
    +
    add(CooTensor) - Method in class org.flag4j.arrays.sparse.CooTensor
    Computes the element-wise addition between two tensors of the same rank.
    @@ -459,6 +491,18 @@

    A

    Computes the element-wise addition between two tensors of the same rank.
    +
    add(CooTensor, double) - Static method in class org.flag4j.operations.dense_sparse.coo.real.RealDenseSparseTensorOperations
    +
    +
    Adds a scalar to a real sparse COO tensor.
    +
    +
    add(CooTensor, CooTensor) - Static method in class org.flag4j.operations.sparse.coo.real.RealCooTensorOperations
    +
    +
    Sums two sparse COO tensors and stores result in a new COO tensor.
    +
    +
    add(CooTensor, CNumber) - Static method in class org.flag4j.operations.dense_sparse.coo.real_complex.RealComplexDenseSparseOperations
    +
    +
    Adds a scalar to a real sparse COO tensor.
    +
    add(CooVector) - Method in class org.flag4j.arrays.dense.CVector
    Computes the element-wise addition between this vector and the specified vector.
    @@ -621,10 +665,6 @@

    A

    Computes the element-wise addition between two tensors of the same rank.
    -
    addEq(double) - Method in class org.flag4j.complex_numbers.CNumber
    -
    -
    Adds a specified number to this complex number and stores the result in this complex number.
    -
    addEq(double[], double) - Static method in class org.flag4j.operations.dense.real.RealDenseOperations
    Adds a scalar from each entry of this tensor and stores the result in the tensor.
    @@ -683,6 +723,10 @@

    A

    Computes the element-wise addition of two tensors of the same rank and stores the result in this tensor.
    +
    addEq(Tensor) - Method in class org.flag4j.arrays.sparse.CooCTensor
    +
    +
    Computes the element-wise addition of two tensors of the same rank and stores the result in this tensor.
    +
    addEq(Tensor) - Method in interface org.flag4j.core.ComplexTensorExclusiveMixin
    Computes the element-wise addition of two tensors of the same rank and stores the result in this tensor.
    @@ -718,6 +762,10 @@

    A

    Computes the element-wise addition of two tensors of the same rank and stores the result in this tensor.
    +
    addEq(CooCTensor) - Method in class org.flag4j.arrays.sparse.CooCTensor
    +
    +
    Computes the element-wise addition of two tensors of the same rank and stores the result in this tensor.
    +
    addEq(CooCTensor) - Method in interface org.flag4j.core.ComplexTensorExclusiveMixin
    Computes the element-wise addition of two tensors of the same rank and stores the result in this tensor.
    @@ -747,10 +795,6 @@

    A

    Computes the element-wise addition of two tensors of the same rank and stores the result in this tensor.
    -
    addEq(CooTensor) - Method in interface org.flag4j.core.TensorExclusiveMixin
    -
    -
    Computes the element-wise subtraction of two tensors of the same rank and stores the result in this tensor.
    -
    addEq(CooVector) - Method in class org.flag4j.arrays.dense.CVector
    Computes the element-wise addition between this vector and the specified vector.
    @@ -764,10 +808,6 @@

    A

    Computes the element-wise addition between this vector and the specified vector and stores the result in this vector.
    -
    addEq(CNumber) - Method in class org.flag4j.complex_numbers.CNumber
    -
    -
    Adds a specified number to this complex number and stores the result in this complex number.
    -
    addEq(CNumber) - Method in class org.flag4j.core.dense_base.ComplexDenseTensorBase
    Subtracts a specified value from all entries of this tensor and stores the result in this tensor.
    @@ -1440,18 +1480,10 @@

    A

    Computes the index of the first entry in a tensor which is equal to the specified value.
    -
    argMax() - Method in class org.flag4j.arrays.sparse.CooCTensor
    -
    -
    Finds the indices of the maximum value in this tensor.
    -
    argMax() - Method in class org.flag4j.arrays.sparse.CooCVector
    Finds the indices of the maximum value in this tensor.
    -
    argMax() - Method in class org.flag4j.arrays.sparse.CooTensor
    -
    -
    Finds the indices of the maximum value in this tensor.
    -
    argMax() - Method in class org.flag4j.core.dense_base.ComplexDenseTensorBase
    Finds the indices of the maximum value in this tensor.
    @@ -1484,18 +1516,10 @@

    A

    Computes the index of the minimum real component from an array of complex numbers.
    -
    argMin() - Method in class org.flag4j.arrays.sparse.CooCTensor
    -
    -
    Finds the indices of the minimum value in this tensor.
    -
    argMin() - Method in class org.flag4j.arrays.sparse.CooCVector
    Finds the indices of the minimum value in this tensor.
    -
    argMin() - Method in class org.flag4j.arrays.sparse.CooTensor
    -
    -
    Finds the indices of the minimum value in this tensor.
    -
    argMin() - Method in class org.flag4j.core.dense_base.ComplexDenseTensorBase
    Finds the indices of the minimum value in this tensor.
    @@ -1537,11 +1561,6 @@

    A

    Performs an array copy similar to System.arraycopy(Object, int, Object, int, int) but creates a deep copy of each element in the source array.
    -
    arraycopy(CNumber[], int, CNumber[], int, int) - Static method in class org.flag4j.util.ArrayUtils
    -
    -
    Performs an array copy similar to System.arraycopy(Object, int, Object, int, int) but creates a deep copy - of each element in the source array.
    -
    ArrayUtils - Class in org.flag4j.util
    This class provides several utility methods useful for array manipulation and copying.
    diff --git a/docs/index-files/index-10.html b/docs/index-files/index-10.html index d4ebe008e..cf8f65756 100644 --- a/docs/index-files/index-10.html +++ b/docs/index-files/index-10.html @@ -1,11 +1,11 @@ - + J-Index - + diff --git a/docs/index-files/index-11.html b/docs/index-files/index-11.html index d03aeb50a..b658a2610 100644 --- a/docs/index-files/index-11.html +++ b/docs/index-files/index-11.html @@ -1,11 +1,11 @@ - + K-Index - + diff --git a/docs/index-files/index-12.html b/docs/index-files/index-12.html index 67d008159..19c11df8d 100644 --- a/docs/index-files/index-12.html +++ b/docs/index-files/index-12.html @@ -1,11 +1,11 @@ - + L-Index - + diff --git a/docs/index-files/index-13.html b/docs/index-files/index-13.html index e30a184f8..a6e1b3860 100644 --- a/docs/index-files/index-13.html +++ b/docs/index-files/index-13.html @@ -1,11 +1,11 @@ - + M-Index - + @@ -59,6 +59,8 @@

    M

    Squares this magnitude of this complex number.
    +
    main(String[]) - Static method in class org.flag4j.core.Shape
    +
     
    main(String[]) - Static method in class org.flag4j.operations.dense.real.RealDenseTranspose
     
    makeComplexTensor(Shape, double[]) - Method in class org.flag4j.arrays.dense.Matrix
    @@ -455,7 +457,7 @@

    M

    Computes the infinity/maximum norm of a matrix.
    -
    MatrixMixin<T,U,V,W,X,TT,UU> - Interface in org.flag4j.core
    +
    MatrixMixin<T,U,V,W,VV,X,TT,UU> - Interface in org.flag4j.core
    This interface specified methods which all matrices should implement.
    @@ -519,7 +521,7 @@

    M

    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�(8UCQJ|mt~Qt{^m`K*x7eEIZA_!nh=ihKs; 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

  • +
    +

    toMatrix

    +
    +
    public CMatrix toMatrix(Shape matShape)
    +
    Converts this tensor to a matrix with the specified shape.
    +
    +
    Parameters:
    +
    matShape - Shape of the resulting matrix. Must be broadcastable with the shape of this tensor.
    +
    Returns:
    +
    A matrix of shape matShape with the values of this tensor.
    +
    +
    +
    +
  • +
  • toMatrix

    diff --git a/docs/org/flag4j/arrays/dense/CVector.html b/docs/org/flag4j/arrays/dense/CVector.html index 2b303f064..f95212cc8 100644 --- a/docs/org/flag4j/arrays/dense/CVector.html +++ b/docs/org/flag4j/arrays/dense/CVector.html @@ -1,11 +1,11 @@ - + CVector - + @@ -738,6 +738,42 @@

    add

  • +
    +

    addEq

    +
    +
    public void addEq(Vector B)
    +
    Computes the element-wise addition between this vector and the specified vector and stores the result + in this vector.
    +
    +
    Specified by:
    +
    addEq in interface DenseVectorMixin
    +
    Parameters:
    +
    B - Vector to add to this vector.
    +
    Throws:
    +
    IllegalArgumentException - If this vector and the specified vector have different lengths.
    +
    +
    +
    +
  • +
  • +
    +

    subEq

    +
    +
    public void subEq(Vector B)
    +
    Computes the element-wise subtraction between this vector and the specified vector and stores the result + in this vector.
    +
    +
    Specified by:
    +
    subEq in interface DenseVectorMixin
    +
    Parameters:
    +
    B - Vector to subtract this vector.
    +
    Throws:
    +
    IllegalArgumentException - If this vector and the specified vector have different lengths.
    +
    +
    +
    +
  • +
  • sub

    @@ -1807,42 +1843,6 @@

    toString

  • -
  • -
    -

    addEq

    -
    -
    public void addEq(Vector B)
    -
    Computes the element-wise addition between this vector and the specified vector and stores the result - in this vector.
    -
    -
    Specified by:
    -
    addEq in interface DenseVectorMixin
    -
    Parameters:
    -
    B - Vector to add to this vector.
    -
    Throws:
    -
    IllegalArgumentException - If this vector and the specified vector have different lengths.
    -
    -
    -
    -
  • -
  • -
    -

    subEq

    -
    -
    public void subEq(Vector B)
    -
    Computes the element-wise subtraction between this vector and the specified vector and stores the result - in this vector.
    -
    -
    Specified by:
    -
    subEq in interface DenseVectorMixin
    -
    Parameters:
    -
    B - Vector to subtract this vector.
    -
    Throws:
    -
    IllegalArgumentException - If this vector and the specified vector have different lengths.
    -
    -
    -
    -
  • diff --git a/docs/org/flag4j/arrays/dense/Matrix.html b/docs/org/flag4j/arrays/dense/Matrix.html index bedb3277a..9c1086522 100644 --- a/docs/org/flag4j/arrays/dense/Matrix.html +++ b/docs/org/flag4j/arrays/dense/Matrix.html @@ -1,11 +1,11 @@ - + Matrix - + @@ -96,12 +96,12 @@

    Class Matrix

    Real dense matrix. Stored in row major format. This class is mostly equivalent to a real dense tensor. However, specialized methods are provided for this class which may result in slightly better performance than equivalent operations with a real dense tensor of rank 2. Additionally, methods specific to matrices @@ -1348,7 +1348,7 @@

    numRows

    Gets the number of rows in this matrix.
    Specified by:
    -
    numRows in interface MatrixMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    numRows in interface MatrixMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Returns:
    The number of rows in this matrix.
    @@ -1363,7 +1363,7 @@

    numCols

    Gets the number of columns in this matrix.
    Specified by:
    -
    numCols in interface MatrixMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    numCols in interface MatrixMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Returns:
    The number of columns in this matrix.
    @@ -1378,7 +1378,7 @@

    shape

    Gets the shape of this matrix.
    Specified by:
    -
    shape in interface MatrixMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    shape in interface MatrixMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Returns:
    The shape of this matrix.
    @@ -1407,7 +1407,7 @@

    toVector

    it will be flattened then converted to a vector.
    Specified by:
    -
    toVector in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    toVector in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Returns:
    A vector equivalent to this matrix.
    @@ -1756,7 +1756,7 @@

    setCol

    Sets a column of this matrix at the given index to the specified values.
    Specified by:
    -
    setCol in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    setCol in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    values - New values for the column.
    colIndex - The index of the column which is to be set.
    @@ -1883,7 +1883,7 @@

    getSlice

    Gets a specified slice of this matrix.
    Specified by:
    -
    getSlice in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    getSlice in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    rowStart - Starting row index of slice (inclusive).
    rowEnd - Ending row index of slice (exclusive).
    @@ -2286,7 +2286,7 @@

    add

    Computes the element-wise addition between two tensors of the same rank.
    Specified by:
    -
    add in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    add in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    B - Second tensor in the addition.
    Returns:
    @@ -2305,7 +2305,7 @@

    add

    Computes the element-wise addition between two tensors of the same rank.
    Specified by:
    -
    add in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    add in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    B - Second tensor in the addition.
    Returns:
    @@ -2324,7 +2324,7 @@

    add

    Computes the element-wise addition between two tensors of the same rank.
    Specified by:
    -
    add in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    add in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    B - Second tensor in the addition.
    Returns:
    @@ -2343,7 +2343,7 @@

    add

    Computes the element-wise addition between two tensors of the same rank.
    Specified by:
    -
    add in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    add in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    B - Second tensor in the addition.
    Returns:
    @@ -2362,7 +2362,7 @@

    add

    Computes the element-wise addition between two tensors of the same rank.
    Specified by:
    -
    add in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    add in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    B - Second tensor in the addition.
    Returns:
    @@ -2430,7 +2430,7 @@

    sub

    Computes the element-wise subtraction of two tensors of the same rank.
    Specified by:
    -
    sub in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    sub in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    B - Second tensor in the subtraction.
    Returns:
    @@ -2449,7 +2449,7 @@

    sub

    Computes the element-wise subtraction of two tensors of the same rank.
    Specified by:
    -
    sub in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    sub in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    B - Second tensor in the subtraction.
    Returns:
    @@ -2468,7 +2468,7 @@

    sub

    Computes the element-wise subtraction of two tensors of the same rank.
    Specified by:
    -
    sub in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    sub in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    B - Second tensor in the subtraction.
    Returns:
    @@ -2487,7 +2487,7 @@

    sub

    Computes the element-wise subtraction of two tensors of the same rank.
    Specified by:
    -
    sub in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    sub in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    B - Second tensor in the subtraction.
    Returns:
    @@ -2506,7 +2506,7 @@

    sub

    Computes the element-wise subtraction of two tensors of the same rank.
    Specified by:
    -
    sub in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    sub in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    B - Second tensor in the subtraction.
    Returns:
    @@ -2525,7 +2525,7 @@

    mult

    Computes the matrix multiplication between two matrices.
    Specified by:
    -
    mult in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    mult in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    B - Second matrix in the matrix multiplication.
    Returns:
    @@ -2544,7 +2544,7 @@

    mult

    Computes the matrix multiplication between two matrices.
    Specified by:
    -
    mult in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    mult in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    B - Second matrix in the matrix multiplication.
    Returns:
    @@ -2563,7 +2563,7 @@

    mult

    Computes the matrix multiplication between two matrices.
    Specified by:
    -
    mult in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    mult in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    B - Second matrix in the matrix multiplication.
    Returns:
    @@ -2582,7 +2582,7 @@

    mult

    Computes the matrix multiplication between two matrices.
    Specified by:
    -
    mult in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    mult in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    B - Second matrix in the matrix multiplication.
    Returns:
    @@ -2601,7 +2601,7 @@

    mult

    Computes the matrix multiplication between two matrices.
    Specified by:
    -
    mult in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    mult in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    B - Second matrix in the matrix multiplication.
    Returns:
    @@ -2620,7 +2620,7 @@

    mult

    Computes the matrix multiplication between two matrices.
    Specified by:
    -
    mult in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    mult in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    B - Second matrix in the matrix multiplication.
    Returns:
    @@ -2639,7 +2639,7 @@

    mult

    Computes matrix-vector multiplication.
    Specified by:
    -
    mult in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    mult in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    b - Vector in the matrix-vector multiplication.
    Returns:
    @@ -2658,7 +2658,7 @@

    mult

    Computes matrix-vector multiplication.
    Specified by:
    -
    mult in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    mult in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    b - Vector in the matrix-vector multiplication.
    Returns:
    @@ -2677,7 +2677,7 @@

    mult

    Computes matrix-vector multiplication.
    Specified by:
    -
    mult in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    mult in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    b - Vector in the matrix-vector multiplication.
    Returns:
    @@ -2696,7 +2696,7 @@

    mult

    Computes matrix-vector multiplication.
    Specified by:
    -
    mult in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    mult in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    b - Vector in the matrix-vector multiplication.
    Returns:
    @@ -2719,7 +2719,7 @@

    multTranspose

    this.mult(B.T()).
    Specified by:
    -
    multTranspose in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    multTranspose in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    B - The second matrix in the multiplication and the matrix to transpose/
    Returns:
    @@ -2740,7 +2740,7 @@

    multTranspose

    this.mult(B.T()).
    Specified by:
    -
    multTranspose in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    multTranspose in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    B - The second matrix in the multiplication and the matrix to transpose/
    Returns:
    @@ -2761,7 +2761,7 @@

    multTranspose

    this.mult(B.T()).
    Specified by:
    -
    multTranspose in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    multTranspose in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    B - The second matrix in the multiplication and the matrix to transpose/
    Returns:
    @@ -2782,7 +2782,7 @@

    multTranspose

    this.mult(B.T()).
    Specified by:
    -
    multTranspose in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    multTranspose in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    B - The second matrix in the multiplication and the matrix to transpose/
    Returns:
    @@ -2801,7 +2801,7 @@

    pow

    faster.
    Specified by:
    -
    pow in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    pow in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    exponent - The exponent in the matrix power.
    Returns:
    @@ -2821,7 +2821,7 @@

    elemMult

    Computes the element-wise multiplication (Hadamard product) between two matrices.
    Specified by:
    -
    elemMult in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    elemMult in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    B - Second matrix in the element-wise multiplication.
    Returns:
    @@ -2840,7 +2840,7 @@

    elemMult

    Computes the element-wise multiplication (Hadamard product) between two matrices.
    Specified by:
    -
    elemMult in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    elemMult in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    B - Second matrix in the element-wise multiplication.
    Returns:
    @@ -2859,7 +2859,7 @@

    elemMult

    Computes the element-wise multiplication (Hadamard product) between two matrices.
    Specified by:
    -
    elemMult in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    elemMult in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    B - Second matrix in the element-wise multiplication.
    Returns:
    @@ -2878,7 +2878,7 @@

    elemDiv

    Computes the element-wise division between two matrices.
    Specified by:
    -
    elemDiv in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    elemDiv in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    B - Second matrix in the element-wise division.
    Returns:
    @@ -2898,7 +2898,7 @@

    det

    Computes the determinant of a square matrix.
    Specified by:
    -
    det in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    det in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Returns:
    The determinant of this matrix.
    Throws:
    @@ -2915,7 +2915,7 @@

    fib

    Computes the Frobenius inner product of two matrices.
    Specified by:
    -
    fib in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    fib in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    B - Second matrix in the Frobenius inner product
    Returns:
    @@ -2934,7 +2934,7 @@

    fib

    Computes the Frobenius inner product of two matrices.
    Specified by:
    -
    fib in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    fib in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    B - Second matrix in the Frobenius inner product
    Returns:
    @@ -2953,7 +2953,7 @@

    fib

    Computes the Frobenius inner product of two matrices.
    Specified by:
    -
    fib in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    fib in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    B - Second matrix in the Frobenius inner product
    Returns:
    @@ -2972,7 +2972,7 @@

    fib

    Computes the Frobenius inner product of two matrices.
    Specified by:
    -
    fib in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    fib in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    B - Second matrix in the Frobenius inner product
    Returns:
    @@ -2991,7 +2991,7 @@

    sumCols

    Sums together the columns of a matrix as if each column was a column vector.
    Specified by:
    -
    sumCols in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    sumCols in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Returns:
    The result of summing together all columns of the matrix as column vectors. If this matrix is an m-by-n matrix, then the result will be a vectors of length m.
    @@ -3007,7 +3007,7 @@

    sumRows

    Sums together the rows of a matrix as if each row was a row vector.
    Specified by:
    -
    sumRows in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    sumRows in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Returns:
    The result of summing together all rows of the matrix as row vectors. If this matrix is an m-by-n matrix, then the result will be a vector of length n.
    @@ -3024,7 +3024,7 @@

    addToEachCol

    treated as if it were a column vector.
    Specified by:
    -
    addToEachCol in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    addToEachCol in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    b - Vector to add to each column of this matrix.
    Returns:
    @@ -3044,7 +3044,7 @@

    addToEachCol

    treated as if it were a column vector.
    Specified by:
    -
    addToEachCol in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    addToEachCol in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    b - Vector to add to each column of this matrix.
    Returns:
    @@ -3062,7 +3062,7 @@

    addToEachCol

    treated as if it were a column vector.
    Specified by:
    -
    addToEachCol in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    addToEachCol in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    b - Vector to add to each column of this matrix.
    Returns:
    @@ -3080,7 +3080,7 @@

    addToEachCol

    treated as if it were a column vector.
    Specified by:
    -
    addToEachCol in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    addToEachCol in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    b - Vector to add to each column of this matrix.
    Returns:
    @@ -3098,7 +3098,7 @@

    addToEachRow

    treated as if it were a row vector for this operation.
    Specified by:
    -
    addToEachRow in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    addToEachRow in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    b - Vector to add to each row of this matrix.
    Returns:
    @@ -3116,7 +3116,7 @@

    addToEachRow

    treated as if it were a row vector for this operation.
    Specified by:
    -
    addToEachRow in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    addToEachRow in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    b - Vector to add to each row of this matrix.
    Returns:
    @@ -3134,7 +3134,7 @@

    addToEachRow

    treated as if it were a row vector for this operation.
    Specified by:
    -
    addToEachRow in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    addToEachRow in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    b - Vector to add to each row of this matrix.
    Returns:
    @@ -3152,7 +3152,7 @@

    addToEachRow

    treated as if it were a row vector for this operation.
    Specified by:
    -
    addToEachRow in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    addToEachRow in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    b - Vector to add to each row of this matrix.
    Returns:
    @@ -3170,7 +3170,7 @@

    stack

    Also see MatrixOperationsMixin.stack(Matrix, int) and augment(Matrix).
    Specified by:
    -
    stack in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    stack in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    B - Matrix to stack to this matrix.
    Returns:
    @@ -3190,7 +3190,7 @@

    stack

    Also see MatrixOperationsMixin.stack(Matrix, int) and augment(Matrix).
    Specified by:
    -
    stack in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    stack in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    B - Matrix to stack to this matrix.
    Returns:
    @@ -3210,7 +3210,7 @@

    stack

    Also see MatrixOperationsMixin.stack(Matrix, int) and augment(Matrix).
    Specified by:
    -
    stack in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    stack in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    B - Matrix to stack to this matrix.
    Returns:
    @@ -3230,7 +3230,7 @@

    stack

    Also see MatrixOperationsMixin.stack(Matrix, int) and augment(Matrix).
    Specified by:
    -
    stack in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    stack in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    B - Matrix to stack to this matrix.
    Returns:
    @@ -3250,7 +3250,7 @@

    augment

    Also see stack(Matrix) and MatrixOperationsMixin.stack(Matrix, int).
    Specified by:
    -
    augment in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    augment in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    B - Matrix to stack to this matrix.
    Returns:
    @@ -3270,7 +3270,7 @@

    augment

    Also see stack(Matrix) and MatrixOperationsMixin.stack(Matrix, int).
    Specified by:
    -
    augment in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    augment in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    B - Matrix to stack to this matrix.
    Returns:
    @@ -3290,7 +3290,7 @@

    augment

    Also see stack(Matrix) and MatrixOperationsMixin.stack(Matrix, int).
    Specified by:
    -
    augment in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    augment in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    B - Matrix to stack to this matrix.
    Returns:
    @@ -3310,7 +3310,7 @@

    augment

    Also see stack(Matrix) and MatrixOperationsMixin.stack(Matrix, int).
    Specified by:
    -
    augment in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    augment in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    B - Matrix to stack to this matrix.
    Returns:
    @@ -3331,7 +3331,7 @@

    stack

    Also see MatrixOperationsMixin.stack(Vector, int) and augment(Vector).
    Specified by:
    -
    stack in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    stack in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    b - Vector to stack to this matrix.
    Returns:
    @@ -3353,7 +3353,7 @@

    stack

    Also see MatrixOperationsMixin.stack(CooVector, int) and augment(CooVector).
    Specified by:
    -
    stack in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    stack in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    b - Vector to stack to this matrix.
    Returns:
    @@ -3375,7 +3375,7 @@

    stack

    Also see MatrixOperationsMixin.stack(CVector, int) and augment(CVector).
    Specified by:
    -
    stack in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    stack in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    b - Vector to stack to this matrix.
    Returns:
    @@ -3397,7 +3397,7 @@

    stack

    Also see MatrixOperationsMixin.stack(CooCVector, int) and augment(CooCVector).
    Specified by:
    -
    stack in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    stack in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    b - Vector to stack to this matrix.
    Returns:
    @@ -3420,7 +3420,7 @@

    augment

    Also see stack(Vector) and MatrixOperationsMixin.stack(Vector, int).
    Specified by:
    -
    augment in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    augment in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    b - vector to augment to this matrix.
    Returns:
    @@ -3442,7 +3442,7 @@

    augment

    Also see stack(CooVector) and MatrixOperationsMixin.stack(CooVector, int).
    Specified by:
    -
    augment in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    augment in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    b - vector to augment to this matrix.
    Returns:
    @@ -3464,7 +3464,7 @@

    augment

    Also see stack(CVector) and MatrixOperationsMixin.stack(CVector, int).
    Specified by:
    -
    augment in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    augment in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    b - vector to augment to this matrix.
    Returns:
    @@ -3486,7 +3486,7 @@

    augment

    Also see stack(CooCVector) and MatrixOperationsMixin.stack(CooCVector, int).
    Specified by:
    -
    augment in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    augment in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    b - vector to augment to this matrix.
    Returns:
    @@ -3505,7 +3505,7 @@

    getRow

    Get the row of this matrix at the specified index.
    Specified by:
    -
    getRow in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    getRow in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    rowIdx - Index of row to get.
    Returns:
    @@ -3543,7 +3543,7 @@

    getCol

    Get the column of this matrix at the specified index.
    Specified by:
    -
    getCol in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    getCol in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    colIdx - Index of column to get.
    Returns:
    @@ -3564,7 +3564,7 @@

    getColBelow

    Get a specified column of this matrix at and below a specified row.
    Specified by:
    -
    getColBelow in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    getColBelow in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    rowStart - Index of the row to begin at.
    colIdx - Index of column to get.
    @@ -3587,7 +3587,7 @@

    getCol

    Gets a specified column of this matrix between rowStart (inclusive) and rowEnd (exclusive).
    Specified by:
    -
    getCol in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    getCol in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    colIdx - Index of the column of this matrix to get.
    rowStart - Starting row of the column (inclusive).
    @@ -3611,7 +3611,7 @@

    getRowAfter

    Get a specified row of this matrix at and after a specified column.
    Specified by:
    -
    getRowAfter in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    getRowAfter in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Parameters:
    colStart - Index of the row to begin at.
    rowIdx - Index of the row to get.
    @@ -3651,7 +3651,7 @@

    trace

    Same as tr()
    Specified by:
    -
    trace in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    trace in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Returns:
    The trace of this matrix.
    Throws:
    @@ -3669,7 +3669,7 @@

    tr

    Same as trace().
    Specified by:
    -
    tr in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    tr in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Returns:
    The trace of this matrix.
    Throws:
    @@ -3686,7 +3686,7 @@

    getDiag

    Extracts the diagonal elements of this matrix and returns them as a vector.
    Specified by:
    -
    getDiag in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    getDiag in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Returns:
    A vector containing the diagonal entries of this matrix.
    @@ -3702,7 +3702,7 @@

    H

    a real matrix, this is equivalent to the standard transpose.
    Specified by:
    -
    H in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    H in interface MatrixOperationsMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Returns:
    The conjugate transpose of this matrix.
    @@ -3961,7 +3961,7 @@

    get

    Gets the element in this tensor at the specified indices.
    Specified by:
    -
    get in interface MatrixMixin<Matrix,Matrix,CooMatrix,CMatrix,Double,Vector,Vector>
    +
    get in interface MatrixMixin<Matrix,Matrix,CooMatrix,CMatrix,CooCMatrix,Double,Vector,Vector>
    Specified by:
    get in interface TensorOperationsMixin<Matrix,Matrix,CMatrix,CMatrix,Matrix,Double>
    Overrides:
    diff --git a/docs/org/flag4j/arrays/dense/Tensor.html b/docs/org/flag4j/arrays/dense/Tensor.html index b4b3cce59..35e794a50 100644 --- a/docs/org/flag4j/arrays/dense/Tensor.html +++ b/docs/org/flag4j/arrays/dense/Tensor.html @@ -1,11 +1,11 @@ - + Tensor - + @@ -328,14 +328,19 @@

    Method Summary

    Converts this tensor to an equivalent matrix.
    - - + +
    toMatrix(Shape matShape)
    -
    Formats this tensor as a human-readable string.
    +
    Converts this tensor to a matrix with the specified shape.
    - - + +
    +
    Formats this tensor as a human-readable string.
    +
    + + +
    Converts this tensor to an equivalent vector.
    @@ -352,7 +357,7 @@

    Methods inherited from cl clone, finalize, getClass, notify, notifyAll, wait, wait, wait

    Methods inherited from interface org.flag4j.core.TensorExclusiveMixin

    -add, elemDiv, elemMult, sub, tensorDot, tensorDot, tensorInv, transpose, transpose
    +add, elemDiv, elemMult, getRank, sub, tensorDot, tensorDot, tensorInv, transpose, transpose

    Methods inherited from interface org.flag4j.core.TensorOperationsMixin

    transpose
    @@ -656,8 +661,6 @@

    addEq

    public void addEq(CooTensor B)
    Computes the element-wise addition of two tensors of the same rank and stores the result in this tensor.
    -
    Specified by:
    -
    addEq in interface TensorExclusiveMixin<Tensor,Tensor,CooTensor,CTensor>
    Parameters:
    B - Second tensor in the addition.
    Throws:
    @@ -901,8 +904,6 @@

    subEq

    public void subEq(CooTensor B)
    Computes the element-wise subtraction of two tensors of the same rank and stores the result in this tensor.
    -
    Specified by:
    -
    subEq in interface TensorExclusiveMixin<Tensor,Tensor,CooTensor,CTensor>
    Parameters:
    B - Second tensor in the subtraction.
    Throws:
    @@ -1027,6 +1028,21 @@

    toVector

  • +
    +

    toMatrix

    +
    +
    public Matrix toMatrix(Shape matShape)
    +
    Converts this tensor to a matrix with the specified shape.
    +
    +
    Parameters:
    +
    matShape - Shape of the resulting matrix. Must be broadcastable with the shape of this tensor.
    +
    Returns:
    +
    A matrix of shape matShape with the values of this tensor.
    +
    +
    +
    +
  • +
  • toMatrix

    diff --git a/docs/org/flag4j/arrays/dense/Vector.html b/docs/org/flag4j/arrays/dense/Vector.html index 8bef367b3..5f95fee09 100644 --- a/docs/org/flag4j/arrays/dense/Vector.html +++ b/docs/org/flag4j/arrays/dense/Vector.html @@ -1,11 +1,11 @@ - + Vector - + diff --git a/docs/org/flag4j/arrays/dense/package-summary.html b/docs/org/flag4j/arrays/dense/package-summary.html index 2b773b5f4..48364641f 100644 --- a/docs/org/flag4j/arrays/dense/package-summary.html +++ b/docs/org/flag4j/arrays/dense/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.arrays.dense - + diff --git a/docs/org/flag4j/arrays/dense/package-tree.html b/docs/org/flag4j/arrays/dense/package-tree.html index 8941f5c0c..6ac534fda 100644 --- a/docs/org/flag4j/arrays/dense/package-tree.html +++ b/docs/org/flag4j/arrays/dense/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.arrays.dense Class Hierarchy - + @@ -63,14 +63,14 @@

    Class Hierarchy

    Fields inherited from class org.flag4j.core.sparse_base.SparseTensorBase

    -indices, nonZeroEntries
    +indices, nnz

    Fields inherited from class org.flag4j.core.TensorBase

    DEFAULT_ROUND_TO_ZERO_THRESHOLD, entries, shape
    @@ -459,270 +459,280 @@

    Method Summary

    Computes the Frobenius inner product of two matrices.
    -
    flatten(int axis)
    +
    +
    Flattens tensor to single dimension.
    +
    + +
    flatten(int axis)
    +
    Flattens a tensor along the specified axis.
    -
    static CooCMatrix
    - -
    +
    static CooCMatrix
    + +
    Constructs a sparse COO matrix from a dense matrix.
    - -
    get(int... indices)
    -
    -
    Gets the element in this tensor at the specified indices.
    -
    - -
    getCol(int j)
    + +
    get(int... indices)
    -
    Get the column of this matrix at the specified index.
    +
    Gets the element in this tensor at the specified indices.
    -
    getCol(int colIdx, - int rowStart, - int rowEnd)
    +
    getCol(int j)
    -
    Gets a specified column of this matrix between rowStart (inclusive) and rowEnd (exclusive).
    +
    Get the column of this matrix at the specified index.
    -
    getColBelow(int rowStart, - int j)
    +
    getCol(int colIdx, + int rowStart, + int rowEnd)
    -
    Get a specified column of this matrix at and below a specified row.
    +
    Gets a specified column of this matrix between rowStart (inclusive) and rowEnd (exclusive).
    - +
    getColBelow(int rowStart, + int j)
    -
    Extracts the diagonal elements of this matrix and returns them as a vector.
    +
    Get a specified column of this matrix at and below a specified row.
    -
    getRow(int i)
    +
    -
    Get the row of this matrix at the specified index.
    +
    Extracts the diagonal elements of this matrix and returns them as a vector.
    -
    getRowAfter(int colStart, - int i)
    +
    getRow(int i)
    -
    Get a specified row of this matrix at and after a specified column.
    +
    Get the row of this matrix at the specified index.
    -
    protected CooCMatrix
    - + +
    getRowAfter(int colStart, + int i)
    +
    Get a specified row of this matrix at and after a specified column.
    +
    +
    protected CooCMatrix
    + +
    Simply returns a reference of this tensor.
    - -
    getSlice(int rowStart, + +
    getSlice(int rowStart, int rowEnd, int colStart, int colEnd)
    -
    -
    Gets a specified slice of this matrix.
    -
    - -
    H()
    -
    Computes the conjugate transpose of this tensor.
    +
    Gets a specified slice of this matrix.
    - +
    H()
    Computes the conjugate transpose of this tensor.
    -
    boolean
    - + +
    -
    Checks if a matrix is anti-Hermitian.
    +
    Computes the conjugate transpose of this tensor.
    boolean
    - +
    -
    Checks if this matrix is diagonal.
    +
    Checks if a matrix is anti-Hermitian.
    boolean
    - +
    -
    Checks if a matrix has full rank.
    +
    Checks if this matrix is diagonal.
    boolean
    - +
    -
    Checks if a matrix is Hermitian.
    +
    Checks if a matrix has full rank.
    boolean
    -
    isI()
    +
    -
    Checks if this matrix is the identity matrix.
    +
    Checks if a matrix is Hermitian.
    boolean
    - +
    isI()
    -
    Checks if a matrix is invertible.
    - Also see isSingular().
    +
    Checks if this matrix is the identity matrix.
    boolean
    - +
    -
    Checks if a matrix is singular.
    +
    Checks if a matrix is invertible.
    + Also see isSingular().
    boolean
    - +
    -
    Checks if this matrix is square.
    +
    Checks if a matrix is singular.
    boolean
    - +
    -
    Checks if this matrix is triangular (i.e.
    +
    Checks if this matrix is square.
    boolean
    - +
    -
    Checks if this matrix is lower triangular.
    +
    Checks if this matrix is triangular (i.e.
    boolean
    - +
    -
    Checks if this matrix is upper triangular.
    +
    Checks if this matrix is lower triangular.
    boolean
    - +
    -
    Checks if this matrix is unitary.
    +
    Checks if this matrix is upper triangular.
    boolean
    - +
    +
    Checks if this matrix is unitary.
    +
    +
    boolean
    + +
    Checks if a matrix can be represented as a vector.
    -
    protected CooMatrix
    -
    makeRealTensor(Shape shape, +
    protected CooMatrix
    +
    makeRealTensor(Shape shape, double[] entries, int[][] indices)
    -
    +
    A factory for creating a real sparse tensor.
    -
    protected CooCMatrix
    -
    makeTensor(Shape shape, +
    protected CooCMatrix
    +
    makeTensor(Shape shape, CNumber[] entries, int[][] indices)
    -
    +
    A factory for creating a complex sparse tensor.
    -
    int
    - -
    +
    int
    + +
    Computes the rank of this matrix (i.e.
    - - -
    + + +
    Computes the matrix multiplication between two matrices.
    - - -
    + + +
    Computes matrix-vector multiplication.
    - - -
    + + +
    Computes the matrix multiplication between two matrices.
    - - -
    + + +
    Computes matrix-vector multiplication.
    - - -
    + + +
    Computes the matrix multiplication between two matrices.
    - - -
    + + +
    Computes the matrix-vector multiplication.
    - - -
    + + +
    Computes the matrix multiplication between two matrices.
    - - -
    + + +
    Computes matrix-vector multiplication.
    + + +
    +
    Computes the matrix multiplication between two matrices.
    +
    - +
    Computes the matrix multiplication between two matrices.
    - +
    -
    Computes the matrix multiplication between two matrices.
    +
    Multiplies this matrix with the transpose of the B tensor as if by + {this.mult(B.T()).
    - +
    Multiplies this matrix with the transpose of the B tensor as if by - {this.mult(B.T()).
    + this.mult(B.T()).
    - +
    Multiplies this matrix with the transpose of the B tensor as if by this.mult(B.T()).
    - +
    Multiplies this matrix with the transpose of the B tensor as if by this.mult(B.T()).
    - - +
    int
    +
    -
    Multiplies this matrix with the transpose of the B tensor as if by - this.mult(B.T()).
    +
    Gets the number of columns in this matrix.
    int
    - +
    -
    Gets the number of columns in this matrix.
    +
    Gets the number of rows in this matrix.
    -
    int
    - + +
    pow(int exponent)
    -
    Gets the number of rows in this matrix.
    +
    Computes the matrix power with a given exponent.
    - -
    pow(int exponent)
    + +
    removeCol(int colIndex)
    -
    Computes the matrix power with a given exponent.
    +
    Removes a specified column from this matrix.
    -
    removeCol(int colIndex)
    +
    removeCols(int... colIndices)
    -
    Removes a specified column from this matrix.
    +
    Removes a specified set of columns from this matrix.
    -
    removeCols(int... colIndices)
    +
    removeRow(int rowIndex)
    -
    Removes a specified set of columns from this matrix.
    +
    Removes a specified row from this matrix.
    -
    removeRow(int rowIndex)
    +
    removeRows(int... rowIndices)
    -
    Removes a specified row from this matrix.
    +
    Removes a specified set of rows from this matrix.
    -
    removeRows(int... rowIndices)
    +
    reshape(Shape newShape)
    -
    Removes a specified set of rows from this matrix.
    +
    Copies and reshapes matrix if possible.
    set(double value, @@ -1074,7 +1084,7 @@

    Method Summary

    +abs, argMax, argMin, conj, div, div, isComplex, isOnes, isReal, isZeros, max, maxAbs, min, minAbs, mult, mult, nonZeroEntries, recip, reshape, round, round, roundToZero, roundToZero, sqrt, sum, toRealSafe

    Methods inherited from class org.flag4j.core.sparse_base.SparseTensorBase

    density, sparsity
    @@ -1504,7 +1514,7 @@

    numRows

    Gets the number of rows in this matrix.
    Specified by:
    -
    numRows in interface MatrixMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    numRows in interface MatrixMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Returns:
    The number of rows in this matrix.
    @@ -1519,7 +1529,7 @@

    numCols

    Gets the number of columns in this matrix.
    Specified by:
    -
    numCols in interface MatrixMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    numCols in interface MatrixMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Returns:
    The number of columns in this matrix.
    @@ -1534,7 +1544,7 @@

    shape

    Gets the shape of this matrix.
    Specified by:
    -
    shape in interface MatrixMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    shape in interface MatrixMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Returns:
    The shape of this matrix.
    @@ -1549,7 +1559,7 @@

    add

    Computes the element-wise addition between two tensors of the same rank.
    Specified by:
    -
    add in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    add in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Specified by:
    add in interface TensorOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CMatrix,CooMatrix,CNumber>
    Parameters:
    @@ -1604,7 +1614,7 @@

    sub

    Computes the element-wise subtraction between two tensors of the same rank.
    Specified by:
    -
    sub in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    sub in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Specified by:
    sub in interface TensorOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CMatrix,CooMatrix,CNumber>
    Parameters:
    @@ -1689,7 +1699,7 @@

    get

    Gets the element in this tensor at the specified indices.
    Specified by:
    -
    get in interface MatrixMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    get in interface MatrixMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Specified by:
    get in interface TensorOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CMatrix,CooMatrix,CNumber>
    Parameters:
    @@ -1710,7 +1720,7 @@

    copy

    Creates a copy of this tensor.
    Specified by:
    -
    copy in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    copy in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Specified by:
    copy in interface TensorOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CMatrix,CooMatrix,CNumber>
    Returns:
    @@ -1727,7 +1737,7 @@

    elemMult

    Computes the element-wise multiplication between two tensors.
    Specified by:
    -
    elemMult in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    elemMult in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Specified by:
    elemMult in interface TensorOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CMatrix,CooMatrix,CNumber>
    Parameters:
    @@ -1748,7 +1758,7 @@

    elemDiv

    Computes the element-wise division between two tensors.
    Specified by:
    -
    elemDiv in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    elemDiv in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Specified by:
    elemDiv in interface TensorOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CMatrix,CooMatrix,CNumber>
    Parameters:
    @@ -2021,7 +2031,7 @@

    add

    Computes the element-wise addition between two matrices.
    Specified by:
    -
    add in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    add in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Second matrix in the addition.
    Returns:
    @@ -2040,7 +2050,7 @@

    add

    Computes the element-wise addition between two tensors of the same rank.
    Specified by:
    -
    add in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    add in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Second tensor in the addition.
    Returns:
    @@ -2059,7 +2069,7 @@

    add

    Computes the element-wise addition between two tensors of the same rank.
    Specified by:
    -
    add in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    add in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Second tensor in the addition.
    Returns:
    @@ -2078,7 +2088,7 @@

    add

    Computes the element-wise addition between two tensors of the same rank.
    Specified by:
    -
    add in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    add in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Second tensor in the addition.
    Returns:
    @@ -2097,7 +2107,7 @@

    add

    Computes the element-wise addition between two tensors of the same rank.
    Specified by:
    -
    add in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    add in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Second tensor in the addition.
    Returns:
    @@ -2116,7 +2126,7 @@

    sub

    Computes the element-wise subtraction of two tensors of the same rank.
    Specified by:
    -
    sub in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    sub in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Second tensor in the subtraction.
    Returns:
    @@ -2135,7 +2145,7 @@

    sub

    Computes the element-wise subtraction of two tensors of the same rank.
    Specified by:
    -
    sub in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    sub in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Second tensor in the subtraction.
    Returns:
    @@ -2154,7 +2164,7 @@

    sub

    Computes the element-wise subtraction of two tensors of the same rank.
    Specified by:
    -
    sub in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    sub in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Second tensor in the subtraction.
    Returns:
    @@ -2173,7 +2183,7 @@

    sub

    Computes the element-wise subtraction of two tensors of the same rank.
    Specified by:
    -
    sub in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    sub in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Second tensor in the subtraction.
    Returns:
    @@ -2192,7 +2202,7 @@

    sub

    Computes the element-wise subtraction of two tensors of the same rank.
    Specified by:
    -
    sub in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    sub in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Second tensor in the subtraction.
    Returns:
    @@ -2211,7 +2221,7 @@

    mult

    Computes the matrix multiplication between two matrices.
    Specified by:
    -
    mult in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    mult in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Second matrix in the matrix multiplication.
    Returns:
    @@ -2231,7 +2241,7 @@

    mult

    Computes the matrix-vector multiplication.
    Specified by:
    -
    mult in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    mult in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    b - Vector to multiply this matrix to.
    Returns:
    @@ -2255,7 +2265,7 @@

    multTranspose

    this.mult(B.T()).
    Specified by:
    -
    multTranspose in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    multTranspose in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - The second matrix in the multiplication and the matrix to transpose/
    Returns:
    @@ -2276,7 +2286,7 @@

    multTranspose

    this.mult(B.T()).
    Specified by:
    -
    multTranspose in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    multTranspose in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - The second matrix in the multiplication and the matrix to transpose/
    Returns:
    @@ -2297,7 +2307,7 @@

    multTranspose

    this.mult(B.T()).
    Specified by:
    -
    multTranspose in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    multTranspose in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - The second matrix in the multiplication and the matrix to transpose/
    Returns:
    @@ -2318,7 +2328,7 @@

    multTranspose

    this.mult(B.T()).
    Specified by:
    -
    multTranspose in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    multTranspose in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - The second matrix in the multiplication and the matrix to transpose/
    Returns:
    @@ -2337,7 +2347,7 @@

    pow

    faster.
    Specified by:
    -
    pow in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    pow in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    exponent - The exponent in the matrix power.
    Returns:
    @@ -2354,7 +2364,7 @@

    elemMult

    Computes the element-wise multiplication (Hadamard product) between two matrices.
    Specified by:
    -
    elemMult in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    elemMult in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Second matrix in the element-wise multiplication.
    Returns:
    @@ -2373,7 +2383,7 @@

    elemMult

    Computes the element-wise multiplication (Hadamard product) between two matrices.
    Specified by:
    -
    elemMult in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    elemMult in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Second matrix in the element-wise multiplication.
    Returns:
    @@ -2392,7 +2402,7 @@

    elemMult

    Computes the element-wise multiplication (Hadamard product) between two matrices.
    Specified by:
    -
    elemMult in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    elemMult in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Second matrix in the element-wise multiplication.
    Returns:
    @@ -2411,7 +2421,7 @@

    elemDiv

    Computes the element-wise division between two matrices.
    Specified by:
    -
    elemDiv in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    elemDiv in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Second matrix in the element-wise division.
    Returns:
    @@ -2433,7 +2443,7 @@

    det

    WARNING: Currently, this method will convert this matrix to a dense matrix.

    Specified by:
    -
    det in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    det in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Returns:
    The determinant of this matrix.
    Throws:
    @@ -2450,7 +2460,7 @@

    fib

    Computes the Frobenius inner product of two matrices.
    Specified by:
    -
    fib in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    fib in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Second matrix in the Frobenius inner product
    Returns:
    @@ -2469,7 +2479,7 @@

    fib

    Computes the Frobenius inner product of two matrices.
    Specified by:
    -
    fib in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    fib in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Second matrix in the Frobenius inner product
    Returns:
    @@ -2488,7 +2498,7 @@

    fib

    Computes the Frobenius inner product of two matrices.
    Specified by:
    -
    fib in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    fib in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Second matrix in the Frobenius inner product
    Returns:
    @@ -2507,7 +2517,7 @@

    fib

    Computes the Frobenius inner product of two matrices.
    Specified by:
    -
    fib in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    fib in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Second matrix in the Frobenius inner product
    Returns:
    @@ -2526,7 +2536,7 @@

    sumCols

    Sums together the columns of a matrix as if each column was a column vector.
    Specified by:
    -
    sumCols in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    sumCols in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Returns:
    The result of summing together all columns of the matrix as column vectors. If this matrix is an m-by-n matrix, then the result will be a vectors of length m.
    @@ -2542,7 +2552,7 @@

    sumRows

    Sums together the rows of a matrix as if each row was a row vector.
    Specified by:
    -
    sumRows in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    sumRows in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Returns:
    The result of summing together all rows of the matrix as row vectors. If this matrix is an m-by-n matrix, then the result will be a vector of length n.
    @@ -2559,7 +2569,7 @@

    addToEachCol

    treated as if it were a column vector.
    Specified by:
    -
    addToEachCol in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    addToEachCol in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    b - Vector to add to each column of this matrix.
    Returns:
    @@ -2577,7 +2587,7 @@

    addToEachCol

    treated as if it were a column vector.
    Specified by:
    -
    addToEachCol in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    addToEachCol in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    b - Vector to add to each column of this matrix.
    Returns:
    @@ -2595,7 +2605,7 @@

    addToEachCol

    treated as if it were a column vector.
    Specified by:
    -
    addToEachCol in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    addToEachCol in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    b - Vector to add to each column of this matrix.
    Returns:
    @@ -2613,7 +2623,7 @@

    addToEachCol

    treated as if it were a column vector.
    Specified by:
    -
    addToEachCol in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    addToEachCol in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    b - Vector to add to each column of this matrix.
    Returns:
    @@ -2631,7 +2641,7 @@

    addToEachRow

    treated as if it were a row vector for this operation.
    Specified by:
    -
    addToEachRow in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    addToEachRow in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    b - Vector to add to each row of this matrix.
    Returns:
    @@ -2649,7 +2659,7 @@

    addToEachRow

    treated as if it were a row vector for this operation.
    Specified by:
    -
    addToEachRow in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    addToEachRow in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    b - Vector to add to each row of this matrix.
    Returns:
    @@ -2667,7 +2677,7 @@

    addToEachRow

    treated as if it were a row vector for this operation.
    Specified by:
    -
    addToEachRow in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    addToEachRow in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    b - Vector to add to each row of this matrix.
    Returns:
    @@ -2685,7 +2695,7 @@

    addToEachRow

    treated as if it were a row vector for this operation.
    Specified by:
    -
    addToEachRow in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    addToEachRow in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    b - Vector to add to each row of this matrix.
    Returns:
    @@ -2703,7 +2713,7 @@

    stack

    Also see MatrixOperationsMixin.stack(Matrix, int) and augment(Matrix).
    Specified by:
    -
    stack in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    stack in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Matrix to stack to this matrix.
    Returns:
    @@ -2723,7 +2733,7 @@

    stack

    Also see MatrixOperationsMixin.stack(Matrix, int) and augment(Matrix).
    Specified by:
    -
    stack in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    stack in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Matrix to stack to this matrix.
    Returns:
    @@ -2743,7 +2753,7 @@

    stack

    Also see MatrixOperationsMixin.stack(Matrix, int) and augment(Matrix).
    Specified by:
    -
    stack in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    stack in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Matrix to stack to this matrix.
    Returns:
    @@ -2763,7 +2773,7 @@

    stack

    Also see MatrixOperationsMixin.stack(Matrix, int) and augment(Matrix).
    Specified by:
    -
    stack in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    stack in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Matrix to stack to this matrix.
    Returns:
    @@ -2783,7 +2793,7 @@

    augment

    Also see stack(Matrix) and MatrixOperationsMixin.stack(Matrix, int).
    Specified by:
    -
    augment in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    augment in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Matrix to stack to this matrix.
    Returns:
    @@ -2803,7 +2813,7 @@

    augment

    Also see stack(Matrix) and MatrixOperationsMixin.stack(Matrix, int).
    Specified by:
    -
    augment in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    augment in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Matrix to stack to this matrix.
    Returns:
    @@ -2823,7 +2833,7 @@

    augment

    Also see stack(Matrix) and MatrixOperationsMixin.stack(Matrix, int).
    Specified by:
    -
    augment in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    augment in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Matrix to stack to this matrix.
    Returns:
    @@ -2843,7 +2853,7 @@

    augment

    Also see stack(Matrix) and MatrixOperationsMixin.stack(Matrix, int).
    Specified by:
    -
    augment in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    augment in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Matrix to stack to this matrix.
    Returns:
    @@ -2864,7 +2874,7 @@

    stack

    Also see MatrixOperationsMixin.stack(Vector, int) and augment(Vector).
    Specified by:
    -
    stack in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    stack in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    b - Vector to stack to this matrix.
    Returns:
    @@ -2886,7 +2896,7 @@

    stack

    Also see MatrixOperationsMixin.stack(CooVector, int) and augment(CooVector).
    Specified by:
    -
    stack in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    stack in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    b - Vector to stack to this matrix.
    Returns:
    @@ -2908,7 +2918,7 @@

    stack

    Also see MatrixOperationsMixin.stack(CVector, int) and augment(CVector).
    Specified by:
    -
    stack in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    stack in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    b - Vector to stack to this matrix.
    Returns:
    @@ -2930,7 +2940,7 @@

    stack

    Also see MatrixOperationsMixin.stack(CooCVector, int) and augment(CooCVector).
    Specified by:
    -
    stack in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    stack in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    b - Vector to stack to this matrix.
    Returns:
    @@ -2953,7 +2963,7 @@

    augment

    Also see stack(Vector) and MatrixOperationsMixin.stack(Vector, int).
    Specified by:
    -
    augment in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    augment in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    b - vector to augment to this matrix.
    Returns:
    @@ -2975,7 +2985,7 @@

    augment

    Also see stack(CooVector) and MatrixOperationsMixin.stack(CooVector, int).
    Specified by:
    -
    augment in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    augment in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    b - vector to augment to this matrix.
    Returns:
    @@ -2997,7 +3007,7 @@

    augment

    Also see stack(CVector) and MatrixOperationsMixin.stack(CVector, int).
    Specified by:
    -
    augment in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    augment in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    b - vector to augment to this matrix.
    Returns:
    @@ -3019,7 +3029,7 @@

    augment

    Also see stack(CooCVector) and MatrixOperationsMixin.stack(CooCVector, int).
    Specified by:
    -
    augment in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    augment in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    b - vector to augment to this matrix.
    Returns:
    @@ -3038,7 +3048,7 @@

    getRow

    Get the row of this matrix at the specified index.
    Specified by:
    -
    getRow in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    getRow in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    i - Index of row to get.
    Returns:
    @@ -3055,7 +3065,7 @@

    getCol

    Get the column of this matrix at the specified index.
    Specified by:
    -
    getCol in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    getCol in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    j - Index of column to get.
    Returns:
    @@ -3074,7 +3084,7 @@

    getCol

    Gets a specified column of this matrix between rowStart (inclusive) and rowEnd (exclusive).
    Specified by:
    -
    getCol in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    getCol in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    colIdx - Index of the column of this matrix to get.
    rowStart - Starting row of the column (inclusive).
    @@ -3111,7 +3121,7 @@

    toVector

    it will be flattened then converted to a vector.
    Specified by:
    -
    toVector in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    toVector in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Returns:
    A vector equivalent to this matrix.
    @@ -3168,7 +3178,7 @@

    getSlice

    Gets a specified slice of this matrix.
    Specified by:
    -
    getSlice in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    getSlice in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    rowStart - Starting row index of slice (inclusive).
    rowEnd - Ending row index of slice (exclusive).
    @@ -3192,7 +3202,7 @@

    getColBelow

    Get a specified column of this matrix at and below a specified row.
    Specified by:
    -
    getColBelow in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    getColBelow in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    rowStart - Index of the row to begin at.
    j - Index of column to get.
    @@ -3214,7 +3224,7 @@

    getRowAfter

    Get a specified row of this matrix at and after a specified column.
    Specified by:
    -
    getRowAfter in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    getRowAfter in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    colStart - Index of the row to begin at.
    i - Index of the row to get.
    @@ -3238,7 +3248,7 @@

    setCol

    Specified by:
    setCol in interface ComplexMatrixMixin<CooCMatrix>
    Specified by:
    -
    setCol in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    setCol in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    values - Vector containing the new values for the matrix.
    j - Index of the column of this matrix to set.
    @@ -3261,7 +3271,7 @@

    trace

    Same as tr().
    Specified by:
    -
    trace in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    trace in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Returns:
    The trace of this matrix.
    Throws:
    @@ -3279,7 +3289,7 @@

    tr

    Same as trace().
    Specified by:
    -
    tr in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    tr in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Returns:
    The trace of this matrix.
    Throws:
    @@ -3296,7 +3306,7 @@

    getDiag

    Extracts the diagonal elements of this matrix and returns them as a vector.
    Specified by:
    -
    getDiag in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    getDiag in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Returns:
    A vector containing the diagonal entries of this matrix.
    @@ -3311,7 +3321,7 @@

    mult

    Computes the matrix multiplication between two matrices.
    Specified by:
    -
    mult in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    mult in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Second matrix in the matrix multiplication.
    Returns:
    @@ -3331,7 +3341,7 @@

    mult

    Computes the matrix multiplication between two matrices.
    Specified by:
    -
    mult in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    mult in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Second matrix in the matrix multiplication.
    Returns:
    @@ -3350,7 +3360,7 @@

    mult

    Computes matrix-vector multiplication.
    Specified by:
    -
    mult in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    mult in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    b - Vector in the matrix-vector multiplication.
    Returns:
    @@ -3369,7 +3379,7 @@

    mult

    Computes matrix-vector multiplication.
    Specified by:
    -
    mult in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    mult in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    b - Vector in the matrix-vector multiplication.
    Returns:
    @@ -3388,7 +3398,7 @@

    mult

    Computes matrix-vector multiplication.
    Specified by:
    -
    mult in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    mult in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    b - Vector in the matrix-vector multiplication.
    Returns:
    @@ -3407,7 +3417,7 @@

    mult

    Computes the matrix multiplication between two matrices.
    Specified by:
    -
    mult in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    mult in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Second matrix in the matrix multiplication.
    Returns:
    @@ -3426,7 +3436,7 @@

    mult

    Computes the matrix multiplication between two matrices.
    Specified by:
    -
    mult in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    mult in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Second matrix in the matrix multiplication.
    Returns:
    @@ -3445,7 +3455,7 @@

    mult

    Computes the matrix multiplication between two matrices.
    Specified by:
    -
    mult in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    mult in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Second matrix in the matrix multiplication.
    Returns:
    @@ -3470,7 +3480,7 @@

    H

    Specified by:
    H in interface ComplexTensorMixin<CooCMatrix,CooMatrix>
    Specified by:
    -
    H in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    +
    H in interface MatrixOperationsMixin<CooCMatrix,CMatrix,CooCMatrix,CooCMatrix,CooCMatrix,CNumber,CooCVector,CVector>
    Returns:
    The complex transpose of this tensor.
    @@ -4294,6 +4304,41 @@

    set

  • +
    +

    reshape

    +
    +
    public CooCMatrix reshape(Shape newShape)
    +
    Copies and reshapes matrix if possible. The total number of entries in this matrix must match the total number of entries + in the reshaped matrix.
    +
    +
    Specified by:
    +
    reshape in interface TensorManipulationsMixin<CooCMatrix>
    +
    Parameters:
    +
    newShape - Shape of the new matrix.
    +
    Returns:
    +
    A matrix which is equivalent to this matrix but with the specified shape.
    +
    Throws:
    +
    IllegalArgumentException - If this matrix cannot be reshaped to the specified dimensions.
    +
    +
    +
    +
  • +
  • +
    +

    flatten

    +
    +
    public CooCMatrix flatten()
    +
    Flattens tensor to single dimension. To flatten tensor along a single axis.
    +
    +
    Specified by:
    +
    flatten in interface TensorManipulationsMixin<CooCMatrix>
    +
    Returns:
    +
    The flattened tensor.
    +
    +
    +
    +
  • +
  • toString

    diff --git a/docs/org/flag4j/arrays/sparse/CooCTensor.html b/docs/org/flag4j/arrays/sparse/CooCTensor.html index ff2912e8e..3ebd3deff 100644 --- a/docs/org/flag4j/arrays/sparse/CooCTensor.html +++ b/docs/org/flag4j/arrays/sparse/CooCTensor.html @@ -1,11 +1,11 @@ - + CooCTensor - + @@ -96,11 +96,12 @@

    Class CooCTensor

    Complex sparse tensor. Stored in coordinate (COO) format.
    See Also:
    @@ -120,7 +121,7 @@

    Class CooCTensor

    Field Summary

    Fields inherited from class org.flag4j.core.sparse_base.SparseTensorBase

    -indices, nonZeroEntries
    +indices, nnz

    Fields inherited from class org.flag4j.core.TensorBase

    DEFAULT_ROUND_TO_ZERO_THRESHOLD, entries, shape
    @@ -155,10 +156,16 @@

    Constructor Summary

    Creates a sparse tensor with specified shape filled with zeros.
    -
    CooCTensor(Shape shape, +
    CooCTensor(Shape shape, + List<CNumber> nonZeroEntries, + List<int[]> indices)
    +
    +
    Creates a sparse tensor with specified shape and non-zero values/indices.
    +
    +
    CooCTensor(Shape shape, CNumber[] nonZeroEntries, int[][] indices)
    -
    +
    Creates a sparse tensor with specified shape filled with zeros.
    @@ -175,18 +182,28 @@

    Method Summary

    Modifier and Type
    Method
    Description
    - -
    abs()
    + +
    add(double a)
    -
    Computes the element-wise absolute value/magnitude of a tensor.
    +
    Adds specified value to all entries of this tensor.
    -
    add(double a)
    +
    -
    Adds specified value to all entries of this tensor.
    +
    Computes the element-wise addition between two tensors of the same rank.
    +
    + + +
    +
    Computes the element-wise addition between two tensors of the same rank.
    +
    + + +
    +
    Computes the element-wise addition between two tensors of the same rank.
    - +
    Computes the element-wise addition between two tensors of the same rank.
    @@ -195,6 +212,16 @@

    Method Summary

    Adds specified value to all entries of this tensor.
    +
    void
    + +
    +
    Computes the element-wise addition of two tensors of the same rank and stores the result in this tensor.
    +
    +
    void
    + +
    +
    Computes the element-wise addition of two tensors of the same rank and stores the result in this tensor.
    +
    boolean
    allClose(CooCTensor tensor, double relTol, @@ -202,230 +229,209 @@

    Method Summary

    Checks if all entries of this tensor are close to the entries of the argument tensor.
    -
    int[]
    - -
    -
    Finds the indices of the maximum value in this tensor.
    -
    -
    int[]
    - -
    -
    Finds the indices of the minimum value in this tensor.
    -
    - +
    -
    Computes the complex conjugate of a tensor.
    +
    Creates a copy of this tensor.
    - +
    -
    Creates a copy of this tensor.
    +
    Computes the element-wise division between two tensors.
    -
    div(double divisor)
    +
    -
    Computes the scalar division of a tensor.
    +
    Computes the element-wise division between two tensors.
    - -
    div(CNumber divisor)
    + +
    -
    Computes the scalar division of a tensor.
    +
    Computes the element-wise multiplication between two tensors.
    - +
    -
    Computes the element-wise division between two tensors.
    +
    Computes the element-wise multiplication between two tensors.
    Computes the element-wise multiplication between two tensors.
    -
    boolean
    -
    equals(Object object)
    + +
    -
    Checks if an object is equal to this sparse COO tensor.
    +
    Computes the element-wise multiplication between two tensors.
    - - +
    boolean
    +
    equals(Object object)
    -
    Flattens tensor to single dimension.
    +
    Checks if an object is equal to this sparse COO tensor.
    -
    flatten(int axis)
    +
    +
    Flattens tensor to single dimension.
    +
    + +
    flatten(int axis)
    +
    Flattens a tensor along the specified axis.
    -
    static CooCTensor
    - -
    +
    static CooCTensor
    + +
    Converts a sparse CooCTensor from a dense Tensor.
    - -
    get(int... indices)
    -
    -
    Gets the element in this tensor at the specified indices.
    -
    -
    protected CooCTensor
    - + +
    get(int... indices)
    -
    Simply returns a reference of this tensor.
    +
    Gets the element in this tensor at the specified indices.
    - -
    H()
    +
    protected CooCTensor
    +
    -
    Computes the conjugate transpose of this tensor.
    +
    Simply returns a reference of this tensor.
    - +
    H()
    Computes the conjugate transpose of this tensor.
    -
    boolean
    - + +
    H(int... axes)
    -
    Checks if this tensor contains at least one complex entry.
    +
    Computes the conjugate transpose of this tensor.
    -
    boolean
    - + +
    H(int axis1, + int axis2)
    -
    Checks if this tensor only contains ones.
    +
    Computes the transpose of a tensor.
    -
    boolean
    - + +
    -
    Checks if this tensor has only real valued entries.
    -
    -
    boolean
    - -
    -
    Checks if this tensor only contains zeros.
    +
    Computes the conjugate transpose of this tensor.
    -
    protected CooTensor
    -
    makeRealTensor(Shape shape, +
    protected CooTensor
    +
    makeRealTensor(Shape shape, double[] entries, int[][] indices)
    -
    +
    A factory for creating a real sparse tensor.
    -
    protected CooCTensor
    -
    makeTensor(Shape shape, +
    protected CooCTensor
    +
    makeTensor(Shape shape, CNumber[] entries, int[][] indices)
    -
    -
    A factory for creating a complex sparse tensor.
    -
    -
    double
    -
    max()
    -
    Finds the maximum value in this tensor.
    +
    A factory for creating a complex sparse tensor.
    -
    double
    - + +
    reshape(Shape newShape)
    -
    Finds the maximum value, in absolute value, in this tensor.
    +
    Copies and reshapes tensor if possible.
    -
    double
    -
    min()
    + +
    set(double value, + int... indices)
    -
    Finds the minimum value in this tensor.
    +
    Sets an index of this tensor to a specified value.
    -
    double
    - + +
    set(CNumber value, + int... indices)
    -
    Finds the minimum value, in absolute value, in this tensor.
    +
    Sets an index of this tensor to a specified value.
    - -
    mult(double factor)
    +
    void
    +
    -
    Computes scalar multiplication of a tensor.
    +
    Sorts the indices of this tensor in lexicographical order while maintaining the associated value for each index.
    - -
    mult(CNumber factor)
    + +
    sub(double a)
    -
    Computes scalar multiplication of a tensor.
    +
    Adds specified value to all entries of this tensor.
    - - + +
    -
    Computes the reciprocals, element-wise, of a tensor.
    +
    Computes the element-wise subtraction between two tensors of the same rank.
    - -
    reshape(int... shape)
    + +
    -
    Copies and reshapes tensor if possible.
    +
    Computes the element-wise addition between two tensors of the same rank.
    -
    reshape(Shape shape)
    +
    -
    Copies and reshapes tensor if possible.
    +
    Computes the element-wise subtraction between two tensors of the same rank.
    -
    set(double value, - int... indices)
    +
    -
    Sets an index of this tensor to a specified value.
    +
    Computes the element-wise subtraction between two tensors of the same rank.
    - -
    set(CNumber value, - int... indices)
    + +
    -
    Sets an index of this tensor to a specified value.
    +
    Subtracts a specified value from all entries of this tensor.
    void
    - +
    -
    Sorts the indices of this tensor in lexicographical order while maintaining the associated value for each index.
    +
    Computes the element-wise subtraction of two tensors of the same rank and stores the result in this tensor.
    - - +
    void
    +
    -
    Computes the element-wise square root of a tensor.
    +
    Computes the element-wise subtraction of two tensors of the same rank and stores the result in this tensor.
    - -
    sub(double a)
    + +
    T()
    -
    Adds specified value to all entries of this tensor.
    +
    Computes the transpose of a tensor.
    - +
    T(int... axes)
    -
    Computes the element-wise subtraction between two tensors of the same rank.
    +
    Computes the transpose of this tensor.
    - - + +
    T(int axis1, + int axis2)
    -
    Subtracts a specified value from all entries of this tensor.
    +
    Computes the transpose of a tensor.
    - -
    sum()
    + +
    tensorDot(CooCTensor src2, + int[] aAxes, + int[] bAxes)
    -
    Sums together all entries in the tensor.
    +
    Computes the tensor contraction of this tensor with a specified tensor over the specified set of axes.
    - -
    T()
    + +
    tensorInv(int numIndices)
    -
    Computes the transpose of a tensor.
    +
    Computes the 'inverse' of this tensor.
    Converts this sparse tensor to an equivalent dense tensor.
    - - + +
    toMatrix(Shape matShape)
    -
    Converts a complex tensor to a real matrix.
    +
    Converts this tensor to a matrix with the specified shape.
    - - + +
    -
    Converts a complex tensor to a real matrix safely.
    -
    - - -
    Computes the transpose of a tensor.
    @@ -433,7 +439,7 @@

    Method Summary

    Methods inherited from class org.flag4j.core.sparse_base.ComplexSparseTensorBase

    -nonZeroEntries, round, round, roundToZero, roundToZero
    +abs, argMax, argMin, conj, div, div, isComplex, isOnes, isReal, isZeros, max, maxAbs, min, minAbs, mult, mult, nonZeroEntries, recip, reshape, round, round, roundToZero, roundToZero, sqrt, sum, toReal, toRealSafe

    Methods inherited from class org.flag4j.core.sparse_base.SparseTensorBase

    density, sparsity
    @@ -443,6 +449,12 @@

    Methods inherit

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    +
    +

    Methods inherited from interface org.flag4j.core.ComplexTensorExclusiveMixin

    +hermTranspose, hermTranspose
    +
    +

    Methods inherited from interface org.flag4j.core.TensorExclusiveMixin

    +getRank, tensorDot, tensorDot, tensorDot, tensorInv, transpose, transpose

  • @@ -519,6 +531,23 @@

    CooCTensor

  • +
    +

    CooCTensor

    +
    +
    public CooCTensor(Shape shape, + List<CNumber> nonZeroEntries, + List<int[]> indices)
    +
    Creates a sparse tensor with specified shape and non-zero values/indices.
    +
    +
    Parameters:
    +
    shape - Shape of the tensor.
    +
    nonZeroEntries - Non-zero entries of the tensor.
    +
    indices - Indices of the non-zero entries of the tensor.
    +
    +
    +
    +
  • +
  • CooCTensor

    @@ -606,106 +635,6 @@

    allClose

  • -
    -

    isReal

    -
    -
    public boolean isReal()
    -
    Checks if this tensor has only real valued entries.
    -
    -
    Specified by:
    -
    isReal in interface ComplexTensorMixin<CooCTensor,CooTensor>
    -
    Overrides:
    -
    isReal in class ComplexSparseTensorBase<CooCTensor,CTensor,CooTensor>
    -
    Returns:
    -
    True if this tensor contains NO complex entries. Otherwise, returns false.
    -
    -
    -
    -
  • -
  • -
    -

    isComplex

    -
    -
    public boolean isComplex()
    -
    Checks if this tensor contains at least one complex entry.
    -
    -
    Specified by:
    -
    isComplex in interface ComplexTensorMixin<CooCTensor,CooTensor>
    -
    Overrides:
    -
    isComplex in class ComplexSparseTensorBase<CooCTensor,CTensor,CooTensor>
    -
    Returns:
    -
    True if this tensor contains at least one complex entry. Otherwise, returns false.
    -
    -
    -
    -
  • -
  • -
    -

    conj

    -
    -
    public CooCTensor conj()
    -
    Computes the complex conjugate of a tensor.
    -
    -
    Specified by:
    -
    conj in interface ComplexTensorMixin<CooCTensor,CooTensor>
    -
    Overrides:
    -
    conj in class ComplexSparseTensorBase<CooCTensor,CTensor,CooTensor>
    -
    Returns:
    -
    The complex conjugate of this tensor.
    -
    -
    -
    -
  • -
  • -
    -

    toReal

    -
    -
    public CooTensor toReal()
    -
    Converts a complex tensor to a real matrix. The imaginary component of any complex value will be ignored.
    -
    -
    Specified by:
    -
    toReal in interface ComplexTensorMixin<CooCTensor,CooTensor>
    -
    Overrides:
    -
    toReal in class ComplexSparseTensorBase<CooCTensor,CTensor,CooTensor>
    -
    Returns:
    -
    A tensor of the same size containing only the real components of this tensor.
    -
    See Also:
    -
    - -
    -
    -
    -
    -
  • -
  • -
    -

    toRealSafe

    -
    -
    public CooTensor toRealSafe()
    -
    Converts a complex tensor to a real matrix safely. That is, first checks if the tensor only contains real values - and then converts to a real tensor. However, if non-real value exist, then an error is thrown.
    -
    -
    Specified by:
    -
    toRealSafe in interface ComplexTensorMixin<CooCTensor,CooTensor>
    -
    Overrides:
    -
    toRealSafe in class ComplexSparseTensorBase<CooCTensor,CTensor,CooTensor>
    -
    Returns:
    -
    A tensor of the same size containing only the real components of this tensor.
    -
    Throws:
    -
    RuntimeException - If this tensor contains at least one non-real value.
    -
    See Also:
    -
    - -
    -
    -
    -
    -
  • -
  • hermTranspose

    @@ -713,6 +642,8 @@

    hermTranspose

    Computes the conjugate transpose of this tensor. In the context of a tensor, this swaps the first and last axes and takes the complex conjugate of the elements along these axes. Same as H().
    +
    Specified by:
    +
    hermTranspose in interface ComplexTensorMixin<CooCTensor,CooTensor>
    Returns:
    The complex transpose of this tensor.
    @@ -727,6 +658,8 @@

    H

    Computes the conjugate transpose of this tensor. In the context of a tensor, this swaps the first and last axes and takes the complex conjugate of the elements along these axes. Same as hermTranspose().
    +
    Specified by:
    +
    H in interface ComplexTensorMixin<CooCTensor,CooTensor>
    Returns:
    The complex transpose of this tensor.
    @@ -741,6 +674,8 @@

    set

    int... indices)
    Sets an index of this tensor to a specified value.
    +
    Specified by:
    +
    set in interface ComplexTensorMixin<CooCTensor,CooTensor>
    Parameters:
    value - Value to set.
    indices - The indices of this matrix for which to set the value.
    @@ -754,62 +689,6 @@

    set

  • -
    -

    isZeros

    -
    -
    public boolean isZeros()
    -
    Checks if this tensor only contains zeros.
    -
    -
    Specified by:
    -
    isZeros in interface TensorComparisonsMixin
    -
    Overrides:
    -
    isZeros in class ComplexSparseTensorBase<CooCTensor,CTensor,CooTensor>
    -
    Returns:
    -
    True if this tensor only contains zeros. Otherwise, returns false.
    -
    -
    -
    -
  • -
  • -
    -

    isOnes

    -
    -
    public boolean isOnes()
    -
    Checks if this tensor only contains ones.
    -
    -
    Specified by:
    -
    isOnes in interface TensorComparisonsMixin
    -
    Overrides:
    -
    isOnes in class ComplexSparseTensorBase<CooCTensor,CTensor,CooTensor>
    -
    Returns:
    -
    True if this tensor only contains ones. Otherwise, returns false.
    -
    -
    -
    -
  • -
  • -
    -

    reshape

    -
    -
    public CooCTensor reshape(int... shape)
    -
    Copies and reshapes tensor if possible. The total number of entries in this tensor must match the total number of entries - in the reshaped tensor.
    -
    -
    Specified by:
    -
    reshape in interface TensorManipulationsMixin<CooCTensor>
    -
    Overrides:
    -
    reshape in class ComplexSparseTensorBase<CooCTensor,CTensor,CooTensor>
    -
    Parameters:
    -
    shape - Shape of the new tensor.
    -
    Returns:
    -
    A tensor which is equivalent to this tensor but with the specified shape.
    -
    Throws:
    -
    IllegalArgumentException - If this tensor cannot be reshaped to the specified dimensions.
    -
    -
    -
    -
  • -
  • set

    @@ -817,6 +696,8 @@

    set

    int... indices)
    Sets an index of this tensor to a specified value.
    +
    Specified by:
    +
    set in interface TensorManipulationsMixin<CooCTensor>
    Parameters:
    value - Value to set.
    indices - The indices of this tensor for which to set the value.
    @@ -830,16 +711,14 @@

    set

    reshape

    -
    public CooCTensor reshape(Shape shape)
    +
    public CooCTensor reshape(Shape newShape)
    Copies and reshapes tensor if possible. The total number of entries in this tensor must match the total number of entries in the reshaped tensor.
    Specified by:
    reshape in interface TensorManipulationsMixin<CooCTensor>
    -
    Overrides:
    -
    reshape in class ComplexSparseTensorBase<CooCTensor,CTensor,CooTensor>
    Parameters:
    -
    shape - Shape of the new tensor.
    +
    newShape - Shape of the new tensor.
    Returns:
    A tensor which is equivalent to this tensor but with the specified shape.
    Throws:
    @@ -857,8 +736,6 @@

    flatten

    Specified by:
    flatten in interface TensorManipulationsMixin<CooCTensor>
    -
    Overrides:
    -
    flatten in class ComplexSparseTensorBase<CooCTensor,CTensor,CooTensor>
    Returns:
    The flattened tensor.
    @@ -866,63 +743,88 @@

    flatten

  • -
    -

    add

    +
    +

    tensorDot

    -
    public CooCTensor add(CooCTensor B)
    -
    Computes the element-wise addition between two tensors of the same rank.
    +
    public CTensor tensorDot(CooCTensor src2, + int[] aAxes, + int[] bAxes)
    +
    Computes the tensor contraction of this tensor with a specified tensor over the specified set of axes. That is, + computes the sum of products between the two tensors along the specified set of axes.
    +
    Specified by:
    +
    tensorDot in interface TensorExclusiveMixin<CooCTensor,CTensor,CooCTensor,CooCTensor>
    Parameters:
    -
    B - Second tensor in the addition.
    +
    src2 - Tensor to contract with this tensor.
    +
    aAxes - Axes along which to compute products for this tensor.
    +
    bAxes - Axes along which to compute products for src2 tensor.
    Returns:
    -
    The result of adding the tensor B to this tensor element-wise.
    +
    The tensor dot product over the specified axes.
    Throws:
    -
    IllegalArgumentException - If this tensor and B have different shapes.
    +
    IllegalArgumentException - If the two tensors shapes do not match along the specified axes pairwise in + aAxes and bAxes.
    +
    IllegalArgumentException - If aAxes and bAxes do not match in length, or if any of the axes + are out of bounds for the corresponding tensor.
  • -
    -

    add

    +
    +

    T

    -
    public CTensor add(double a)
    -
    Adds specified value to all entries of this tensor.
    +
    public CooCTensor T(int axis1, + int axis2)
    +
    Computes the transpose of a tensor. Same as TensorExclusiveMixin.transpose(int, int). + In the context of a tensor, this exchanges the specified axes. + Also see transpose() and + T() to exchange first and last axes.
    +
    Specified by:
    +
    T in interface TensorExclusiveMixin<CooCTensor,CTensor,CooCTensor,CooCTensor>
    Parameters:
    -
    a - Value to add to all entries of this tensor.
    +
    axis1 - First axis to exchange.
    +
    axis2 - Second axis to exchange.
    Returns:
    -
    The result of adding the specified value to each entry of this tensor.
    +
    The transpose of this tensor.
  • -
    -

    add

    +
    +

    T

    -
    public CTensor add(CNumber a)
    -
    Adds specified value to all entries of this tensor.
    +
    public CooCTensor T(int... axes)
    +
    Computes the transpose of this tensor. That is, interchanges the axes of this tensor so that it matches + the specified axes permutation. Same as TensorExclusiveMixin.transpose(int[]).
    +
    Specified by:
    +
    T in interface TensorExclusiveMixin<CooCTensor,CTensor,CooCTensor,CooCTensor>
    Parameters:
    -
    a - Value to add to all entries of this tensor.
    +
    axes - Permutation of tensor axis. If the tensor has rank N, then this must be an array of length + N which is a permutation of {0, 1, 2, ..., N-1}.
    Returns:
    -
    The result of adding the specified value to each entry of this tensor.
    +
    The transpose of this tensor with its axes permuted by the axes array.
    +
    Throws:
    +
    IllegalArgumentException - If axes is not a permutation of {1, 2, 3, ... N-1}.
  • -
    -

    sub

    +
    +

    add

    -
    public CooCTensor sub(CooCTensor B)
    -
    Computes the element-wise subtraction between two tensors of the same rank.
    +
    public CooCTensor add(CooTensor B)
    +
    Computes the element-wise addition between two tensors of the same rank.
    +
    Specified by:
    +
    add in interface TensorExclusiveMixin<CooCTensor,CTensor,CooCTensor,CooCTensor>
    Parameters:
    -
    B - Second tensor in element-wise subtraction.
    +
    B - Second tensor in the addition.
    Returns:
    -
    The result of subtracting the tensor B from this tensor element-wise.
    +
    The result of adding the tensor B to this tensor element-wise.
    Throws:
    IllegalArgumentException - If this tensor and B have different shapes.
    @@ -930,379 +832,415 @@

    sub

  • -
    -

    sub

    +
    +

    add

    -
    public CTensor sub(double a)
    -
    Adds specified value to all entries of this tensor.
    +
    public CTensor add(Tensor B)
    +
    Computes the element-wise addition between two tensors of the same rank.
    +
    Specified by:
    +
    add in interface TensorExclusiveMixin<CooCTensor,CTensor,CooCTensor,CooCTensor>
    Parameters:
    -
    a - Value to add to all entries of this tensor.
    +
    B - Second tensor in the addition.
    Returns:
    -
    The result of adding the specified value to each entry of this tensor.
    +
    The result of adding the tensor B to this tensor element-wise.
    +
    Throws:
    +
    IllegalArgumentException - If this tensor and B have different shapes.
  • -
    +

    sub

    -
    public CTensor sub(CNumber a)
    -
    Subtracts a specified value from all entries of this tensor.
    +
    public CTensor sub(Tensor B)
    +
    Computes the element-wise addition between two tensors of the same rank.
    +
    Specified by:
    +
    sub in interface TensorExclusiveMixin<CooCTensor,CTensor,CooCTensor,CooCTensor>
    Parameters:
    -
    a - Value to subtract from all entries of this tensor.
    +
    B - Second tensor in the addition.
    Returns:
    -
    The result of subtracting the specified value from each entry of this tensor.
    +
    The result of adding the tensor B to this tensor element-wise.
    +
    Throws:
    +
    IllegalArgumentException - If this tensor and B have different shapes.
  • -
    -

    mult

    +
    +

    add

    -
    public CooCTensor mult(double factor)
    -
    Computes scalar multiplication of a tensor.
    +
    public CTensor add(CTensor B)
    +
    Computes the element-wise addition between two tensors of the same rank.
    Specified by:
    -
    mult in interface TensorOperationsMixin<CooCTensor,CTensor,CooCTensor,CTensor,CooTensor,CNumber>
    -
    Overrides:
    -
    mult in class ComplexSparseTensorBase<CooCTensor,CTensor,CooTensor>
    +
    add in interface TensorExclusiveMixin<CooCTensor,CTensor,CooCTensor,CooCTensor>
    Parameters:
    -
    factor - Scalar value to multiply with tensor.
    +
    B - Second tensor in the addition.
    Returns:
    -
    The result of multiplying this tensor by the specified scalar.
    +
    The result of adding the tensor B to this tensor element-wise.
    +
    Throws:
    +
    IllegalArgumentException - If this tensor and B have different shapes.
  • -
    -

    mult

    +
    +

    add

    -
    public CooCTensor mult(CNumber factor)
    -
    Computes scalar multiplication of a tensor.
    +
    public CooCTensor add(CooCTensor B)
    +
    Computes the element-wise addition between two tensors of the same rank.
    Specified by:
    -
    mult in interface TensorOperationsMixin<CooCTensor,CTensor,CooCTensor,CTensor,CooTensor,CNumber>
    -
    Overrides:
    -
    mult in class ComplexSparseTensorBase<CooCTensor,CTensor,CooTensor>
    +
    add in interface TensorExclusiveMixin<CooCTensor,CTensor,CooCTensor,CooCTensor>
    +
    Specified by:
    +
    add in interface TensorOperationsMixin<CooCTensor,CTensor,CooCTensor,CTensor,CooTensor,CNumber>
    Parameters:
    -
    factor - Scalar value to multiply with tensor.
    +
    B - Second tensor in the addition.
    Returns:
    -
    The result of multiplying this tensor by the specified scalar.
    +
    The result of adding the tensor B to this tensor element-wise.
    +
    Throws:
    +
    IllegalArgumentException - If this tensor and B have different shapes.
  • -
    -

    div

    +
    +

    sub

    -
    public CooCTensor div(double divisor)
    -
    Computes the scalar division of a tensor.
    +
    public CooCTensor sub(CooTensor B)
    +
    Computes the element-wise subtraction between two tensors of the same rank.
    Specified by:
    -
    div in interface TensorOperationsMixin<CooCTensor,CTensor,CooCTensor,CTensor,CooTensor,CNumber>
    -
    Overrides:
    -
    div in class ComplexSparseTensorBase<CooCTensor,CTensor,CooTensor>
    +
    sub in interface TensorExclusiveMixin<CooCTensor,CTensor,CooCTensor,CooCTensor>
    Parameters:
    -
    divisor - The scalar value to divide tensor by.
    +
    B - Second tensor in element-wise subtraction.
    Returns:
    -
    The result of dividing this tensor by the specified scalar.
    +
    The result of subtracting the tensor B from this tensor element-wise.
    Throws:
    -
    ArithmeticException - If divisor is zero.
    +
    IllegalArgumentException - If this tensor and B have different shapes.
  • -
    -

    div

    +
    +

    sub

    -
    public CooCTensor div(CNumber divisor)
    -
    Computes the scalar division of a tensor.
    +
    public CTensor sub(CTensor B)
    +
    Computes the element-wise subtraction between two tensors of the same rank.
    Specified by:
    -
    div in interface TensorOperationsMixin<CooCTensor,CTensor,CooCTensor,CTensor,CooTensor,CNumber>
    -
    Overrides:
    -
    div in class ComplexSparseTensorBase<CooCTensor,CTensor,CooTensor>
    +
    sub in interface TensorExclusiveMixin<CooCTensor,CTensor,CooCTensor,CooCTensor>
    Parameters:
    -
    divisor - The scalar value to divide tensor by.
    +
    B - Second tensor in element-wise subtraction.
    Returns:
    -
    The result of dividing this tensor by the specified scalar.
    +
    The result of subtracting the tensor B from this tensor element-wise.
    Throws:
    -
    ArithmeticException - If divisor is zero.
    +
    IllegalArgumentException - If this tensor and B have different shapes.
  • -
    -

    sum

    +
    +

    add

    -
    public CNumber sum()
    -
    Sums together all entries in the tensor.
    +
    public CTensor add(double a)
    +
    Adds specified value to all entries of this tensor.
    Specified by:
    -
    sum in interface TensorOperationsMixin<CooCTensor,CTensor,CooCTensor,CTensor,CooTensor,CNumber>
    -
    Overrides:
    -
    sum in class ComplexSparseTensorBase<CooCTensor,CTensor,CooTensor>
    +
    add in interface TensorOperationsMixin<CooCTensor,CTensor,CooCTensor,CTensor,CooTensor,CNumber>
    +
    Parameters:
    +
    a - Value to add to all entries of this tensor.
    Returns:
    -
    The sum of all entries in this tensor.
    +
    The result of adding the specified value to each entry of this tensor.
  • -
    -

    sqrt

    +
    +

    add

    -
    public CooCTensor sqrt()
    -
    Computes the element-wise square root of a tensor.
    +
    public CTensor add(CNumber a)
    +
    Adds specified value to all entries of this tensor.
    Specified by:
    -
    sqrt in interface TensorOperationsMixin<CooCTensor,CTensor,CooCTensor,CTensor,CooTensor,CNumber>
    -
    Overrides:
    -
    sqrt in class ComplexSparseTensorBase<CooCTensor,CTensor,CooTensor>
    +
    add in interface TensorOperationsMixin<CooCTensor,CTensor,CooCTensor,CTensor,CooTensor,CNumber>
    +
    Parameters:
    +
    a - Value to add to all entries of this tensor.
    Returns:
    -
    The result of applying an element-wise square root to this tensor. Note, this method will compute - the principle square root i.e. the square root with positive real part.
    +
    The result of adding the specified value to each entry of this tensor.
  • -
    -

    abs

    +
    +

    sub

    -
    public CooTensor abs()
    -
    Computes the element-wise absolute value/magnitude of a tensor. If the tensor contains complex values, the magnitude will - be computed.
    +
    public CooCTensor sub(CooCTensor B)
    +
    Computes the element-wise subtraction between two tensors of the same rank.
    Specified by:
    -
    abs in interface TensorOperationsMixin<CooCTensor,CTensor,CooCTensor,CTensor,CooTensor,CNumber>
    -
    Overrides:
    -
    abs in class ComplexSparseTensorBase<CooCTensor,CTensor,CooTensor>
    +
    sub in interface TensorExclusiveMixin<CooCTensor,CTensor,CooCTensor,CooCTensor>
    +
    Specified by:
    +
    sub in interface TensorOperationsMixin<CooCTensor,CTensor,CooCTensor,CTensor,CooTensor,CNumber>
    +
    Parameters:
    +
    B - Second tensor in element-wise subtraction.
    Returns:
    -
    The result of applying an element-wise absolute value/magnitude to this tensor.
    +
    The result of subtracting the tensor B from this tensor element-wise.
    +
    Throws:
    +
    IllegalArgumentException - If this tensor and B have different shapes.
  • -
    -

    transpose

    +
    +

    elemMult

    -
    public CooCTensor transpose()
    -
    Computes the transpose of a tensor. Same as T().
    +
    public CooCTensor elemMult(Tensor B)
    +
    Computes the element-wise multiplication between two tensors.
    +
    Specified by:
    +
    elemMult in interface TensorExclusiveMixin<CooCTensor,CTensor,CooCTensor,CooCTensor>
    +
    Parameters:
    +
    B - Tensor to element-wise multiply to this tensor.
    Returns:
    -
    The transpose of this tensor.
    +
    The result of the element-wise tensor multiplication.
    +
    Throws:
    +
    IllegalArgumentException - If the tensors do not have the same shape.
  • -
    -

    T

    +
    +

    elemMult

    -
    public CooCTensor T()
    -
    Computes the transpose of a tensor. Same as transpose().
    +
    public CooCTensor elemMult(CooTensor B)
    +
    Computes the element-wise multiplication between two tensors.
    +
    Specified by:
    +
    elemMult in interface TensorExclusiveMixin<CooCTensor,CTensor,CooCTensor,CooCTensor>
    +
    Parameters:
    +
    B - Tensor to element-wise multiply to this tensor.
    Returns:
    -
    The transpose of this tensor.
    +
    The result of the element-wise tensor multiplication.
    +
    Throws:
    +
    IllegalArgumentException - If the tensors do not have the same shape.
  • -
    -

    recip

    +
    +

    elemMult

    -
    public CooCTensor recip()
    -
    Computes the reciprocals, element-wise, of a tensor.
    +
    public CTensor elemMult(CTensor B)
    +
    Computes the element-wise multiplication between two tensors.
    Specified by:
    -
    recip in interface TensorOperationsMixin<CooCTensor,CTensor,CooCTensor,CTensor,CooTensor,CNumber>
    -
    Overrides:
    -
    recip in class ComplexSparseTensorBase<CooCTensor,CTensor,CooTensor>
    +
    elemMult in interface TensorExclusiveMixin<CooCTensor,CTensor,CooCTensor,CooCTensor>
    +
    Parameters:
    +
    B - Tensor to element-wise multiply to this tensor.
    Returns:
    -
    A tensor containing the reciprocal elements of this tensor.
    +
    The result of the element-wise tensor multiplication.
    Throws:
    -
    ArithmeticException - If this tensor contains any zeros.
    +
    IllegalArgumentException - If the tensors do not have the same shape.
  • -
    -

    get

    +
    +

    sub

    -
    public CNumber get(int... indices)
    -
    Gets the element in this tensor at the specified indices.
    +
    public CTensor sub(double a)
    +
    Adds specified value to all entries of this tensor.
    +
    Specified by:
    +
    sub in interface TensorOperationsMixin<CooCTensor,CTensor,CooCTensor,CTensor,CooTensor,CNumber>
    Parameters:
    -
    indices - Indices of element.
    +
    a - Value to add to all entries of this tensor.
    Returns:
    -
    The element at the specified indices.
    -
    Throws:
    -
    IllegalArgumentException - If the number of indices does not match the rank of this tensor.
    +
    The result of adding the specified value to each entry of this tensor.
  • -
    -

    copy

    +
    +

    sub

    -
    public CooCTensor copy()
    -
    Creates a copy of this tensor.
    +
    public CTensor sub(CNumber a)
    +
    Subtracts a specified value from all entries of this tensor.
    +
    Specified by:
    +
    sub in interface TensorOperationsMixin<CooCTensor,CTensor,CooCTensor,CTensor,CooTensor,CNumber>
    +
    Parameters:
    +
    a - Value to subtract from all entries of this tensor.
    Returns:
    -
    A copy of this tensor.
    +
    The result of subtracting the specified value from each entry of this tensor.
  • -
    -

    elemMult

    +
    +

    transpose

    -
    public CooCTensor elemMult(CooCTensor B)
    -
    Computes the element-wise multiplication between two tensors.
    +
    public CooCTensor transpose()
    +
    Computes the transpose of a tensor. Same as T().
    -
    Parameters:
    -
    B - Tensor to element-wise multiply to this tensor.
    +
    Specified by:
    +
    transpose in interface TensorOperationsMixin<CooCTensor,CTensor,CooCTensor,CTensor,CooTensor,CNumber>
    Returns:
    -
    The result of the element-wise tensor multiplication.
    -
    Throws:
    -
    IllegalArgumentException - If this tensor and B do not have the same shape.
    +
    The transpose of this tensor.
  • -
    -

    elemDiv

    +
    +

    T

    -
    public CooCTensor elemDiv(CTensor B)
    -
    Computes the element-wise division between two tensors.
    +
    public CooCTensor T()
    +
    Computes the transpose of a tensor. Same as transpose().
    -
    Parameters:
    -
    B - Tensor to element-wise divide with this tensor.
    +
    Specified by:
    +
    T in interface TensorOperationsMixin<CooCTensor,CTensor,CooCTensor,CTensor,CooTensor,CNumber>
    Returns:
    -
    The result of the element-wise tensor multiplication.
    -
    Throws:
    -
    IllegalArgumentException - If this tensor and B do not have the same shape.
    +
    The transpose of this tensor.
  • -
    -

    min

    +
    +

    get

    -
    public double min()
    -
    Finds the minimum value in this tensor. If this tensor is complex, then this method finds the smallest value in magnitude.
    +
    public CNumber get(int... indices)
    +
    Gets the element in this tensor at the specified indices.
    Specified by:
    -
    min in interface TensorPropertiesMixin
    -
    Overrides:
    -
    min in class ComplexSparseTensorBase<CooCTensor,CTensor,CooTensor>
    +
    get in interface TensorOperationsMixin<CooCTensor,CTensor,CooCTensor,CTensor,CooTensor,CNumber>
    +
    Parameters:
    +
    indices - Indices of element.
    Returns:
    -
    The minimum value (smallest in magnitude for a complex valued tensor) in this tensor.
    +
    The element at the specified indices.
    +
    Throws:
    +
    IllegalArgumentException - If the number of indices does not match the rank of this tensor.
  • -
    -

    max

    +
    +

    copy

    -
    public double max()
    -
    Finds the maximum value in this tensor. If this tensor is complex, then this method finds the largest value in magnitude.
    +
    public CooCTensor copy()
    +
    Creates a copy of this tensor.
    Specified by:
    -
    max in interface TensorPropertiesMixin
    -
    Overrides:
    -
    max in class ComplexSparseTensorBase<CooCTensor,CTensor,CooTensor>
    +
    copy in interface TensorOperationsMixin<CooCTensor,CTensor,CooCTensor,CTensor,CooTensor,CNumber>
    Returns:
    -
    The maximum value (largest in magnitude for a complex valued tensor) in this tensor.
    +
    A copy of this tensor.
  • -
    -

    minAbs

    +
    +

    elemMult

    -
    public double minAbs()
    -
    Finds the minimum value, in absolute value, in this tensor. If this tensor is complex, then this method is equivalent - to min().
    +
    public CooCTensor elemMult(CooCTensor B)
    +
    Computes the element-wise multiplication between two tensors.
    Specified by:
    -
    minAbs in interface TensorPropertiesMixin
    -
    Overrides:
    -
    minAbs in class ComplexSparseTensorBase<CooCTensor,CTensor,CooTensor>
    +
    elemMult in interface TensorExclusiveMixin<CooCTensor,CTensor,CooCTensor,CooCTensor>
    +
    Specified by:
    +
    elemMult in interface TensorOperationsMixin<CooCTensor,CTensor,CooCTensor,CTensor,CooTensor,CNumber>
    +
    Parameters:
    +
    B - Tensor to element-wise multiply to this tensor.
    Returns:
    -
    The minimum value, in absolute value, in this tensor.
    +
    The result of the element-wise tensor multiplication.
    +
    Throws:
    +
    IllegalArgumentException - If this tensor and B do not have the same shape.
  • -
    -

    maxAbs

    +
    +

    elemDiv

    -
    public double maxAbs()
    -
    Finds the maximum value, in absolute value, in this tensor. If this tensor is complex, then this method is equivalent - to max().
    +
    public CooCTensor elemDiv(CTensor B)
    +
    Computes the element-wise division between two tensors.
    Specified by:
    -
    maxAbs in interface TensorPropertiesMixin
    -
    Overrides:
    -
    maxAbs in class ComplexSparseTensorBase<CooCTensor,CTensor,CooTensor>
    +
    elemDiv in interface TensorExclusiveMixin<CooCTensor,CTensor,CooCTensor,CooCTensor>
    +
    Specified by:
    +
    elemDiv in interface TensorOperationsMixin<CooCTensor,CTensor,CooCTensor,CTensor,CooTensor,CNumber>
    +
    Parameters:
    +
    B - Tensor to element-wise divide with this tensor.
    Returns:
    -
    The maximum value, in absolute value, in this tensor.
    +
    The result of the element-wise tensor multiplication.
    +
    Throws:
    +
    IllegalArgumentException - If this tensor and B do not have the same shape.
  • -
    -

    argMin

    +
    +

    elemDiv

    -
    public int[] argMin()
    -
    Finds the indices of the minimum value in this tensor.
    +
    public CooCTensor elemDiv(Tensor B)
    +
    Computes the element-wise division between two tensors.
    Specified by:
    -
    argMin in interface TensorPropertiesMixin
    -
    Overrides:
    -
    argMin in class ComplexSparseTensorBase<CooCTensor,CTensor,CooTensor>
    +
    elemDiv in interface TensorExclusiveMixin<CooCTensor,CTensor,CooCTensor,CooCTensor>
    +
    Parameters:
    +
    B - Tensor to element-wise divide from this tensor.
    Returns:
    -
    The indices of the minimum value in this tensor. If this value occurs multiple times, the indices of the first - entry (in row-major ordering) are returned.
    +
    The result of the element-wise tensor division.
    +
    Throws:
    +
    IllegalArgumentException - If the tensors do not have the same shape.
  • -
    -

    argMax

    +
    +

    tensorInv

    -
    public int[] argMax()
    -
    Finds the indices of the maximum value in this tensor.
    +
    public CTensor tensorInv(int numIndices)
    +

    Computes the 'inverse' of this tensor. That is, computes the tensor X=this.tensorInv() such that + this.tensorDot(X, numIndices) is the 'identity' tensor for the tensor dot product operation. + A tensor I is the identity for a tensor dot product if this.tensorDot(I, numIndices).equals(this).

    + +

    WARNING: This method will convert this tensor to a dense tensor.

    Specified by:
    -
    argMax in interface TensorPropertiesMixin
    -
    Overrides:
    -
    argMax in class ComplexSparseTensorBase<CooCTensor,CTensor,CooTensor>
    +
    tensorInv in interface TensorExclusiveMixin<CooCTensor,CTensor,CooCTensor,CooCTensor>
    +
    Parameters:
    +
    numIndices - The number of first numIndices which are involved in the inverse sum.
    Returns:
    -
    The indices of the maximum value in this tensor. If this value occurs multiple times, the indices of the first - entry (in row-major ordering) are returned.
    +
    The 'inverse' of this tensor as defined in the above sense.
    +
    See Also:
    +
    + +
    @@ -1314,6 +1252,8 @@

    flatten

    public CooCTensor flatten(int axis)
    Flattens a tensor along the specified axis.
    +
    Specified by:
    +
    flatten in interface TensorManipulationsMixin<CooCTensor>
    Parameters:
    axis - Axis along which to flatten tensor.
    Throws:
    @@ -1395,6 +1335,21 @@

    fromDense

  • +
    +

    toMatrix

    +
    +
    public CooCMatrix toMatrix(Shape matShape)
    +
    Converts this tensor to a matrix with the specified shape.
    +
    +
    Parameters:
    +
    matShape - Shape of the resulting matrix. Must be broadcastable with the shape of this tensor.
    +
    Returns:
    +
    A matrix of shape matShape with the values of this tensor.
    +
    +
    +
    +
  • +
  • toDense

    @@ -1409,6 +1364,118 @@

    toDense

  • +
  • +
    +

    H

    +
    +
    public CooCTensor H(int axis1, + int axis2)
    +
    Computes the transpose of a tensor. Same as ComplexTensorExclusiveMixin.hermTranspose(int, int). + In the context of a tensor, this exchanges the specified axes and takes the complex conjugate of elements along + those axes. + Also see hermTranspose() and + H() to conjugate transpose first and last axes.
    +
    +
    Specified by:
    +
    H in interface ComplexTensorExclusiveMixin<CooCTensor>
    +
    Parameters:
    +
    axis1 - First axis to exchange and apply complex conjugate.
    +
    axis2 - Second axis to exchange and apply complex conjugate.
    +
    Returns:
    +
    The conjugate transpose of this tensor.
    +
    +
    +
    +
  • +
  • +
    +

    H

    +
    +
    public CooCTensor H(int... axes)
    +
    Computes the conjugate transpose of this tensor. That is, interchanges the axes of this tensor so that it matches + the specified axes permutation and takes the complex conjugate of the elements of these axes. Same as ComplexTensorExclusiveMixin.hermTranspose(int[]).
    +
    +
    Specified by:
    +
    H in interface ComplexTensorExclusiveMixin<CooCTensor>
    +
    Parameters:
    +
    axes - Permutation of tensor axis. If the tensor has rank N, then this must be an array of length + N which is a permutation of {0, 1, 2, ..., N-1}.
    +
    Returns:
    +
    The conjugate transpose of this tensor with its axes permuted by the axes array.
    +
    Throws:
    +
    IllegalArgumentException - If axes is not a permutation of {1, 2, 3, ... N-1}.
    +
    +
    +
    +
  • +
  • +
    +

    addEq

    +
    +
    public void addEq(Tensor B)
    +
    Computes the element-wise addition of two tensors of the same rank and stores the result in this tensor.
    +
    +
    Specified by:
    +
    addEq in interface ComplexTensorExclusiveMixin<CooCTensor>
    +
    Parameters:
    +
    B - Second tensor in the addition.
    +
    Throws:
    +
    IllegalArgumentException - If this tensor and B have different shapes.
    +
    +
    +
    +
  • +
  • +
    +

    addEq

    +
    +
    public void addEq(CooCTensor B)
    +
    Computes the element-wise addition of two tensors of the same rank and stores the result in this tensor.
    +
    +
    Specified by:
    +
    addEq in interface ComplexTensorExclusiveMixin<CooCTensor>
    +
    Parameters:
    +
    B - Second tensor in the addition.
    +
    Throws:
    +
    IllegalArgumentException - If this tensor and B have different shapes.
    +
    +
    +
    +
  • +
  • +
    +

    subEq

    +
    +
    public void subEq(Tensor B)
    +
    Computes the element-wise subtraction of two tensors of the same rank and stores the result in this tensor.
    +
    +
    Specified by:
    +
    subEq in interface ComplexTensorExclusiveMixin<CooCTensor>
    +
    Parameters:
    +
    B - Second tensor in the subtraction.
    +
    Throws:
    +
    IllegalArgumentException - If this tensor and B have different shapes.
    +
    +
    +
    +
  • +
  • +
    +

    subEq

    +
    +
    public void subEq(CooCTensor B)
    +
    Computes the element-wise subtraction of two tensors of the same rank and stores the result in this tensor.
    +
    +
    Specified by:
    +
    subEq in interface ComplexTensorExclusiveMixin<CooCTensor>
    +
    Parameters:
    +
    B - Second tensor in the subtraction.
    +
    Throws:
    +
    IllegalArgumentException - If this tensor and B have different shapes.
    +
    +
    +
    +
  • diff --git a/docs/org/flag4j/arrays/sparse/CooCVector.html b/docs/org/flag4j/arrays/sparse/CooCVector.html index a1399d721..6f0963a05 100644 --- a/docs/org/flag4j/arrays/sparse/CooCVector.html +++ b/docs/org/flag4j/arrays/sparse/CooCVector.html @@ -1,11 +1,11 @@ - + CooCVector - + @@ -137,7 +137,7 @@

    Field Summary

    Fields inherited from class org.flag4j.core.sparse_base.SparseTensorBase

    -nonZeroEntries
    +nnz

    Fields inherited from class org.flag4j.core.TensorBase

    DEFAULT_ROUND_TO_ZERO_THRESHOLD, entries, shape
    @@ -1054,8 +1054,6 @@

    reshape

    Specified by:
    reshape in interface TensorManipulationsMixin<CooCVector>
    -
    Overrides:
    -
    reshape in class ComplexSparseTensorBase<CooCVector,CVector,CooVector>
    Parameters:
    shape - Shape of the new tensor.
    Returns:
    @@ -1097,8 +1095,6 @@

    flatten

    Specified by:
    flatten in interface TensorManipulationsMixin<CooCVector>
    -
    Overrides:
    -
    flatten in class ComplexSparseTensorBase<CooCVector,CVector,CooVector>
    Returns:
    The flattened tensor.
    diff --git a/docs/org/flag4j/arrays/sparse/CooMatrix.html b/docs/org/flag4j/arrays/sparse/CooMatrix.html index 522958a25..05850dca8 100644 --- a/docs/org/flag4j/arrays/sparse/CooMatrix.html +++ b/docs/org/flag4j/arrays/sparse/CooMatrix.html @@ -1,11 +1,11 @@ - + CooMatrix - + @@ -96,12 +96,12 @@

    Class CooMatrix

    Real sparse matrix. Matrix is stored in coordinate list (COO) format.

    COO matrices are best suited for efficient modification and construction of sparse matrices. Coo matrices are not well @@ -156,7 +156,7 @@

    Field Summary

    Fields inherited from class org.flag4j.core.sparse_base.SparseTensorBase

    -indices, nonZeroEntries
    +indices, nnz

    Fields inherited from class org.flag4j.core.TensorBase

    DEFAULT_ROUND_TO_ZERO_THRESHOLD, entries, shape
    @@ -445,270 +445,280 @@

    Method Summary

    Computes the Frobenius inner product of two matrices.
    -
    flatten(int axis)
    +
    +
    Flattens tensor to single dimension.
    +
    + +
    flatten(int axis)
    +
    Flattens a tensor along the specified axis.
    -
    static CooMatrix
    - -
    +
    static CooMatrix
    + +
    Constructs a sparse COO matrix from a dense matrix.
    - -
    get(int... indices)
    -
    -
    Gets the element in this tensor at the specified indices.
    -
    - -
    getCol(int j)
    + +
    get(int... indices)
    -
    Get the column of this matrix at the specified index.
    +
    Gets the element in this tensor at the specified indices.
    -
    getCol(int colIdx, - int rowStart, - int rowEnd)
    +
    getCol(int j)
    -
    Gets a specified column of this matrix between rowStart (inclusive) and rowEnd (exclusive).
    +
    Get the column of this matrix at the specified index.
    -
    getColBelow(int rowStart, - int j)
    +
    getCol(int colIdx, + int rowStart, + int rowEnd)
    -
    Get a specified column of this matrix at and below a specified row.
    +
    Gets a specified column of this matrix between rowStart (inclusive) and rowEnd (exclusive).
    - +
    getColBelow(int rowStart, + int j)
    -
    Extracts the diagonal elements of this matrix and returns them as a vector.
    +
    Get a specified column of this matrix at and below a specified row.
    -
    getRow(int i)
    +
    -
    Get the row of this matrix at the specified index.
    +
    Extracts the diagonal elements of this matrix and returns them as a vector.
    -
    getRowAfter(int colStart, - int i)
    +
    getRow(int i)
    -
    Get a specified row of this matrix at and after a specified column.
    +
    Get the row of this matrix at the specified index.
    -
    protected CooMatrix
    - + +
    getRowAfter(int colStart, + int i)
    +
    Get a specified row of this matrix at and after a specified column.
    +
    +
    protected CooMatrix
    + +
    Simply returns a reference of this tensor.
    - -
    getSlice(int rowStart, + +
    getSlice(int rowStart, int rowEnd, int colStart, int colEnd)
    -
    -
    Gets a specified slice of this matrix.
    -
    - -
    H()
    -
    Compute the hermitian transpose of this matrix.
    +
    Gets a specified slice of this matrix.
    -
    boolean
    - + +
    H()
    -
    Checks if a matrix is anti-symmetric.
    +
    Compute the hermitian transpose of this matrix.
    boolean
    - +
    -
    Checks if this matrix is diagonal.
    +
    Checks if a matrix is anti-symmetric.
    boolean
    - +
    -
    Checks if a matrix has full rank.
    +
    Checks if this matrix is diagonal.
    boolean
    -
    isI()
    +
    -
    Checks if this matrix is the identity matrix.
    +
    Checks if a matrix has full rank.
    boolean
    - +
    isI()
    -
    Checks if a matrix is invertible.
    +
    Checks if this matrix is the identity matrix.
    boolean
    - +
    -
    Checks if this matrix is orthogonal.
    +
    Checks if a matrix is invertible.
    boolean
    - +
    -
    Checks if a matrix is singular.
    +
    Checks if this matrix is orthogonal.
    boolean
    - +
    -
    Checks if this matrix is square.
    +
    Checks if a matrix is singular.
    boolean
    - +
    -
    Checks if a matrix is symmetric.
    +
    Checks if this matrix is square.
    boolean
    - +
    -
    Checks if this matrix is triangular (i.e.
    +
    Checks if a matrix is symmetric.
    boolean
    - +
    -
    Checks if this matrix is lower triangular.
    +
    Checks if this matrix is triangular (i.e.
    boolean
    - +
    -
    Checks if this matrix is upper triangular.
    +
    Checks if this matrix is lower triangular.
    boolean
    - +
    +
    Checks if this matrix is upper triangular.
    +
    +
    boolean
    + +
    Checks if a matrix can be represented as a vector.
    -
    protected CooCMatrix
    -
    makeComplexTensor(Shape shape, +
    protected CooCMatrix
    +
    makeComplexTensor(Shape shape, CNumber[] entries, int[][] indices)
    -
    +
    A factory for creating a complex sparse tensor.
    -
    protected Matrix
    -
    makeDenseTensor(Shape shape, +
    protected Matrix
    +
    makeDenseTensor(Shape shape, double[] entries)
    -
    +
    A factory for creating a real dense tensor.
    -
    protected CooMatrix
    -
    makeTensor(Shape shape, +
    protected CooMatrix
    +
    makeTensor(Shape shape, double[] entries, int[][] indices)
    -
    +
    A factory for creating a real sparse tensor.
    -
    int
    - -
    +
    int
    + +
    Computes the rank of this matrix (i.e.
    - - -
    + + +
    Computes the matrix multiplication between two matrices.
    - - -
    + + +
    Computes matrix-vector multiplication.
    - - -
    + + +
    Computes the matrix multiplication between two matrices.
    - - -
    + + +
    Computes matrix-vector multiplication.
    - - -
    + + +
    Computes the matrix multiplication between two matrices.
    - - -
    + + +
    Computes matrix-vector multiplication.
    - - -
    + + +
    Computes the matrix multiplication between two matrices.
    - - -
    + + +
    Computes the matrix-vector multiplication.
    - - + + +
    +
    Computes the matrix multiplication between two matrices.
    +
    + +
    Computes the matrix multiplication between two matrices.
    - - + +
    -
    Computes the matrix multiplication between two matrices.
    +
    Multiplies this matrix with the transpose of the B tensor as if by + {this.mult(B.T()).
    - - + +
    Multiplies this matrix with the transpose of the B tensor as if by - {this.mult(B.T()).
    + this.mult(B.T()).
    - - + +
    Multiplies this matrix with the transpose of the B tensor as if by this.mult(B.T()).
    - - + +
    Multiplies this matrix with the transpose of the B tensor as if by this.mult(B.T()).
    - - +
    int
    +
    -
    Multiplies this matrix with the transpose of the B tensor as if by - this.mult(B.T()).
    +
    Gets the number of columns in this matrix.
    int
    - +
    -
    Gets the number of columns in this matrix.
    +
    Gets the number of rows in this matrix.
    -
    int
    - + +
    pow(int exponent)
    -
    Gets the number of rows in this matrix.
    +
    Computes the matrix power with a given exponent.
    - -
    pow(int exponent)
    + +
    removeCol(int colIndex)
    -
    Computes the matrix power with a given exponent.
    +
    Removes a specified column from this matrix.
    -
    removeCol(int colIndex)
    +
    removeCols(int... colIndices)
    -
    Removes a specified column from this matrix.
    +
    Removes a specified set of columns from this matrix.
    -
    removeCols(int... colIndices)
    +
    removeRow(int rowIndex)
    -
    Removes a specified set of columns from this matrix.
    +
    Removes a specified row from this matrix.
    -
    removeRow(int rowIndex)
    +
    removeRows(int... rowIndices)
    -
    Removes a specified row from this matrix.
    +
    Removes a specified set of rows from this matrix.
    -
    removeRows(int... rowIndices)
    +
    reshape(Shape newShape)
    -
    Removes a specified set of rows from this matrix.
    +
    Copies and reshapes matrix if possible.
    set(double value, @@ -1004,7 +1014,7 @@

    Method Summary

    +abs, argMax, argMin, div, div, isNeg, isOnes, isPos, isZeros, max, maxAbs, min, minAbs, mult, mult, nonZeroEntries, recip, reshape, round, round, roundToZero, roundToZero, sqrt, sum

    Methods inherited from class org.flag4j.core.sparse_base.SparseTensorBase

    density, sparsity
    @@ -1321,7 +1331,7 @@

    numRows

    Gets the number of rows in this matrix.
    Specified by:
    -
    numRows in interface MatrixMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    numRows in interface MatrixMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Returns:
    The number of rows in this matrix.
    @@ -1336,7 +1346,7 @@

    numCols

    Gets the number of columns in this matrix.
    Specified by:
    -
    numCols in interface MatrixMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    numCols in interface MatrixMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Returns:
    The number of columns in this matrix.
    @@ -1351,7 +1361,7 @@

    shape

    Gets the shape of this matrix.
    Specified by:
    -
    shape in interface MatrixMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    shape in interface MatrixMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Returns:
    The shape of this matrix.
    @@ -1379,7 +1389,7 @@

    add

    Computes the element-wise addition between two tensors of the same rank.
    Specified by:
    -
    add in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    add in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Specified by:
    add in interface TensorOperationsMixin<CooMatrix,Matrix,CooCMatrix,CMatrix,CooMatrix,Double>
    Parameters:
    @@ -1400,7 +1410,7 @@

    add

    Computes the element-wise addition between two tensors of the same rank.
    Specified by:
    -
    add in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    add in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Second tensor in the addition.
    Returns:
    @@ -1419,7 +1429,7 @@

    add

    Computes the element-wise addition between two tensors of the same rank.
    Specified by:
    -
    add in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    add in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Second tensor in the addition.
    Returns:
    @@ -1472,7 +1482,7 @@

    sub

    Computes the element-wise subtraction between two tensors of the same rank.
    Specified by:
    -
    sub in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    sub in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Specified by:
    sub in interface TensorOperationsMixin<CooMatrix,Matrix,CooCMatrix,CMatrix,CooMatrix,Double>
    Parameters:
    @@ -1493,7 +1503,7 @@

    sub

    Computes the element-wise subtraction of two tensors of the same rank.
    Specified by:
    -
    sub in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    sub in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Second tensor in the subtraction.
    Returns:
    @@ -1512,7 +1522,7 @@

    sub

    Computes the element-wise subtraction of two tensors of the same rank.
    Specified by:
    -
    sub in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    sub in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Second tensor in the subtraction.
    Returns:
    @@ -1580,7 +1590,7 @@

    get

    Gets the element in this tensor at the specified indices.
    Specified by:
    -
    get in interface MatrixMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    get in interface MatrixMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Specified by:
    get in interface TensorOperationsMixin<CooMatrix,Matrix,CooCMatrix,CMatrix,CooMatrix,Double>
    Parameters:
    @@ -1601,7 +1611,7 @@

    copy

    Creates a copy of this tensor.
    Specified by:
    -
    copy in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    copy in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Specified by:
    copy in interface TensorOperationsMixin<CooMatrix,Matrix,CooCMatrix,CMatrix,CooMatrix,Double>
    Returns:
    @@ -1618,7 +1628,7 @@

    elemMult

    Computes the element-wise multiplication between two tensors.
    Specified by:
    -
    elemMult in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    elemMult in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Specified by:
    elemMult in interface TensorOperationsMixin<CooMatrix,Matrix,CooCMatrix,CMatrix,CooMatrix,Double>
    Parameters:
    @@ -1639,7 +1649,7 @@

    elemDiv

    Computes the element-wise division between two tensors.
    Specified by:
    -
    elemDiv in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    elemDiv in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Specified by:
    elemDiv in interface TensorOperationsMixin<CooMatrix,Matrix,CooCMatrix,CMatrix,CooMatrix,Double>
    Parameters:
    @@ -2261,7 +2271,7 @@

    add

    Computes the element-wise addition between two matrices.
    Specified by:
    -
    add in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    add in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Second matrix in the addition.
    Returns:
    @@ -2280,7 +2290,7 @@

    add

    Computes the element-wise addition between two tensors of the same rank.
    Specified by:
    -
    add in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    add in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Second tensor in the addition.
    Returns:
    @@ -2299,7 +2309,7 @@

    add

    Computes the element-wise addition between two tensors of the same rank.
    Specified by:
    -
    add in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    add in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Second tensor in the addition.
    Returns:
    @@ -2318,7 +2328,7 @@

    sub

    Computes the element-wise subtraction of two tensors of the same rank.
    Specified by:
    -
    sub in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    sub in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Second tensor in the subtraction.
    Returns:
    @@ -2337,7 +2347,7 @@

    sub

    Computes the element-wise subtraction of two tensors of the same rank.
    Specified by:
    -
    sub in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    sub in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Second tensor in the subtraction.
    Returns:
    @@ -2356,7 +2366,7 @@

    sub

    Computes the element-wise subtraction of two tensors of the same rank.
    Specified by:
    -
    sub in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    sub in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Second tensor in the subtraction.
    Returns:
    @@ -2375,7 +2385,7 @@

    mult

    Computes the matrix multiplication between two matrices.
    Specified by:
    -
    mult in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    mult in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Second matrix in the matrix multiplication.
    Returns:
    @@ -2395,7 +2405,7 @@

    mult

    Computes the matrix-vector multiplication.
    Specified by:
    -
    mult in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    mult in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    b - Vector to multiply this matrix to.
    Returns:
    @@ -2412,7 +2422,7 @@

    mult

    Computes matrix-vector multiplication.
    Specified by:
    -
    mult in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    mult in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    b - Vector in the matrix-vector multiplication.
    Returns:
    @@ -2431,7 +2441,7 @@

    mult

    Computes matrix-vector multiplication.
    Specified by:
    -
    mult in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    mult in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    b - Vector in the matrix-vector multiplication.
    Returns:
    @@ -2454,7 +2464,7 @@

    multTranspose

    this.mult(B.T()).
    Specified by:
    -
    multTranspose in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    multTranspose in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    B - The second matrix in the multiplication and the matrix to transpose/
    Returns:
    @@ -2475,7 +2485,7 @@

    multTranspose

    this.mult(B.T()).
    Specified by:
    -
    multTranspose in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    multTranspose in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    B - The second matrix in the multiplication and the matrix to transpose/
    Returns:
    @@ -2496,7 +2506,7 @@

    multTranspose

    this.mult(B.T()).
    Specified by:
    -
    multTranspose in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    multTranspose in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    B - The second matrix in the multiplication and the matrix to transpose/
    Returns:
    @@ -2517,7 +2527,7 @@

    multTranspose

    this.mult(B.T()).
    Specified by:
    -
    multTranspose in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    multTranspose in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    B - The second matrix in the multiplication and the matrix to transpose/
    Returns:
    @@ -2536,7 +2546,7 @@

    pow

    faster for large matrices as it will not make superfluous copies.
    Specified by:
    -
    pow in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    pow in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    exponent - The exponent in the matrix power. If exponent = 0 then the identity matrix will be returned.
    @@ -2557,7 +2567,7 @@

    elemMult

    Computes the element-wise multiplication (Hadamard product) between two matrices.
    Specified by:
    -
    elemMult in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    elemMult in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Second matrix in the element-wise multiplication.
    Returns:
    @@ -2576,7 +2586,7 @@

    elemMult

    Computes the element-wise multiplication (Hadamard product) between two matrices.
    Specified by:
    -
    elemMult in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    elemMult in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Second matrix in the element-wise multiplication.
    Returns:
    @@ -2595,7 +2605,7 @@

    elemMult

    Computes the element-wise multiplication (Hadamard product) between two matrices.
    Specified by:
    -
    elemMult in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    elemMult in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Second matrix in the element-wise multiplication.
    Returns:
    @@ -2614,7 +2624,7 @@

    elemDiv

    Computes the element-wise division between two matrices.
    Specified by:
    -
    elemDiv in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    elemDiv in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Second matrix in the element-wise division.
    Returns:
    @@ -2636,7 +2646,7 @@

    det

    WARNING: Currently, this method will convert this matrix to a dense matrix.

    Specified by:
    -
    det in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    det in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Returns:
    The determinant of this matrix.
    Throws:
    @@ -2653,7 +2663,7 @@

    fib

    Computes the Frobenius inner product of two matrices.
    Specified by:
    -
    fib in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    fib in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Second matrix in the Frobenius inner product
    Returns:
    @@ -2672,7 +2682,7 @@

    fib

    Computes the Frobenius inner product of two matrices.
    Specified by:
    -
    fib in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    fib in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Second matrix in the Frobenius inner product
    Returns:
    @@ -2691,7 +2701,7 @@

    fib

    Computes the Frobenius inner product of two matrices.
    Specified by:
    -
    fib in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    fib in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Second matrix in the Frobenius inner product
    Returns:
    @@ -2710,7 +2720,7 @@

    fib

    Computes the Frobenius inner product of two matrices.
    Specified by:
    -
    fib in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    fib in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Second matrix in the Frobenius inner product
    Returns:
    @@ -2729,7 +2739,7 @@

    sumCols

    Sums together the columns of a matrix as if each column was a column vector.
    Specified by:
    -
    sumCols in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    sumCols in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Returns:
    The result of summing together all columns of the matrix as column vectors. If this matrix is an m-by-n matrix, then the result will be a vectors of length m.
    @@ -2745,7 +2755,7 @@

    sumRows

    Sums together the rows of a matrix as if each row was a row vector.
    Specified by:
    -
    sumRows in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    sumRows in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Returns:
    The result of summing together all rows of the matrix as row vectors. If this matrix is an m-by-n matrix, then the result will be a vector of length n.
    @@ -2762,7 +2772,7 @@

    addToEachCol

    treated as if it were a column vector.
    Specified by:
    -
    addToEachCol in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    addToEachCol in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    b - Vector to add to each column of this matrix.
    Returns:
    @@ -2780,7 +2790,7 @@

    addToEachCol

    treated as if it were a column vector.
    Specified by:
    -
    addToEachCol in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    addToEachCol in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    b - Vector to add to each column of this matrix.
    Returns:
    @@ -2798,7 +2808,7 @@

    addToEachCol

    treated as if it were a column vector.
    Specified by:
    -
    addToEachCol in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    addToEachCol in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    b - Vector to add to each column of this matrix.
    Returns:
    @@ -2816,7 +2826,7 @@

    addToEachCol

    treated as if it were a column vector.
    Specified by:
    -
    addToEachCol in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    addToEachCol in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    b - Vector to add to each column of this matrix.
    Returns:
    @@ -2834,7 +2844,7 @@

    addToEachRow

    treated as if it were a row vector for this operation.
    Specified by:
    -
    addToEachRow in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    addToEachRow in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    b - Vector to add to each row of this matrix.
    Returns:
    @@ -2852,7 +2862,7 @@

    addToEachRow

    treated as if it were a row vector for this operation.
    Specified by:
    -
    addToEachRow in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    addToEachRow in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    b - Vector to add to each row of this matrix.
    Returns:
    @@ -2870,7 +2880,7 @@

    addToEachRow

    treated as if it were a row vector for this operation.
    Specified by:
    -
    addToEachRow in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    addToEachRow in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    b - Vector to add to each row of this matrix.
    Returns:
    @@ -2888,7 +2898,7 @@

    addToEachRow

    treated as if it were a row vector for this operation.
    Specified by:
    -
    addToEachRow in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    addToEachRow in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    b - Vector to add to each row of this matrix.
    Returns:
    @@ -2906,7 +2916,7 @@

    stack

    Also see MatrixOperationsMixin.stack(Matrix, int) and augment(Matrix).
    Specified by:
    -
    stack in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    stack in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Matrix to stack to this matrix.
    Returns:
    @@ -2926,7 +2936,7 @@

    stack

    Also see MatrixOperationsMixin.stack(Matrix, int) and augment(Matrix).
    Specified by:
    -
    stack in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    stack in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Matrix to stack to this matrix.
    Returns:
    @@ -2946,7 +2956,7 @@

    stack

    Also see MatrixOperationsMixin.stack(Matrix, int) and augment(Matrix).
    Specified by:
    -
    stack in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    stack in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Matrix to stack to this matrix.
    Returns:
    @@ -2966,7 +2976,7 @@

    stack

    Also see MatrixOperationsMixin.stack(Matrix, int) and augment(Matrix).
    Specified by:
    -
    stack in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    stack in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Matrix to stack to this matrix.
    Returns:
    @@ -2986,7 +2996,7 @@

    augment

    Also see stack(Matrix) and MatrixOperationsMixin.stack(Matrix, int).
    Specified by:
    -
    augment in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    augment in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Matrix to stack to this matrix.
    Returns:
    @@ -3006,7 +3016,7 @@

    augment

    Also see stack(Matrix) and MatrixOperationsMixin.stack(Matrix, int).
    Specified by:
    -
    augment in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    augment in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Matrix to stack to this matrix.
    Returns:
    @@ -3026,7 +3036,7 @@

    augment

    Also see stack(Matrix) and MatrixOperationsMixin.stack(Matrix, int).
    Specified by:
    -
    augment in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    augment in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Matrix to stack to this matrix.
    Returns:
    @@ -3046,7 +3056,7 @@

    augment

    Also see stack(Matrix) and MatrixOperationsMixin.stack(Matrix, int).
    Specified by:
    -
    augment in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    augment in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Matrix to stack to this matrix.
    Returns:
    @@ -3066,7 +3076,7 @@

    stack

    Also see MatrixOperationsMixin.stack(Vector, int) and augment(Vector).
    Specified by:
    -
    stack in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    stack in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    b - Vector to stack to this matrix.
    Returns:
    @@ -3088,7 +3098,7 @@

    stack

    Also see MatrixOperationsMixin.stack(CooVector, int) and augment(CooVector).
    Specified by:
    -
    stack in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    stack in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    b - Vector to stack to this matrix.
    Returns:
    @@ -3110,7 +3120,7 @@

    stack

    Also see MatrixOperationsMixin.stack(CVector, int) and augment(CVector).
    Specified by:
    -
    stack in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    stack in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    b - Vector to stack to this matrix.
    Returns:
    @@ -3132,7 +3142,7 @@

    stack

    Also see MatrixOperationsMixin.stack(CooCVector, int) and augment(CooCVector).
    Specified by:
    -
    stack in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    stack in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    b - Vector to stack to this matrix.
    Returns:
    @@ -3153,7 +3163,7 @@

    augment

    Also see stack(Vector) and MatrixOperationsMixin.stack(Vector, int).
    Specified by:
    -
    augment in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    augment in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    b - vector to augment to this matrix.
    Returns:
    @@ -3173,7 +3183,7 @@

    augment

    Also see stack(CooVector) and MatrixOperationsMixin.stack(CooVector, int).
    Specified by:
    -
    augment in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    augment in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    b - vector to augment to this matrix.
    Returns:
    @@ -3193,7 +3203,7 @@

    augment

    Also see stack(CVector) and MatrixOperationsMixin.stack(CVector, int).
    Specified by:
    -
    augment in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    augment in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    b - vector to augment to this matrix.
    Returns:
    @@ -3213,7 +3223,7 @@

    augment

    Also see stack(CooCVector) and MatrixOperationsMixin.stack(CooCVector, int).
    Specified by:
    -
    augment in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    augment in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    b - vector to augment to this matrix.
    Returns:
    @@ -3232,7 +3242,7 @@

    getRow

    Get the row of this matrix at the specified index.
    Specified by:
    -
    getRow in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    getRow in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    i - Index of row to get.
    Returns:
    @@ -3249,7 +3259,7 @@

    getCol

    Get the column of this matrix at the specified index.
    Specified by:
    -
    getCol in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    getCol in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    j - Index of column to get.
    Returns:
    @@ -3268,7 +3278,7 @@

    getCol

    Gets a specified column of this matrix between rowStart (inclusive) and rowEnd (exclusive).
    Specified by:
    -
    getCol in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    getCol in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    colIdx - Index of the column of this matrix to get.
    rowStart - Starting row of the column (inclusive).
    @@ -3292,7 +3302,7 @@

    toVector

    it will be flattened then converted to a vector.
    Specified by:
    -
    toVector in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    toVector in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Returns:
    A vector equivalent to this matrix.
    @@ -3323,7 +3333,7 @@

    getSlice

    Gets a specified slice of this matrix.
    Specified by:
    -
    getSlice in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    getSlice in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    rowStart - Starting row index of slice (inclusive).
    rowEnd - Ending row index of slice (exclusive).
    @@ -3347,7 +3357,7 @@

    getColBelow

    Get a specified column of this matrix at and below a specified row.
    Specified by:
    -
    getColBelow in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    getColBelow in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    rowStart - Index of the row to begin at.
    j - Index of column to get.
    @@ -3369,7 +3379,7 @@

    getRowAfter

    Get a specified row of this matrix at and after a specified column.
    Specified by:
    -
    getRowAfter in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    getRowAfter in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    colStart - Index of the row to begin at.
    i - Index of the row to get.
    @@ -3391,7 +3401,7 @@

    setCol

    Sets a column of this matrix.
    Specified by:
    -
    setCol in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    setCol in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    values - Vector containing the new values for the matrix.
    j - Index of the column of this matrix to set.
    @@ -3414,7 +3424,7 @@

    trace

    Same as tr().
    Specified by:
    -
    trace in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    trace in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Returns:
    The trace of this matrix.
    Throws:
    @@ -3432,7 +3442,7 @@

    tr

    Same as trace().
    Specified by:
    -
    tr in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    tr in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Returns:
    The trace of this matrix.
    Throws:
    @@ -3449,7 +3459,7 @@

    getDiag

    Extracts the diagonal elements of this matrix and returns them as a vector.
    Specified by:
    -
    getDiag in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    getDiag in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Returns:
    A vector containing the diagonal entries of this matrix.
    @@ -3465,7 +3475,7 @@

    H

    For real matrices, this is equivalent to the standard transpose.
    Specified by:
    -
    H in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    H in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Returns:
    The complex conjugate transpose of this matrix.
    @@ -3480,7 +3490,7 @@

    mult

    Computes the matrix multiplication between two matrices.
    Specified by:
    -
    mult in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    mult in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Second matrix in the matrix multiplication.
    Returns:
    @@ -3500,7 +3510,7 @@

    mult

    Computes the matrix multiplication between two matrices.
    Specified by:
    -
    mult in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    mult in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Second matrix in the matrix multiplication.
    Returns:
    @@ -3519,7 +3529,7 @@

    mult

    Computes the matrix multiplication between two matrices.
    Specified by:
    -
    mult in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    mult in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Second matrix in the matrix multiplication.
    Returns:
    @@ -3538,7 +3548,7 @@

    mult

    Computes the matrix multiplication between two matrices.
    Specified by:
    -
    mult in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    mult in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Second matrix in the matrix multiplication.
    Returns:
    @@ -3557,7 +3567,7 @@

    mult

    Computes the matrix multiplication between two matrices.
    Specified by:
    -
    mult in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    mult in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Second matrix in the matrix multiplication.
    Returns:
    @@ -3576,7 +3586,7 @@

    mult

    Computes matrix-vector multiplication.
    Specified by:
    -
    mult in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,Double,CooVector,Vector>
    +
    mult in interface MatrixOperationsMixin<CooMatrix,Matrix,CooMatrix,CooCMatrix,CooCMatrix,Double,CooVector,Vector>
    Parameters:
    b - Vector in the matrix-vector multiplication.
    Returns:
    @@ -3923,6 +3933,41 @@

    set

  • +
    +

    reshape

    +
    +
    public CooMatrix reshape(Shape newShape)
    +
    Copies and reshapes matrix if possible. The total number of entries in this matrix must match the total number of entries + in the reshaped matrix.
    +
    +
    Specified by:
    +
    reshape in interface TensorManipulationsMixin<CooMatrix>
    +
    Parameters:
    +
    newShape - Shape of the new matrix.
    +
    Returns:
    +
    A matrix which is equivalent to this matrix but with the specified shape.
    +
    Throws:
    +
    IllegalArgumentException - If this matrix cannot be reshaped to the specified dimensions.
    +
    +
    +
    +
  • +
  • +
    +

    flatten

    +
    +
    public CooMatrix flatten()
    +
    Flattens tensor to single dimension. To flatten tensor along a single axis.
    +
    +
    Specified by:
    +
    flatten in interface TensorManipulationsMixin<CooMatrix>
    +
    Returns:
    +
    The flattened tensor.
    +
    +
    +
    +
  • +
  • flatten

    diff --git a/docs/org/flag4j/arrays/sparse/CooTensor.html b/docs/org/flag4j/arrays/sparse/CooTensor.html index 863866bf0..7a85d7f37 100644 --- a/docs/org/flag4j/arrays/sparse/CooTensor.html +++ b/docs/org/flag4j/arrays/sparse/CooTensor.html @@ -1,11 +1,11 @@ - + CooTensor - + @@ -96,11 +96,12 @@

    Class CooTensor

    Real sparse tensor. Can be any rank. Stored in coordinate (COO) format.
    See Also:
    @@ -120,7 +121,7 @@

    Class CooTensor

    Field Summary

    Fields inherited from class org.flag4j.core.sparse_base.SparseTensorBase

    -indices, nonZeroEntries
    +indices, nnz

    Fields inherited from class org.flag4j.core.TensorBase

    DEFAULT_ROUND_TO_ZERO_THRESHOLD, entries, shape
    @@ -154,6 +155,12 @@

    Constructor Summary

    Creates a sparse tensor with specified shape and non-zero values/indices.
    +
    CooTensor(Shape shape, + List<Double> nonZeroEntries, + List<int[]> indices)
    +
    +
    Creates a sparse tensor with specified shape and non-zero values/indices.
    +
  • @@ -168,15 +175,25 @@

    Method Summary

    Modifier and Type
    Method
    Description
    - -
    abs()
    + +
    add(double a)
    -
    Computes the element-wise absolute value/magnitude of a tensor.
    +
    Adds specified value to all entries of this tensor.
    - -
    add(double a)
    + +
    -
    Adds specified value to all entries of this tensor.
    +
    Computes the element-wise addition between two tensors of the same rank.
    +
    + + +
    +
    Computes the element-wise addition between two tensors of the same rank.
    +
    + + +
    +
    Computes the element-wise addition between two tensors of the same rank.
    @@ -195,35 +212,35 @@

    Method Summary

    Checks if all entries of this tensor are close to the entries of the argument tensor.
    -
    int[]
    - + +
    -
    Finds the indices of the maximum value in this tensor.
    +
    Creates a copy of this tensor.
    -
    int[]
    - + +
    -
    Finds the indices of the minimum value in this tensor.
    +
    Computes the element-wise division between two tensors.
    - +
    -
    Creates a copy of this tensor.
    +
    Computes the element-wise division between two tensors.
    - -
    div(double divisor)
    + +
    -
    Computes the scalar division of a tensor.
    +
    Computes the element-wise multiplication between two tensors.
    - -
    div(CNumber divisor)
    + +
    -
    Computes the scalar division of a tensor.
    +
    Computes the element-wise multiplication between two tensors.
    - - + +
    -
    Computes the element-wise division between two tensors.
    +
    Computes the element-wise multiplication between two tensors.
    @@ -260,91 +277,94 @@

    Method Summary

    Simply returns a reference of this tensor.
    -
    boolean
    - -
    -
    Checks if this tensor only contains ones.
    -
    -
    protected CooCTensor
    -
    makeComplexTensor(Shape shape, +
    protected CooCTensor
    +
    makeComplexTensor(Shape shape, CNumber[] entries, int[][] indices)
    -
    +
    A factory for creating a complex sparse tensor.
    -
    protected Tensor
    -
    makeDenseTensor(Shape shape, +
    protected Tensor
    +
    makeDenseTensor(Shape shape, double[] entries)
    -
    +
    A factory for creating a real dense tensor.
    -
    protected CooTensor
    -
    makeTensor(Shape shape, +
    protected CooTensor
    +
    makeTensor(Shape shape, double[] entries, int[][] indices)
    -
    +
    A factory for creating a real sparse tensor.
    + +
    reshape(Shape newShape)
    +
    +
    Copies and reshapes tensor if possible.
    +
    -
    mult(double factor)
    +
    set(double value, + int... indices)
    -
    Computes scalar multiplication of a tensor.
    +
    Sets an index of this tensor to a specified value.
    - -
    mult(CNumber factor)
    + +
    sub(double a)
    -
    Computes scalar multiplication of a tensor.
    +
    Adds specified value to all entries of this tensor.
    - - + +
    -
    Computes the reciprocals, element-wise, of a tensor.
    +
    Computes the element-wise subtraction between two tensors of the same rank.
    - -
    reshape(int... shape)
    + +
    -
    Copies and reshapes tensor if possible.
    +
    Computes the element-wise addition between two tensors of the same rank.
    - -
    reshape(Shape shape)
    + +
    -
    Copies and reshapes tensor if possible.
    +
    Computes the element-wise subtraction between two tensors of the same rank.
    -
    set(double value, - int... indices)
    +
    -
    Sets an index of this tensor to a specified value.
    +
    Computes the element-wise subtraction between two tensors of the same rank.
    - - + +
    -
    Computes the element-wise square root of a tensor.
    +
    Subtracts a specified value from all entries of this tensor.
    - -
    sub(double a)
    + +
    T()
    -
    Adds specified value to all entries of this tensor.
    +
    Computes the transpose of a tensor.
    - +
    T(int... axes)
    -
    Computes the element-wise subtraction between two tensors of the same rank.
    +
    Computes the transpose of this tensor.
    - - + +
    T(int axis1, + int axis2)
    -
    Subtracts a specified value from all entries of this tensor.
    +
    Computes the transpose of a tensor.
    - -
    sum()
    + +
    tensorDot(CooTensor src2, + int[] aAxes, + int[] bAxes)
    -
    Sums together all entries in the tensor.
    +
    Computes the tensor contraction of this tensor with a specified tensor over the specified set of axes.
    - -
    T()
    + +
    tensorInv(int numIndices)
    -
    Computes the transpose of a tensor.
    +
    Computes the 'inverse' of this tensor.
    @@ -356,9 +376,14 @@

    Method Summary

    Converts this sparse tensor to an equivalent dense tensor.
    - - + +
    toMatrix(Shape matShape)
    +
    Converts this tensor to a matrix with the specified shape.
    +
    + + +
    Computes the transpose of a tensor.
    @@ -366,7 +391,7 @@

    Method Summary

    Methods inherited from class org.flag4j.core.sparse_base.RealSparseTensorBase

    -isNeg, isPos, isZeros, max, maxAbs, min, minAbs, nonZeroEntries, round, round, roundToZero, roundToZero, sortIndices
    +abs, argMax, argMin, div, div, isNeg, isOnes, isPos, isZeros, max, maxAbs, min, minAbs, mult, mult, nonZeroEntries, recip, reshape, round, round, roundToZero, roundToZero, sortIndices, sqrt, sum

    Methods inherited from class org.flag4j.core.sparse_base.SparseTensorBase

    density, sparsity
    @@ -376,6 +401,9 @@

    Methods inherit

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    +
    +

    Methods inherited from interface org.flag4j.core.TensorExclusiveMixin

    +getRank, tensorDot, tensorDot, tensorDot, tensorInv, transpose, transpose
    @@ -435,6 +463,23 @@

    CooTensor

  • +
    +

    CooTensor

    +
    +
    public CooTensor(Shape shape, + List<Double> nonZeroEntries, + List<int[]> indices)
    +
    Creates a sparse tensor with specified shape and non-zero values/indices.
    +
    +
    Parameters:
    +
    shape - Shape of the tensor.
    +
    nonZeroEntries - Non-zero entries of the tensor.
    +
    indices - Indices of the non-zero entries of the tensor.
    +
    +
    +
    +
  • +
  • CooTensor

    @@ -484,6 +529,8 @@

    toComplex

    Converts this tensor to an equivalent complex tensor. That is, the entries of the resultant matrix will be exactly the same value but will have type CNumber rather than Double.
    +
    Specified by:
    +
    toComplex in interface RealTensorMixin<CooTensor,CooCTensor>
    Returns:
    A complex matrix which is equivalent to this matrix.
    @@ -567,23 +614,6 @@

    makeComplexTensor

  • -
    -

    isOnes

    -
    -
    public boolean isOnes()
    -
    Checks if this tensor only contains ones.
    -
    -
    Specified by:
    -
    isOnes in interface TensorComparisonsMixin
    -
    Overrides:
    -
    isOnes in class RealSparseTensorBase<CooTensor,Tensor,CooCTensor,CTensor>
    -
    Returns:
    -
    True if this tensor only contains ones. Otherwise, returns false.
    -
    -
    -
    -
  • -
  • set

    @@ -591,6 +621,8 @@

    set

    int... indices)
    Sets an index of this tensor to a specified value.
    +
    Specified by:
    +
    set in interface TensorManipulationsMixin<CooTensor>
    Parameters:
    value - Value to set.
    indices - The indices of this tensor for which to set the value.
    @@ -604,16 +636,14 @@

    set

    reshape

    -
    public CooTensor reshape(Shape shape)
    +
    public CooTensor reshape(Shape newShape)
    Copies and reshapes tensor if possible. The total number of entries in this tensor must match the total number of entries in the reshaped tensor.
    Specified by:
    reshape in interface TensorManipulationsMixin<CooTensor>
    -
    Overrides:
    -
    reshape in class RealSparseTensorBase<CooTensor,Tensor,CooCTensor,CTensor>
    Parameters:
    -
    shape - Shape of the new tensor.
    +
    newShape - Shape of the new tensor.
    Returns:
    A tensor which is equivalent to this tensor but with the specified shape.
    Throws:
    @@ -627,14 +657,88 @@

    reshape

    flatten

    public CooTensor flatten()
    -
    Flattens tensor to single dimension. To flatten tensor along a single axis.
    +
    Flattens tensor to single dimension. To flatten tensor along a single axis see flatten(int).
    Specified by:
    flatten in interface TensorManipulationsMixin<CooTensor>
    -
    Overrides:
    -
    flatten in class RealSparseTensorBase<CooTensor,Tensor,CooCTensor,CTensor>
    Returns:
    The flattened tensor.
    +
    See Also:
    +
    + +
    +
    +
    +
    +
  • +
  • +
    +

    tensorDot

    +
    +
    public Tensor tensorDot(CooTensor src2, + int[] aAxes, + int[] bAxes)
    +
    Computes the tensor contraction of this tensor with a specified tensor over the specified set of axes. That is, + computes the sum of products between the two tensors along the specified set of axes.
    +
    +
    Specified by:
    +
    tensorDot in interface TensorExclusiveMixin<CooTensor,Tensor,CooTensor,CooCTensor>
    +
    Parameters:
    +
    src2 - Tensor to contract with this tensor.
    +
    aAxes - Axes along which to compute products for this tensor.
    +
    bAxes - Axes along which to compute products for src2 tensor.
    +
    Returns:
    +
    The tensor dot product over the specified axes.
    +
    Throws:
    +
    IllegalArgumentException - If the two tensors shapes do not match along the specified axes pairwise in + aAxes and bAxes.
    +
    IllegalArgumentException - If aAxes and bAxes do not match in length, or if any of the axes + are out of bounds for the corresponding tensor.
    +
    +
    +
    +
  • +
  • +
    +

    T

    +
    +
    public CooTensor T(int axis1, + int axis2)
    +
    Computes the transpose of a tensor. Same as TensorExclusiveMixin.transpose(int, int). + In the context of a tensor, this exchanges the specified axes. + Also see transpose() and + T() to exchange first and last axes.
    +
    +
    Specified by:
    +
    T in interface TensorExclusiveMixin<CooTensor,Tensor,CooTensor,CooCTensor>
    +
    Parameters:
    +
    axis1 - First axis to exchange.
    +
    axis2 - Second axis to exchange.
    +
    Returns:
    +
    The transpose of this tensor.
    +
    +
    +
    +
  • +
  • +
    +

    T

    +
    +
    public CooTensor T(int... axes)
    +
    Computes the transpose of this tensor. That is, interchanges the axes of this tensor so that it matches + the specified axes permutation. Same as TensorExclusiveMixin.transpose(int[]).
    +
    +
    Specified by:
    +
    T in interface TensorExclusiveMixin<CooTensor,Tensor,CooTensor,CooCTensor>
    +
    Parameters:
    +
    axes - Permutation of tensor axis. If the tensor has rank N, then this must be an array of length + N which is a permutation of {0, 1, 2, ..., N-1}.
    +
    Returns:
    +
    The transpose of this tensor with its axes permuted by the axes array.
    +
    Throws:
    +
    IllegalArgumentException - If axes is not a permutation of {1, 2, 3, ... N-1}.
    @@ -646,6 +750,10 @@

    add

    public CooTensor add(CooTensor B)
    Computes the element-wise addition between two tensors of the same rank.
    +
    Specified by:
    +
    add in interface TensorExclusiveMixin<CooTensor,Tensor,CooTensor,CooCTensor>
    +
    Specified by:
    +
    add in interface TensorOperationsMixin<CooTensor,Tensor,CooCTensor,CTensor,CooTensor,Double>
    Parameters:
    B - Second tensor in the addition.
    Returns:
    @@ -657,46 +765,56 @@

    add

  • -
    +

    add

    -
    public Tensor add(double a)
    -
    Adds specified value to all entries of this tensor.
    +
    public Tensor add(Tensor B)
    +
    Computes the element-wise addition between two tensors of the same rank.
    +
    Specified by:
    +
    add in interface TensorExclusiveMixin<CooTensor,Tensor,CooTensor,CooCTensor>
    Parameters:
    -
    a - Value to add to all entries of this tensor.
    +
    B - Second tensor in the addition.
    Returns:
    -
    The result of adding the specified value to each entry of this tensor.
    +
    The result of adding the tensor B to this tensor element-wise.
    +
    Throws:
    +
    IllegalArgumentException - If this tensor and B have different shapes.
  • -
    -

    add

    +
    +

    sub

    -
    public CTensor add(CNumber a)
    -
    Adds specified value to all entries of this tensor.
    +
    public Tensor sub(Tensor B)
    +
    Computes the element-wise addition between two tensors of the same rank.
    +
    Specified by:
    +
    sub in interface TensorExclusiveMixin<CooTensor,Tensor,CooTensor,CooCTensor>
    Parameters:
    -
    a - Value to add to all entries of this tensor.
    +
    B - Second tensor in the addition.
    Returns:
    -
    The result of adding the specified value to each entry of this tensor.
    +
    The result of adding the tensor B to this tensor element-wise.
    +
    Throws:
    +
    IllegalArgumentException - If this tensor and B have different shapes.
  • -
    -

    sub

    +
    +

    add

    -
    public CooTensor sub(CooTensor B)
    -
    Computes the element-wise subtraction between two tensors of the same rank.
    +
    public CTensor add(CTensor B)
    +
    Computes the element-wise addition between two tensors of the same rank.
    +
    Specified by:
    +
    add in interface TensorExclusiveMixin<CooTensor,Tensor,CooTensor,CooCTensor>
    Parameters:
    -
    B - Second tensor in element-wise subtraction.
    +
    B - Second tensor in the addition.
    Returns:
    -
    The result of subtracting the tensor B from this tensor element-wise.
    +
    The result of adding the tensor B to this tensor element-wise.
    Throws:
    IllegalArgumentException - If this tensor and B have different shapes.
    @@ -704,164 +822,166 @@

    sub

  • -
    -

    sub

    +
    +

    add

    -
    public Tensor sub(double a)
    -
    Adds specified value to all entries of this tensor.
    +
    public CooCTensor add(CooCTensor B)
    +
    Computes the element-wise addition between two tensors of the same rank.
    +
    Specified by:
    +
    add in interface TensorExclusiveMixin<CooTensor,Tensor,CooTensor,CooCTensor>
    Parameters:
    -
    a - Value to add to all entries of this tensor.
    +
    B - Second tensor in the addition.
    Returns:
    -
    The result of adding the specified value to each entry of this tensor.
    +
    The result of adding the tensor B to this tensor element-wise.
    +
    Throws:
    +
    IllegalArgumentException - If this tensor and B have different shapes.
  • -
    -

    sub

    +
    +

    add

    -
    public CTensor sub(CNumber a)
    -
    Subtracts a specified value from all entries of this tensor.
    +
    public Tensor add(double a)
    +
    Adds specified value to all entries of this tensor.
    +
    Specified by:
    +
    add in interface TensorOperationsMixin<CooTensor,Tensor,CooCTensor,CTensor,CooTensor,Double>
    Parameters:
    -
    a - Value to subtract from all entries of this tensor.
    +
    a - Value to add to all entries of this tensor.
    Returns:
    -
    The result of subtracting the specified value from each entry of this tensor.
    +
    The result of adding the specified value to each entry of this tensor.
  • -
    -

    mult

    +
    +

    add

    -
    public CooTensor mult(double factor)
    -
    Computes scalar multiplication of a tensor.
    +
    public CTensor add(CNumber a)
    +
    Adds specified value to all entries of this tensor.
    Specified by:
    -
    mult in interface TensorOperationsMixin<CooTensor,Tensor,CooCTensor,CTensor,CooTensor,Double>
    -
    Overrides:
    -
    mult in class RealSparseTensorBase<CooTensor,Tensor,CooCTensor,CTensor>
    +
    add in interface TensorOperationsMixin<CooTensor,Tensor,CooCTensor,CTensor,CooTensor,Double>
    Parameters:
    -
    factor - Scalar value to multiply with tensor.
    +
    a - Value to add to all entries of this tensor.
    Returns:
    -
    The result of multiplying this tensor by the specified scalar.
    +
    The result of adding the specified value to each entry of this tensor.
  • -
    -

    mult

    +
    +

    sub

    -
    public CooCTensor mult(CNumber factor)
    -
    Computes scalar multiplication of a tensor.
    +
    public CooTensor sub(CooTensor B)
    +
    Computes the element-wise subtraction between two tensors of the same rank.
    Specified by:
    -
    mult in interface TensorOperationsMixin<CooTensor,Tensor,CooCTensor,CTensor,CooTensor,Double>
    -
    Overrides:
    -
    mult in class RealSparseTensorBase<CooTensor,Tensor,CooCTensor,CTensor>
    +
    sub in interface TensorExclusiveMixin<CooTensor,Tensor,CooTensor,CooCTensor>
    +
    Specified by:
    +
    sub in interface TensorOperationsMixin<CooTensor,Tensor,CooCTensor,CTensor,CooTensor,Double>
    Parameters:
    -
    factor - Scalar value to multiply with tensor.
    +
    B - Second tensor in element-wise subtraction.
    Returns:
    -
    The result of multiplying this tensor by the specified scalar.
    +
    The result of subtracting the tensor B from this tensor element-wise.
    +
    Throws:
    +
    IllegalArgumentException - If this tensor and B have different shapes.
  • -
    -

    div

    +
    +

    sub

    -
    public CooTensor div(double divisor)
    -
    Computes the scalar division of a tensor.
    +
    public CTensor sub(CTensor B)
    +
    Computes the element-wise subtraction between two tensors of the same rank.
    Specified by:
    -
    div in interface TensorOperationsMixin<CooTensor,Tensor,CooCTensor,CTensor,CooTensor,Double>
    -
    Overrides:
    -
    div in class RealSparseTensorBase<CooTensor,Tensor,CooCTensor,CTensor>
    +
    sub in interface TensorExclusiveMixin<CooTensor,Tensor,CooTensor,CooCTensor>
    Parameters:
    -
    divisor - The scalar value to divide tensor by.
    +
    B - Second tensor in element-wise subtraction.
    Returns:
    -
    The result of dividing this tensor by the specified scalar.
    +
    The result of subtracting the tensor B from this tensor element-wise.
    Throws:
    -
    ArithmeticException - If divisor is zero.
    +
    IllegalArgumentException - If this tensor and B have different shapes.
  • -
    -

    div

    +
    +

    sub

    -
    public CooCTensor div(CNumber divisor)
    -
    Computes the scalar division of a tensor.
    +
    public CooCTensor sub(CooCTensor B)
    +
    Computes the element-wise subtraction between two tensors of the same rank.
    Specified by:
    -
    div in interface TensorOperationsMixin<CooTensor,Tensor,CooCTensor,CTensor,CooTensor,Double>
    -
    Overrides:
    -
    div in class RealSparseTensorBase<CooTensor,Tensor,CooCTensor,CTensor>
    +
    sub in interface TensorExclusiveMixin<CooTensor,Tensor,CooTensor,CooCTensor>
    Parameters:
    -
    divisor - The scalar value to divide tensor by.
    +
    B - Second tensor in element-wise subtraction.
    Returns:
    -
    The result of dividing this tensor by the specified scalar.
    +
    The result of subtracting the tensor B from this tensor element-wise.
    Throws:
    -
    ArithmeticException - If divisor is zero.
    +
    IllegalArgumentException - If this tensor and B have different shapes.
  • -
    -

    sum

    +
    +

    elemMult

    -
    public Double sum()
    -
    Sums together all entries in the tensor.
    +
    public CooTensor elemMult(Tensor B)
    +
    Computes the element-wise multiplication between two tensors.
    Specified by:
    -
    sum in interface TensorOperationsMixin<CooTensor,Tensor,CooCTensor,CTensor,CooTensor,Double>
    -
    Overrides:
    -
    sum in class RealSparseTensorBase<CooTensor,Tensor,CooCTensor,CTensor>
    +
    elemMult in interface TensorExclusiveMixin<CooTensor,Tensor,CooTensor,CooCTensor>
    +
    Parameters:
    +
    B - Tensor to element-wise multiply to this tensor.
    Returns:
    -
    The sum of all entries in this tensor.
    +
    The result of the element-wise tensor multiplication.
    +
    Throws:
    +
    IllegalArgumentException - If the tensors do not have the same shape.
  • -
    -

    sqrt

    +
    +

    sub

    -
    public CooTensor sqrt()
    -
    Computes the element-wise square root of a tensor.
    +
    public Tensor sub(double a)
    +
    Adds specified value to all entries of this tensor.
    Specified by:
    -
    sqrt in interface TensorOperationsMixin<CooTensor,Tensor,CooCTensor,CTensor,CooTensor,Double>
    -
    Overrides:
    -
    sqrt in class RealSparseTensorBase<CooTensor,Tensor,CooCTensor,CTensor>
    +
    sub in interface TensorOperationsMixin<CooTensor,Tensor,CooCTensor,CTensor,CooTensor,Double>
    +
    Parameters:
    +
    a - Value to add to all entries of this tensor.
    Returns:
    -
    The result of applying an element-wise square root to this tensor. Note, this method will compute - the principle square root i.e. the square root with positive real part.
    +
    The result of adding the specified value to each entry of this tensor.
  • -
    -

    abs

    +
    +

    sub

    -
    public CooTensor abs()
    -
    Computes the element-wise absolute value/magnitude of a tensor. If the tensor contains complex values, the magnitude will - be computed.
    +
    public CTensor sub(CNumber a)
    +
    Subtracts a specified value from all entries of this tensor.
    Specified by:
    -
    abs in interface TensorOperationsMixin<CooTensor,Tensor,CooCTensor,CTensor,CooTensor,Double>
    -
    Overrides:
    -
    abs in class RealSparseTensorBase<CooTensor,Tensor,CooCTensor,CTensor>
    +
    sub in interface TensorOperationsMixin<CooTensor,Tensor,CooCTensor,CTensor,CooTensor,Double>
    +
    Parameters:
    +
    a - Value to subtract from all entries of this tensor.
    Returns:
    -
    The result of applying an element-wise absolute value/magnitude to this tensor.
    +
    The result of subtracting the specified value from each entry of this tensor.
    @@ -871,10 +991,22 @@

    abs

    transpose

    public CooTensor transpose()
    -
    Computes the transpose of a tensor. Same as T().
    +
    Computes the transpose of a tensor. Same as T(). + In the context of a tensor, this exchanges the first and last axis of the tensor. + Also see TensorExclusiveMixin.transpose(int, int) and T(int, int).
    +
    Specified by:
    +
    transpose in interface TensorOperationsMixin<CooTensor,Tensor,CooCTensor,CTensor,CooTensor,Double>
    Returns:
    The transpose of this tensor.
    +
    See Also:
    +
    + +
    @@ -884,29 +1016,21 @@

    transpose

    T

    public CooTensor T()
    -
    Computes the transpose of a tensor. Same as transpose().
    -
    -
    Returns:
    -
    The transpose of this tensor.
    -
    -
    - -
  • -
  • -
    -

    recip

    -
    -
    public CooTensor recip()
    -
    Computes the reciprocals, element-wise, of a tensor.
    +
    Computes the transpose of a tensor. Same as transpose(). + In the context of a tensor, this exchanges the first and last axis of the tensor.
    Specified by:
    -
    recip in interface TensorOperationsMixin<CooTensor,Tensor,CooCTensor,CTensor,CooTensor,Double>
    -
    Overrides:
    -
    recip in class RealSparseTensorBase<CooTensor,Tensor,CooCTensor,CTensor>
    +
    T in interface TensorOperationsMixin<CooTensor,Tensor,CooCTensor,CTensor,CooTensor,Double>
    Returns:
    -
    A tensor containing the reciprocal elements of this tensor.
    -
    Throws:
    -
    ArithmeticException - If this tensor contains any zeros.
    +
    The transpose of this tensor.
    +
    See Also:
    +
    + +
    @@ -918,6 +1042,8 @@

    get

    public Double get(int... indices)
    Gets the element in this tensor at the specified indices.
    +
    Specified by:
    +
    get in interface TensorOperationsMixin<CooTensor,Tensor,CooCTensor,CTensor,CooTensor,Double>
    Parameters:
    indices - Indices of element.
    Returns:
    @@ -935,6 +1061,8 @@

    copy

    public CooTensor copy()
    Creates a copy of this tensor.
    +
    Specified by:
    +
    copy in interface TensorOperationsMixin<CooTensor,Tensor,CooCTensor,CTensor,CooTensor,Double>
    Returns:
    A copy of this tensor.
    @@ -948,6 +1076,10 @@

    elemMult

    public CooTensor elemMult(CooTensor B)
    Computes the element-wise multiplication between two tensors.
    +
    Specified by:
    +
    elemMult in interface TensorExclusiveMixin<CooTensor,Tensor,CooTensor,CooCTensor>
    +
    Specified by:
    +
    elemMult in interface TensorOperationsMixin<CooTensor,Tensor,CooCTensor,CTensor,CooTensor,Double>
    Parameters:
    B - Tensor to element-wise multiply to this tensor.
    Returns:
    @@ -959,76 +1091,106 @@

    elemMult

  • -
    -

    elemDiv

    +
    +

    elemMult

    -
    public CooTensor elemDiv(Tensor B)
    -
    Computes the element-wise division between two tensors.
    +
    public CTensor elemMult(CTensor B)
    +
    Computes the element-wise multiplication between two tensors.
    +
    Specified by:
    +
    elemMult in interface TensorExclusiveMixin<CooTensor,Tensor,CooTensor,CooCTensor>
    Parameters:
    -
    B - Tensor to element-wise divide with this tensor.
    +
    B - Tensor to element-wise multiply to this tensor.
    Returns:
    The result of the element-wise tensor multiplication.
    Throws:
    -
    IllegalArgumentException - If this tensor and B do not have the same shape.
    +
    IllegalArgumentException - If the tensors do not have the same shape.
  • -
    -

    reshape

    +
    +

    elemMult

    -
    public CooTensor reshape(int... shape)
    -
    Copies and reshapes tensor if possible. The total number of entries in this tensor must match the total number of entries - in the reshaped tensor.
    +
    public CooCTensor elemMult(CooCTensor B)
    +
    Computes the element-wise multiplication between two tensors.
    Specified by:
    -
    reshape in interface TensorManipulationsMixin<CooTensor>
    -
    Overrides:
    -
    reshape in class RealSparseTensorBase<CooTensor,Tensor,CooCTensor,CTensor>
    +
    elemMult in interface TensorExclusiveMixin<CooTensor,Tensor,CooTensor,CooCTensor>
    Parameters:
    -
    shape - Shape of the new tensor.
    +
    B - Tensor to element-wise multiply to this tensor.
    Returns:
    -
    A tensor which is equivalent to this tensor but with the specified shape.
    +
    The result of the element-wise tensor multiplication.
    Throws:
    -
    IllegalArgumentException - If this tensor cannot be reshaped to the specified dimensions.
    +
    IllegalArgumentException - If the tensors do not have the same shape.
  • -
    -

    argMin

    +
    +

    elemDiv

    -
    public int[] argMin()
    -
    Finds the indices of the minimum value in this tensor.
    +
    public CooCTensor elemDiv(CTensor B)
    +
    Computes the element-wise division between two tensors.
    Specified by:
    -
    argMin in interface TensorPropertiesMixin
    -
    Overrides:
    -
    argMin in class RealSparseTensorBase<CooTensor,Tensor,CooCTensor,CTensor>
    +
    elemDiv in interface TensorExclusiveMixin<CooTensor,Tensor,CooTensor,CooCTensor>
    +
    Parameters:
    +
    B - Tensor to element-wise divide with this tensor.
    Returns:
    -
    The indices of the minimum value in this tensor. If this value occurs multiple times, the indices of the first - entry (in row-major ordering) are returned.
    +
    The result of the element-wise tensor division.
    +
    Throws:
    +
    IllegalArgumentException - If the tensors do not have the same shape.
  • -
    -

    argMax

    +
    +

    elemDiv

    -
    public int[] argMax()
    -
    Finds the indices of the maximum value in this tensor.
    +
    public CooTensor elemDiv(Tensor B)
    +
    Computes the element-wise division between two tensors.
    Specified by:
    -
    argMax in interface TensorPropertiesMixin
    -
    Overrides:
    -
    argMax in class RealSparseTensorBase<CooTensor,Tensor,CooCTensor,CTensor>
    +
    elemDiv in interface TensorExclusiveMixin<CooTensor,Tensor,CooTensor,CooCTensor>
    +
    Specified by:
    +
    elemDiv in interface TensorOperationsMixin<CooTensor,Tensor,CooCTensor,CTensor,CooTensor,Double>
    +
    Parameters:
    +
    B - Tensor to element-wise divide with this tensor.
    +
    Returns:
    +
    The result of the element-wise tensor multiplication.
    +
    Throws:
    +
    IllegalArgumentException - If this tensor and B do not have the same shape.
    +
    +
    +
    +
  • +
  • +
    +

    tensorInv

    +
    +
    public Tensor tensorInv(int numIndices)
    +

    Computes the 'inverse' of this tensor. That is, computes the tensor X=this.tensorInv() such that + this.tensorDot(X, numIndices) is the 'identity' tensor for the tensor dot product operation. + A tensor I is the identity for a tensor dot product if this.tensorDot(I, numIndices).equals(this).

    + +

    WARNING: This method will convert this tensor to a dense tensor.

    +
    +
    Specified by:
    +
    tensorInv in interface TensorExclusiveMixin<CooTensor,Tensor,CooTensor,CooCTensor>
    +
    Parameters:
    +
    numIndices - The number of first numIndices which are involved in the inverse sum.
    Returns:
    -
    The indices of the maximum value in this tensor. If this value occurs multiple times, the indices of the first - entry (in row-major ordering) are returned.
    +
    The 'inverse' of this tensor as defined in the above sense.
    +
    See Also:
    +
    + +
    @@ -1040,6 +1202,8 @@

    flatten

    public CooTensor flatten(int axis)
    Flattens a tensor along the specified axis.
    +
    Specified by:
    +
    flatten in interface TensorManipulationsMixin<CooTensor>
    Parameters:
    axis - Axis along which to flatten tensor.
    Throws:
    @@ -1094,6 +1258,21 @@

    allClose

  • +
    +

    toMatrix

    +
    +
    public CooMatrix toMatrix(Shape matShape)
    +
    Converts this tensor to a matrix with the specified shape.
    +
    +
    Parameters:
    +
    matShape - Shape of the resulting matrix. Must be broadcastable with the shape of this tensor.
    +
    Returns:
    +
    A matrix of shape matShape with the values of this tensor.
    +
    +
    +
    +
  • +
  • toDense

    diff --git a/docs/org/flag4j/arrays/sparse/CooVector.html b/docs/org/flag4j/arrays/sparse/CooVector.html index 24204936b..97ae3c984 100644 --- a/docs/org/flag4j/arrays/sparse/CooVector.html +++ b/docs/org/flag4j/arrays/sparse/CooVector.html @@ -1,11 +1,11 @@ - + CooVector - + @@ -137,7 +137,7 @@

    Field Summary

    Fields inherited from class org.flag4j.core.sparse_base.SparseTensorBase

    -nonZeroEntries
    +nnz
  • Fields inherited from class org.flag4j.core.TensorBase

    DEFAULT_ROUND_TO_ZERO_THRESHOLD, entries, shape
    @@ -285,130 +285,140 @@

    Method Summary

    Extends a vector a specified number of times to a matrix.
    -
    flatten(int axis)
    +
    +
    Flattens tensor to single dimension.
    +
    + +
    flatten(int axis)
    +
    Flattens a tensor along the specified axis.
    -
    static CooVector
    - -
    +
    static CooVector
    + +
    Creates a sparse tensor from a dense tensor.
    - -
    get(int... indices)
    -
    -
    Gets the element in this tensor at the specified indices.
    -
    -
    protected CooVector
    - + +
    get(int... indices)
    -
    Simply returns a reference of this tensor.
    +
    Gets the element in this tensor at the specified indices.
    - - +
    protected CooVector
    +
    -
    Computes the inner product between two vectors.
    +
    Simply returns a reference of this tensor.
    - - + +
    Computes the inner product between two vectors.
    - - + +
    Computes the inner product between two vectors.
    - - + +
    Computes the inner product between two vectors.
    -
    boolean
    - + +
    -
    Checks if a vector is parallel to this vector.
    +
    Computes the inner product between two vectors.
    boolean
    - +
    -
    Checks if a vector is perpendicular to this vector.
    +
    Checks if a vector is parallel to this vector.
    - - +
    boolean
    +
    -
    Joins specified vector with this vector.
    +
    Checks if a vector is perpendicular to this vector.
    - - + +
    Joins specified vector with this vector.
    - - + +
    Joins specified vector with this vector.
    - - + +
    Joins specified vector with this vector.
    -
    int
    - + +
    +
    Joins specified vector with this vector.
    +
    +
    int
    + +
    Gets the length of a vector.
    -
    protected CooCVector
    -
    makeComplexTensor(Shape shape, +
    protected CooCVector
    +
    makeComplexTensor(Shape shape, CNumber[] entries, int[][] indices)
    -
    +
    A factory for creating a complex sparse tensor.
    -
    protected Vector
    -
    makeDenseTensor(Shape shape, +
    protected Vector
    +
    makeDenseTensor(Shape shape, double[] entries)
    -
    +
    A factory for creating a real dense tensor.
    -
    protected CooVector
    -
    makeTensor(Shape shape, +
    protected CooVector
    +
    makeTensor(Shape shape, double[] entries, int[][] indices)
    -
    +
    A factory for creating a real sparse tensor.
    - - -
    + + +
    Computes a unit vector in the same direction as this vector.
    - - + + +
    +
    Computes the outer product of two vectors.
    +
    + +
    Computes the outer product of two vectors.
    - - + +
    Computes the outer product of two vectors.
    - - + +
    Computes the outer product of two vectors.
    - - + +
    repeat(int n, + int axis)
    -
    Computes the outer product of two vectors.
    +
    Repeats a vector n times along a certain axis to create a matrix.
    - -
    repeat(int n, - int axis)
    + +
    reshape(Shape shape)
    -
    Repeats a vector n times along a certain axis to create a matrix.
    +
    Copies and reshapes tensor if possible.
    set(double value, @@ -544,7 +554,7 @@

    Method Summary

    +abs, argMax, argMin, isNeg, isOnes, isPos, isZeros, max, maxAbs, min, minAbs, mult, mult, nonZeroEntries, recip, reshape, round, round, roundToZero, roundToZero, sqrt, sum

    Methods inherited from class org.flag4j.core.sparse_base.SparseTensorBase

    density, sparsity
    @@ -736,6 +746,41 @@

    set

  • +
    +

    reshape

    +
    +
    public CooVector reshape(Shape shape)
    +
    Copies and reshapes tensor if possible. The total number of entries in this tensor must match the total number of entries + in the reshaped tensor.
    +
    +
    Specified by:
    +
    reshape in interface TensorManipulationsMixin<CooVector>
    +
    Parameters:
    +
    shape - Shape of the new tensor.
    +
    Returns:
    +
    A tensor which is equivalent to this tensor but with the specified shape.
    +
    Throws:
    +
    IllegalArgumentException - If this tensor cannot be reshaped to the specified dimensions.
    +
    +
    +
    +
  • +
  • +
    +

    flatten

    +
    +
    public CooVector flatten()
    +
    Flattens tensor to single dimension. To flatten tensor along a single axis.
    +
    +
    Specified by:
    +
    flatten in interface TensorManipulationsMixin<CooVector>
    +
    Returns:
    +
    The flattened tensor.
    +
    +
    +
    +
  • +
  • join

    diff --git a/docs/org/flag4j/arrays/sparse/CsrCMatrix.html b/docs/org/flag4j/arrays/sparse/CsrCMatrix.html index b5ccfdabc..5b3571e39 100644 --- a/docs/org/flag4j/arrays/sparse/CsrCMatrix.html +++ b/docs/org/flag4j/arrays/sparse/CsrCMatrix.html @@ -1,11 +1,11 @@ - + CsrCMatrix - + @@ -96,12 +96,12 @@

    Class CsrCMatrix

    Complex sparse matrix stored in compressed sparse row (CSR) format.

    CSR matrices are best suited for efficient access and matrix operations. Specifically, matrix-matrix and @@ -147,29 +147,24 @@

    Field Summary

    Column indices of the non-zero entries of the sparse matrix.
    final int
    - +
    -
    The number of non-zero entries stored in this sparse matrix.
    +
    The number of columns in this matrix.
    final int
    - +
    -
    The number of columns in this matrix.
    -
    -
    final int
    - -
    The number of rows in this matrix.
    -
    final int[]
    - -
    +
    final int[]
    + +
    Row indices of the non-zero entries of the sparse matrix.

    Fields inherited from class org.flag4j.core.sparse_base.SparseTensorBase

    -indices, nonZeroEntries
    +indices, nnz

    Fields inherited from class org.flag4j.core.TensorBase

    DEFAULT_ROUND_TO_ZERO_THRESHOLD, entries, shape
    @@ -397,7 +392,7 @@

    Method Summary

    Computes the element-wise multiplication (Hadamard product) between two matrices.
    - +
    Computes the element-wise multiplication (Hadamard product) between two matrices.
    @@ -443,243 +438,253 @@

    Method Summary

    Computes the Frobenius inner product of two matrices.
    -
    flatten(int axis)
    +
    -
    Flattens a tensor along the specified axis.
    +
    Flattens tensor to single dimension.
    - -
    get(int... indices)
    + +
    flatten(int axis)
    -
    Gets the element in this tensor at the specified indices.
    +
    Flattens a tensor along the specified axis.
    - -
    getCol(int j)
    + +
    get(int... indices)
    -
    Get the column of this matrix at the specified index.
    +
    Gets the element in this tensor at the specified indices.
    -
    getCol(int colIdx, - int rowStart, - int rowEnd)
    +
    getCol(int j)
    -
    Gets a specified column of this matrix between rowStart (inclusive) and rowEnd (exclusive).
    +
    Get the column of this matrix at the specified index.
    -
    getColBelow(int rowStart, - int j)
    +
    getCol(int colIdx, + int rowStart, + int rowEnd)
    -
    Get a specified column of this matrix at and below a specified row.
    +
    Gets a specified column of this matrix between rowStart (inclusive) and rowEnd (exclusive).
    - +
    getColBelow(int rowStart, + int j)
    -
    Extracts the diagonal elements of this matrix and returns them as a vector.
    +
    Get a specified column of this matrix at and below a specified row.
    -
    getRow(int i)
    +
    -
    Get the row of this matrix at the specified index.
    +
    Extracts the diagonal elements of this matrix and returns them as a vector.
    -
    getRowAfter(int colStart, - int rowIdx)
    +
    getRow(int i)
    -
    Get a specified row of this matrix at and after a specified column.
    +
    Get the row of this matrix at the specified index.
    -
    protected CsrCMatrix
    - + +
    getRowAfter(int colStart, + int rowIdx)
    +
    Get a specified row of this matrix at and after a specified column.
    +
    +
    protected CsrCMatrix
    + +
    Simply returns a reference of this tensor.
    - -
    getSlice(int rowStart, + +
    getSlice(int rowStart, int rowEnd, int colStart, int colEnd)
    -
    +
    Gets a specified slice of this matrix.
    - -
    H()
    -
    + +
    H()
    +
    Computes the conjugate transpose of this tensor.
    -
    int
    - -
     
    -
    boolean
    - -
    -
    Checks if a matrix is anti-Hermitian.
    -
    +
    int
    + +
     
    boolean
    - +
    -
    Checks if a matrix has full rank.
    +
    Checks if a matrix is anti-Hermitian.
    boolean
    - +
    -
    Checks if a matrix is Hermitian.
    +
    Checks if a matrix has full rank.
    boolean
    -
    isI()
    +
    -
    Checks if this matrix is the identity matrix.
    +
    Checks if a matrix is Hermitian.
    boolean
    - +
    isI()
    -
    Checks if a matrix is singular.
    +
    Checks if this matrix is the identity matrix.
    boolean
    - +
    -
    Checks if this matrix is square.
    +
    Checks if a matrix is singular.
    boolean
    - +
    -
    Checks if this matrix is lower triangular.
    +
    Checks if this matrix is square.
    boolean
    - +
    -
    Checks if this matrix is upper triangular.
    +
    Checks if this matrix is lower triangular.
    boolean
    - +
    -
    Checks if this matrix is unitary.
    +
    Checks if this matrix is upper triangular.
    boolean
    - +
    +
    Checks if this matrix is unitary.
    +
    +
    boolean
    + +
    Checks if a matrix can be represented as a vector.
    -
    protected CsrMatrix
    -
    makeRealTensor(Shape shape, +
    protected CsrMatrix
    +
    makeRealTensor(Shape shape, double[] entries, int[][] indices)
    -
    +
    A factory for creating a real sparse tensor.
    -
    protected CsrCMatrix
    -
    makeTensor(Shape shape, +
    protected CsrCMatrix
    +
    makeTensor(Shape shape, CNumber[] entries, int[][] indices)
    -
    +
    A factory for creating a complex sparse tensor.
    -
    int
    - -
    +
    int
    + +
    Computes the rank of this matrix (i.e.
    - - -
    + + +
    Computes the matrix multiplication between two matrices.
    - - -
    + + +
    Computes matrix-vector multiplication.
    - - -
    + + +
    Computes the matrix multiplication between two matrices.
    - - -
    + + +
    Computes matrix-vector multiplication.
    - - -
    + + +
    Computes the matrix multiplication between two matrices.
    - - -
    + + +
    Computes the matrix-vector multiplication.
    - - -
    + + +
    Computes the matrix multiplication between two matrices.
    - - -
    + + +
    Computes matrix-vector multiplication.
    + + +
    +
    Computes the matrix multiplication between two matrices.
    +
    - +
    Computes the matrix multiplication between two matrices.
    - - + +
    -
    Computes the matrix multiplication between two matrices.
    +
    Computes the matrix multiplication between two sparse matrices and stores the result in a CSR matrix.
    - +
    Computes the matrix multiplication between two sparse matrices and stores the result in a CSR matrix.
    - +
    -
    Computes the matrix multiplication between two sparse matrices and stores the result in a CSR matrix.
    +
    Computes the matrix multiplication between two sparse CSR matrices and stores the result in a CSR matrix.
    - +
    Computes the matrix multiplication between two sparse CSR matrices and stores the result in a CSR matrix.
    - - +
    int
    +
    -
    Computes the matrix multiplication between two sparse CSR matrices and stores the result in a CSR matrix.
    +
    Gets the number of columns in this matrix.
    int
    - +
    -
    Gets the number of columns in this matrix.
    +
    Gets the number of rows in this matrix.
    -
    int
    - + +
    pow(int exponent)
    -
    Gets the number of rows in this matrix.
    +
    Computes the matrix power with a given exponent.
    - -
    pow(int exponent)
    + +
    removeCol(int colIndex)
    -
    Computes the matrix power with a given exponent.
    +
    Removes a specified column from this matrix.
    -
    removeCol(int colIndex)
    +
    removeCols(int... colIndices)
    -
    Removes a specified column from this matrix.
    +
    Removes a specified set of columns from this matrix.
    -
    removeCols(int... colIndices)
    +
    removeRow(int rowIndex)
    -
    Removes a specified set of columns from this matrix.
    +
    Removes a specified row from this matrix.
    -
    removeRow(int rowIndex)
    +
    removeRows(int... rowIndices)
    -
    Removes a specified row from this matrix.
    +
    Removes a specified set of rows from this matrix.
    -
    removeRows(int... rowIndices)
    +
    reshape(Shape newShape)
    -
    Removes a specified set of rows from this matrix.
    +
    Copies and reshapes matrix if possible.
    set(double value, @@ -1016,7 +1021,7 @@

    Method Summary

    +abs, argMax, argMin, conj, div, div, isComplex, isOnes, isReal, isZeros, max, maxAbs, min, minAbs, mult, mult, nonZeroEntries, recip, reshape, round, round, roundToZero, roundToZero, sortIndices, sqrt, sum, toReal, toRealSafe

    Methods inherited from class org.flag4j.core.sparse_base.SparseTensorBase

    density, sparsity
    @@ -1085,15 +1090,6 @@

    numCols

  • -
  • -
    -

    nnz

    -
    -
    public final int nnz
    -
    The number of non-zero entries stored in this sparse matrix.
    -
    -
    -
  • @@ -1249,7 +1245,7 @@

    H

    Specified by:
    H in interface ComplexTensorMixin<CsrCMatrix,CsrMatrix>
    Specified by:
    -
    H in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    H in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Returns:
    The complex transpose of this tensor.
    @@ -1479,6 +1475,41 @@

    set

  • +
    +

    reshape

    +
    +
    public CsrCMatrix reshape(Shape newShape)
    +
    Copies and reshapes matrix if possible. The total number of entries in this matrix must match the total number of entries + in the reshaped matrix.
    +
    +
    Specified by:
    +
    reshape in interface TensorManipulationsMixin<CsrCMatrix>
    +
    Parameters:
    +
    newShape - Shape of the new matrix.
    +
    Returns:
    +
    A matrix which is equivalent to this matrix but with the specified shape.
    +
    Throws:
    +
    IllegalArgumentException - If this matrix cannot be reshaped to the specified dimensions.
    +
    +
    +
    +
  • +
  • +
    +

    flatten

    +
    +
    public CsrCMatrix flatten()
    +
    Flattens tensor to single dimension. To flatten tensor along a single axis.
    +
    +
    Specified by:
    +
    flatten in interface TensorManipulationsMixin<CsrCMatrix>
    +
    Returns:
    +
    The flattened tensor.
    +
    +
    +
    +
  • +
  • flatten

    @@ -1503,7 +1534,7 @@

    add

    Computes the element-wise addition between two tensors of the same rank.
    Specified by:
    -
    add in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    add in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Specified by:
    add in interface TensorOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CMatrix,CsrMatrix,CNumber>
    Parameters:
    @@ -1524,7 +1555,7 @@

    add

    Computes the element-wise addition between two tensors of the same rank.
    Specified by:
    -
    add in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    add in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Second tensor in the addition.
    Returns:
    @@ -1577,7 +1608,7 @@

    sub

    Computes the element-wise subtraction between two tensors of the same rank.
    Specified by:
    -
    sub in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    sub in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Specified by:
    sub in interface TensorOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CMatrix,CsrMatrix,CNumber>
    Parameters:
    @@ -1676,7 +1707,7 @@

    numRows

    Gets the number of rows in this matrix.
    Specified by:
    -
    numRows in interface MatrixMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    numRows in interface MatrixMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Returns:
    The number of rows in this matrix.
    @@ -1691,7 +1722,7 @@

    numCols

    Gets the number of columns in this matrix.
    Specified by:
    -
    numCols in interface MatrixMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    numCols in interface MatrixMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Returns:
    The number of columns in this matrix.
    @@ -1706,7 +1737,7 @@

    get

    Gets the element in this tensor at the specified indices.
    Specified by:
    -
    get in interface MatrixMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    get in interface MatrixMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Specified by:
    get in interface TensorOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CMatrix,CsrMatrix,CNumber>
    Parameters:
    @@ -1727,7 +1758,7 @@

    shape

    Gets the shape of this matrix.
    Specified by:
    -
    shape in interface MatrixMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    shape in interface MatrixMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Returns:
    The shape of this matrix.
    @@ -1742,7 +1773,7 @@

    copy

    Creates a copy of this tensor.
    Specified by:
    -
    copy in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    copy in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Specified by:
    copy in interface TensorOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CMatrix,CsrMatrix,CNumber>
    Returns:
    @@ -1778,7 +1809,7 @@

    add

    Computes the element-wise addition between two matrices.
    Specified by:
    -
    add in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    add in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Second matrix in the addition.
    Returns:
    @@ -1797,7 +1828,7 @@

    add

    Computes the element-wise addition between two tensors of the same rank.
    Specified by:
    -
    add in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    add in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Second tensor in the addition.
    Returns:
    @@ -1816,7 +1847,7 @@

    add

    Computes the element-wise addition between two tensors of the same rank.
    Specified by:
    -
    add in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    add in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Second tensor in the addition.
    Returns:
    @@ -1835,7 +1866,7 @@

    add

    Computes the element-wise addition between two tensors of the same rank.
    Specified by:
    -
    add in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    add in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Second tensor in the addition.
    Returns:
    @@ -1854,7 +1885,7 @@

    sub

    Computes the element-wise subtraction of two tensors of the same rank.
    Specified by:
    -
    sub in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    sub in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Second tensor in the subtraction.
    Returns:
    @@ -1873,7 +1904,7 @@

    sub

    Computes the element-wise subtraction of two tensors of the same rank.
    Specified by:
    -
    sub in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    sub in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Second tensor in the subtraction.
    Returns:
    @@ -1892,7 +1923,7 @@

    sub

    Computes the element-wise subtraction of two tensors of the same rank.
    Specified by:
    -
    sub in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    sub in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Second tensor in the subtraction.
    Returns:
    @@ -1911,7 +1942,7 @@

    sub

    Computes the element-wise subtraction of two tensors of the same rank.
    Specified by:
    -
    sub in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    sub in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Second tensor in the subtraction.
    Returns:
    @@ -1930,7 +1961,7 @@

    sub

    Computes the element-wise subtraction of two tensors of the same rank.
    Specified by:
    -
    sub in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    sub in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Second tensor in the subtraction.
    Returns:
    @@ -2021,7 +2052,7 @@

    mult

    Computes the matrix multiplication between two matrices.
    Specified by:
    -
    mult in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    mult in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Second matrix in the matrix multiplication.
    Returns:
    @@ -2041,7 +2072,7 @@

    mult

    Computes the matrix-vector multiplication.
    Specified by:
    -
    mult in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    mult in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    b - Vector to multiply this matrix to.
    Returns:
    @@ -2063,7 +2094,7 @@

    pow

    faster.
    Specified by:
    -
    pow in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    pow in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    exponent - The exponent in the matrix power.
    Returns:
    @@ -2080,7 +2111,7 @@

    elemMult

    Computes the element-wise multiplication (Hadamard product) between two matrices.
    Specified by:
    -
    elemMult in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    elemMult in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Second matrix in the element-wise multiplication.
    Returns:
    @@ -2099,7 +2130,7 @@

    elemMult

    Computes the element-wise multiplication (Hadamard product) between two matrices.
    Specified by:
    -
    elemMult in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    elemMult in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Second matrix in the element-wise multiplication.
    Returns:
    @@ -2135,7 +2166,7 @@

    elemMult

    Computes the element-wise multiplication (Hadamard product) between two matrices.
    Specified by:
    -
    elemMult in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    elemMult in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Second matrix in the element-wise multiplication.
    Returns:
    @@ -2150,11 +2181,11 @@

    elemMult

    elemMult

    -
    public CooCMatrix elemMult(CooCMatrix B)
    +
    public CsrCMatrix elemMult(CooCMatrix B)
    Computes the element-wise multiplication (Hadamard product) between two matrices.
    Specified by:
    -
    elemMult in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    elemMult in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Second matrix in the element-wise multiplication.
    Returns:
    @@ -2173,7 +2204,7 @@

    elemDiv

    Computes the element-wise division between two matrices.
    Specified by:
    -
    elemDiv in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    elemDiv in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Second matrix in the element-wise division.
    Returns:
    @@ -2193,7 +2224,7 @@

    mult

    Computes the matrix multiplication between two matrices.
    Specified by:
    -
    mult in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    mult in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Second matrix in the matrix multiplication.
    Returns:
    @@ -2213,7 +2244,7 @@

    mult

    Computes the matrix multiplication between two matrices.
    Specified by:
    -
    mult in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    mult in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Second matrix in the matrix multiplication.
    Returns:
    @@ -2232,7 +2263,7 @@

    mult

    Computes the matrix multiplication between two matrices.
    Specified by:
    -
    mult in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    mult in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Second matrix in the matrix multiplication.
    Returns:
    @@ -2251,7 +2282,7 @@

    mult

    Computes the matrix multiplication between two matrices.
    Specified by:
    -
    mult in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    mult in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Second matrix in the matrix multiplication.
    Returns:
    @@ -2270,7 +2301,7 @@

    mult

    Computes the matrix multiplication between two matrices.
    Specified by:
    -
    mult in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    mult in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Second matrix in the matrix multiplication.
    Returns:
    @@ -2289,7 +2320,7 @@

    mult

    Computes matrix-vector multiplication.
    Specified by:
    -
    mult in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    mult in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    b - Vector in the matrix-vector multiplication.
    Returns:
    @@ -2308,7 +2339,7 @@

    mult

    Computes matrix-vector multiplication.
    Specified by:
    -
    mult in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    mult in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    b - Vector in the matrix-vector multiplication.
    Returns:
    @@ -2327,7 +2358,7 @@

    mult

    Computes matrix-vector multiplication.
    Specified by:
    -
    mult in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    mult in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    b - Vector in the matrix-vector multiplication.
    Returns:
    @@ -2346,7 +2377,7 @@

    elemDiv

    Computes the element-wise division between two tensors.
    Specified by:
    -
    elemDiv in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    elemDiv in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Specified by:
    elemDiv in interface TensorOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CMatrix,CsrMatrix,CNumber>
    Parameters:
    @@ -2367,7 +2398,7 @@

    det

    Computes the determinant of a square matrix.
    Specified by:
    -
    det in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    det in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Returns:
    The determinant of this matrix.
    Throws:
    @@ -2384,7 +2415,7 @@

    fib

    Computes the Frobenius inner product of two matrices.
    Specified by:
    -
    fib in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    fib in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Second matrix in the Frobenius inner product
    Returns:
    @@ -2403,7 +2434,7 @@

    fib

    Computes the Frobenius inner product of two matrices.
    Specified by:
    -
    fib in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    fib in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Second matrix in the Frobenius inner product
    Returns:
    @@ -2422,7 +2453,7 @@

    fib

    Computes the Frobenius inner product of two matrices.
    Specified by:
    -
    fib in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    fib in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Second matrix in the Frobenius inner product
    Returns:
    @@ -2441,7 +2472,7 @@

    fib

    Computes the Frobenius inner product of two matrices.
    Specified by:
    -
    fib in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    fib in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Second matrix in the Frobenius inner product
    Returns:
    @@ -2460,7 +2491,7 @@

    sumCols

    Sums together the columns of a matrix as if each column was a column vector.
    Specified by:
    -
    sumCols in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    sumCols in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Returns:
    The result of summing together all columns of the matrix as column vectors. If this matrix is an m-by-n matrix, then the result will be a vectors of length m.
    @@ -2476,7 +2507,7 @@

    sumRows

    Sums together the rows of a matrix as if each row was a row vector.
    Specified by:
    -
    sumRows in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    sumRows in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Returns:
    The result of summing together all rows of the matrix as row vectors. If this matrix is an m-by-n matrix, then the result will be a vector of length n.
    @@ -2493,7 +2524,7 @@

    addToEachCol

    treated as if it were a column vector.
    Specified by:
    -
    addToEachCol in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    addToEachCol in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    b - Vector to add to each column of this matrix.
    Returns:
    @@ -2511,7 +2542,7 @@

    addToEachCol

    treated as if it were a column vector.
    Specified by:
    -
    addToEachCol in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    addToEachCol in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    b - Vector to add to each column of this matrix.
    Returns:
    @@ -2529,7 +2560,7 @@

    addToEachCol

    treated as if it were a column vector.
    Specified by:
    -
    addToEachCol in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    addToEachCol in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    b - Vector to add to each column of this matrix.
    Returns:
    @@ -2547,7 +2578,7 @@

    addToEachCol

    treated as if it were a column vector.
    Specified by:
    -
    addToEachCol in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    addToEachCol in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    b - Vector to add to each column of this matrix.
    Returns:
    @@ -2565,7 +2596,7 @@

    addToEachRow

    treated as if it were a row vector for this operation.
    Specified by:
    -
    addToEachRow in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    addToEachRow in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    b - Vector to add to each row of this matrix.
    Returns:
    @@ -2583,7 +2614,7 @@

    addToEachRow

    treated as if it were a row vector for this operation.
    Specified by:
    -
    addToEachRow in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    addToEachRow in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    b - Vector to add to each row of this matrix.
    Returns:
    @@ -2601,7 +2632,7 @@

    addToEachRow

    treated as if it were a row vector for this operation.
    Specified by:
    -
    addToEachRow in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    addToEachRow in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    b - Vector to add to each row of this matrix.
    Returns:
    @@ -2619,7 +2650,7 @@

    addToEachRow

    treated as if it were a row vector for this operation.
    Specified by:
    -
    addToEachRow in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    addToEachRow in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    b - Vector to add to each row of this matrix.
    Returns:
    @@ -2637,7 +2668,7 @@

    stack

    Also see MatrixOperationsMixin.stack(Matrix, int) and augment(Matrix).
    Specified by:
    -
    stack in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    stack in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Matrix to stack to this matrix.
    Returns:
    @@ -2657,7 +2688,7 @@

    stack

    Also see MatrixOperationsMixin.stack(Matrix, int) and augment(Matrix).
    Specified by:
    -
    stack in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    stack in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Matrix to stack to this matrix.
    Returns:
    @@ -2677,7 +2708,7 @@

    stack

    Also see MatrixOperationsMixin.stack(Matrix, int) and augment(Matrix).
    Specified by:
    -
    stack in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    stack in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Matrix to stack to this matrix.
    Returns:
    @@ -2697,7 +2728,7 @@

    stack

    Also see MatrixOperationsMixin.stack(Matrix, int) and augment(Matrix).
    Specified by:
    -
    stack in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    stack in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Matrix to stack to this matrix.
    Returns:
    @@ -2717,7 +2748,7 @@

    augment

    Also see stack(Matrix) and MatrixOperationsMixin.stack(Matrix, int).
    Specified by:
    -
    augment in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    augment in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Matrix to stack to this matrix.
    Returns:
    @@ -2737,7 +2768,7 @@

    augment

    Also see stack(Matrix) and MatrixOperationsMixin.stack(Matrix, int).
    Specified by:
    -
    augment in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    augment in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Matrix to stack to this matrix.
    Returns:
    @@ -2757,7 +2788,7 @@

    augment

    Also see stack(Matrix) and MatrixOperationsMixin.stack(Matrix, int).
    Specified by:
    -
    augment in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    augment in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Matrix to stack to this matrix.
    Returns:
    @@ -2777,7 +2808,7 @@

    augment

    Also see stack(Matrix) and MatrixOperationsMixin.stack(Matrix, int).
    Specified by:
    -
    augment in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    augment in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    B - Matrix to stack to this matrix.
    Returns:
    @@ -2798,7 +2829,7 @@

    stack

    Also see MatrixOperationsMixin.stack(Vector, int) and augment(Vector).
    Specified by:
    -
    stack in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    stack in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    b - Vector to stack to this matrix.
    Returns:
    @@ -2820,7 +2851,7 @@

    stack

    Also see MatrixOperationsMixin.stack(CooVector, int) and augment(CooVector).
    Specified by:
    -
    stack in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    stack in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    b - Vector to stack to this matrix.
    Returns:
    @@ -2842,7 +2873,7 @@

    stack

    Also see MatrixOperationsMixin.stack(CVector, int) and augment(CVector).
    Specified by:
    -
    stack in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    stack in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    b - Vector to stack to this matrix.
    Returns:
    @@ -2864,7 +2895,7 @@

    stack

    Also see MatrixOperationsMixin.stack(CooCVector, int) and augment(CooCVector).
    Specified by:
    -
    stack in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    stack in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    b - Vector to stack to this matrix.
    Returns:
    @@ -2887,7 +2918,7 @@

    augment

    Also see stack(Vector) and MatrixOperationsMixin.stack(Vector, int).
    Specified by:
    -
    augment in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    augment in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    b - vector to augment to this matrix.
    Returns:
    @@ -2909,7 +2940,7 @@

    augment

    Also see stack(CooVector) and MatrixOperationsMixin.stack(CooVector, int).
    Specified by:
    -
    augment in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    augment in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    b - vector to augment to this matrix.
    Returns:
    @@ -2931,7 +2962,7 @@

    augment

    Also see stack(CVector) and MatrixOperationsMixin.stack(CVector, int).
    Specified by:
    -
    augment in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    augment in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    b - vector to augment to this matrix.
    Returns:
    @@ -2953,7 +2984,7 @@

    augment

    Also see stack(CooCVector) and MatrixOperationsMixin.stack(CooCVector, int).
    Specified by:
    -
    augment in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    augment in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    b - vector to augment to this matrix.
    Returns:
    @@ -2972,7 +3003,7 @@

    getRow

    Get the row of this matrix at the specified index.
    Specified by:
    -
    getRow in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    getRow in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    i - Index of row to get.
    Returns:
    @@ -2989,7 +3020,7 @@

    getCol

    Get the column of this matrix at the specified index.
    Specified by:
    -
    getCol in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    getCol in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    j - Index of column to get.
    Returns:
    @@ -3008,7 +3039,7 @@

    getCol

    Gets a specified column of this matrix between rowStart (inclusive) and rowEnd (exclusive).
    Specified by:
    -
    getCol in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    getCol in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    colIdx - Index of the column of this matrix to get.
    rowStart - Starting row of the column (inclusive).
    @@ -3032,7 +3063,7 @@

    toVector

    it will be flattened then converted to a vector.
    Specified by:
    -
    toVector in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    toVector in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Returns:
    A vector equivalent to this matrix.
    @@ -3050,7 +3081,7 @@

    getSlice

    Gets a specified slice of this matrix.
    Specified by:
    -
    getSlice in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    getSlice in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    rowStart - Starting row index of slice (inclusive).
    rowEnd - Ending row index of slice (exclusive).
    @@ -3074,7 +3105,7 @@

    getColBelow

    Get a specified column of this matrix at and below a specified row.
    Specified by:
    -
    getColBelow in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    getColBelow in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    rowStart - Index of the row to begin at.
    j - Index of column to get.
    @@ -3096,7 +3127,7 @@

    getRowAfter

    Get a specified row of this matrix at and after a specified column.
    Specified by:
    -
    getRowAfter in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    getRowAfter in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    colStart - Index of the row to begin at.
    rowIdx - Index of the row to get.
    @@ -3120,7 +3151,7 @@

    setCol

    Specified by:
    setCol in interface ComplexMatrixMixin<CsrCMatrix>
    Specified by:
    -
    setCol in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    setCol in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Parameters:
    values - Vector containing the new values for the matrix.
    j - Index of the column of this matrix to set.
    @@ -3143,7 +3174,7 @@

    trace

    Same as tr().
    Specified by:
    -
    trace in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    trace in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Returns:
    The trace of this matrix.
    Throws:
    @@ -3161,7 +3192,7 @@

    tr

    Same as trace().
    Specified by:
    -
    tr in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    tr in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Returns:
    The trace of this matrix.
    Throws:
    @@ -3178,7 +3209,7 @@

    getDiag

    Extracts the diagonal elements of this matrix and returns them as a vector.
    Specified by:
    -
    getDiag in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    +
    getDiag in interface MatrixOperationsMixin<CsrCMatrix,CMatrix,CsrCMatrix,CsrCMatrix,CsrCMatrix,CNumber,CooCVector,CVector>
    Returns:
    A vector containing the diagonal entries of this matrix.
    diff --git a/docs/org/flag4j/arrays/sparse/CsrMatrix.html b/docs/org/flag4j/arrays/sparse/CsrMatrix.html index 1c4384176..40d597a66 100644 --- a/docs/org/flag4j/arrays/sparse/CsrMatrix.html +++ b/docs/org/flag4j/arrays/sparse/CsrMatrix.html @@ -1,11 +1,11 @@ - + CsrMatrix - + @@ -96,12 +96,12 @@

    Class CsrMatrix

    Real sparse matrix stored in compressed sparse row (CSR) format.

    CSR matrices are best suited for efficient access and matrix operations. Specifically, matrix-matrix and @@ -147,29 +147,24 @@

    Field Summary

    Column indices of the non-zero entries of the sparse matrix.
    final int
    - +
    -
    The number of non-zero entries stored in this sparse matrix.
    +
    The number of columns in this matrix.
    final int
    - +
    -
    The number of columns in this matrix.
    -
    -
    final int
    - -
    The number of rows in this matrix.
    -
    final int[]
    - -
    +
    final int[]
    + +
    Row indices of the non-zero entries of the sparse matrix.

    Fields inherited from class org.flag4j.core.sparse_base.SparseTensorBase

    -indices, nonZeroEntries
    +indices, nnz

    Fields inherited from class org.flag4j.core.TensorBase

    DEFAULT_ROUND_TO_ZERO_THRESHOLD, entries, shape
    @@ -396,7 +391,7 @@

    Method Summary

    Computes the element-wise multiplication (Hadamard product) between two matrices.
    - +
    Computes the element-wise multiplication (Hadamard product) between two matrices.
    @@ -452,275 +447,285 @@

    Method Summary

    Computes the Frobenius inner product of two matrices.
    -
    flatten(int axis)
    +
    -
    Flattens a tensor along the specified axis.
    +
    Flattens tensor to single dimension.
    - -
    get(int... indices)
    + +
    flatten(int axis)
    -
    Gets the element in this tensor at the specified indices.
    +
    Flattens a tensor along the specified axis.
    - -
    getCol(int j)
    + +
    get(int... indices)
    -
    Get the column of this matrix at the specified index.
    +
    Gets the element in this tensor at the specified indices.
    -
    getCol(int colIdx, - int rowStart, - int rowEnd)
    +
    getCol(int j)
    -
    Gets a specified column of this matrix between rowStart (inclusive) and rowEnd (exclusive).
    +
    Get the column of this matrix at the specified index.
    -
    getColBelow(int rowStart, - int j)
    +
    getCol(int colIdx, + int rowStart, + int rowEnd)
    -
    Get a specified column of this matrix at and below a specified row.
    +
    Gets a specified column of this matrix between rowStart (inclusive) and rowEnd (exclusive).
    - +
    getColBelow(int rowStart, + int j)
    -
    Extracts the diagonal elements of this matrix and returns them as a vector.
    +
    Get a specified column of this matrix at and below a specified row.
    -
    getRow(int i)
    +
    -
    Get the row of this matrix at the specified index.
    +
    Extracts the diagonal elements of this matrix and returns them as a vector.
    -
    getRowAfter(int colStart, - int rowIdx)
    +
    getRow(int i)
    -
    Get a specified row of this matrix at and after a specified column.
    +
    Get the row of this matrix at the specified index.
    -
    protected CsrMatrix
    - + +
    getRowAfter(int colStart, + int rowIdx)
    +
    Get a specified row of this matrix at and after a specified column.
    +
    +
    protected CsrMatrix
    + +
    Simply returns a reference of this tensor.
    - -
    getSlice(int rowStart, + +
    getSlice(int rowStart, int rowEnd, int colStart, int colEnd)
    -
    +
    Gets a specified slice of this matrix.
    - -
    H()
    -
    + +
    H()
    +
    Compute the hermitian transpose of this matrix.
    -
    int
    - -
     
    -
    static CsrMatrix
    -
    I(int size)
    -
    -
    Constructs an identity matrix stored in CSR format with the specified shape.
    -
    +
    int
    + +
     
    static CsrMatrix
    -
    I(int numRows, - int numCols)
    +
    I(int size)
    -
    Constructs an identity-like matrix stored in CSR format with the specified shape.
    +
    Constructs an identity matrix stored in CSR format with the specified shape.
    static CsrMatrix
    -
    I(Shape shape)
    +
    I(int numRows, + int numCols)
    Constructs an identity-like matrix stored in CSR format with the specified shape.
    -
    boolean
    - -
    -
    Checks if a matrix is anti-symmetric.
    +
    static CsrMatrix
    +
    I(Shape shape)
    +
    +
    Constructs an identity-like matrix stored in CSR format with the specified shape.
    boolean
    - +
    -
    Checks if this matrix is diagonal.
    +
    Checks if a matrix is anti-symmetric.
    boolean
    - +
    -
    Checks if a matrix has full rank.
    +
    Checks if this matrix is diagonal.
    boolean
    -
    isI()
    +
    -
    Checks if this matrix is the identity matrix.
    +
    Checks if a matrix has full rank.
    boolean
    - +
    isI()
    -
    Checks if this matrix is orthogonal.
    +
    Checks if this matrix is the identity matrix.
    boolean
    - +
    -
    Checks if a matrix is singular.
    +
    Checks if this matrix is orthogonal.
    boolean
    - +
    -
    Checks if this matrix is square.
    +
    Checks if a matrix is singular.
    boolean
    - +
    -
    Checks if a matrix is symmetric.
    +
    Checks if this matrix is square.
    boolean
    - +
    -
    Checks if this matrix is triangular (i.e.
    +
    Checks if a matrix is symmetric.
    boolean
    - +
    -
    Checks if this matrix is lower triangular.
    +
    Checks if this matrix is triangular (i.e.
    boolean
    - +
    -
    Checks if this matrix is upper triangular.
    +
    Checks if this matrix is lower triangular.
    boolean
    - +
    +
    Checks if this matrix is upper triangular.
    +
    +
    boolean
    + +
    Checks if a matrix can be represented as a vector.
    -
    protected CsrCMatrix
    -
    makeComplexTensor(Shape shape, +
    protected CsrCMatrix
    +
    makeComplexTensor(Shape shape, CNumber[] entries, int[][] indices)
    -
    +
    A factory for creating a complex sparse tensor.
    -
    protected Matrix
    -
    makeDenseTensor(Shape shape, +
    protected Matrix
    +
    makeDenseTensor(Shape shape, double[] entries)
    -
    +
    A factory for creating a real dense tensor.
    -
    protected CsrMatrix
    -
    makeTensor(Shape shape, +
    protected CsrMatrix
    +
    makeTensor(Shape shape, double[] entries, int[][] indices)
    -
    +
    A factory for creating a real sparse tensor.
    -
    int
    - -
    +
    int
    + +
    Computes the rank of this matrix (i.e.
    - - -
    + + +
    Computes the matrix multiplication between two matrices.
    - - -
    + + +
    Computes matrix-vector multiplication.
    - - -
    + + +
    Computes the matrix multiplication between two matrices.
    - - -
    + + +
    Computes matrix-vector multiplication.
    - - -
    + + +
    Computes the matrix multiplication between two matrices.
    - - -
    + + +
    Computes matrix-vector multiplication.
    - - -
    + + +
    Computes the matrix multiplication between two matrices.
    - - -
    + + +
    Computes the matrix-vector multiplication.
    - - + + +
    +
    Computes the matrix multiplication between two sparse CSR matrices.
    +
    + +
    Computes the matrix multiplication between two sparse CSR matrices.
    - - + +
    -
    Computes the matrix multiplication between two sparse CSR matrices.
    +
    Computes the matrix multiplication between two sparse matrices and stores the result in a CSR matrix.
    - - + +
    Computes the matrix multiplication between two sparse matrices and stores the result in a CSR matrix.
    - - + +
    -
    Computes the matrix multiplication between two sparse matrices and stores the result in a CSR matrix.
    +
    Computes the matrix multiplication between two sparse CSR matrices and stores the result in a CSR matrix.
    - - + +
    Computes the matrix multiplication between two sparse CSR matrices and stores the result in a CSR matrix.
    - - +
    int
    +
    -
    Computes the matrix multiplication between two sparse CSR matrices and stores the result in a CSR matrix.
    +
    Gets the number of columns in this matrix.
    int
    - +
    -
    Gets the number of columns in this matrix.
    +
    Gets the number of rows in this matrix.
    -
    int
    - + +
    pow(int exponent)
    -
    Gets the number of rows in this matrix.
    +
    Computes the matrix power with a given exponent.
    - -
    pow(int exponent)
    + +
    removeCol(int colIndex)
    -
    Computes the matrix power with a given exponent.
    +
    Removes a specified column from this matrix.
    -
    removeCol(int colIndex)
    +
    removeCols(int... colIndices)
    -
    Removes a specified column from this matrix.
    +
    Removes a specified set of columns from this matrix.
    -
    removeCols(int... colIndices)
    +
    removeRow(int rowIndex)
    -
    Removes a specified set of columns from this matrix.
    +
    Removes a specified row from this matrix.
    -
    removeRow(int rowIndex)
    +
    removeRows(int... rowIndices)
    -
    Removes a specified row from this matrix.
    +
    Removes a specified set of rows from this matrix.
    -
    removeRows(int... rowIndices)
    +
    reshape(Shape newShape)
    -
    Removes a specified set of rows from this matrix.
    +
    Copies and reshapes matrix if possible.
    set(double value, @@ -1022,7 +1027,7 @@

    Method Summary

    +abs, argMax, argMin, div, div, isNeg, isOnes, isPos, isZeros, max, maxAbs, min, minAbs, mult, mult, nonZeroEntries, recip, reshape, round, round, roundToZero, roundToZero, sortIndices, sqrt, sum

    Methods inherited from class org.flag4j.core.sparse_base.SparseTensorBase

    density, sparsity
    @@ -1088,15 +1093,6 @@

    numCols

  • -
  • -
    -

    nnz

    -
    -
    public final int nnz
    -
    The number of non-zero entries stored in this sparse matrix.
    -
    -
    -
  • @@ -1307,7 +1303,7 @@

    add

    Computes the element-wise addition between two matrices.
    Specified by:
    -
    add in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    add in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Second matrix in the addition.
    Returns:
    @@ -1327,7 +1323,7 @@

    add

    a csr matrix first.
    Specified by:
    -
    add in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    add in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Second sparse matrix in the sum.
    Returns:
    @@ -1346,7 +1342,7 @@

    add

    Computes the element-wise addition between two tensors of the same rank.
    Specified by:
    -
    add in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    add in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Second tensor in the addition.
    Returns:
    @@ -1365,7 +1361,7 @@

    add

    Computes the element-wise addition between two tensors of the same rank.
    Specified by:
    -
    add in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    add in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Second tensor in the addition.
    Returns:
    @@ -1384,7 +1380,7 @@

    add

    Computes the element-wise addition between two tensors of the same rank.
    Specified by:
    -
    add in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    add in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Second tensor in the addition.
    Returns:
    @@ -1403,7 +1399,7 @@

    sub

    Computes the element-wise subtraction of two tensors of the same rank.
    Specified by:
    -
    sub in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    sub in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Second tensor in the subtraction.
    Returns:
    @@ -1423,7 +1419,7 @@

    sub

    to a CsrMatrix first.
    Specified by:
    -
    sub in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    sub in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Second tensor in the subtraction.
    Returns:
    @@ -1442,7 +1438,7 @@

    sub

    Computes the element-wise subtraction of two tensors of the same rank.
    Specified by:
    -
    sub in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    sub in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Second tensor in the subtraction.
    Returns:
    @@ -1461,7 +1457,7 @@

    sub

    Computes the element-wise subtraction of two tensors of the same rank.
    Specified by:
    -
    sub in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    sub in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Second tensor in the subtraction.
    Returns:
    @@ -1480,7 +1476,7 @@

    sub

    Computes the element-wise subtraction of two tensors of the same rank.
    Specified by:
    -
    sub in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    sub in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Second tensor in the subtraction.
    Returns:
    @@ -1499,7 +1495,7 @@

    mult

    Computes the matrix multiplication between two matrices.
    Specified by:
    -
    mult in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    mult in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Second matrix in the matrix multiplication.
    Returns:
    @@ -1519,7 +1515,7 @@

    mult

    Computes the matrix-vector multiplication.
    Specified by:
    -
    mult in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    mult in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    b - Vector to multiply this matrix to.
    Returns:
    @@ -1539,7 +1535,7 @@

    mult

    Computes matrix-vector multiplication.
    Specified by:
    -
    mult in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    mult in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    b - Vector in the matrix-vector multiplication.
    Returns:
    @@ -1558,7 +1554,7 @@

    mult

    Computes matrix-vector multiplication.
    Specified by:
    -
    mult in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    mult in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    b - Vector in the matrix-vector multiplication.
    Returns:
    @@ -1578,7 +1574,7 @@

    pow

    times.
    Specified by:
    -
    pow in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    pow in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    exponent - The exponent in the matrix power.
    Returns:
    @@ -1595,7 +1591,7 @@

    elemMult

    Computes the element-wise multiplication (Hadamard product) between two matrices.
    Specified by:
    -
    elemMult in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    elemMult in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Second matrix in the element-wise multiplication.
    Returns:
    @@ -1614,7 +1610,7 @@

    elemMult

    Computes the element-wise multiplication (Hadamard product) between two matrices.
    Specified by:
    -
    elemMult in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    elemMult in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Second matrix in the element-wise multiplication.
    Returns:
    @@ -1633,7 +1629,7 @@

    elemMult

    Computes the element-wise multiplication (Hadamard product) between two matrices.
    Specified by:
    -
    elemMult in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    elemMult in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Second matrix in the element-wise multiplication.
    Returns:
    @@ -1648,11 +1644,11 @@

    elemMult

    elemMult

    -
    public CooCMatrix elemMult(CooCMatrix B)
    +
    public CsrCMatrix elemMult(CooCMatrix B)
    Computes the element-wise multiplication (Hadamard product) between two matrices.
    Specified by:
    -
    elemMult in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    elemMult in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Second matrix in the element-wise multiplication.
    Returns:
    @@ -1688,7 +1684,7 @@

    elemDiv

    Computes the element-wise division between two matrices.
    Specified by:
    -
    elemDiv in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    elemDiv in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Second matrix in the element-wise division.
    Returns:
    @@ -1710,7 +1706,7 @@

    det

    WARNING: Currently, this method will convert this matrix to a dense matrix.

    Specified by:
    -
    det in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    det in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Returns:
    The determinant of this matrix.
    Throws:
    @@ -1774,7 +1770,7 @@

    fib

    Computes the Frobenius inner product of two matrices.
    Specified by:
    -
    fib in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    fib in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Second matrix in the Frobenius inner product
    Returns:
    @@ -1793,7 +1789,7 @@

    fib

    Computes the Frobenius inner product of two matrices.
    Specified by:
    -
    fib in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    fib in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Second matrix in the Frobenius inner product
    Returns:
    @@ -1846,7 +1842,7 @@

    fib

    Computes the Frobenius inner product of two matrices.
    Specified by:
    -
    fib in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    fib in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Second matrix in the Frobenius inner product
    Returns:
    @@ -1865,7 +1861,7 @@

    fib

    Computes the Frobenius inner product of two matrices.
    Specified by:
    -
    fib in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    fib in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Second matrix in the Frobenius inner product
    Returns:
    @@ -1884,7 +1880,7 @@

    sumCols

    Sums together the columns of a matrix as if each column was a column vector.
    Specified by:
    -
    sumCols in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    sumCols in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Returns:
    The result of summing together all columns of the matrix as column vectors. If this matrix is an m-by-n matrix, then the result will be a vectors of length m.
    @@ -1900,7 +1896,7 @@

    sumRows

    Sums together the rows of a matrix as if each row was a row vector.
    Specified by:
    -
    sumRows in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    sumRows in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Returns:
    The result of summing together all rows of the matrix as row vectors. If this matrix is an m-by-n matrix, then the result will be a vector of length n.
    @@ -1917,7 +1913,7 @@

    addToEachCol

    treated as if it were a column vector.
    Specified by:
    -
    addToEachCol in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    addToEachCol in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    b - Vector to add to each column of this matrix.
    Returns:
    @@ -1935,7 +1931,7 @@

    addToEachCol

    treated as if it were a column vector.
    Specified by:
    -
    addToEachCol in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    addToEachCol in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    b - Vector to add to each column of this matrix.
    Returns:
    @@ -1953,7 +1949,7 @@

    addToEachCol

    treated as if it were a column vector.
    Specified by:
    -
    addToEachCol in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    addToEachCol in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    b - Vector to add to each column of this matrix.
    Returns:
    @@ -1971,7 +1967,7 @@

    addToEachCol

    treated as if it were a column vector.
    Specified by:
    -
    addToEachCol in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    addToEachCol in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    b - Vector to add to each column of this matrix.
    Returns:
    @@ -1989,7 +1985,7 @@

    addToEachRow

    treated as if it were a row vector for this operation.
    Specified by:
    -
    addToEachRow in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    addToEachRow in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    b - Vector to add to each row of this matrix.
    Returns:
    @@ -2007,7 +2003,7 @@

    addToEachRow

    treated as if it were a row vector for this operation.
    Specified by:
    -
    addToEachRow in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    addToEachRow in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    b - Vector to add to each row of this matrix.
    Returns:
    @@ -2025,7 +2021,7 @@

    addToEachRow

    treated as if it were a row vector for this operation.
    Specified by:
    -
    addToEachRow in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    addToEachRow in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    b - Vector to add to each row of this matrix.
    Returns:
    @@ -2043,7 +2039,7 @@

    addToEachRow

    treated as if it were a row vector for this operation.
    Specified by:
    -
    addToEachRow in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    addToEachRow in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    b - Vector to add to each row of this matrix.
    Returns:
    @@ -2061,7 +2057,7 @@

    stack

    Also see MatrixOperationsMixin.stack(Matrix, int) and augment(Matrix).
    Specified by:
    -
    stack in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    stack in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Matrix to stack to this matrix.
    Returns:
    @@ -2081,7 +2077,7 @@

    stack

    Also see MatrixOperationsMixin.stack(Matrix, int) and augment(Matrix).
    Specified by:
    -
    stack in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    stack in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Matrix to stack to this matrix.
    Returns:
    @@ -2101,7 +2097,7 @@

    stack

    Also see MatrixOperationsMixin.stack(Matrix, int) and augment(Matrix).
    Specified by:
    -
    stack in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    stack in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Matrix to stack to this matrix.
    Returns:
    @@ -2121,7 +2117,7 @@

    stack

    Also see MatrixOperationsMixin.stack(Matrix, int) and augment(Matrix).
    Specified by:
    -
    stack in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    stack in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Matrix to stack to this matrix.
    Returns:
    @@ -2141,7 +2137,7 @@

    stack

    Also see MatrixOperationsMixin.stack(Matrix, int) and augment(Matrix).
    Specified by:
    -
    stack in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    stack in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Matrix to stack to this matrix.
    Returns:
    @@ -2161,7 +2157,7 @@

    stack

    Also see MatrixOperationsMixin.stack(Matrix, int) and augment(Matrix).
    Specified by:
    -
    stack in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    stack in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Matrix to stack to this matrix.
    Returns:
    @@ -2181,7 +2177,7 @@

    augment

    Also see stack(Matrix) and MatrixOperationsMixin.stack(Matrix, int).
    Specified by:
    -
    augment in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    augment in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Matrix to stack to this matrix.
    Returns:
    @@ -2201,7 +2197,7 @@

    augment

    Also see stack(Matrix) and MatrixOperationsMixin.stack(Matrix, int).
    Specified by:
    -
    augment in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    augment in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Matrix to stack to this matrix.
    Returns:
    @@ -2221,7 +2217,7 @@

    augment

    Also see stack(Matrix) and MatrixOperationsMixin.stack(Matrix, int).
    Specified by:
    -
    augment in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    augment in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Matrix to stack to this matrix.
    Returns:
    @@ -2241,7 +2237,7 @@

    augment

    Also see stack(Matrix) and MatrixOperationsMixin.stack(Matrix, int).
    Specified by:
    -
    augment in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    augment in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Matrix to stack to this matrix.
    Returns:
    @@ -2261,7 +2257,7 @@

    augment

    Also see stack(Matrix) and MatrixOperationsMixin.stack(Matrix, int).
    Specified by:
    -
    augment in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    augment in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Matrix to stack to this matrix.
    Returns:
    @@ -2281,7 +2277,7 @@

    augment

    Also see stack(Matrix) and MatrixOperationsMixin.stack(Matrix, int).
    Specified by:
    -
    augment in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    augment in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Matrix to stack to this matrix.
    Returns:
    @@ -2302,7 +2298,7 @@

    stack

    Also see MatrixOperationsMixin.stack(Vector, int) and augment(Vector).
    Specified by:
    -
    stack in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    stack in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    b - Vector to stack to this matrix.
    Returns:
    @@ -2324,7 +2320,7 @@

    stack

    Also see MatrixOperationsMixin.stack(CooVector, int) and augment(CooVector).
    Specified by:
    -
    stack in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    stack in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    b - Vector to stack to this matrix.
    Returns:
    @@ -2346,7 +2342,7 @@

    stack

    Also see MatrixOperationsMixin.stack(CVector, int) and augment(CVector).
    Specified by:
    -
    stack in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    stack in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    b - Vector to stack to this matrix.
    Returns:
    @@ -2368,7 +2364,7 @@

    stack

    Also see MatrixOperationsMixin.stack(CooCVector, int) and augment(CooCVector).
    Specified by:
    -
    stack in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    stack in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    b - Vector to stack to this matrix.
    Returns:
    @@ -2391,7 +2387,7 @@

    augment

    Also see stack(Vector) and MatrixOperationsMixin.stack(Vector, int).
    Specified by:
    -
    augment in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    augment in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    b - vector to augment to this matrix.
    Returns:
    @@ -2413,7 +2409,7 @@

    augment

    Also see stack(CooVector) and MatrixOperationsMixin.stack(CooVector, int).
    Specified by:
    -
    augment in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    augment in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    b - vector to augment to this matrix.
    Returns:
    @@ -2435,7 +2431,7 @@

    augment

    Also see stack(CVector) and MatrixOperationsMixin.stack(CVector, int).
    Specified by:
    -
    augment in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    augment in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    b - vector to augment to this matrix.
    Returns:
    @@ -2457,7 +2453,7 @@

    augment

    Also see stack(CooCVector) and MatrixOperationsMixin.stack(CooCVector, int).
    Specified by:
    -
    augment in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    augment in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    b - vector to augment to this matrix.
    Returns:
    @@ -2476,7 +2472,7 @@

    getRow

    Get the row of this matrix at the specified index.
    Specified by:
    -
    getRow in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    getRow in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    i - Index of row to get.
    Returns:
    @@ -2493,7 +2489,7 @@

    getCol

    Get the column of this matrix at the specified index.
    Specified by:
    -
    getCol in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    getCol in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    j - Index of column to get.
    Returns:
    @@ -2512,7 +2508,7 @@

    getCol

    Gets a specified column of this matrix between rowStart (inclusive) and rowEnd (exclusive).
    Specified by:
    -
    getCol in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    getCol in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    colIdx - Index of the column of this matrix to get.
    rowStart - Starting row of the column (inclusive).
    @@ -2536,7 +2532,7 @@

    toVector

    it will be flattened then converted to a vector.
    Specified by:
    -
    toVector in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    toVector in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Returns:
    A vector equivalent to this matrix.
    @@ -2567,7 +2563,7 @@

    getSlice

    Gets a specified slice of this matrix.
    Specified by:
    -
    getSlice in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    getSlice in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    rowStart - Starting row index of slice (inclusive).
    rowEnd - Ending row index of slice (exclusive).
    @@ -2591,7 +2587,7 @@

    getColBelow

    Get a specified column of this matrix at and below a specified row.
    Specified by:
    -
    getColBelow in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    getColBelow in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    rowStart - Index of the row to begin at.
    j - Index of column to get.
    @@ -2613,7 +2609,7 @@

    getRowAfter

    Get a specified row of this matrix at and after a specified column.
    Specified by:
    -
    getRowAfter in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    getRowAfter in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    colStart - Index of the row to begin at.
    rowIdx - Index of the row to get.
    @@ -2635,7 +2631,7 @@

    setCol

    Sets a column of this matrix.
    Specified by:
    -
    setCol in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    setCol in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    values - Vector containing the new values for the matrix.
    j - Index of the column of this matrix to set.
    @@ -2658,7 +2654,7 @@

    trace

    Same as tr().
    Specified by:
    -
    trace in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    trace in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Returns:
    The trace of this matrix.
    Throws:
    @@ -2676,7 +2672,7 @@

    tr

    Same as trace().
    Specified by:
    -
    tr in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    tr in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Returns:
    The trace of this matrix.
    Throws:
    @@ -2693,7 +2689,7 @@

    getDiag

    Extracts the diagonal elements of this matrix and returns them as a vector.
    Specified by:
    -
    getDiag in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    getDiag in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Returns:
    A vector containing the diagonal entries of this matrix.
    @@ -2708,7 +2704,7 @@

    H

    Compute the hermitian transpose of this matrix. That is, the complex conjugate transpose of this matrix.
    Specified by:
    -
    H in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    H in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Returns:
    The complex conjugate transpose of this matrix.
    @@ -2728,7 +2724,7 @@

    mult

    (even for two very sparse matrices).
    Specified by:
    -
    mult in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    mult in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Second matrix in the matrix multiplication.
    Returns:
    @@ -2753,7 +2749,7 @@

    mult

    (even for two very sparse matrices).
    Specified by:
    -
    mult in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    mult in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Second matrix in the matrix multiplication.
    Returns:
    @@ -2773,7 +2769,7 @@

    mult

    Computes the matrix multiplication between two matrices.
    Specified by:
    -
    mult in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    mult in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Second matrix in the matrix multiplication.
    Returns:
    @@ -2792,7 +2788,7 @@

    mult

    Computes the matrix multiplication between two matrices.
    Specified by:
    -
    mult in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    mult in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Second matrix in the matrix multiplication.
    Returns:
    @@ -2811,7 +2807,7 @@

    mult

    Computes the matrix multiplication between two matrices.
    Specified by:
    -
    mult in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    mult in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    B - Second matrix in the matrix multiplication.
    Returns:
    @@ -2830,7 +2826,7 @@

    mult

    Computes matrix-vector multiplication.
    Specified by:
    -
    mult in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    mult in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Parameters:
    b - Vector in the matrix-vector multiplication.
    Returns:
    @@ -3378,7 +3374,7 @@

    numRows

    Gets the number of rows in this matrix.
    Specified by:
    -
    numRows in interface MatrixMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    numRows in interface MatrixMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Returns:
    The number of rows in this matrix.
    @@ -3393,7 +3389,7 @@

    numCols

    Gets the number of columns in this matrix.
    Specified by:
    -
    numCols in interface MatrixMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    numCols in interface MatrixMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Returns:
    The number of columns in this matrix.
    @@ -3408,7 +3404,7 @@

    shape

    Gets the shape of this matrix.
    Specified by:
    -
    shape in interface MatrixMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    shape in interface MatrixMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Returns:
    The shape of this matrix.
    @@ -3763,6 +3759,41 @@

    set

  • +
    +

    reshape

    +
    +
    public CsrMatrix reshape(Shape newShape)
    +
    Copies and reshapes matrix if possible. The total number of entries in this matrix must match the total number of entries + in the reshaped matrix.
    +
    +
    Specified by:
    +
    reshape in interface TensorManipulationsMixin<CsrMatrix>
    +
    Parameters:
    +
    newShape - Shape of the new matrix.
    +
    Returns:
    +
    A matrix which is equivalent to this matrix but with the specified shape.
    +
    Throws:
    +
    IllegalArgumentException - If this matrix cannot be reshaped to the specified dimensions.
    +
    +
    +
    +
  • +
  • +
    +

    flatten

    +
    +
    public CsrMatrix flatten()
    +
    Flattens tensor to single dimension. To flatten tensor along a single axis.
    +
    +
    Specified by:
    +
    flatten in interface TensorManipulationsMixin<CsrMatrix>
    +
    Returns:
    +
    The flattened tensor.
    +
    +
    +
    +
  • +
  • flatten

    @@ -3787,7 +3818,7 @@

    add

    Computes the element-wise addition between two tensors of the same rank.
    Specified by:
    -
    add in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    add in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Specified by:
    add in interface TensorOperationsMixin<CsrMatrix,Matrix,CsrCMatrix,CMatrix,CsrMatrix,Double>
    Parameters:
    @@ -3842,7 +3873,7 @@

    sub

    Computes the element-wise subtraction between two tensors of the same rank.
    Specified by:
    -
    sub in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    sub in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Specified by:
    sub in interface TensorOperationsMixin<CsrMatrix,Matrix,CsrCMatrix,CMatrix,CsrMatrix,Double>
    Parameters:
    @@ -3912,7 +3943,7 @@

    get

    Gets the element in this tensor at the specified indices.
    Specified by:
    -
    get in interface MatrixMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    get in interface MatrixMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Specified by:
    get in interface TensorOperationsMixin<CsrMatrix,Matrix,CsrCMatrix,CMatrix,CsrMatrix,Double>
    Parameters:
    @@ -3933,7 +3964,7 @@

    copy

    Creates a copy of this tensor.
    Specified by:
    -
    copy in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    copy in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Specified by:
    copy in interface TensorOperationsMixin<CsrMatrix,Matrix,CsrCMatrix,CMatrix,CsrMatrix,Double>
    Returns:
    @@ -3969,7 +4000,7 @@

    elemDiv

    Computes the element-wise division between two tensors.
    Specified by:
    -
    elemDiv in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,Double,CooVector,Vector>
    +
    elemDiv in interface MatrixOperationsMixin<CsrMatrix,Matrix,CsrMatrix,CsrCMatrix,CsrCMatrix,Double,CooVector,Vector>
    Specified by:
    elemDiv in interface TensorOperationsMixin<CsrMatrix,Matrix,CsrCMatrix,CMatrix,CsrMatrix,Double>
    Parameters:
    diff --git a/docs/org/flag4j/arrays/sparse/PermutationMatrix.html b/docs/org/flag4j/arrays/sparse/PermutationMatrix.html index 82dd4ba30..b49e75698 100644 --- a/docs/org/flag4j/arrays/sparse/PermutationMatrix.html +++ b/docs/org/flag4j/arrays/sparse/PermutationMatrix.html @@ -1,11 +1,11 @@ - + PermutationMatrix - + diff --git a/docs/org/flag4j/arrays/sparse/SparseUtils.html b/docs/org/flag4j/arrays/sparse/SparseUtils.html index 8f385cbc2..9e6d946b4 100644 --- a/docs/org/flag4j/arrays/sparse/SparseUtils.html +++ b/docs/org/flag4j/arrays/sparse/SparseUtils.html @@ -1,11 +1,11 @@ - + SparseUtils - + diff --git a/docs/org/flag4j/arrays/sparse/SymmTriDiagonal.html b/docs/org/flag4j/arrays/sparse/SymmTriDiagonal.html index b7d07e253..5b5044b4a 100644 --- a/docs/org/flag4j/arrays/sparse/SymmTriDiagonal.html +++ b/docs/org/flag4j/arrays/sparse/SymmTriDiagonal.html @@ -1,11 +1,11 @@ - + SymmTriDiagonal - + diff --git a/docs/org/flag4j/arrays/sparse/package-summary.html b/docs/org/flag4j/arrays/sparse/package-summary.html index 63d11cd32..b19b53055 100644 --- a/docs/org/flag4j/arrays/sparse/package-summary.html +++ b/docs/org/flag4j/arrays/sparse/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.arrays.sparse - + diff --git a/docs/org/flag4j/arrays/sparse/package-tree.html b/docs/org/flag4j/arrays/sparse/package-tree.html index 83e0d6872..c820a3399 100644 --- a/docs/org/flag4j/arrays/sparse/package-tree.html +++ b/docs/org/flag4j/arrays/sparse/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.arrays.sparse Class Hierarchy - + @@ -66,18 +66,18 @@

    Class Hierarchy

    diff --git a/docs/org/flag4j/complex_numbers/CNumber.html b/docs/org/flag4j/complex_numbers/CNumber.html index 4a18754f6..456317eb1 100644 --- a/docs/org/flag4j/complex_numbers/CNumber.html +++ b/docs/org/flag4j/complex_numbers/CNumber.html @@ -1,11 +1,11 @@ - + CNumber - + @@ -97,8 +97,9 @@

    Class CNumber


    public class CNumber extends Number
    -
    A complex number stored in rectangular form. The real and imaginary components of the complex number are stored as - 64 bit doubles.
    +

    A complex number stored in rectangular form with both the real and imaginary components stored as a 64-bit floats.

    + +

    A CNumber is immutable.

    See Also:
    @@ -120,92 +121,92 @@

    Field Summary

    Modifier and Type
    Field
    Description
    -
    private static final CNumber
    +
    static final CNumber
    The real double value closer to the mathematical constant e than any other.
    -
    double
    +
    final double
    Imaginary component of the complex number.
    -
    private static final CNumber
    +
    static final CNumber
    The imaginary unit i.
    -
    private static final CNumber
    +
    static final CNumber
    The additive inverse of the imaginary unit, -i.
    -
    private static final CNumber
    +
    static final CNumber
    The maximum real double value 1.7976931348623157E308.
    -
    private static final CNumber
    +
    static final CNumber
    The minimum real double value 4.9E-324
    -
    private static final CNumber
    +
    static final CNumber
    The smallest possible real normal double 2.2250738585072014E-308.
    -
    private static final CNumber
    +
    static final CNumber
    Complex number with real and imaginary parts equal to Double.NaN.
    -
    private static final CNumber
    +
    static final CNumber
    Complex number with real part equal to Double.NEGATIVE_INFINITY.
    -
    private static final CNumber
    +
    static final CNumber
    The complex number with zero imaginary part and negative one real part.
    -
    private static final CNumber
    +
    static final CNumber
    The complex number with zero imaginary part and one real part.
    -
    private static final CNumber
    +
    static final CNumber
    The real double value closer to pi than any other.
    -
    private static final CNumber
    +
    static final CNumber
    Complex number with real part equal to Double.POSITIVE_INFINITY.
    -
    double
    +
    final double
    Real component of the complex number.
    -
    private static final CNumber
    +
    static final CNumber
    The double value closer than any other to the square root of 3
    -
    private static final CNumber
    +
    static final CNumber
    The double value closer than any other to the square root of 2
    -
    private static final CNumber
    +
    static final CNumber
    The complex number with zero imaginary part and two real part.
    -
    private static final CNumber
    +
    static final CNumber
    The complex number with zero imaginary and real parts.
    @@ -221,28 +222,20 @@

    Constructor Summary

    Constructor
    Description
    - +
    CNumber(double re)
    -
    Constructs a complex number with value and magnitude 0.
    -
    -
    CNumber(double re)
    -
    Constructs a complex number with specified real component and zero imaginary component.
    -
    CNumber(double re, +
    CNumber(double re, double im)
    -
    +
    Constructs a complex number with specified complex and real components.
    - -
    + +
    Constructs a complex number from a string of the form "a +/- bi" where a and {b} are real values and either may be omitted.
    - -
    -
    Creates a new complex number which is the copy of the specified complex number.
    -
  • @@ -282,16 +275,6 @@

    Method Summary

    Adds two complex numbers.
    -
    void
    -
    addEq(double b)
    -
    -
    Adds a specified number to this complex number and stores the result in this complex number.
    -
    - - -
    -
    Adds a specified number to this complex number and stores the result in this complex number.
    -
    @@ -377,81 +360,61 @@

    Method Summary

    Computes the complex conjugate of this complex number.
    - - -
    -
    Creates a copy of this complex number.
    +
    static CNumber
    +
    cos(double num)
    +
    +
    Computes the trigonometric cosine of a value.
    static CNumber
    -
    cos(double num)
    +
    cos(CNumber num)
    -
    Computes the trigonometric cosine of a value.
    +
    Computes the trigonometric cosine value of a complex value.
    static CNumber
    -
    cos(CNumber num)
    +
    cosh(double num)
    -
    Computes the trigonometric cosine value of a complex value.
    +
    Computes the hyperbolic cosine of a value.
    static CNumber
    -
    cosh(double num)
    +
    -
    Computes the hyperbolic cosine of a value.
    -
    -
    static CNumber
    - -
    Computes the hyperbolic cosine of a complex value.
    - -
    div(double b)
    -
    -
    Computes the division of a complex numbers with a double value.
    -
    - +
    div(double b)
    -
    Computes the division of two complex numbers.
    +
    Computes the division of a complex numbers with a double value.
    -
    void
    -
    divEq(double b)
    + +
    -
    Computes the division of a complex numbers with a double value and stores in this complex number.
    +
    Computes the division of two complex numbers.
    -
    void
    - +
    double
    +
    -
    Computes the division of a complex numbers with a double value and stores in this complex number.
    +
    Gets the double value of the imaginary component of this complex number.
    double
    - +
    -
    Gets the double value of the imaginary component of this complex number.
    +
    Gets the value of the specified number as a double.
    -
    double
    - +
    boolean
    +
    equals(double b)
    -
    Gets the value of the specified number as a double.
    +
    Checks if a complex number is numerically equal to some double value.
    boolean
    -
    equals(double b)
    +
    -
    Checks if a complex number is equal to some double value.
    +
    Checks if two complex numbers are equal.
    boolean
    - +
    -
    Checks if two complex numbers are equal.
    -
    -
    boolean
    - -
    Checks if a Number is numerically equal to this complex number.
    -
    static CNumber
    - -
    -
    Gets the complex number equivalent to Math.E.
    -
    static CNumber
    exp(double exponent)
    @@ -488,138 +451,128 @@

    Method Summary

    Gets the imaginary component of this complex number.
    -
    static CNumber
    - -
    -
    Gets the complex number equivalent to i.
    +
    int
    + +
    +
    Note: This method may result in loss of accuracy
    int
    - +
    -
    Note: This method may result in loss of accuracy
    +
    Gets the value of the specified number as an int.
    -
    int
    - +
    boolean
    +
    -
    Gets the value of the specified number as an int.
    +
    Checks if this complex number has non-zero imaginary part.
    boolean
    - +
    -
    Checks if this complex number has non-zero imaginary part.
    +
    Checks if this complex number is a real valued double.
    boolean
    - +
    -
    Checks if this complex number is a real valued double.
    +
    Checks that both components of this complex number are finite valued.
    boolean
    - +
    -
    Checks that both components of this complex number are finite valued.
    +
    Checks if this complex number has zero real part.
    boolean
    - +
    -
    Checks if this complex number has zero real part.
    +
    Checks if either component of this complex number is infinitely large in absolute value.
    boolean
    - +
    -
    Checks if either component of this complex number is infinitely large in absolute value.
    +
    Checks if this complex number is a real valued integer.
    boolean
    - +
    -
    Checks if this complex number is a real valued integer.
    +
    Checks if either component of this complex number is NaN.
    boolean
    - +
    -
    Checks if either component of this complex number is NaN.
    -
    -
    boolean
    - -
    Checks if this complex number has zero imaginary part.
    -
    static int
    - -
    -
    Gets the length of the string representation of this complex number.
    -
    -
    static CNumber
    -
    ln(double num)
    +
    static int
    +
    -
    Computes the natural logarithm of a double.
    +
    Gets the length of the string representation of this complex number.
    static CNumber
    -
    ln(CNumber num)
    +
    ln(double num)
    -
    Computes the complex natural logarithm of a complex number.
    +
    Computes the natural logarithm of a double.
    static CNumber
    -
    log(double num)
    +
    ln(CNumber num)
    -
    Computes the complex logarithm base 10 of a complex number.
    +
    Computes the complex natural logarithm of a complex number.
    static CNumber
    -
    log(double base, - double num)
    +
    log(double num)
    -
    Computes the complex logarithm, with specified base, of a complex number.
    +
    Computes the complex logarithm base 10 of a complex number.
    static CNumber
    -
    log(double base, - CNumber num)
    +
    log(double base, + double num)
    Computes the complex logarithm, with specified base, of a complex number.
    static CNumber
    -
    log(CNumber num)
    +
    log(double base, + CNumber num)
    -
    Computes the complex logarithm base 10 of a complex number.
    +
    Computes the complex logarithm, with specified base, of a complex number.
    static CNumber
    -
    log(CNumber base, - CNumber num)
    +
    log(CNumber num)
    -
    Computes the complex logarithm, with specified base, of a complex number.
    +
    Computes the complex logarithm base 10 of a complex number.
    -
    long
    - -
    -
    Note: This method may result in loss of accuracy
    +
    static CNumber
    +
    log(CNumber base, + CNumber num)
    +
    +
    Computes the complex logarithm, with specified base, of a complex number.
    long
    - +
    -
    Gets the value of the specified number as a long.
    +
    Note: This method may result in loss of accuracy
    -
    double
    -
    mag()
    +
    long
    +
    -
    Computes the magnitude value of a complex number as a double.
    +
    Gets the value of the specified number as a long.
    double
    - +
    mag()
    -
    Squares this magnitude of this complex number.
    +
    Computes the magnitude value of a complex number as a double.
    -
    static CNumber
    -
    max(CNumber... values)
    -
    -
    Computes the maximum magnitude from an array of complex numbers.
    +
    double
    + +
    +
    Squares this magnitude of this complex number.
    static CNumber
    -
    maxRe(CNumber... values)
    +
    max(CNumber... values)
    -
    Computes the minimum real component from an array of complex numbers.
    +
    Computes the maximum magnitude from an array of complex numbers.
    static CNumber
    - +
    maxRe(CNumber... values)
    -
    Gets the complex number equivalent to Double.MAX_VALUE.
    +
    Computes the minimum real component from an array of complex numbers.
    static CNumber
    min(CNumber... values)
    @@ -631,16 +584,6 @@

    Method Summary

    Computes the minimum real component from an array of complex numbers.
    -
    static CNumber
    - -
    -
    Gets the complex number equivalent to Double.MIN_VALUE.
    -
    -
    static CNumber
    - -
    -
    Gets the complex number equivalent to Double.MIN_NORMAL.
    -
    mult(double b)
    @@ -651,218 +594,143 @@

    Method Summary

    Computes the multiplication of two complex numbers.
    -
    void
    -
    multEq(double b)
    -
    -
    Multiplies this complex number with another complex number and stores the result in this CNumber.
    -
    -
    void
    - -
    -
    Multiplies this complex number with another complex number and stores the result in this CNumber.
    -
    Computes the multiplicative inverse of this complex number.
    -
    static CNumber
    -
    nan()
    -
    -
    Gets the complex number equivalent to Double.NaN.
    -
    -
    static boolean
    -
    nearZero(CNumber n, +
    static boolean
    +
    nearZero(CNumber n, double tol)
    -
    -
    Checks if a number is near zero in magnitude.
    -
    -
    static CNumber
    -
    -
    Gets the complex number equivalent to -i.
    -
    -
    static CNumber
    - -
    -
    Gets the complex number equivalent to Double.NEGATIVE_INFINITY.
    -
    -
    static CNumber
    - -
    -
    Gets the complex number equivalent to negative one.
    -
    -
    static CNumber
    -
    one()
    -
    -
    Gets the complex number equivalent to one.
    -
    -
    static CNumber
    -
    pi()
    -
    -
    Gets the complex number equivalent to Math.PI.
    +
    Checks if a number is near zero in magnitude.
    static CNumber
    - +
    pow(double a, + double b)
    -
    Gets the complex number equivalent to Double.POSITIVE_INFINITY.
    +
    Compute a raised to the power of b.
    static CNumber
    -
    pow(double a, - double b)
    +
    pow(double a, + CNumber b)
    Compute a raised to the power of b.
    static CNumber
    -
    pow(double a, - CNumber b)
    -
    -
    Compute a raised to the power of b.
    -
    -
    static CNumber
    -
    pow(CNumber a, +
    pow(CNumber a, double b)
    -
    +
    Computes a raised to the power of b.
    -
    static CNumber
    -
    pow(CNumber a, +
    static CNumber
    + -
    +
    Compute a raised to the power of b.
    -
    double
    -
    re()
    -
    +
    double
    +
    re()
    +
    Gets the real component of this complex number.
    -
    static CNumber
    - -
    -
    Gets the complex number equivalent to the square root of three.
    -
    static CNumber
    - +
    -
    Gets the complex number equivalent to the square root of two.
    +
    Rounds both components of a complex number to the nearest respective integer.
    static CNumber
    - +
    round(CNumber n, + int decimals)
    -
    Rounds both components of a complex number to the nearest respective integer.
    +
    Rounds number to specified number of decimal places.
    static CNumber
    -
    round(CNumber n, - int decimals)
    +
    roundToZero(CNumber n, + double tol)
    -
    Rounds number to specified number of decimal places.
    +
    Rounds a complex numbers to zero if its magnitude within the specified tolerance from zero.
    static CNumber
    -
    roundToZero(CNumber n, - double tol)
    +
    sgn(CNumber value)
    -
    Rounds a complex numbers to zero if its magnitude within the specified tolerance from zero.
    +
    The complex signum function.
    static CNumber
    -
    sgn(CNumber value)
    +
    sin(double num)
    -
    The complex signum function.
    +
    Computes the trigonometric sine of a value.
    static CNumber
    -
    sin(double num)
    +
    sin(CNumber num)
    -
    Computes the trigonometric sine of a value.
    +
    Computes the trigonometric sine of a complex value.
    static CNumber
    -
    sin(CNumber num)
    +
    sinh(double num)
    -
    Computes the trigonometric sine of a complex value.
    +
    Computes the hyperbolic sine of a value.
    static CNumber
    -
    sinh(double num)
    +
    -
    Computes the hyperbolic sine of a value.
    +
    Computes the hyperbolic sine of a complex value.
    static CNumber
    - +
    sqrt(double num)
    -
    Computes the hyperbolic sine of a complex value.
    +
    Computes the principle square root of a number.
    static CNumber
    -
    sqrt(double num)
    +
    Computes the principle square root of a number.
    -
    static CNumber
    - -
    -
    Computes the principle square root of a number.
    -
    - -
    sub(double b)
    -
    -
    subtracts a double from a complex number.
    -
    - +
    sub(double b)
    -
    Subtracting two complex numbers.
    +
    subtracts a double from a complex number.
    -
    void
    -
    subEq(double b)
    + +
    -
    Subtracts a specified number to this complex number and stores the result in this complex number.
    +
    Subtracting two complex numbers.
    -
    void
    - -
    -
    Subtracts a specified number from this complex number and stores the result in this complex number.
    +
    static CNumber
    +
    sum(CNumber... numbers)
    +
    +
    Sums an array of complex numbers.
    static CNumber
    -
    sum(CNumber... numbers)
    +
    tan(double num)
    -
    Sums an array of complex numbers.
    +
    Computes the trigonometric tangent of a value.
    static CNumber
    -
    tan(double num)
    +
    tan(CNumber num)
    -
    Computes the trigonometric tangent of a value.
    +
    Computes the trigonometric tangent value of a complex value.
    static CNumber
    -
    tan(CNumber num)
    +
    tanh(double num)
    -
    Computes the trigonometric tangent value of a complex value.
    +
    Computes the hyperbolic tangent of a value.
    static CNumber
    -
    tanh(double num)
    +
    -
    Computes the hyperbolic tangent of a value.
    -
    -
    static CNumber
    - -
    Computes the hyperbolic tangent of a complex value.
    -
    double[]
    - -
    +
    double[]
    + +
    Converts a complex number to an equivalent polar from.
    - - -
    + + +
    Converts the complex number to a string representation.
    -
    static CNumber
    -
    two()
    -
    -
    Gets the complex number equivalent to two.
    -
    -
    static CNumber
    - -
    -
    Gets the complex number equivalent to zero.
    -
    @@ -887,7 +755,7 @@

    Field Details

    ZERO

    -
    private static final CNumber ZERO
    +
    public static final CNumber ZERO
    The complex number with zero imaginary and real parts.
    @@ -896,7 +764,7 @@

    ZERO

    ONE

    -
    private static final CNumber ONE
    +
    public static final CNumber ONE
    The complex number with zero imaginary part and one real part.
    @@ -905,7 +773,7 @@

    ONE

    TWO

    -
    private static final CNumber TWO
    +
    public static final CNumber TWO
    The complex number with zero imaginary part and two real part.
    @@ -914,7 +782,7 @@

    TWO

    NEGATIVE_ONE

    -
    private static final CNumber NEGATIVE_ONE
    +
    public static final CNumber NEGATIVE_ONE
    The complex number with zero imaginary part and negative one real part.
    @@ -923,7 +791,7 @@

    NEGATIVE_ONE

    PI

    -
    private static final CNumber PI
    +
    public static final CNumber PI
    The real double value closer to pi than any other.
    @@ -932,7 +800,7 @@

    PI

    E

    -
    private static final CNumber E
    +
    public static final CNumber E
    The real double value closer to the mathematical constant e than any other.
    @@ -941,7 +809,7 @@

    E

    ROOT_TWO

    -
    private static final CNumber ROOT_TWO
    +
    public static final CNumber ROOT_TWO
    The double value closer than any other to the square root of 2
    @@ -950,7 +818,7 @@

    ROOT_TWO

    ROOT_THREE

    -
    private static final CNumber ROOT_THREE
    +
    public static final CNumber ROOT_THREE
    The double value closer than any other to the square root of 3
    @@ -959,7 +827,7 @@

    ROOT_THREE

    IMAGINARY_UNIT

    -
    private static final CNumber IMAGINARY_UNIT
    +
    public static final CNumber IMAGINARY_UNIT
    The imaginary unit i.
    @@ -968,7 +836,7 @@

    IMAGINARY_UNIT

    INV_IMAGINARY_UNIT

    -
    private static final CNumber INV_IMAGINARY_UNIT
    +
    public static final CNumber INV_IMAGINARY_UNIT
    The additive inverse of the imaginary unit, -i.
    @@ -977,7 +845,7 @@

    INV_IMAGINARY_UNIT

    MAX_REAL

    -
    private static final CNumber MAX_REAL
    +
    public static final CNumber MAX_REAL
    The maximum real double value 1.7976931348623157E308.
    @@ -986,7 +854,7 @@

    MAX_REAL

    MIN_REAL

    -
    private static final CNumber MIN_REAL
    +
    public static final CNumber MIN_REAL
    The minimum real double value 4.9E-324
    @@ -995,7 +863,7 @@

    MIN_REAL

    MIN_REAL_NORMAL

    -
    private static final CNumber MIN_REAL_NORMAL
    +
    public static final CNumber MIN_REAL_NORMAL
    The smallest possible real normal double 2.2250738585072014E-308.
    @@ -1004,7 +872,7 @@

    MIN_REAL_NORMAL

    POSITIVE_INFINITY

    -
    private static final CNumber POSITIVE_INFINITY
    +
    public static final CNumber POSITIVE_INFINITY
    Complex number with real part equal to Double.POSITIVE_INFINITY.
    @@ -1013,7 +881,7 @@

    POSITIVE_INFINITY

    NEGATIVE_INFINITY

    -
    private static final CNumber NEGATIVE_INFINITY
    +
    public static final CNumber NEGATIVE_INFINITY
    Complex number with real part equal to Double.NEGATIVE_INFINITY.
    @@ -1022,7 +890,7 @@

    NEGATIVE_INFINITY

    NaN

    -
    private static final CNumber NaN
    +
    public static final CNumber NaN
    Complex number with real and imaginary parts equal to Double.NaN.
    @@ -1031,7 +899,7 @@

    NaN

    re

    -
    public double re
    +
    public final double re
    Real component of the complex number.
    @@ -1040,7 +908,7 @@

    re

    im

    -
    public double im
    +
    public final double im
    Imaginary component of the complex number.
    @@ -1054,15 +922,6 @@

    im

    Constructor Details

    • -
      -

      CNumber

      -
      -
      public CNumber()
      -
      Constructs a complex number with value and magnitude 0.
      -
      -
      -
    • -
    • CNumber

      @@ -1091,19 +950,6 @@

      CNumber

    • -
      -

      CNumber

      -
      -
      public CNumber(CNumber num)
      -
      Creates a new complex number which is the copy of the specified complex number.
      -
      -
      Parameters:
      -
      num - The complex number to copy.
      -
      -
      -
      -
    • -
    • CNumber

      @@ -1126,19 +972,6 @@

      CNumber

      Method Details

      • -
        -

        copy

        -
        -
        public CNumber copy()
        -
        Creates a copy of this complex number. Same as CNumber(CNumber).
        -
        -
        Returns:
        -
        A complex number with real and complex components equivalent to this complex number.
        -
        -
        -
        -
      • -
      • equals

        @@ -1175,7 +1008,7 @@

        equalsNumber

        equals

        public boolean equals(double b)
        -
        Checks if a complex number is equal to some double value. That is, if the real component of this complex number +
        Checks if a complex number is numerically equal to some double value. That is, if the real component of this complex number is zero and the real component is equivalent to the double parameter.
        Parameters:
        @@ -1353,60 +1186,6 @@

        add

      • -
        -

        addEq

        -
        -
        public CNumber addEq(CNumber b)
        -
        Adds a specified number to this complex number and stores the result in this complex number.
        -
        -
        Parameters:
        -
        b - The value to add to this complex number.
        -
        Returns:
        -
        A reference to this complex number.
        -
        -
        -
        -
      • -
      • -
        -

        addEq

        -
        -
        public void addEq(double b)
        -
        Adds a specified number to this complex number and stores the result in this complex number.
        -
        -
        Parameters:
        -
        b - The value to add to this complex number.
        -
        -
        -
        -
      • -
      • -
        -

        subEq

        -
        -
        public void subEq(CNumber b)
        -
        Subtracts a specified number from this complex number and stores the result in this complex number.
        -
        -
        Parameters:
        -
        b - The value to add to this complex number.
        -
        -
        -
        -
      • -
      • -
        -

        subEq

        -
        -
        public void subEq(double b)
        -
        Subtracts a specified number to this complex number and stores the result in this complex number.
        -
        -
        Parameters:
        -
        b - The value to add to this complex number.
        -
        -
        -
        -
      • -
      • sub

        @@ -1482,32 +1261,6 @@

        mult

      • -
        -

        multEq

        -
        -
        public void multEq(CNumber b)
        -
        Multiplies this complex number with another complex number and stores the result in this CNumber.
        -
        -
        Parameters:
        -
        b - Second complex number in the product.
        -
        -
        -
        -
      • -
      • -
        -

        multEq

        -
        -
        public void multEq(double b)
        -
        Multiplies this complex number with another complex number and stores the result in this CNumber.
        -
        -
        Parameters:
        -
        b - Second complex number in the product.
        -
        -
        -
        -
      • -
      • div

        @@ -1540,32 +1293,6 @@

        div

      • -
        -

        divEq

        -
        -
        public void divEq(double b)
        -
        Computes the division of a complex numbers with a double value and stores in this complex number.
        -
        -
        Parameters:
        -
        b - The divisor for the complex division.
        -
        -
        -
        -
      • -
      • -
        -

        divEq

        -
        -
        public void divEq(CNumber b)
        -
        Computes the division of a complex numbers with a double value and stores in this complex number.
        -
        -
        Parameters:
        -
        b - The divisor for the complex division.
        -
        -
        -
        -
      • -
      • abs

        @@ -2724,214 +2451,6 @@

        length

      • -
        -

        zero

        -
        -
        public static CNumber zero()
        -
        Gets the complex number equivalent to zero.
        -
        -
        Returns:
        -
        The complex number which is equivalent to zero.
        -
        -
        -
        -
      • -
      • -
        -

        one

        -
        -
        public static CNumber one()
        -
        Gets the complex number equivalent to one.
        -
        -
        Returns:
        -
        The complex number equivalent to one.
        -
        -
        -
        -
      • -
      • -
        -

        two

        -
        -
        public static CNumber two()
        -
        Gets the complex number equivalent to two.
        -
        -
        Returns:
        -
        The complex number equivalent to two.
        -
        -
        -
        -
      • -
      • -
        -

        negOne

        -
        -
        public static CNumber negOne()
        -
        Gets the complex number equivalent to negative one.
        -
        -
        Returns:
        -
        The complex number equivalent to negative one.
        -
        -
        -
        -
      • -
      • -
        -

        rootTwo

        -
        -
        public static CNumber rootTwo()
        -
        Gets the complex number equivalent to the square root of two.
        -
        -
        Returns:
        -
        The complex number equivalent to the square root of two.
        -
        -
        -
        -
      • -
      • -
        -

        rootThree

        -
        -
        public static CNumber rootThree()
        -
        Gets the complex number equivalent to the square root of three.
        -
        -
        Returns:
        -
        The complex number equivalent to the square root of three.
        -
        -
        -
        -
      • -
      • -
        -

        posInfinity

        -
        -
        public static CNumber posInfinity()
        -
        Gets the complex number equivalent to Double.POSITIVE_INFINITY.
        -
        -
        Returns:
        -
        The complex number equivalent to Double.POSITIVE_INFINITY.
        -
        -
        -
        -
      • -
      • -
        -

        negInfinity

        -
        -
        public static CNumber negInfinity()
        -
        Gets the complex number equivalent to Double.NEGATIVE_INFINITY.
        -
        -
        Returns:
        -
        The complex number equivalent to Double.NEGATIVE_INFINITY.
        -
        -
        -
        -
      • -
      • -
        -

        pi

        -
        -
        public static CNumber pi()
        -
        Gets the complex number equivalent to Math.PI.
        -
        -
        Returns:
        -
        The complex number equivalent to Math.PI.
        -
        -
        -
        -
      • -
      • -
        -

        eulers

        -
        -
        public static CNumber eulers()
        -
        Gets the complex number equivalent to Math.E.
        -
        -
        Returns:
        -
        The complex number equivalent to Math.E.
        -
        -
        -
        -
      • -
      • -
        -

        nan

        -
        -
        public static CNumber nan()
        -
        Gets the complex number equivalent to Double.NaN.
        -
        -
        Returns:
        -
        The complex number equivalent to Double.NaN.
        -
        -
        -
        -
      • -
      • -
        -

        imagUnit

        -
        -
        public static CNumber imagUnit()
        -
        Gets the complex number equivalent to i.
        -
        -
        Returns:
        -
        The complex number equivalent to i.
        -
        -
        -
        -
      • -
      • -
        -

        negImagUnit

        -
        -
        public static CNumber negImagUnit()
        -
        Gets the complex number equivalent to -i.
        -
        -
        Returns:
        -
        The complex number equivalent to -i.
        -
        -
        -
        -
      • -
      • -
        -

        minReal

        -
        -
        public static CNumber minReal()
        -
        Gets the complex number equivalent to Double.MIN_VALUE.
        -
        -
        Returns:
        -
        The complex number equivalent to Double.MIN_VALUE.
        -
        -
        -
        -
      • -
      • -
        -

        minRealNormal

        -
        -
        public static CNumber minRealNormal()
        -
        Gets the complex number equivalent to Double.MIN_NORMAL.
        -
        -
        Returns:
        -
        The complex number equivalent to Double.MIN_NORMAL.
        -
        -
        -
        -
      • -
      • -
        -

        maxReal

        -
        -
        public static CNumber maxReal()
        -
        Gets the complex number equivalent to Double.MAX_VALUE.
        -
        -
        Returns:
        -
        The complex number equivalent to Double.MAX_VALUE.
        -
        -
        -
        -
      • -
      • toString

        diff --git a/docs/org/flag4j/complex_numbers/CNumberLexer.html b/docs/org/flag4j/complex_numbers/CNumberLexer.html index 3a1f5c461..1fda708ac 100644 --- a/docs/org/flag4j/complex_numbers/CNumberLexer.html +++ b/docs/org/flag4j/complex_numbers/CNumberLexer.html @@ -1,11 +1,11 @@ - + CNumberLexer - + diff --git a/docs/org/flag4j/complex_numbers/CNumberParser.html b/docs/org/flag4j/complex_numbers/CNumberParser.html index 732a48733..eaf1173ec 100644 --- a/docs/org/flag4j/complex_numbers/CNumberParser.html +++ b/docs/org/flag4j/complex_numbers/CNumberParser.html @@ -1,11 +1,11 @@ - + CNumberParser - + diff --git a/docs/org/flag4j/complex_numbers/CNumberToken.html b/docs/org/flag4j/complex_numbers/CNumberToken.html index 70f30c3d1..d694836ed 100644 --- a/docs/org/flag4j/complex_numbers/CNumberToken.html +++ b/docs/org/flag4j/complex_numbers/CNumberToken.html @@ -1,11 +1,11 @@ - + CNumberToken - + diff --git a/docs/org/flag4j/complex_numbers/CNumberUtils.html b/docs/org/flag4j/complex_numbers/CNumberUtils.html index b96402fad..d476a8dc4 100644 --- a/docs/org/flag4j/complex_numbers/CNumberUtils.html +++ b/docs/org/flag4j/complex_numbers/CNumberUtils.html @@ -1,11 +1,11 @@ - + CNumberUtils - + diff --git a/docs/org/flag4j/complex_numbers/package-summary.html b/docs/org/flag4j/complex_numbers/package-summary.html index 983415859..a5f9f46e2 100644 --- a/docs/org/flag4j/complex_numbers/package-summary.html +++ b/docs/org/flag4j/complex_numbers/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.complex_numbers - + @@ -88,7 +88,7 @@

        Package org.flag4j.
        Description
        -
        A complex number stored in rectangular form.
        +
        A complex number stored in rectangular form with both the real and imaginary components stored as a 64-bit floats.
        diff --git a/docs/org/flag4j/complex_numbers/package-tree.html b/docs/org/flag4j/complex_numbers/package-tree.html index e6e232946..6c664a139 100644 --- a/docs/org/flag4j/complex_numbers/package-tree.html +++ b/docs/org/flag4j/complex_numbers/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.complex_numbers Class Hierarchy - + diff --git a/docs/org/flag4j/concurrency/Configurations.html b/docs/org/flag4j/concurrency/Configurations.html index 926b1c202..c630b7ac4 100644 --- a/docs/org/flag4j/concurrency/Configurations.html +++ b/docs/org/flag4j/concurrency/Configurations.html @@ -1,11 +1,11 @@ - + Configurations - + diff --git a/docs/org/flag4j/concurrency/ThreadManager.html b/docs/org/flag4j/concurrency/ThreadManager.html index 9f327ec22..534b39df3 100644 --- a/docs/org/flag4j/concurrency/ThreadManager.html +++ b/docs/org/flag4j/concurrency/ThreadManager.html @@ -1,11 +1,11 @@ - + ThreadManager - + diff --git a/docs/org/flag4j/concurrency/package-summary.html b/docs/org/flag4j/concurrency/package-summary.html index 716d430cf..a5adc2383 100644 --- a/docs/org/flag4j/concurrency/package-summary.html +++ b/docs/org/flag4j/concurrency/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.concurrency - + diff --git a/docs/org/flag4j/concurrency/package-tree.html b/docs/org/flag4j/concurrency/package-tree.html index 6e2795a78..99819c72d 100644 --- a/docs/org/flag4j/concurrency/package-tree.html +++ b/docs/org/flag4j/concurrency/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.concurrency Class Hierarchy - + diff --git a/docs/org/flag4j/core/ComplexMatrixMixin.html b/docs/org/flag4j/core/ComplexMatrixMixin.html index 0ec1ce357..7c319e5d0 100644 --- a/docs/org/flag4j/core/ComplexMatrixMixin.html +++ b/docs/org/flag4j/core/ComplexMatrixMixin.html @@ -1,11 +1,11 @@ - + ComplexMatrixMixin - + diff --git a/docs/org/flag4j/core/ComplexTensorExclusiveMixin.html b/docs/org/flag4j/core/ComplexTensorExclusiveMixin.html index 93d78a032..96f34644a 100644 --- a/docs/org/flag4j/core/ComplexTensorExclusiveMixin.html +++ b/docs/org/flag4j/core/ComplexTensorExclusiveMixin.html @@ -1,11 +1,11 @@ - + ComplexTensorExclusiveMixin - + @@ -95,7 +95,7 @@

        Interface Comple

    All Known Implementing Classes:
    -
    CTensor
    +
    CooCTensor, CTensor

    public interface ComplexTensorExclusiveMixin<T extends TensorBase<T,CTensor,T,?,?,?,CNumber>> @@ -163,7 +163,7 @@

    Method Summary

    +add, add, add, add, elemDiv, elemDiv, elemMult, elemMult, elemMult, elemMult, getRank, sub, sub, sub, sub, T, T, tensorDot, tensorDot, tensorDot, tensorDot, tensorInv, tensorInv, transpose, transpose diff --git a/docs/org/flag4j/core/ComplexTensorMixin.html b/docs/org/flag4j/core/ComplexTensorMixin.html index dc6d17117..c9a8d18e1 100644 --- a/docs/org/flag4j/core/ComplexTensorMixin.html +++ b/docs/org/flag4j/core/ComplexTensorMixin.html @@ -1,11 +1,11 @@ - + ComplexTensorMixin - + diff --git a/docs/org/flag4j/core/MatrixComparisonsMixin.html b/docs/org/flag4j/core/MatrixComparisonsMixin.html index fff377d33..5a2b5f76f 100644 --- a/docs/org/flag4j/core/MatrixComparisonsMixin.html +++ b/docs/org/flag4j/core/MatrixComparisonsMixin.html @@ -1,11 +1,11 @@ - + MatrixComparisonsMixin - + @@ -96,7 +96,7 @@

    Interface MatrixCompa

    All Known Subinterfaces:
    -
    MatrixMixin<T,U,V,W,X,TT,UU>
    +
    MatrixMixin<T,U,V,W,VV,X,TT,UU>
    All Known Implementing Classes:
    diff --git a/docs/org/flag4j/core/MatrixManipulationsMixin.html b/docs/org/flag4j/core/MatrixManipulationsMixin.html index c6cdfc96f..72557d9df 100644 --- a/docs/org/flag4j/core/MatrixManipulationsMixin.html +++ b/docs/org/flag4j/core/MatrixManipulationsMixin.html @@ -1,11 +1,11 @@ - + MatrixManipulationsMixin - + @@ -92,7 +92,7 @@

    Interface MatrixMan

    All Known Subinterfaces:
    -
    MatrixMixin<T,U,V,W,X,TT,UU>
    +
    MatrixMixin<T,U,V,W,VV,X,TT,UU>
    All Known Implementing Classes:
    diff --git a/docs/org/flag4j/core/MatrixMixin.html b/docs/org/flag4j/core/MatrixMixin.html index f2e1523be..3c379f6e0 100644 --- a/docs/org/flag4j/core/MatrixMixin.html +++ b/docs/org/flag4j/core/MatrixMixin.html @@ -1,11 +1,11 @@ - + MatrixMixin - + @@ -81,32 +81,33 @@
    -

    Interface MatrixMixin<T,U,V,W,X extends Number,TT extends VectorMixin<TT,UU,?,?,?,?,?,?>,UU extends VectorMixin<UU,UU,?,CVector,X,U,U,CMatrix>>

    +

    Interface MatrixMixin<T,U,V,W,VV,X extends Number,TT extends VectorMixin<TT,UU,?,?,?,?,?,?>,UU extends VectorMixin<UU,UU,?,CVector,X,U,U,CMatrix>>

    Type Parameters:
    T - Matrix type.
    -
    U - Dense Matrix type.
    -
    V - Sparse Matrix type.
    -
    W - Complex Matrix type.
    +
    U - Dense matrix type.
    +
    V - Sparse matrix type.
    +
    W - Complex matrix type.
    +
    VV - Complex sparse matrix type.
    X - Matrix entry type.
    TT - Vector type equivalent.
    UU - Dense vector type.
    -
    Y - Real Matrix type.
    +
    Y - Real matrix type.
    All Superinterfaces:
    -
    MatrixComparisonsMixin<T>, MatrixManipulationsMixin<T,X>, MatrixOperationsMixin<T,U,V,W,X,TT,UU>, MatrixPropertiesMixin
    +
    MatrixComparisonsMixin<T>, MatrixManipulationsMixin<T,X>, MatrixOperationsMixin<T,U,V,W,VV,X,TT,UU>, MatrixPropertiesMixin
    All Known Implementing Classes:
    CMatrix, CooCMatrix, CooMatrix, CsrCMatrix, CsrMatrix, Matrix

    -
    public interface MatrixMixin<T,U,V,W,X extends Number,TT extends VectorMixin<TT,UU,?,?,?,?,?,?>,UU extends VectorMixin<UU,UU,?,CVector,X,U,U,CMatrix>> -extends MatrixPropertiesMixin, MatrixComparisonsMixin<T>, MatrixManipulationsMixin<T,X>, MatrixOperationsMixin<T,U,V,W,X,TT,UU>
    +
    public interface MatrixMixin<T,U,V,W,VV,X extends Number,TT extends VectorMixin<TT,UU,?,?,?,?,?,?>,UU extends VectorMixin<UU,UU,?,CVector,X,U,U,CMatrix>> +extends MatrixPropertiesMixin, MatrixComparisonsMixin<T>, MatrixManipulationsMixin<T,X>, MatrixOperationsMixin<T,U,V,W,VV,X,TT,UU>
    This interface specified methods which all matrices should implement.
    diff --git a/docs/org/flag4j/core/MatrixOperationsMixin.html b/docs/org/flag4j/core/MatrixOperationsMixin.html index a4bfd7e4b..36451225d 100644 --- a/docs/org/flag4j/core/MatrixOperationsMixin.html +++ b/docs/org/flag4j/core/MatrixOperationsMixin.html @@ -1,11 +1,11 @@ - + MatrixOperationsMixin - + @@ -81,30 +81,31 @@
    -

    Interface MatrixOperationsMixin<T,U,V,W,X extends Number,TT extends VectorMixin<TT,UU,?,?,?,?,?,?>,UU extends VectorMixin<UU,UU,?,CVector,X,U,U,CMatrix>>

    +

    Interface MatrixOperationsMixin<T,U,V,W,Y,X extends Number,TT extends VectorMixin<TT,UU,?,?,?,?,?,?>,UU extends VectorMixin<UU,UU,?,CVector,X,U,U,CMatrix>>

    Type Parameters:
    T - Matrix type.
    -
    U - Dense Matrix type.
    -
    V - Sparse Matrix type.
    -
    W - Complex Matrix type.
    +
    U - Dense matrix type.
    +
    V - Sparse matrix type.
    +
    W - Complex matrix type.
    +
    Y - Complex sparse matrix type.
    X - Matrix entry type.
    TT - Vector type equivalent.
    UU - Dense vector type.
    All Known Subinterfaces:
    -
    MatrixMixin<T,U,V,W,X,TT,UU>
    +
    MatrixMixin<T,U,V,W,VV,X,TT,UU>
    All Known Implementing Classes:
    CMatrix, CooCMatrix, CooMatrix, CsrCMatrix, CsrMatrix, Matrix

    -
    public interface MatrixOperationsMixin<T,U,V,W,X extends Number,TT extends VectorMixin<TT,UU,?,?,?,?,?,?>,UU extends VectorMixin<UU,UU,?,CVector,X,U,U,CMatrix>>
    +
    public interface MatrixOperationsMixin<T,U,V,W,Y,X extends Number,TT extends VectorMixin<TT,UU,?,?,?,?,?,?>,UU extends VectorMixin<UU,UU,?,CVector,X,U,U,CMatrix>>
    This interface specifies operations which should be implemented by any matrix (rank 2 tensor).
    @@ -271,7 +272,7 @@

    Method Summary

    Computes the element-wise multiplication (Hadamard product) between two matrices.
    - +
    Computes the element-wise multiplication (Hadamard product) between two matrices.
    @@ -1236,7 +1237,7 @@

    elemMult

    elemMult

    -
    CooCMatrix elemMult(CooCMatrix B)
    +
    Y elemMult(CooCMatrix B)
    Computes the element-wise multiplication (Hadamard product) between two matrices.
    Parameters:
    diff --git a/docs/org/flag4j/core/MatrixPropertiesMixin.html b/docs/org/flag4j/core/MatrixPropertiesMixin.html index 6589b0984..f084b6543 100644 --- a/docs/org/flag4j/core/MatrixPropertiesMixin.html +++ b/docs/org/flag4j/core/MatrixPropertiesMixin.html @@ -1,11 +1,11 @@ - + MatrixPropertiesMixin - + @@ -96,7 +96,7 @@

    Interface MatrixProper

    All Known Subinterfaces:
    -
    MatrixMixin<T,U,V,W,X,TT,UU>
    +
    MatrixMixin<T,U,V,W,VV,X,TT,UU>
    All Known Implementing Classes:
    diff --git a/docs/org/flag4j/core/RealMatrixMixin.html b/docs/org/flag4j/core/RealMatrixMixin.html index d528856d9..8ce15be60 100644 --- a/docs/org/flag4j/core/RealMatrixMixin.html +++ b/docs/org/flag4j/core/RealMatrixMixin.html @@ -1,11 +1,11 @@ - + RealMatrixMixin - + diff --git a/docs/org/flag4j/core/RealTensorMixin.html b/docs/org/flag4j/core/RealTensorMixin.html index 6e5591176..76e9c0375 100644 --- a/docs/org/flag4j/core/RealTensorMixin.html +++ b/docs/org/flag4j/core/RealTensorMixin.html @@ -1,11 +1,11 @@ - + RealTensorMixin - + diff --git a/docs/org/flag4j/core/Shape.html b/docs/org/flag4j/core/Shape.html index bb8548be8..3674c01c8 100644 --- a/docs/org/flag4j/core/Shape.html +++ b/docs/org/flag4j/core/Shape.html @@ -1,11 +1,11 @@ - + Shape - + @@ -96,7 +96,7 @@

    Class Shape

    public class Shape extends Object implements Serializable
    -
    An object to store the shape of a tensor. Note that this object is mutable.
    +
    An object to store the shape of a tensor. Shapes are immutable.
    See Also:
    @@ -118,16 +118,21 @@

    Field Summary

    Modifier and Type
    Field
    Description
    -
    int[]
    +
    private final int[]
    An array containing the size of each dimension of this shape.
    -
    int[]
    +
    private int[]
    An array containing the strides of all dimensions within this shape.
    +
    private BigInteger
    + +
    +
    Total entries of this shape.
    +
    @@ -144,19 +149,10 @@

    Constructor Summary

    Constructs a shape object from specified dimension measurements.
    -
    Shape(boolean computeStrides, - Shape shape)
    +
    Shape(int... dims)
    -
    Copy constructor which creates a copy of the specified shape.
    -
    -
    Shape(int... dims)
    -
    Constructs a shape object from specified dimension measurements.
    -
    Shape(Shape shape)
    -
    -
    Copy constructor which creates a copy of the specified shape.
    -
    @@ -165,68 +161,66 @@

    Constructor Summary

    Method Summary

    -
    +
    Modifier and Type
    Method
    Description
    - - +
    int[]
    +
    -
    Creates a deep copy of this shape object.
    +
    Constructs strides for each dimension of this shape as if for a newly constructed tensor.
    -
    int[]
    - +
    int
    +
    entriesIndex(int... indices)
    -
    Constructs strides for each dimension of this shape as if for a newly constructed tensor.
    +
    Computes the index of the 1D data array for a dense tensor from tensor indices with this shape.
    -
    int
    -
    entriesIndex(int... indices)
    +
    boolean
    +
    -
    Computes the index of the 1D data array for a dense tensor from tensor indices with this shape.
    +
    Checks if an object is equal to this shape.
    -
    boolean
    - +
    int
    +
    get(int i)
    -
    Checks if an object is equal to this shape.
    +
    Get the size of the shape object in the specified dimension.
    -
    int
    -
    get(int i)
    +
    int[]
    +
    -
    Get the size of the shape object in the specified dimension.
    +
    Gets the shape of a tensor as an array.
    int[]
    - +
    getIndices(int index)
    -
    Gets the shape of a tensor as an array.
    -
    -
    int[]
    -
    getIndices(int index)
    -
    Computes the nD tensor indices based on an index from the internal 1D data array.
    -
    void
    -
    getNextIndices(int[] currentIndices, +
    void
    +
    getNextIndices(int[] currentIndices, int i)
    -
    +
    Gets the next indices for a tensor with this shape.
    -
    int
    - -
    +
    int
    + +
    Gets the rank of a tensor with this shape.
    -
    int[]
    - -
    +
    int[]
    + +
    Gets the shape of a tensor as an array.
    -
    int
    - -
    +
    int
    + +
    Generates the hashcode for this shape object.
    +
    static void
    +
    main(String[] args)
    +
     
    void
    @@ -274,7 +268,7 @@

    Field Details

    dims

    -
    public int[] dims
    +
    private final int[] dims
    An array containing the size of each dimension of this shape.
    @@ -283,11 +277,20 @@

    dims

    strides

    -
    public int[] strides
    +
    private int[] strides
    An array containing the strides of all dimensions within this shape.
    +
  • +
    +

    totalEntries

    +
    +
    private BigInteger totalEntries
    +
    Total entries of this shape. This is only computed on demand by totalEntries()
    +
    +
    +
  • @@ -328,33 +331,6 @@

    Shape

    -
  • -
    -

    Shape

    -
    -
    public Shape(Shape shape)
    -
    Copy constructor which creates a copy of the specified shape.
    -
    -
    Parameters:
    -
    shape - Shape to copy.
    -
    -
    -
    -
  • -
  • -
    -

    Shape

    -
    -
    public Shape(boolean computeStrides, - Shape shape)
    -
    Copy constructor which creates a copy of the specified shape.
    -
    -
    Parameters:
    -
    shape - Shape to copy.
    -
    -
    -
    -
  • @@ -423,7 +399,7 @@

    createNewStrides

    public int[] createNewStrides()
    Constructs strides for each dimension of this shape as if for a newly constructed tensor. - i.e. Strides will be a decreasing sequence with the last stride being 1.
    + i.e. Strides will be a monotonically decreasing sequence with the last stride being 1.
    Returns:
    The strides for all dimensions of a newly constructed tensor with this shape.
    @@ -486,7 +462,7 @@

    swapAxes

    axis1 - First axis to swap.
    axis2 - Second axis to swap.
    Returns:
    -
    Returns this shape.
    +
    A copy of this shape with the specified axis swapped.
    Throws:
    ArrayIndexOutOfBoundsException - If either axis is not within [0, rank-1].
    @@ -525,19 +501,6 @@

    totalEntries

  • -
    -

    copy

    -
    -
    public Shape copy()
    -
    Creates a deep copy of this shape object. This is a distinct object not a reference to the same object.
    -
    -
    Returns:
    -
    A deep copy of this shape object.
    -
    -
    -
    -
  • -
  • equals

    @@ -600,6 +563,14 @@

    toString

  • +
  • +
    +

    main

    +
    +
    public static void main(String[] args)
    +
    +
    +
  • diff --git a/docs/org/flag4j/core/TensorBase.html b/docs/org/flag4j/core/TensorBase.html index a78fe33fc..4d54c2635 100644 --- a/docs/org/flag4j/core/TensorBase.html +++ b/docs/org/flag4j/core/TensorBase.html @@ -1,11 +1,11 @@ - + TensorBase - + diff --git a/docs/org/flag4j/core/TensorComparisonsMixin.html b/docs/org/flag4j/core/TensorComparisonsMixin.html index 0d6d1199b..68d29e59f 100644 --- a/docs/org/flag4j/core/TensorComparisonsMixin.html +++ b/docs/org/flag4j/core/TensorComparisonsMixin.html @@ -1,11 +1,11 @@ - + TensorComparisonsMixin - + diff --git a/docs/org/flag4j/core/TensorExclusiveMixin.html b/docs/org/flag4j/core/TensorExclusiveMixin.html index 72fd02fd8..3644ca3ea 100644 --- a/docs/org/flag4j/core/TensorExclusiveMixin.html +++ b/docs/org/flag4j/core/TensorExclusiveMixin.html @@ -1,11 +1,11 @@ - + TensorExclusiveMixin - + @@ -98,7 +98,7 @@

    Interface TensorExclusi

    All Known Implementing Classes:
    -
    CTensor, Tensor
    +
    CooCTensor, CooTensor, CTensor, Tensor

    public interface TensorExclusiveMixin<T extends TensorBase<T,U,W,?,?,?,?>,U,V,W>
    @@ -139,40 +139,40 @@

    Method Summary

    Computes the element-wise addition between two tensors of the same rank.
    -
    void
    - + +
    -
    Computes the element-wise subtraction of two tensors of the same rank and stores the result in this tensor.
    +
    Computes the element-wise division between two tensors.
    - - + +
    Computes the element-wise division between two tensors.
    - - + +
    -
    Computes the element-wise division between two tensors.
    +
    Computes the element-wise multiplication between two tensors.
    - - + +
    Computes the element-wise multiplication between two tensors.
    - - + +
    Computes the element-wise multiplication between two tensors.
    - - + +
    Computes the element-wise multiplication between two tensors.
    - - +
    int
    +
    -
    Computes the element-wise multiplication between two tensors.
    +
    Gets the rank of this tensor.
    @@ -194,66 +194,61 @@

    Method Summary

    Computes the element-wise subtraction between two tensors of the same rank.
    -
    void
    - + +
    T(int... axes)
    -
    Computes the element-wise subtraction of two tensors of the same rank and stores the result in this tensor.
    -
    - -
    T(int... axes)
    -
    Computes the transpose of this tensor.
    - -
    T(int axis1, + +
    T(int axis1, int axis2)
    -
    +
    Computes the transpose of a tensor.
    - -
    tensorDot(T src2)
    -
    +
    default U
    +
    tensorDot(T src2)
    +
    Computes the tensor dot product of this tensor with a second tensor.
    -
    default T
    -
    tensorDot(T src2, +
    default U
    +
    tensorDot(T src2, int axes)
    -
    +
    Computes the tensor contraction of this tensor with a specified tensor over the specified axes.
    - -
    tensorDot(T src2, + +
    tensorDot(T src2, int[] aAxes, int[] bAxes)
    -
    +
    Computes the tensor contraction of this tensor with a specified tensor over the specified set of axes.
    -
    default T
    -
    tensorDot(T src2, +
    default U
    +
    tensorDot(T src2, int aAxis, int bAxis)
    -
    +
    Computes the tensor contraction of this tensor with a specified tensor over the specified axes.
    -
    default T
    - -
    +
    default U
    + +
    Computes the 'inverse' of this tensor.
    - -
    tensorInv(int numIndices)
    -
    + +
    tensorInv(int numIndices)
    +
    Computes the 'inverse' of this tensor.
    -
    default T
    -
    transpose(int... axes)
    -
    +
    default T
    +
    transpose(int... axes)
    +
    Computes the transpose of this tensor.
    -
    default T
    -
    transpose(int axis1, +
    default T
    +
    transpose(int axis1, int axis2)
    -
    +
    Computes the transpose of a tensor.
    @@ -274,7 +269,7 @@

    Method Details

    tensorDot

    -
    default T tensorDot(T src2, +
    default U tensorDot(T src2, int axes)
    Computes the tensor contraction of this tensor with a specified tensor over the specified axes. If axes=N, then the product sums will be computed along the last N dimensions of this tensor and the first N dimensions of @@ -299,7 +294,7 @@

    tensorDot

    tensorDot

    -
    default T tensorDot(T src2, +
    default U tensorDot(T src2, int aAxis, int bAxis)
    Computes the tensor contraction of this tensor with a specified tensor over the specified axes. That is, @@ -323,7 +318,7 @@

    tensorDot

    tensorDot

    -
    T tensorDot(T src2, +
    U tensorDot(T src2, int[] aAxes, int[] bAxes)
    Computes the tensor contraction of this tensor with a specified tensor over the specified set of axes. That is, @@ -348,7 +343,7 @@

    tensorDot

    tensorDot

    -
    T tensorDot(T src2)
    +
    default U tensorDot(T src2)
    Computes the tensor dot product of this tensor with a second tensor. That is, sums the product of two tensor elements over the last axis of this tensor and the second-to-last axis of src2. If both tensors are rank 2, this is equivalent to matrix multiplication.
    @@ -579,36 +574,6 @@

    sub

  • -
    -

    addEq

    -
    -
    void addEq(CooTensor B)
    -
    Computes the element-wise subtraction of two tensors of the same rank and stores the result in this tensor.
    -
    -
    Parameters:
    -
    B - Second tensor in the subtraction.
    -
    Throws:
    -
    IllegalArgumentException - If this tensor and B have different shapes.
    -
    -
    -
    -
  • -
  • -
    -

    subEq

    -
    -
    void subEq(CooTensor B)
    -
    Computes the element-wise subtraction of two tensors of the same rank and stores the result in this tensor.
    -
    -
    Parameters:
    -
    B - Second tensor in the subtraction.
    -
    Throws:
    -
    IllegalArgumentException - If this tensor and B have different shapes.
    -
    -
    -
    -
  • -
  • elemMult

    @@ -680,7 +645,7 @@

    elemMult

    elemDiv

    -
    CTensor elemDiv(CTensor B)
    +
    W elemDiv(CTensor B)
    Computes the element-wise division between two tensors.
    Parameters:
    @@ -714,7 +679,7 @@

    elemDiv

    tensorInv

    -
    default T tensorInv()
    +
    default U tensorInv()
    Computes the 'inverse' of this tensor. That is, computes the tensor X=this.tensorInv() such that this.tensorDot(X, 2) is the 'identity' tensor for the tensor dot product operation. A tensor I is the identity for a tensor dot product if this.tensorDot(I, 2).equals(this).
    @@ -735,7 +700,7 @@

    tensorInv

    tensorInv

    -
    T tensorInv(int numIndices)
    +
    U tensorInv(int numIndices)
    Computes the 'inverse' of this tensor. That is, computes the tensor X=this.tensorInv() such that this.tensorDot(X, numIndices) is the 'identity' tensor for the tensor dot product operation. A tensor I is the identity for a tensor dot product if this.tensorDot(I, numIndices).equals(this).
    @@ -754,6 +719,21 @@

    tensorInv

  • +
  • +
    +

    getRank

    +
    +
    int getRank()
    +

    Gets the rank of this tensor. The rank is the number of indices required to uniquely identify an element in the tensor.

    + +

    Note, this differs from matrix rank.

    +
    +
    Returns:
    +
    The rank of this tensor.
    +
    +
    +
    +
  • diff --git a/docs/org/flag4j/core/TensorManipulationsMixin.html b/docs/org/flag4j/core/TensorManipulationsMixin.html index 83ae640d0..55baadc38 100644 --- a/docs/org/flag4j/core/TensorManipulationsMixin.html +++ b/docs/org/flag4j/core/TensorManipulationsMixin.html @@ -1,11 +1,11 @@ - + TensorManipulationsMixin - + diff --git a/docs/org/flag4j/core/TensorOperationsMixin.html b/docs/org/flag4j/core/TensorOperationsMixin.html index e2a9b4c71..ae409655b 100644 --- a/docs/org/flag4j/core/TensorOperationsMixin.html +++ b/docs/org/flag4j/core/TensorOperationsMixin.html @@ -1,11 +1,11 @@ - + TensorOperationsMixin - + diff --git a/docs/org/flag4j/core/TensorPropertiesMixin.html b/docs/org/flag4j/core/TensorPropertiesMixin.html index 82cd00852..ccf64af26 100644 --- a/docs/org/flag4j/core/TensorPropertiesMixin.html +++ b/docs/org/flag4j/core/TensorPropertiesMixin.html @@ -1,11 +1,11 @@ - + TensorPropertiesMixin - + diff --git a/docs/org/flag4j/core/VectorComparisonsMixin.html b/docs/org/flag4j/core/VectorComparisonsMixin.html index b250f87c7..a0c9df05a 100644 --- a/docs/org/flag4j/core/VectorComparisonsMixin.html +++ b/docs/org/flag4j/core/VectorComparisonsMixin.html @@ -1,11 +1,11 @@ - + VectorComparisonsMixin - + diff --git a/docs/org/flag4j/core/VectorManipulationsMixin.html b/docs/org/flag4j/core/VectorManipulationsMixin.html index c45fe22dd..2c42d35fe 100644 --- a/docs/org/flag4j/core/VectorManipulationsMixin.html +++ b/docs/org/flag4j/core/VectorManipulationsMixin.html @@ -1,11 +1,11 @@ - + VectorManipulationsMixin - + diff --git a/docs/org/flag4j/core/VectorMixin.html b/docs/org/flag4j/core/VectorMixin.html index 5aea15581..8810c4732 100644 --- a/docs/org/flag4j/core/VectorMixin.html +++ b/docs/org/flag4j/core/VectorMixin.html @@ -1,11 +1,11 @@ - + VectorMixin - + diff --git a/docs/org/flag4j/core/VectorOperationsMixin.html b/docs/org/flag4j/core/VectorOperationsMixin.html index 414d2c0d6..c1869ba3e 100644 --- a/docs/org/flag4j/core/VectorOperationsMixin.html +++ b/docs/org/flag4j/core/VectorOperationsMixin.html @@ -1,11 +1,11 @@ - + VectorOperationsMixin - + diff --git a/docs/org/flag4j/core/VectorPropertiesMixin.html b/docs/org/flag4j/core/VectorPropertiesMixin.html index 023adcd29..f011c638d 100644 --- a/docs/org/flag4j/core/VectorPropertiesMixin.html +++ b/docs/org/flag4j/core/VectorPropertiesMixin.html @@ -1,11 +1,11 @@ - + VectorPropertiesMixin - + diff --git a/docs/org/flag4j/core/dense_base/ComplexDenseTensorBase.html b/docs/org/flag4j/core/dense_base/ComplexDenseTensorBase.html index 21c49b88f..4ea858e26 100644 --- a/docs/org/flag4j/core/dense_base/ComplexDenseTensorBase.html +++ b/docs/org/flag4j/core/dense_base/ComplexDenseTensorBase.html @@ -1,11 +1,11 @@ - + ComplexDenseTensorBase - + diff --git a/docs/org/flag4j/core/dense_base/DenseMatrixMixin.html b/docs/org/flag4j/core/dense_base/DenseMatrixMixin.html index 55628c2b1..16b19286b 100644 --- a/docs/org/flag4j/core/dense_base/DenseMatrixMixin.html +++ b/docs/org/flag4j/core/dense_base/DenseMatrixMixin.html @@ -1,11 +1,11 @@ - + DenseMatrixMixin - + diff --git a/docs/org/flag4j/core/dense_base/DenseMixin.html b/docs/org/flag4j/core/dense_base/DenseMixin.html index 4028a2605..87e18ef62 100644 --- a/docs/org/flag4j/core/dense_base/DenseMixin.html +++ b/docs/org/flag4j/core/dense_base/DenseMixin.html @@ -1,11 +1,11 @@ - + DenseMixin - + diff --git a/docs/org/flag4j/core/dense_base/DenseTensorBase.html b/docs/org/flag4j/core/dense_base/DenseTensorBase.html index aa53beba5..6aabdc13e 100644 --- a/docs/org/flag4j/core/dense_base/DenseTensorBase.html +++ b/docs/org/flag4j/core/dense_base/DenseTensorBase.html @@ -1,11 +1,11 @@ - + DenseTensorBase - + diff --git a/docs/org/flag4j/core/dense_base/DenseTensorMixin.html b/docs/org/flag4j/core/dense_base/DenseTensorMixin.html index e5fa8e01d..6f56bca0c 100644 --- a/docs/org/flag4j/core/dense_base/DenseTensorMixin.html +++ b/docs/org/flag4j/core/dense_base/DenseTensorMixin.html @@ -1,11 +1,11 @@ - + DenseTensorMixin - + diff --git a/docs/org/flag4j/core/dense_base/DenseVectorMixin.html b/docs/org/flag4j/core/dense_base/DenseVectorMixin.html index f2eb19ffb..fa102e8b9 100644 --- a/docs/org/flag4j/core/dense_base/DenseVectorMixin.html +++ b/docs/org/flag4j/core/dense_base/DenseVectorMixin.html @@ -1,11 +1,11 @@ - + DenseVectorMixin - + diff --git a/docs/org/flag4j/core/dense_base/RealDenseTensorBase.html b/docs/org/flag4j/core/dense_base/RealDenseTensorBase.html index 3313adcc0..bfe0052eb 100644 --- a/docs/org/flag4j/core/dense_base/RealDenseTensorBase.html +++ b/docs/org/flag4j/core/dense_base/RealDenseTensorBase.html @@ -1,11 +1,11 @@ - + RealDenseTensorBase - + diff --git a/docs/org/flag4j/core/dense_base/package-summary.html b/docs/org/flag4j/core/dense_base/package-summary.html index 6d695c247..893652811 100644 --- a/docs/org/flag4j/core/dense_base/package-summary.html +++ b/docs/org/flag4j/core/dense_base/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.core.dense_base - + diff --git a/docs/org/flag4j/core/dense_base/package-tree.html b/docs/org/flag4j/core/dense_base/package-tree.html index 65474fef4..808a149ef 100644 --- a/docs/org/flag4j/core/dense_base/package-tree.html +++ b/docs/org/flag4j/core/dense_base/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.core.dense_base Class Hierarchy - + diff --git a/docs/org/flag4j/core/package-summary.html b/docs/org/flag4j/core/package-summary.html index dea386895..223e7fff4 100644 --- a/docs/org/flag4j/core/package-summary.html +++ b/docs/org/flag4j/core/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.core - + @@ -115,11 +115,11 @@

    Package org.flag4j.core

    This interface specifies manipulations which all matrices should implement.
    -
    MatrixMixin<T,U,V,W,X extends Number,TT extends VectorMixin<TT,UU,?,?,?,?,?,?>,UU extends VectorMixin<UU,UU,?,CVector,X,U,U,CMatrix>>
    +
    MatrixMixin<T,U,V,W,VV,X extends Number,TT extends VectorMixin<TT,UU,?,?,?,?,?,?>,UU extends VectorMixin<UU,UU,?,CVector,X,U,U,CMatrix>>
    This interface specified methods which all matrices should implement.
    -
    MatrixOperationsMixin<T,U,V,W,X extends Number,TT extends VectorMixin<TT,UU,?,?,?,?,?,?>,UU extends VectorMixin<UU,UU,?,CVector,X,U,U,CMatrix>>
    +
    MatrixOperationsMixin<T,U,V,W,Y,X extends Number,TT extends VectorMixin<TT,UU,?,?,?,?,?,?>,UU extends VectorMixin<UU,UU,?,CVector,X,U,U,CMatrix>>
    This interface specifies operations which should be implemented by any matrix (rank 2 tensor).
    diff --git a/docs/org/flag4j/core/package-tree.html b/docs/org/flag4j/core/package-tree.html index 3cfe679a6..33ef08bdb 100644 --- a/docs/org/flag4j/core/package-tree.html +++ b/docs/org/flag4j/core/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.core Class Hierarchy - + @@ -70,22 +70,22 @@

    Interface Hierarchy

  • org.flag4j.core.ComplexTensorMixin<T,Y>
  • org.flag4j.core.MatrixComparisonsMixin<T>
  • org.flag4j.core.MatrixManipulationsMixin<T,X>
  • -
  • org.flag4j.core.MatrixOperationsMixin<T,U,V,W,X,TT,UU> +
  • org.flag4j.core.MatrixOperationsMixin<T,U,V,W,Y,X,TT,UU>
  • org.flag4j.core.MatrixPropertiesMixin
  • org.flag4j.core.RealMatrixMixin<T,W>
  • diff --git a/docs/org/flag4j/core/sparse_base/ComplexSparseTensorBase.html b/docs/org/flag4j/core/sparse_base/ComplexSparseTensorBase.html index 2793d1f4a..c28d8a8e3 100644 --- a/docs/org/flag4j/core/sparse_base/ComplexSparseTensorBase.html +++ b/docs/org/flag4j/core/sparse_base/ComplexSparseTensorBase.html @@ -1,11 +1,11 @@ - + ComplexSparseTensorBase - + @@ -129,7 +129,7 @@

    Class ComplexSparseTenso

    Field Summary

    Fields inherited from class org.flag4j.core.sparse_base.SparseTensorBase

    -indices, nonZeroEntries
    +indices, nnz

    Fields inherited from class org.flag4j.core.TensorBase

    DEFAULT_ROUND_TO_ZERO_THRESHOLD, entries, shape
    @@ -210,92 +210,82 @@

    Method Summary

    Computes the scalar division of a tensor.
    - - +
    boolean
    +
    -
    Flattens tensor to single dimension.
    +
    Checks if this tensor contains at least one complex entry.
    boolean
    - +
    -
    Checks if this tensor contains at least one complex entry.
    +
    Checks if this sparse tensors non-zero values are all ones.
    boolean
    - +
    -
    Checks if this sparse tensors non-zero values are all ones.
    +
    Checks if this tensor has only real valued entries.
    boolean
    - +
    -
    Checks if this tensor has only real valued entries.
    -
    -
    boolean
    - -
    Checks if this tensor only contains zeros.
    -
    protected abstract Y
    -
    makeRealTensor(Shape shape, +
    protected abstract Y
    +
    makeRealTensor(Shape shape, double[] entries, int[][] indices)
    -
    +
    A factory for creating a real sparse tensor.
    -
    protected abstract T
    -
    makeTensor(Shape shape, +
    protected abstract T
    +
    makeTensor(Shape shape, CNumber[] entries, int[][] indices)
    -
    +
    A factory for creating a complex sparse tensor.
    -
    double
    -
    max()
    -
    -
    Finds the maximum value in this tensor.
    -
    double
    - +
    max()
    -
    Finds the maximum value, in absolute value, in this tensor.
    +
    Finds the maximum value in this tensor.
    double
    -
    min()
    +
    -
    Finds the minimum value in this tensor.
    +
    Finds the maximum value, in absolute value, in this tensor.
    double
    - +
    min()
    -
    Finds the minimum value, in absolute value, in this tensor.
    +
    Finds the minimum value in this tensor.
    - -
    mult(double a)
    +
    double
    +
    -
    Computes scalar multiplication of a tensor.
    +
    Finds the minimum value, in absolute value, in this tensor.
    - +
    mult(double a)
    Computes scalar multiplication of a tensor.
    -
    int
    - + +
    -
    Gets the number of non-zero entries stored in this sparse tensor.
    +
    Computes scalar multiplication of a tensor.
    - - +
    int
    +
    -
    Computes the reciprocals, element-wise, of a tensor.
    +
    Gets the number of non-zero entries stored in this sparse tensor.
    -
    reshape(int... dims)
    +
    -
    Copies and reshapes tensor if possible.
    +
    Computes the reciprocals, element-wise, of a tensor.
    -
    reshape(Shape newShape)
    +
    reshape(int... dims)
    Copies and reshapes tensor if possible.
    @@ -364,7 +354,7 @@

    Met equals

    Methods inherited from interface org.flag4j.core.TensorManipulationsMixin

    -flatten, set
    +flatten, flatten, reshape, set

    Methods inherited from interface org.flag4j.core.TensorOperationsMixin

    add, add, add, copy, elemDiv, elemMult, get, sub, sub, sub, T, transpose
    @@ -929,26 +919,6 @@

    toRealSafe

  • -
    -

    reshape

    -
    -
    public T reshape(Shape newShape)
    -
    Copies and reshapes tensor if possible. The total number of entries in this tensor must match the total number of entries - in the reshaped tensor.
    -
    -
    Specified by:
    -
    reshape in interface TensorManipulationsMixin<T>
    -
    Parameters:
    -
    newShape - Shape of the new tensor.
    -
    Returns:
    -
    A tensor which is equivalent to this tensor but with the specified shape.
    -
    Throws:
    -
    IllegalArgumentException - If this tensor cannot be reshaped to the specified dimensions.
    -
    -
    -
    -
  • -
  • reshape

    @@ -969,22 +939,6 @@

    reshape

  • -
    -

    flatten

    -
    -
    public T flatten()
    -
    Description copied from interface: TensorManipulationsMixin
    -
    Flattens tensor to single dimension. To flatten tensor along a single axis.
    -
    -
    Specified by:
    -
    flatten in interface TensorManipulationsMixin<T>
    -
    Returns:
    -
    The flattened tensor.
    -
    -
    -
    -
  • -
  • roundToZero

    diff --git a/docs/org/flag4j/core/sparse_base/RealSparseTensorBase.html b/docs/org/flag4j/core/sparse_base/RealSparseTensorBase.html index 9d4e197f6..54af5c1c1 100644 --- a/docs/org/flag4j/core/sparse_base/RealSparseTensorBase.html +++ b/docs/org/flag4j/core/sparse_base/RealSparseTensorBase.html @@ -1,11 +1,11 @@ - + RealSparseTensorBase - + @@ -130,7 +130,7 @@

    Class RealSparseTensorBase&

    Field Summary

    Fields inherited from class org.flag4j.core.sparse_base.SparseTensorBase

    -indices, nonZeroEntries
    +indices, nnz

    Fields inherited from class org.flag4j.core.TensorBase

    DEFAULT_ROUND_TO_ZERO_THRESHOLD, entries, shape
    @@ -206,98 +206,88 @@

    Method Summary

    Computes the scalar division of a tensor.
    - - +
    boolean
    +
    -
    Flattens tensor to single dimension.
    +
    Checks if this tensor contains only non-positive values.
    boolean
    - +
    -
    Checks if this tensor contains only non-positive values.
    +
    Checks if this sparse tensors non-zero values are all ones.
    boolean
    - +
    -
    Checks if this sparse tensors non-zero values are all ones.
    +
    Checks if this tensor contains only non-negative values.
    boolean
    - +
    -
    Checks if this tensor contains only non-negative values.
    -
    -
    boolean
    - -
    Checks if this tensor only contains zeros.
    -
    protected abstract W
    -
    makeComplexTensor(Shape shape, +
    protected abstract W
    +
    makeComplexTensor(Shape shape, CNumber[] entries, int[][] indices)
    -
    +
    A factory for creating a complex sparse tensor.
    -
    protected abstract U
    -
    makeDenseTensor(Shape shape, +
    protected abstract U
    +
    makeDenseTensor(Shape shape, double[] entries)
    -
    +
    A factory for creating a real dense tensor.
    -
    protected abstract T
    -
    makeTensor(Shape shape, +
    protected abstract T
    +
    makeTensor(Shape shape, double[] entries, int[][] indices)
    -
    +
    A factory for creating a real sparse tensor.
    -
    double
    -
    max()
    -
    -
    Finds the maximum value in this tensor.
    -
    double
    - +
    max()
    -
    Finds the maximum value, in absolute value, in this tensor.
    +
    Finds the maximum value in this tensor.
    double
    -
    min()
    +
    -
    Finds the minimum value in this tensor.
    +
    Finds the maximum value, in absolute value, in this tensor.
    double
    - +
    min()
    -
    Finds the minimum value, in absolute value, in this tensor.
    +
    Finds the minimum value in this tensor.
    - -
    mult(double factor)
    +
    double
    +
    -
    Computes scalar multiplication of a tensor.
    +
    Finds the minimum value, in absolute value, in this tensor.
    - -
    mult(CNumber factor)
    + +
    mult(double factor)
    Computes scalar multiplication of a tensor.
    -
    int
    - + +
    mult(CNumber factor)
    -
    Gets the number of non-zero entries stored in this sparse tensor.
    +
    Computes scalar multiplication of a tensor.
    - - +
    int
    +
    -
    Computes the reciprocals, element-wise, of a tensor.
    +
    Gets the number of non-zero entries stored in this sparse tensor.
    -
    reshape(int... dims)
    +
    -
    Copies and reshapes tensor if possible.
    +
    Computes the reciprocals, element-wise, of a tensor.
    -
    reshape(Shape newShape)
    +
    reshape(int... dims)
    Copies and reshapes tensor if possible.
    @@ -356,7 +346,7 @@

    Met equals

    Methods inherited from interface org.flag4j.core.TensorManipulationsMixin

    -flatten, set
    +flatten, flatten, reshape, set

    Methods inherited from interface org.flag4j.core.TensorOperationsMixin

    add, add, add, copy, elemDiv, elemMult, get, sub, sub, sub, T, transpose
    @@ -796,41 +786,6 @@

    reshape

  • -
    -

    reshape

    -
    -
    public T reshape(Shape newShape)
    -
    Description copied from interface: TensorManipulationsMixin
    -
    Copies and reshapes tensor if possible. The total number of entries in this tensor must match the total number of entries - in the reshaped tensor.
    -
    -
    Specified by:
    -
    reshape in interface TensorManipulationsMixin<T extends TensorBase<T,?,?,?,?,?,?>>
    -
    Parameters:
    -
    newShape - Shape of the new tensor.
    -
    Returns:
    -
    A tensor which is equivalent to this tensor but with the specified shape.
    -
    -
    -
    -
  • -
  • -
    -

    flatten

    -
    -
    public T flatten()
    -
    Description copied from interface: TensorManipulationsMixin
    -
    Flattens tensor to single dimension. To flatten tensor along a single axis.
    -
    -
    Specified by:
    -
    flatten in interface TensorManipulationsMixin<T extends TensorBase<T,?,?,?,?,?,?>>
    -
    Returns:
    -
    The flattened tensor.
    -
    -
    -
    -
  • -
  • argMax

    diff --git a/docs/org/flag4j/core/sparse_base/SparseTensorBase.html b/docs/org/flag4j/core/sparse_base/SparseTensorBase.html index c5be720c9..7a591446e 100644 --- a/docs/org/flag4j/core/sparse_base/SparseTensorBase.html +++ b/docs/org/flag4j/core/sparse_base/SparseTensorBase.html @@ -1,11 +1,11 @@ - + SparseTensorBase - + @@ -140,8 +140,8 @@

    Field Summary

    Indices for non-zero entries of this tensor.
    -
    protected final int
    - +
    final int
    +
    The number of non-zero entries in this sparse tensor.
    @@ -162,7 +162,7 @@

    Constructor Summary

    Description
    protected
    SparseTensorBase(Shape shape, - int nonZeroEntries, + int nnz, D entries, int[][] indices)
    @@ -170,7 +170,7 @@

    Constructor Summary

    protected
    SparseTensorBase(Shape shape, - int nonZeroEntries, + int nnz, D entries, int[] initIndices, int[]... restIndices)
    @@ -256,10 +256,10 @@

    indices

  • -
    -

    nonZeroEntries

    +
    +

    nnz

    -
    protected final int nonZeroEntries
    +
    public final int nnz
    The number of non-zero entries in this sparse tensor.
    @@ -277,7 +277,7 @@

    Constructor Details

    SparseTensorBase

    protected SparseTensorBase(Shape shape, - int nonZeroEntries, + int nnz, D entries, int[][] indices)
    Creates a sparse tensor with specified shape, non-zero entries, and non-zero indices.
    @@ -297,7 +297,7 @@

    SparseTensorBase

    protected SparseTensorBase(Shape shape, - int nonZeroEntries, + int nnz, D entries, int[] initIndices, int[]... restIndices)
    diff --git a/docs/org/flag4j/core/sparse_base/SparseTensorMixin.html b/docs/org/flag4j/core/sparse_base/SparseTensorMixin.html index 7a8a65e6f..d625a6c24 100644 --- a/docs/org/flag4j/core/sparse_base/SparseTensorMixin.html +++ b/docs/org/flag4j/core/sparse_base/SparseTensorMixin.html @@ -1,11 +1,11 @@ - + SparseTensorMixin - + diff --git a/docs/org/flag4j/core/sparse_base/package-summary.html b/docs/org/flag4j/core/sparse_base/package-summary.html index 3227a4642..313937f76 100644 --- a/docs/org/flag4j/core/sparse_base/package-summary.html +++ b/docs/org/flag4j/core/sparse_base/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.core.sparse_base - + diff --git a/docs/org/flag4j/core/sparse_base/package-tree.html b/docs/org/flag4j/core/sparse_base/package-tree.html index 723b81b3a..2eaa8f6a3 100644 --- a/docs/org/flag4j/core/sparse_base/package-tree.html +++ b/docs/org/flag4j/core/sparse_base/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.core.sparse_base Class Hierarchy - + diff --git a/docs/org/flag4j/io/PrintOptions.html b/docs/org/flag4j/io/PrintOptions.html index 8bb5d52c0..07cb42fcf 100644 --- a/docs/org/flag4j/io/PrintOptions.html +++ b/docs/org/flag4j/io/PrintOptions.html @@ -1,11 +1,11 @@ - + PrintOptions - + diff --git a/docs/org/flag4j/io/TensorInputStream.html b/docs/org/flag4j/io/TensorInputStream.html index c4601559e..f1cd098f1 100644 --- a/docs/org/flag4j/io/TensorInputStream.html +++ b/docs/org/flag4j/io/TensorInputStream.html @@ -1,11 +1,11 @@ - + TensorInputStream - + diff --git a/docs/org/flag4j/io/TensorOutputStream.html b/docs/org/flag4j/io/TensorOutputStream.html index 048c338bc..7ea79e908 100644 --- a/docs/org/flag4j/io/TensorOutputStream.html +++ b/docs/org/flag4j/io/TensorOutputStream.html @@ -1,11 +1,11 @@ - + TensorOutputStream - + diff --git a/docs/org/flag4j/io/TensorReader.html b/docs/org/flag4j/io/TensorReader.html index cb4510c83..2cf328d97 100644 --- a/docs/org/flag4j/io/TensorReader.html +++ b/docs/org/flag4j/io/TensorReader.html @@ -1,11 +1,11 @@ - + TensorReader - + diff --git a/docs/org/flag4j/io/TensorWriter.html b/docs/org/flag4j/io/TensorWriter.html index 75a313dfb..81d732c9c 100644 --- a/docs/org/flag4j/io/TensorWriter.html +++ b/docs/org/flag4j/io/TensorWriter.html @@ -1,11 +1,11 @@ - + TensorWriter - + @@ -124,6 +124,19 @@

    Method Summary

    Method
    Description
    static boolean
    +
    toCsv(String fileName, + MatrixMixin<?,?,?,?,?,?,?,?> src)
    +
    +
    Writes the specified matrix to a csv file.
    +
    +
    static boolean
    +
    toCsv(String fileName, + MatrixMixin<?,?,?,?,?,?,?,?> src, + String delimiter)
    +
    +
    Writes the specified matrix to a csv file.
    +
    +
    static boolean
    write(String fileName, TensorBase<?,?,?,?,?,?,?> src)
    @@ -182,6 +195,42 @@

    write

  • +
  • +
    +

    toCsv

    +
    +
    public static boolean toCsv(String fileName, + MatrixMixin<?,?,?,?,?,?,?,?> src, + String delimiter)
    +
    Writes the specified matrix to a csv file.
    +
    +
    Parameters:
    +
    fileName - File path to write matrix to.
    +
    src - Matrix to write to csv file.
    +
    delimiter - Delimiter to use in csv file.
    +
    Returns:
    +
    True if the write was successful. False if the write failed.
    +
    +
    +
    +
  • +
  • +
    +

    toCsv

    +
    +
    public static boolean toCsv(String fileName, + MatrixMixin<?,?,?,?,?,?,?,?> src)
    +
    Writes the specified matrix to a csv file.
    +
    +
    Parameters:
    +
    fileName - File path to write matrix to.
    +
    src - Matrix to write to csv file.
    +
    Returns:
    +
    True if the write was successful. False if the write failed.
    +
    +
    +
    +
  • diff --git a/docs/org/flag4j/io/package-summary.html b/docs/org/flag4j/io/package-summary.html index 6081a8b9a..1f95f881d 100644 --- a/docs/org/flag4j/io/package-summary.html +++ b/docs/org/flag4j/io/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.io - + diff --git a/docs/org/flag4j/io/package-tree.html b/docs/org/flag4j/io/package-tree.html index e20538f32..18e10fb66 100644 --- a/docs/org/flag4j/io/package-tree.html +++ b/docs/org/flag4j/io/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.io Class Hierarchy - + diff --git a/docs/org/flag4j/linalg/Condition.html b/docs/org/flag4j/linalg/Condition.html index 83aa4a5ef..8e6359cac 100644 --- a/docs/org/flag4j/linalg/Condition.html +++ b/docs/org/flag4j/linalg/Condition.html @@ -1,11 +1,11 @@ - + Condition - + diff --git a/docs/org/flag4j/linalg/Eigen.html b/docs/org/flag4j/linalg/Eigen.html index 9f2c9a9a8..d452759cc 100644 --- a/docs/org/flag4j/linalg/Eigen.html +++ b/docs/org/flag4j/linalg/Eigen.html @@ -1,11 +1,11 @@ - + Eigen - + diff --git a/docs/org/flag4j/linalg/Invert.html b/docs/org/flag4j/linalg/Invert.html index 538aeac1f..7bec2125d 100644 --- a/docs/org/flag4j/linalg/Invert.html +++ b/docs/org/flag4j/linalg/Invert.html @@ -1,11 +1,11 @@ - + Invert - + diff --git a/docs/org/flag4j/linalg/MatrixNorms.html b/docs/org/flag4j/linalg/MatrixNorms.html index edd0295e2..2bf1a8b5d 100644 --- a/docs/org/flag4j/linalg/MatrixNorms.html +++ b/docs/org/flag4j/linalg/MatrixNorms.html @@ -1,11 +1,11 @@ - + MatrixNorms - + diff --git a/docs/org/flag4j/linalg/PositiveDefiniteness.html b/docs/org/flag4j/linalg/PositiveDefiniteness.html index 43b8160be..0736395f2 100644 --- a/docs/org/flag4j/linalg/PositiveDefiniteness.html +++ b/docs/org/flag4j/linalg/PositiveDefiniteness.html @@ -1,11 +1,11 @@ - + PositiveDefiniteness - + diff --git a/docs/org/flag4j/linalg/RowEchelon.html b/docs/org/flag4j/linalg/RowEchelon.html index bb007cfc5..571f7da36 100644 --- a/docs/org/flag4j/linalg/RowEchelon.html +++ b/docs/org/flag4j/linalg/RowEchelon.html @@ -1,11 +1,11 @@ - + RowEchelon - + diff --git a/docs/org/flag4j/linalg/SubSpace.html b/docs/org/flag4j/linalg/SubSpace.html index a4def7176..d951663cd 100644 --- a/docs/org/flag4j/linalg/SubSpace.html +++ b/docs/org/flag4j/linalg/SubSpace.html @@ -1,11 +1,11 @@ - + SubSpace - + diff --git a/docs/org/flag4j/linalg/TensorInvert.html b/docs/org/flag4j/linalg/TensorInvert.html index 1e15845e4..b8ad32be1 100644 --- a/docs/org/flag4j/linalg/TensorInvert.html +++ b/docs/org/flag4j/linalg/TensorInvert.html @@ -1,11 +1,11 @@ - + TensorInvert - + diff --git a/docs/org/flag4j/linalg/TensorNorms.html b/docs/org/flag4j/linalg/TensorNorms.html index 8c0e30186..bd9f2a573 100644 --- a/docs/org/flag4j/linalg/TensorNorms.html +++ b/docs/org/flag4j/linalg/TensorNorms.html @@ -1,11 +1,11 @@ - + TensorNorms - + diff --git a/docs/org/flag4j/linalg/VectorNorms.html b/docs/org/flag4j/linalg/VectorNorms.html index 062c40334..611113ccc 100644 --- a/docs/org/flag4j/linalg/VectorNorms.html +++ b/docs/org/flag4j/linalg/VectorNorms.html @@ -1,11 +1,11 @@ - + VectorNorms - + diff --git a/docs/org/flag4j/linalg/decompositions/Decomposition.html b/docs/org/flag4j/linalg/decompositions/Decomposition.html index bc68a1733..5dd86c883 100644 --- a/docs/org/flag4j/linalg/decompositions/Decomposition.html +++ b/docs/org/flag4j/linalg/decompositions/Decomposition.html @@ -1,11 +1,11 @@ - + Decomposition - + @@ -81,7 +81,7 @@
    -

    Interface Decomposition<T extends MatrixMixin<T,?,?,?,?,?,?>>

    +

    Interface Decomposition<T extends MatrixMixin<T,?,?,?,?,?,?,?>>


    -
    public interface Decomposition<T extends MatrixMixin<T,?,?,?,?,?,?>>
    +
    public interface Decomposition<T extends MatrixMixin<T,?,?,?,?,?,?,?>>
    This interface specifies methods which should be implemented in all decompositions.
    diff --git a/docs/org/flag4j/linalg/decompositions/DecompositionFactory.html b/docs/org/flag4j/linalg/decompositions/DecompositionFactory.html index 70e12b7f0..a078701c4 100644 --- a/docs/org/flag4j/linalg/decompositions/DecompositionFactory.html +++ b/docs/org/flag4j/linalg/decompositions/DecompositionFactory.html @@ -1,11 +1,11 @@ - + DecompositionFactory - + diff --git a/docs/org/flag4j/linalg/decompositions/chol/Cholesky.html b/docs/org/flag4j/linalg/decompositions/chol/Cholesky.html index ded3149a5..76269b977 100644 --- a/docs/org/flag4j/linalg/decompositions/chol/Cholesky.html +++ b/docs/org/flag4j/linalg/decompositions/chol/Cholesky.html @@ -1,11 +1,11 @@ - + Cholesky - + @@ -81,7 +81,7 @@
    -

    Class Cholesky<T extends MatrixMixin<T,?,?,?,?,?,?>>

    +

    Class Cholesky<T extends MatrixMixin<T,?,?,?,?,?,?,?>>

    java.lang.Object
    org.flag4j.linalg.decompositions.chol.Cholesky<T>
    @@ -101,7 +101,7 @@

    Class Cholesky<T extends ComplexCholesky, RealCholesky


    -
    public abstract class Cholesky<T extends MatrixMixin<T,?,?,?,?,?,?>> +
    public abstract class Cholesky<T extends MatrixMixin<T,?,?,?,?,?,?,?>> extends Object implements Decomposition<T>

    This abstract class specifies methods for computing the Cholesky decomposition of a positive-definite matrix.

    @@ -230,7 +230,7 @@

    enforceHermitian

    L

    -
    protected T extends MatrixMixin<T,?,?,?,?,?,?> L
    +
    protected T extends MatrixMixin<T,?,?,?,?,?,?,?> L
    The lower triangular matrix resulting from the Cholesky decomposition A=LL<sup>*</sup>.
    diff --git a/docs/org/flag4j/linalg/decompositions/chol/ComplexCholesky.html b/docs/org/flag4j/linalg/decompositions/chol/ComplexCholesky.html index 8333263ee..b5ea88a14 100644 --- a/docs/org/flag4j/linalg/decompositions/chol/ComplexCholesky.html +++ b/docs/org/flag4j/linalg/decompositions/chol/ComplexCholesky.html @@ -1,11 +1,11 @@ - + ComplexCholesky - + diff --git a/docs/org/flag4j/linalg/decompositions/chol/RealCholesky.html b/docs/org/flag4j/linalg/decompositions/chol/RealCholesky.html index 489dd20b1..54feaf361 100644 --- a/docs/org/flag4j/linalg/decompositions/chol/RealCholesky.html +++ b/docs/org/flag4j/linalg/decompositions/chol/RealCholesky.html @@ -1,11 +1,11 @@ - + RealCholesky - + diff --git a/docs/org/flag4j/linalg/decompositions/chol/package-summary.html b/docs/org/flag4j/linalg/decompositions/chol/package-summary.html index ac04e8a85..09dda71e9 100644 --- a/docs/org/flag4j/linalg/decompositions/chol/package-summary.html +++ b/docs/org/flag4j/linalg/decompositions/chol/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.linalg.decompositions.chol - + @@ -88,7 +88,7 @@

    Package
    Class
    Description
    -
    Cholesky<T extends MatrixMixin<T,?,?,?,?,?,?>>
    +
    Cholesky<T extends MatrixMixin<T,?,?,?,?,?,?,?>>
    This abstract class specifies methods for computing the Cholesky decomposition of a positive-definite matrix.
    diff --git a/docs/org/flag4j/linalg/decompositions/chol/package-tree.html b/docs/org/flag4j/linalg/decompositions/chol/package-tree.html index cbed5eb7e..4a96f5cbb 100644 --- a/docs/org/flag4j/linalg/decompositions/chol/package-tree.html +++ b/docs/org/flag4j/linalg/decompositions/chol/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.linalg.decompositions.chol Class Hierarchy - + diff --git a/docs/org/flag4j/linalg/decompositions/hess/ComplexHess.html b/docs/org/flag4j/linalg/decompositions/hess/ComplexHess.html index 6513824a5..824d213c7 100644 --- a/docs/org/flag4j/linalg/decompositions/hess/ComplexHess.html +++ b/docs/org/flag4j/linalg/decompositions/hess/ComplexHess.html @@ -1,11 +1,11 @@ - + ComplexHess - + diff --git a/docs/org/flag4j/linalg/decompositions/hess/RealHess.html b/docs/org/flag4j/linalg/decompositions/hess/RealHess.html index e5a827075..77446a8a4 100644 --- a/docs/org/flag4j/linalg/decompositions/hess/RealHess.html +++ b/docs/org/flag4j/linalg/decompositions/hess/RealHess.html @@ -1,11 +1,11 @@ - + RealHess - + diff --git a/docs/org/flag4j/linalg/decompositions/hess/SymmHess.html b/docs/org/flag4j/linalg/decompositions/hess/SymmHess.html index 4159d04a8..82d0192c4 100644 --- a/docs/org/flag4j/linalg/decompositions/hess/SymmHess.html +++ b/docs/org/flag4j/linalg/decompositions/hess/SymmHess.html @@ -1,11 +1,11 @@ - + SymmHess - + diff --git a/docs/org/flag4j/linalg/decompositions/hess/package-summary.html b/docs/org/flag4j/linalg/decompositions/hess/package-summary.html index fbaba0bd1..77770e42f 100644 --- a/docs/org/flag4j/linalg/decompositions/hess/package-summary.html +++ b/docs/org/flag4j/linalg/decompositions/hess/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.linalg.decompositions.hess - + diff --git a/docs/org/flag4j/linalg/decompositions/hess/package-tree.html b/docs/org/flag4j/linalg/decompositions/hess/package-tree.html index a2f065df4..9ebe33f91 100644 --- a/docs/org/flag4j/linalg/decompositions/hess/package-tree.html +++ b/docs/org/flag4j/linalg/decompositions/hess/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.linalg.decompositions.hess Class Hierarchy - + diff --git a/docs/org/flag4j/linalg/decompositions/lu/ComplexLU.html b/docs/org/flag4j/linalg/decompositions/lu/ComplexLU.html index 722758ba6..91de3e98a 100644 --- a/docs/org/flag4j/linalg/decompositions/lu/ComplexLU.html +++ b/docs/org/flag4j/linalg/decompositions/lu/ComplexLU.html @@ -1,11 +1,11 @@ - + ComplexLU - + diff --git a/docs/org/flag4j/linalg/decompositions/lu/LU.Pivoting.html b/docs/org/flag4j/linalg/decompositions/lu/LU.Pivoting.html index cd17b002f..90f6cf14e 100644 --- a/docs/org/flag4j/linalg/decompositions/lu/LU.Pivoting.html +++ b/docs/org/flag4j/linalg/decompositions/lu/LU.Pivoting.html @@ -1,11 +1,11 @@ - + LU.Pivoting - + @@ -96,7 +96,7 @@

    Enum Class LU.Pivoting

    Enclosing class:
    -
    LU<T extends MatrixMixin<T,?,?,?,?,?,?>>
    +
    LU<T extends MatrixMixin<T,?,?,?,?,?,?,?>>

    public static enum LU.Pivoting diff --git a/docs/org/flag4j/linalg/decompositions/lu/LU.html b/docs/org/flag4j/linalg/decompositions/lu/LU.html index d630d6a3e..9df71be13 100644 --- a/docs/org/flag4j/linalg/decompositions/lu/LU.html +++ b/docs/org/flag4j/linalg/decompositions/lu/LU.html @@ -1,11 +1,11 @@ - + LU - + @@ -81,7 +81,7 @@
    -

    Class LU<T extends MatrixMixin<T,?,?,?,?,?,?>>

    +

    Class LU<T extends MatrixMixin<T,?,?,?,?,?,?,?>>

    java.lang.Object
    org.flag4j.linalg.decompositions.lu.LU<T>
    @@ -97,7 +97,7 @@

    Class LU<T extends ComplexLU, RealLU


    -
    public abstract class LU<T extends MatrixMixin<T,?,?,?,?,?,?>> +
    public abstract class LU<T extends MatrixMixin<T,?,?,?,?,?,?,?>> extends Object implements Decomposition<T>

    This abstract class specifies methods for computing the LU decomposition of a matrix.

    @@ -341,7 +341,7 @@

    zeroPivotTol

    LU

    -
    protected T extends MatrixMixin<T,?,?,?,?,?,?> LU
    +
    protected T extends MatrixMixin<T,?,?,?,?,?,?,?> LU
    Storage for L and U matrices. Stored in a single matrix
    @@ -451,7 +451,7 @@

    decompose

    Applies LU decomposition to the source matrix using the pivoting specified in the constructor.
    Specified by:
    -
    decompose in interface Decomposition<T extends MatrixMixin<T,?,?,?,?,?,?>>
    +
    decompose in interface Decomposition<T extends MatrixMixin<T,?,?,?,?,?,?,?>>
    Parameters:
    src - The source matrix to decompose. Not modified.
    Returns:
    diff --git a/docs/org/flag4j/linalg/decompositions/lu/RealLU.html b/docs/org/flag4j/linalg/decompositions/lu/RealLU.html index b00a15093..2cc8f79a3 100644 --- a/docs/org/flag4j/linalg/decompositions/lu/RealLU.html +++ b/docs/org/flag4j/linalg/decompositions/lu/RealLU.html @@ -1,11 +1,11 @@ - + RealLU - + diff --git a/docs/org/flag4j/linalg/decompositions/lu/package-summary.html b/docs/org/flag4j/linalg/decompositions/lu/package-summary.html index c852aded2..097e54cc5 100644 --- a/docs/org/flag4j/linalg/decompositions/lu/package-summary.html +++ b/docs/org/flag4j/linalg/decompositions/lu/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.linalg.decompositions.lu - + @@ -93,7 +93,7 @@

    Package or
    This class provides methods for computing the LU decomposition of a complex dense matrix.
    -
    LU<T extends MatrixMixin<T,?,?,?,?,?,?>>
    +
    LU<T extends MatrixMixin<T,?,?,?,?,?,?,?>>
    This abstract class specifies methods for computing the LU decomposition of a matrix.
    diff --git a/docs/org/flag4j/linalg/decompositions/lu/package-tree.html b/docs/org/flag4j/linalg/decompositions/lu/package-tree.html index dd0905ef4..ef7a27e9d 100644 --- a/docs/org/flag4j/linalg/decompositions/lu/package-tree.html +++ b/docs/org/flag4j/linalg/decompositions/lu/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.linalg.decompositions.lu Class Hierarchy - + diff --git a/docs/org/flag4j/linalg/decompositions/package-summary.html b/docs/org/flag4j/linalg/decompositions/package-summary.html index ec6b3b097..744e28a78 100644 --- a/docs/org/flag4j/linalg/decompositions/package-summary.html +++ b/docs/org/flag4j/linalg/decompositions/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.linalg.decompositions - + @@ -103,7 +103,7 @@

    Package org.f
    Class
    Description
    -
    Decomposition<T extends MatrixMixin<T,?,?,?,?,?,?>>
    +
    Decomposition<T extends MatrixMixin<T,?,?,?,?,?,?,?>>
    This interface specifies methods which should be implemented in all decompositions.
    diff --git a/docs/org/flag4j/linalg/decompositions/package-tree.html b/docs/org/flag4j/linalg/decompositions/package-tree.html index 6ac97d523..d17549134 100644 --- a/docs/org/flag4j/linalg/decompositions/package-tree.html +++ b/docs/org/flag4j/linalg/decompositions/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.linalg.decompositions Class Hierarchy - + diff --git a/docs/org/flag4j/linalg/decompositions/qr/ComplexQR.html b/docs/org/flag4j/linalg/decompositions/qr/ComplexQR.html index f1ff0dc0a..a95280da3 100644 --- a/docs/org/flag4j/linalg/decompositions/qr/ComplexQR.html +++ b/docs/org/flag4j/linalg/decompositions/qr/ComplexQR.html @@ -1,11 +1,11 @@ - + ComplexQR - + diff --git a/docs/org/flag4j/linalg/decompositions/qr/RealQR.html b/docs/org/flag4j/linalg/decompositions/qr/RealQR.html index dec3d3fc6..1abfc0158 100644 --- a/docs/org/flag4j/linalg/decompositions/qr/RealQR.html +++ b/docs/org/flag4j/linalg/decompositions/qr/RealQR.html @@ -1,11 +1,11 @@ - + RealQR - + diff --git a/docs/org/flag4j/linalg/decompositions/qr/package-summary.html b/docs/org/flag4j/linalg/decompositions/qr/package-summary.html index 51298653e..815818a7d 100644 --- a/docs/org/flag4j/linalg/decompositions/qr/package-summary.html +++ b/docs/org/flag4j/linalg/decompositions/qr/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.linalg.decompositions.qr - + diff --git a/docs/org/flag4j/linalg/decompositions/qr/package-tree.html b/docs/org/flag4j/linalg/decompositions/qr/package-tree.html index 2f165c2b3..00b5a6ed2 100644 --- a/docs/org/flag4j/linalg/decompositions/qr/package-tree.html +++ b/docs/org/flag4j/linalg/decompositions/qr/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.linalg.decompositions.qr Class Hierarchy - + diff --git a/docs/org/flag4j/linalg/decompositions/schur/ComplexSchur.html b/docs/org/flag4j/linalg/decompositions/schur/ComplexSchur.html index a498df55a..5220f24e7 100644 --- a/docs/org/flag4j/linalg/decompositions/schur/ComplexSchur.html +++ b/docs/org/flag4j/linalg/decompositions/schur/ComplexSchur.html @@ -1,11 +1,11 @@ - + ComplexSchur - + diff --git a/docs/org/flag4j/linalg/decompositions/schur/RealSchur.html b/docs/org/flag4j/linalg/decompositions/schur/RealSchur.html index 57aaa9ffe..083713aa6 100644 --- a/docs/org/flag4j/linalg/decompositions/schur/RealSchur.html +++ b/docs/org/flag4j/linalg/decompositions/schur/RealSchur.html @@ -1,11 +1,11 @@ - + RealSchur - + diff --git a/docs/org/flag4j/linalg/decompositions/schur/Schur.html b/docs/org/flag4j/linalg/decompositions/schur/Schur.html index 30fa42723..a2b5d8691 100644 --- a/docs/org/flag4j/linalg/decompositions/schur/Schur.html +++ b/docs/org/flag4j/linalg/decompositions/schur/Schur.html @@ -1,11 +1,11 @@ - + Schur - + @@ -81,7 +81,7 @@
    -

    Class Schur<T extends MatrixMixin<T,?,?,?,?,?,?>,U>

    +

    Class Schur<T extends MatrixMixin<T,?,?,?,?,?,?,?>,U>

    java.lang.Object
    org.flag4j.linalg.decompositions.schur.Schur<T,U>
    @@ -102,7 +102,7 @@

    Class Schur<T extends ComplexSchur, RealSchur


    -
    public abstract class Schur<T extends MatrixMixin<T,?,?,?,?,?,?>,U> +
    public abstract class Schur<T extends MatrixMixin<T,?,?,?,?,?,?,?>,U> extends Object implements Decomposition<T>

    The base class for Schur decompositions.

    @@ -366,7 +366,7 @@

    DEFAULT_MAX_ITERS_FACTOR

    T

    -
    protected T extends MatrixMixin<T,?,?,?,?,?,?> T
    +
    protected T extends MatrixMixin<T,?,?,?,?,?,?,?> T
    For storing the (possibly block) upper triangular matrix T in the Schur decomposition.
    @@ -375,7 +375,7 @@

    T

    U

    -
    protected T extends MatrixMixin<T,?,?,?,?,?,?> U
    +
    protected T extends MatrixMixin<T,?,?,?,?,?,?,?> U
    For storing the unitary U matrix in the Schur decomposition.
    @@ -384,7 +384,7 @@

    U

    hess

    -
    protected UnitaryDecomposition<T extends MatrixMixin<T,?,?,?,?,?,?>,U> hess
    +
    protected UnitaryDecomposition<T extends MatrixMixin<T,?,?,?,?,?,?,?>,U> hess
    Decomposer to compute the Hessenburg decomposition as a setup step for the implicit double step QR algorithm.
    diff --git a/docs/org/flag4j/linalg/decompositions/schur/package-summary.html b/docs/org/flag4j/linalg/decompositions/schur/package-summary.html index b8b2a3e72..5283f26bd 100644 --- a/docs/org/flag4j/linalg/decompositions/schur/package-summary.html +++ b/docs/org/flag4j/linalg/decompositions/schur/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.linalg.decompositions.schur - + @@ -96,7 +96,7 @@

    Package
    This class computes the Schur decomposition of a real dense square matrix.
    -
    Schur<T extends MatrixMixin<T,?,?,?,?,?,?>,U>
    +
    Schur<T extends MatrixMixin<T,?,?,?,?,?,?,?>,U>
    The base class for Schur decompositions.
    diff --git a/docs/org/flag4j/linalg/decompositions/schur/package-tree.html b/docs/org/flag4j/linalg/decompositions/schur/package-tree.html index 2fb6b933c..dc8fb10a8 100644 --- a/docs/org/flag4j/linalg/decompositions/schur/package-tree.html +++ b/docs/org/flag4j/linalg/decompositions/schur/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.linalg.decompositions.schur Class Hierarchy - + diff --git a/docs/org/flag4j/linalg/decompositions/svd/ComplexSVD.html b/docs/org/flag4j/linalg/decompositions/svd/ComplexSVD.html index 9c88ad8a6..bd024d32c 100644 --- a/docs/org/flag4j/linalg/decompositions/svd/ComplexSVD.html +++ b/docs/org/flag4j/linalg/decompositions/svd/ComplexSVD.html @@ -1,11 +1,11 @@ - + ComplexSVD - + diff --git a/docs/org/flag4j/linalg/decompositions/svd/RealSVD.html b/docs/org/flag4j/linalg/decompositions/svd/RealSVD.html index 1f03946d6..283569e00 100644 --- a/docs/org/flag4j/linalg/decompositions/svd/RealSVD.html +++ b/docs/org/flag4j/linalg/decompositions/svd/RealSVD.html @@ -1,11 +1,11 @@ - + RealSVD - + diff --git a/docs/org/flag4j/linalg/decompositions/svd/SVD.html b/docs/org/flag4j/linalg/decompositions/svd/SVD.html index 26c78a30d..4bcf7d898 100644 --- a/docs/org/flag4j/linalg/decompositions/svd/SVD.html +++ b/docs/org/flag4j/linalg/decompositions/svd/SVD.html @@ -1,11 +1,11 @@ - + SVD - + @@ -81,7 +81,7 @@
    -

    Class SVD<T extends MatrixMixin<T,?,?,?,?,?,?>>

    +

    Class SVD<T extends MatrixMixin<T,?,?,?,?,?,?,?>>

    java.lang.Object
    org.flag4j.linalg.decompositions.svd.SVD<T>
    @@ -101,7 +101,7 @@

    Class SVD<T extends ComplexSVD, RealSVD


    -
    public abstract class SVD<T extends MatrixMixin<T,?,?,?,?,?,?>> +
    public abstract class SVD<T extends MatrixMixin<T,?,?,?,?,?,?,?>> extends Object implements Decomposition<T>
    This abstract class specifies methods for computing the singular value decomposition (SVD) of a matrix. @@ -286,7 +286,7 @@

    reduced

    U

    -
    protected T extends MatrixMixin<T,?,?,?,?,?,?> U
    +
    protected T extends MatrixMixin<T,?,?,?,?,?,?,?> U
    The unitary matrix U corresponding to M=USVH in the SVD.
    @@ -304,7 +304,7 @@

    S

    V

    -
    protected T extends MatrixMixin<T,?,?,?,?,?,?> V
    +
    protected T extends MatrixMixin<T,?,?,?,?,?,?,?> V
    The unitary matrix V corresponding to M=USVH in the SVD.
    @@ -416,7 +416,7 @@

    decompose

    Applies decomposition to the source matrix.
    Specified by:
    -
    decompose in interface Decomposition<T extends MatrixMixin<T,?,?,?,?,?,?>>
    +
    decompose in interface Decomposition<T extends MatrixMixin<T,?,?,?,?,?,?,?>>
    Parameters:
    src - The source matrix to decompose.
    Returns:
    diff --git a/docs/org/flag4j/linalg/decompositions/svd/package-summary.html b/docs/org/flag4j/linalg/decompositions/svd/package-summary.html index fc3d9c762..5b03741db 100644 --- a/docs/org/flag4j/linalg/decompositions/svd/package-summary.html +++ b/docs/org/flag4j/linalg/decompositions/svd/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.linalg.decompositions.svd - + @@ -96,7 +96,7 @@

    Package o
    Instances of this class can be used to compute the singular value decomposition (SVD) of a real dense matrix.
    -
    SVD<T extends MatrixMixin<T,?,?,?,?,?,?>>
    +
    SVD<T extends MatrixMixin<T,?,?,?,?,?,?,?>>
    This abstract class specifies methods for computing the singular value decomposition (SVD) of a matrix.
    diff --git a/docs/org/flag4j/linalg/decompositions/svd/package-tree.html b/docs/org/flag4j/linalg/decompositions/svd/package-tree.html index b6b4129c3..23166f916 100644 --- a/docs/org/flag4j/linalg/decompositions/svd/package-tree.html +++ b/docs/org/flag4j/linalg/decompositions/svd/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.linalg.decompositions.svd Class Hierarchy - + diff --git a/docs/org/flag4j/linalg/decompositions/unitary/ComplexUnitaryDecomposition.html b/docs/org/flag4j/linalg/decompositions/unitary/ComplexUnitaryDecomposition.html index 77f13ce15..969922f8e 100644 --- a/docs/org/flag4j/linalg/decompositions/unitary/ComplexUnitaryDecomposition.html +++ b/docs/org/flag4j/linalg/decompositions/unitary/ComplexUnitaryDecomposition.html @@ -1,11 +1,11 @@ - + ComplexUnitaryDecomposition - + @@ -137,11 +137,6 @@

    Field Summary

    Stores the shifted value of the first entry in a Householder vector.
    -
    private static final CNumber
    - -
    -
    The complex number equal to zero.
    -

    Fields inherited from class org.flag4j.linalg.decompositions.unitary.UnitaryDecomposition

    @@ -276,15 +271,6 @@

    shift

    -
  • -
    -

    ZERO

    -
    -
    private static final CNumber ZERO
    -
    The complex number equal to zero.
    -
    -
    -
  • diff --git a/docs/org/flag4j/linalg/decompositions/unitary/RealUnitaryDecomposition.html b/docs/org/flag4j/linalg/decompositions/unitary/RealUnitaryDecomposition.html index 6d8cfc9c3..137ea769a 100644 --- a/docs/org/flag4j/linalg/decompositions/unitary/RealUnitaryDecomposition.html +++ b/docs/org/flag4j/linalg/decompositions/unitary/RealUnitaryDecomposition.html @@ -1,11 +1,11 @@ - + RealUnitaryDecomposition - + diff --git a/docs/org/flag4j/linalg/decompositions/unitary/UnitaryDecomposition.html b/docs/org/flag4j/linalg/decompositions/unitary/UnitaryDecomposition.html index 50d9e301a..33be82c31 100644 --- a/docs/org/flag4j/linalg/decompositions/unitary/UnitaryDecomposition.html +++ b/docs/org/flag4j/linalg/decompositions/unitary/UnitaryDecomposition.html @@ -1,11 +1,11 @@ - + UnitaryDecomposition - + @@ -81,7 +81,7 @@
    -

    Class UnitaryDecomposition<T extends MatrixMixin<T,?,?,?,?,?,?>,U>

    +

    Class UnitaryDecomposition<T extends MatrixMixin<T,?,?,?,?,?,?,?>,U>

    java.lang.Object
    org.flag4j.linalg.decompositions.unitary.UnitaryDecomposition<T,U>
    @@ -102,7 +102,7 @@

    Class UnitaryDecomposition&
    ComplexUnitaryDecomposition, RealUnitaryDecomposition


    -
    public abstract class UnitaryDecomposition<T extends MatrixMixin<T,?,?,?,?,?,?>,U> +
    public abstract class UnitaryDecomposition<T extends MatrixMixin<T,?,?,?,?,?,?,?>,U> extends Object implements Decomposition<T>
    This class is the base class for all decompositions which proceed by using unitary transformations @@ -288,7 +288,7 @@

    Field Details

    transformMatrix

    -
    protected T extends MatrixMixin<T,?,?,?,?,?,?> transformMatrix
    +
    protected T extends MatrixMixin<T,?,?,?,?,?,?,?> transformMatrix

    Storage for the upper triangular/Hessenburg matrix and the vectors of the Householder reflectors used in the decomposition.

    diff --git a/docs/org/flag4j/linalg/decompositions/unitary/package-summary.html b/docs/org/flag4j/linalg/decompositions/unitary/package-summary.html index 87916b1b9..4ff294fe3 100644 --- a/docs/org/flag4j/linalg/decompositions/unitary/package-summary.html +++ b/docs/org/flag4j/linalg/decompositions/unitary/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.linalg.decompositions.unitary - + @@ -98,7 +98,7 @@

    Packa
    This class is the base class for real matrix decompositions which proceed by using unitary/orthogonal transformations (specifically Householder reflectors) to bring a matrix into an upper triangular/Hessenburg matrix.

    -
    UnitaryDecomposition<T extends MatrixMixin<T,?,?,?,?,?,?>,U>
    +
    UnitaryDecomposition<T extends MatrixMixin<T,?,?,?,?,?,?,?>,U>
    This class is the base class for all decompositions which proceed by using unitary transformations (specifically Householder reflectors) to bring a matrix into an upper triangular matrix or an upper Hessenburg matrix.
    diff --git a/docs/org/flag4j/linalg/decompositions/unitary/package-tree.html b/docs/org/flag4j/linalg/decompositions/unitary/package-tree.html index e078c1586..fcae82003 100644 --- a/docs/org/flag4j/linalg/decompositions/unitary/package-tree.html +++ b/docs/org/flag4j/linalg/decompositions/unitary/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.linalg.decompositions.unitary Class Hierarchy - + diff --git a/docs/org/flag4j/linalg/ops/DirectSum.html b/docs/org/flag4j/linalg/ops/DirectSum.html index 94bf215b4..f267d05af 100644 --- a/docs/org/flag4j/linalg/ops/DirectSum.html +++ b/docs/org/flag4j/linalg/ops/DirectSum.html @@ -1,11 +1,11 @@ - + DirectSum - + diff --git a/docs/org/flag4j/linalg/ops/package-summary.html b/docs/org/flag4j/linalg/ops/package-summary.html index b8b2013e8..deddb737a 100644 --- a/docs/org/flag4j/linalg/ops/package-summary.html +++ b/docs/org/flag4j/linalg/ops/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.linalg.ops - + diff --git a/docs/org/flag4j/linalg/ops/package-tree.html b/docs/org/flag4j/linalg/ops/package-tree.html index ab5351a54..d772e37fe 100644 --- a/docs/org/flag4j/linalg/ops/package-tree.html +++ b/docs/org/flag4j/linalg/ops/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.linalg.ops Class Hierarchy - + diff --git a/docs/org/flag4j/linalg/package-summary.html b/docs/org/flag4j/linalg/package-summary.html index 0ddca8881..e0814da47 100644 --- a/docs/org/flag4j/linalg/package-summary.html +++ b/docs/org/flag4j/linalg/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.linalg - + diff --git a/docs/org/flag4j/linalg/package-tree.html b/docs/org/flag4j/linalg/package-tree.html index 786253321..05ddea4a2 100644 --- a/docs/org/flag4j/linalg/package-tree.html +++ b/docs/org/flag4j/linalg/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.linalg Class Hierarchy - + diff --git a/docs/org/flag4j/linalg/solvers/LinearSolver.html b/docs/org/flag4j/linalg/solvers/LinearSolver.html index 8a9f6ccee..89c774eea 100644 --- a/docs/org/flag4j/linalg/solvers/LinearSolver.html +++ b/docs/org/flag4j/linalg/solvers/LinearSolver.html @@ -1,11 +1,11 @@ - + LinearSolver - + @@ -81,7 +81,7 @@
    -

    Interface LinearSolver<T extends MatrixMixin<T,?,?,?,?,U,?>,U extends VectorMixin<U,?,?,?,?,T,?,?>>

    +

    Interface LinearSolver<T extends MatrixMixin<T,?,?,?,?,?,U,?>,U extends VectorMixin<U,?,?,?,?,T,?,?>>


    -
    public interface LinearSolver<T extends MatrixMixin<T,?,?,?,?,U,?>,U extends VectorMixin<U,?,?,?,?,T,?,?>>
    +
    public interface LinearSolver<T extends MatrixMixin<T,?,?,?,?,?,U,?>,U extends VectorMixin<U,?,?,?,?,T,?,?>>
    This interface specifies methods which all linear system solvers should implement. Solvers may solve in an exact sense or in a least squares sense.
    diff --git a/docs/org/flag4j/linalg/solvers/LinearTensorSolver.html b/docs/org/flag4j/linalg/solvers/LinearTensorSolver.html index 126afb7a4..6cf6bc82e 100644 --- a/docs/org/flag4j/linalg/solvers/LinearTensorSolver.html +++ b/docs/org/flag4j/linalg/solvers/LinearTensorSolver.html @@ -1,11 +1,11 @@ - + LinearTensorSolver - + diff --git a/docs/org/flag4j/linalg/solvers/exact/ComplexExactSolver.html b/docs/org/flag4j/linalg/solvers/exact/ComplexExactSolver.html index e1fd6071c..f5a02faf6 100644 --- a/docs/org/flag4j/linalg/solvers/exact/ComplexExactSolver.html +++ b/docs/org/flag4j/linalg/solvers/exact/ComplexExactSolver.html @@ -1,11 +1,11 @@ - + ComplexExactSolver - + diff --git a/docs/org/flag4j/linalg/solvers/exact/ComplexExactTensorSolver.html b/docs/org/flag4j/linalg/solvers/exact/ComplexExactTensorSolver.html index ec2c0a28c..7a36b9bb5 100644 --- a/docs/org/flag4j/linalg/solvers/exact/ComplexExactTensorSolver.html +++ b/docs/org/flag4j/linalg/solvers/exact/ComplexExactTensorSolver.html @@ -1,11 +1,11 @@ - + ComplexExactTensorSolver - + diff --git a/docs/org/flag4j/linalg/solvers/exact/ExactSolver.html b/docs/org/flag4j/linalg/solvers/exact/ExactSolver.html index 53770fb3b..96a15d0eb 100644 --- a/docs/org/flag4j/linalg/solvers/exact/ExactSolver.html +++ b/docs/org/flag4j/linalg/solvers/exact/ExactSolver.html @@ -1,11 +1,11 @@ - + ExactSolver - + @@ -81,7 +81,7 @@
    -

    Class ExactSolver<T extends MatrixMixin<T,?,?,?,?,U,?>,U extends VectorMixin<U,?,?,?,?,T,?,?>>

    +

    Class ExactSolver<T extends MatrixMixin<T,?,?,?,?,?,U,?>,U extends VectorMixin<U,?,?,?,?,T,?,?>>

    java.lang.Object
    org.flag4j.linalg.solvers.exact.ExactSolver<T,U>
    @@ -97,7 +97,7 @@

    Class ExactSolver<T extends ComplexExactSolver, RealExactSolver


    -
    public abstract class ExactSolver<T extends MatrixMixin<T,?,?,?,?,U,?>,U extends VectorMixin<U,?,?,?,?,T,?,?>> +
    public abstract class ExactSolver<T extends MatrixMixin<T,?,?,?,?,?,U,?>,U extends VectorMixin<U,?,?,?,?,T,?,?>> extends Object implements LinearSolver<T,U>

    Solves a well determined system of equations Ax=b in an exact sense by using a LU decomposition.

    @@ -222,7 +222,7 @@

    Field Details

    forwardSolver

    -
    protected final LinearSolver<T extends MatrixMixin<T,?,?,?,?,U,?>,U extends VectorMixin<U,?,?,?,?,T,?,?>> forwardSolver
    +
    protected final LinearSolver<T extends MatrixMixin<T,?,?,?,?,?,U,?>,U extends VectorMixin<U,?,?,?,?,T,?,?>> forwardSolver
    Forward Solver for solving system with lower triangular coefficient matrix.
    @@ -231,7 +231,7 @@

    forwardSolver

    backSolver

    -
    protected final LinearSolver<T extends MatrixMixin<T,?,?,?,?,U,?>,U extends VectorMixin<U,?,?,?,?,T,?,?>> backSolver
    +
    protected final LinearSolver<T extends MatrixMixin<T,?,?,?,?,?,U,?>,U extends VectorMixin<U,?,?,?,?,T,?,?>> backSolver
    Backwards solver for solving system with upper triangular coefficient matrix.
    @@ -240,7 +240,7 @@

    backSolver

    lu

    -
    protected final LU<T extends MatrixMixin<T,?,?,?,?,U,?>> lu
    +
    protected final LU<T extends MatrixMixin<T,?,?,?,?,?,U,?>> lu
    Decomposer to compute LU decomposition.
    @@ -249,7 +249,7 @@

    lu

    LU

    -
    protected T extends MatrixMixin<T,?,?,?,?,U,?> LU
    +
    protected T extends MatrixMixin<T,?,?,?,?,?,U,?> LU
    The unit-lower and upper triangular matrices from the LU decomposition stored in a single matrix.
    @@ -319,7 +319,7 @@

    solve
    Specified by:
    -
    solve in interface LinearSolver<T extends MatrixMixin<T,?,?,?,?,U,?>,U extends VectorMixin<U,?,?,?,?,T,?,?>>
    +
    solve in interface LinearSolver<T extends MatrixMixin<T,?,?,?,?,?,U,?>,U extends VectorMixin<U,?,?,?,?,T,?,?>>
    Parameters:
    A - Coefficient matrix in the linear system. Must be square and have full rank (i.e. all rows, or equivalently columns, must be linearly independent).
    @@ -344,7 +344,7 @@

    solveSolves the set of linear system of equations given by A*X=B for the matrix X.

    Specified by:
    -
    solve in interface LinearSolver<T extends MatrixMixin<T,?,?,?,?,U,?>,U extends VectorMixin<U,?,?,?,?,T,?,?>>
    +
    solve in interface LinearSolver<T extends MatrixMixin<T,?,?,?,?,?,U,?>,U extends VectorMixin<U,?,?,?,?,T,?,?>>
    Parameters:
    A - Coefficient matrix in the linear system.
    B - Matrix of constants in the linear system.
    diff --git a/docs/org/flag4j/linalg/solvers/exact/ExactTensorSolver.html b/docs/org/flag4j/linalg/solvers/exact/ExactTensorSolver.html index 65800409a..e826d1b5c 100644 --- a/docs/org/flag4j/linalg/solvers/exact/ExactTensorSolver.html +++ b/docs/org/flag4j/linalg/solvers/exact/ExactTensorSolver.html @@ -1,11 +1,11 @@ - + ExactTensorSolver - + @@ -81,7 +81,7 @@
    -

    Class ExactTensorSolver<T extends TensorBase<T,?,?,?,?,?,?>,U extends MatrixMixin<U,?,?,?,?,V,?>,V extends VectorMixin<V,?,?,?,?,U,?,?>>

    +

    Class ExactTensorSolver<T extends TensorBase<T,?,?,?,?,?,?>,U extends MatrixMixin<U,?,?,?,?,?,V,?>,V extends VectorMixin<V,?,?,?,?,U,?,?>>

    java.lang.Object
    org.flag4j.linalg.solvers.exact.ExactTensorSolver<T,U,V>
    @@ -103,7 +103,7 @@

    Class ExactTensorSolver<T e
    ComplexExactTensorSolver, RealExactTensorSolver


    -
    public abstract class ExactTensorSolver<T extends TensorBase<T,?,?,?,?,?,?>,U extends MatrixMixin<U,?,?,?,?,V,?>,V extends VectorMixin<V,?,?,?,?,U,?,?>> +
    public abstract class ExactTensorSolver<T extends TensorBase<T,?,?,?,?,?,?>,U extends MatrixMixin<U,?,?,?,?,?,V,?>,V extends VectorMixin<V,?,?,?,?,U,?,?>> extends Object implements LinearTensorSolver<T>

    Solves a well determined system of equations A*X=B in an exact sense where A, X, and B are tensors.

    @@ -217,7 +217,7 @@

    Field Details

    matrixSolver

    -
    private final LinearSolver<U extends MatrixMixin<U,?,?,?,?,V,?>,V extends VectorMixin<V,?,?,?,?,U,?,?>> matrixSolver
    +
    private final LinearSolver<U extends MatrixMixin<U,?,?,?,?,?,V,?>,V extends VectorMixin<V,?,?,?,?,U,?,?>> matrixSolver
    Solver to solve a linear matrix equation C*X=d for X where C and X are matrices and d is a vector.
    diff --git a/docs/org/flag4j/linalg/solvers/exact/RealExactSolver.html b/docs/org/flag4j/linalg/solvers/exact/RealExactSolver.html index 278633023..219e7c994 100644 --- a/docs/org/flag4j/linalg/solvers/exact/RealExactSolver.html +++ b/docs/org/flag4j/linalg/solvers/exact/RealExactSolver.html @@ -1,11 +1,11 @@ - + RealExactSolver - + diff --git a/docs/org/flag4j/linalg/solvers/exact/RealExactTensorSolver.html b/docs/org/flag4j/linalg/solvers/exact/RealExactTensorSolver.html index ccdc44576..4c560bd92 100644 --- a/docs/org/flag4j/linalg/solvers/exact/RealExactTensorSolver.html +++ b/docs/org/flag4j/linalg/solvers/exact/RealExactTensorSolver.html @@ -1,11 +1,11 @@ - + RealExactTensorSolver - + diff --git a/docs/org/flag4j/linalg/solvers/exact/package-summary.html b/docs/org/flag4j/linalg/solvers/exact/package-summary.html index 1cede6cf8..af652957c 100644 --- a/docs/org/flag4j/linalg/solvers/exact/package-summary.html +++ b/docs/org/flag4j/linalg/solvers/exact/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.linalg.solvers.exact - + @@ -101,11 +101,11 @@

    Package org.fl
    Solver for solving a complex well determined linear tensor equation A*X=B in an exact sense.
    -
    ExactSolver<T extends MatrixMixin<T,?,?,?,?,U,?>,U extends VectorMixin<U,?,?,?,?,T,?,?>>
    +
    ExactSolver<T extends MatrixMixin<T,?,?,?,?,?,U,?>,U extends VectorMixin<U,?,?,?,?,T,?,?>>
    Solves a well determined system of equations Ax=b in an exact sense by using a LU decomposition.
    -
    ExactTensorSolver<T extends TensorBase<T,?,?,?,?,?,?>,U extends MatrixMixin<U,?,?,?,?,V,?>,V extends VectorMixin<V,?,?,?,?,U,?,?>>
    +
    ExactTensorSolver<T extends TensorBase<T,?,?,?,?,?,?>,U extends MatrixMixin<U,?,?,?,?,?,V,?>,V extends VectorMixin<V,?,?,?,?,U,?,?>>
    Solves a well determined system of equations A*X=B in an exact sense where A, X, and B are tensors.
    diff --git a/docs/org/flag4j/linalg/solvers/exact/package-tree.html b/docs/org/flag4j/linalg/solvers/exact/package-tree.html index 1faaa7828..6e591570d 100644 --- a/docs/org/flag4j/linalg/solvers/exact/package-tree.html +++ b/docs/org/flag4j/linalg/solvers/exact/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.linalg.solvers.exact Class Hierarchy - + diff --git a/docs/org/flag4j/linalg/solvers/exact/triangular/BackSolver.html b/docs/org/flag4j/linalg/solvers/exact/triangular/BackSolver.html index a830a1614..09397d465 100644 --- a/docs/org/flag4j/linalg/solvers/exact/triangular/BackSolver.html +++ b/docs/org/flag4j/linalg/solvers/exact/triangular/BackSolver.html @@ -1,11 +1,11 @@ - + BackSolver - + @@ -81,7 +81,7 @@
    -

    Class BackSolver<T extends MatrixMixin<T,?,?,?,?,U,?>,U extends VectorMixin<U,?,?,?,?,T,?,?>,V>

    +

    Class BackSolver<T extends MatrixMixin<T,?,?,?,?,?,U,?>,U extends VectorMixin<U,?,?,?,?,T,?,?>,V>

    java.lang.Object
    org.flag4j.linalg.solvers.exact.triangular.BackSolver<T,U,V>
    @@ -103,7 +103,7 @@

    Class BackSolver<T extends ComplexBackSolver, RealBackSolver


    -
    public abstract class BackSolver<T extends MatrixMixin<T,?,?,?,?,U,?>,U extends VectorMixin<U,?,?,?,?,T,?,?>,V> +
    public abstract class BackSolver<T extends MatrixMixin<T,?,?,?,?,?,U,?>,U extends VectorMixin<U,?,?,?,?,T,?,?>,V> extends Object implements LinearSolver<T,U>
    Base class for solvers which solve a linear system of equations U*x=b or U*X=B where U is an upper @@ -213,7 +213,7 @@

    Field Details

    X

    -
    protected T extends MatrixMixin<T,?,?,?,?,U,?> X
    +
    protected T extends MatrixMixin<T,?,?,?,?,?,U,?> X
    For storing matrix results.
    diff --git a/docs/org/flag4j/linalg/solvers/exact/triangular/ComplexBackSolver.html b/docs/org/flag4j/linalg/solvers/exact/triangular/ComplexBackSolver.html index bff71b9c4..a69dbd1dd 100644 --- a/docs/org/flag4j/linalg/solvers/exact/triangular/ComplexBackSolver.html +++ b/docs/org/flag4j/linalg/solvers/exact/triangular/ComplexBackSolver.html @@ -1,11 +1,11 @@ - + ComplexBackSolver - + diff --git a/docs/org/flag4j/linalg/solvers/exact/triangular/ComplexForwardSolver.html b/docs/org/flag4j/linalg/solvers/exact/triangular/ComplexForwardSolver.html index 529097495..ea2e297da 100644 --- a/docs/org/flag4j/linalg/solvers/exact/triangular/ComplexForwardSolver.html +++ b/docs/org/flag4j/linalg/solvers/exact/triangular/ComplexForwardSolver.html @@ -1,11 +1,11 @@ - + ComplexForwardSolver - + diff --git a/docs/org/flag4j/linalg/solvers/exact/triangular/ForwardSolver.html b/docs/org/flag4j/linalg/solvers/exact/triangular/ForwardSolver.html index 163c1d51d..33450a563 100644 --- a/docs/org/flag4j/linalg/solvers/exact/triangular/ForwardSolver.html +++ b/docs/org/flag4j/linalg/solvers/exact/triangular/ForwardSolver.html @@ -1,11 +1,11 @@ - + ForwardSolver - + @@ -81,7 +81,7 @@
    -

    Class ForwardSolver<T extends MatrixMixin<T,?,?,?,?,U,?>,U extends VectorMixin<U,?,?,?,?,T,?,?>,V>

    +

    Class ForwardSolver<T extends MatrixMixin<T,?,?,?,?,?,U,?>,U extends VectorMixin<U,?,?,?,?,T,?,?>,V>

    java.lang.Object
    org.flag4j.linalg.solvers.exact.triangular.ForwardSolver<T,U,V>
    @@ -103,7 +103,7 @@

    Class ForwardSolver<T extends <
    ComplexForwardSolver, RealForwardSolver


    -
    public abstract class ForwardSolver<T extends MatrixMixin<T,?,?,?,?,U,?>,U extends VectorMixin<U,?,?,?,?,T,?,?>,V> +
    public abstract class ForwardSolver<T extends MatrixMixin<T,?,?,?,?,?,U,?>,U extends VectorMixin<U,?,?,?,?,T,?,?>,V> extends Object implements LinearSolver<T,U>
    This solver solves linear systems of equations where the coefficient matrix in a lower triangular real dense matrix @@ -253,7 +253,7 @@

    enforceLower

    X

    -
    T extends MatrixMixin<T,?,?,?,?,U,?> X
    +
    T extends MatrixMixin<T,?,?,?,?,?,U,?> X
    Storage for solution in solves which return a 00000000
    diff --git a/docs/org/flag4j/linalg/solvers/exact/triangular/RealBackSolver.html b/docs/org/flag4j/linalg/solvers/exact/triangular/RealBackSolver.html index 8cd67ef58..b852c2845 100644 --- a/docs/org/flag4j/linalg/solvers/exact/triangular/RealBackSolver.html +++ b/docs/org/flag4j/linalg/solvers/exact/triangular/RealBackSolver.html @@ -1,11 +1,11 @@ - + RealBackSolver - + diff --git a/docs/org/flag4j/linalg/solvers/exact/triangular/RealForwardSolver.html b/docs/org/flag4j/linalg/solvers/exact/triangular/RealForwardSolver.html index 5f56ccdf2..0710244df 100644 --- a/docs/org/flag4j/linalg/solvers/exact/triangular/RealForwardSolver.html +++ b/docs/org/flag4j/linalg/solvers/exact/triangular/RealForwardSolver.html @@ -1,11 +1,11 @@ - + RealForwardSolver - + diff --git a/docs/org/flag4j/linalg/solvers/exact/triangular/package-summary.html b/docs/org/flag4j/linalg/solvers/exact/triangular/package-summary.html index 6cdcb6603..8c24a4686 100644 --- a/docs/org/flag4j/linalg/solvers/exact/triangular/package-summary.html +++ b/docs/org/flag4j/linalg/solvers/exact/triangular/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.linalg.solvers.exact.triangular - + @@ -88,7 +88,7 @@

    Pac
    Class
    Description
    -
    BackSolver<T extends MatrixMixin<T,?,?,?,?,U,?>,U extends VectorMixin<U,?,?,?,?,T,?,?>,V>
    +
    BackSolver<T extends MatrixMixin<T,?,?,?,?,?,U,?>,U extends VectorMixin<U,?,?,?,?,T,?,?>,V>
    Base class for solvers which solve a linear system of equations U*x=b or U*X=B where U is an upper triangular matrix.
    @@ -103,7 +103,7 @@

    Pac
    This solver solves linear systems of equations where the coefficient matrix in a lower triangular complex dense matrix and the constant vector is a complex dense vector.

    -
    ForwardSolver<T extends MatrixMixin<T,?,?,?,?,U,?>,U extends VectorMixin<U,?,?,?,?,T,?,?>,V>
    +
    ForwardSolver<T extends MatrixMixin<T,?,?,?,?,?,U,?>,U extends VectorMixin<U,?,?,?,?,T,?,?>,V>
    This solver solves linear systems of equations where the coefficient matrix in a lower triangular real dense matrix and the constant vector is a real dense vector.
    diff --git a/docs/org/flag4j/linalg/solvers/exact/triangular/package-tree.html b/docs/org/flag4j/linalg/solvers/exact/triangular/package-tree.html index 2aa5f9763..6333431b6 100644 --- a/docs/org/flag4j/linalg/solvers/exact/triangular/package-tree.html +++ b/docs/org/flag4j/linalg/solvers/exact/triangular/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.linalg.solvers.exact.triangular Class Hierarchy - + diff --git a/docs/org/flag4j/linalg/solvers/lstsq/ComplexLstsqSolver.html b/docs/org/flag4j/linalg/solvers/lstsq/ComplexLstsqSolver.html index 44a5f6e7d..9146c6819 100644 --- a/docs/org/flag4j/linalg/solvers/lstsq/ComplexLstsqSolver.html +++ b/docs/org/flag4j/linalg/solvers/lstsq/ComplexLstsqSolver.html @@ -1,11 +1,11 @@ - + ComplexLstsqSolver - + diff --git a/docs/org/flag4j/linalg/solvers/lstsq/LstsqSolver.html b/docs/org/flag4j/linalg/solvers/lstsq/LstsqSolver.html index 49a6ea862..eec5f6a3a 100644 --- a/docs/org/flag4j/linalg/solvers/lstsq/LstsqSolver.html +++ b/docs/org/flag4j/linalg/solvers/lstsq/LstsqSolver.html @@ -1,11 +1,11 @@ - + LstsqSolver - + @@ -81,7 +81,7 @@
    -

    Class LstsqSolver<T extends MatrixMixin<T,T,?,CMatrix,?,U,U>,U extends VectorMixin<U,U,?,CVector,?,T,T,CMatrix>>

    +

    Class LstsqSolver<T extends MatrixMixin<T,T,?,CMatrix,?,?,U,U>,U extends VectorMixin<U,U,?,CVector,?,T,T,CMatrix>>

    java.lang.Object
    org.flag4j.linalg.solvers.lstsq.LstsqSolver<T,U>
    @@ -97,7 +97,7 @@

    Class LstsqSolver<T extends ComplexLstsqSolver, RealLstsqSolver


    -
    public abstract class LstsqSolver<T extends MatrixMixin<T,T,?,CMatrix,?,U,U>,U extends VectorMixin<U,U,?,CVector,?,T,T,CMatrix>> +
    public abstract class LstsqSolver<T extends MatrixMixin<T,T,?,CMatrix,?,?,U,U>,U extends VectorMixin<U,U,?,CVector,?,T,T,CMatrix>> extends Object implements LinearSolver<T,U>
    This class solves a linear system of equations Ax=b in a least-squares sense. That is, @@ -208,7 +208,7 @@

    Field Details

    backSolver

    -
    protected final LinearSolver<T extends MatrixMixin<T,T,?,CMatrix,?,U,U>,U extends VectorMixin<U,U,?,CVector,?,T,T,CMatrix>> backSolver
    +
    protected final LinearSolver<T extends MatrixMixin<T,T,?,CMatrix,?,?,U,U>,U extends VectorMixin<U,U,?,CVector,?,T,T,CMatrix>> backSolver
    Solver for system with an upper triangular coefficient matrix.
    @@ -217,7 +217,7 @@

    backSolver

    qr

    -
    protected final UnitaryDecomposition<T extends MatrixMixin<T,T,?,CMatrix,?,U,U>,?> qr
    +
    protected final UnitaryDecomposition<T extends MatrixMixin<T,T,?,CMatrix,?,?,U,U>,?> qr
    Decomposer to compute the QR decomposition for using the least-squares solver.
    @@ -226,7 +226,7 @@

    qr

    Qh

    -
    protected T extends MatrixMixin<T,T,?,CMatrix,?,U,U> Qh
    +
    protected T extends MatrixMixin<T,T,?,CMatrix,?,?,U,U> Qh
    Q The hermitian transpose of the orthonormal matrix from the QR decomposition.
    @@ -235,7 +235,7 @@

    Qh

    R

    -
    protected T extends MatrixMixin<T,T,?,CMatrix,?,U,U> R
    +
    protected T extends MatrixMixin<T,T,?,CMatrix,?,?,U,U> R
    R The upper triangular matrix from the QR decomposition.
    @@ -281,7 +281,7 @@

    solveSolves the linear system given by Ax=b in the least-squares sense.

    Specified by:
    -
    solve in interface LinearSolver<T extends MatrixMixin<T,T,?,CMatrix,?,U,U>,U extends VectorMixin<U,U,?,CVector,?,T,T,CMatrix>>
    +
    solve in interface LinearSolver<T extends MatrixMixin<T,T,?,CMatrix,?,?,U,U>,U extends VectorMixin<U,U,?,CVector,?,T,T,CMatrix>>
    Parameters:
    A - Coefficient matrix in the linear system.
    b - Vector of constants in the linear system.
    @@ -301,7 +301,7 @@

    solveA, B, and X are matrices.

    Specified by:
    -
    solve in interface LinearSolver<T extends MatrixMixin<T,T,?,CMatrix,?,U,U>,U extends VectorMixin<U,U,?,CVector,?,T,T,CMatrix>>
    +
    solve in interface LinearSolver<T extends MatrixMixin<T,T,?,CMatrix,?,?,U,U>,U extends VectorMixin<U,U,?,CVector,?,T,T,CMatrix>>
    Parameters:
    A - Coefficient matrix in the linear system.
    B - Matrix of constants in the linear system.
    diff --git a/docs/org/flag4j/linalg/solvers/lstsq/RealLstsqSolver.html b/docs/org/flag4j/linalg/solvers/lstsq/RealLstsqSolver.html index 91001aeb8..dcab73e86 100644 --- a/docs/org/flag4j/linalg/solvers/lstsq/RealLstsqSolver.html +++ b/docs/org/flag4j/linalg/solvers/lstsq/RealLstsqSolver.html @@ -1,11 +1,11 @@ - + RealLstsqSolver - + diff --git a/docs/org/flag4j/linalg/solvers/lstsq/package-summary.html b/docs/org/flag4j/linalg/solvers/lstsq/package-summary.html index 35df1dc31..1db4419ea 100644 --- a/docs/org/flag4j/linalg/solvers/lstsq/package-summary.html +++ b/docs/org/flag4j/linalg/solvers/lstsq/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.linalg.solvers.lstsq - + @@ -94,7 +94,7 @@

    Package org.fl
    This class solves a linear system of equations Ax=b in a least-squares sense.
    -
    LstsqSolver<T extends MatrixMixin<T,T,?,CMatrix,?,U,U>,U extends VectorMixin<U,U,?,CVector,?,T,T,CMatrix>>
    +
    LstsqSolver<T extends MatrixMixin<T,T,?,CMatrix,?,?,U,U>,U extends VectorMixin<U,U,?,CVector,?,T,T,CMatrix>>
    This class solves a linear system of equations Ax=b in a least-squares sense.
    diff --git a/docs/org/flag4j/linalg/solvers/lstsq/package-tree.html b/docs/org/flag4j/linalg/solvers/lstsq/package-tree.html index a756c3169..96f817ca6 100644 --- a/docs/org/flag4j/linalg/solvers/lstsq/package-tree.html +++ b/docs/org/flag4j/linalg/solvers/lstsq/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.linalg.solvers.lstsq Class Hierarchy - + diff --git a/docs/org/flag4j/linalg/solvers/package-summary.html b/docs/org/flag4j/linalg/solvers/package-summary.html index b9f4c2637..0a2de3a4b 100644 --- a/docs/org/flag4j/linalg/solvers/package-summary.html +++ b/docs/org/flag4j/linalg/solvers/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.linalg.solvers - + @@ -98,7 +98,7 @@

    Package org.flag4j.l
    Class
    Description
    -
    LinearSolver<T extends MatrixMixin<T,?,?,?,?,U,?>,U extends VectorMixin<U,?,?,?,?,T,?,?>>
    +
    LinearSolver<T extends MatrixMixin<T,?,?,?,?,?,U,?>,U extends VectorMixin<U,?,?,?,?,T,?,?>>
    This interface specifies methods which all linear system solvers should implement.
    diff --git a/docs/org/flag4j/linalg/solvers/package-tree.html b/docs/org/flag4j/linalg/solvers/package-tree.html index 1d371fb57..4d1a7da5f 100644 --- a/docs/org/flag4j/linalg/solvers/package-tree.html +++ b/docs/org/flag4j/linalg/solvers/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.linalg.solvers Class Hierarchy - + diff --git a/docs/org/flag4j/linalg/transformations/Givens.html b/docs/org/flag4j/linalg/transformations/Givens.html index 90233b983..0a5070f2b 100644 --- a/docs/org/flag4j/linalg/transformations/Givens.html +++ b/docs/org/flag4j/linalg/transformations/Givens.html @@ -1,11 +1,11 @@ - + Givens - + @@ -89,7 +89,7 @@

    Class Givens


    -
    public class Givens +
    public final class Givens extends Object
    This class contains methods for computing real or complex Givens' rotation matrices. A Givens' rotator is a square matrix G(i, k, theta) which, when left multiplied to a vector, represents diff --git a/docs/org/flag4j/linalg/transformations/Householder.html b/docs/org/flag4j/linalg/transformations/Householder.html index a22002a45..bb70195da 100644 --- a/docs/org/flag4j/linalg/transformations/Householder.html +++ b/docs/org/flag4j/linalg/transformations/Householder.html @@ -1,11 +1,11 @@ - + Householder - + @@ -89,7 +89,7 @@

    Class Householder


    -
    public class Householder +
    public final class Householder extends Object
    This class contains methods for computing real or complex Householder reflectors (also known as elementary reflectors). A Householder reflector is a transformation matrix which reflects a vector about a hyperplane containing the origin.
    diff --git a/docs/org/flag4j/linalg/transformations/Projection.html b/docs/org/flag4j/linalg/transformations/Projection.html index fa03f2acd..2dec4e2fd 100644 --- a/docs/org/flag4j/linalg/transformations/Projection.html +++ b/docs/org/flag4j/linalg/transformations/Projection.html @@ -1,11 +1,11 @@ - + Projection - + diff --git a/docs/org/flag4j/linalg/transformations/View.html b/docs/org/flag4j/linalg/transformations/View.html index 923fe3322..4c60470ef 100644 --- a/docs/org/flag4j/linalg/transformations/View.html +++ b/docs/org/flag4j/linalg/transformations/View.html @@ -1,11 +1,11 @@ - + View - + diff --git a/docs/org/flag4j/linalg/transformations/package-summary.html b/docs/org/flag4j/linalg/transformations/package-summary.html index 58bfd56e6..0f3bcb7ea 100644 --- a/docs/org/flag4j/linalg/transformations/package-summary.html +++ b/docs/org/flag4j/linalg/transformations/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.linalg.transformations - + diff --git a/docs/org/flag4j/linalg/transformations/package-tree.html b/docs/org/flag4j/linalg/transformations/package-tree.html index dff72f326..81d63f09d 100644 --- a/docs/org/flag4j/linalg/transformations/package-tree.html +++ b/docs/org/flag4j/linalg/transformations/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.linalg.transformations Class Hierarchy - + diff --git a/docs/org/flag4j/operations/MatrixMultiplyDispatcher.AlgorithmName.html b/docs/org/flag4j/operations/MatrixMultiplyDispatcher.AlgorithmName.html index 59cac88e5..7c4b20f7d 100644 --- a/docs/org/flag4j/operations/MatrixMultiplyDispatcher.AlgorithmName.html +++ b/docs/org/flag4j/operations/MatrixMultiplyDispatcher.AlgorithmName.html @@ -1,11 +1,11 @@ - + MatrixMultiplyDispatcher.AlgorithmName - + diff --git a/docs/org/flag4j/operations/MatrixMultiplyDispatcher.html b/docs/org/flag4j/operations/MatrixMultiplyDispatcher.html index 116b02587..7a838122c 100644 --- a/docs/org/flag4j/operations/MatrixMultiplyDispatcher.html +++ b/docs/org/flag4j/operations/MatrixMultiplyDispatcher.html @@ -1,11 +1,11 @@ - + MatrixMultiplyDispatcher - + diff --git a/docs/org/flag4j/operations/RealDenseMatrixMultiplyDispatcher.AlgorithmNames.html b/docs/org/flag4j/operations/RealDenseMatrixMultiplyDispatcher.AlgorithmNames.html index fdaef682d..f0b12bd3e 100644 --- a/docs/org/flag4j/operations/RealDenseMatrixMultiplyDispatcher.AlgorithmNames.html +++ b/docs/org/flag4j/operations/RealDenseMatrixMultiplyDispatcher.AlgorithmNames.html @@ -1,11 +1,11 @@ - + RealDenseMatrixMultiplyDispatcher.AlgorithmNames - + diff --git a/docs/org/flag4j/operations/RealDenseMatrixMultiplyDispatcher.html b/docs/org/flag4j/operations/RealDenseMatrixMultiplyDispatcher.html index eec34ebbc..34227f5dd 100644 --- a/docs/org/flag4j/operations/RealDenseMatrixMultiplyDispatcher.html +++ b/docs/org/flag4j/operations/RealDenseMatrixMultiplyDispatcher.html @@ -1,11 +1,11 @@ - + RealDenseMatrixMultiplyDispatcher - + diff --git a/docs/org/flag4j/operations/RealDenseTensorBinaryOperation.html b/docs/org/flag4j/operations/RealDenseTensorBinaryOperation.html index 49509e5cb..3ed588e0c 100644 --- a/docs/org/flag4j/operations/RealDenseTensorBinaryOperation.html +++ b/docs/org/flag4j/operations/RealDenseTensorBinaryOperation.html @@ -1,11 +1,11 @@ - + RealDenseTensorBinaryOperation - + diff --git a/docs/org/flag4j/operations/TransposeDispatcher.Algorithm.html b/docs/org/flag4j/operations/TransposeDispatcher.Algorithm.html index c56b2d34d..ef2defb33 100644 --- a/docs/org/flag4j/operations/TransposeDispatcher.Algorithm.html +++ b/docs/org/flag4j/operations/TransposeDispatcher.Algorithm.html @@ -1,11 +1,11 @@ - + TransposeDispatcher.Algorithm - + diff --git a/docs/org/flag4j/operations/TransposeDispatcher.html b/docs/org/flag4j/operations/TransposeDispatcher.html index e470d203a..2034471ed 100644 --- a/docs/org/flag4j/operations/TransposeDispatcher.html +++ b/docs/org/flag4j/operations/TransposeDispatcher.html @@ -1,11 +1,11 @@ - + TransposeDispatcher - + diff --git a/docs/org/flag4j/operations/common/TensorEquals.html b/docs/org/flag4j/operations/common/TensorEquals.html index dfdd392ec..a8e690b52 100644 --- a/docs/org/flag4j/operations/common/TensorEquals.html +++ b/docs/org/flag4j/operations/common/TensorEquals.html @@ -1,11 +1,11 @@ - + TensorEquals - + diff --git a/docs/org/flag4j/operations/common/complex/AggregateComplex.html b/docs/org/flag4j/operations/common/complex/AggregateComplex.html index 438653a48..0b36a74a8 100644 --- a/docs/org/flag4j/operations/common/complex/AggregateComplex.html +++ b/docs/org/flag4j/operations/common/complex/AggregateComplex.html @@ -1,11 +1,11 @@ - + AggregateComplex - + @@ -89,7 +89,7 @@

    Class AggregateComplex


    -
    public class AggregateComplex +
    public final class AggregateComplex extends Object
    This class contains several low-level methods useful for computing aggregation operations on dense/sparse complex tensors.
    diff --git a/docs/org/flag4j/operations/common/complex/ComplexOperations.html b/docs/org/flag4j/operations/common/complex/ComplexOperations.html index 3c4e06926..aef16e00b 100644 --- a/docs/org/flag4j/operations/common/complex/ComplexOperations.html +++ b/docs/org/flag4j/operations/common/complex/ComplexOperations.html @@ -1,11 +1,11 @@ - + ComplexOperations - + diff --git a/docs/org/flag4j/operations/common/complex/ComplexProperties.html b/docs/org/flag4j/operations/common/complex/ComplexProperties.html index c5794e5fc..c3ce57cc8 100644 --- a/docs/org/flag4j/operations/common/complex/ComplexProperties.html +++ b/docs/org/flag4j/operations/common/complex/ComplexProperties.html @@ -1,11 +1,11 @@ - + ComplexProperties - + diff --git a/docs/org/flag4j/operations/common/complex/package-summary.html b/docs/org/flag4j/operations/common/complex/package-summary.html index 7ee710ed1..52485b5cc 100644 --- a/docs/org/flag4j/operations/common/complex/package-summary.html +++ b/docs/org/flag4j/operations/common/complex/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.common.complex - + diff --git a/docs/org/flag4j/operations/common/complex/package-tree.html b/docs/org/flag4j/operations/common/complex/package-tree.html index bfd940f36..8ffb224d8 100644 --- a/docs/org/flag4j/operations/common/complex/package-tree.html +++ b/docs/org/flag4j/operations/common/complex/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.common.complex Class Hierarchy - + diff --git a/docs/org/flag4j/operations/common/package-summary.html b/docs/org/flag4j/operations/common/package-summary.html index 0d413526b..f23badb29 100644 --- a/docs/org/flag4j/operations/common/package-summary.html +++ b/docs/org/flag4j/operations/common/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.common - + diff --git a/docs/org/flag4j/operations/common/package-tree.html b/docs/org/flag4j/operations/common/package-tree.html index 70a82c1ad..6ff0c0463 100644 --- a/docs/org/flag4j/operations/common/package-tree.html +++ b/docs/org/flag4j/operations/common/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.common Class Hierarchy - + diff --git a/docs/org/flag4j/operations/common/real/AggregateReal.html b/docs/org/flag4j/operations/common/real/AggregateReal.html index 44e2095d1..3d4a170b0 100644 --- a/docs/org/flag4j/operations/common/real/AggregateReal.html +++ b/docs/org/flag4j/operations/common/real/AggregateReal.html @@ -1,11 +1,11 @@ - + AggregateReal - + diff --git a/docs/org/flag4j/operations/common/real/RealOperations.html b/docs/org/flag4j/operations/common/real/RealOperations.html index 06ed3ce54..edadf8ef4 100644 --- a/docs/org/flag4j/operations/common/real/RealOperations.html +++ b/docs/org/flag4j/operations/common/real/RealOperations.html @@ -1,11 +1,11 @@ - + RealOperations - + diff --git a/docs/org/flag4j/operations/common/real/RealProperties.html b/docs/org/flag4j/operations/common/real/RealProperties.html index 291245a66..75a297a91 100644 --- a/docs/org/flag4j/operations/common/real/RealProperties.html +++ b/docs/org/flag4j/operations/common/real/RealProperties.html @@ -1,11 +1,11 @@ - + RealProperties - + diff --git a/docs/org/flag4j/operations/common/real/package-summary.html b/docs/org/flag4j/operations/common/real/package-summary.html index 3754587f4..f087675b1 100644 --- a/docs/org/flag4j/operations/common/real/package-summary.html +++ b/docs/org/flag4j/operations/common/real/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.common.real - + diff --git a/docs/org/flag4j/operations/common/real/package-tree.html b/docs/org/flag4j/operations/common/real/package-tree.html index de5f2c4ba..3df14126a 100644 --- a/docs/org/flag4j/operations/common/real/package-tree.html +++ b/docs/org/flag4j/operations/common/real/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.common.real Class Hierarchy - + diff --git a/docs/org/flag4j/operations/dense/complex/AggregateDenseComplex.html b/docs/org/flag4j/operations/dense/complex/AggregateDenseComplex.html index 92db11e3f..ceabb61ae 100644 --- a/docs/org/flag4j/operations/dense/complex/AggregateDenseComplex.html +++ b/docs/org/flag4j/operations/dense/complex/AggregateDenseComplex.html @@ -1,11 +1,11 @@ - + AggregateDenseComplex - + diff --git a/docs/org/flag4j/operations/dense/complex/ComplexDenseDeterminant.html b/docs/org/flag4j/operations/dense/complex/ComplexDenseDeterminant.html index b2ecf262a..f845282c9 100644 --- a/docs/org/flag4j/operations/dense/complex/ComplexDenseDeterminant.html +++ b/docs/org/flag4j/operations/dense/complex/ComplexDenseDeterminant.html @@ -1,11 +1,11 @@ - + ComplexDenseDeterminant - + @@ -89,7 +89,7 @@

    Class ComplexDenseDeterm

    -
    public class ComplexDenseDeterminant +
    public final class ComplexDenseDeterminant extends Object
    This class contains methods for computing the determinant of a complex dense matrix.
    diff --git a/docs/org/flag4j/operations/dense/complex/ComplexDenseElemDiv.html b/docs/org/flag4j/operations/dense/complex/ComplexDenseElemDiv.html index 437832919..3f00671dc 100644 --- a/docs/org/flag4j/operations/dense/complex/ComplexDenseElemDiv.html +++ b/docs/org/flag4j/operations/dense/complex/ComplexDenseElemDiv.html @@ -1,11 +1,11 @@ - + ComplexDenseElemDiv - + diff --git a/docs/org/flag4j/operations/dense/complex/ComplexDenseElemMult.html b/docs/org/flag4j/operations/dense/complex/ComplexDenseElemMult.html index 5cd45d621..4865e33d8 100644 --- a/docs/org/flag4j/operations/dense/complex/ComplexDenseElemMult.html +++ b/docs/org/flag4j/operations/dense/complex/ComplexDenseElemMult.html @@ -1,11 +1,11 @@ - + ComplexDenseElemMult - + diff --git a/docs/org/flag4j/operations/dense/complex/ComplexDenseEquals.html b/docs/org/flag4j/operations/dense/complex/ComplexDenseEquals.html index 7d32efd9d..9628cce20 100644 --- a/docs/org/flag4j/operations/dense/complex/ComplexDenseEquals.html +++ b/docs/org/flag4j/operations/dense/complex/ComplexDenseEquals.html @@ -1,11 +1,11 @@ - + ComplexDenseEquals - + diff --git a/docs/org/flag4j/operations/dense/complex/ComplexDenseMatrixMultTranspose.html b/docs/org/flag4j/operations/dense/complex/ComplexDenseMatrixMultTranspose.html index b91cf753e..12b190e9e 100644 --- a/docs/org/flag4j/operations/dense/complex/ComplexDenseMatrixMultTranspose.html +++ b/docs/org/flag4j/operations/dense/complex/ComplexDenseMatrixMultTranspose.html @@ -1,11 +1,11 @@ - + ComplexDenseMatrixMultTranspose - + @@ -89,7 +89,7 @@

    Class ComplexDen

    -
    public class ComplexDenseMatrixMultTranspose +
    public final class ComplexDenseMatrixMultTranspose extends Object
    This class contains several low level methods for computing matrix-matrix multiplications with a transpose for two dense complex matrices.
    diff --git a/docs/org/flag4j/operations/dense/complex/ComplexDenseMatrixMultiplication.html b/docs/org/flag4j/operations/dense/complex/ComplexDenseMatrixMultiplication.html index 60bbf2744..626ec36b0 100644 --- a/docs/org/flag4j/operations/dense/complex/ComplexDenseMatrixMultiplication.html +++ b/docs/org/flag4j/operations/dense/complex/ComplexDenseMatrixMultiplication.html @@ -1,11 +1,11 @@ - + ComplexDenseMatrixMultiplication - + @@ -89,7 +89,7 @@

    Class ComplexDe

    -
    public class ComplexDenseMatrixMultiplication +
    public final class ComplexDenseMatrixMultiplication extends Object
    This class contains several low level methods for computing complex matrix-matrix multiplications. This includes transpose multiplications.
    diff --git a/docs/org/flag4j/operations/dense/complex/ComplexDenseOperations.html b/docs/org/flag4j/operations/dense/complex/ComplexDenseOperations.html index f91e4c62a..e11f0f965 100644 --- a/docs/org/flag4j/operations/dense/complex/ComplexDenseOperations.html +++ b/docs/org/flag4j/operations/dense/complex/ComplexDenseOperations.html @@ -1,11 +1,11 @@ - + ComplexDenseOperations - + @@ -167,55 +167,61 @@

    Method Summary

    Computes the reciprocals, element-wise, of a tensor.
    static CNumber[]
    -
    scalDiv(CNumber[] entries, - CNumber divisor)
    +
    scalDiv(CNumber[] entries, + double divisor)
    Computes the scalar division of a tensor.
    static CNumber[]
    -
    scalMult(CNumber[] entries, - double a)
    +
    scalDiv(CNumber[] entries, + CNumber divisor)
    -
    Computes the scalar multiplication of a tensor.
    +
    Computes the scalar division of a tensor.
    static CNumber[]
    -
    scalMult(CNumber[] entries, - CNumber a)
    +
    scalMult(CNumber[] entries, + double a)
    Computes the scalar multiplication of a tensor.
    static CNumber[]
    -
    sub(double[] src1, +
    scalMult(CNumber[] entries, CNumber a)
    -
    Subtracts a scalar value to all entries of a tensor.
    +
    Computes the scalar multiplication of a tensor.
    static CNumber[]
    -
    sub(CNumber[] src1, +
    sub(double[] src1, CNumber a)
    -
    Subtracts a scalar value from all entries of a tensor.
    +
    Subtracts a scalar value to all entries of a tensor.
    static CNumber[]
    -
    sub(CNumber[] src1, +
    sub(CNumber[] src1, + CNumber a)
    +
    +
    Subtracts a scalar value from all entries of a tensor.
    +
    +
    static CNumber[]
    +
    sub(CNumber[] src1, Shape shape1, CNumber[] src2, Shape shape2)
    -
    +
    Computes the element-wise subtraction of two tensors.
    -
    static void
    -
    subEq(CNumber[] src, +
    static void
    +
    subEq(CNumber[] src, CNumber b)
    -
    +
    Subtracts a scalar from each entry of this tensor and stores the result in the tensor.
    -
    static void
    -
    subEq(CNumber[] src1, +
    static void
    +
    subEq(CNumber[] src1, Shape shape1, CNumber[] src2, Shape shape2)
    -
    +
    Computes element-wise subtraction between tensors and stores the result in the first tensor.
    @@ -500,6 +506,23 @@

    scalDiv

  • +
    +

    scalDiv

    +
    +
    public static CNumber[] scalDiv(CNumber[] entries, + double divisor)
    +
    Computes the scalar division of a tensor.
    +
    +
    Parameters:
    +
    entries - Entries of the tensor.
    +
    divisor - Scalar value to divide by.
    +
    Returns:
    +
    The scalar division of the tensor.
    +
    +
    +
    +
  • +
  • recip

    diff --git a/docs/org/flag4j/operations/dense/complex/ComplexDenseProperties.html b/docs/org/flag4j/operations/dense/complex/ComplexDenseProperties.html index c5423b29c..834f3bf92 100644 --- a/docs/org/flag4j/operations/dense/complex/ComplexDenseProperties.html +++ b/docs/org/flag4j/operations/dense/complex/ComplexDenseProperties.html @@ -1,11 +1,11 @@ - + ComplexDenseProperties - + diff --git a/docs/org/flag4j/operations/dense/complex/ComplexDenseSetOperations.html b/docs/org/flag4j/operations/dense/complex/ComplexDenseSetOperations.html index ea83cd0e7..dd947784a 100644 --- a/docs/org/flag4j/operations/dense/complex/ComplexDenseSetOperations.html +++ b/docs/org/flag4j/operations/dense/complex/ComplexDenseSetOperations.html @@ -1,11 +1,11 @@ - + ComplexDenseSetOperations - + @@ -89,7 +89,7 @@

    Class ComplexDenseSetO

    -
    public class ComplexDenseSetOperations +
    public final class ComplexDenseSetOperations extends Object
    This class contains low-level implementations of setting operations for complex dense tensors.
    diff --git a/docs/org/flag4j/operations/dense/complex/ComplexDenseTensorDot.html b/docs/org/flag4j/operations/dense/complex/ComplexDenseTensorDot.html index f48791a3a..6b543a94c 100644 --- a/docs/org/flag4j/operations/dense/complex/ComplexDenseTensorDot.html +++ b/docs/org/flag4j/operations/dense/complex/ComplexDenseTensorDot.html @@ -1,11 +1,11 @@ - + ComplexDenseTensorDot - + diff --git a/docs/org/flag4j/operations/dense/complex/ComplexDenseTranspose.html b/docs/org/flag4j/operations/dense/complex/ComplexDenseTranspose.html index 21bf3c96c..c99456ca4 100644 --- a/docs/org/flag4j/operations/dense/complex/ComplexDenseTranspose.html +++ b/docs/org/flag4j/operations/dense/complex/ComplexDenseTranspose.html @@ -1,11 +1,11 @@ - + ComplexDenseTranspose - + @@ -89,7 +89,7 @@

    Class ComplexDenseTranspos

    -
    public class ComplexDenseTranspose +
    public final class ComplexDenseTranspose extends Object
    This class contains several algorithms for computing the transpose of a complex dense tensor.
    diff --git a/docs/org/flag4j/operations/dense/complex/ComplexDenseVectorOperations.html b/docs/org/flag4j/operations/dense/complex/ComplexDenseVectorOperations.html index 2baf44666..91142e94b 100644 --- a/docs/org/flag4j/operations/dense/complex/ComplexDenseVectorOperations.html +++ b/docs/org/flag4j/operations/dense/complex/ComplexDenseVectorOperations.html @@ -1,11 +1,11 @@ - + ComplexDenseVectorOperations - + diff --git a/docs/org/flag4j/operations/dense/complex/package-summary.html b/docs/org/flag4j/operations/dense/complex/package-summary.html index 9519c0865..ffc80b868 100644 --- a/docs/org/flag4j/operations/dense/complex/package-summary.html +++ b/docs/org/flag4j/operations/dense/complex/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.dense.complex - + diff --git a/docs/org/flag4j/operations/dense/complex/package-tree.html b/docs/org/flag4j/operations/dense/complex/package-tree.html index baa6c1857..2af8de092 100644 --- a/docs/org/flag4j/operations/dense/complex/package-tree.html +++ b/docs/org/flag4j/operations/dense/complex/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.dense.complex Class Hierarchy - + diff --git a/docs/org/flag4j/operations/dense/real/AggregateDenseReal.html b/docs/org/flag4j/operations/dense/real/AggregateDenseReal.html index 1c9f21d32..f6214d975 100644 --- a/docs/org/flag4j/operations/dense/real/AggregateDenseReal.html +++ b/docs/org/flag4j/operations/dense/real/AggregateDenseReal.html @@ -1,11 +1,11 @@ - + AggregateDenseReal - + diff --git a/docs/org/flag4j/operations/dense/real/RealDenseDeterminant.html b/docs/org/flag4j/operations/dense/real/RealDenseDeterminant.html index 89d5297b5..d96611dd9 100644 --- a/docs/org/flag4j/operations/dense/real/RealDenseDeterminant.html +++ b/docs/org/flag4j/operations/dense/real/RealDenseDeterminant.html @@ -1,11 +1,11 @@ - + RealDenseDeterminant - + diff --git a/docs/org/flag4j/operations/dense/real/RealDenseElemDiv.html b/docs/org/flag4j/operations/dense/real/RealDenseElemDiv.html index d5cd06104..3741fd8dd 100644 --- a/docs/org/flag4j/operations/dense/real/RealDenseElemDiv.html +++ b/docs/org/flag4j/operations/dense/real/RealDenseElemDiv.html @@ -1,11 +1,11 @@ - + RealDenseElemDiv - + diff --git a/docs/org/flag4j/operations/dense/real/RealDenseElemMult.html b/docs/org/flag4j/operations/dense/real/RealDenseElemMult.html index d3487d714..bae8f73f1 100644 --- a/docs/org/flag4j/operations/dense/real/RealDenseElemMult.html +++ b/docs/org/flag4j/operations/dense/real/RealDenseElemMult.html @@ -1,11 +1,11 @@ - + RealDenseElemMult - + diff --git a/docs/org/flag4j/operations/dense/real/RealDenseEquals.html b/docs/org/flag4j/operations/dense/real/RealDenseEquals.html index a9b7ef1bc..b4633f299 100644 --- a/docs/org/flag4j/operations/dense/real/RealDenseEquals.html +++ b/docs/org/flag4j/operations/dense/real/RealDenseEquals.html @@ -1,11 +1,11 @@ - + RealDenseEquals - + diff --git a/docs/org/flag4j/operations/dense/real/RealDenseMatrixMultTranspose.html b/docs/org/flag4j/operations/dense/real/RealDenseMatrixMultTranspose.html index 555497e4d..84261e8e2 100644 --- a/docs/org/flag4j/operations/dense/real/RealDenseMatrixMultTranspose.html +++ b/docs/org/flag4j/operations/dense/real/RealDenseMatrixMultTranspose.html @@ -1,11 +1,11 @@ - + RealDenseMatrixMultTranspose - + diff --git a/docs/org/flag4j/operations/dense/real/RealDenseMatrixMultiplication.html b/docs/org/flag4j/operations/dense/real/RealDenseMatrixMultiplication.html index bb4225d56..b8e9adcfa 100644 --- a/docs/org/flag4j/operations/dense/real/RealDenseMatrixMultiplication.html +++ b/docs/org/flag4j/operations/dense/real/RealDenseMatrixMultiplication.html @@ -1,11 +1,11 @@ - + RealDenseMatrixMultiplication - + diff --git a/docs/org/flag4j/operations/dense/real/RealDenseOperations.html b/docs/org/flag4j/operations/dense/real/RealDenseOperations.html index 0562f768a..a6cef3d7b 100644 --- a/docs/org/flag4j/operations/dense/real/RealDenseOperations.html +++ b/docs/org/flag4j/operations/dense/real/RealDenseOperations.html @@ -1,11 +1,11 @@ - + RealDenseOperations - + @@ -155,43 +155,48 @@

    Method Summary

    Multiplies all entries in a tensor.
    -
    static double[]
    -
    recip(double[] src)
    +
    static int
    +
    prod(int[] src)
    -
    Computes the reciprocals, element-wise, of a tensor.
    +
    Multiplies all entries in a tensor.
    static double[]
    -
    scalDiv(double[] src, - double divisor)
    +
    recip(double[] src)
    -
    Computes the scalar division of a tensor.
    +
    Computes the reciprocals, element-wise, of a tensor.
    static double[]
    -
    sub(double[] src, - double b)
    +
    scalDiv(double[] src, + double divisor)
    -
    Subtracts a scalar from every element of a tensor.
    +
    Computes the scalar division of a tensor.
    static double[]
    -
    sub(double[] src1, +
    sub(double[] src, + double b)
    +
    +
    Subtracts a scalar from every element of a tensor.
    +
    +
    static double[]
    +
    sub(double[] src1, Shape shape1, double[] src2, Shape shape2)
    -
    +
    Computes the element-wise subtraction of two tensors.
    -
    static void
    -
    subEq(double[] src, +
    static void
    +
    subEq(double[] src, double b)
    -
    +
    Subtracts a scalar from each entry of this tensor and stores the result in the tensor.
    -
    static void
    -
    subEq(double[] src1, +
    static void
    +
    subEq(double[] src1, Shape shape1, double[] src2, Shape shape2)
    -
    +
    Computes element-wise subtraction between tensors and stores the result in the first tensor.
    @@ -378,6 +383,21 @@

    prod

  • +
    +

    prod

    +
    +
    public static int prod(int[] src)
    +
    Multiplies all entries in a tensor.
    +
    +
    Parameters:
    +
    src - The entries of the tensor.
    +
    Returns:
    +
    The product of all entries in the tensor.
    +
    +
    +
    +
  • +
  • scalDiv

    diff --git a/docs/org/flag4j/operations/dense/real/RealDenseProperties.html b/docs/org/flag4j/operations/dense/real/RealDenseProperties.html index d565e5baa..ea01eadba 100644 --- a/docs/org/flag4j/operations/dense/real/RealDenseProperties.html +++ b/docs/org/flag4j/operations/dense/real/RealDenseProperties.html @@ -1,11 +1,11 @@ - + RealDenseProperties - + @@ -203,7 +203,7 @@

    isSymmetric

    public static boolean isSymmetric(double[] src, Shape shape)
    -
    Checks if a real dense matrix is symmetric. That is, if the and equal to its transpose.
    +
    Checks if a real dense matrix is symmetric. That is, if the matrix is equal to its transpose.
    Parameters:
    src - Entries of the matrix.
    @@ -220,7 +220,7 @@

    isAntiSymmetric

    public static boolean isAntiSymmetric(double[] src, Shape shape)
    -
    Checks if a real dense matrix is anti-symmetric. That is, if the and equal to its negative transpose.
    +
    Checks if a real dense matrix is anti-symmetric. That is, if the matrix is equal to its negative transpose.
    Parameters:
    src - Entries of the matrix.
    diff --git a/docs/org/flag4j/operations/dense/real/RealDenseSetOperations.html b/docs/org/flag4j/operations/dense/real/RealDenseSetOperations.html index 09402c9c6..beec1ce11 100644 --- a/docs/org/flag4j/operations/dense/real/RealDenseSetOperations.html +++ b/docs/org/flag4j/operations/dense/real/RealDenseSetOperations.html @@ -1,11 +1,11 @@ - + RealDenseSetOperations - + diff --git a/docs/org/flag4j/operations/dense/real/RealDenseTensorDot.html b/docs/org/flag4j/operations/dense/real/RealDenseTensorDot.html index db0bd2706..a74872a2c 100644 --- a/docs/org/flag4j/operations/dense/real/RealDenseTensorDot.html +++ b/docs/org/flag4j/operations/dense/real/RealDenseTensorDot.html @@ -1,11 +1,11 @@ - + RealDenseTensorDot - + diff --git a/docs/org/flag4j/operations/dense/real/RealDenseTranspose.html b/docs/org/flag4j/operations/dense/real/RealDenseTranspose.html index c54da740a..24f8c078a 100644 --- a/docs/org/flag4j/operations/dense/real/RealDenseTranspose.html +++ b/docs/org/flag4j/operations/dense/real/RealDenseTranspose.html @@ -1,11 +1,11 @@ - + RealDenseTranspose - + diff --git a/docs/org/flag4j/operations/dense/real/RealDenseVectorOperations.html b/docs/org/flag4j/operations/dense/real/RealDenseVectorOperations.html index 7e87de215..790c80adc 100644 --- a/docs/org/flag4j/operations/dense/real/RealDenseVectorOperations.html +++ b/docs/org/flag4j/operations/dense/real/RealDenseVectorOperations.html @@ -1,11 +1,11 @@ - + RealDenseVectorOperations - + diff --git a/docs/org/flag4j/operations/dense/real/package-summary.html b/docs/org/flag4j/operations/dense/real/package-summary.html index d2c7cc371..64370ab19 100644 --- a/docs/org/flag4j/operations/dense/real/package-summary.html +++ b/docs/org/flag4j/operations/dense/real/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.dense.real - + diff --git a/docs/org/flag4j/operations/dense/real/package-tree.html b/docs/org/flag4j/operations/dense/real/package-tree.html index 3bab88d2b..7f963766b 100644 --- a/docs/org/flag4j/operations/dense/real/package-tree.html +++ b/docs/org/flag4j/operations/dense/real/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.dense.real Class Hierarchy - + diff --git a/docs/org/flag4j/operations/dense/real_complex/RealComplexDenseElemDiv.html b/docs/org/flag4j/operations/dense/real_complex/RealComplexDenseElemDiv.html index e2dca3178..1669989e9 100644 --- a/docs/org/flag4j/operations/dense/real_complex/RealComplexDenseElemDiv.html +++ b/docs/org/flag4j/operations/dense/real_complex/RealComplexDenseElemDiv.html @@ -1,11 +1,11 @@ - + RealComplexDenseElemDiv - + diff --git a/docs/org/flag4j/operations/dense/real_complex/RealComplexDenseElemMult.html b/docs/org/flag4j/operations/dense/real_complex/RealComplexDenseElemMult.html index 52f4f4417..2559dcb5c 100644 --- a/docs/org/flag4j/operations/dense/real_complex/RealComplexDenseElemMult.html +++ b/docs/org/flag4j/operations/dense/real_complex/RealComplexDenseElemMult.html @@ -1,11 +1,11 @@ - + RealComplexDenseElemMult - + diff --git a/docs/org/flag4j/operations/dense/real_complex/RealComplexDenseEquals.html b/docs/org/flag4j/operations/dense/real_complex/RealComplexDenseEquals.html index 732a4d3b2..3aeae768a 100644 --- a/docs/org/flag4j/operations/dense/real_complex/RealComplexDenseEquals.html +++ b/docs/org/flag4j/operations/dense/real_complex/RealComplexDenseEquals.html @@ -1,11 +1,11 @@ - + RealComplexDenseEquals - + diff --git a/docs/org/flag4j/operations/dense/real_complex/RealComplexDenseMatrixMultTranspose.html b/docs/org/flag4j/operations/dense/real_complex/RealComplexDenseMatrixMultTranspose.html index 04528a48d..77e7b0227 100644 --- a/docs/org/flag4j/operations/dense/real_complex/RealComplexDenseMatrixMultTranspose.html +++ b/docs/org/flag4j/operations/dense/real_complex/RealComplexDenseMatrixMultTranspose.html @@ -1,11 +1,11 @@ - + RealComplexDenseMatrixMultTranspose - + @@ -89,7 +89,7 @@

    Class RealCo

    -
    public class RealComplexDenseMatrixMultTranspose +
    public final class RealComplexDenseMatrixMultTranspose extends Object
    This class contains several low level methods for computing matrix-matrix multiplications with a transpose for a real dense matrix and a complex dense matrix.
    diff --git a/docs/org/flag4j/operations/dense/real_complex/RealComplexDenseMatrixMultiplication.html b/docs/org/flag4j/operations/dense/real_complex/RealComplexDenseMatrixMultiplication.html index cb4aeb432..8fe0371bc 100644 --- a/docs/org/flag4j/operations/dense/real_complex/RealComplexDenseMatrixMultiplication.html +++ b/docs/org/flag4j/operations/dense/real_complex/RealComplexDenseMatrixMultiplication.html @@ -1,11 +1,11 @@ - + RealComplexDenseMatrixMultiplication - + @@ -89,7 +89,7 @@

    Class RealC

    -
    public class RealComplexDenseMatrixMultiplication +
    public final class RealComplexDenseMatrixMultiplication extends Object
    This class contains several low level methods for computing real/complex matrix-matrix multiplications. This includes transpose multiplications.
    diff --git a/docs/org/flag4j/operations/dense/real_complex/RealComplexDenseOperations.html b/docs/org/flag4j/operations/dense/real_complex/RealComplexDenseOperations.html index f11fc0bf8..5f9794a0d 100644 --- a/docs/org/flag4j/operations/dense/real_complex/RealComplexDenseOperations.html +++ b/docs/org/flag4j/operations/dense/real_complex/RealComplexDenseOperations.html @@ -1,11 +1,11 @@ - + RealComplexDenseOperations - + diff --git a/docs/org/flag4j/operations/dense/real_complex/RealComplexDenseVectorOperations.html b/docs/org/flag4j/operations/dense/real_complex/RealComplexDenseVectorOperations.html index 40440e0b4..9d6c01090 100644 --- a/docs/org/flag4j/operations/dense/real_complex/RealComplexDenseVectorOperations.html +++ b/docs/org/flag4j/operations/dense/real_complex/RealComplexDenseVectorOperations.html @@ -1,11 +1,11 @@ - + RealComplexDenseVectorOperations - + @@ -89,7 +89,7 @@

    Class RealCompl

    -
    public class RealComplexDenseVectorOperations +
    public final class RealComplexDenseVectorOperations extends Object
    This class provides low level implementations for vector operations with a real/complex dense vector and a complex/real dense vector.
    diff --git a/docs/org/flag4j/operations/dense/real_complex/package-summary.html b/docs/org/flag4j/operations/dense/real_complex/package-summary.html index b137d3d3c..6f5008aa8 100644 --- a/docs/org/flag4j/operations/dense/real_complex/package-summary.html +++ b/docs/org/flag4j/operations/dense/real_complex/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.dense.real_complex - + diff --git a/docs/org/flag4j/operations/dense/real_complex/package-tree.html b/docs/org/flag4j/operations/dense/real_complex/package-tree.html index 298379c3f..a9fb5e4b0 100644 --- a/docs/org/flag4j/operations/dense/real_complex/package-tree.html +++ b/docs/org/flag4j/operations/dense/real_complex/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.dense.real_complex Class Hierarchy - + diff --git a/docs/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseEquals.html b/docs/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseEquals.html index 7cd49bfdf..091feca0b 100644 --- a/docs/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseEquals.html +++ b/docs/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseEquals.html @@ -1,11 +1,11 @@ - + ComplexDenseSparseEquals - + @@ -89,7 +89,7 @@

    Class ComplexDenseSpars

    -
    public class ComplexDenseSparseEquals +
    public final class ComplexDenseSparseEquals extends Object
    This class provides methods for checking the equality of a complex dense tensor with a complex sparse tensor.
    diff --git a/docs/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseMatrixMultTranspose.html b/docs/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseMatrixMultTranspose.html index 7d4c164ed..cdc51fb02 100644 --- a/docs/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseMatrixMultTranspose.html +++ b/docs/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseMatrixMultTranspose.html @@ -1,11 +1,11 @@ - + ComplexDenseSparseMatrixMultTranspose - + @@ -89,7 +89,7 @@

    Class Comp

    -
    public class ComplexDenseSparseMatrixMultTranspose +
    public final class ComplexDenseSparseMatrixMultTranspose extends Object
    This class contains several low level methods for computing matrix-matrix multiplications with a transpose for a complex dense matrix and a complex sparse matrix.
    diff --git a/docs/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseMatrixMultiplication.html b/docs/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseMatrixMultiplication.html index 90bf7b64c..9df3f4384 100644 --- a/docs/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseMatrixMultiplication.html +++ b/docs/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseMatrixMultiplication.html @@ -1,11 +1,11 @@ - + ComplexDenseSparseMatrixMultiplication - + @@ -89,7 +89,7 @@

    Class Com

    -
    public class ComplexDenseSparseMatrixMultiplication +
    public final class ComplexDenseSparseMatrixMultiplication extends Object
    This class provides low level methods for computing the matrix multiplication between a sparse/dense matrix and dense/sparse matrix/vector.
    diff --git a/docs/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseMatrixOperations.html b/docs/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseMatrixOperations.html index 9dd12d5c1..d6ca8290c 100644 --- a/docs/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseMatrixOperations.html +++ b/docs/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseMatrixOperations.html @@ -1,11 +1,11 @@ - + ComplexDenseSparseMatrixOperations - + @@ -89,7 +89,7 @@

    Class Complex

    -
    public class ComplexDenseSparseMatrixOperations +
    public final class ComplexDenseSparseMatrixOperations extends Object
    This class contains low level implementations for operations between a dense and a sparse complex matrix.
    @@ -101,9 +101,11 @@

    Class Complex

    Constructor Summary

    Constructors
    -
    -
    Constructor
    +
    +
    Modifier
    +
    Constructor
    Description
    +
    private
     
    @@ -195,7 +197,7 @@

    Constructor Details

    ComplexDenseSparseMatrixOperations

    -
    public ComplexDenseSparseMatrixOperations()
    +
    private ComplexDenseSparseMatrixOperations()

  • diff --git a/docs/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseOperations.html b/docs/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseOperations.html index d3cfd37a4..d62507085 100644 --- a/docs/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseOperations.html +++ b/docs/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseOperations.html @@ -1,11 +1,11 @@ - + ComplexDenseSparseOperations - + @@ -128,24 +128,36 @@

    Method Summary

    Computes element-wise addition of a complex dense tensor with a complex sparse tensor.
    -
    static void
    -
    addEq(CTensor src1, - CooCTensor src2)
    +
    static CTensor
    +
    add(CooCTensor src1, + CNumber b)
    -
    Computes element-wise addition of a complex dense tensor with a complex sparse tensor.
    +
    Adds a scalar to a complex sparse COO tensor.
    -
    static CooCTensor
    -
    elemMult(CTensor src1, +
    static void
    +
    addEq(CTensor src1, CooCTensor src2)
    -
    Computes the element-wise tensor multiplication between a complex dense tensor and a complex sparse tensor.
    +
    Computes element-wise addition of a complex dense tensor with a complex sparse tensor.
    -
    static CTensor
    -
    sub(CTensor src1, +
    static CooCTensor
    +
    +
    Computes the element-wise tensor multiplication between a complex dense tensor and a complex sparse tensor.
    +
    +
    static CTensor
    +
    sub(CTensor src1, + CooCTensor src2)
    +
    Computes the element-wise tensor a complex sparse tensor from a complex dense tensor.
    +
    static CTensor
    +
    sub(CooCTensor src1, + CTensor src2)
    +
    +
    Subtracts a complex dense tensor from a complex sparse tensor.
    +
    static void
    subEq(CTensor src1, CooCTensor src2)
    @@ -235,6 +247,25 @@

    sub

  • +
    +

    sub

    +
    +
    public static CTensor sub(CooCTensor src1, + CTensor src2)
    +
    Subtracts a complex dense tensor from a complex sparse tensor.
    +
    +
    Parameters:
    +
    src1 - First tensor in the sum.
    +
    src2 - Second tensor in the sum.
    +
    Returns:
    +
    The result of the tensor addition.
    +
    Throws:
    +
    IllegalArgumentException - If the tensors do not have the same shape.t
    +
    +
    +
    +
  • +
  • subEq

    @@ -266,6 +297,24 @@

    elemMult

  • +
  • +
    +

    add

    +
    +
    public static CTensor add(CooCTensor src1, + CNumber b)
    +
    Adds a scalar to a complex sparse COO tensor.
    +
    +
    Parameters:
    +
    src1 - Sparse tensor in sum.
    +
    b - Scalar in sum.
    +
    Returns:
    +
    A dense tensor which is the sum of src1 and b such that b is added to each element of + src1.
    +
    +
    +
    +
  • diff --git a/docs/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseVectorOperations.html b/docs/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseVectorOperations.html index a03d3e49f..8e1c4cbe1 100644 --- a/docs/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseVectorOperations.html +++ b/docs/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseVectorOperations.html @@ -1,11 +1,11 @@ - + ComplexDenseSparseVectorOperations - + @@ -89,7 +89,7 @@

    Class Complex

    -
    public class ComplexDenseSparseVectorOperations +
    public final class ComplexDenseSparseVectorOperations extends Object
    This class provides low level methods for computing operations between complex dense/sparse and complex sparse/dense vectors.
    diff --git a/docs/org/flag4j/operations/dense_sparse/coo/complex/package-summary.html b/docs/org/flag4j/operations/dense_sparse/coo/complex/package-summary.html index 0ea0b0c18..ddf0a4490 100644 --- a/docs/org/flag4j/operations/dense_sparse/coo/complex/package-summary.html +++ b/docs/org/flag4j/operations/dense_sparse/coo/complex/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.dense_sparse.coo.complex - + diff --git a/docs/org/flag4j/operations/dense_sparse/coo/complex/package-tree.html b/docs/org/flag4j/operations/dense_sparse/coo/complex/package-tree.html index 5da944ce6..03877c655 100644 --- a/docs/org/flag4j/operations/dense_sparse/coo/complex/package-tree.html +++ b/docs/org/flag4j/operations/dense_sparse/coo/complex/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.dense_sparse.coo.complex Class Hierarchy - + diff --git a/docs/org/flag4j/operations/dense_sparse/coo/real/RealDenseSparseEquals.html b/docs/org/flag4j/operations/dense_sparse/coo/real/RealDenseSparseEquals.html index cacfd3c72..8a8dd138e 100644 --- a/docs/org/flag4j/operations/dense_sparse/coo/real/RealDenseSparseEquals.html +++ b/docs/org/flag4j/operations/dense_sparse/coo/real/RealDenseSparseEquals.html @@ -1,11 +1,11 @@ - + RealDenseSparseEquals - + diff --git a/docs/org/flag4j/operations/dense_sparse/coo/real/RealDenseSparseMatrixMultTranspose.html b/docs/org/flag4j/operations/dense_sparse/coo/real/RealDenseSparseMatrixMultTranspose.html index 8d9b1fa50..afb8491fd 100644 --- a/docs/org/flag4j/operations/dense_sparse/coo/real/RealDenseSparseMatrixMultTranspose.html +++ b/docs/org/flag4j/operations/dense_sparse/coo/real/RealDenseSparseMatrixMultTranspose.html @@ -1,11 +1,11 @@ - + RealDenseSparseMatrixMultTranspose - + diff --git a/docs/org/flag4j/operations/dense_sparse/coo/real/RealDenseSparseMatrixMultiplication.html b/docs/org/flag4j/operations/dense_sparse/coo/real/RealDenseSparseMatrixMultiplication.html index e97e9be96..79e60397c 100644 --- a/docs/org/flag4j/operations/dense_sparse/coo/real/RealDenseSparseMatrixMultiplication.html +++ b/docs/org/flag4j/operations/dense_sparse/coo/real/RealDenseSparseMatrixMultiplication.html @@ -1,11 +1,11 @@ - + RealDenseSparseMatrixMultiplication - + diff --git a/docs/org/flag4j/operations/dense_sparse/coo/real/RealDenseSparseMatrixOperations.html b/docs/org/flag4j/operations/dense_sparse/coo/real/RealDenseSparseMatrixOperations.html index 23b5048f3..7aa6911f1 100644 --- a/docs/org/flag4j/operations/dense_sparse/coo/real/RealDenseSparseMatrixOperations.html +++ b/docs/org/flag4j/operations/dense_sparse/coo/real/RealDenseSparseMatrixOperations.html @@ -1,11 +1,11 @@ - + RealDenseSparseMatrixOperations - + diff --git a/docs/org/flag4j/operations/dense_sparse/coo/real/RealDenseSparseTensorOperations.html b/docs/org/flag4j/operations/dense_sparse/coo/real/RealDenseSparseTensorOperations.html index d1480e72b..32a5d40cc 100644 --- a/docs/org/flag4j/operations/dense_sparse/coo/real/RealDenseSparseTensorOperations.html +++ b/docs/org/flag4j/operations/dense_sparse/coo/real/RealDenseSparseTensorOperations.html @@ -1,11 +1,11 @@ - + RealDenseSparseTensorOperations - + @@ -128,24 +128,36 @@

    Method Summary

    Adds a real dense tensor to a real sparse tensor.
    -
    static void
    -
    addEq(Tensor src1, - CooTensor src2)
    +
    static Tensor
    +
    add(CooTensor src1, + double b)
    -
    Adds a real dense tensor to a real sparse tensor and stores the result in the first tensor.
    +
    Adds a scalar to a real sparse COO tensor.
    -
    static CooTensor
    -
    elemMult(Tensor src1, +
    static void
    +
    addEq(Tensor src1, CooTensor src2)
    -
    Computes the element-wise multiplication between a real dense tensor and a real sparse tensor.
    +
    Adds a real dense tensor to a real sparse tensor and stores the result in the first tensor.
    -
    static Tensor
    -
    sub(Tensor src1, +
    static CooTensor
    +
    elemMult(Tensor src1, CooTensor src2)
    +
    Computes the element-wise multiplication between a real dense tensor and a real sparse tensor.
    +
    +
    static Tensor
    +
    sub(Tensor src1, + CooTensor src2)
    +
    Subtracts a real sparse tensor from a real dense tensor.
    +
    static Tensor
    +
    sub(CooTensor src1, + Tensor src2)
    +
    +
    Subtracts a real dense tensor from a real sparse tensor.
    +
    static void
    subEq(Tensor src1, CooTensor src2)
    @@ -243,6 +255,25 @@

    sub

  • +
    +

    sub

    +
    +
    public static Tensor sub(CooTensor src1, + Tensor src2)
    +
    Subtracts a real dense tensor from a real sparse tensor.
    +
    +
    Parameters:
    +
    src1 - First tensor in the sum.
    +
    src2 - Second tensor in the sum.
    +
    Returns:
    +
    The result of the tensor addition.
    +
    Throws:
    +
    IllegalArgumentException - If the tensors do not have the same shape.t
    +
    +
    +
    +
  • +
  • addEq

    @@ -276,6 +307,24 @@

    subEq

  • +
  • +
    +

    add

    +
    +
    public static Tensor add(CooTensor src1, + double b)
    +
    Adds a scalar to a real sparse COO tensor.
    +
    +
    Parameters:
    +
    src1 - Sparse tensor in sum.
    +
    b - Scalar in sum.
    +
    Returns:
    +
    A dense tensor which is the sum of src1 and b such that b is added to each element of + src1.
    +
    +
    +
    +
  • diff --git a/docs/org/flag4j/operations/dense_sparse/coo/real/RealDenseSparseVectorOperations.html b/docs/org/flag4j/operations/dense_sparse/coo/real/RealDenseSparseVectorOperations.html index 19eabe3e8..94cb1defb 100644 --- a/docs/org/flag4j/operations/dense_sparse/coo/real/RealDenseSparseVectorOperations.html +++ b/docs/org/flag4j/operations/dense_sparse/coo/real/RealDenseSparseVectorOperations.html @@ -1,11 +1,11 @@ - + RealDenseSparseVectorOperations - + diff --git a/docs/org/flag4j/operations/dense_sparse/coo/real/package-summary.html b/docs/org/flag4j/operations/dense_sparse/coo/real/package-summary.html index ae2a159b2..25a3a9825 100644 --- a/docs/org/flag4j/operations/dense_sparse/coo/real/package-summary.html +++ b/docs/org/flag4j/operations/dense_sparse/coo/real/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.dense_sparse.coo.real - + diff --git a/docs/org/flag4j/operations/dense_sparse/coo/real/package-tree.html b/docs/org/flag4j/operations/dense_sparse/coo/real/package-tree.html index eb34b3dbb..4e28469d0 100644 --- a/docs/org/flag4j/operations/dense_sparse/coo/real/package-tree.html +++ b/docs/org/flag4j/operations/dense_sparse/coo/real/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.dense_sparse.coo.real Class Hierarchy - + diff --git a/docs/org/flag4j/operations/dense_sparse/coo/real_complex/RealComplexDenseSparseEquals.html b/docs/org/flag4j/operations/dense_sparse/coo/real_complex/RealComplexDenseSparseEquals.html index 743da9c24..650514f58 100644 --- a/docs/org/flag4j/operations/dense_sparse/coo/real_complex/RealComplexDenseSparseEquals.html +++ b/docs/org/flag4j/operations/dense_sparse/coo/real_complex/RealComplexDenseSparseEquals.html @@ -1,11 +1,11 @@ - + RealComplexDenseSparseEquals - + @@ -89,7 +89,7 @@

    Class RealComplexDe

    -
    public class RealComplexDenseSparseEquals +
    public final class RealComplexDenseSparseEquals extends Object
    This class contains methods for checking the equality of real dense/sparse and complex dense/sparse tensors.
    diff --git a/docs/org/flag4j/operations/dense_sparse/coo/real_complex/RealComplexDenseSparseMatrixMultTranspose.html b/docs/org/flag4j/operations/dense_sparse/coo/real_complex/RealComplexDenseSparseMatrixMultTranspose.html index b1b5d3e93..c58c18e17 100644 --- a/docs/org/flag4j/operations/dense_sparse/coo/real_complex/RealComplexDenseSparseMatrixMultTranspose.html +++ b/docs/org/flag4j/operations/dense_sparse/coo/real_complex/RealComplexDenseSparseMatrixMultTranspose.html @@ -1,11 +1,11 @@ - + RealComplexDenseSparseMatrixMultTranspose - + diff --git a/docs/org/flag4j/operations/dense_sparse/coo/real_complex/RealComplexDenseSparseMatrixMultiplication.html b/docs/org/flag4j/operations/dense_sparse/coo/real_complex/RealComplexDenseSparseMatrixMultiplication.html index 76fd507dc..551cca5b4 100644 --- a/docs/org/flag4j/operations/dense_sparse/coo/real_complex/RealComplexDenseSparseMatrixMultiplication.html +++ b/docs/org/flag4j/operations/dense_sparse/coo/real_complex/RealComplexDenseSparseMatrixMultiplication.html @@ -1,11 +1,11 @@ - + RealComplexDenseSparseMatrixMultiplication - + @@ -89,7 +89,7 @@

    Class

    -
    public class RealComplexDenseSparseMatrixMultiplication +
    public final class RealComplexDenseSparseMatrixMultiplication extends Object
    This class contains low level methods for computing the matrix multiplication (and matrix vector multiplication) between a real dense/sparse matrix and a real sparse/dense matrix or vector.
    diff --git a/docs/org/flag4j/operations/dense_sparse/coo/real_complex/RealComplexDenseSparseMatrixOperations.html b/docs/org/flag4j/operations/dense_sparse/coo/real_complex/RealComplexDenseSparseMatrixOperations.html index 690450b95..3517dd9ab 100644 --- a/docs/org/flag4j/operations/dense_sparse/coo/real_complex/RealComplexDenseSparseMatrixOperations.html +++ b/docs/org/flag4j/operations/dense_sparse/coo/real_complex/RealComplexDenseSparseMatrixOperations.html @@ -1,11 +1,11 @@ - + RealComplexDenseSparseMatrixOperations - + @@ -89,7 +89,7 @@

    Class Rea

    -
    public class RealComplexDenseSparseMatrixOperations +
    public final class RealComplexDenseSparseMatrixOperations extends Object
    This class contains low level implementations of operations between real/complex and dense/sparse matrices.
    diff --git a/docs/org/flag4j/operations/dense_sparse/coo/real_complex/RealComplexDenseSparseOperations.html b/docs/org/flag4j/operations/dense_sparse/coo/real_complex/RealComplexDenseSparseOperations.html index b6261e243..08ceeb456 100644 --- a/docs/org/flag4j/operations/dense_sparse/coo/real_complex/RealComplexDenseSparseOperations.html +++ b/docs/org/flag4j/operations/dense_sparse/coo/real_complex/RealComplexDenseSparseOperations.html @@ -1,11 +1,11 @@ - + RealComplexDenseSparseOperations - + @@ -89,7 +89,7 @@

    Class RealCompl

    -
    public class RealComplexDenseSparseOperations +
    public final class RealComplexDenseSparseOperations extends Object
    This class contains methods to apply common binary operations to a real/complex dense matrix and to a complex/real sparse matrix.
    @@ -134,6 +134,18 @@

    Method Summary

    Adds a real dense tensor to a sparse complex tensor.
    +
    static CTensor
    +
    add(CooCTensor src1, + double b)
    +
    +
    Adds a scalar to a real sparse COO tensor.
    +
    +
    static CTensor
    +
    add(CooTensor src1, + CNumber b)
    +
    +
    Adds a scalar to a real sparse COO tensor.
    +
    static void
    addEq(CTensor src1, CooTensor src2)
    @@ -164,6 +176,18 @@

    Method Summary

    Subtracts a sparse complex tensor from a real dense tensor.
    +
    static CTensor
    +
    sub(CooCTensor src1, + Tensor src2)
    +
    +
    Subtracts a real dense tensor from a complex sparse tensor.
    +
    +
    static CTensor
    +
    sub(CooTensor src1, + CTensor src2)
    +
    +
    Subtracts a complex dense tensor from a real sparse tensor.
    +
    static void
    subEq(CTensor src1, CooTensor src2)
    @@ -345,6 +369,80 @@

    elemMult

    +
  • +
    +

    sub

    +
    +
    public static CTensor sub(CooTensor src1, + CTensor src2)
    +
    Subtracts a complex dense tensor from a real sparse tensor.
    +
    +
    Parameters:
    +
    src1 - First tensor in the sum.
    +
    src2 - Second tensor in the sum.
    +
    Returns:
    +
    The result of the tensor addition.
    +
    Throws:
    +
    IllegalArgumentException - If the tensors do not have the same shape.t
    +
    +
    +
    +
  • +
  • +
    +

    sub

    +
    +
    public static CTensor sub(CooCTensor src1, + Tensor src2)
    +
    Subtracts a real dense tensor from a complex sparse tensor.
    +
    +
    Parameters:
    +
    src1 - First tensor in the sum.
    +
    src2 - Second tensor in the sum.
    +
    Returns:
    +
    The result of the tensor addition.
    +
    Throws:
    +
    IllegalArgumentException - If the tensors do not have the same shape.t
    +
    +
    +
    +
  • +
  • +
    +

    add

    +
    +
    public static CTensor add(CooTensor src1, + CNumber b)
    +
    Adds a scalar to a real sparse COO tensor.
    +
    +
    Parameters:
    +
    src1 - Sparse tensor in sum.
    +
    b - Scalar in sum.
    +
    Returns:
    +
    A dense tensor which is the sum of src1 and b such that b is added to each element of + src1.
    +
    +
    +
    +
  • +
  • +
    +

    add

    +
    +
    public static CTensor add(CooCTensor src1, + double b)
    +
    Adds a scalar to a real sparse COO tensor.
    +
    +
    Parameters:
    +
    src1 - Sparse tensor in sum.
    +
    b - Scalar in sum.
    +
    Returns:
    +
    A dense tensor which is the sum of src1 and b such that b is added to each element of + src1.
    +
    +
    +
    +
  • diff --git a/docs/org/flag4j/operations/dense_sparse/coo/real_complex/RealComplexDenseSparseVectorOperations.html b/docs/org/flag4j/operations/dense_sparse/coo/real_complex/RealComplexDenseSparseVectorOperations.html index e5f33b82f..010a7644e 100644 --- a/docs/org/flag4j/operations/dense_sparse/coo/real_complex/RealComplexDenseSparseVectorOperations.html +++ b/docs/org/flag4j/operations/dense_sparse/coo/real_complex/RealComplexDenseSparseVectorOperations.html @@ -1,11 +1,11 @@ - + RealComplexDenseSparseVectorOperations - + @@ -89,7 +89,7 @@

    Class Rea

    -
    public class RealComplexDenseSparseVectorOperations +
    public final class RealComplexDenseSparseVectorOperations extends Object
    This class provides low level methods for computing operations between a real/complex dense/sparse vector and a complex/real sparse/dense vector.
    diff --git a/docs/org/flag4j/operations/dense_sparse/coo/real_complex/package-summary.html b/docs/org/flag4j/operations/dense_sparse/coo/real_complex/package-summary.html index e10e89b98..8a7dc5e63 100644 --- a/docs/org/flag4j/operations/dense_sparse/coo/real_complex/package-summary.html +++ b/docs/org/flag4j/operations/dense_sparse/coo/real_complex/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.dense_sparse.coo.real_complex - + diff --git a/docs/org/flag4j/operations/dense_sparse/coo/real_complex/package-tree.html b/docs/org/flag4j/operations/dense_sparse/coo/real_complex/package-tree.html index d3bc43a99..c6bb9c9c3 100644 --- a/docs/org/flag4j/operations/dense_sparse/coo/real_complex/package-tree.html +++ b/docs/org/flag4j/operations/dense_sparse/coo/real_complex/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.dense_sparse.coo.real_complex Class Hierarchy - + diff --git a/docs/org/flag4j/operations/dense_sparse/csr/complex/ComplexCsrDenseMatrixMultiplication.html b/docs/org/flag4j/operations/dense_sparse/csr/complex/ComplexCsrDenseMatrixMultiplication.html index 4089a0e5a..1cec3cdb3 100644 --- a/docs/org/flag4j/operations/dense_sparse/csr/complex/ComplexCsrDenseMatrixMultiplication.html +++ b/docs/org/flag4j/operations/dense_sparse/csr/complex/ComplexCsrDenseMatrixMultiplication.html @@ -1,11 +1,11 @@ - + ComplexCsrDenseMatrixMultiplication - + @@ -89,7 +89,7 @@

    Class Comple

    -
    public class ComplexCsrDenseMatrixMultiplication +
    public final class ComplexCsrDenseMatrixMultiplication extends Object
    This class contains low-level implementations of complex-complex sparse-sparse matrix multiplication where the sparse matrices are in CSR format.
    @@ -124,15 +124,21 @@

    Method Summary

    Method
    Description
    static CMatrix
    -
    standard(CsrCMatrix src1, - CMatrix src2)
    +
    standard(CMatrix src1, + CsrCMatrix src2)
    +
    Computes the matrix multiplication between a complex dense matrix and a complex sparse CSR matrix.
    +
    +
    static CMatrix
    +
    standard(CsrCMatrix src1, + CMatrix src2)
    +
    Computes the matrix multiplication between a complex sparse CSR matrix and a complex dense matrix.
    -
    static CVector
    -
    standardVector(CsrCMatrix src1, +
    static CVector
    + -
    +
    Computes the matrix-vector multiplication between a real sparse CSR matrix and a complex dense vector.
    @@ -191,6 +197,28 @@

    standard

  • +
    +

    standard

    +
    +
    public static CMatrix standard(CMatrix src1, + CsrCMatrix src2)
    +
    Computes the matrix multiplication between a complex dense matrix and a complex sparse CSR matrix. + WARNING: If the second matrix is very large but not very sparse, this method may be slower than converting the + second matrix to a dense matrix and calling Matrix.mult(Matrix).
    +
    +
    Parameters:
    +
    src1 - First matrix in the matrix multiplication (dense matrix).
    +
    src2 - Second matrix in the matrix multiplication (sparse CSR matrix).
    +
    Returns:
    +
    The result of the matrix multiplication between src1 and src2.
    +
    Throws:
    +
    IllegalArgumentException - If src1 does not have the same number of columns as src2 has + rows.
    +
    +
    +
    +
  • +
  • standardVector

    diff --git a/docs/org/flag4j/operations/dense_sparse/csr/complex/ComplexCsrDenseOperations.html b/docs/org/flag4j/operations/dense_sparse/csr/complex/ComplexCsrDenseOperations.html index aa241407e..de98ba697 100644 --- a/docs/org/flag4j/operations/dense_sparse/csr/complex/ComplexCsrDenseOperations.html +++ b/docs/org/flag4j/operations/dense_sparse/csr/complex/ComplexCsrDenseOperations.html @@ -1,11 +1,11 @@ - + ComplexCsrDenseOperations - + @@ -89,7 +89,7 @@

    Class ComplexCsrDenseO

    -
    public class ComplexCsrDenseOperations +
    public final class ComplexCsrDenseOperations extends Object
    This class contains low-level operations which act on a complex dense and a complex sparse CSR matrix.
    diff --git a/docs/org/flag4j/operations/dense_sparse/csr/complex/package-summary.html b/docs/org/flag4j/operations/dense_sparse/csr/complex/package-summary.html index bbec58b4f..c043bd79f 100644 --- a/docs/org/flag4j/operations/dense_sparse/csr/complex/package-summary.html +++ b/docs/org/flag4j/operations/dense_sparse/csr/complex/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.dense_sparse.csr.complex - + diff --git a/docs/org/flag4j/operations/dense_sparse/csr/complex/package-tree.html b/docs/org/flag4j/operations/dense_sparse/csr/complex/package-tree.html index 84de86c33..d51921386 100644 --- a/docs/org/flag4j/operations/dense_sparse/csr/complex/package-tree.html +++ b/docs/org/flag4j/operations/dense_sparse/csr/complex/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.dense_sparse.csr.complex Class Hierarchy - + diff --git a/docs/org/flag4j/operations/dense_sparse/csr/real/RealCsrDenseMatrixMultiplication.html b/docs/org/flag4j/operations/dense_sparse/csr/real/RealCsrDenseMatrixMultiplication.html index 85e711a83..0d4298254 100644 --- a/docs/org/flag4j/operations/dense_sparse/csr/real/RealCsrDenseMatrixMultiplication.html +++ b/docs/org/flag4j/operations/dense_sparse/csr/real/RealCsrDenseMatrixMultiplication.html @@ -1,11 +1,11 @@ - + RealCsrDenseMatrixMultiplication - + diff --git a/docs/org/flag4j/operations/dense_sparse/csr/real/RealCsrDenseOperations.html b/docs/org/flag4j/operations/dense_sparse/csr/real/RealCsrDenseOperations.html index b61b291de..c9a236a2d 100644 --- a/docs/org/flag4j/operations/dense_sparse/csr/real/RealCsrDenseOperations.html +++ b/docs/org/flag4j/operations/dense_sparse/csr/real/RealCsrDenseOperations.html @@ -1,11 +1,11 @@ - + RealCsrDenseOperations - + diff --git a/docs/org/flag4j/operations/dense_sparse/csr/real/package-summary.html b/docs/org/flag4j/operations/dense_sparse/csr/real/package-summary.html index 26a6b08d8..91e338f7b 100644 --- a/docs/org/flag4j/operations/dense_sparse/csr/real/package-summary.html +++ b/docs/org/flag4j/operations/dense_sparse/csr/real/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.dense_sparse.csr.real - + diff --git a/docs/org/flag4j/operations/dense_sparse/csr/real/package-tree.html b/docs/org/flag4j/operations/dense_sparse/csr/real/package-tree.html index 72d896e5b..ca8385c70 100644 --- a/docs/org/flag4j/operations/dense_sparse/csr/real/package-tree.html +++ b/docs/org/flag4j/operations/dense_sparse/csr/real/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.dense_sparse.csr.real Class Hierarchy - + diff --git a/docs/org/flag4j/operations/dense_sparse/csr/real_complex/RealComplexCsrDenseMatrixMultiplication.html b/docs/org/flag4j/operations/dense_sparse/csr/real_complex/RealComplexCsrDenseMatrixMultiplication.html index 833aabded..50074ef16 100644 --- a/docs/org/flag4j/operations/dense_sparse/csr/real_complex/RealComplexCsrDenseMatrixMultiplication.html +++ b/docs/org/flag4j/operations/dense_sparse/csr/real_complex/RealComplexCsrDenseMatrixMultiplication.html @@ -1,11 +1,11 @@ - + RealComplexCsrDenseMatrixMultiplication - + @@ -89,7 +89,7 @@

    Class Re

    -
    public class RealComplexCsrDenseMatrixMultiplication +
    public final class RealComplexCsrDenseMatrixMultiplication extends Object
    This class contains low-level implementations of real-complex sparse-dense matrix multiplication where the sparse matrix is in CSR format.
    diff --git a/docs/org/flag4j/operations/dense_sparse/csr/real_complex/RealComplexCsrDenseOperations.html b/docs/org/flag4j/operations/dense_sparse/csr/real_complex/RealComplexCsrDenseOperations.html index cc4085608..c5d993490 100644 --- a/docs/org/flag4j/operations/dense_sparse/csr/real_complex/RealComplexCsrDenseOperations.html +++ b/docs/org/flag4j/operations/dense_sparse/csr/real_complex/RealComplexCsrDenseOperations.html @@ -1,11 +1,11 @@ - + RealComplexCsrDenseOperations - + @@ -89,7 +89,7 @@

    Class RealComplexC

    -
    public class RealComplexCsrDenseOperations +
    public final class RealComplexCsrDenseOperations extends Object
    This class contains low-level operations which act on a real/complex dense and a complex/real sparse CSR matrix.
    diff --git a/docs/org/flag4j/operations/dense_sparse/csr/real_complex/package-summary.html b/docs/org/flag4j/operations/dense_sparse/csr/real_complex/package-summary.html index 20ef68ad0..6800cfd3e 100644 --- a/docs/org/flag4j/operations/dense_sparse/csr/real_complex/package-summary.html +++ b/docs/org/flag4j/operations/dense_sparse/csr/real_complex/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.dense_sparse.csr.real_complex - + diff --git a/docs/org/flag4j/operations/dense_sparse/csr/real_complex/package-tree.html b/docs/org/flag4j/operations/dense_sparse/csr/real_complex/package-tree.html index 9ba282dff..5c4a0c060 100644 --- a/docs/org/flag4j/operations/dense_sparse/csr/real_complex/package-tree.html +++ b/docs/org/flag4j/operations/dense_sparse/csr/real_complex/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.dense_sparse.csr.real_complex Class Hierarchy - + diff --git a/docs/org/flag4j/operations/package-summary.html b/docs/org/flag4j/operations/package-summary.html index 497f6c4f8..33a640ce0 100644 --- a/docs/org/flag4j/operations/package-summary.html +++ b/docs/org/flag4j/operations/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.operations - + diff --git a/docs/org/flag4j/operations/package-tree.html b/docs/org/flag4j/operations/package-tree.html index 635bf376b..2154ee3c9 100644 --- a/docs/org/flag4j/operations/package-tree.html +++ b/docs/org/flag4j/operations/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.operations Class Hierarchy - + diff --git a/docs/org/flag4j/operations/sparse/coo/SparseDataWrapper.html b/docs/org/flag4j/operations/sparse/coo/SparseDataWrapper.html index c1123da8c..68bf74128 100644 --- a/docs/org/flag4j/operations/sparse/coo/SparseDataWrapper.html +++ b/docs/org/flag4j/operations/sparse/coo/SparseDataWrapper.html @@ -1,11 +1,11 @@ - + SparseDataWrapper - + diff --git a/docs/org/flag4j/operations/sparse/coo/SparseElementSearch.html b/docs/org/flag4j/operations/sparse/coo/SparseElementSearch.html index 7898e7ec5..e4a710e7e 100644 --- a/docs/org/flag4j/operations/sparse/coo/SparseElementSearch.html +++ b/docs/org/flag4j/operations/sparse/coo/SparseElementSearch.html @@ -1,11 +1,11 @@ - + SparseElementSearch - + diff --git a/docs/org/flag4j/operations/sparse/coo/SparseUtils.html b/docs/org/flag4j/operations/sparse/coo/SparseUtils.html index 8086d3b83..73a556731 100644 --- a/docs/org/flag4j/operations/sparse/coo/SparseUtils.html +++ b/docs/org/flag4j/operations/sparse/coo/SparseUtils.html @@ -1,11 +1,11 @@ - + SparseUtils - + diff --git a/docs/org/flag4j/operations/sparse/coo/complex/ComplexCooTensorDot.html b/docs/org/flag4j/operations/sparse/coo/complex/ComplexCooTensorDot.html new file mode 100644 index 000000000..5978c241b --- /dev/null +++ b/docs/org/flag4j/operations/sparse/coo/complex/ComplexCooTensorDot.html @@ -0,0 +1,201 @@ + + + + +ComplexCooTensorDot + + + + + + + + + + + + + + +
    + +
    +
    + +
    + +

    Class ComplexCooTensorDot

    +
    +
    java.lang.Object +
    org.flag4j.operations.sparse.coo.complex.ComplexCooTensorDot
    +
    +
    +
    +
    +
    public class ComplexCooTensorDot +extends Object
    +

    Utility class for computing tensor dot products between two complex sparse COO tensors.

    +
    +
    +
    + +
    +
    +
      + +
    • +
      +

      Constructor Details

      +
        +
      • +
        +

        ComplexCooTensorDot

        +
        +
        private ComplexCooTensorDot()
        +
        +
        +
      • +
      +
      +
    • + +
    • +
      +

      Method Details

      +
        +
      • +
        +

        tensorDot

        +
        +
        public static CTensor tensorDot(CooCTensor src1, + CooCTensor src2, + int[] src1Axes, + int[] src2Axes)
        +
        Computes the tensor contraction of this tensor with a specified tensor over the specified set of axes. That is, + computes the sum of products between the two tensors along the specified set of axes.
        +
        +
        Parameters:
        +
        src1 - First tensor in the contraction.
        +
        src2 - Second tensor in the contraction.
        +
        src1Axes - Axes along which to compute products for src1 tensor.
        +
        src2Axes - Axes along which to compute products for src2 tensor.
        +
        Returns:
        +
        The tensor dot product over the specified axes.
        +
        Throws:
        +
        IllegalArgumentException - If the two tensors shapes do not match along the specified axes pairwise in + aAxes and bAxes.
        +
        IllegalArgumentException - If aAxes and bAxes do not match in length, or if any of the axes + are out of bounds for the corresponding tensor.
        +
        +
        +
        +
      • +
      +
      +
    • +
    +
    + +
    + + diff --git a/docs/org/flag4j/operations/sparse/coo/complex/ComplexCooTensorOperations.html b/docs/org/flag4j/operations/sparse/coo/complex/ComplexCooTensorOperations.html new file mode 100644 index 000000000..ab73130e6 --- /dev/null +++ b/docs/org/flag4j/operations/sparse/coo/complex/ComplexCooTensorOperations.html @@ -0,0 +1,216 @@ + + + + +ComplexCooTensorOperations + + + + + + + + + + + + + + +
    + +
    +
    + +
    + +

    Class ComplexCooTensorOperations

    +
    +
    java.lang.Object +
    org.flag4j.operations.sparse.coo.complex.ComplexCooTensorOperations
    +
    +
    +
    +
    +
    public final class ComplexCooTensorOperations +extends Object
    +
    Utility class for computing operations between two complex sparse COO tensors.
    +
    +
    +
    + +
    +
    +
      + +
    • +
      +

      Constructor Details

      +
        +
      • +
        +

        ComplexCooTensorOperations

        +
        +
        private ComplexCooTensorOperations()
        +
        +
        +
      • +
      +
      +
    • + +
    • +
      +

      Method Details

      +
        +
      • +
        +

        add

        +
        +
        public static CooCTensor add(CooCTensor src1, + CooCTensor src2)
        +
        Sums two complex sparse COO tensors and stores result in a new COO tensor.
        +
        +
        Parameters:
        +
        src1 - First tensor in the sum.
        +
        src2 - Second tensor in the sum.
        +
        Returns:
        +
        The element-wise tensor sum of src1 and src2.
        +
        Throws:
        +
        LinearAlgebraException - If the tensors src1 and src2 do not have the same shape.
        +
        +
        +
        +
      • +
      • +
        +

        sub

        +
        +
        public static CooCTensor sub(CooCTensor src1, + CooCTensor src2)
        +
        Computes difference between two sparse COO tensors and stores result in a new COO tensor.
        +
        +
        Parameters:
        +
        src1 - First tensor in the difference.
        +
        src2 - Second tensor in the difference.
        +
        Returns:
        +
        The element-wise tensor difference of src1 and src2.
        +
        Throws:
        +
        LinearAlgebraException - If the tensors src1 and src2 do not have the same shape.
        +
        +
        +
        +
      • +
      +
      +
    • +
    +
    + +
    + + diff --git a/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseElementSearch.html b/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseElementSearch.html index b9f45abf1..2495e3826 100644 --- a/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseElementSearch.html +++ b/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseElementSearch.html @@ -1,11 +1,11 @@ - + ComplexSparseElementSearch - + diff --git a/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseEquals.html b/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseEquals.html index dbbe7c8ee..e6d74d206 100644 --- a/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseEquals.html +++ b/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseEquals.html @@ -1,11 +1,11 @@ - + ComplexSparseEquals - + diff --git a/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseMatrixGetSet.html b/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseMatrixGetSet.html index 3badd0f31..602fc6899 100644 --- a/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseMatrixGetSet.html +++ b/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseMatrixGetSet.html @@ -1,11 +1,11 @@ - + ComplexSparseMatrixGetSet - + @@ -330,6 +330,7 @@

    Method Summary

    ?, ?, ?, +?, ?>>
    void
    setSliceParamCheck(T src, int valueRows, @@ -343,6 +344,7 @@

    Method Summary

    ?, ?, ?, +?, ?>, U extends MatrixMixin<?, ?, @@ -350,6 +352,7 @@

    Method Summary

    ?, ?, ?, +?, ?>>
    void
    setSliceParamCheck(T src, U values, @@ -964,6 +967,7 @@

    MatrixMixin<?, ?, @@ -971,6 +975,7 @@

    void setSliceParamCheck(T src, U values, @@ -989,6 +994,7 @@

    setSlic ?, ?, ?, +?, ?>> void setSliceParamCheck(T src, int valueRows, diff --git a/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseMatrixManipulations.html b/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseMatrixManipulations.html index e5b71394a..cf01ffaa5 100644 --- a/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseMatrixManipulations.html +++ b/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseMatrixManipulations.html @@ -1,11 +1,11 @@ - + ComplexSparseMatrixManipulations - + diff --git a/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseMatrixMultiplication.html b/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseMatrixMultiplication.html index 66f4ebde7..eec33a1b9 100644 --- a/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseMatrixMultiplication.html +++ b/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseMatrixMultiplication.html @@ -1,11 +1,11 @@ - + ComplexSparseMatrixMultiplication - + @@ -89,7 +89,7 @@

    Class ComplexS

    -
    public class ComplexSparseMatrixMultiplication +
    public final class ComplexSparseMatrixMultiplication extends Object
    This class contains low level methods for computing the matrix multiplication of sparse complex matrices/vectors.
    WARNING: The methods in this class do not perform any sanity checks.
    diff --git a/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseMatrixOperations.html b/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseMatrixOperations.html index e94b65060..ddb1099ad 100644 --- a/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseMatrixOperations.html +++ b/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseMatrixOperations.html @@ -1,11 +1,11 @@ - + ComplexSparseMatrixOperations - + @@ -89,7 +89,7 @@

    Class ComplexSpars

    -
    public class ComplexSparseMatrixOperations +
    public final class ComplexSparseMatrixOperations extends Object
    This class has low level implementations for operations between two complex sparse matrices.
    diff --git a/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseMatrixProperties.html b/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseMatrixProperties.html index 9c0185f72..0d2b5d07b 100644 --- a/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseMatrixProperties.html +++ b/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseMatrixProperties.html @@ -1,11 +1,11 @@ - + ComplexSparseMatrixProperties - + diff --git a/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseNorms.html b/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseNorms.html index cb8c70c5c..ca26dc037 100644 --- a/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseNorms.html +++ b/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseNorms.html @@ -1,11 +1,11 @@ - + ComplexSparseNorms - + diff --git a/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseVectorOperations.html b/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseVectorOperations.html index 445408fad..f3d4bce82 100644 --- a/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseVectorOperations.html +++ b/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseVectorOperations.html @@ -1,11 +1,11 @@ - + ComplexSparseVectorOperations - + @@ -89,7 +89,7 @@

    Class ComplexSpars

    -
    public class ComplexSparseVectorOperations +
    public final class ComplexSparseVectorOperations extends Object
    This class contains low level implementations of operations on two complex sparse tensors.
    diff --git a/docs/org/flag4j/operations/sparse/coo/complex/package-summary.html b/docs/org/flag4j/operations/sparse/coo/complex/package-summary.html index af01be5ef..ae193e2eb 100644 --- a/docs/org/flag4j/operations/sparse/coo/complex/package-summary.html +++ b/docs/org/flag4j/operations/sparse/coo/complex/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.sparse.coo.complex - + @@ -92,6 +92,14 @@

    Packa
    Class
    Description
    + +
    +
    Utility class for computing tensor dot products between two complex sparse COO tensors.
    +
    + +
    +
    Utility class for computing operations between two complex sparse COO tensors.
    +
     
    diff --git a/docs/org/flag4j/operations/sparse/coo/complex/package-tree.html b/docs/org/flag4j/operations/sparse/coo/complex/package-tree.html index 644bc57f3..b44905c6a 100644 --- a/docs/org/flag4j/operations/sparse/coo/complex/package-tree.html +++ b/docs/org/flag4j/operations/sparse/coo/complex/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.sparse.coo.complex Class Hierarchy - + @@ -57,6 +57,8 @@

    Class Hierarchy

    • java.lang.Object
        +
      • org.flag4j.operations.sparse.coo.complex.ComplexCooTensorDot
      • +
      • org.flag4j.operations.sparse.coo.complex.ComplexCooTensorOperations
      • org.flag4j.operations.sparse.coo.complex.ComplexSparseElementSearch
      • org.flag4j.operations.sparse.coo.complex.ComplexSparseEquals
      • org.flag4j.operations.sparse.coo.complex.ComplexSparseMatrixGetSet
      • diff --git a/docs/org/flag4j/operations/sparse/coo/package-summary.html b/docs/org/flag4j/operations/sparse/coo/package-summary.html index a5939b6f6..d5df019a4 100644 --- a/docs/org/flag4j/operations/sparse/coo/package-summary.html +++ b/docs/org/flag4j/operations/sparse/coo/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.sparse.coo - + diff --git a/docs/org/flag4j/operations/sparse/coo/package-tree.html b/docs/org/flag4j/operations/sparse/coo/package-tree.html index 3d04c8e64..5a5b5281a 100644 --- a/docs/org/flag4j/operations/sparse/coo/package-tree.html +++ b/docs/org/flag4j/operations/sparse/coo/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.sparse.coo Class Hierarchy - + diff --git a/docs/org/flag4j/operations/sparse/coo/real/RealCooTensorDot.html b/docs/org/flag4j/operations/sparse/coo/real/RealCooTensorDot.html new file mode 100644 index 000000000..ef49a5aaa --- /dev/null +++ b/docs/org/flag4j/operations/sparse/coo/real/RealCooTensorDot.html @@ -0,0 +1,201 @@ + + + + +RealCooTensorDot + + + + + + + + + + + + + + +
        + +
        +
        + +
        + +

        Class RealCooTensorDot

        +
        +
        java.lang.Object +
        org.flag4j.operations.sparse.coo.real.RealCooTensorDot
        +
        +
        +
        +
        +
        public final class RealCooTensorDot +extends Object
        +

        Utility class for computing tensor dot products between two real sparse COO tensors.

        +
        +
        +
        + +
        +
        +
          + +
        • +
          +

          Constructor Details

          +
            +
          • +
            +

            RealCooTensorDot

            +
            +
            private RealCooTensorDot()
            +
            +
            +
          • +
          +
          +
        • + +
        • +
          +

          Method Details

          +
            +
          • +
            +

            tensorDot

            +
            +
            public static Tensor tensorDot(CooTensor src1, + CooTensor src2, + int[] src1Axes, + int[] src2Axes)
            +
            Computes the tensor contraction of this tensor with a specified tensor over the specified set of axes. That is, + computes the sum of products between the two tensors along the specified set of axes.
            +
            +
            Parameters:
            +
            src1 - First tensor in the contraction.
            +
            src2 - Second tensor in the contraction.
            +
            src1Axes - Axes along which to compute products for src1 tensor.
            +
            src2Axes - Axes along which to compute products for src2 tensor.
            +
            Returns:
            +
            The tensor dot product over the specified axes.
            +
            Throws:
            +
            IllegalArgumentException - If the two tensors shapes do not match along the specified axes pairwise in + aAxes and bAxes.
            +
            IllegalArgumentException - If aAxes and bAxes do not match in length, or if any of the axes + are out of bounds for the corresponding tensor.
            +
            +
            +
            +
          • +
          +
          +
        • +
        +
        + +
        + + diff --git a/docs/org/flag4j/operations/sparse/coo/real/RealCooTensorOperations.html b/docs/org/flag4j/operations/sparse/coo/real/RealCooTensorOperations.html new file mode 100644 index 000000000..da4267034 --- /dev/null +++ b/docs/org/flag4j/operations/sparse/coo/real/RealCooTensorOperations.html @@ -0,0 +1,216 @@ + + + + +RealCooTensorOperations + + + + + + + + + + + + + + +
        + +
        +
        + +
        + +

        Class RealCooTensorOperations

        +
        +
        java.lang.Object +
        org.flag4j.operations.sparse.coo.real.RealCooTensorOperations
        +
        +
        +
        +
        +
        public final class RealCooTensorOperations +extends Object
        +
        Utility class for computing operations between two real sparse COO tensors.
        +
        +
        +
        + +
        +
        +
          + +
        • +
          +

          Constructor Details

          +
            +
          • +
            +

            RealCooTensorOperations

            +
            +
            private RealCooTensorOperations()
            +
            +
            +
          • +
          +
          +
        • + +
        • +
          +

          Method Details

          +
            +
          • +
            +

            add

            +
            +
            public static CooTensor add(CooTensor src1, + CooTensor src2)
            +
            Sums two sparse COO tensors and stores result in a new COO tensor.
            +
            +
            Parameters:
            +
            src1 - First tensor in the sum.
            +
            src2 - Second tensor in the sum.
            +
            Returns:
            +
            The element-wise tensor sum of src1 and src2.
            +
            Throws:
            +
            LinearAlgebraException - If the tensors src1 and src2 do not have the same shape.
            +
            +
            +
            +
          • +
          • +
            +

            sub

            +
            +
            public static CooTensor sub(CooTensor src1, + CooTensor src2)
            +
            Computes difference between two sparse COO tensors and stores result in a new COO tensor.
            +
            +
            Parameters:
            +
            src1 - First tensor in the difference.
            +
            src2 - Second tensor in the difference.
            +
            Returns:
            +
            The element-wise tensor difference of src1 and src2.
            +
            Throws:
            +
            LinearAlgebraException - If the tensors src1 and src2 do not have the same shape.
            +
            +
            +
            +
          • +
          +
          +
        • +
        +
        + +
        + + diff --git a/docs/org/flag4j/operations/sparse/coo/real/RealSparseEquals.html b/docs/org/flag4j/operations/sparse/coo/real/RealSparseEquals.html index cbcb87d5a..acb307500 100644 --- a/docs/org/flag4j/operations/sparse/coo/real/RealSparseEquals.html +++ b/docs/org/flag4j/operations/sparse/coo/real/RealSparseEquals.html @@ -1,11 +1,11 @@ - + RealSparseEquals - + diff --git a/docs/org/flag4j/operations/sparse/coo/real/RealSparseManipulations.html b/docs/org/flag4j/operations/sparse/coo/real/RealSparseManipulations.html index 38b7879be..e95924ac1 100644 --- a/docs/org/flag4j/operations/sparse/coo/real/RealSparseManipulations.html +++ b/docs/org/flag4j/operations/sparse/coo/real/RealSparseManipulations.html @@ -1,11 +1,11 @@ - + RealSparseManipulations - + diff --git a/docs/org/flag4j/operations/sparse/coo/real/RealSparseMatrixGetSet.html b/docs/org/flag4j/operations/sparse/coo/real/RealSparseMatrixGetSet.html index b250ea819..b48a631d3 100644 --- a/docs/org/flag4j/operations/sparse/coo/real/RealSparseMatrixGetSet.html +++ b/docs/org/flag4j/operations/sparse/coo/real/RealSparseMatrixGetSet.html @@ -1,11 +1,11 @@ - + RealSparseMatrixGetSet - + diff --git a/docs/org/flag4j/operations/sparse/coo/real/RealSparseMatrixManipulations.html b/docs/org/flag4j/operations/sparse/coo/real/RealSparseMatrixManipulations.html index f5d85b1c2..c68891089 100644 --- a/docs/org/flag4j/operations/sparse/coo/real/RealSparseMatrixManipulations.html +++ b/docs/org/flag4j/operations/sparse/coo/real/RealSparseMatrixManipulations.html @@ -1,11 +1,11 @@ - + RealSparseMatrixManipulations - + diff --git a/docs/org/flag4j/operations/sparse/coo/real/RealSparseMatrixMultiplication.html b/docs/org/flag4j/operations/sparse/coo/real/RealSparseMatrixMultiplication.html index bd41486cb..b2d0fb10f 100644 --- a/docs/org/flag4j/operations/sparse/coo/real/RealSparseMatrixMultiplication.html +++ b/docs/org/flag4j/operations/sparse/coo/real/RealSparseMatrixMultiplication.html @@ -1,11 +1,11 @@ - + RealSparseMatrixMultiplication - + diff --git a/docs/org/flag4j/operations/sparse/coo/real/RealSparseMatrixOperations.html b/docs/org/flag4j/operations/sparse/coo/real/RealSparseMatrixOperations.html index cfcb229bf..8ab8fc23c 100644 --- a/docs/org/flag4j/operations/sparse/coo/real/RealSparseMatrixOperations.html +++ b/docs/org/flag4j/operations/sparse/coo/real/RealSparseMatrixOperations.html @@ -1,11 +1,11 @@ - + RealSparseMatrixOperations - + diff --git a/docs/org/flag4j/operations/sparse/coo/real/RealSparseMatrixProperties.html b/docs/org/flag4j/operations/sparse/coo/real/RealSparseMatrixProperties.html index 9b620618f..5ac5c618f 100644 --- a/docs/org/flag4j/operations/sparse/coo/real/RealSparseMatrixProperties.html +++ b/docs/org/flag4j/operations/sparse/coo/real/RealSparseMatrixProperties.html @@ -1,11 +1,11 @@ - + RealSparseMatrixProperties - + diff --git a/docs/org/flag4j/operations/sparse/coo/real/RealSparseNorms.html b/docs/org/flag4j/operations/sparse/coo/real/RealSparseNorms.html index 3ae8f80aa..3a32c391c 100644 --- a/docs/org/flag4j/operations/sparse/coo/real/RealSparseNorms.html +++ b/docs/org/flag4j/operations/sparse/coo/real/RealSparseNorms.html @@ -1,11 +1,11 @@ - + RealSparseNorms - + diff --git a/docs/org/flag4j/operations/sparse/coo/real/RealSparseVectorOperations.html b/docs/org/flag4j/operations/sparse/coo/real/RealSparseVectorOperations.html index 18276acee..aad40dfa3 100644 --- a/docs/org/flag4j/operations/sparse/coo/real/RealSparseVectorOperations.html +++ b/docs/org/flag4j/operations/sparse/coo/real/RealSparseVectorOperations.html @@ -1,11 +1,11 @@ - + RealSparseVectorOperations - + diff --git a/docs/org/flag4j/operations/sparse/coo/real/package-summary.html b/docs/org/flag4j/operations/sparse/coo/real/package-summary.html index 57d247a24..f0b8eae97 100644 --- a/docs/org/flag4j/operations/sparse/coo/real/package-summary.html +++ b/docs/org/flag4j/operations/sparse/coo/real/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.sparse.coo.real - + @@ -92,6 +92,14 @@

        Package
        Class
        Description
        + +
        +
        Utility class for computing tensor dot products between two real sparse COO tensors.
        +
        + +
        +
        Utility class for computing operations between two real sparse COO tensors.
        +
        This class contains methods for checking the equality of real sparse tensors.
        diff --git a/docs/org/flag4j/operations/sparse/coo/real/package-tree.html b/docs/org/flag4j/operations/sparse/coo/real/package-tree.html index 002e963d6..052cf1da3 100644 --- a/docs/org/flag4j/operations/sparse/coo/real/package-tree.html +++ b/docs/org/flag4j/operations/sparse/coo/real/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.sparse.coo.real Class Hierarchy - + @@ -57,6 +57,8 @@

        Class Hierarchy

        • java.lang.Object
            +
          • org.flag4j.operations.sparse.coo.real.RealCooTensorDot
          • +
          • org.flag4j.operations.sparse.coo.real.RealCooTensorOperations
          • org.flag4j.operations.sparse.coo.real.RealSparseEquals
          • org.flag4j.operations.sparse.coo.real.RealSparseManipulations
          • org.flag4j.operations.sparse.coo.real.RealSparseMatrixGetSet
          • diff --git a/docs/org/flag4j/operations/sparse/coo/real_complex/RealComplexCooTensorOperations.html b/docs/org/flag4j/operations/sparse/coo/real_complex/RealComplexCooTensorOperations.html new file mode 100644 index 000000000..45a3156cd --- /dev/null +++ b/docs/org/flag4j/operations/sparse/coo/real_complex/RealComplexCooTensorOperations.html @@ -0,0 +1,241 @@ + + + + +RealComplexCooTensorOperations + + + + + + + + + + + + + + +
            + +
            +
            + +
            + +

            Class RealComplexCooTensorOperations

            +
            +
            java.lang.Object +
            org.flag4j.operations.sparse.coo.real_complex.RealComplexCooTensorOperations
            +
            +
            +
            +
            +
            public final class RealComplexCooTensorOperations +extends Object
            +
            Utility class for computing operations between a complex sparse COO tensor and a real coo tensor.
            +
            +
            +
            + +
            +
            +
              + +
            • +
              +

              Constructor Details

              +
                +
              • +
                +

                RealComplexCooTensorOperations

                +
                +
                private RealComplexCooTensorOperations()
                +
                +
                +
              • +
              +
              +
            • + +
            • +
              +

              Method Details

              +
                +
              • +
                +

                add

                +
                +
                public static CooCTensor add(CooCTensor src1, + CooTensor src2)
                +
                Sums two sparse COO tensors and stores result in a new COO tensor.
                +
                +
                Parameters:
                +
                src1 - First tensor in the sum.
                +
                src2 - Second tensor in the sum.
                +
                Returns:
                +
                The element-wise tensor sum of src1 and src2.
                +
                Throws:
                +
                LinearAlgebraException - If the tensors src1 and src2 do not have the same shape.
                +
                +
                +
                +
              • +
              • +
                +

                sub

                +
                +
                public static CooCTensor sub(CooCTensor src1, + CooTensor src2)
                +
                Computes difference of two sparse COO tensors and stores result in a new COO tensor.
                +
                +
                Parameters:
                +
                src1 - First tensor in the difference.
                +
                src2 - Second tensor in the difference.
                +
                Returns:
                +
                The element-wise tensor difference of src1 and src2.
                +
                Throws:
                +
                LinearAlgebraException - If the tensors src1 and src2 do not have the same shape.
                +
                +
                +
                +
              • +
              • +
                +

                sub

                +
                +
                public static CooCTensor sub(CooTensor src1, + CooCTensor src2)
                +
                Computes difference of two sparse COO tensors and stores result in a new COO tensor.
                +
                +
                Parameters:
                +
                src1 - First tensor in the difference.
                +
                src2 - Second tensor in the difference.
                +
                Returns:
                +
                The element-wise tensor difference of src1 and src2.
                +
                Throws:
                +
                LinearAlgebraException - If the tensors src1 and src2 do not have the same shape.
                +
                +
                +
                +
              • +
              +
              +
            • +
            +
            + +
            + + diff --git a/docs/org/flag4j/operations/sparse/coo/real_complex/RealComplexSparseEquals.html b/docs/org/flag4j/operations/sparse/coo/real_complex/RealComplexSparseEquals.html index 1ed949ee5..6d80f9c72 100644 --- a/docs/org/flag4j/operations/sparse/coo/real_complex/RealComplexSparseEquals.html +++ b/docs/org/flag4j/operations/sparse/coo/real_complex/RealComplexSparseEquals.html @@ -1,11 +1,11 @@ - + RealComplexSparseEquals - + diff --git a/docs/org/flag4j/operations/sparse/coo/real_complex/RealComplexSparseMatrixMultiplication.html b/docs/org/flag4j/operations/sparse/coo/real_complex/RealComplexSparseMatrixMultiplication.html index 9124e246d..ba7413662 100644 --- a/docs/org/flag4j/operations/sparse/coo/real_complex/RealComplexSparseMatrixMultiplication.html +++ b/docs/org/flag4j/operations/sparse/coo/real_complex/RealComplexSparseMatrixMultiplication.html @@ -1,11 +1,11 @@ - + RealComplexSparseMatrixMultiplication - + @@ -89,7 +89,7 @@

            Class Real

            -
            public class RealComplexSparseMatrixMultiplication +
            public final class RealComplexSparseMatrixMultiplication extends Object
            This class contains low level methods for computing the multiplication between a real/complex matrix and a complex/real matrix/vector.
            diff --git a/docs/org/flag4j/operations/sparse/coo/real_complex/RealComplexSparseMatrixOperations.html b/docs/org/flag4j/operations/sparse/coo/real_complex/RealComplexSparseMatrixOperations.html index f49b69398..44a62a59c 100644 --- a/docs/org/flag4j/operations/sparse/coo/real_complex/RealComplexSparseMatrixOperations.html +++ b/docs/org/flag4j/operations/sparse/coo/real_complex/RealComplexSparseMatrixOperations.html @@ -1,11 +1,11 @@ - + RealComplexSparseMatrixOperations - + @@ -89,7 +89,7 @@

            Class RealComp

            -
            public class RealComplexSparseMatrixOperations +
            public final class RealComplexSparseMatrixOperations extends Object
            This class has low level implementations for operations between a real sparse matrix and a complex sparse matrix.
            diff --git a/docs/org/flag4j/operations/sparse/coo/real_complex/RealComplexSparseVectorOperations.html b/docs/org/flag4j/operations/sparse/coo/real_complex/RealComplexSparseVectorOperations.html index ccd7176b3..887269c27 100644 --- a/docs/org/flag4j/operations/sparse/coo/real_complex/RealComplexSparseVectorOperations.html +++ b/docs/org/flag4j/operations/sparse/coo/real_complex/RealComplexSparseVectorOperations.html @@ -1,11 +1,11 @@ - + RealComplexSparseVectorOperations - + @@ -89,7 +89,7 @@

            Class RealComp

            -
            public class RealComplexSparseVectorOperations +
            public final class RealComplexSparseVectorOperations extends Object
            This class contains low level implementations of operations on a real sparse tensor and a complex sparse tensor.
            diff --git a/docs/org/flag4j/operations/sparse/coo/real_complex/package-summary.html b/docs/org/flag4j/operations/sparse/coo/real_complex/package-summary.html index c12f160d4..1581abafa 100644 --- a/docs/org/flag4j/operations/sparse/coo/real_complex/package-summary.html +++ b/docs/org/flag4j/operations/sparse/coo/real_complex/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.sparse.coo.real_complex - + @@ -92,21 +92,25 @@

            Class
            Description
            - +
            -
            This class contains methods for checking the equality of real/complex sparse tensors.
            +
            Utility class for computing operations between a complex sparse COO tensor and a real coo tensor.
            - +
            +
            This class contains methods for checking the equality of real/complex sparse tensors.
            +
            + +
            This class contains low level methods for computing the multiplication between a real/complex matrix and a complex/real matrix/vector.
            - -
            + +
            This class has low level implementations for operations between a real sparse matrix and a complex sparse matrix.
            - -
            + +
            This class contains low level implementations of operations on a real sparse tensor and a complex sparse tensor.
            diff --git a/docs/org/flag4j/operations/sparse/coo/real_complex/package-tree.html b/docs/org/flag4j/operations/sparse/coo/real_complex/package-tree.html index 0587edfce..0082eda66 100644 --- a/docs/org/flag4j/operations/sparse/coo/real_complex/package-tree.html +++ b/docs/org/flag4j/operations/sparse/coo/real_complex/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.sparse.coo.real_complex Class Hierarchy - + @@ -57,6 +57,7 @@

            Class Hierarchy

            diff --git a/docs/help-doc.html b/docs/help-doc.html index 9e494875a..665390a4f 100644 --- a/docs/help-doc.html +++ b/docs/help-doc.html @@ -1,11 +1,11 @@ - + API Help - + diff --git a/docs/index-files/index-1.html b/docs/index-files/index-1.html index 73ee3967d..716250a1f 100644 --- a/docs/index-files/index-1.html +++ b/docs/index-files/index-1.html @@ -1,11 +1,11 @@ - + A-Index - + @@ -81,6 +81,8 @@

            A

            Computes the element-wise absolute value of a tensor.
            +
            accept(T, U, V) - Method in interface org.flag4j.concurrency.ThreadManager.TriConsumer
            +
             
            acos(double) - Static method in class org.flag4j.complex_numbers.CNumber
            Computes the inverse cosine of a value.
            @@ -1330,6 +1332,10 @@

            A

            Applies the specified binary operation on the two tensors.
            +
            apply(int, int) - Method in interface org.flag4j.concurrency.TensorOperation
            +
            +
            Applies a tensor operation over the specified index range.
            +
            applyBinOpp(CMatrix, CsrCMatrix, BinaryOperator<CNumber>) - Static method in class org.flag4j.operations.dense_sparse.csr.complex.ComplexCsrDenseOperations
            Applies the specified binary operator element-wise to the two matrices.
            diff --git a/docs/index-files/index-10.html b/docs/index-files/index-10.html index cf8f65756..f4111b389 100644 --- a/docs/index-files/index-10.html +++ b/docs/index-files/index-10.html @@ -1,11 +1,11 @@ - + J-Index - + diff --git a/docs/index-files/index-11.html b/docs/index-files/index-11.html index b658a2610..759f854d7 100644 --- a/docs/index-files/index-11.html +++ b/docs/index-files/index-11.html @@ -1,11 +1,11 @@ - + K-Index - + diff --git a/docs/index-files/index-12.html b/docs/index-files/index-12.html index 19c11df8d..83b1a2e5a 100644 --- a/docs/index-files/index-12.html +++ b/docs/index-files/index-12.html @@ -1,11 +1,11 @@ - + L-Index - + diff --git a/docs/index-files/index-13.html b/docs/index-files/index-13.html index a6e1b3860..c4d0141fa 100644 --- a/docs/index-files/index-13.html +++ b/docs/index-files/index-13.html @@ -1,11 +1,11 @@ - + M-Index - + @@ -59,9 +59,7 @@

            M

            Squares this magnitude of this complex number.
            -
            main(String[]) - Static method in class org.flag4j.core.Shape
            -
             
            -
            main(String[]) - Static method in class org.flag4j.operations.dense.real.RealDenseTranspose
            +
            main(String[]) - Static method in class org.flag4j.operations.dense.real.RealDenseMatrixMultiplication
             
            makeComplexTensor(Shape, double[]) - Method in class org.flag4j.arrays.dense.Matrix
            @@ -747,10 +745,6 @@

            M

            Computes the minimum real component from an array of complex numbers.
            -
            minRecursiveSize - Static variable in class org.flag4j.concurrency.Configurations
            -
            -
            The minimum size of tensor/matrix/vector to make recursive calls on in recursive algorithms.
            -
            moveAndShiftLeft(CsrCMatrix, int, int, int) - Static method in class org.flag4j.operations.sparse.csr.complex.ComplexCsrManipulations
            Moves a non-zero value in a row of a CSR matrix to a new column to the right of its current column.
            diff --git a/docs/index-files/index-14.html b/docs/index-files/index-14.html index 2de33ea9f..7e21d8ab6 100644 --- a/docs/index-files/index-14.html +++ b/docs/index-files/index-14.html @@ -1,11 +1,11 @@ - + N-Index - + diff --git a/docs/index-files/index-15.html b/docs/index-files/index-15.html index 41387053e..795db28ad 100644 --- a/docs/index-files/index-15.html +++ b/docs/index-files/index-15.html @@ -1,11 +1,11 @@ - + O-Index - + diff --git a/docs/index-files/index-16.html b/docs/index-files/index-16.html index e6df3ccc7..61f6ed497 100644 --- a/docs/index-files/index-16.html +++ b/docs/index-files/index-16.html @@ -1,11 +1,11 @@ - + P-Index - + diff --git a/docs/index-files/index-17.html b/docs/index-files/index-17.html index efe8090c8..2480a56bb 100644 --- a/docs/index-files/index-17.html +++ b/docs/index-files/index-17.html @@ -1,11 +1,11 @@ - + Q-Index - + diff --git a/docs/index-files/index-18.html b/docs/index-files/index-18.html index bde83ccc2..ae4526c24 100644 --- a/docs/index-files/index-18.html +++ b/docs/index-files/index-18.html @@ -1,11 +1,11 @@ - + R-Index - + diff --git a/docs/index-files/index-19.html b/docs/index-files/index-19.html index 6995d463e..5bb36655e 100644 --- a/docs/index-files/index-19.html +++ b/docs/index-files/index-19.html @@ -1,11 +1,11 @@ - + S-Index - + @@ -554,10 +554,6 @@

            S

            Set the maximum number of rows and columns to print.
            -
            setMinRecursiveSize(int) - Static method in class org.flag4j.concurrency.Configurations
            -
            -
            Sets the minimum size of tensor/matrix/vector to make recursive calls on in recursive algorithms.
            -
            setNumThreads(int) - Static method in class org.flag4j.concurrency.Configurations
            Sets the number of threads to use in concurrent algorithms.
            @@ -3664,6 +3660,10 @@

            S

            Swaps two rows in a sparse CSR matrix.
            +
            swapUnsafe(int[], int[]) - Static method in class org.flag4j.util.ArrayUtils
            +
            +
            Swaps elements in an array according to a specified permutation.
            +
            SymmHess - Class in org.flag4j.linalg.decompositions.hess
            Computes the Hessenburg decomposition of a real dense symmetric matrix.
            diff --git a/docs/index-files/index-2.html b/docs/index-files/index-2.html index 897cbfa50..e0fe85d5f 100644 --- a/docs/index-files/index-2.html +++ b/docs/index-files/index-2.html @@ -1,11 +1,11 @@ - + B-Index - + diff --git a/docs/index-files/index-20.html b/docs/index-files/index-20.html index d46de8e6e..173b1c1d5 100644 --- a/docs/index-files/index-20.html +++ b/docs/index-files/index-20.html @@ -1,11 +1,11 @@ - + T-Index - + @@ -422,6 +422,10 @@

            T

            TensorNorms() - Constructor for class org.flag4j.linalg.TensorNorms
             
            +
            TensorOperation - Interface in org.flag4j.concurrency
            +
            +
            Functional interface for general tensor operation.
            +
            TensorOperationsMixin<T,U,W,Z,Y,X> - Interface in org.flag4j.core
            This interface specifies operations which all tensors (i.e.
            @@ -478,6 +482,8 @@

            T

            ThreadManager() - Constructor for class org.flag4j.concurrency.ThreadManager
             
            +
            ThreadManager.TriConsumer<T,U,V> - Interface in org.flag4j.concurrency
            +
             
            threadPool - Static variable in class org.flag4j.concurrency.ThreadManager
            Thread pool for managing threads executing concurrent operations.
            diff --git a/docs/index-files/index-21.html b/docs/index-files/index-21.html index 5c6b8b110..2e2e63815 100644 --- a/docs/index-files/index-21.html +++ b/docs/index-files/index-21.html @@ -1,11 +1,11 @@ - + U-Index - + diff --git a/docs/index-files/index-22.html b/docs/index-files/index-22.html index 986e26b2b..c020e8210 100644 --- a/docs/index-files/index-22.html +++ b/docs/index-files/index-22.html @@ -1,11 +1,11 @@ - + V-Index - + diff --git a/docs/index-files/index-23.html b/docs/index-files/index-23.html index 0e1706b61..791732c30 100644 --- a/docs/index-files/index-23.html +++ b/docs/index-files/index-23.html @@ -1,11 +1,11 @@ - + W-Index - + diff --git a/docs/index-files/index-24.html b/docs/index-files/index-24.html index f1d058397..09861c10c 100644 --- a/docs/index-files/index-24.html +++ b/docs/index-files/index-24.html @@ -1,11 +1,11 @@ - + X-Index - + diff --git a/docs/index-files/index-25.html b/docs/index-files/index-25.html index 4b4b8033f..fa70b14c8 100644 --- a/docs/index-files/index-25.html +++ b/docs/index-files/index-25.html @@ -1,11 +1,11 @@ - + Z-Index - + diff --git a/docs/index-files/index-3.html b/docs/index-files/index-3.html index 9fa1fc0e7..932ad98a0 100644 --- a/docs/index-files/index-3.html +++ b/docs/index-files/index-3.html @@ -1,11 +1,11 @@ - + C-Index - + @@ -901,8 +901,6 @@

            C

            Threshold for number of elements in matrix to use concurrent implementation.
            -
            concurrentAtomicArray(double[], int[], int[], Shape, double[], Shape) - Static method in class org.flag4j.operations.dense_sparse.coo.real.RealDenseSparseMatrixMultiplication
            -
             
            concurrentBlocked(double[], Shape, double[], Shape) - Static method in class org.flag4j.operations.dense.real.RealDenseMatrixMultiplication
            Computes the matrix multiplication of two real dense matrices using a concurrent implementation of a blocked @@ -923,6 +921,11 @@

            C

            Computes the matrix multiplication of two real dense matrices using a concurrent implementation of a blocked algorithm.
            +
            concurrentBlockedOperation(int, int, TensorOperation) - Static method in class org.flag4j.concurrency.ThreadManager
            +
            +
            Computes a specified blocked tensor operation concurrently by evenly dividing work amoung available threads (specified by + Configurations.getNumThreads()).
            +
            concurrentBlockedReordered(double[], Shape, double[], Shape) - Static method in class org.flag4j.operations.dense.real.RealDenseMatrixMultiplication
            Computes the matrix multiplication of two real dense matrices using a concurrent implementation of a blocked @@ -979,13 +982,14 @@

            C

            Computes the multiplication of a real dense matrix with a real dense vector using a concurrent implementation of a blocked algorithm.
            -
            concurrentLoop(int, int, int, IntConsumer) - Static method in class org.flag4j.concurrency.ThreadManager
            +
            concurrentOperation(int, TensorOperation) - Static method in class org.flag4j.concurrency.ThreadManager
            -
            Applies a concurrent strided-loop to a function.
            +
            Computes a specified tensor operation concurrently by evenly dividing work amoung available threads (specified by + Configurations.getNumThreads()).
            -
            concurrentLoop(int, int, IntConsumer) - Static method in class org.flag4j.concurrency.ThreadManager
            +
            concurrentOperation(int, ThreadManager.TriConsumer<Integer, Integer, Integer>) - Static method in class org.flag4j.concurrency.ThreadManager
            -
            Applies a concurrent loop to a function.
            +
            Executes a concurrent operation on a given range of indices.
            concurrentReordered(double[], Shape, double[], Shape) - Static method in class org.flag4j.operations.dense.real.RealDenseMatrixMultiplication
            diff --git a/docs/index-files/index-4.html b/docs/index-files/index-4.html index ac0a061eb..52059a568 100644 --- a/docs/index-files/index-4.html +++ b/docs/index-files/index-4.html @@ -1,11 +1,11 @@ - + D-Index - + diff --git a/docs/index-files/index-5.html b/docs/index-files/index-5.html index 9f4c99457..eb29734d9 100644 --- a/docs/index-files/index-5.html +++ b/docs/index-files/index-5.html @@ -1,11 +1,11 @@ - + E-Index - + diff --git a/docs/index-files/index-6.html b/docs/index-files/index-6.html index 739974414..9ab6fca82 100644 --- a/docs/index-files/index-6.html +++ b/docs/index-files/index-6.html @@ -1,11 +1,11 @@ - + F-Index - + diff --git a/docs/index-files/index-7.html b/docs/index-files/index-7.html index 93c2165bf..aef66b7aa 100644 --- a/docs/index-files/index-7.html +++ b/docs/index-files/index-7.html @@ -1,11 +1,11 @@ - + G-Index - + @@ -605,10 +605,6 @@

            G

            Gets the maximum number of rows to print.
            -
            getMinRecursiveSize() - Static method in class org.flag4j.concurrency.Configurations
            -
            -
            Gets the minimum size of tensor/matrix/vector to make recursive calls on in recursive algorithms.
            -
            getNamedGreaterEqErr(double, double, String) - Static method in class org.flag4j.util.ErrorMessages
            Gets an error message for a value which was expected to be greater than of equal to a specified threshold but wasn't.
            diff --git a/docs/index-files/index-8.html b/docs/index-files/index-8.html index 06577b7e6..19dde8893 100644 --- a/docs/index-files/index-8.html +++ b/docs/index-files/index-8.html @@ -1,11 +1,11 @@ - + H-Index - + diff --git a/docs/index-files/index-9.html b/docs/index-files/index-9.html index 73e55ca32..28f816e86 100644 --- a/docs/index-files/index-9.html +++ b/docs/index-files/index-9.html @@ -1,11 +1,11 @@ - + I-Index - + diff --git a/docs/index.html b/docs/index.html index fba451e29..1bd22e1dc 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1,11 +1,11 @@ - + Overview - + diff --git a/docs/member-search-index.js b/docs/member-search-index.js index dabf5565c..b1e8580c5 100644 --- a/docs/member-search-index.js +++ b/docs/member-search-index.js @@ -1 +1 @@ -memberSearchIndex = [{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"abs()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"abs()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"abs()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"abs()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"abs()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"abs()"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"abs()"},{"p":"org.flag4j.operations.common.complex","c":"ComplexOperations","l":"abs(CNumber[])","u":"abs(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.common.real","c":"RealOperations","l":"abs(double[])"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"acos(CNumber)","u":"acos(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"acos(double)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"add(CMatrix)","u":"add(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"add(CMatrix)","u":"add(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"add(CMatrix)","u":"add(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"add(CMatrix)","u":"add(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"add(CMatrix)","u":"add(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"add(CMatrix)","u":"add(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixOperations","l":"add(CMatrix, CooCMatrix)","u":"add(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"add(CMatrix, CooMatrix)","u":"add(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"add(CNumber)","u":"add(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"add(CNumber)","u":"add(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"add(CNumber)","u":"add(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"add(CNumber)","u":"add(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"add(CNumber)","u":"add(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"add(CNumber)","u":"add(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"add(CNumber)","u":"add(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"add(CNumber)","u":"add(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"add(CNumber)","u":"add(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"add(CNumber)","u":"add(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"add(CNumber)","u":"add(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"add(CNumber)","u":"add(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"add(CNumber[], CNumber)","u":"add(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseOperations","l":"add(CNumber[], double)","u":"add(org.flag4j.complex_numbers.CNumber[],double)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"add(CNumber[], Shape, CNumber[], Shape)","u":"add(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseOperations","l":"add(CNumber[], Shape, double[], Shape)","u":"add(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"add(CooCMatrix)","u":"add(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"add(CooCMatrix)","u":"add(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"add(CooCMatrix)","u":"add(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"add(CooCMatrix)","u":"add(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"add(CooCMatrix)","u":"add(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"add(CooCMatrix)","u":"add(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"add(CooCMatrix)","u":"add(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixOperations","l":"add(CooCMatrix, CNumber)","u":"add(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixOperations","l":"add(CooCMatrix, CooCMatrix)","u":"add(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixOperations","l":"add(CooCMatrix, CooMatrix)","u":"add(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixOperations","l":"add(CooCMatrix, double)","u":"add(org.flag4j.arrays.sparse.CooCMatrix,double)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"add(CooCTensor)","u":"add(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"add(CooCTensor)","u":"add(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"add(CooCTensor)","u":"add(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"add(CooCTensor)","u":"add(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"add(CooCTensor)","u":"add(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseOperations","l":"add(CooCTensor, CNumber)","u":"add(org.flag4j.arrays.sparse.CooCTensor,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexCooTensorOperations","l":"add(CooCTensor, CooCTensor)","u":"add(org.flag4j.arrays.sparse.CooCTensor,org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexCooTensorOperations","l":"add(CooCTensor, CooTensor)","u":"add(org.flag4j.arrays.sparse.CooCTensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseOperations","l":"add(CooCTensor, double)","u":"add(org.flag4j.arrays.sparse.CooCTensor,double)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"add(CooCVector)","u":"add(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"add(CooCVector)","u":"add(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"add(CooCVector)","u":"add(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"add(CooCVector)","u":"add(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"add(CooCVector)","u":"add(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseVectorOperations","l":"add(CooCVector, CNumber)","u":"add(org.flag4j.arrays.sparse.CooCVector,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseVectorOperations","l":"add(CooCVector, CooCVector)","u":"add(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseVectorOperations","l":"add(CooCVector, CooVector)","u":"add(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseVectorOperations","l":"add(CooCVector, double)","u":"add(org.flag4j.arrays.sparse.CooCVector,double)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseVectorOperations","l":"add(CooCVector, double)","u":"add(org.flag4j.arrays.sparse.CooCVector,double)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"add(CooMatrix)","u":"add(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"add(CooMatrix)","u":"add(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"add(CooMatrix)","u":"add(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"add(CooMatrix)","u":"add(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"add(CooMatrix)","u":"add(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"add(CooMatrix)","u":"add(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"add(CooMatrix)","u":"add(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixOperations","l":"add(CooMatrix, CNumber)","u":"add(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixOperations","l":"add(CooMatrix, CooMatrix)","u":"add(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixOperations","l":"add(CooMatrix, double)","u":"add(org.flag4j.arrays.sparse.CooMatrix,double)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"add(CooTensor)","u":"add(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"add(CooTensor)","u":"add(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"add(CooTensor)","u":"add(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"add(CooTensor)","u":"add(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"add(CooTensor)","u":"add(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseOperations","l":"add(CooTensor, CNumber)","u":"add(org.flag4j.arrays.sparse.CooTensor,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealCooTensorOperations","l":"add(CooTensor, CooTensor)","u":"add(org.flag4j.arrays.sparse.CooTensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseTensorOperations","l":"add(CooTensor, double)","u":"add(org.flag4j.arrays.sparse.CooTensor,double)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"add(CooVector)","u":"add(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"add(CooVector)","u":"add(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"add(CooVector)","u":"add(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"add(CooVector)","u":"add(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"add(CooVector)","u":"add(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseVectorOperations","l":"add(CooVector, CNumber)","u":"add(org.flag4j.arrays.sparse.CooVector,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseVectorOperations","l":"add(CooVector, CooVector)","u":"add(org.flag4j.arrays.sparse.CooVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseVectorOperations","l":"add(CooVector, double)","u":"add(org.flag4j.arrays.sparse.CooVector,double)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"add(CsrCMatrix)","u":"add(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"add(CsrCMatrix)","u":"add(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"add(CsrCMatrix)","u":"add(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"add(CsrCMatrix)","u":"add(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"add(CsrCMatrix)","u":"add(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"add(CsrCMatrix)","u":"add(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"add(CsrCMatrix)","u":"add(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"add(CsrMatrix)","u":"add(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"add(CsrMatrix)","u":"add(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"add(CsrMatrix)","u":"add(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"add(CsrMatrix)","u":"add(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"add(CsrMatrix)","u":"add(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"add(CsrMatrix)","u":"add(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"add(CsrMatrix)","u":"add(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"add(CTensor)","u":"add(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"add(CTensor)","u":"add(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"add(CTensor)","u":"add(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"add(CTensor)","u":"add(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseOperations","l":"add(CTensor, CooCTensor)","u":"add(org.flag4j.arrays.dense.CTensor,org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseOperations","l":"add(CTensor, CooTensor)","u":"add(org.flag4j.arrays.dense.CTensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"add(CVector)","u":"add(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"add(CVector)","u":"add(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"add(CVector)","u":"add(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"add(CVector)","u":"add(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseVectorOperations","l":"add(CVector, CooCVector)","u":"add(org.flag4j.arrays.dense.CVector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"add(CVector, CooVector)","u":"add(org.flag4j.arrays.dense.CVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"add(double)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"add(double)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"add(double)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"add(double)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"add(double)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"add(double)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"add(double)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"add(double)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"add(double)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"add(double)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"add(double)"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"add(double)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"add(double[], CNumber)","u":"add(double[],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseVectorOperations","l":"add(double[], CNumber)","u":"add(double[],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseOperations","l":"add(double[], double)","u":"add(double[],double)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseOperations","l":"add(double[], Shape, double[], Shape)","u":"add(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"add(Matrix)","u":"add(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"add(Matrix)","u":"add(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"add(Matrix)","u":"add(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"add(Matrix)","u":"add(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"add(Matrix)","u":"add(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"add(Matrix)","u":"add(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"add(Matrix, CooCMatrix)","u":"add(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixOperations","l":"add(Matrix, CooMatrix)","u":"add(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"add(T)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"add(T)"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"add(T)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"add(Tensor)","u":"add(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"add(Tensor)","u":"add(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"add(Tensor)","u":"add(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"add(Tensor)","u":"add(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseOperations","l":"add(Tensor, CooCTensor)","u":"add(org.flag4j.arrays.dense.Tensor,org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseTensorOperations","l":"add(Tensor, CooTensor)","u":"add(org.flag4j.arrays.dense.Tensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"add(Vector)","u":"add(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"add(Vector)","u":"add(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"add(Vector)","u":"add(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"add(Vector)","u":"add(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"add(Vector, CooCVector)","u":"add(org.flag4j.arrays.dense.Vector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseVectorOperations","l":"add(Vector, CooVector)","u":"add(org.flag4j.arrays.dense.Vector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixOperations","l":"addEq(CMatrix, CooCMatrix)","u":"addEq(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"addEq(CMatrix, CooMatrix)","u":"addEq(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"addEq(CNumber)","u":"addEq(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"addEq(CNumber[], CNumber)","u":"addEq(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseOperations","l":"addEq(CNumber[], double)","u":"addEq(org.flag4j.complex_numbers.CNumber[],double)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"addEq(CNumber[], Shape, CNumber[], Shape)","u":"addEq(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseOperations","l":"addEq(CNumber[], Shape, double[], Shape)","u":"addEq(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"addEq(CooCMatrix)","u":"addEq(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"addEq(CooCTensor)","u":"addEq(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"addEq(CooCTensor)","u":"addEq(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.core","c":"ComplexTensorExclusiveMixin","l":"addEq(CooCTensor)","u":"addEq(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"addEq(CooCVector)","u":"addEq(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"addEq(CooMatrix)","u":"addEq(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"addEq(CooMatrix)","u":"addEq(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"addEq(CooMatrix)","u":"addEq(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"addEq(CooTensor)","u":"addEq(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"addEq(CooTensor)","u":"addEq(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"addEq(CooVector)","u":"addEq(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"addEq(CooVector)","u":"addEq(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core.dense_base","c":"DenseVectorMixin","l":"addEq(CooVector)","u":"addEq(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseOperations","l":"addEq(CTensor, CooCTensor)","u":"addEq(org.flag4j.arrays.dense.CTensor,org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseOperations","l":"addEq(CTensor, CooTensor)","u":"addEq(org.flag4j.arrays.dense.CTensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseVectorOperations","l":"addEq(CVector, CooCVector)","u":"addEq(org.flag4j.arrays.dense.CVector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"addEq(CVector, CooVector)","u":"addEq(org.flag4j.arrays.dense.CVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"addEq(Double)","u":"addEq(java.lang.Double)"},{"p":"org.flag4j.core.dense_base","c":"DenseMixin","l":"addEq(Double)","u":"addEq(java.lang.Double)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"addEq(Double)","u":"addEq(java.lang.Double)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseOperations","l":"addEq(double[], double)","u":"addEq(double[],double)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseOperations","l":"addEq(double[], Shape, double[], Shape)","u":"addEq(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"addEq(Matrix)","u":"addEq(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"addEq(Matrix)","u":"addEq(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixOperations","l":"addEq(Matrix, CooMatrix)","u":"addEq(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"addEq(T)"},{"p":"org.flag4j.core.dense_base","c":"DenseTensorBase","l":"addEq(T)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"addEq(T)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"addEq(Tensor)","u":"addEq(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"addEq(Tensor)","u":"addEq(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.core","c":"ComplexTensorExclusiveMixin","l":"addEq(Tensor)","u":"addEq(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.core.dense_base","c":"DenseTensorMixin","l":"addEq(Tensor)","u":"addEq(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseTensorOperations","l":"addEq(Tensor, CooTensor)","u":"addEq(org.flag4j.arrays.dense.Tensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"addEq(Vector)","u":"addEq(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core.dense_base","c":"DenseVectorMixin","l":"addEq(Vector)","u":"addEq(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseVectorOperations","l":"addEq(Vector, CooVector)","u":"addEq(org.flag4j.arrays.dense.Vector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core.dense_base","c":"DenseMixin","l":"addEq(X)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"addInv()"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"addNotInCol(List, List, List, CooMatrix, int)","u":"addNotInCol(java.util.List,java.util.List,java.util.List,org.flag4j.arrays.sparse.CooMatrix,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixOperations","l":"addToEachCol(CooCMatrix, CooCVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixOperations","l":"addToEachCol(CooCMatrix, CooVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixOperations","l":"addToEachCol(CooCMatrix, CVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"addToEachCol(CooCMatrix, Vector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"addToEachCol(CooCVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"addToEachCol(CooCVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"addToEachCol(CooCVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"addToEachCol(CooCVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"addToEachCol(CooCVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"addToEachCol(CooCVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"addToEachCol(CooCVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixOperations","l":"addToEachCol(CooMatrix, CooCVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixOperations","l":"addToEachCol(CooMatrix, CooVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"addToEachCol(CooMatrix, CVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixOperations","l":"addToEachCol(CooMatrix, Vector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"addToEachCol(CooVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"addToEachCol(CooVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"addToEachCol(CooVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"addToEachCol(CooVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"addToEachCol(CooVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"addToEachCol(CooVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"addToEachCol(CooVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrOperations","l":"addToEachCol(CsrCMatrix, CooCVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrOperations","l":"addToEachCol(CsrCMatrix, CooVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrOperations","l":"addToEachCol(CsrCMatrix, CVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrOperations","l":"addToEachCol(CsrCMatrix, Vector)","u":"addToEachCol(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrOperations","l":"addToEachCol(CsrMatrix, CooCVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrOperations","l":"addToEachCol(CsrMatrix, CooVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrOperations","l":"addToEachCol(CsrMatrix, CVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrOperations","l":"addToEachCol(CsrMatrix, Vector)","u":"addToEachCol(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"addToEachCol(CVector)","u":"addToEachCol(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"addToEachCol(CVector)","u":"addToEachCol(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"addToEachCol(CVector)","u":"addToEachCol(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"addToEachCol(CVector)","u":"addToEachCol(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"addToEachCol(CVector)","u":"addToEachCol(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"addToEachCol(CVector)","u":"addToEachCol(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"addToEachCol(CVector)","u":"addToEachCol(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"addToEachCol(Vector)","u":"addToEachCol(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"addToEachCol(Vector)","u":"addToEachCol(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"addToEachCol(Vector)","u":"addToEachCol(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"addToEachCol(Vector)","u":"addToEachCol(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"addToEachCol(Vector)","u":"addToEachCol(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"addToEachCol(Vector)","u":"addToEachCol(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"addToEachCol(Vector)","u":"addToEachCol(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixOperations","l":"addToEachRow(CooCMatrix, CooCVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixOperations","l":"addToEachRow(CooCMatrix, CooVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixOperations","l":"addToEachRow(CooCMatrix, CVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"addToEachRow(CooCMatrix, Vector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"addToEachRow(CooCVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"addToEachRow(CooCVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"addToEachRow(CooCVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"addToEachRow(CooCVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"addToEachRow(CooCVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"addToEachRow(CooCVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"addToEachRow(CooCVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixOperations","l":"addToEachRow(CooMatrix, CooCVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixOperations","l":"addToEachRow(CooMatrix, CooVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"addToEachRow(CooMatrix, CVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixOperations","l":"addToEachRow(CooMatrix, Vector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"addToEachRow(CooVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"addToEachRow(CooVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"addToEachRow(CooVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"addToEachRow(CooVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"addToEachRow(CooVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"addToEachRow(CooVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"addToEachRow(CooVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrOperations","l":"addToEachRow(CsrCMatrix, CooCVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrOperations","l":"addToEachRow(CsrCMatrix, CooVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrOperations","l":"addToEachRow(CsrCMatrix, CVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrOperations","l":"addToEachRow(CsrCMatrix, Vector)","u":"addToEachRow(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrOperations","l":"addToEachRow(CsrMatrix, CooCVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrOperations","l":"addToEachRow(CsrMatrix, CooVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrOperations","l":"addToEachRow(CsrMatrix, CVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrOperations","l":"addToEachRow(CsrMatrix, Vector)","u":"addToEachRow(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"addToEachRow(CVector)","u":"addToEachRow(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"addToEachRow(CVector)","u":"addToEachRow(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"addToEachRow(CVector)","u":"addToEachRow(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"addToEachRow(CVector)","u":"addToEachRow(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"addToEachRow(CVector)","u":"addToEachRow(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"addToEachRow(CVector)","u":"addToEachRow(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"addToEachRow(CVector)","u":"addToEachRow(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"addToEachRow(Vector)","u":"addToEachRow(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"addToEachRow(Vector)","u":"addToEachRow(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"addToEachRow(Vector)","u":"addToEachRow(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"addToEachRow(Vector)","u":"addToEachRow(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"addToEachRow(Vector)","u":"addToEachRow(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"addToEachRow(Vector)","u":"addToEachRow(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"addToEachRow(Vector)","u":"addToEachRow(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.common.complex","c":"AggregateComplex","l":"AggregateComplex()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.complex","c":"AggregateDenseComplex","l":"AggregateDenseComplex()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real","c":"AggregateDenseReal","l":"AggregateDenseReal()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.common.real","c":"AggregateReal","l":"AggregateReal()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations","c":"TransposeDispatcher.Algorithm","l":"Algorithm()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher","l":"algorithmMap"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"AlgorithmName()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"AlgorithmNames()","u":"%3Cinit%3E()"},{"p":"org.flag4j.util","c":"Axis2D","l":"allAxes()"},{"p":"org.flag4j.operations.common.complex","c":"ComplexProperties","l":"allClose(CNumber[], CNumber[])","u":"allClose(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.common.complex","c":"ComplexProperties","l":"allClose(CNumber[], CNumber[], double, double)","u":"allClose(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber[],double,double)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"allClose(CooCMatrix, double, double)","u":"allClose(org.flag4j.arrays.sparse.CooCMatrix,double,double)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"allClose(CooCTensor, double, double)","u":"allClose(org.flag4j.arrays.sparse.CooCTensor,double,double)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"allClose(CooCVector, double, double)","u":"allClose(org.flag4j.arrays.sparse.CooCVector,double,double)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"allClose(CooMatrix, double, double)","u":"allClose(org.flag4j.arrays.sparse.CooMatrix,double,double)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"allClose(CooTensor, double, double)","u":"allClose(org.flag4j.arrays.sparse.CooTensor,double,double)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"allClose(CooVector, double, double)","u":"allClose(org.flag4j.arrays.sparse.CooVector,double,double)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrEquals","l":"allClose(CsrCMatrix, CsrCMatrix, double, double)","u":"allClose(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CsrCMatrix,double,double)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"allClose(CsrCMatrix, double, double)","u":"allClose(org.flag4j.arrays.sparse.CsrCMatrix,double,double)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrEquals","l":"allClose(CsrMatrix, CsrMatrix, double, double)","u":"allClose(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CsrMatrix,double,double)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"allClose(CsrMatrix, double, double)","u":"allClose(org.flag4j.arrays.sparse.CsrMatrix,double,double)"},{"p":"org.flag4j.operations.common.real","c":"RealProperties","l":"allClose(double[], double[])","u":"allClose(double[],double[])"},{"p":"org.flag4j.operations.common.real","c":"RealProperties","l":"allClose(double[], double[], double, double)","u":"allClose(double[],double[],double,double)"},{"p":"org.flag4j.core","c":"TensorBase","l":"allClose(T)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"allClose(T, double, double)","u":"allClose(T,double,double)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"allClose(T, double, double)","u":"allClose(T,double,double)"},{"p":"org.flag4j.core","c":"TensorBase","l":"allClose(T, double, double)","u":"allClose(T,double,double)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseEquals","l":"allCloseMatrix(CooCMatrix, CooCMatrix, double, double)","u":"allCloseMatrix(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooCMatrix,double,double)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseEquals","l":"allCloseMatrix(CooMatrix, CooMatrix, double, double)","u":"allCloseMatrix(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooMatrix,double,double)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseEquals","l":"allCloseTensor(CooCTensor, CooCTensor, double, double)","u":"allCloseTensor(org.flag4j.arrays.sparse.CooCTensor,org.flag4j.arrays.sparse.CooCTensor,double,double)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseEquals","l":"allCloseTensor(CooTensor, CooTensor, double, double)","u":"allCloseTensor(org.flag4j.arrays.sparse.CooTensor,org.flag4j.arrays.sparse.CooTensor,double,double)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseEquals","l":"allCloseVector(CooCVector, CooCVector, double, double)","u":"allCloseVector(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.sparse.CooCVector,double,double)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseEquals","l":"allCloseVector(CooVector, CooVector, double, double)","u":"allCloseVector(org.flag4j.arrays.sparse.CooVector,org.flag4j.arrays.sparse.CooVector,double,double)"},{"p":"org.flag4j.operations","c":"RealDenseTensorBinaryOperation","l":"apply(double[], Shape, double[], Shape)","u":"apply(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.csr.complex","c":"ComplexCsrDenseOperations","l":"applyBinOpp(CMatrix, CsrCMatrix, BinaryOperator)","u":"applyBinOpp(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CsrCMatrix,java.util.function.BinaryOperator)"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseOperations","l":"applyBinOpp(CMatrix, CsrMatrix, BiFunction)","u":"applyBinOpp(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CsrMatrix,java.util.function.BiFunction)"},{"p":"org.flag4j.operations.dense_sparse.csr.complex","c":"ComplexCsrDenseOperations","l":"applyBinOpp(CsrCMatrix, CMatrix, BinaryOperator, UnaryOperator)","u":"applyBinOpp(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.dense.CMatrix,java.util.function.BinaryOperator,java.util.function.UnaryOperator)"},{"p":"org.flag4j.operations.dense_sparse.csr.complex","c":"ComplexCsrDenseOperations","l":"applyBinOpp(CsrCMatrix, CNumber, BinaryOperator, UnaryOperator)","u":"applyBinOpp(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.complex_numbers.CNumber,java.util.function.BinaryOperator,java.util.function.UnaryOperator)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrOperations","l":"applyBinOpp(CsrCMatrix, CsrCMatrix, BinaryOperator, UnaryOperator)","u":"applyBinOpp(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CsrCMatrix,java.util.function.BinaryOperator,java.util.function.UnaryOperator)"},{"p":"org.flag4j.operations.sparse.csr.real_complex","c":"RealComplexCsrOperations","l":"applyBinOpp(CsrCMatrix, CsrMatrix, BiFunction, UnaryOperator)","u":"applyBinOpp(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CsrMatrix,java.util.function.BiFunction,java.util.function.UnaryOperator)"},{"p":"org.flag4j.operations.dense_sparse.csr.complex","c":"ComplexCsrDenseOperations","l":"applyBinOpp(CsrCMatrix, double, BinaryOperator, UnaryOperator)","u":"applyBinOpp(org.flag4j.arrays.sparse.CsrCMatrix,double,java.util.function.BinaryOperator,java.util.function.UnaryOperator)"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseOperations","l":"applyBinOpp(CsrCMatrix, Matrix, BiFunction, UnaryOperator)","u":"applyBinOpp(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.dense.Matrix,java.util.function.BiFunction,java.util.function.UnaryOperator)"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseOperations","l":"applyBinOpp(CsrMatrix, CMatrix, BiFunction, UnaryOperator)","u":"applyBinOpp(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.CMatrix,java.util.function.BiFunction,java.util.function.UnaryOperator)"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseOperations","l":"applyBinOpp(CsrMatrix, CNumber, BiFunction, UnaryOperator)","u":"applyBinOpp(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.complex_numbers.CNumber,java.util.function.BiFunction,java.util.function.UnaryOperator)"},{"p":"org.flag4j.operations.sparse.csr.real_complex","c":"RealComplexCsrOperations","l":"applyBinOpp(CsrMatrix, CsrCMatrix, BiFunction, UnaryOperator)","u":"applyBinOpp(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CsrCMatrix,java.util.function.BiFunction,java.util.function.UnaryOperator)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrOperations","l":"applyBinOpp(CsrMatrix, CsrMatrix, BinaryOperator, UnaryOperator)","u":"applyBinOpp(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CsrMatrix,java.util.function.BinaryOperator,java.util.function.UnaryOperator)"},{"p":"org.flag4j.operations.dense_sparse.csr.real","c":"RealCsrDenseOperations","l":"applyBinOpp(CsrMatrix, double, BinaryOperator, UnaryOperator)","u":"applyBinOpp(org.flag4j.arrays.sparse.CsrMatrix,double,java.util.function.BinaryOperator,java.util.function.UnaryOperator)"},{"p":"org.flag4j.operations.dense_sparse.csr.real","c":"RealCsrDenseOperations","l":"applyBinOpp(CsrMatrix, Matrix, BinaryOperator, UnaryOperator)","u":"applyBinOpp(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.Matrix,java.util.function.BinaryOperator,java.util.function.UnaryOperator)"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseOperations","l":"applyBinOpp(Matrix, CsrCMatrix, BiFunction)","u":"applyBinOpp(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CsrCMatrix,java.util.function.BiFunction)"},{"p":"org.flag4j.operations.dense_sparse.csr.real","c":"RealCsrDenseOperations","l":"applyBinOpp(Matrix, CsrMatrix, BinaryOperator)","u":"applyBinOpp(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CsrMatrix,java.util.function.BinaryOperator)"},{"p":"org.flag4j.operations.dense_sparse.csr.complex","c":"ComplexCsrDenseOperations","l":"applyBinOppToSparse(CMatrix, CsrCMatrix, BinaryOperator)","u":"applyBinOppToSparse(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CsrCMatrix,java.util.function.BinaryOperator)"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseOperations","l":"applyBinOppToSparse(CMatrix, CsrMatrix, BiFunction)","u":"applyBinOppToSparse(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CsrMatrix,java.util.function.BiFunction)"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseOperations","l":"applyBinOppToSparse(CsrMatrix, CMatrix, BiFunction)","u":"applyBinOppToSparse(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.CMatrix,java.util.function.BiFunction)"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseOperations","l":"applyBinOppToSparse(Matrix, CsrCMatrix, BiFunction)","u":"applyBinOppToSparse(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CsrCMatrix,java.util.function.BiFunction)"},{"p":"org.flag4j.operations.dense_sparse.csr.real","c":"RealCsrDenseOperations","l":"applyBinOppToSparse(Matrix, CsrMatrix, BinaryOperator)","u":"applyBinOppToSparse(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CsrMatrix,java.util.function.BinaryOperator)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"applyDoubleShiftReflector(int, boolean)","u":"applyDoubleShiftReflector(int,boolean)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"applyDoubleShiftReflector(int, boolean)","u":"applyDoubleShiftReflector(int,boolean)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"applyReflector(int, int)","u":"applyReflector(int,int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"applyReflector(int, int)","u":"applyReflector(int,int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"applySingleShiftReflector(int, boolean)","u":"applySingleShiftReflector(int,boolean)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"applySingleShiftReflector(int, boolean)","u":"applySingleShiftReflector(int,boolean)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"applyTransform(CNumber[], Function)","u":"applyTransform(org.flag4j.complex_numbers.CNumber[],java.util.function.Function)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"applyTransform(double[], Function)","u":"applyTransform(double[],java.util.function.Function)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"applyTransform(double[], UnaryOperator)","u":"applyTransform(double[],java.util.function.UnaryOperator)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"applyTransform(T[], UnaryOperator)","u":"applyTransform(T[],java.util.function.UnaryOperator)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"applyUpdate"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"arg(CNumber)","u":"arg(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"argAsCNumber(CNumber)","u":"argAsCNumber(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.real","c":"AggregateDenseReal","l":"argEq(double[], double)","u":"argEq(double[],double)"},{"p":"org.flag4j.operations.dense.real","c":"AggregateDenseReal","l":"argEq(int[], int)","u":"argEq(int[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"argMax()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"argMax()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"argMax()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"argMax()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"argMax()"},{"p":"org.flag4j.core","c":"TensorPropertiesMixin","l":"argMax()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"argMax(CNumber...)","u":"argMax(org.flag4j.complex_numbers.CNumber...)"},{"p":"org.flag4j.operations.dense.complex","c":"AggregateDenseComplex","l":"argMax(CNumber[])","u":"argMax(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.real","c":"AggregateDenseReal","l":"argMax(double[])"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"argMaxReal(CNumber...)","u":"argMaxReal(org.flag4j.complex_numbers.CNumber...)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"argMin()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"argMin()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"argMin()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"argMin()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"argMin()"},{"p":"org.flag4j.core","c":"TensorPropertiesMixin","l":"argMin()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"argMin(CNumber...)","u":"argMin(org.flag4j.complex_numbers.CNumber...)"},{"p":"org.flag4j.operations.dense.complex","c":"AggregateDenseComplex","l":"argMin(CNumber[])","u":"argMin(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.real","c":"AggregateDenseReal","l":"argMin(double[])"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"argMinReal(CNumber...)","u":"argMinReal(org.flag4j.complex_numbers.CNumber...)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"ARRAY_LENGTHS_MISMATCH_ERR"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"arraycopy(double[], int, CNumber[], int, int)","u":"arraycopy(double[],int,org.flag4j.complex_numbers.CNumber[],int,int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"ArrayUtils()","u":"%3Cinit%3E()"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"asDouble(int[], double[])","u":"asDouble(int[],double[])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"asDouble(Integer[], double[])","u":"asDouble(java.lang.Integer[],double[])"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"asin(CNumber)","u":"asin(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"asin(double)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertArrayLengthsEq(int...)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertAxis2D(int)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertBroadcastable(Shape, Shape)","u":"assertBroadcastable(org.flag4j.core.Shape,org.flag4j.core.Shape)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertEquals(double...)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertEquals(int...)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertEqualShape(Shape, Shape)","u":"assertEqualShape(org.flag4j.core.Shape,org.flag4j.core.Shape)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertGreaterEq(double, double, String)","u":"assertGreaterEq(double,double,java.lang.String)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertGreaterEq(double, double...)","u":"assertGreaterEq(double,double...)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertGreaterEq(int, int)","u":"assertGreaterEq(int,int)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertGreaterEq(int, int...)","u":"assertGreaterEq(int,int...)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertIndexInBounds(int, int...)","u":"assertIndexInBounds(int,int...)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertInRange(double, double, double, String)","u":"assertInRange(double,double,double,java.lang.String)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertLessEq(BigInteger, int, String)","u":"assertLessEq(java.math.BigInteger,int,java.lang.String)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertLessEq(double, double, String)","u":"assertLessEq(double,double,java.lang.String)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertLessEq(double, double...)","u":"assertLessEq(double,double...)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertLessEq(int, int...)","u":"assertLessEq(int,int...)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertMatMultShapes(Shape, Shape)","u":"assertMatMultShapes(org.flag4j.core.Shape,org.flag4j.core.Shape)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertNonNegative(int)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertNotEquals(double, double)","u":"assertNotEquals(double,double)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertPermutation(int...)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertPositive(int)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertRank(int, Shape)","u":"assertRank(int,org.flag4j.core.Shape)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertSquare(Shape)","u":"assertSquare(org.flag4j.core.Shape)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertSquareMatrix(int, int)","u":"assertSquareMatrix(int,int)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertSquareMatrix(Shape)","u":"assertSquareMatrix(org.flag4j.core.Shape)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertTotalEntriesEq(double[][], CNumber[])","u":"assertTotalEntriesEq(double[][],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertTotalEntriesEq(double[][], double[])","u":"assertTotalEntriesEq(double[][],double[])"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertTotalEntriesEq(int[][], CNumber[])","u":"assertTotalEntriesEq(int[][],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertTotalEntriesEq(int[][], double[])","u":"assertTotalEntriesEq(int[][],double[])"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertTotalEntriesEq(Object[][], CNumber[])","u":"assertTotalEntriesEq(java.lang.Object[][],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertTotalEntriesEq(Object[][], double[])","u":"assertTotalEntriesEq(java.lang.Object[][],double[])"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertValidIndex(Shape, int...)","u":"assertValidIndex(org.flag4j.core.Shape,int...)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertValidIndices(int, int...)","u":"assertValidIndices(int,int...)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"atan(CNumber)","u":"atan(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"atan(double)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"atan2(CNumber)","u":"atan2(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"atan2AsCNumber(CNumber)","u":"atan2AsCNumber(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"augment(CMatrix)","u":"augment(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"augment(CMatrix)","u":"augment(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"augment(CMatrix)","u":"augment(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"augment(CMatrix)","u":"augment(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"augment(CMatrix)","u":"augment(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"augment(CMatrix)","u":"augment(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"augment(CMatrix)","u":"augment(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"augment(CooCMatrix)","u":"augment(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"augment(CooCMatrix)","u":"augment(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"augment(CooCMatrix)","u":"augment(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"augment(CooCMatrix)","u":"augment(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"augment(CooCMatrix)","u":"augment(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"augment(CooCMatrix)","u":"augment(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"augment(CooCMatrix)","u":"augment(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"augment(CooCVector)","u":"augment(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"augment(CooCVector)","u":"augment(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"augment(CooCVector)","u":"augment(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"augment(CooCVector)","u":"augment(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"augment(CooCVector)","u":"augment(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"augment(CooCVector)","u":"augment(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"augment(CooCVector)","u":"augment(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"augment(CooMatrix)","u":"augment(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"augment(CooMatrix)","u":"augment(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"augment(CooMatrix)","u":"augment(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"augment(CooMatrix)","u":"augment(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"augment(CooMatrix)","u":"augment(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"augment(CooMatrix)","u":"augment(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"augment(CooMatrix)","u":"augment(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"augment(CooVector)","u":"augment(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"augment(CooVector)","u":"augment(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"augment(CooVector)","u":"augment(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"augment(CooVector)","u":"augment(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"augment(CooVector)","u":"augment(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"augment(CooVector)","u":"augment(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"augment(CooVector)","u":"augment(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"augment(CsrCMatrix)","u":"augment(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"augment(CsrCMatrix)","u":"augment(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"augment(CsrMatrix)","u":"augment(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"augment(CsrMatrix)","u":"augment(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"augment(CVector)","u":"augment(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"augment(CVector)","u":"augment(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"augment(CVector)","u":"augment(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"augment(CVector)","u":"augment(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"augment(CVector)","u":"augment(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"augment(CVector)","u":"augment(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"augment(CVector)","u":"augment(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"augment(Matrix)","u":"augment(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"augment(Matrix)","u":"augment(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"augment(Matrix)","u":"augment(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"augment(Matrix)","u":"augment(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"augment(Matrix)","u":"augment(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"augment(Matrix)","u":"augment(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"augment(Matrix)","u":"augment(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"augment(Vector)","u":"augment(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"augment(Vector)","u":"augment(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"augment(Vector)","u":"augment(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"augment(Vector)","u":"augment(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"augment(Vector)","u":"augment(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"augment(Vector)","u":"augment(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"augment(Vector)","u":"augment(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"AXIS_ERR"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"AXIS_ERR_RANGE"},{"p":"org.flag4j.util","c":"Axis2D","l":"Axis2D()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactSolver","l":"backSolver"},{"p":"org.flag4j.linalg.solvers.lstsq","c":"LstsqSolver","l":"backSolver"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"BackSolver","l":"BackSolver(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"BLOCKED"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"BLOCKED"},{"p":"org.flag4j.operations","c":"TransposeDispatcher.Algorithm","l":"BLOCKED"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"BLOCKED_REORDERED"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"BLOCKED_REORDERED"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"BLOCKED_VECTOR"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"BLOCKED_VECTOR"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultiplication","l":"blocked(CNumber[], Shape, CNumber[], Shape)","u":"blocked(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"blocked(CNumber[], Shape, double[], Shape)","u":"blocked(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"blocked(double[], Shape, CNumber[], Shape)","u":"blocked(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultiplication","l":"blocked(double[], Shape, double[], Shape)","u":"blocked(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseTranspose","l":"blockedIntMatrix(int[][])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"blockedMatrix(CNumber[], int, int)","u":"blockedMatrix(org.flag4j.complex_numbers.CNumber[],int,int)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseTranspose","l":"blockedMatrix(double[], int, int)","u":"blockedMatrix(double[],int,int)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"blockedMatrixConcurrent(CNumber[], int, int)","u":"blockedMatrixConcurrent(org.flag4j.complex_numbers.CNumber[],int,int)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseTranspose","l":"blockedMatrixConcurrent(double[], int, int)","u":"blockedMatrixConcurrent(double[],int,int)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"blockedMatrixConcurrentHerm(CNumber[], int, int)","u":"blockedMatrixConcurrentHerm(org.flag4j.complex_numbers.CNumber[],int,int)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"blockedMatrixHerm(CNumber[], int, int)","u":"blockedMatrixHerm(org.flag4j.complex_numbers.CNumber[],int,int)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultiplication","l":"blockedReordered(CNumber[], Shape, CNumber[], Shape)","u":"blockedReordered(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"blockedReordered(CNumber[], Shape, double[], Shape)","u":"blockedReordered(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"blockedReordered(double[], Shape, CNumber[], Shape)","u":"blockedReordered(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultiplication","l":"blockedReordered(double[], Shape, double[], Shape)","u":"blockedReordered(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixMultiplication","l":"blockedVector(CNumber[], Shape, CNumber[], int[])","u":"blockedVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultiplication","l":"blockedVector(CNumber[], Shape, CNumber[], Shape)","u":"blockedVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"blockedVector(CNumber[], Shape, double[], int[])","u":"blockedVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],int[])"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"blockedVector(CNumber[], Shape, double[], Shape)","u":"blockedVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"blockedVector(double[], Shape, CNumber[], int[])","u":"blockedVector(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[])"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"blockedVector(double[], Shape, CNumber[], Shape)","u":"blockedVector(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixMultiplication","l":"blockedVector(double[], Shape, double[], int[])","u":"blockedVector(double[],org.flag4j.core.Shape,double[],int[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultiplication","l":"blockedVector(double[], Shape, double[], Shape)","u":"blockedVector(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.concurrency","c":"Configurations","l":"blockSize"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"boxed(double[])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"boxed(int[])"},{"p":"org.flag4j.io","c":"PrintOptions","l":"center"},{"p":"org.flag4j.util","c":"StringUtils","l":"center(String, int)","u":"center(java.lang.String,int)"},{"p":"org.flag4j.util","c":"StringUtils","l":"center(String, int, String)","u":"center(java.lang.String,int,java.lang.String)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"checkConvergence(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"checkConvergence(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"checkConvergence(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"checkFinite"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"BackSolver","l":"checkParams(T, int)","u":"checkParams(T,int)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ForwardSolver","l":"checkParams(T, int)","u":"checkParams(T,int)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"BackSolver","l":"checkSingular(double, int, int)","u":"checkSingular(double,int,int)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ForwardSolver","l":"checkSingular(double, int, int)","u":"checkSingular(double,int,int)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactTensorSolver","l":"checkSize(int, int)","u":"checkSize(int,int)"},{"p":"org.flag4j.linalg.decompositions.chol","c":"Cholesky","l":"Cholesky(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"chooseAlgorithm(Shape)","u":"chooseAlgorithm(org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"chooseAlgorithmComplex(Shape)","u":"chooseAlgorithmComplex(org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"chooseAlgorithmComplex(Shape, Shape)","u":"chooseAlgorithmComplex(org.flag4j.core.Shape,org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"chooseAlgorithmComplexTranspose(Shape)","u":"chooseAlgorithmComplexTranspose(org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"chooseAlgorithmComplexVector(Shape)","u":"chooseAlgorithmComplexVector(org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"chooseAlgorithmHermitian(Shape)","u":"chooseAlgorithmHermitian(org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"chooseAlgorithmRealComplex(Shape, Shape)","u":"chooseAlgorithmRealComplex(org.flag4j.core.Shape,org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"chooseAlgorithmRealComplexTranspose(Shape)","u":"chooseAlgorithmRealComplexTranspose(org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"chooseAlgorithmRealComplexVector(Shape)","u":"chooseAlgorithmRealComplexVector(org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"chooseAlgorithmRealVector(Shape)","u":"chooseAlgorithmRealVector(org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"chooseAlgorithmTensor(int)"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"chooseAlgorithmTensor(int, int)","u":"chooseAlgorithmTensor(int,int)"},{"p":"org.flag4j.io","c":"TensorInputStream","l":"close()"},{"p":"org.flag4j.io","c":"TensorOutputStream","l":"close()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(CMatrix)","u":"%3Cinit%3E(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(CNumber[][])","u":"%3Cinit%3E(org.flag4j.complex_numbers.CNumber[][])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(double[][])","u":"%3Cinit%3E(double[][])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(int)","u":"%3Cinit%3E(int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(int, CNumber)","u":"%3Cinit%3E(int,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(int, double)","u":"%3Cinit%3E(int,double)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(int, int)","u":"%3Cinit%3E(int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(int, int, CNumber)","u":"%3Cinit%3E(int,int,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(int, int, CNumber[])","u":"%3Cinit%3E(int,int,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(int, int, double)","u":"%3Cinit%3E(int,int,double)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(int[][])","u":"%3Cinit%3E(int[][])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(Matrix)","u":"%3Cinit%3E(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(Shape)","u":"%3Cinit%3E(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(Shape, CNumber)","u":"%3Cinit%3E(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(Shape, CNumber...)","u":"%3Cinit%3E(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber...)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(Shape, double)","u":"%3Cinit%3E(org.flag4j.core.Shape,double)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(Shape, double...)","u":"%3Cinit%3E(org.flag4j.core.Shape,double...)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(String[][])","u":"%3Cinit%3E(java.lang.String[][])"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"CNumber(double)","u":"%3Cinit%3E(double)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"CNumber(double, double)","u":"%3Cinit%3E(double,double)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"CNumber(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"org.flag4j.complex_numbers","c":"CNumberLexer","l":"CNumberLexer(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"org.flag4j.complex_numbers","c":"CNumberParser","l":"CNumberParser()","u":"%3Cinit%3E()"},{"p":"org.flag4j.complex_numbers","c":"CNumberToken","l":"CNumberToken(String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String)"},{"p":"org.flag4j.complex_numbers","c":"CNumberUtils","l":"CNumberUtils()","u":"%3Cinit%3E()"},{"p":"org.flag4j.util","c":"Axis2D","l":"COL"},{"p":"org.flag4j.util","c":"Axis2D","l":"col()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"colIndices"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"colIndices"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"colIndices"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"colIndices"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"colSwaps"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"compareTo(CNumber)","u":"compareTo(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"compareToReal(CNumber)","u":"compareToReal(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"compareToReal(double)"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"COMPLEX_BLOCKED_THRESHOLD"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"COMPLEX_RNG"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexBackSolver","l":"ComplexBackSolver()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexBackSolver","l":"ComplexBackSolver(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.linalg.decompositions.chol","c":"ComplexCholesky","l":"ComplexCholesky()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.chol","c":"ComplexCholesky","l":"ComplexCholesky(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexCooTensorDot","l":"ComplexCooTensorDot()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexCooTensorOperations","l":"ComplexCooTensorOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.csr.complex","c":"ComplexCsrDenseMatrixMultiplication","l":"ComplexCsrDenseMatrixMultiplication()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.csr.complex","c":"ComplexCsrDenseOperations","l":"ComplexCsrDenseOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrEquals","l":"ComplexCsrEquals()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrManipulations","l":"ComplexCsrManipulations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrMatrixMultiplication","l":"ComplexCsrMatrixMultiplication()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrOperations","l":"ComplexCsrOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrProperties","l":"ComplexCsrProperties()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseDeterminant","l":"ComplexDenseDeterminant()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseElemDiv","l":"ComplexDenseElemDiv()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseElemMult","l":"ComplexDenseElemMult()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseEquals","l":"ComplexDenseEquals()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.common","c":"TensorEquals","l":"complexDenseLookUp"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultiplication","l":"ComplexDenseMatrixMultiplication()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultTranspose","l":"ComplexDenseMatrixMultTranspose()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"ComplexDenseOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseProperties","l":"ComplexDenseProperties()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseSetOperations","l":"ComplexDenseSetOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseEquals","l":"ComplexDenseSparseEquals()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixMultiplication","l":"ComplexDenseSparseMatrixMultiplication()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixMultTranspose","l":"ComplexDenseSparseMatrixMultTranspose()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixOperations","l":"ComplexDenseSparseMatrixOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseOperations","l":"ComplexDenseSparseOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseVectorOperations","l":"ComplexDenseSparseVectorOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"ComplexDenseTensorBase(Shape, CNumber[])","u":"%3Cinit%3E(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTensorDot","l":"ComplexDenseTensorDot()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"ComplexDenseTranspose()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseVectorOperations","l":"ComplexDenseVectorOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.solvers.exact","c":"ComplexExactSolver","l":"ComplexExactSolver()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.solvers.exact","c":"ComplexExactTensorSolver","l":"ComplexExactTensorSolver()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexForwardSolver","l":"ComplexForwardSolver()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexForwardSolver","l":"ComplexForwardSolver(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexForwardSolver","l":"ComplexForwardSolver(boolean, boolean)","u":"%3Cinit%3E(boolean,boolean)"},{"p":"org.flag4j.linalg.decompositions.hess","c":"ComplexHess","l":"ComplexHess()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.hess","c":"ComplexHess","l":"ComplexHess(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.linalg.solvers.lstsq","c":"ComplexLstsqSolver","l":"ComplexLstsqSolver()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"ComplexLU","l":"ComplexLU()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"ComplexLU","l":"ComplexLU(int)","u":"%3Cinit%3E(int)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"ComplexLU","l":"ComplexLU(int, double)","u":"%3Cinit%3E(int,double)"},{"p":"org.flag4j.operations.common.complex","c":"ComplexOperations","l":"ComplexOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.common.complex","c":"ComplexProperties","l":"ComplexProperties()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.qr","c":"ComplexQR","l":"ComplexQR()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.qr","c":"ComplexQR","l":"ComplexQR(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"ComplexSchur()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"ComplexSchur(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"ComplexSchur(boolean, long)","u":"%3Cinit%3E(boolean,long)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"ComplexSchur(long)","u":"%3Cinit%3E(long)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseElementSearch","l":"ComplexSparseElementSearch()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseEquals","l":"ComplexSparseEquals()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.common","c":"TensorEquals","l":"complexSparseLookUp"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"ComplexSparseMatrixGetSet()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixManipulations","l":"ComplexSparseMatrixManipulations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixMultiplication","l":"ComplexSparseMatrixMultiplication()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixOperations","l":"ComplexSparseMatrixOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixProperties","l":"ComplexSparseMatrixProperties()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseNorms","l":"ComplexSparseNorms()","u":"%3Cinit%3E()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"ComplexSparseTensorBase(Shape, int, CNumber[], int[], int[]...)","u":"%3Cinit%3E(org.flag4j.core.Shape,int,org.flag4j.complex_numbers.CNumber[],int[],int[]...)"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"ComplexSparseTensorBase(Shape, int, CNumber[], int[][])","u":"%3Cinit%3E(org.flag4j.core.Shape,int,org.flag4j.complex_numbers.CNumber[],int[][])"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseVectorOperations","l":"ComplexSparseVectorOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.svd","c":"ComplexSVD","l":"ComplexSVD()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.svd","c":"ComplexSVD","l":"ComplexSVD(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.linalg.decompositions.svd","c":"ComplexSVD","l":"ComplexSVD(boolean, boolean)","u":"%3Cinit%3E(boolean,boolean)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"ComplexUnitaryDecomposition","l":"ComplexUnitaryDecomposition(int)","u":"%3Cinit%3E(int)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"ComplexUnitaryDecomposition","l":"ComplexUnitaryDecomposition(int, boolean)","u":"%3Cinit%3E(int,boolean)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"computeExceptionalShift(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"computeExceptionalShift(int)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"ComplexUnitaryDecomposition","l":"computeHouseholder(int)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"RealUnitaryDecomposition","l":"computeHouseholder(int)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"computeHouseholder(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"computeImplicitDoubleShift(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"computeImplicitDoubleShift(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"computeImplicitSingleShift(int, CNumber)","u":"computeImplicitSingleShift(int,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"computeImplicitSingleShift(int, double)","u":"computeImplicitSingleShift(int,double)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"ComplexUnitaryDecomposition","l":"computePhasedNorm(int, double)","u":"computePhasedNorm(int,double)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"RealUnitaryDecomposition","l":"computePhasedNorm(int, double)","u":"computePhasedNorm(int,double)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"computePhasedNorm(int, double)","u":"computePhasedNorm(int,double)"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"computeRank(int, int, double[])","u":"computeRank(int,int,double[])"},{"p":"org.flag4j.linalg.decompositions.lu","c":"ComplexLU","l":"computeRows(int)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"RealLU","l":"computeRows(int)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"computeSwaps()"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"computeU"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"computeUV"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"CONCURRENT_BLOCKED"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"CONCURRENT_BLOCKED"},{"p":"org.flag4j.operations","c":"TransposeDispatcher.Algorithm","l":"CONCURRENT_BLOCKED"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"CONCURRENT_BLOCKED_REORDERED"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"CONCURRENT_BLOCKED_REORDERED"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"CONCURRENT_BLOCKED_VECTOR"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"CONCURRENT_BLOCKED_VECTOR"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"CONCURRENT_REORDERED"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"CONCURRENT_REORDERED"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"CONCURRENT_STANDARD"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"CONCURRENT_STANDARD"},{"p":"org.flag4j.operations","c":"TransposeDispatcher.Algorithm","l":"CONCURRENT_STANDARD"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"CONCURRENT_STANDARD_VECTOR"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"CONCURRENT_STANDARD_VECTOR"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"CONCURRENT_SWAPPED_THRESHOLD"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher","l":"CONCURRENT_SWAPPED_THRESHOLD"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseElemDiv","l":"CONCURRENT_THRESHOLD"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseElemMult","l":"CONCURRENT_THRESHOLD"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseElemDiv","l":"CONCURRENT_THRESHOLD"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseElemMult","l":"CONCURRENT_THRESHOLD"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseElemDiv","l":"CONCURRENT_THRESHOLD"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseElemMult","l":"CONCURRENT_THRESHOLD"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"CONCURRENT_THRESHOLD"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixMultiplication","l":"concurrentAtomicArray(double[], int[], int[], Shape, double[], Shape)","u":"concurrentAtomicArray(double[],int[],int[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultiplication","l":"concurrentBlocked(CNumber[], Shape, CNumber[], Shape)","u":"concurrentBlocked(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"concurrentBlocked(CNumber[], Shape, double[], Shape)","u":"concurrentBlocked(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"concurrentBlocked(double[], Shape, CNumber[], Shape)","u":"concurrentBlocked(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultiplication","l":"concurrentBlocked(double[], Shape, double[], Shape)","u":"concurrentBlocked(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultiplication","l":"concurrentBlockedReordered(CNumber[], Shape, CNumber[], Shape)","u":"concurrentBlockedReordered(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"concurrentBlockedReordered(CNumber[], Shape, double[], Shape)","u":"concurrentBlockedReordered(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"concurrentBlockedReordered(double[], Shape, CNumber[], Shape)","u":"concurrentBlockedReordered(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultiplication","l":"concurrentBlockedReordered(double[], Shape, double[], Shape)","u":"concurrentBlockedReordered(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixMultiplication","l":"concurrentBlockedVector(CNumber[], Shape, CNumber[], int[])","u":"concurrentBlockedVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultiplication","l":"concurrentBlockedVector(CNumber[], Shape, CNumber[], Shape)","u":"concurrentBlockedVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"concurrentBlockedVector(CNumber[], Shape, double[], int[])","u":"concurrentBlockedVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],int[])"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"concurrentBlockedVector(CNumber[], Shape, double[], Shape)","u":"concurrentBlockedVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"concurrentBlockedVector(double[], Shape, CNumber[], int[])","u":"concurrentBlockedVector(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[])"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"concurrentBlockedVector(double[], Shape, CNumber[], Shape)","u":"concurrentBlockedVector(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixMultiplication","l":"concurrentBlockedVector(double[], Shape, double[], int[])","u":"concurrentBlockedVector(double[],org.flag4j.core.Shape,double[],int[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultiplication","l":"concurrentBlockedVector(double[], Shape, double[], Shape)","u":"concurrentBlockedVector(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.concurrency","c":"ThreadManager","l":"concurrentLoop(int, int, int, IntConsumer)","u":"concurrentLoop(int,int,int,java.util.function.IntConsumer)"},{"p":"org.flag4j.concurrency","c":"ThreadManager","l":"concurrentLoop(int, int, IntConsumer)","u":"concurrentLoop(int,int,java.util.function.IntConsumer)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultiplication","l":"concurrentReordered(CNumber[], Shape, CNumber[], Shape)","u":"concurrentReordered(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"concurrentReordered(CNumber[], Shape, double[], Shape)","u":"concurrentReordered(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"concurrentReordered(double[], Shape, CNumber[], Shape)","u":"concurrentReordered(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultiplication","l":"concurrentReordered(double[], Shape, double[], Shape)","u":"concurrentReordered(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixMultiplication","l":"concurrentStandard(CNumber[], int[], int[], Shape, CNumber[], int[], int[], Shape)","u":"concurrentStandard(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixMultiplication","l":"concurrentStandard(CNumber[], int[], int[], Shape, CNumber[], Shape)","u":"concurrentStandard(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixMultiplication","l":"concurrentStandard(CNumber[], int[], int[], Shape, double[], int[], int[], Shape)","u":"concurrentStandard(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,double[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"concurrentStandard(CNumber[], int[], int[], Shape, double[], Shape)","u":"concurrentStandard(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixMultiplication","l":"concurrentStandard(CNumber[], Shape, CNumber[], int[], int[], Shape)","u":"concurrentStandard(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultiplication","l":"concurrentStandard(CNumber[], Shape, CNumber[], Shape)","u":"concurrentStandard(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"concurrentStandard(CNumber[], Shape, double[], int[], int[], Shape)","u":"concurrentStandard(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"concurrentStandard(CNumber[], Shape, double[], Shape)","u":"concurrentStandard(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixMultiplication","l":"concurrentStandard(double[], int[], int[], Shape, CNumber[], int[], int[], Shape)","u":"concurrentStandard(double[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"concurrentStandard(double[], int[], int[], Shape, CNumber[], Shape)","u":"concurrentStandard(double[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixMultiplication","l":"concurrentStandard(double[], int[], int[], Shape, double[], int[], int[], Shape)","u":"concurrentStandard(double[],int[],int[],org.flag4j.core.Shape,double[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixMultiplication","l":"concurrentStandard(double[], int[], int[], Shape, double[], Shape)","u":"concurrentStandard(double[],int[],int[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"concurrentStandard(double[], Shape, CNumber[], int[], int[], Shape)","u":"concurrentStandard(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"concurrentStandard(double[], Shape, CNumber[], Shape)","u":"concurrentStandard(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixMultiplication","l":"concurrentStandard(double[], Shape, double[], int[], int[], Shape)","u":"concurrentStandard(double[],org.flag4j.core.Shape,double[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultiplication","l":"concurrentStandard(double[], Shape, double[], Shape)","u":"concurrentStandard(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixMultiplication","l":"concurrentStandardVector(CNumber[], int[], int[], Shape, CNumber[], int[])","u":"concurrentStandardVector(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[])"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixMultiplication","l":"concurrentStandardVector(CNumber[], int[], int[], Shape, CNumber[], Shape)","u":"concurrentStandardVector(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixMultiplication","l":"concurrentStandardVector(CNumber[], int[], int[], Shape, double[], int[], Shape)","u":"concurrentStandardVector(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,double[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"concurrentStandardVector(CNumber[], int[], int[], Shape, double[], Shape)","u":"concurrentStandardVector(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixMultiplication","l":"concurrentStandardVector(CNumber[], Shape, CNumber[], int[])","u":"concurrentStandardVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultiplication","l":"concurrentStandardVector(CNumber[], Shape, CNumber[], Shape)","u":"concurrentStandardVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"concurrentStandardVector(CNumber[], Shape, double[], int[])","u":"concurrentStandardVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],int[])"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"concurrentStandardVector(CNumber[], Shape, double[], Shape)","u":"concurrentStandardVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixMultiplication","l":"concurrentStandardVector(double[], int[], int[], Shape, CNumber[], int[], Shape)","u":"concurrentStandardVector(double[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"concurrentStandardVector(double[], int[], int[], Shape, CNumber[], Shape)","u":"concurrentStandardVector(double[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixMultiplication","l":"concurrentStandardVector(double[], int[], int[], Shape, double[], int[])","u":"concurrentStandardVector(double[],int[],int[],org.flag4j.core.Shape,double[],int[])"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixMultiplication","l":"concurrentStandardVector(double[], int[], int[], Shape, double[], Shape)","u":"concurrentStandardVector(double[],int[],int[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"concurrentStandardVector(double[], Shape, CNumber[], int[])","u":"concurrentStandardVector(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[])"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"concurrentStandardVector(double[], Shape, CNumber[], Shape)","u":"concurrentStandardVector(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixMultiplication","l":"concurrentStandardVector(double[], Shape, double[], int[])","u":"concurrentStandardVector(double[],org.flag4j.core.Shape,double[],int[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultiplication","l":"concurrentStandardVector(double[], Shape, double[], Shape)","u":"concurrentStandardVector(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.linalg","c":"Condition","l":"cond(CMatrix)","u":"cond(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"Condition","l":"cond(CMatrix, double)","u":"cond(org.flag4j.arrays.dense.CMatrix,double)"},{"p":"org.flag4j.linalg","c":"Condition","l":"cond(Matrix)","u":"cond(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg","c":"Condition","l":"cond(Matrix, double)","u":"cond(org.flag4j.arrays.dense.Matrix,double)"},{"p":"org.flag4j.linalg","c":"Condition","l":"Condition()","u":"%3Cinit%3E()"},{"p":"org.flag4j.concurrency","c":"Configurations","l":"Configurations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"conj()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"conj()"},{"p":"org.flag4j.core","c":"ComplexMatrixMixin","l":"conj()"},{"p":"org.flag4j.core","c":"ComplexTensorMixin","l":"conj()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"conj()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"conj()"},{"p":"org.flag4j.operations.common.complex","c":"ComplexOperations","l":"conj(CNumber[])","u":"conj(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.core","c":"ComplexMatrixMixin","l":"conjT()"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"contains(double[], double)","u":"contains(double[],double)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"contains(double[], double...)","u":"contains(double[],double...)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"contains(int[], int)","u":"contains(int[],int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"contains(int[], int...)","u":"contains(int[],int...)"},{"p":"org.flag4j.complex_numbers","c":"CNumberLexer","l":"content"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"CooCMatrix(CooCMatrix)","u":"%3Cinit%3E(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"CooCMatrix(int)","u":"%3Cinit%3E(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"CooCMatrix(int, CNumber[], int[], int[])","u":"%3Cinit%3E(int,org.flag4j.complex_numbers.CNumber[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"CooCMatrix(int, double[], int[], int[])","u":"%3Cinit%3E(int,double[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"CooCMatrix(int, int)","u":"%3Cinit%3E(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"CooCMatrix(int, int, CNumber[], int[], int[])","u":"%3Cinit%3E(int,int,org.flag4j.complex_numbers.CNumber[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"CooCMatrix(int, int, double[], int[], int[])","u":"%3Cinit%3E(int,int,double[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"CooCMatrix(int, int, int[], int[], int[])","u":"%3Cinit%3E(int,int,int[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"CooCMatrix(int, int[], int[], int[])","u":"%3Cinit%3E(int,int[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"CooCMatrix(Shape)","u":"%3Cinit%3E(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"CooCMatrix(Shape, CNumber[], int[], int[])","u":"%3Cinit%3E(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"CooCMatrix(Shape, double[], int[], int[])","u":"%3Cinit%3E(org.flag4j.core.Shape,double[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"CooCMatrix(Shape, int[], int[], int[])","u":"%3Cinit%3E(org.flag4j.core.Shape,int[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"CooCMatrix(Shape, List, List, List)","u":"%3Cinit%3E(org.flag4j.core.Shape,java.util.List,java.util.List,java.util.List)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"CooCTensor(CooCTensor)","u":"%3Cinit%3E(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"CooCTensor(Shape)","u":"%3Cinit%3E(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"CooCTensor(Shape, CNumber[], int[][])","u":"%3Cinit%3E(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"CooCTensor(Shape, double[], int[][])","u":"%3Cinit%3E(org.flag4j.core.Shape,double[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"CooCTensor(Shape, int[], int[][])","u":"%3Cinit%3E(org.flag4j.core.Shape,int[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"CooCTensor(Shape, List, List)","u":"%3Cinit%3E(org.flag4j.core.Shape,java.util.List,java.util.List)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"CooCVector(CooCVector)","u":"%3Cinit%3E(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"CooCVector(int)","u":"%3Cinit%3E(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"CooCVector(int, CNumber[], int[])","u":"%3Cinit%3E(int,org.flag4j.complex_numbers.CNumber[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"CooCVector(int, double[], int[])","u":"%3Cinit%3E(int,double[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"CooCVector(int, int[], int[])","u":"%3Cinit%3E(int,int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"CooCVector(int, List, List)","u":"%3Cinit%3E(int,java.util.List,java.util.List)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"CooMatrix(CooMatrix)","u":"%3Cinit%3E(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"CooMatrix(int)","u":"%3Cinit%3E(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"CooMatrix(int, double[], int[], int[])","u":"%3Cinit%3E(int,double[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"CooMatrix(int, int)","u":"%3Cinit%3E(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"CooMatrix(int, int, double[], int[], int[])","u":"%3Cinit%3E(int,int,double[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"CooMatrix(int, int, int[], int[], int[])","u":"%3Cinit%3E(int,int,int[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"CooMatrix(int, int[], int[], int[])","u":"%3Cinit%3E(int,int[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"CooMatrix(Shape)","u":"%3Cinit%3E(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"CooMatrix(Shape, double[], int[], int[])","u":"%3Cinit%3E(org.flag4j.core.Shape,double[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"CooMatrix(Shape, int[], int[], int[])","u":"%3Cinit%3E(org.flag4j.core.Shape,int[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"CooMatrix(Shape, List, List, List)","u":"%3Cinit%3E(org.flag4j.core.Shape,java.util.List,java.util.List,java.util.List)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"CooTensor(CooTensor)","u":"%3Cinit%3E(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"CooTensor(Shape)","u":"%3Cinit%3E(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"CooTensor(Shape, double[], int[][])","u":"%3Cinit%3E(org.flag4j.core.Shape,double[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"CooTensor(Shape, int[], int[][])","u":"%3Cinit%3E(org.flag4j.core.Shape,int[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"CooTensor(Shape, List, List)","u":"%3Cinit%3E(org.flag4j.core.Shape,java.util.List,java.util.List)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"CooVector(CooVector)","u":"%3Cinit%3E(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"CooVector(int)","u":"%3Cinit%3E(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"CooVector(int, double[], int[])","u":"%3Cinit%3E(int,double[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"CooVector(int, int[], int[])","u":"%3Cinit%3E(int,int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"CooVector(int, List, List)","u":"%3Cinit%3E(int,java.util.List,java.util.List)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"copy()"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"copy()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"copy()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"copy()"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"copy()"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"copy()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"copy()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"copy()"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"copy()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"copy()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"copy()"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"copy()"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"copy()"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"copy2CNumber(double[], CNumber[])","u":"copy2CNumber(double[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"copy2CNumber(Double[], CNumber[])","u":"copy2CNumber(java.lang.Double[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"copy2CNumber(int[], CNumber[])","u":"copy2CNumber(int[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"copy2CNumber(Integer[], CNumber[])","u":"copy2CNumber(java.lang.Integer[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"copy2CNumber(String[], CNumber[])","u":"copy2CNumber(java.lang.String[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"copyIndices()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"copyIndices()"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixManipulations","l":"copyRanges(CooCMatrix, CNumber[], int[], int[], int[])","u":"copyRanges(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.complex_numbers.CNumber[],int[],int[],int[])"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixManipulations","l":"copyRanges(CooMatrix, double[], int[], int[], int[])","u":"copyRanges(org.flag4j.arrays.sparse.CooMatrix,double[],int[],int[],int[])"},{"p":"org.flag4j.linalg.decompositions.hess","c":"SymmHess","l":"copyUpperTri(Matrix)","u":"copyUpperTri(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"copyValuesNotInSlice(CooCMatrix, List, List, List, int[], int[])","u":"copyValuesNotInSlice(org.flag4j.arrays.sparse.CooCMatrix,java.util.List,java.util.List,java.util.List,int[],int[])"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"copyValuesNotInSlice(CooMatrix, List, List, List, int[], int[])","u":"copyValuesNotInSlice(org.flag4j.arrays.sparse.CooMatrix,java.util.List,java.util.List,java.util.List,int[],int[])"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"cos(CNumber)","u":"cos(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"cos(double)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"cosh(CNumber)","u":"cosh(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"cosh(double)"},{"p":"org.flag4j.linalg.decompositions","c":"DecompositionFactory","l":"createComplexChol()"},{"p":"org.flag4j.linalg.decompositions","c":"DecompositionFactory","l":"createComplexHess()"},{"p":"org.flag4j.linalg.decompositions","c":"DecompositionFactory","l":"createComplexLU()"},{"p":"org.flag4j.linalg.decompositions","c":"DecompositionFactory","l":"createComplexQR()"},{"p":"org.flag4j.linalg.decompositions","c":"DecompositionFactory","l":"createComplexSchur()"},{"p":"org.flag4j.linalg.decompositions","c":"DecompositionFactory","l":"createComplexSVD()"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseUtils","l":"createMap(int, int[])","u":"createMap(int,int[])"},{"p":"org.flag4j.core","c":"Shape","l":"createNewStrides()"},{"p":"org.flag4j.linalg.decompositions","c":"DecompositionFactory","l":"createRealChol()"},{"p":"org.flag4j.linalg.decompositions","c":"DecompositionFactory","l":"createRealHess()"},{"p":"org.flag4j.linalg.decompositions","c":"DecompositionFactory","l":"createRealLU()"},{"p":"org.flag4j.linalg.decompositions","c":"DecompositionFactory","l":"createRealQR()"},{"p":"org.flag4j.linalg.decompositions","c":"DecompositionFactory","l":"createRealSchur()"},{"p":"org.flag4j.linalg.decompositions","c":"DecompositionFactory","l":"createRealSVD()"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"createUniqueMapping(int[])"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"cross(CVector)","u":"cross(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"cross(CVector)","u":"cross(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"cross(Vector)","u":"cross(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"cross(Vector)","u":"cross(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"CsrCMatrix(CooCMatrix)","u":"%3Cinit%3E(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"CsrCMatrix(CooMatrix)","u":"%3Cinit%3E(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"CsrCMatrix(CsrCMatrix)","u":"%3Cinit%3E(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"CsrCMatrix(int, int)","u":"%3Cinit%3E(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"CsrCMatrix(int, int, CNumber[], int[], int[])","u":"%3Cinit%3E(int,int,org.flag4j.complex_numbers.CNumber[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"CsrCMatrix(Shape)","u":"%3Cinit%3E(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"CsrCMatrix(Shape, CNumber[], int[], int[])","u":"%3Cinit%3E(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"CsrCMatrix(Shape, double[], int[], int[])","u":"%3Cinit%3E(org.flag4j.core.Shape,double[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"SparseUtils","l":"CSREquals(CsrCMatrix, CsrCMatrix)","u":"CSREquals(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"SparseUtils","l":"CSREquals(CsrMatrix, CsrMatrix)","u":"CSREquals(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"CsrMatrix(CooMatrix)","u":"%3Cinit%3E(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"CsrMatrix(CsrMatrix)","u":"%3Cinit%3E(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"CsrMatrix(int, int)","u":"%3Cinit%3E(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"CsrMatrix(int, int, double[], int[], int[])","u":"%3Cinit%3E(int,int,double[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"CsrMatrix(Shape)","u":"%3Cinit%3E(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"CsrMatrix(Shape, double[], int[], int[])","u":"%3Cinit%3E(org.flag4j.core.Shape,double[],int[],int[])"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"CTensor(CTensor)","u":"%3Cinit%3E(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"CTensor(Shape)","u":"%3Cinit%3E(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"CTensor(Shape, CNumber)","u":"%3Cinit%3E(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"CTensor(Shape, CNumber[])","u":"%3Cinit%3E(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"CTensor(Shape, double)","u":"%3Cinit%3E(org.flag4j.core.Shape,double)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"CTensor(Shape, double[])","u":"%3Cinit%3E(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"CTensor(Shape, int[])","u":"%3Cinit%3E(org.flag4j.core.Shape,int[])"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"CTensor(Tensor)","u":"%3Cinit%3E(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"currentFactor"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"currentFactor"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"ComplexUnitaryDecomposition","l":"currentFactor"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"RealUnitaryDecomposition","l":"currentFactor"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"CVector(CNumber...)","u":"%3Cinit%3E(org.flag4j.complex_numbers.CNumber...)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"CVector(CVector)","u":"%3Cinit%3E(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"CVector(double...)","u":"%3Cinit%3E(double...)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"CVector(int)","u":"%3Cinit%3E(int)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"CVector(int, CNumber)","u":"%3Cinit%3E(int,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"CVector(int, double)","u":"%3Cinit%3E(int,double)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"CVector(int...)","u":"%3Cinit%3E(int...)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"CVector(Vector)","u":"%3Cinit%3E(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.concurrency","c":"ThreadManager","l":"daemonFactory"},{"p":"org.flag4j.linalg.decompositions.chol","c":"ComplexCholesky","l":"decompose(CMatrix)","u":"decompose(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.decompositions.hess","c":"ComplexHess","l":"decompose(CMatrix)","u":"decompose(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.decompositions.qr","c":"ComplexQR","l":"decompose(CMatrix)","u":"decompose(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"decompose(CMatrix)","u":"decompose(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.decompositions.chol","c":"RealCholesky","l":"decompose(Matrix)","u":"decompose(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.decompositions.hess","c":"RealHess","l":"decompose(Matrix)","u":"decompose(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.decompositions.hess","c":"SymmHess","l":"decompose(Matrix)","u":"decompose(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.decompositions.qr","c":"RealQR","l":"decompose(Matrix)","u":"decompose(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"decompose(Matrix)","u":"decompose(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.decompositions","c":"Decomposition","l":"decompose(T)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"decompose(T)"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"decompose(T)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactSolver","l":"decompose(T)"},{"p":"org.flag4j.linalg.solvers.lstsq","c":"LstsqSolver","l":"decompose(T)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"decomposeBase(T)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"decomposeBase(T)"},{"p":"org.flag4j.linalg.decompositions","c":"DecompositionFactory","l":"DecompositionFactory()","u":"%3Cinit%3E()"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"deepCopy(int[][], int[][])","u":"deepCopy(int[][],int[][])"},{"p":"org.flag4j.concurrency","c":"Configurations","l":"DEFAULT_BLOCK_SIZE"},{"p":"org.flag4j.io","c":"PrintOptions","l":"DEFAULT_CENTER"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"DEFAULT_EXCEPTIONAL_ITERS"},{"p":"org.flag4j.io","c":"PrintOptions","l":"DEFAULT_MAX_COLS"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"DEFAULT_MAX_ITERS_FACTOR"},{"p":"org.flag4j.io","c":"PrintOptions","l":"DEFAULT_MAX_ROWS"},{"p":"org.flag4j.concurrency","c":"Configurations","l":"DEFAULT_MIN_RECURSIVE_SIZE"},{"p":"org.flag4j.concurrency","c":"Configurations","l":"DEFAULT_NUM_THREADS"},{"p":"org.flag4j.io","c":"PrintOptions","l":"DEFAULT_PADDING"},{"p":"org.flag4j.linalg.decompositions.chol","c":"Cholesky","l":"DEFAULT_POS_DEF_TOLERANCE"},{"p":"org.flag4j.io","c":"PrintOptions","l":"DEFAULT_PRECISION"},{"p":"org.flag4j.core","c":"TensorBase","l":"DEFAULT_ROUND_TO_ZERO_THRESHOLD"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"DEFAULT_ZERO_PIVOT_TOLERANCE"},{"p":"org.flag4j.core.dense_base","c":"DenseTensorBase","l":"DenseTensorBase(Shape, D)","u":"%3Cinit%3E(org.flag4j.core.Shape,D)"},{"p":"org.flag4j.core.sparse_base","c":"SparseTensorBase","l":"density()"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexBackSolver","l":"det"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexForwardSolver","l":"det"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealBackSolver","l":"det"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealForwardSolver","l":"det"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"det()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"det()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"det()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"det()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"det()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"det()"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"det()"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"det()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseDeterminant","l":"det(CMatrix)","u":"det(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseDeterminant","l":"det(Matrix)","u":"det(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseDeterminant","l":"det1(CMatrix)","u":"det1(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseDeterminant","l":"det1(Matrix)","u":"det1(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseDeterminant","l":"det2(CMatrix)","u":"det2(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseDeterminant","l":"det2(Matrix)","u":"det2(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseDeterminant","l":"det3(CMatrix)","u":"det3(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseDeterminant","l":"det3(Matrix)","u":"det3(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.complex_numbers","c":"CNumberToken","l":"details"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseDeterminant","l":"detLU(CMatrix)","u":"detLU(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseDeterminant","l":"detLU(Matrix)","u":"detLU(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseDeterminant","l":"detTri(CMatrix)","u":"detTri(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseDeterminant","l":"detTri(Matrix)","u":"detTri(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"SymmTriDiagonal","l":"diag"},{"p":"org.flag4j.complex_numbers","c":"CNumberLexer","l":"digit(int)"},{"p":"org.flag4j.core","c":"Shape","l":"dims"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"DirectSum()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CMatrix, CMatrix)","u":"directSum(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CMatrix, CooCMatrix)","u":"directSum(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CMatrix, CooMatrix)","u":"directSum(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CMatrix, Matrix)","u":"directSum(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CooCMatrix, CMatrix)","u":"directSum(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CooCMatrix, CooCMatrix)","u":"directSum(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CooCMatrix, CooMatrix)","u":"directSum(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CooCMatrix, Matrix)","u":"directSum(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CooMatrix, CMatrix)","u":"directSum(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CooMatrix, CooCMatrix)","u":"directSum(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CooMatrix, CooMatrix)","u":"directSum(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CooMatrix, Matrix)","u":"directSum(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CsrCMatrix, CMatrix)","u":"directSum(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CsrCMatrix, CooCMatrix)","u":"directSum(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CsrCMatrix, CooMatrix)","u":"directSum(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CsrCMatrix, Matrix)","u":"directSum(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CsrMatrix, CMatrix)","u":"directSum(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CsrMatrix, CooCMatrix)","u":"directSum(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CsrMatrix, CooMatrix)","u":"directSum(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CsrMatrix, Matrix)","u":"directSum(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(Matrix, CMatrix)","u":"directSum(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(Matrix, CooCMatrix)","u":"directSum(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(Matrix, CooMatrix)","u":"directSum(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(Matrix, Matrix)","u":"directSum(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"dispatch(CMatrix)","u":"dispatch(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"dispatch(CMatrix, CMatrix)","u":"dispatch(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"dispatch(CMatrix, CVector)","u":"dispatch(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"dispatch(CMatrix, Matrix)","u":"dispatch(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"dispatch(CMatrix, Vector)","u":"dispatch(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseElemDiv","l":"dispatch(CNumber[], Shape, CNumber[], Shape)","u":"dispatch(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseElemMult","l":"dispatch(CNumber[], Shape, CNumber[], Shape)","u":"dispatch(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"dispatch(CNumber[], Shape, CNumber[], Shape)","u":"dispatch(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseElemDiv","l":"dispatch(CNumber[], Shape, double[], Shape)","u":"dispatch(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseElemMult","l":"dispatch(CNumber[], Shape, double[], Shape)","u":"dispatch(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseElemDiv","l":"dispatch(double[], Shape, CNumber[], Shape)","u":"dispatch(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseElemDiv","l":"dispatch(double[], Shape, double[], Shape)","u":"dispatch(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseElemMult","l":"dispatch(double[], Shape, double[], Shape)","u":"dispatch(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher","l":"dispatch(double[], Shape, double[], Shape)","u":"dispatch(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"dispatch(Matrix)","u":"dispatch(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"dispatch(Matrix, CMatrix)","u":"dispatch(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"dispatch(Matrix, CVector)","u":"dispatch(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher","l":"dispatch(Matrix, Matrix)","u":"dispatch(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"dispatch(Matrix, Vector)","u":"dispatch(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"dispatchHermitian(CMatrix)","u":"dispatchHermitian(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseVectorOperations","l":"dispatchOuter(Vector, Vector)","u":"dispatchOuter(org.flag4j.arrays.dense.Vector,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"dispatchTensor(CTensor, int, int)","u":"dispatchTensor(org.flag4j.arrays.dense.CTensor,int,int)"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"dispatchTensor(double[], Shape, int[])","u":"dispatchTensor(double[],org.flag4j.core.Shape,int[])"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"dispatchTensor(Tensor, int, int)","u":"dispatchTensor(org.flag4j.arrays.dense.Tensor,int,int)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"dispatchTranspose(CMatrix, CMatrix)","u":"dispatchTranspose(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"dispatchTranspose(CMatrix, Matrix)","u":"dispatchTranspose(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"dispatchTranspose(Matrix, CMatrix)","u":"dispatchTranspose(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher","l":"dispatchTranspose(Matrix, Matrix)","u":"dispatchTranspose(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"div(CNumber)","u":"div(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"div(CNumber)","u":"div(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"div(CNumber)","u":"div(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"div(CNumber)","u":"div(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"div(CNumber)","u":"div(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"div(CNumber)","u":"div(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"div(CNumber)","u":"div(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"div(CNumber)","u":"div(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"div(double)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"div(double)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"div(double)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"div(double)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"div(double)"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"div(double)"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"div(double)"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"div(double)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTensorDot","l":"dot(CTensor, CTensor)","u":"dot(org.flag4j.arrays.dense.CTensor,org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"doubleImaginaryValue()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"doubleValue()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"E"},{"p":"org.flag4j.linalg","c":"Eigen","l":"Eigen()","u":"%3Cinit%3E()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"elemDiv(CMatrix)","u":"elemDiv(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"elemDiv(CMatrix)","u":"elemDiv(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"elemDiv(CMatrix)","u":"elemDiv(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"elemDiv(CMatrix)","u":"elemDiv(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"elemDiv(CMatrix)","u":"elemDiv(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"elemDiv(CMatrix)","u":"elemDiv(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseElemDiv","l":"elemDiv(CNumber[], Shape, CNumber[], Shape)","u":"elemDiv(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseElemDiv","l":"elemDiv(CNumber[], Shape, double[], Shape)","u":"elemDiv(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixOperations","l":"elemDiv(CooCMatrix, CMatrix)","u":"elemDiv(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"elemDiv(CooCMatrix, Matrix)","u":"elemDiv(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseVectorOperations","l":"elemDiv(CooCVector, CVector)","u":"elemDiv(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"elemDiv(CooCVector, Vector)","u":"elemDiv(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"elemDiv(CooMatrix, CMatrix)","u":"elemDiv(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixOperations","l":"elemDiv(CooMatrix, Matrix)","u":"elemDiv(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"elemDiv(CooVector, CVector)","u":"elemDiv(org.flag4j.arrays.sparse.CooVector,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseVectorOperations","l":"elemDiv(CooVector, Vector)","u":"elemDiv(org.flag4j.arrays.sparse.CooVector,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"elemDiv(CTensor)","u":"elemDiv(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"elemDiv(CTensor)","u":"elemDiv(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"elemDiv(CTensor)","u":"elemDiv(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"elemDiv(CTensor)","u":"elemDiv(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"elemDiv(CVector)","u":"elemDiv(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"elemDiv(CVector)","u":"elemDiv(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"elemDiv(CVector)","u":"elemDiv(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"elemDiv(CVector)","u":"elemDiv(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseElemDiv","l":"elemDiv(double[], Shape, CNumber[], Shape)","u":"elemDiv(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseElemDiv","l":"elemDiv(double[], Shape, double[], Shape)","u":"elemDiv(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"elemDiv(Matrix)","u":"elemDiv(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"elemDiv(Matrix)","u":"elemDiv(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"elemDiv(Matrix)","u":"elemDiv(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"elemDiv(Matrix)","u":"elemDiv(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"elemDiv(Matrix)","u":"elemDiv(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"elemDiv(Matrix)","u":"elemDiv(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"elemDiv(T)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"elemDiv(T)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"elemDiv(Tensor)","u":"elemDiv(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"elemDiv(Tensor)","u":"elemDiv(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"elemDiv(Tensor)","u":"elemDiv(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"elemDiv(Tensor)","u":"elemDiv(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"elemDiv(U)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"elemDiv(Vector)","u":"elemDiv(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"elemDiv(Vector)","u":"elemDiv(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"elemDiv(Vector)","u":"elemDiv(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"elemDiv(Vector)","u":"elemDiv(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseElemDiv","l":"elemDivConcurrent(CNumber[], Shape, CNumber[], Shape)","u":"elemDivConcurrent(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseElemDiv","l":"elemDivConcurrent(CNumber[], Shape, double[], Shape)","u":"elemDivConcurrent(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseElemDiv","l":"elemDivConcurrent(double[], Shape, CNumber[], Shape)","u":"elemDivConcurrent(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseElemDiv","l":"elemDivConcurrent(double[], Shape, double[], Shape)","u":"elemDivConcurrent(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"elemMult(CMatrix)","u":"elemMult(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"elemMult(CMatrix)","u":"elemMult(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"elemMult(CMatrix)","u":"elemMult(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"elemMult(CMatrix)","u":"elemMult(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"elemMult(CMatrix)","u":"elemMult(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"elemMult(CMatrix)","u":"elemMult(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixOperations","l":"elemMult(CMatrix, CooCMatrix)","u":"elemMult(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"elemMult(CMatrix, CooMatrix)","u":"elemMult(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseElemMult","l":"elemMult(CNumber[], Shape, CNumber[], Shape)","u":"elemMult(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseElemMult","l":"elemMult(CNumber[], Shape, double[], Shape)","u":"elemMult(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"elemMult(CooCMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"elemMult(CooCMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"elemMult(CooCMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"elemMult(CooCMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"elemMult(CooCMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"elemMult(CooCMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"elemMult(CooCMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixOperations","l":"elemMult(CooCMatrix, CooCMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixOperations","l":"elemMult(CooCMatrix, CooMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"elemMult(CooCTensor)","u":"elemMult(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"elemMult(CooCTensor)","u":"elemMult(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"elemMult(CooCTensor)","u":"elemMult(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"elemMult(CooCTensor)","u":"elemMult(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"elemMult(CooCTensor)","u":"elemMult(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"elemMult(CooCVector)","u":"elemMult(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"elemMult(CooCVector)","u":"elemMult(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"elemMult(CooCVector)","u":"elemMult(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"elemMult(CooCVector)","u":"elemMult(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"elemMult(CooCVector)","u":"elemMult(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseVectorOperations","l":"elemMult(CooCVector, CooCVector)","u":"elemMult(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseVectorOperations","l":"elemMult(CooCVector, CooVector)","u":"elemMult(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"elemMult(CooMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"elemMult(CooMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"elemMult(CooMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"elemMult(CooMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"elemMult(CooMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"elemMult(CooMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"elemMult(CooMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixOperations","l":"elemMult(CooMatrix, CooMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"elemMult(CooTensor)","u":"elemMult(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"elemMult(CooTensor)","u":"elemMult(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"elemMult(CooTensor)","u":"elemMult(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"elemMult(CooTensor)","u":"elemMult(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"elemMult(CooTensor)","u":"elemMult(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"elemMult(CooVector)","u":"elemMult(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"elemMult(CooVector)","u":"elemMult(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"elemMult(CooVector)","u":"elemMult(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"elemMult(CooVector)","u":"elemMult(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"elemMult(CooVector)","u":"elemMult(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseVectorOperations","l":"elemMult(CooVector, CooVector)","u":"elemMult(org.flag4j.arrays.sparse.CooVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"elemMult(CsrCMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"elemMult(CsrCMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.operations.sparse.csr.real_complex","c":"RealComplexCsrOperations","l":"elemMult(CsrCMatrix, CsrMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"elemMult(CsrMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"elemMult(CsrMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"elemMult(CTensor)","u":"elemMult(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"elemMult(CTensor)","u":"elemMult(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"elemMult(CTensor)","u":"elemMult(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"elemMult(CTensor)","u":"elemMult(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseOperations","l":"elemMult(CTensor, CooCTensor)","u":"elemMult(org.flag4j.arrays.dense.CTensor,org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseOperations","l":"elemMult(CTensor, CooTensor)","u":"elemMult(org.flag4j.arrays.dense.CTensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"elemMult(CVector)","u":"elemMult(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"elemMult(CVector)","u":"elemMult(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"elemMult(CVector)","u":"elemMult(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"elemMult(CVector)","u":"elemMult(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseVectorOperations","l":"elemMult(CVector, CooCVector)","u":"elemMult(org.flag4j.arrays.dense.CVector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"elemMult(CVector, CooVector)","u":"elemMult(org.flag4j.arrays.dense.CVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseElemMult","l":"elemMult(double[], Shape, double[], Shape)","u":"elemMult(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"elemMult(Matrix)","u":"elemMult(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"elemMult(Matrix)","u":"elemMult(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"elemMult(Matrix)","u":"elemMult(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"elemMult(Matrix)","u":"elemMult(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"elemMult(Matrix)","u":"elemMult(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"elemMult(Matrix)","u":"elemMult(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"elemMult(Matrix, CooCMatrix)","u":"elemMult(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixOperations","l":"elemMult(Matrix, CooMatrix)","u":"elemMult(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"elemMult(T)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"elemMult(T)"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"elemMult(T)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"elemMult(Tensor)","u":"elemMult(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"elemMult(Tensor)","u":"elemMult(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"elemMult(Tensor)","u":"elemMult(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"elemMult(Tensor)","u":"elemMult(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseOperations","l":"elemMult(Tensor, CooCTensor)","u":"elemMult(org.flag4j.arrays.dense.Tensor,org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseTensorOperations","l":"elemMult(Tensor, CooTensor)","u":"elemMult(org.flag4j.arrays.dense.Tensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"elemMult(Vector)","u":"elemMult(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"elemMult(Vector)","u":"elemMult(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"elemMult(Vector)","u":"elemMult(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"elemMult(Vector)","u":"elemMult(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"elemMult(Vector, CooCVector)","u":"elemMult(org.flag4j.arrays.dense.Vector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseVectorOperations","l":"elemMult(Vector, CooVector)","u":"elemMult(org.flag4j.arrays.dense.Vector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseElemMult","l":"elemMultConcurrent(CNumber[], Shape, CNumber[], Shape)","u":"elemMultConcurrent(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseElemMult","l":"elemMultConcurrent(CNumber[], Shape, double[], Shape)","u":"elemMultConcurrent(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseElemMult","l":"elemMultConcurrent(double[], Shape, double[], Shape)","u":"elemMultConcurrent(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.linalg.decompositions.chol","c":"Cholesky","l":"enforceHermitian"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ForwardSolver","l":"enforceLower"},{"p":"org.flag4j.linalg.decompositions.hess","c":"SymmHess","l":"enforceSymmetric"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"BackSolver","l":"enforceTriU"},{"p":"org.flag4j.operations.common","c":"TensorEquals","l":"ensureTensor(TensorBase)","u":"ensureTensor(org.flag4j.core.TensorBase)"},{"p":"org.flag4j.core","c":"TensorBase","l":"entries"},{"p":"org.flag4j.core","c":"Shape","l":"entriesIndex(int...)"},{"p":"org.flag4j.util","c":"Flag4jConstants","l":"EPS_F32"},{"p":"org.flag4j.util","c":"Flag4jConstants","l":"EPS_F64"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"EQ_SHAPE_MISMATCH_ERR"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"equals(double)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"equals(double[], CNumber[])","u":"equals(double[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.arrays.sparse","c":"SymmTriDiagonal","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.core","c":"Shape","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.core","c":"TensorComparisonsMixin","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"equalShapeErrMsg(Shape, Shape)","u":"equalShapeErrMsg(org.flag4j.core.Shape,org.flag4j.core.Shape)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"equalsNumber(Number)","u":"equalsNumber(java.lang.Number)"},{"p":"org.flag4j.complex_numbers","c":"CNumberLexer","l":"ERR_MSG"},{"p":"org.flag4j.linalg","c":"RowEchelon","l":"erref(CMatrix)","u":"erref(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"RowEchelon","l":"erref(Matrix)","u":"erref(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.complex_numbers","c":"CNumberLexer","l":"error(String)","u":"error(java.lang.String)"},{"p":"org.flag4j.complex_numbers","c":"CNumberToken","l":"errorCheck(String)","u":"errorCheck(java.lang.String)"},{"p":"org.flag4j.complex_numbers","c":"CNumberToken","l":"errorCheck(String, String)","u":"errorCheck(java.lang.String,java.lang.String)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"ErrorMessages()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactSolver","l":"ExactSolver(LU, LinearSolver, LinearSolver)","u":"%3Cinit%3E(org.flag4j.linalg.decompositions.lu.LU,org.flag4j.linalg.solvers.LinearSolver,org.flag4j.linalg.solvers.LinearSolver)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactTensorSolver","l":"ExactTensorSolver(LinearSolver)","u":"%3Cinit%3E(org.flag4j.linalg.solvers.LinearSolver)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"exceptionalThreshold"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"exp(CNumber)","u":"exp(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"exp(double)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"extend(int, int)","u":"extend(int,int)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"extend(int, int)","u":"extend(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"extend(int, int)","u":"extend(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"extend(int, int)","u":"extend(int,int)"},{"p":"org.flag4j.core","c":"VectorManipulationsMixin","l":"extend(int, int)","u":"extend(int,int)"},{"p":"org.flag4j.linalg.decompositions.svd","c":"ComplexSVD","l":"extractNormalizedCols(CMatrix, int)","u":"extractNormalizedCols(org.flag4j.arrays.dense.CMatrix,int)"},{"p":"org.flag4j.linalg.decompositions.svd","c":"RealSVD","l":"extractNormalizedCols(Matrix, int)","u":"extractNormalizedCols(org.flag4j.arrays.dense.Matrix,int)"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"extractNormalizedCols(T, int)","u":"extractNormalizedCols(T,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"fib(CMatrix)","u":"fib(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"fib(CMatrix)","u":"fib(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"fib(CMatrix)","u":"fib(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"fib(CMatrix)","u":"fib(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"fib(CMatrix)","u":"fib(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"fib(CMatrix)","u":"fib(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"fib(CMatrix)","u":"fib(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"fib(CooCMatrix)","u":"fib(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"fib(CooCMatrix)","u":"fib(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"fib(CooCMatrix)","u":"fib(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"fib(CooCMatrix)","u":"fib(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"fib(CooCMatrix)","u":"fib(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"fib(CooCMatrix)","u":"fib(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"fib(CooCMatrix)","u":"fib(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"fib(CooMatrix)","u":"fib(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"fib(CooMatrix)","u":"fib(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"fib(CooMatrix)","u":"fib(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"fib(CooMatrix)","u":"fib(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"fib(CooMatrix)","u":"fib(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"fib(CooMatrix)","u":"fib(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"fib(CooMatrix)","u":"fib(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"fib(CsrCMatrix)","u":"fib(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"fib(CsrMatrix)","u":"fib(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"fib(Matrix)","u":"fib(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"fib(Matrix)","u":"fib(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"fib(Matrix)","u":"fib(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"fib(Matrix)","u":"fib(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"fib(Matrix)","u":"fib(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"fib(Matrix)","u":"fib(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"fib(Matrix)","u":"fib(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.io","c":"TensorInputStream","l":"fileIn"},{"p":"org.flag4j.io","c":"TensorOutputStream","l":"fileOut"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"fill(CNumber[], double)","u":"fill(org.flag4j.complex_numbers.CNumber[],double)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"fill(CNumber[], double, int, int)","u":"fill(org.flag4j.complex_numbers.CNumber[],double,int,int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"fill(CNumber[], int, int, CNumber)","u":"fill(org.flag4j.complex_numbers.CNumber[],int,int,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"fill(CNumber[][], CNumber)","u":"fill(org.flag4j.complex_numbers.CNumber[][],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"fill(double[][], double)","u":"fill(double[][],double)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"filledArray(int, int)","u":"filledArray(int,int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"fillZeros(CNumber[][])","u":"fillZeros(org.flag4j.complex_numbers.CNumber[][])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"findFirstLast(int[], int)","u":"findFirstLast(int[],int)"},{"p":"org.flag4j.linalg.decompositions.hess","c":"SymmHess","l":"findMaxAndInit(int)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"ComplexUnitaryDecomposition","l":"findMaxAndInit(int)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"RealUnitaryDecomposition","l":"findMaxAndInit(int)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"findMaxAndInit(int)"},{"p":"org.flag4j.util","c":"Flag4jConstants","l":"Flag4jConstants()","u":"%3Cinit%3E()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"flatten()"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"flatten()"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"flatten()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"flatten()"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"flatten()"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"flatten()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"flatten()"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"flatten()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"flatten()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"flatten()"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"flatten()"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"flatten()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"flatten()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"flatten()"},{"p":"org.flag4j.core","c":"TensorManipulationsMixin","l":"flatten()"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"flatten(CNumber[][])","u":"flatten(org.flag4j.complex_numbers.CNumber[][])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"flatten(double[][])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"flatten(int)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"flatten(int)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"flatten(int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"flatten(int)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"flatten(int)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"flatten(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"flatten(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"flatten(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"flatten(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"flatten(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"flatten(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"flatten(int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"flatten(int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"flatten(int)"},{"p":"org.flag4j.core","c":"TensorManipulationsMixin","l":"flatten(int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"flatten(int[][])"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"floatImaginaryValue()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"floatValue()"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactSolver","l":"forwardSolver"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ForwardSolver","l":"ForwardSolver(boolean, boolean)","u":"%3Cinit%3E(boolean,boolean)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"fromColSwaps(int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"fromDense(CMatrix)","u":"fromDense(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"fromDense(CTensor)","u":"fromDense(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"fromDense(CVector)","u":"fromDense(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"fromDense(Matrix)","u":"fromDense(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"fromDense(Tensor)","u":"fromDense(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"fromDense(Vector)","u":"fromDense(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"fromDoubleList(List)","u":"fromDoubleList(java.util.List)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"fromIntegerList(List)","u":"fromIntegerList(java.util.List)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"fromIntegerList(List, int[])","u":"fromIntegerList(java.util.List,int[])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"fromList(List, T[])","u":"fromList(java.util.List,T[])"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"fromPolar(double, double)","u":"fromPolar(double,double)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU.Pivoting","l":"FULL"},{"p":"org.flag4j.linalg.decompositions.lu","c":"ComplexLU","l":"fullPivot()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"fullPivot()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"RealLU","l":"fullPivot()"},{"p":"org.flag4j.operations.common","c":"TensorEquals","l":"generalEquals(CooCTensor, SparseTensorBase)","u":"generalEquals(org.flag4j.arrays.sparse.CooCTensor,org.flag4j.core.sparse_base.SparseTensorBase)"},{"p":"org.flag4j.operations.common","c":"TensorEquals","l":"generalEquals(CooTensor, SparseTensorBase)","u":"generalEquals(org.flag4j.arrays.sparse.CooTensor,org.flag4j.core.sparse_base.SparseTensorBase)"},{"p":"org.flag4j.operations.common","c":"TensorEquals","l":"generalEquals(CTensor, DenseTensorBase)","u":"generalEquals(org.flag4j.arrays.dense.CTensor,org.flag4j.core.dense_base.DenseTensorBase)"},{"p":"org.flag4j.operations.common","c":"TensorEquals","l":"generalEquals(CTensor, SparseTensorBase)","u":"generalEquals(org.flag4j.arrays.dense.CTensor,org.flag4j.core.sparse_base.SparseTensorBase)"},{"p":"org.flag4j.operations.common","c":"TensorEquals","l":"generalEquals(DenseTensorBase, SparseTensorBase)","u":"generalEquals(org.flag4j.core.dense_base.DenseTensorBase,org.flag4j.core.sparse_base.SparseTensorBase)"},{"p":"org.flag4j.operations.common","c":"TensorEquals","l":"generalEquals(Tensor, DenseTensorBase)","u":"generalEquals(org.flag4j.arrays.dense.Tensor,org.flag4j.core.dense_base.DenseTensorBase)"},{"p":"org.flag4j.operations.common","c":"TensorEquals","l":"generalEquals(Tensor, SparseTensorBase)","u":"generalEquals(org.flag4j.arrays.dense.Tensor,org.flag4j.core.sparse_base.SparseTensorBase)"},{"p":"org.flag4j.operations.common","c":"TensorEquals","l":"generalEquals(TensorBase, TensorBase)","u":"generalEquals(org.flag4j.core.TensorBase,org.flag4j.core.TensorBase)"},{"p":"org.flag4j.rng","c":"RandomArray","l":"genNormalComplexArray(int)"},{"p":"org.flag4j.rng","c":"RandomArray","l":"genNormalComplexArray(int, double, double)","u":"genNormalComplexArray(int,double,double)"},{"p":"org.flag4j.rng","c":"RandomArray","l":"genNormalRealArray(int)"},{"p":"org.flag4j.rng","c":"RandomArray","l":"genNormalRealArray(int, double, double)","u":"genNormalRealArray(int,double,double)"},{"p":"org.flag4j.rng","c":"RandomArray","l":"genRandomRows(int, int, int, int)","u":"genRandomRows(int,int,int,int)"},{"p":"org.flag4j.rng","c":"RandomArray","l":"genUniformComplexArray(int)"},{"p":"org.flag4j.rng","c":"RandomArray","l":"genUniformComplexArray(int, double, double)","u":"genUniformComplexArray(int,double,double)"},{"p":"org.flag4j.rng","c":"RandomArray","l":"genUniformRealArray(int)"},{"p":"org.flag4j.rng","c":"RandomArray","l":"genUniformRealArray(int, double, double)","u":"genUniformRealArray(int,double,double)"},{"p":"org.flag4j.rng","c":"RandomArray","l":"genUniformRealIntArray(int)"},{"p":"org.flag4j.rng","c":"RandomArray","l":"genUniformRealIntArray(int, int, int)","u":"genUniformRealIntArray(int,int,int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"geRandomTrilMatrix(int, int, int)","u":"geRandomTrilMatrix(int,int,int)"},{"p":"org.flag4j.core","c":"Shape","l":"get(int)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU.Pivoting","l":"get(int)"},{"p":"org.flag4j.arrays.sparse","c":"SymmTriDiagonal","l":"get(int, int)","u":"get(int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"get(int...)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"get(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"get(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"get(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"get(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"get(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"get(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"get(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"get(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"get(int...)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"get(int...)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"get(int...)"},{"p":"org.flag4j.core","c":"MatrixMixin","l":"get(int...)"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"get(int...)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"get2x2EigenValues(CMatrix)","u":"get2x2EigenValues(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"get2x2EigenValues(CNumber, CNumber, CNumber, CNumber)","u":"get2x2EigenValues(org.flag4j.complex_numbers.CNumber,org.flag4j.complex_numbers.CNumber,org.flag4j.complex_numbers.CNumber,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"get2x2EigenValues(double, double, double, double)","u":"get2x2EigenValues(double,double,double,double)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"get2x2EigenValues(Matrix)","u":"get2x2EigenValues(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.transformations","c":"Givens","l":"get2x2Rotator(CNumber, CNumber)","u":"get2x2Rotator(org.flag4j.complex_numbers.CNumber,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.linalg.transformations","c":"Givens","l":"get2x2Rotator(CVector)","u":"get2x2Rotator(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.linalg.transformations","c":"Givens","l":"get2x2Rotator(double, double)","u":"get2x2Rotator(double,double)"},{"p":"org.flag4j.linalg.transformations","c":"Givens","l":"get2x2Rotator(Vector)","u":"get2x2Rotator(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getArrayLengthsMismatchErr(int...)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getAxisErr(int)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getAxisErr(int, int...)","u":"getAxisErr(int,int...)"},{"p":"org.flag4j.concurrency","c":"Configurations","l":"getBlockSize()"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"getCol(CooCMatrix, int)","u":"getCol(org.flag4j.arrays.sparse.CooCMatrix,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"getCol(CooCMatrix, int, int, int)","u":"getCol(org.flag4j.arrays.sparse.CooCMatrix,int,int,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"getCol(CooMatrix, int)","u":"getCol(org.flag4j.arrays.sparse.CooMatrix,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"getCol(CooMatrix, int, int, int)","u":"getCol(org.flag4j.arrays.sparse.CooMatrix,int,int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"getCol(int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"getCol(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"getCol(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"getCol(int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"getCol(int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"getCol(int)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"getCol(int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"getCol(int, int, int)","u":"getCol(int,int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"getCol(int, int, int)","u":"getCol(int,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"getCol(int, int, int)","u":"getCol(int,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"getCol(int, int, int)","u":"getCol(int,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"getCol(int, int, int)","u":"getCol(int,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"getCol(int, int, int)","u":"getCol(int,int,int)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"getCol(int, int, int)","u":"getCol(int,int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"getColAsVector(int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"getColAsVector(int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"getColBelow(int, int)","u":"getColBelow(int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"getColBelow(int, int)","u":"getColBelow(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"getColBelow(int, int)","u":"getColBelow(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"getColBelow(int, int)","u":"getColBelow(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"getColBelow(int, int)","u":"getColBelow(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"getColBelow(int, int)","u":"getColBelow(int,int)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"getColBelow(int, int)","u":"getColBelow(int,int)"},{"p":"org.flag4j.linalg","c":"SubSpace","l":"getColSpace(CMatrix)","u":"getColSpace(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"SubSpace","l":"getColSpace(Matrix)","u":"getColSpace(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.complex_numbers","c":"CNumberLexer","l":"getContent()"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexBackSolver","l":"getDet()"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexForwardSolver","l":"getDet()"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealBackSolver","l":"getDet()"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealForwardSolver","l":"getDet()"},{"p":"org.flag4j.complex_numbers","c":"CNumberToken","l":"getDetails()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"getDiag()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"getDiag()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"getDiag()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"getDiag()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"getDiag()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"getDiag()"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"getDiag()"},{"p":"org.flag4j.core","c":"Shape","l":"getDims()"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenPairs(CMatrix)","u":"getEigenPairs(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenPairs(Matrix)","u":"getEigenPairs(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenValues(CMatrix)","u":"getEigenValues(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenValues(CMatrix, ComplexSchur)","u":"getEigenValues(org.flag4j.arrays.dense.CMatrix,org.flag4j.linalg.decompositions.schur.ComplexSchur)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenValues(CMatrix, long)","u":"getEigenValues(org.flag4j.arrays.dense.CMatrix,long)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenValues(CMatrix, long, int)","u":"getEigenValues(org.flag4j.arrays.dense.CMatrix,long,int)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenValues(Matrix)","u":"getEigenValues(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenValues(Matrix, long)","u":"getEigenValues(org.flag4j.arrays.dense.Matrix,long)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenValues(Matrix, long, int)","u":"getEigenValues(org.flag4j.arrays.dense.Matrix,long,int)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenValues(Matrix, RealSchur)","u":"getEigenValues(org.flag4j.arrays.dense.Matrix,org.flag4j.linalg.decompositions.schur.RealSchur)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenVectors(CMatrix)","u":"getEigenVectors(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenVectors(CMatrix, ComplexSchur)","u":"getEigenVectors(org.flag4j.arrays.dense.CMatrix,org.flag4j.linalg.decompositions.schur.ComplexSchur)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenVectors(CMatrix, long)","u":"getEigenVectors(org.flag4j.arrays.dense.CMatrix,long)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenVectors(CMatrix, long, int)","u":"getEigenVectors(org.flag4j.arrays.dense.CMatrix,long,int)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenVectors(Matrix)","u":"getEigenVectors(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenVectors(Matrix, long)","u":"getEigenVectors(org.flag4j.arrays.dense.Matrix,long)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenVectors(Matrix, long, int)","u":"getEigenVectors(org.flag4j.arrays.dense.Matrix,long,int)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenVectors(Matrix, RealSchur)","u":"getEigenVectors(org.flag4j.arrays.dense.Matrix,org.flag4j.linalg.decompositions.schur.RealSchur)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenVectorsTriu(CMatrix)","u":"getEigenVectorsTriu(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenVectorsTriu(Matrix)","u":"getEigenVectorsTriu(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"getEmpty(int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"getEmpty(int, int)","u":"getEmpty(int,int)"},{"p":"org.flag4j.core","c":"TensorBase","l":"getEntries()"},{"p":"org.flag4j.linalg.transformations","c":"Givens","l":"getGeneralRotator(int, int, int, double)","u":"getGeneralRotator(int,int,int,double)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getGreaterEqErr(double, double)","u":"getGreaterEqErr(double,double)"},{"p":"org.flag4j.linalg.decompositions.hess","c":"ComplexHess","l":"getH()"},{"p":"org.flag4j.linalg.decompositions.hess","c":"RealHess","l":"getH()"},{"p":"org.flag4j.linalg.decompositions.hess","c":"SymmHess","l":"getH()"},{"p":"org.flag4j.core","c":"Shape","l":"getIndices(int)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getIndicesRankErr(int, int)","u":"getIndicesRankErr(int,int)"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher","l":"getInstance()"},{"p":"org.flag4j.linalg","c":"TensorInvert","l":"getInvShape(Shape, int)","u":"getInvShape(org.flag4j.core.Shape,int)"},{"p":"org.flag4j.complex_numbers","c":"CNumberToken","l":"getKind()"},{"p":"org.flag4j.linalg.decompositions.chol","c":"Cholesky","l":"getL()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"ComplexLU","l":"getL()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"getL()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"RealLU","l":"getL()"},{"p":"org.flag4j.linalg","c":"SubSpace","l":"getLeftNullSpace(CMatrix)","u":"getLeftNullSpace(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"SubSpace","l":"getLeftNullSpace(Matrix)","u":"getLeftNullSpace(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getLessEqErr(double, double)","u":"getLessEqErr(double,double)"},{"p":"org.flag4j.linalg.decompositions.chol","c":"Cholesky","l":"getLH()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"getLU()"},{"p":"org.flag4j.io","c":"PrintOptions","l":"getMaxColumns()"},{"p":"org.flag4j.io","c":"PrintOptions","l":"getMaxRows()"},{"p":"org.flag4j.concurrency","c":"Configurations","l":"getMinRecursiveSize()"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getNamedGreaterEqErr(double, double, String)","u":"getNamedGreaterEqErr(double,double,java.lang.String)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getNamedLessEqErr(BigInteger, double, String)","u":"getNamedLessEqErr(java.math.BigInteger,double,java.lang.String)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getNamedLessEqErr(double, double, String)","u":"getNamedLessEqErr(double,double,java.lang.String)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getNegValueErr(double)"},{"p":"org.flag4j.core","c":"Shape","l":"getNextIndices(int[], int)","u":"getNextIndices(int[],int)"},{"p":"org.flag4j.complex_numbers","c":"CNumberLexer","l":"getNextSymbol()"},{"p":"org.flag4j.complex_numbers","c":"CNumberLexer","l":"getNextToken()"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getNonPosErr(double)"},{"p":"org.flag4j.linalg","c":"SubSpace","l":"getNullSpace(CMatrix)","u":"getNullSpace(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"SubSpace","l":"getNullSpace(Matrix)","u":"getNullSpace(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"getNumColSwaps()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"getNumRowSwaps()"},{"p":"org.flag4j.concurrency","c":"Configurations","l":"getNumThreads()"},{"p":"org.flag4j.linalg.transformations","c":"Projection","l":"getOrthogonal(double, double, double, double)","u":"getOrthogonal(double,double,double,double)"},{"p":"org.flag4j.linalg.transformations","c":"Projection","l":"getOrthogonal(double, double, double, double, double, double)","u":"getOrthogonal(double,double,double,double,double,double)"},{"p":"org.flag4j.linalg.transformations","c":"Projection","l":"getOrthogonal2D(double, double)","u":"getOrthogonal2D(double,double)"},{"p":"org.flag4j.linalg.transformations","c":"Projection","l":"getOrthogonal2D(double, double, double, double)","u":"getOrthogonal2D(double,double,double,double)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactTensorSolver","l":"getOutputShape(T, T, int)","u":"getOutputShape(T,T,int)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"getP()"},{"p":"org.flag4j.io","c":"PrintOptions","l":"getPadding()"},{"p":"org.flag4j.concurrency","c":"ThreadManager","l":"getParallelismLevel()"},{"p":"org.flag4j.linalg.transformations","c":"Projection","l":"getPerspective(double, double, double, double)","u":"getPerspective(double,double,double,double)"},{"p":"org.flag4j.linalg.transformations","c":"Projection","l":"getPerspective(double, double, double, double, double)","u":"getPerspective(double,double,double,double,double)"},{"p":"org.flag4j.io","c":"PrintOptions","l":"getPrecision()"},{"p":"org.flag4j.linalg","c":"TensorInvert","l":"getProduct(int[], int)","u":"getProduct(int[],int)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"getQ()"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"ComplexUnitaryDecomposition","l":"getQ()"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"RealUnitaryDecomposition","l":"getQ()"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"getQ()"},{"p":"org.flag4j.linalg.decompositions.qr","c":"ComplexQR","l":"getR()"},{"p":"org.flag4j.linalg.decompositions.qr","c":"RealQR","l":"getR()"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getRangeErr(double, double, double, String)","u":"getRangeErr(double,double,double,java.lang.String)"},{"p":"org.flag4j.core","c":"Shape","l":"getRank()"},{"p":"org.flag4j.core","c":"TensorBase","l":"getRank()"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"getRank()"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"getRank()"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"getRatio(Shape)","u":"getRatio(org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher","l":"getRatio(Shape)","u":"getRatio(org.flag4j.core.Shape)"},{"p":"org.flag4j.linalg.transformations","c":"Householder","l":"getReflector(CVector)","u":"getReflector(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.linalg.transformations","c":"Householder","l":"getReflector(Vector)","u":"getReflector(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.linalg.transformations","c":"Givens","l":"getRotator(CVector, int)","u":"getRotator(org.flag4j.arrays.dense.CVector,int)"},{"p":"org.flag4j.linalg.transformations","c":"Givens","l":"getRotator(double[], int)","u":"getRotator(double[],int)"},{"p":"org.flag4j.linalg.transformations","c":"Givens","l":"getRotator(Vector, int)","u":"getRotator(org.flag4j.arrays.dense.Vector,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"getRow(CooCMatrix, int)","u":"getRow(org.flag4j.arrays.sparse.CooCMatrix,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"getRow(CooCMatrix, int, int, int)","u":"getRow(org.flag4j.arrays.sparse.CooCMatrix,int,int,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"getRow(CooMatrix, int)","u":"getRow(org.flag4j.arrays.sparse.CooMatrix,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"getRow(CooMatrix, int, int, int)","u":"getRow(org.flag4j.arrays.sparse.CooMatrix,int,int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"getRow(int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"getRow(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"getRow(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"getRow(int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"getRow(int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"getRow(int)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"getRow(int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"getRowAfter(int, int)","u":"getRowAfter(int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"getRowAfter(int, int)","u":"getRowAfter(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"getRowAfter(int, int)","u":"getRowAfter(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"getRowAfter(int, int)","u":"getRowAfter(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"getRowAfter(int, int)","u":"getRowAfter(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"getRowAfter(int, int)","u":"getRowAfter(int,int)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"getRowAfter(int, int)","u":"getRowAfter(int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"getRowAsVector(int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"getRowAsVector(int)"},{"p":"org.flag4j.linalg","c":"SubSpace","l":"getRowSpace(CMatrix)","u":"getRowSpace(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"SubSpace","l":"getRowSpace(Matrix)","u":"getRowSpace(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"getS()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"getSelf()"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"getSelf()"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"getSelf()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"getSelf()"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"getSelf()"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"getSelf()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"getSelf()"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"getSelf()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"getSelf()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"getSelf()"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"getSelf()"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"getSelf()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"getSelf()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"getSelf()"},{"p":"org.flag4j.core","c":"TensorBase","l":"getSelf()"},{"p":"org.flag4j.core","c":"TensorBase","l":"getShape()"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getShapeBroadcastErr(Shape, Shape)","u":"getShapeBroadcastErr(org.flag4j.core.Shape,org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"getSlice(CooCMatrix, int, int, int, int)","u":"getSlice(org.flag4j.arrays.sparse.CooCMatrix,int,int,int,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"getSlice(CooMatrix, int, int, int, int)","u":"getSlice(org.flag4j.arrays.sparse.CooMatrix,int,int,int,int)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrOperations","l":"getSlice(CsrCMatrix, int, int, int, int)","u":"getSlice(org.flag4j.arrays.sparse.CsrCMatrix,int,int,int,int)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrOperations","l":"getSlice(CsrMatrix, int, int, int, int)","u":"getSlice(org.flag4j.arrays.sparse.CsrMatrix,int,int,int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"getSlice(int, int, int, int)","u":"getSlice(int,int,int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"getSlice(int, int, int, int)","u":"getSlice(int,int,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"getSlice(int, int, int, int)","u":"getSlice(int,int,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"getSlice(int, int, int, int)","u":"getSlice(int,int,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"getSlice(int, int, int, int)","u":"getSlice(int,int,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"getSlice(int, int, int, int)","u":"getSlice(int,int,int,int)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"getSlice(int, int, int, int)","u":"getSlice(int,int,int,int)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getSquareShapeErr(Shape)","u":"getSquareShapeErr(org.flag4j.core.Shape)"},{"p":"org.flag4j.core","c":"Shape","l":"getStrides()"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"getT()"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getTotalEntriesErr()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"ComplexLU","l":"getU()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"getU()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"RealLU","l":"getU()"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"getU()"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"getU()"},{"p":"org.flag4j.linalg.decompositions.hess","c":"ComplexHess","l":"getUpper()"},{"p":"org.flag4j.linalg.decompositions.hess","c":"RealHess","l":"getUpper()"},{"p":"org.flag4j.linalg.decompositions.qr","c":"ComplexQR","l":"getUpper()"},{"p":"org.flag4j.linalg.decompositions.qr","c":"RealQR","l":"getUpper()"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"getUpper()"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"ComplexUnitaryDecomposition","l":"getUpper(CMatrix)","u":"getUpper(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"RealUnitaryDecomposition","l":"getUpper(Matrix)","u":"getUpper(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"getUpper(T)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getUtilityClassErrMsg()"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"getV()"},{"p":"org.flag4j.linalg.transformations","c":"Householder","l":"getVector(Vector)","u":"getVector(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.linalg.transformations","c":"Givens","l":"Givens()","u":"%3Cinit%3E()"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"GREATER_EQ_ERR"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"H()"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"H()"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"H()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"H()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"H()"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"H()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"H()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"H()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"H()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"H()"},{"p":"org.flag4j.core","c":"ComplexMatrixMixin","l":"H()"},{"p":"org.flag4j.core","c":"ComplexTensorMixin","l":"H()"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"H()"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"H(int, int)","u":"H(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"H(int, int)","u":"H(int,int)"},{"p":"org.flag4j.core","c":"ComplexTensorExclusiveMixin","l":"H(int, int)","u":"H(int,int)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"H(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"H(int...)"},{"p":"org.flag4j.core","c":"ComplexTensorExclusiveMixin","l":"H(int...)"},{"p":"org.flag4j.linalg","c":"SubSpace","l":"hasEqualSpan(CMatrix, CMatrix)","u":"hasEqualSpan(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"SubSpace","l":"hasEqualSpan(Matrix, Matrix)","u":"hasEqualSpan(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"hashCode()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"hashCode()"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"hashCode()"},{"p":"org.flag4j.arrays.sparse","c":"SymmTriDiagonal","l":"hashCode()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"hashCode()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"hashCode()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"hashCode()"},{"p":"org.flag4j.core","c":"Shape","l":"hashCode()"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"HERMATION_BLOCKED_THRESHOLD"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"hermTranspose()"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"hermTranspose()"},{"p":"org.flag4j.core","c":"ComplexTensorMixin","l":"hermTranspose()"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrOperations","l":"hermTranspose(CsrCMatrix)","u":"hermTranspose(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.core","c":"ComplexTensorExclusiveMixin","l":"hermTranspose(int, int)","u":"hermTranspose(int,int)"},{"p":"org.flag4j.core","c":"ComplexTensorExclusiveMixin","l":"hermTranspose(int...)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"hess"},{"p":"org.flag4j.linalg.transformations","c":"Householder","l":"Householder()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"householderVector"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"householderVector"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"I(int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"I(int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"I(int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"I(int, int)","u":"I(int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"I(int, int)","u":"I(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"I(int, int)","u":"I(int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"I(Shape)","u":"I(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"I(Shape)","u":"I(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"I(Shape)","u":"I(org.flag4j.core.Shape)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"im"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"im()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"IMAGINARY_UNIT"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"indexOf(int[], int)","u":"indexOf(int[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"indices"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"indices"},{"p":"org.flag4j.core.sparse_base","c":"SparseTensorBase","l":"indices"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"INDICES_RANK_ERR"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"infNorm(CMatrix)","u":"infNorm(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"infNorm(ComplexDenseTensorBase)","u":"infNorm(org.flag4j.core.dense_base.ComplexDenseTensorBase)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"infNorm(CooCVector)","u":"infNorm(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"infNorm(CooVector)","u":"infNorm(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"infNorm(CTensor)","u":"infNorm(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"infNorm(CVector)","u":"infNorm(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"infNorm(Matrix)","u":"infNorm(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"infNorm(RealDenseTensorBase)","u":"infNorm(org.flag4j.core.dense_base.RealDenseTensorBase)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"infNorm(Vector)","u":"infNorm(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.util.exceptions","c":"SingularMatrixException","l":"INFO"},{"p":"org.flag4j.linalg.decompositions.lu","c":"ComplexLU","l":"initLU(CMatrix)","u":"initLU(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"RealLU","l":"initLU(Matrix)","u":"initLU(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"initLU(T)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ComplexExactTensorSolver","l":"initMatrix(CTensor, int)","u":"initMatrix(org.flag4j.arrays.dense.CTensor,int)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactTensorSolver","l":"initMatrix(T, int)","u":"initMatrix(T,int)"},{"p":"org.flag4j.linalg.solvers.exact","c":"RealExactTensorSolver","l":"initMatrix(Tensor, int)","u":"initMatrix(org.flag4j.arrays.dense.Tensor,int)"},{"p":"org.flag4j.linalg.decompositions.hess","c":"ComplexHess","l":"initQ()"},{"p":"org.flag4j.linalg.decompositions.hess","c":"RealHess","l":"initQ()"},{"p":"org.flag4j.linalg.decompositions.qr","c":"ComplexQR","l":"initQ()"},{"p":"org.flag4j.linalg.decompositions.qr","c":"RealQR","l":"initQ()"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"initQ()"},{"p":"org.flag4j.linalg.decompositions.svd","c":"ComplexSVD","l":"initUV(Shape, int)","u":"initUV(org.flag4j.core.Shape,int)"},{"p":"org.flag4j.linalg.decompositions.svd","c":"RealSVD","l":"initUV(Shape, int)","u":"initUV(org.flag4j.core.Shape,int)"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"initUV(Shape, int)","u":"initUV(org.flag4j.core.Shape,int)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ComplexExactTensorSolver","l":"initVector(CTensor)","u":"initVector(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactTensorSolver","l":"initVector(T)"},{"p":"org.flag4j.linalg.solvers.exact","c":"RealExactTensorSolver","l":"initVector(Tensor)","u":"initVector(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"ComplexUnitaryDecomposition","l":"initWorkArrays(int)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"RealUnitaryDecomposition","l":"initWorkArrays(int)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"initWorkArrays(int)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"inner(CNumber[], double[], int[], int)","u":"inner(org.flag4j.complex_numbers.CNumber[],double[],int[],int)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"inner(CooCVector)","u":"inner(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"inner(CooCVector)","u":"inner(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"inner(CooCVector)","u":"inner(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"inner(CooCVector)","u":"inner(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"inner(CooCVector)","u":"inner(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseVectorOperations","l":"inner(CooCVector, CooCVector)","u":"inner(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseVectorOperations","l":"inner(CooCVector, CooVector)","u":"inner(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"inner(CooVector)","u":"inner(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"inner(CooVector)","u":"inner(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"inner(CooVector)","u":"inner(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"inner(CooVector)","u":"inner(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"inner(CooVector)","u":"inner(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseVectorOperations","l":"inner(CooVector, CooCVector)","u":"inner(org.flag4j.arrays.sparse.CooVector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseVectorOperations","l":"inner(CooVector, CooVector)","u":"inner(org.flag4j.arrays.sparse.CooVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"inner(CVector)","u":"inner(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"inner(CVector)","u":"inner(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"inner(CVector)","u":"inner(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"inner(CVector)","u":"inner(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"inner(CVector)","u":"inner(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"inner(double[], CNumber[], int[], int)","u":"inner(double[],org.flag4j.complex_numbers.CNumber[],int[],int)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseVectorOperations","l":"inner(double[], double[], int[], int)","u":"inner(double[],double[],int[],int)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"inner(double[], int[], int, CNumber[])","u":"inner(double[],int[],int,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"inner(Vector)","u":"inner(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"inner(Vector)","u":"inner(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"inner(Vector)","u":"inner(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"inner(Vector)","u":"inner(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"inner(Vector)","u":"inner(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseVectorOperations","l":"innerProduct(CNumber[], CNumber[])","u":"innerProduct(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseVectorOperations","l":"innerProduct(CNumber[], CNumber[], int[], int)","u":"innerProduct(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber[],int[],int)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseVectorOperations","l":"innerProduct(CNumber[], double[])","u":"innerProduct(org.flag4j.complex_numbers.CNumber[],double[])"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseVectorOperations","l":"innerProduct(CNumber[], int[], int, CNumber[])","u":"innerProduct(org.flag4j.complex_numbers.CNumber[],int[],int,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseVectorOperations","l":"innerProduct(double[], CNumber[])","u":"innerProduct(double[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseVectorOperations","l":"innerProduct(double[], double[])","u":"innerProduct(double[],double[])"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"innerSelf()"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"inSlice(int, int, int, int, int, int)","u":"inSlice(int,int,int,int,int,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"inSlice(int, int, int, int, int, int)","u":"inSlice(int,int,int,int,int,int)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"intImaginaryValue()"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"intRange(int, int)","u":"intRange(int,int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"intRange(int, int, int)","u":"intRange(int,int,int)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"intValue()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"INV_IMAGINARY_UNIT"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"inv()"},{"p":"org.flag4j.linalg","c":"Invert","l":"inv(CMatrix)","u":"inv(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"TensorInvert","l":"inv(CTensor, int)","u":"inv(org.flag4j.arrays.dense.CTensor,int)"},{"p":"org.flag4j.linalg","c":"Invert","l":"inv(Matrix)","u":"inv(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg","c":"TensorInvert","l":"inv(Tensor, int)","u":"inv(org.flag4j.arrays.dense.Tensor,int)"},{"p":"org.flag4j.linalg","c":"Invert","l":"invDiag(CMatrix)","u":"invDiag(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"Invert","l":"invDiag(Matrix)","u":"invDiag(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.decompositions.svd","c":"ComplexSVD","l":"invDirectSum(CMatrix)","u":"invDirectSum(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CMatrix, CMatrix)","u":"invDirectSum(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CMatrix, CooCMatrix)","u":"invDirectSum(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CMatrix, CooMatrix)","u":"invDirectSum(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CMatrix, Matrix)","u":"invDirectSum(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CooCMatrix, CMatrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CooCMatrix, CooCMatrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CooCMatrix, CooMatrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CooCMatrix, Matrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CooMatrix, CMatrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CooMatrix, CooCMatrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CooMatrix, CooMatrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CooMatrix, Matrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CsrCMatrix, CMatrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CsrCMatrix, CooCMatrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CsrCMatrix, CooMatrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CsrCMatrix, CsrMatrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CsrCMatrix, Matrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CsrMatrix, CMatrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CsrMatrix, CooCMatrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CsrMatrix, CooMatrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CsrMatrix, CsrMatrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CsrMatrix, Matrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.decompositions.svd","c":"RealSVD","l":"invDirectSum(Matrix)","u":"invDirectSum(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(Matrix, CMatrix)","u":"invDirectSum(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(Matrix, CooCMatrix)","u":"invDirectSum(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(Matrix, CooMatrix)","u":"invDirectSum(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(Matrix, Matrix)","u":"invDirectSum(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"invDirectSum(T)"},{"p":"org.flag4j.linalg","c":"Invert","l":"Invert()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg","c":"Invert","l":"invHermPosDef(CMatrix)","u":"invHermPosDef(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"Invert","l":"invHermPosDef(CMatrix, boolean)","u":"invHermPosDef(org.flag4j.arrays.dense.CMatrix,boolean)"},{"p":"org.flag4j.linalg","c":"Invert","l":"invSymPosDef(Matrix)","u":"invSymPosDef(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg","c":"Invert","l":"invSymPosDef(Matrix, boolean)","u":"invSymPosDef(org.flag4j.arrays.dense.Matrix,boolean)"},{"p":"org.flag4j.linalg","c":"Invert","l":"invTriL(CMatrix)","u":"invTriL(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"Invert","l":"invTriL(Matrix)","u":"invTriL(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg","c":"Invert","l":"invTriU(CMatrix)","u":"invTriU(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"Invert","l":"invTriU(Matrix)","u":"invTriU(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"isAntiHermitian()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"isAntiHermitian()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"isAntiHermitian()"},{"p":"org.flag4j.core","c":"ComplexMatrixMixin","l":"isAntiHermitian()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseProperties","l":"isAntiHermitian(CNumber[], Shape)","u":"isAntiHermitian(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixProperties","l":"isAntiHermitian(CooCMatrix)","u":"isAntiHermitian(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrProperties","l":"isAntiHermitian(CsrCMatrix)","u":"isAntiHermitian(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"isAntiSymmetric()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"isAntiSymmetric()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"isAntiSymmetric()"},{"p":"org.flag4j.core","c":"RealMatrixMixin","l":"isAntiSymmetric()"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixProperties","l":"isAntiSymmetric(CooMatrix)","u":"isAntiSymmetric(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrProperties","l":"isAntiSymmetric(CsrMatrix)","u":"isAntiSymmetric(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseProperties","l":"isAntiSymmetric(double[], Shape)","u":"isAntiSymmetric(double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"isCloseToI()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"isCloseToI()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseProperties","l":"isCloseToIdentity(CMatrix)","u":"isCloseToIdentity(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseProperties","l":"isCloseToIdentity(Matrix)","u":"isCloseToIdentity(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"isComplex()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"isComplex()"},{"p":"org.flag4j.core","c":"ComplexMatrixMixin","l":"isComplex()"},{"p":"org.flag4j.core","c":"ComplexTensorMixin","l":"isComplex()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"isComplex()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"isComplex()"},{"p":"org.flag4j.operations.common.complex","c":"ComplexProperties","l":"isComplex(CNumber[])","u":"isComplex(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"isDiag()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"isDiag()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"isDiag()"},{"p":"org.flag4j.core","c":"MatrixPropertiesMixin","l":"isDiag()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"isDouble()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"isFinite()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"isFullRank()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"isFullRank()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"isFullRank()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"isFullRank()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"isFullRank()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"isFullRank()"},{"p":"org.flag4j.core","c":"MatrixPropertiesMixin","l":"isFullRank()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"isHermitian()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"isHermitian()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"isHermitian()"},{"p":"org.flag4j.core","c":"ComplexMatrixMixin","l":"isHermitian()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseProperties","l":"isHermitian(CNumber[], Shape)","u":"isHermitian(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixProperties","l":"isHermitian(CooCMatrix)","u":"isHermitian(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrProperties","l":"isHermitian(CsrCMatrix)","u":"isHermitian(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"isI()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"isI()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"isI()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"isI()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"isI()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"isI()"},{"p":"org.flag4j.core","c":"MatrixComparisonsMixin","l":"isI()"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixProperties","l":"isIdentity(CooCMatrix)","u":"isIdentity(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixProperties","l":"isIdentity(CooMatrix)","u":"isIdentity(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrProperties","l":"isIdentity(CsrCMatrix)","u":"isIdentity(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrProperties","l":"isIdentity(CsrMatrix)","u":"isIdentity(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseProperties","l":"isIdentity(Matrix)","u":"isIdentity(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"isImaginary()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"isInfinite()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"isInt()"},{"p":"org.flag4j.linalg","c":"Invert","l":"isInv(CMatrix, CMatrix)","u":"isInv(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"Invert","l":"isInv(Matrix, Matrix)","u":"isInv(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"isInvertible()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"isInvertible()"},{"p":"org.flag4j.core","c":"MatrixPropertiesMixin","l":"isInvertible()"},{"p":"org.flag4j.complex_numbers","c":"CNumberToken","l":"isKind(String)","u":"isKind(java.lang.String)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"isNaN()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"isNeg()"},{"p":"org.flag4j.core","c":"RealTensorMixin","l":"isNeg()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"isNeg()"},{"p":"org.flag4j.operations.common.real","c":"RealProperties","l":"isNeg(double[])"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"isOnes()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"isOnes()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"isOnes()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"isOnes()"},{"p":"org.flag4j.core","c":"TensorComparisonsMixin","l":"isOnes()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseProperties","l":"isOnes(CNumber[])","u":"isOnes(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseProperties","l":"isOnes(double[])"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"isOrthogonal()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"isOrthogonal()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"isOrthogonal()"},{"p":"org.flag4j.core","c":"RealMatrixMixin","l":"isOrthogonal()"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"isParallel(Vector)","u":"isParallel(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"isParallel(Vector)","u":"isParallel(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"isParallel(Vector)","u":"isParallel(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"isParallel(Vector)","u":"isParallel(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"isParallel(Vector)","u":"isParallel(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"isPerp(Vector)","u":"isPerp(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"isPerp(Vector)","u":"isPerp(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"isPerp(Vector)","u":"isPerp(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"isPerp(Vector)","u":"isPerp(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"isPerp(Vector)","u":"isPerp(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"isPos()"},{"p":"org.flag4j.core","c":"RealTensorMixin","l":"isPos()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"isPos()"},{"p":"org.flag4j.operations.common.real","c":"RealProperties","l":"isPos(double[])"},{"p":"org.flag4j.linalg","c":"PositiveDefiniteness","l":"isPosDef(CMatrix)","u":"isPosDef(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"PositiveDefiniteness","l":"isPosDef(Matrix)","u":"isPosDef(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg","c":"PositiveDefiniteness","l":"isPosSemiDef(CMatrix)","u":"isPosSemiDef(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"PositiveDefiniteness","l":"isPosSemiDef(Matrix)","u":"isPosSemiDef(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"isReal()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"isReal()"},{"p":"org.flag4j.core","c":"ComplexMatrixMixin","l":"isReal()"},{"p":"org.flag4j.core","c":"ComplexTensorMixin","l":"isReal()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"isReal()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"isReal()"},{"p":"org.flag4j.operations.common.complex","c":"ComplexProperties","l":"isReal(CNumber[])","u":"isReal(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"isSingular()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"isSingular()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"isSingular()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"isSingular()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"isSingular()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"isSingular()"},{"p":"org.flag4j.core","c":"MatrixPropertiesMixin","l":"isSingular()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"isSquare()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"isSquare()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"isSquare()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"isSquare()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"isSquare()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"isSquare()"},{"p":"org.flag4j.core","c":"MatrixPropertiesMixin","l":"isSquare()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"isSymmetric()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"isSymmetric()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"isSymmetric()"},{"p":"org.flag4j.core","c":"RealMatrixMixin","l":"isSymmetric()"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixProperties","l":"isSymmetric(CooMatrix)","u":"isSymmetric(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrProperties","l":"isSymmetric(CsrMatrix)","u":"isSymmetric(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseProperties","l":"isSymmetric(double[], Shape)","u":"isSymmetric(double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.linalg","c":"PositiveDefiniteness","l":"isSymmPosDef(CMatrix)","u":"isSymmPosDef(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"PositiveDefiniteness","l":"isSymmPosDef(Matrix)","u":"isSymmPosDef(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"isTri()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"isTri()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"isTri()"},{"p":"org.flag4j.core","c":"MatrixPropertiesMixin","l":"isTri()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"isTriL()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"isTriL()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"isTriL()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"isTriL()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"isTriL()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"isTriL()"},{"p":"org.flag4j.core","c":"MatrixPropertiesMixin","l":"isTriL()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"isTriU()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"isTriU()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"isTriU()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"isTriU()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"isTriU()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"isTriU()"},{"p":"org.flag4j.core","c":"MatrixPropertiesMixin","l":"isTriU()"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ForwardSolver","l":"isUnit"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"isUnitary()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"isUnitary()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"isUnitary()"},{"p":"org.flag4j.core","c":"ComplexMatrixMixin","l":"isUnitary()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"isVector()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"isVector()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"isVector()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"isVector()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"isVector()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"isVector()"},{"p":"org.flag4j.core","c":"MatrixPropertiesMixin","l":"isVector()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"isZeros()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"isZeros()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"isZeros()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"isZeros()"},{"p":"org.flag4j.core","c":"TensorComparisonsMixin","l":"isZeros()"},{"p":"org.flag4j.operations.common.complex","c":"ComplexProperties","l":"isZeros(CNumber[])","u":"isZeros(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.common.real","c":"RealProperties","l":"isZeros(double[])"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"join(CooCVector)","u":"join(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"join(CooCVector)","u":"join(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"join(CooCVector)","u":"join(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"join(CooCVector)","u":"join(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"join(CooCVector)","u":"join(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"join(CooVector)","u":"join(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"join(CooVector)","u":"join(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"join(CooVector)","u":"join(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"join(CooVector)","u":"join(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"join(CooVector)","u":"join(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"join(CVector)","u":"join(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"join(CVector)","u":"join(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"join(CVector)","u":"join(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"join(CVector)","u":"join(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"join(CVector)","u":"join(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"join(double[], double[])","u":"join(double[],double[])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"join(int[], int[])","u":"join(int[],int[])"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"join(Vector)","u":"join(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"join(Vector)","u":"join(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"join(Vector)","u":"join(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"join(Vector)","u":"join(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"join(Vector)","u":"join(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"keys"},{"p":"org.flag4j.complex_numbers","c":"CNumberToken","l":"kind"},{"p":"org.flag4j.linalg.decompositions.chol","c":"Cholesky","l":"L"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"leftMult(CMatrix)","u":"leftMult(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"leftMult(CVector)","u":"leftMult(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"leftMult(Matrix)","u":"leftMult(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"leftMult(Vector)","u":"leftMult(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.linalg.transformations","c":"Givens","l":"leftMult2x2Rotator(CMatrix, CMatrix, int, CNumber[])","u":"leftMult2x2Rotator(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CMatrix,int,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.linalg.transformations","c":"Givens","l":"leftMult2x2Rotator(Matrix, Matrix, int, double[])","u":"leftMult2x2Rotator(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Matrix,int,double[])"},{"p":"org.flag4j.linalg.transformations","c":"Householder","l":"leftMultReflector(CMatrix, CNumber[], CNumber, int, int, int, CNumber[])","u":"leftMultReflector(org.flag4j.arrays.dense.CMatrix,org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber,int,int,int,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.linalg.transformations","c":"Householder","l":"leftMultReflector(CMatrix, CVector, CNumber, int, int, int)","u":"leftMultReflector(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CVector,org.flag4j.complex_numbers.CNumber,int,int,int)"},{"p":"org.flag4j.linalg.transformations","c":"Householder","l":"leftMultReflector(Matrix, double[], double, int, int, int, double[])","u":"leftMultReflector(org.flag4j.arrays.dense.Matrix,double[],double,int,int,int,double[])"},{"p":"org.flag4j.linalg.transformations","c":"Householder","l":"leftMultReflector(Matrix, Vector, double, int, int, int)","u":"leftMultReflector(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Vector,double,int,int,int)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"length()"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"length()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"length()"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"length()"},{"p":"org.flag4j.core","c":"VectorPropertiesMixin","l":"length()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"length(CNumber)","u":"length(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"LESS_EQ_ERR"},{"p":"org.flag4j.util.exceptions","c":"LinearAlgebraException","l":"LinearAlgebraException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"ln(CNumber)","u":"ln(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"ln(double)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"log(CNumber)","u":"log(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"log(CNumber, CNumber)","u":"log(org.flag4j.complex_numbers.CNumber,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"log(double)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"log(double, CNumber)","u":"log(double,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"log(double, double)","u":"log(double,double)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"longImaginaryValue()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"longValue()"},{"p":"org.flag4j.linalg.transformations","c":"View","l":"lookAt(Vector, Vector, Vector)","u":"lookAt(org.flag4j.arrays.dense.Vector,org.flag4j.arrays.dense.Vector,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.linalg.solvers.lstsq","c":"LstsqSolver","l":"LstsqSolver(UnitaryDecomposition, LinearSolver)","u":"%3Cinit%3E(org.flag4j.linalg.decompositions.unitary.UnitaryDecomposition,org.flag4j.linalg.solvers.LinearSolver)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactSolver","l":"lu"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"LU"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactSolver","l":"LU"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"LU(int)","u":"%3Cinit%3E(int)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"LU(int, double)","u":"%3Cinit%3E(int,double)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"mag()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"magSquared()"},{"p":"org.flag4j.core","c":"Shape","l":"main(String[])","u":"main(java.lang.String[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseTranspose","l":"main(String[])","u":"main(java.lang.String[])"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"makeComplexTensor(Shape, CNumber[])","u":"makeComplexTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"makeComplexTensor(Shape, CNumber[])","u":"makeComplexTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"makeComplexTensor(Shape, CNumber[])","u":"makeComplexTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"makeComplexTensor(Shape, CNumber[])","u":"makeComplexTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"makeComplexTensor(Shape, CNumber[], int[][])","u":"makeComplexTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"makeComplexTensor(Shape, CNumber[], int[][])","u":"makeComplexTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"makeComplexTensor(Shape, CNumber[], int[][])","u":"makeComplexTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"makeComplexTensor(Shape, CNumber[], int[][])","u":"makeComplexTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[][])"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"makeComplexTensor(Shape, CNumber[], int[][])","u":"makeComplexTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[][])"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"makeComplexTensor(Shape, double[])","u":"makeComplexTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"makeComplexTensor(Shape, double[])","u":"makeComplexTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"makeComplexTensor(Shape, double[])","u":"makeComplexTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"makeComplexTensor(Shape, double[])","u":"makeComplexTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"makeDenseTensor(Shape, double[])","u":"makeDenseTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"makeDenseTensor(Shape, double[])","u":"makeDenseTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"makeDenseTensor(Shape, double[])","u":"makeDenseTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"makeDenseTensor(Shape, double[])","u":"makeDenseTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"makeDenseTensor(Shape, double[])","u":"makeDenseTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.linalg.decompositions.svd","c":"ComplexSVD","l":"makeEigenPairs(CMatrix, double[])","u":"makeEigenPairs(org.flag4j.arrays.dense.CMatrix,double[])"},{"p":"org.flag4j.linalg.decompositions.svd","c":"RealSVD","l":"makeEigenPairs(Matrix, double[])","u":"makeEigenPairs(org.flag4j.arrays.dense.Matrix,double[])"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"makeEigenPairs(T, double[])","u":"makeEigenPairs(T,double[])"},{"p":"org.flag4j.linalg.decompositions.svd","c":"ComplexSVD","l":"makeEigenVals(CMatrix, double[])","u":"makeEigenVals(org.flag4j.arrays.dense.CMatrix,double[])"},{"p":"org.flag4j.linalg.decompositions.svd","c":"RealSVD","l":"makeEigenVals(Matrix, double[])","u":"makeEigenVals(org.flag4j.arrays.dense.Matrix,double[])"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"makeEigenVals(T, double[])","u":"makeEigenVals(T,double[])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"makeRealTensor(Shape, double[])","u":"makeRealTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"makeRealTensor(Shape, double[])","u":"makeRealTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"makeRealTensor(Shape, double[])","u":"makeRealTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"makeRealTensor(Shape, double[])","u":"makeRealTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"makeRealTensor(Shape, double[], int[][])","u":"makeRealTensor(org.flag4j.core.Shape,double[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"makeRealTensor(Shape, double[], int[][])","u":"makeRealTensor(org.flag4j.core.Shape,double[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"makeRealTensor(Shape, double[], int[][])","u":"makeRealTensor(org.flag4j.core.Shape,double[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"makeRealTensor(Shape, double[], int[][])","u":"makeRealTensor(org.flag4j.core.Shape,double[],int[][])"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"makeRealTensor(Shape, double[], int[][])","u":"makeRealTensor(org.flag4j.core.Shape,double[],int[][])"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"makeReflector(int, CNumber, CNumber)","u":"makeReflector(int,org.flag4j.complex_numbers.CNumber,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"makeReflector(int, CNumber, CNumber, CNumber)","u":"makeReflector(int,org.flag4j.complex_numbers.CNumber,org.flag4j.complex_numbers.CNumber,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"makeReflector(int, double, double)","u":"makeReflector(int,double,double)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"makeReflector(int, double, double, double)","u":"makeReflector(int,double,double,double)"},{"p":"org.flag4j.core","c":"Shape","l":"makeStridesIfNull()"},{"p":"org.flag4j.linalg","c":"Eigen","l":"makeSystem(CMatrix, int, CMatrix, CVector)","u":"makeSystem(org.flag4j.arrays.dense.CMatrix,int,org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"makeSystem(Matrix, int, Matrix, Vector)","u":"makeSystem(org.flag4j.arrays.dense.Matrix,int,org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"makeTensor(Shape, CNumber...)","u":"makeTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber...)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"makeTensor(Shape, CNumber[])","u":"makeTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"makeTensor(Shape, CNumber[])","u":"makeTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"makeTensor(Shape, CNumber[], int[][])","u":"makeTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"makeTensor(Shape, CNumber[], int[][])","u":"makeTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"makeTensor(Shape, CNumber[], int[][])","u":"makeTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"makeTensor(Shape, CNumber[], int[][])","u":"makeTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[][])"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"makeTensor(Shape, CNumber[], int[][])","u":"makeTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[][])"},{"p":"org.flag4j.core.dense_base","c":"DenseTensorBase","l":"makeTensor(Shape, D)","u":"makeTensor(org.flag4j.core.Shape,D)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"makeTensor(Shape, double[])","u":"makeTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"makeTensor(Shape, double[])","u":"makeTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"makeTensor(Shape, double[])","u":"makeTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"makeTensor(Shape, double[], int[][])","u":"makeTensor(org.flag4j.core.Shape,double[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"makeTensor(Shape, double[], int[][])","u":"makeTensor(org.flag4j.core.Shape,double[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"makeTensor(Shape, double[], int[][])","u":"makeTensor(org.flag4j.core.Shape,double[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"makeTensor(Shape, double[], int[][])","u":"makeTensor(org.flag4j.core.Shape,double[],int[][])"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"makeTensor(Shape, double[], int[][])","u":"makeTensor(org.flag4j.core.Shape,double[],int[][])"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"MAT_MULT_DIM_MISMATCH_ERR"},{"p":"org.flag4j.complex_numbers","c":"CNumberToken","l":"matches(String, String)","u":"matches(java.lang.String,java.lang.String)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"matMultShapeErrMsg(Shape, Shape)","u":"matMultShapeErrMsg(org.flag4j.core.Shape,org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"Matrix(double[][])","u":"%3Cinit%3E(double[][])"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"Matrix(Double[][])","u":"%3Cinit%3E(java.lang.Double[][])"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"Matrix(int)","u":"%3Cinit%3E(int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"Matrix(int, double)","u":"%3Cinit%3E(int,double)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"Matrix(int, int)","u":"%3Cinit%3E(int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"Matrix(int, int, double)","u":"%3Cinit%3E(int,int,double)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"Matrix(int, int, double[])","u":"%3Cinit%3E(int,int,double[])"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"Matrix(int[][])","u":"%3Cinit%3E(int[][])"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"Matrix(Integer[][])","u":"%3Cinit%3E(java.lang.Integer[][])"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"Matrix(Matrix)","u":"%3Cinit%3E(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"Matrix(Shape)","u":"%3Cinit%3E(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"Matrix(Shape, double)","u":"%3Cinit%3E(org.flag4j.core.Shape,double)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"Matrix(Shape, double[])","u":"%3Cinit%3E(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseElementSearch","l":"matrixBinarySearch(CooCMatrix, int, int)","u":"matrixBinarySearch(org.flag4j.arrays.sparse.CooCMatrix,int,int)"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseElementSearch","l":"matrixBinarySearch(int[], int[], int, int)","u":"matrixBinarySearch(int[],int[],int,int)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseEquals","l":"matrixEquals(CMatrix, CMatrix)","u":"matrixEquals(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseEquals","l":"matrixEquals(CMatrix, CooCMatrix)","u":"matrixEquals(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseEquals","l":"matrixEquals(CMatrix, CooMatrix)","u":"matrixEquals(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseEquals","l":"matrixEquals(CooCMatrix, CooCMatrix)","u":"matrixEquals(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseEquals","l":"matrixEquals(CooMatrix, CooCMatrix)","u":"matrixEquals(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseEquals","l":"matrixEquals(CooMatrix, CooMatrix)","u":"matrixEquals(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseEquals","l":"matrixEquals(Matrix, CMatrix)","u":"matrixEquals(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseEquals","l":"matrixEquals(Matrix, CooCMatrix)","u":"matrixEquals(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseEquals","l":"matrixEquals(Matrix, CooMatrix)","u":"matrixEquals(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseEquals","l":"matrixEquals(Matrix, Matrix)","u":"matrixEquals(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseElementSearch","l":"matrixFindRowStartEnd(CooCMatrix, int)","u":"matrixFindRowStartEnd(org.flag4j.arrays.sparse.CooCMatrix,int)"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseElementSearch","l":"matrixFindRowStartEnd(int[], int)","u":"matrixFindRowStartEnd(int[],int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"matrixGet(CooCMatrix, int, int)","u":"matrixGet(org.flag4j.arrays.sparse.CooCMatrix,int,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"matrixGet(CooMatrix, int, int)","u":"matrixGet(org.flag4j.arrays.sparse.CooMatrix,int,int)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"matrixInfNorm(CNumber[], Shape)","u":"matrixInfNorm(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"matrixInfNorm(double[], Shape)","u":"matrixInfNorm(double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"matrixMaxNorm(CNumber[])","u":"matrixMaxNorm(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"matrixMaxNorm(double[])"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"MatrixMultiplyDispatcher()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"matrixNormL2(CNumber[], Shape)","u":"matrixNormL2(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseNorms","l":"matrixNormL2(CooCMatrix)","u":"matrixNormL2(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseNorms","l":"matrixNormL2(CooMatrix)","u":"matrixNormL2(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"matrixNormLp(CNumber[], Shape, double)","u":"matrixNormLp(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseNorms","l":"matrixNormLp(CooCMatrix, double)","u":"matrixNormLp(org.flag4j.arrays.sparse.CooCMatrix,double)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseNorms","l":"matrixNormLp(CooMatrix, double)","u":"matrixNormLp(org.flag4j.arrays.sparse.CooMatrix,double)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"matrixNormLpq(CNumber[], Shape, double, double)","u":"matrixNormLpq(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double,double)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseNorms","l":"matrixNormLpq(CooCMatrix, double, double)","u":"matrixNormLpq(org.flag4j.arrays.sparse.CooCMatrix,double,double)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseNorms","l":"matrixNormLpq(CooMatrix, double, double)","u":"matrixNormLpq(org.flag4j.arrays.sparse.CooMatrix,double,double)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"matrixNormLpq(CsrMatrix, double, double)","u":"matrixNormLpq(org.flag4j.arrays.sparse.CsrMatrix,double,double)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"matrixNormLpq(double[], Shape, double, double)","u":"matrixNormLpq(double[],org.flag4j.core.Shape,double,double)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"MatrixNorms()","u":"%3Cinit%3E()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"matrixRank()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"matrixRank()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"matrixRank()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"matrixRank()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"matrixRank()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"matrixRank()"},{"p":"org.flag4j.core","c":"MatrixPropertiesMixin","l":"matrixRank()"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"matrixSet(CooCMatrix, int, int, CNumber)","u":"matrixSet(org.flag4j.arrays.sparse.CooCMatrix,int,int,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"matrixSet(CooMatrix, int, int, double)","u":"matrixSet(org.flag4j.arrays.sparse.CooMatrix,int,int,double)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactTensorSolver","l":"matrixSolver"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"MAX_REAL"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"max()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"max()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"max()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"max()"},{"p":"org.flag4j.core","c":"TensorPropertiesMixin","l":"max()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"max(CNumber...)","u":"max(org.flag4j.complex_numbers.CNumber...)"},{"p":"org.flag4j.operations.common.real","c":"AggregateReal","l":"max(double[])"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"maxAbs()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"maxAbs()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"maxAbs()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"maxAbs()"},{"p":"org.flag4j.core","c":"TensorPropertiesMixin","l":"maxAbs()"},{"p":"org.flag4j.core","c":"VectorPropertiesMixin","l":"maxAbs()"},{"p":"org.flag4j.operations.common.complex","c":"AggregateComplex","l":"maxAbs(CNumber...)","u":"maxAbs(org.flag4j.complex_numbers.CNumber...)"},{"p":"org.flag4j.operations.common.real","c":"AggregateReal","l":"maxAbs(double...)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"ComplexLU","l":"maxColIndex(int)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"RealLU","l":"maxColIndex(int)"},{"p":"org.flag4j.io","c":"PrintOptions","l":"maxColumns"},{"p":"org.flag4j.linalg.decompositions.lu","c":"ComplexLU","l":"maxIndex(int)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"RealLU","l":"maxIndex(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"maxIterations"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"maxIterationsFactor"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"maxNorm(CMatrix)","u":"maxNorm(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"maxNorm(CooCMatrix)","u":"maxNorm(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"maxNorm(CooMatrix)","u":"maxNorm(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"maxNorm(CsrMatrix)","u":"maxNorm(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"maxNorm(Matrix)","u":"maxNorm(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"maxRe(CNumber...)","u":"maxRe(org.flag4j.complex_numbers.CNumber...)"},{"p":"org.flag4j.io","c":"PrintOptions","l":"maxRows"},{"p":"org.flag4j.complex_numbers","c":"CNumberUtils","l":"maxStringLength(CNumber[])","u":"maxStringLength(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.complex_numbers","c":"CNumberUtils","l":"maxStringLength(CNumber[], int)","u":"maxStringLength(org.flag4j.complex_numbers.CNumber[],int)"},{"p":"org.flag4j.complex_numbers","c":"CNumberUtils","l":"maxStringLength(double[])"},{"p":"org.flag4j.complex_numbers","c":"CNumberUtils","l":"maxStringLength(double[], int)","u":"maxStringLength(double[],int)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"MIN_REAL"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"MIN_REAL_NORMAL"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"min()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"min()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"min()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"min()"},{"p":"org.flag4j.core","c":"TensorPropertiesMixin","l":"min()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"min(CNumber...)","u":"min(org.flag4j.complex_numbers.CNumber...)"},{"p":"org.flag4j.operations.common.real","c":"AggregateReal","l":"min(double[])"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"minAbs()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"minAbs()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"minAbs()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"minAbs()"},{"p":"org.flag4j.core","c":"TensorPropertiesMixin","l":"minAbs()"},{"p":"org.flag4j.operations.common.complex","c":"AggregateComplex","l":"minAbs(CNumber[])","u":"minAbs(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.common.real","c":"AggregateReal","l":"minAbs(double[])"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"minAxisSize"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"minRe(CNumber...)","u":"minRe(org.flag4j.complex_numbers.CNumber...)"},{"p":"org.flag4j.concurrency","c":"Configurations","l":"minRecursiveSize"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrManipulations","l":"moveAndShiftLeft(CsrCMatrix, int, int, int)","u":"moveAndShiftLeft(org.flag4j.arrays.sparse.CsrCMatrix,int,int,int)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrManipulations","l":"moveAndShiftLeft(CsrMatrix, int, int, int)","u":"moveAndShiftLeft(org.flag4j.arrays.sparse.CsrMatrix,int,int,int)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrManipulations","l":"moveAndShiftRight(CsrCMatrix, int, int, int)","u":"moveAndShiftRight(org.flag4j.arrays.sparse.CsrCMatrix,int,int,int)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrManipulations","l":"moveAndShiftRight(CsrMatrix, int, int, int)","u":"moveAndShiftRight(org.flag4j.arrays.sparse.CsrMatrix,int,int,int)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"MULT_T"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"MULT_T"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"MULT_T_BLOCKED"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"MULT_T_BLOCKED"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"MULT_T_BLOCKED_CONCURRENT"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"MULT_T_BLOCKED_CONCURRENT"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"MULT_T_CONCURRENT"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"MULT_T_CONCURRENT"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"mult(CMatrix)","u":"mult(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"mult(CMatrix)","u":"mult(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"mult(CMatrix)","u":"mult(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"mult(CMatrix)","u":"mult(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"mult(CMatrix)","u":"mult(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"mult(CMatrix)","u":"mult(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"mult(CMatrix)","u":"mult(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"mult(CNumber)","u":"mult(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"mult(CNumber)","u":"mult(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"mult(CNumber)","u":"mult(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"mult(CNumber)","u":"mult(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"mult(CNumber)","u":"mult(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"mult(CNumber)","u":"mult(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"mult(CNumber)","u":"mult(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"mult(CooCMatrix)","u":"mult(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"mult(CooCMatrix)","u":"mult(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"mult(CooCMatrix)","u":"mult(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"mult(CooCMatrix)","u":"mult(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"mult(CooCMatrix)","u":"mult(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"mult(CooCMatrix)","u":"mult(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"mult(CooCMatrix)","u":"mult(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"mult(CooCVector)","u":"mult(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"mult(CooCVector)","u":"mult(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"mult(CooCVector)","u":"mult(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"mult(CooCVector)","u":"mult(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"mult(CooCVector)","u":"mult(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"mult(CooCVector)","u":"mult(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"mult(CooCVector)","u":"mult(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"mult(CooMatrix)","u":"mult(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"mult(CooMatrix)","u":"mult(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"mult(CooMatrix)","u":"mult(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"mult(CooMatrix)","u":"mult(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"mult(CooMatrix)","u":"mult(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"mult(CooMatrix)","u":"mult(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"mult(CooMatrix)","u":"mult(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"mult(CooVector)","u":"mult(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"mult(CooVector)","u":"mult(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"mult(CooVector)","u":"mult(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"mult(CooVector)","u":"mult(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"mult(CooVector)","u":"mult(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"mult(CooVector)","u":"mult(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"mult(CooVector)","u":"mult(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"mult(CsrCMatrix)","u":"mult(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"mult(CsrCMatrix)","u":"mult(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"mult(CsrCMatrix)","u":"mult(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"mult(CsrCMatrix)","u":"mult(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"mult(CsrCMatrix)","u":"mult(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"mult(CsrCMatrix)","u":"mult(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"mult(CsrCMatrix)","u":"mult(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"mult(CsrMatrix)","u":"mult(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"mult(CsrMatrix)","u":"mult(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"mult(CsrMatrix)","u":"mult(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"mult(CsrMatrix)","u":"mult(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"mult(CsrMatrix)","u":"mult(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"mult(CsrMatrix)","u":"mult(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"mult(CsrMatrix)","u":"mult(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"mult(CVector)","u":"mult(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"mult(CVector)","u":"mult(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"mult(CVector)","u":"mult(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"mult(CVector)","u":"mult(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"mult(CVector)","u":"mult(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"mult(CVector)","u":"mult(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"mult(CVector)","u":"mult(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"mult(double)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"mult(double)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"mult(double)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"mult(double)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"mult(double)"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"mult(double)"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"mult(double)"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"mult(double)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"mult(Matrix)","u":"mult(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"mult(Matrix)","u":"mult(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"mult(Matrix)","u":"mult(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"mult(Matrix)","u":"mult(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"mult(Matrix)","u":"mult(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"mult(Matrix)","u":"mult(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"mult(Matrix)","u":"mult(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"mult(T)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"mult(TT)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"mult(Vector)","u":"mult(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"mult(Vector)","u":"mult(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"mult(Vector)","u":"mult(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"mult(Vector)","u":"mult(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"mult(Vector)","u":"mult(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"mult(Vector)","u":"mult(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"mult(Vector)","u":"mult(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"mult2CSR(CooCMatrix)","u":"mult2CSR(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"mult2CSR(CooCMatrix)","u":"mult2CSR(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"mult2CSR(CooMatrix)","u":"mult2CSR(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"mult2CSR(CooMatrix)","u":"mult2CSR(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"mult2CSR(CsrCMatrix)","u":"mult2CSR(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"mult2CSR(CsrCMatrix)","u":"mult2CSR(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"mult2CSR(CsrMatrix)","u":"mult2CSR(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"mult2CSR(CsrMatrix)","u":"mult2CSR(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"multInv()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"multTranspose(CMatrix)","u":"multTranspose(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"multTranspose(CMatrix)","u":"multTranspose(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"multTranspose(CMatrix)","u":"multTranspose(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"multTranspose(CMatrix)","u":"multTranspose(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"multTranspose(CMatrix)","u":"multTranspose(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixMultTranspose","l":"multTranspose(CNumber[], Shape, CNumber[], int[], int[], Shape)","u":"multTranspose(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultTranspose","l":"multTranspose(CNumber[], Shape, CNumber[], Shape)","u":"multTranspose(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultTranspose","l":"multTranspose(CNumber[], Shape, double[], int[], int[], Shape)","u":"multTranspose(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultTranspose","l":"multTranspose(CNumber[], Shape, double[], Shape)","u":"multTranspose(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"multTranspose(CooCMatrix)","u":"multTranspose(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"multTranspose(CooCMatrix)","u":"multTranspose(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"multTranspose(CooCMatrix)","u":"multTranspose(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"multTranspose(CooCMatrix)","u":"multTranspose(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"multTranspose(CooCMatrix)","u":"multTranspose(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"multTranspose(CooMatrix)","u":"multTranspose(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"multTranspose(CooMatrix)","u":"multTranspose(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"multTranspose(CooMatrix)","u":"multTranspose(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"multTranspose(CooMatrix)","u":"multTranspose(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"multTranspose(CooMatrix)","u":"multTranspose(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"multTranspose(CsrCMatrix)","u":"multTranspose(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"multTranspose(CsrMatrix)","u":"multTranspose(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultTranspose","l":"multTranspose(double[], Shape, CNumber[], int[], int[], Shape)","u":"multTranspose(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultTranspose","l":"multTranspose(double[], Shape, CNumber[], Shape)","u":"multTranspose(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixMultTranspose","l":"multTranspose(double[], Shape, double[], int[], int[], Shape)","u":"multTranspose(double[],org.flag4j.core.Shape,double[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultTranspose","l":"multTranspose(double[], Shape, double[], Shape)","u":"multTranspose(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"multTranspose(Matrix)","u":"multTranspose(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"multTranspose(Matrix)","u":"multTranspose(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"multTranspose(Matrix)","u":"multTranspose(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"multTranspose(Matrix)","u":"multTranspose(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"multTranspose(Matrix)","u":"multTranspose(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultTranspose","l":"multTransposeBlocked(CNumber[], Shape, CNumber[], Shape)","u":"multTransposeBlocked(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultTranspose","l":"multTransposeBlocked(CNumber[], Shape, double[], Shape)","u":"multTransposeBlocked(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultTranspose","l":"multTransposeBlocked(double[], Shape, CNumber[], Shape)","u":"multTransposeBlocked(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultTranspose","l":"multTransposeBlocked(double[], Shape, double[], Shape)","u":"multTransposeBlocked(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultTranspose","l":"multTransposeBlockedConcurrent(CNumber[], Shape, CNumber[], Shape)","u":"multTransposeBlockedConcurrent(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultTranspose","l":"multTransposeBlockedConcurrent(CNumber[], Shape, double[], Shape)","u":"multTransposeBlockedConcurrent(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultTranspose","l":"multTransposeBlockedConcurrent(double[], Shape, CNumber[], Shape)","u":"multTransposeBlockedConcurrent(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultTranspose","l":"multTransposeBlockedConcurrent(double[], Shape, double[], Shape)","u":"multTransposeBlockedConcurrent(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultTranspose","l":"multTransposeConcurrent(CNumber[], Shape, CNumber[], Shape)","u":"multTransposeConcurrent(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultTranspose","l":"multTransposeConcurrent(CNumber[], Shape, double[], Shape)","u":"multTransposeConcurrent(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultTranspose","l":"multTransposeConcurrent(double[], Shape, CNumber[], Shape)","u":"multTransposeConcurrent(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultTranspose","l":"multTransposeConcurrent(double[], Shape, double[], Shape)","u":"multTransposeConcurrent(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"NAMED_GREATER_EQ_ERR"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"NAMED_LESS_EQ_BI_ERR"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"NAMED_LESS_EQ_ERR"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"NaN"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"nearZero(CNumber, double)","u":"nearZero(org.flag4j.complex_numbers.CNumber,double)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"NEG_DIM_ERR"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"NEG_VALUE_ERR"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"NEGATIVE_INFINITY"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"NEGATIVE_ONE"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"negativeDimErrMsg(int[])"},{"p":"org.flag4j.core.sparse_base","c":"SparseTensorBase","l":"nnz"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"NON_POS_ERR"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU.Pivoting","l":"NONE"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"nonZeroEntries()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"nonZeroEntries()"},{"p":"org.flag4j.core.sparse_base","c":"SparseTensorBase","l":"nonZeroEntries()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"ComplexLU","l":"noPivot()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"noPivot()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"RealLU","l":"noPivot()"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"norm"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"norm"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"ComplexUnitaryDecomposition","l":"norm"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"RealUnitaryDecomposition","l":"norm"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"norm(CMatrix)","u":"norm(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"norm(CMatrix, double)","u":"norm(org.flag4j.arrays.dense.CMatrix,double)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"norm(CMatrix, double, double)","u":"norm(org.flag4j.arrays.dense.CMatrix,double,double)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"norm(CNumber...)","u":"norm(org.flag4j.complex_numbers.CNumber...)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"norm(CNumber[], double)","u":"norm(org.flag4j.complex_numbers.CNumber[],double)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"norm(CooCMatrix)","u":"norm(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"norm(CooCMatrix, double)","u":"norm(org.flag4j.arrays.sparse.CooCMatrix,double)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"norm(CooCMatrix, double, double)","u":"norm(org.flag4j.arrays.sparse.CooCMatrix,double,double)"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"norm(CooCTensor)","u":"norm(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"norm(CooCTensor, double)","u":"norm(org.flag4j.arrays.sparse.CooCTensor,double)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"norm(CooCVector)","u":"norm(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"norm(CooCVector, double)","u":"norm(org.flag4j.arrays.sparse.CooCVector,double)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"norm(CooMatrix)","u":"norm(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"norm(CooMatrix, double)","u":"norm(org.flag4j.arrays.sparse.CooMatrix,double)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"norm(CooMatrix, double, double)","u":"norm(org.flag4j.arrays.sparse.CooMatrix,double,double)"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"norm(CooTensor)","u":"norm(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"norm(CooTensor, double)","u":"norm(org.flag4j.arrays.sparse.CooTensor,double)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"norm(CooVector)","u":"norm(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"norm(CooVector, double)","u":"norm(org.flag4j.arrays.sparse.CooVector,double)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"norm(CsrMatrix)","u":"norm(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"norm(CsrMatrix, double)","u":"norm(org.flag4j.arrays.sparse.CsrMatrix,double)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"norm(CsrMatrix, double, double)","u":"norm(org.flag4j.arrays.sparse.CsrMatrix,double,double)"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"norm(CTensor)","u":"norm(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"norm(CTensor, double)","u":"norm(org.flag4j.arrays.dense.CTensor,double)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"norm(CVector)","u":"norm(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"norm(CVector, double)","u":"norm(org.flag4j.arrays.dense.CVector,double)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"norm(double...)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"norm(double[], double)","u":"norm(double[],double)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"norm(Matrix)","u":"norm(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"norm(Matrix, double)","u":"norm(org.flag4j.arrays.dense.Matrix,double)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"norm(Matrix, double, double)","u":"norm(org.flag4j.arrays.dense.Matrix,double,double)"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"norm(Tensor)","u":"norm(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"norm(Tensor, double)","u":"norm(org.flag4j.arrays.dense.Tensor,double)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"norm(Vector)","u":"norm(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"norm(Vector, double)","u":"norm(org.flag4j.arrays.dense.Vector,double)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"normalize()"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"normalize()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"normalize()"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"normalize()"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"normalize()"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"ComplexUnitaryDecomposition","l":"normRe"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"notContains(int[], int)","u":"notContains(int[],int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"notInAxes(int[], int)","u":"notInAxes(int[],int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"numCols"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"numCols"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"numCols"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"numCols"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"numCols"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"numCols"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"numCols"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"numCols()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"numCols()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"numCols()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"numCols()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"numCols()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"numCols()"},{"p":"org.flag4j.core","c":"MatrixMixin","l":"numCols()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"numColSwaps"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"numExceptional"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"numRows"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"numRows"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"numRows"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"numRows"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"numRows"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"numRows"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"numRows"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"numRows"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"numRows()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"numRows()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"numRows()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"numRows()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"numRows()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"numRows()"},{"p":"org.flag4j.core","c":"MatrixMixin","l":"numRows()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"numRowSwaps"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"numUnique(double[])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"numUnique(int[])"},{"p":"org.flag4j.io","c":"TensorInputStream","l":"objectIn"},{"p":"org.flag4j.io","c":"TensorOutputStream","l":"objectOut"},{"p":"org.flag4j.arrays.sparse","c":"SymmTriDiagonal","l":"offDiag"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"ONE"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseVectorOperations","l":"OUTER_CONCURRENT_THRESHOLD"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"outer(CooCVector)","u":"outer(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"outer(CooCVector)","u":"outer(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"outer(CooCVector)","u":"outer(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"outer(CooCVector)","u":"outer(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"outer(CooCVector)","u":"outer(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"outer(CooVector)","u":"outer(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"outer(CooVector)","u":"outer(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"outer(CooVector)","u":"outer(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"outer(CooVector)","u":"outer(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"outer(CooVector)","u":"outer(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"outer(CVector)","u":"outer(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"outer(CVector)","u":"outer(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"outer(CVector)","u":"outer(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"outer(CVector)","u":"outer(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"outer(CVector)","u":"outer(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"outer(Vector)","u":"outer(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"outer(Vector)","u":"outer(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"outer(Vector)","u":"outer(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"outer(Vector)","u":"outer(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"outer(Vector)","u":"outer(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseVectorOperations","l":"outerProduct(CNumber[], CNumber[])","u":"outerProduct(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseVectorOperations","l":"outerProduct(CNumber[], CNumber[], int[], int)","u":"outerProduct(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber[],int[],int)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseVectorOperations","l":"outerProduct(CNumber[], double[])","u":"outerProduct(org.flag4j.complex_numbers.CNumber[],double[])"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"outerProduct(CNumber[], double[], int[], int)","u":"outerProduct(org.flag4j.complex_numbers.CNumber[],double[],int[],int)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseVectorOperations","l":"outerProduct(CNumber[], int[], int, CNumber[])","u":"outerProduct(org.flag4j.complex_numbers.CNumber[],int[],int,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"outerProduct(CNumber[], int[], int, double[])","u":"outerProduct(org.flag4j.complex_numbers.CNumber[],int[],int,double[])"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseVectorOperations","l":"outerProduct(CooCVector, CooCVector)","u":"outerProduct(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseVectorOperations","l":"outerProduct(CooCVector, CooVector)","u":"outerProduct(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseVectorOperations","l":"outerProduct(CooVector, CooCVector)","u":"outerProduct(org.flag4j.arrays.sparse.CooVector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseVectorOperations","l":"outerProduct(CooVector, CooVector)","u":"outerProduct(org.flag4j.arrays.sparse.CooVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseVectorOperations","l":"outerProduct(double[], CNumber[])","u":"outerProduct(double[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"outerProduct(double[], CNumber[], int[], int)","u":"outerProduct(double[],org.flag4j.complex_numbers.CNumber[],int[],int)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseVectorOperations","l":"outerProduct(double[], double[])","u":"outerProduct(double[],double[])"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseVectorOperations","l":"outerProduct(double[], double[], int[], int)","u":"outerProduct(double[],double[],int[],int)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"outerProduct(double[], int[], int, CNumber[])","u":"outerProduct(double[],int[],int,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseVectorOperations","l":"outerProduct(double[], int[], int, double[])","u":"outerProduct(double[],int[],int,double[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseVectorOperations","l":"outerProductConcurrent(double[], double[])","u":"outerProductConcurrent(double[],double[])"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"P"},{"p":"org.flag4j.io","c":"PrintOptions","l":"padding"},{"p":"org.flag4j.concurrency","c":"ThreadManager","l":"parallelismLevel"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"ParameterChecks()","u":"%3Cinit%3E()"},{"p":"org.flag4j.complex_numbers","c":"CNumberParser","l":"parseNumber(String)","u":"parseNumber(java.lang.String)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU.Pivoting","l":"PARTIAL"},{"p":"org.flag4j.linalg.decompositions.lu","c":"ComplexLU","l":"partialPivot()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"partialPivot()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"RealLU","l":"partialPivot()"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"performDoubleShift(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"performDoubleShift(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"performDoubleShift(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"performExceptionalShift(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"performExceptionalShift(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"performExceptionalShift(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"performSingleShift(int, CNumber)","u":"performSingleShift(int,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"performSingleShift(int, double)","u":"performSingleShift(int,double)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"PermutationMatrix(int)","u":"%3Cinit%3E(int)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"PermutationMatrix(int[])","u":"%3Cinit%3E(int[])"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"PermutationMatrix(PermutationMatrix)","u":"%3Cinit%3E(org.flag4j.arrays.sparse.PermutationMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"PermutationMatrix(Shape)","u":"%3Cinit%3E(org.flag4j.core.Shape)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ComplexExactSolver","l":"permuteRows(CMatrix)","u":"permuteRows(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ComplexExactSolver","l":"permuteRows(CVector)","u":"permuteRows(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"permuteRows(int[])"},{"p":"org.flag4j.linalg.solvers.exact","c":"RealExactSolver","l":"permuteRows(Matrix)","u":"permuteRows(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactSolver","l":"permuteRows(T)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactSolver","l":"permuteRows(U)"},{"p":"org.flag4j.linalg.solvers.exact","c":"RealExactSolver","l":"permuteRows(Vector)","u":"permuteRows(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"PI"},{"p":"org.flag4j.linalg","c":"Invert","l":"pInv(CMatrix)","u":"pInv(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"Invert","l":"pInv(Matrix)","u":"pInv(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"pivotFlag"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU.Pivoting","l":"Pivoting()","u":"%3Cinit%3E()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"POSITIVE_INFINITY"},{"p":"org.flag4j.linalg","c":"PositiveDefiniteness","l":"PositiveDefiniteness()","u":"%3Cinit%3E()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"pow(CNumber, CNumber)","u":"pow(org.flag4j.complex_numbers.CNumber,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"pow(CNumber, double)","u":"pow(org.flag4j.complex_numbers.CNumber,double)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"pow(double, CNumber)","u":"pow(double,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"pow(double, double)","u":"pow(double,double)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"pow(int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"pow(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"pow(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"pow(int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"pow(int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"pow(int)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"pow(int)"},{"p":"org.flag4j.io","c":"PrintOptions","l":"precision"},{"p":"org.flag4j.io","c":"PrintOptions","l":"PrintOptions()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"prod(CNumber[])","u":"prod(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseOperations","l":"prod(double[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseOperations","l":"prod(int[])"},{"p":"org.flag4j.linalg.transformations","c":"Projection","l":"Projection()","u":"%3Cinit%3E()"},{"p":"org.flag4j.complex_numbers","c":"CNumberLexer","l":"putBackSymbol(int)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"Q"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"qFactors"},{"p":"org.flag4j.linalg.solvers.lstsq","c":"LstsqSolver","l":"Qh"},{"p":"org.flag4j.linalg.solvers.lstsq","c":"LstsqSolver","l":"qr"},{"p":"org.flag4j.linalg.solvers.lstsq","c":"LstsqSolver","l":"R"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"RAND_ARRAY"},{"p":"org.flag4j.rng","c":"RandomCNumber","l":"randn()"},{"p":"org.flag4j.rng","c":"RandomCNumber","l":"randn(double, double)","u":"randn(double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnCMatrix(int, int)","u":"randnCMatrix(int,int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnCMatrix(int, int, double, double)","u":"randnCMatrix(int,int,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnCMatrix(Shape)","u":"randnCMatrix(org.flag4j.core.Shape)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnCMatrix(Shape, double, double)","u":"randnCMatrix(org.flag4j.core.Shape,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnCTensor(Shape)","u":"randnCTensor(org.flag4j.core.Shape)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnCTensor(Shape, double, double)","u":"randnCTensor(org.flag4j.core.Shape,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnCVector(int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnCVector(int, double, double)","u":"randnCVector(int,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnMatrix(int, int)","u":"randnMatrix(int,int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnMatrix(int, int, double, double)","u":"randnMatrix(int,int,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnMatrix(Shape)","u":"randnMatrix(org.flag4j.core.Shape)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnMatrix(Shape, double, double)","u":"randnMatrix(org.flag4j.core.Shape,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnTensor(Shape)","u":"randnTensor(org.flag4j.core.Shape)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnTensor(Shape, double, double)","u":"randnTensor(org.flag4j.core.Shape,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnVector(int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnVector(int, double, double)","u":"randnVector(int,double,double)"},{"p":"org.flag4j.rng","c":"RandomCNumber","l":"random()"},{"p":"org.flag4j.rng","c":"RandomCNumber","l":"random(double)"},{"p":"org.flag4j.rng","c":"RandomCNumber","l":"random(double, double)","u":"random(double,double)"},{"p":"org.flag4j.rng","c":"RandomArray","l":"RandomArray()","u":"%3Cinit%3E()"},{"p":"org.flag4j.rng","c":"RandomArray","l":"RandomArray(RandomCNumber)","u":"%3Cinit%3E(org.flag4j.rng.RandomCNumber)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCMatrix(int, int)","u":"randomCMatrix(int,int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCMatrix(int, int, double, double)","u":"randomCMatrix(int,int,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCMatrix(Shape)","u":"randomCMatrix(org.flag4j.core.Shape)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCMatrix(Shape, double, double)","u":"randomCMatrix(org.flag4j.core.Shape,double,double)"},{"p":"org.flag4j.rng","c":"RandomCNumber","l":"RandomCNumber()","u":"%3Cinit%3E()"},{"p":"org.flag4j.rng","c":"RandomCNumber","l":"RandomCNumber(long)","u":"%3Cinit%3E(long)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCooMatrix(int, int, double, double, double)","u":"randomCooMatrix(int,int,double,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCooMatrix(int, int, double, double, int)","u":"randomCooMatrix(int,int,double,double,int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCooMatrix(Shape, double, double, double)","u":"randomCooMatrix(org.flag4j.core.Shape,double,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCooMatrix(Shape, double, double, int)","u":"randomCooMatrix(org.flag4j.core.Shape,double,double,int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCsrMatrix(int, int, double, double, double)","u":"randomCsrMatrix(int,int,double,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCsrMatrix(int, int, double, double, int)","u":"randomCsrMatrix(int,int,double,double,int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCsrMatrix(Shape, double, double, double)","u":"randomCsrMatrix(org.flag4j.core.Shape,double,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCsrMatrix(Shape, double, double, int)","u":"randomCsrMatrix(org.flag4j.core.Shape,double,double,int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCTensor(Shape)","u":"randomCTensor(org.flag4j.core.Shape)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCTensor(Shape, double, double)","u":"randomCTensor(org.flag4j.core.Shape,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCVector(int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCVector(int, double, double)","u":"randomCVector(int,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomMatrix(int, int)","u":"randomMatrix(int,int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomMatrix(int, int, double, double)","u":"randomMatrix(int,int,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomMatrix(Shape)","u":"randomMatrix(org.flag4j.core.Shape)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomMatrix(Shape, double, double)","u":"randomMatrix(org.flag4j.core.Shape,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomOrthogonalMatrix(int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomSparseCMatrix(int, int, double, double, double)","u":"randomSparseCMatrix(int,int,double,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomSparseCMatrix(int, int, double, double, int)","u":"randomSparseCMatrix(int,int,double,double,int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomSparseCMatrix(Shape, double, double, double)","u":"randomSparseCMatrix(org.flag4j.core.Shape,double,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomSparseCMatrix(Shape, double, double, int)","u":"randomSparseCMatrix(org.flag4j.core.Shape,double,double,int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomSymmetricCooMatrix(int, int, int, double)","u":"randomSymmetricCooMatrix(int,int,int,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomSymmetricCsrMatrix(int, int, int, double)","u":"randomSymmetricCsrMatrix(int,int,int,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomSymmetricMatrix(int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"RandomTensor()","u":"%3Cinit%3E()"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"RandomTensor(long)","u":"%3Cinit%3E(long)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomTensor(Shape)","u":"randomTensor(org.flag4j.core.Shape)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomTensor(Shape, double, double)","u":"randomTensor(org.flag4j.core.Shape,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomTriuMatrix(int, int, int)","u":"randomTriuMatrix(int,int,int)"},{"p":"org.flag4j.rng","c":"RandomArray","l":"randomUniqueIndices(int, int, int)","u":"randomUniqueIndices(int,int,int)"},{"p":"org.flag4j.rng","c":"RandomArray","l":"randomUniqueIndices2D(int, int, int, int, int)","u":"randomUniqueIndices2D(int,int,int,int,int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomUnitaryMatrix(int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomVector(int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomVector(int, double, double)","u":"randomVector(int,double,double)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"RANGE_ERR"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"range(int, int)","u":"range(int,int)"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"rank"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"BackSolver","l":"RANK_CONDITION"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ForwardSolver","l":"RANK_CONDITION"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"re"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"re()"},{"p":"org.flag4j.io","c":"TensorInputStream","l":"read()"},{"p":"org.flag4j.io","c":"TensorInputStream","l":"readMatrix()"},{"p":"org.flag4j.io","c":"TensorReader","l":"readMatrix(String)","u":"readMatrix(java.lang.String)"},{"p":"org.flag4j.io","c":"TensorInputStream","l":"readTensor()"},{"p":"org.flag4j.io","c":"TensorReader","l":"readTensor(String)","u":"readTensor(java.lang.String)"},{"p":"org.flag4j.io","c":"TensorInputStream","l":"readVector()"},{"p":"org.flag4j.io","c":"TensorReader","l":"readVector(String)","u":"readVector(java.lang.String)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"real2ComplexSchur()"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"real2ComplexSchur()"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealBackSolver","l":"RealBackSolver()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealBackSolver","l":"RealBackSolver(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.linalg.decompositions.chol","c":"RealCholesky","l":"RealCholesky()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.chol","c":"RealCholesky","l":"RealCholesky(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexCooTensorOperations","l":"RealComplexCooTensorOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseMatrixMultiplication","l":"RealComplexCsrDenseMatrixMultiplication()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseOperations","l":"RealComplexCsrDenseOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.csr.real_complex","c":"RealComplexCsrMatrixMultiplication","l":"RealComplexCsrMatrixMultiplication()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.csr.real_complex","c":"RealComplexCsrOperations","l":"RealComplexCsrOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseElemDiv","l":"RealComplexDenseElemDiv()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseElemMult","l":"RealComplexDenseElemMult()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseEquals","l":"RealComplexDenseEquals()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"RealComplexDenseMatrixMultiplication()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultTranspose","l":"RealComplexDenseMatrixMultTranspose()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseOperations","l":"RealComplexDenseOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseEquals","l":"RealComplexDenseSparseEquals()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"RealComplexDenseSparseMatrixMultiplication()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultTranspose","l":"RealComplexDenseSparseMatrixMultTranspose()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"RealComplexDenseSparseMatrixOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseOperations","l":"RealComplexDenseSparseOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"RealComplexDenseSparseVectorOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseVectorOperations","l":"RealComplexDenseVectorOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseEquals","l":"RealComplexSparseEquals()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixMultiplication","l":"RealComplexSparseMatrixMultiplication()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixOperations","l":"RealComplexSparseMatrixOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseVectorOperations","l":"RealComplexSparseVectorOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealCooTensorDot","l":"RealCooTensorDot()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealCooTensorOperations","l":"RealCooTensorOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrConcats","l":"RealCsrConcats()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.csr.real","c":"RealCsrDenseMatrixMultiplication","l":"RealCsrDenseMatrixMultiplication()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.csr.real","c":"RealCsrDenseOperations","l":"RealCsrDenseOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrEquals","l":"RealCsrEquals()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrManipulations","l":"RealCsrManipulations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrMatrixMultiplication","l":"RealCsrMatrixMultiplication()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrOperations","l":"RealCsrOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrProperties","l":"RealCsrProperties()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseDeterminant","l":"RealDenseDeterminant()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseElemDiv","l":"RealDenseElemDiv()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseElemMult","l":"RealDenseElemMult()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseEquals","l":"RealDenseEquals()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.common","c":"TensorEquals","l":"realDenseLookUp"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultiplication","l":"RealDenseMatrixMultiplication()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher","l":"RealDenseMatrixMultiplyDispatcher()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultTranspose","l":"RealDenseMatrixMultTranspose()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseOperations","l":"RealDenseOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseProperties","l":"RealDenseProperties()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseSetOperations","l":"RealDenseSetOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseEquals","l":"RealDenseSparseEquals()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixMultiplication","l":"RealDenseSparseMatrixMultiplication()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixMultTranspose","l":"RealDenseSparseMatrixMultTranspose()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixOperations","l":"RealDenseSparseMatrixOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseTensorOperations","l":"RealDenseSparseTensorOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseVectorOperations","l":"RealDenseSparseVectorOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"RealDenseTensorBase(Shape, double[])","u":"%3Cinit%3E(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseTensorDot","l":"RealDenseTensorDot()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseTranspose","l":"RealDenseTranspose()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseVectorOperations","l":"RealDenseVectorOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.solvers.exact","c":"RealExactSolver","l":"RealExactSolver()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.solvers.exact","c":"RealExactTensorSolver","l":"RealExactTensorSolver()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealForwardSolver","l":"RealForwardSolver()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealForwardSolver","l":"RealForwardSolver(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealForwardSolver","l":"RealForwardSolver(boolean, boolean)","u":"%3Cinit%3E(boolean,boolean)"},{"p":"org.flag4j.linalg.decompositions.hess","c":"RealHess","l":"RealHess()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.hess","c":"RealHess","l":"RealHess(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.linalg.solvers.lstsq","c":"RealLstsqSolver","l":"RealLstsqSolver()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"RealLU","l":"RealLU()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"RealLU","l":"RealLU(int)","u":"%3Cinit%3E(int)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"RealLU","l":"RealLU(int, double)","u":"%3Cinit%3E(int,double)"},{"p":"org.flag4j.operations.common.real","c":"RealOperations","l":"RealOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.common.real","c":"RealProperties","l":"RealProperties()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.qr","c":"RealQR","l":"RealQR()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.qr","c":"RealQR","l":"RealQR(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"RealSchur()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"RealSchur(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"RealSchur(boolean, long)","u":"%3Cinit%3E(boolean,long)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"RealSchur(long)","u":"%3Cinit%3E(long)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseEquals","l":"RealSparseEquals()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.common","c":"TensorEquals","l":"realSparseLookUp"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseManipulations","l":"RealSparseManipulations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"RealSparseMatrixGetSet()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixManipulations","l":"RealSparseMatrixManipulations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixMultiplication","l":"RealSparseMatrixMultiplication()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixOperations","l":"RealSparseMatrixOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixProperties","l":"RealSparseMatrixProperties()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseNorms","l":"RealSparseNorms()","u":"%3Cinit%3E()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"RealSparseTensorBase(Shape, int, double[], int[], int[]...)","u":"%3Cinit%3E(org.flag4j.core.Shape,int,double[],int[],int[]...)"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"RealSparseTensorBase(Shape, int, double[], int[][])","u":"%3Cinit%3E(org.flag4j.core.Shape,int,double[],int[][])"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseVectorOperations","l":"RealSparseVectorOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.svd","c":"RealSVD","l":"RealSVD()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.svd","c":"RealSVD","l":"RealSVD(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.linalg.decompositions.svd","c":"RealSVD","l":"RealSVD(boolean, boolean)","u":"%3Cinit%3E(boolean,boolean)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"RealUnitaryDecomposition","l":"RealUnitaryDecomposition(int)","u":"%3Cinit%3E(int)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"RealUnitaryDecomposition","l":"RealUnitaryDecomposition(int, boolean)","u":"%3Cinit%3E(int,boolean)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"recip()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"recip()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"recip()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"recip()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"recip()"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"recip()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"recip(CNumber[])","u":"recip(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseOperations","l":"recip(double[])"},{"p":"org.flag4j.linalg.decompositions.qr","c":"ComplexQR","l":"reduced"},{"p":"org.flag4j.linalg.decompositions.qr","c":"RealQR","l":"reduced"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"reduced"},{"p":"org.flag4j.linalg","c":"RowEchelon","l":"ref(CMatrix)","u":"ref(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"RowEchelon","l":"ref(Matrix)","u":"ref(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrEquals","l":"removeCloseToZero(CsrCMatrix, List, int[], List, double)","u":"removeCloseToZero(org.flag4j.arrays.sparse.CsrCMatrix,java.util.List,int[],java.util.List,double)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrEquals","l":"removeCloseToZero(CsrMatrix, List, int[], List, double)","u":"removeCloseToZero(org.flag4j.arrays.sparse.CsrMatrix,java.util.List,int[],java.util.List,double)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixManipulations","l":"removeCol(CooCMatrix, int)","u":"removeCol(org.flag4j.arrays.sparse.CooCMatrix,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixManipulations","l":"removeCol(CooMatrix, int)","u":"removeCol(org.flag4j.arrays.sparse.CooMatrix,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"removeCol(int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"removeCol(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"removeCol(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"removeCol(int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"removeCol(int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"removeCol(int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"removeCol(int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixManipulations","l":"removeCols(CooCMatrix, int...)","u":"removeCols(org.flag4j.arrays.sparse.CooCMatrix,int...)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixManipulations","l":"removeCols(CooMatrix, int...)","u":"removeCols(org.flag4j.arrays.sparse.CooMatrix,int...)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"removeCols(int...)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"removeCols(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"removeCols(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"removeCols(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"removeCols(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"removeCols(int...)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"removeCols(int...)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixManipulations","l":"removeRow(CooCMatrix, int)","u":"removeRow(org.flag4j.arrays.sparse.CooCMatrix,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixManipulations","l":"removeRow(CooMatrix, int)","u":"removeRow(org.flag4j.arrays.sparse.CooMatrix,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"removeRow(int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"removeRow(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"removeRow(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"removeRow(int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"removeRow(int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"removeRow(int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"removeRow(int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixManipulations","l":"removeRows(CooCMatrix, int...)","u":"removeRows(org.flag4j.arrays.sparse.CooCMatrix,int...)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixManipulations","l":"removeRows(CooMatrix, int...)","u":"removeRows(org.flag4j.arrays.sparse.CooMatrix,int...)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"removeRows(int...)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"removeRows(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"removeRows(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"removeRows(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"removeRows(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"removeRows(int...)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"removeRows(int...)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"REORDERED"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"REORDERED"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultiplication","l":"reordered(CNumber[], Shape, CNumber[], Shape)","u":"reordered(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"reordered(CNumber[], Shape, double[], Shape)","u":"reordered(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"reordered(double[], Shape, CNumber[], Shape)","u":"reordered(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultiplication","l":"reordered(double[], Shape, double[], Shape)","u":"reordered(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"repeat(int, int)","u":"repeat(int,int)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"repeat(int, int)","u":"repeat(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"repeat(int, int)","u":"repeat(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"repeat(int, int)","u":"repeat(int,int)"},{"p":"org.flag4j.core","c":"VectorMixin","l":"repeat(int, int)","u":"repeat(int,int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"repeat(int, int[])","u":"repeat(int,int[])"},{"p":"org.flag4j.concurrency","c":"Configurations","l":"resetAll()"},{"p":"org.flag4j.io","c":"PrintOptions","l":"resetAll()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"reshape(int...)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"reshape(int...)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"reshape(int...)"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"reshape(int...)"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"reshape(int...)"},{"p":"org.flag4j.core","c":"TensorManipulationsMixin","l":"reshape(int...)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"reshape(Shape)","u":"reshape(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"reshape(Shape)","u":"reshape(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"reshape(Shape)","u":"reshape(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"reshape(Shape)","u":"reshape(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"reshape(Shape)","u":"reshape(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"reshape(Shape)","u":"reshape(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"reshape(Shape)","u":"reshape(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"reshape(Shape)","u":"reshape(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"reshape(Shape)","u":"reshape(org.flag4j.core.Shape)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"reshape(Shape)","u":"reshape(org.flag4j.core.Shape)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"reshape(Shape)","u":"reshape(org.flag4j.core.Shape)"},{"p":"org.flag4j.core","c":"TensorManipulationsMixin","l":"reshape(Shape)","u":"reshape(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"rightMult(CMatrix)","u":"rightMult(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"rightMult(CVector)","u":"rightMult(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"rightMult(Matrix)","u":"rightMult(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"rightMult(Vector)","u":"rightMult(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.linalg.transformations","c":"Givens","l":"rightMult2x2Rotator(CMatrix, CMatrix, int, CNumber[])","u":"rightMult2x2Rotator(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CMatrix,int,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.linalg.transformations","c":"Givens","l":"rightMult2x2Rotator(Matrix, Matrix, int, double[])","u":"rightMult2x2Rotator(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Matrix,int,double[])"},{"p":"org.flag4j.linalg.transformations","c":"Householder","l":"rightMultReflector(CMatrix, CNumber[], CNumber, int, int, int)","u":"rightMultReflector(org.flag4j.arrays.dense.CMatrix,org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber,int,int,int)"},{"p":"org.flag4j.linalg.transformations","c":"Householder","l":"rightMultReflector(CMatrix, CVector, CNumber, int, int, int)","u":"rightMultReflector(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CVector,org.flag4j.complex_numbers.CNumber,int,int,int)"},{"p":"org.flag4j.linalg.transformations","c":"Householder","l":"rightMultReflector(Matrix, double[], double, int, int, int)","u":"rightMultReflector(org.flag4j.arrays.dense.Matrix,double[],double,int,int,int)"},{"p":"org.flag4j.linalg.transformations","c":"Householder","l":"rightMultReflector(Matrix, Vector, double, int, int, int)","u":"rightMultReflector(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Vector,double,int,int,int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"rng"},{"p":"org.flag4j.rng","c":"RandomArray","l":"rng"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"ROOT_THREE"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"ROOT_TWO"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"round()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"round()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"round()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"round()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"round()"},{"p":"org.flag4j.core","c":"TensorManipulationsMixin","l":"round()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"round(CNumber)","u":"round(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"round(CNumber, int)","u":"round(org.flag4j.complex_numbers.CNumber,int)"},{"p":"org.flag4j.operations.common.complex","c":"ComplexOperations","l":"round(CNumber[])","u":"round(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.common.complex","c":"ComplexOperations","l":"round(CNumber[], int)","u":"round(org.flag4j.complex_numbers.CNumber[],int)"},{"p":"org.flag4j.operations.common.real","c":"RealOperations","l":"round(double[])"},{"p":"org.flag4j.operations.common.real","c":"RealOperations","l":"round(double[], int)","u":"round(double[],int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"round(int)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"round(int)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"round(int)"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"round(int)"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"round(int)"},{"p":"org.flag4j.core","c":"TensorManipulationsMixin","l":"round(int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"roundToZero()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"roundToZero()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"roundToZero()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"roundToZero()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"roundToZero()"},{"p":"org.flag4j.core","c":"TensorManipulationsMixin","l":"roundToZero()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"roundToZero(CNumber, double)","u":"roundToZero(org.flag4j.complex_numbers.CNumber,double)"},{"p":"org.flag4j.operations.common.complex","c":"ComplexOperations","l":"roundToZero(CNumber[], double)","u":"roundToZero(org.flag4j.complex_numbers.CNumber[],double)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"roundToZero(double)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"roundToZero(double)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"roundToZero(double)"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"roundToZero(double)"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"roundToZero(double)"},{"p":"org.flag4j.core","c":"TensorManipulationsMixin","l":"roundToZero(double)"},{"p":"org.flag4j.operations.common.real","c":"RealOperations","l":"roundToZero(double[], double)","u":"roundToZero(double[],double)"},{"p":"org.flag4j.util","c":"Axis2D","l":"ROW"},{"p":"org.flag4j.util","c":"Axis2D","l":"row()"},{"p":"org.flag4j.linalg","c":"RowEchelon","l":"RowEchelon()","u":"%3Cinit%3E()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"rowIndices"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"rowIndices"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactSolver","l":"rowPermute"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"rowPointers"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"rowPointers"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"rowSwaps"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"rowToString(int, int, List)","u":"rowToString(int,int,java.util.List)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"rowToString(int, int, List)","u":"rowToString(int,int,java.util.List)"},{"p":"org.flag4j.linalg","c":"RowEchelon","l":"rref(CMatrix)","u":"rref(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"RowEchelon","l":"rref(Matrix)","u":"rref(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"S"},{"p":"org.flag4j.core","c":"TensorBase","l":"sameLength(TensorBase, TensorBase, int)","u":"sameLength(org.flag4j.core.TensorBase,org.flag4j.core.TensorBase,int)"},{"p":"org.flag4j.core","c":"TensorBase","l":"sameShape(TensorBase)","u":"sameShape(org.flag4j.core.TensorBase)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"scalDiv(CNumber[], CNumber)","u":"scalDiv(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"scalDiv(CNumber[], double)","u":"scalDiv(org.flag4j.complex_numbers.CNumber[],double)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseOperations","l":"scalDiv(CNumber[], double)","u":"scalDiv(org.flag4j.complex_numbers.CNumber[],double)"},{"p":"org.flag4j.operations.common.complex","c":"ComplexOperations","l":"scalDiv(double[], CNumber)","u":"scalDiv(double[],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseOperations","l":"scalDiv(double[], CNumber)","u":"scalDiv(double[],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.common.real","c":"RealOperations","l":"scalDiv(double[], double)","u":"scalDiv(double[],double)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseOperations","l":"scalDiv(double[], double)","u":"scalDiv(double[],double)"},{"p":"org.flag4j.operations.common.complex","c":"ComplexOperations","l":"scalMult(CNumber[], CNumber)","u":"scalMult(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"scalMult(CNumber[], CNumber)","u":"scalMult(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.common.complex","c":"ComplexOperations","l":"scalMult(CNumber[], CNumber[], CNumber)","u":"scalMult(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.common.complex","c":"ComplexOperations","l":"scalMult(CNumber[], CNumber[], CNumber, int, int)","u":"scalMult(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber,int,int)"},{"p":"org.flag4j.operations.common.complex","c":"ComplexOperations","l":"scalMult(CNumber[], double)","u":"scalMult(org.flag4j.complex_numbers.CNumber[],double)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"scalMult(CNumber[], double)","u":"scalMult(org.flag4j.complex_numbers.CNumber[],double)"},{"p":"org.flag4j.operations.common.complex","c":"ComplexOperations","l":"scalMult(double[], CNumber)","u":"scalMult(double[],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.common.real","c":"RealOperations","l":"scalMult(double[], double)","u":"scalMult(double[],double)"},{"p":"org.flag4j.operations.common.real","c":"RealOperations","l":"scalMult(double[], double[], double)","u":"scalMult(double[],double[],double)"},{"p":"org.flag4j.operations.common.real","c":"RealOperations","l":"scalMult(double[], double[], double, int, int)","u":"scalMult(double[],double[],double,int,int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"Schur(boolean, RandomCNumber, UnitaryDecomposition)","u":"%3Cinit%3E(boolean,org.flag4j.rng.RandomCNumber,org.flag4j.linalg.decompositions.unitary.UnitaryDecomposition)"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher","l":"selectAlgorithm(Shape, Shape)","u":"selectAlgorithm(org.flag4j.core.Shape,org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher","l":"selectAlgorithmTranspose(Shape)","u":"selectAlgorithmTranspose(org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"SEQUENTIAL_SWAPPED_THRESHOLD"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher","l":"SEQUENTIAL_SWAPPED_THRESHOLD"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"set(CNumber, int, int)","u":"set(org.flag4j.complex_numbers.CNumber,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"set(CNumber, int, int)","u":"set(org.flag4j.complex_numbers.CNumber,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"set(CNumber, int, int)","u":"set(org.flag4j.complex_numbers.CNumber,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"set(CNumber, int...)","u":"set(org.flag4j.complex_numbers.CNumber,int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"set(CNumber, int...)","u":"set(org.flag4j.complex_numbers.CNumber,int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"set(CNumber, int...)","u":"set(org.flag4j.complex_numbers.CNumber,int...)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"set(CNumber, int...)","u":"set(org.flag4j.complex_numbers.CNumber,int...)"},{"p":"org.flag4j.core","c":"ComplexTensorMixin","l":"set(CNumber, int...)","u":"set(org.flag4j.complex_numbers.CNumber,int...)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"set(CNumber, int...)","u":"set(org.flag4j.complex_numbers.CNumber,int...)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseSetOperations","l":"set(CNumber[], Shape, CNumber, int...)","u":"set(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber,int...)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseSetOperations","l":"set(CNumber[], Shape, double, int...)","u":"set(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double,int...)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"set(double, int, int)","u":"set(double,int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"set(double, int, int)","u":"set(double,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"set(double, int, int)","u":"set(double,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"set(double, int, int)","u":"set(double,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"set(double, int, int)","u":"set(double,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"set(double, int, int)","u":"set(double,int,int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"set(double, int, int)","u":"set(double,int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"set(Double, int, int)","u":"set(java.lang.Double,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"set(Double, int, int)","u":"set(java.lang.Double,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"set(Double, int, int)","u":"set(java.lang.Double,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"set(double, int...)","u":"set(double,int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"set(double, int...)","u":"set(double,int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"set(double, int...)","u":"set(double,int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"set(double, int...)","u":"set(double,int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"set(double, int...)","u":"set(double,int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"set(double, int...)","u":"set(double,int...)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"set(double, int...)","u":"set(double,int...)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"set(double, int...)","u":"set(double,int...)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"set(double, int...)","u":"set(double,int...)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"set(double, int...)","u":"set(double,int...)"},{"p":"org.flag4j.core","c":"TensorManipulationsMixin","l":"set(double, int...)","u":"set(double,int...)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseSetOperations","l":"set(double[], Shape, double, int...)","u":"set(double[],org.flag4j.core.Shape,double,int...)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"set(X, int, int)","u":"set(X,int,int)"},{"p":"org.flag4j.concurrency","c":"Configurations","l":"setBlockSize(int)"},{"p":"org.flag4j.io","c":"PrintOptions","l":"setCentering(boolean)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setCol(CNumber[], int)","u":"setCol(org.flag4j.complex_numbers.CNumber[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setCol(CNumber[], int)","u":"setCol(org.flag4j.complex_numbers.CNumber[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setCol(CNumber[], int)","u":"setCol(org.flag4j.complex_numbers.CNumber[],int)"},{"p":"org.flag4j.core","c":"ComplexMatrixMixin","l":"setCol(CNumber[], int)","u":"setCol(org.flag4j.complex_numbers.CNumber[],int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setCol(CooCMatrix, int, CNumber[])","u":"setCol(org.flag4j.arrays.sparse.CooCMatrix,int,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setCol(CooCMatrix, int, CooCVector)","u":"setCol(org.flag4j.arrays.sparse.CooCMatrix,int,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setCol(CooCMatrix, int, double[])","u":"setCol(org.flag4j.arrays.sparse.CooCMatrix,int,double[])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setCol(CooCVector, int)","u":"setCol(org.flag4j.arrays.sparse.CooCVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setCol(CooCVector, int)","u":"setCol(org.flag4j.arrays.sparse.CooCVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setCol(CooCVector, int)","u":"setCol(org.flag4j.arrays.sparse.CooCVector,int)"},{"p":"org.flag4j.core","c":"ComplexMatrixMixin","l":"setCol(CooCVector, int)","u":"setCol(org.flag4j.arrays.sparse.CooCVector,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"setCol(CooMatrix, int, CooVector)","u":"setCol(org.flag4j.arrays.sparse.CooMatrix,int,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"setCol(CooMatrix, int, double[])","u":"setCol(org.flag4j.arrays.sparse.CooMatrix,int,double[])"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setCol(CooVector, int)","u":"setCol(org.flag4j.arrays.sparse.CooVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setCol(CooVector, int)","u":"setCol(org.flag4j.arrays.sparse.CooVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setCol(CooVector, int)","u":"setCol(org.flag4j.arrays.sparse.CooVector,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setCol(CVector, int)","u":"setCol(org.flag4j.arrays.dense.CVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setCol(CVector, int)","u":"setCol(org.flag4j.arrays.dense.CVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setCol(CVector, int)","u":"setCol(org.flag4j.arrays.dense.CVector,int)"},{"p":"org.flag4j.core","c":"ComplexMatrixMixin","l":"setCol(CVector, int)","u":"setCol(org.flag4j.arrays.dense.CVector,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setCol(double[], int)","u":"setCol(double[],int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setCol(double[], int)","u":"setCol(double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setCol(double[], int)","u":"setCol(double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setCol(double[], int)","u":"setCol(double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setCol(double[], int)","u":"setCol(double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setCol(double[], int)","u":"setCol(double[],int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setCol(double[], int)","u":"setCol(double[],int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setCol(Double[], int)","u":"setCol(java.lang.Double[],int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setCol(Double[], int)","u":"setCol(java.lang.Double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setCol(Double[], int)","u":"setCol(java.lang.Double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setCol(Double[], int)","u":"setCol(java.lang.Double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setCol(Double[], int)","u":"setCol(java.lang.Double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setCol(Double[], int)","u":"setCol(java.lang.Double[],int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setCol(Double[], int)","u":"setCol(java.lang.Double[],int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setCol(int[], int)","u":"setCol(int[],int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setCol(int[], int)","u":"setCol(int[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setCol(int[], int)","u":"setCol(int[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setCol(int[], int)","u":"setCol(int[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setCol(int[], int)","u":"setCol(int[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setCol(int[], int)","u":"setCol(int[],int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setCol(int[], int)","u":"setCol(int[],int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setCol(Integer[], int)","u":"setCol(java.lang.Integer[],int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setCol(Integer[], int)","u":"setCol(java.lang.Integer[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setCol(Integer[], int)","u":"setCol(java.lang.Integer[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setCol(Integer[], int)","u":"setCol(java.lang.Integer[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setCol(Integer[], int)","u":"setCol(java.lang.Integer[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setCol(Integer[], int)","u":"setCol(java.lang.Integer[],int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setCol(Integer[], int)","u":"setCol(java.lang.Integer[],int)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"setCol(TT, int)","u":"setCol(TT,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setCol(Vector, int)","u":"setCol(org.flag4j.arrays.dense.Vector,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setCol(Vector, int)","u":"setCol(org.flag4j.arrays.dense.Vector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setCol(Vector, int)","u":"setCol(org.flag4j.arrays.dense.Vector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setCol(Vector, int)","u":"setCol(org.flag4j.arrays.dense.Vector,int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setCol(X[], int)","u":"setCol(X[],int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"setExceptionalThreshold(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"setExceptionalThreshold(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"setExceptionalThreshold(int)"},{"p":"org.flag4j.io","c":"PrintOptions","l":"setMaxColumns(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"setMaxIterationFactor(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"setMaxIterationFactor(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"setMaxIterationFactor(int)"},{"p":"org.flag4j.io","c":"PrintOptions","l":"setMaxRows(int)"},{"p":"org.flag4j.io","c":"PrintOptions","l":"setMaxRowsCols(int)"},{"p":"org.flag4j.io","c":"PrintOptions","l":"setMaxRowsCols(int, int)","u":"setMaxRowsCols(int,int)"},{"p":"org.flag4j.concurrency","c":"Configurations","l":"setMinRecursiveSize(int)"},{"p":"org.flag4j.concurrency","c":"Configurations","l":"setNumThreads(int)"},{"p":"org.flag4j.concurrency","c":"Configurations","l":"setNumThreadsAsAvailableProcessors()"},{"p":"org.flag4j.io","c":"PrintOptions","l":"setPadding(int)"},{"p":"org.flag4j.concurrency","c":"ThreadManager","l":"setParallelismLevel(int)"},{"p":"org.flag4j.io","c":"PrintOptions","l":"setPrecision(int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setRow(CNumber[], int)","u":"setRow(org.flag4j.complex_numbers.CNumber[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setRow(CNumber[], int)","u":"setRow(org.flag4j.complex_numbers.CNumber[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setRow(CNumber[], int)","u":"setRow(org.flag4j.complex_numbers.CNumber[],int)"},{"p":"org.flag4j.core","c":"ComplexMatrixMixin","l":"setRow(CNumber[], int)","u":"setRow(org.flag4j.complex_numbers.CNumber[],int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setRow(CooCMatrix, int, CNumber[])","u":"setRow(org.flag4j.arrays.sparse.CooCMatrix,int,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setRow(CooCMatrix, int, CooCVector)","u":"setRow(org.flag4j.arrays.sparse.CooCMatrix,int,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setRow(CooCMatrix, int, double[])","u":"setRow(org.flag4j.arrays.sparse.CooCMatrix,int,double[])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setRow(CooCVector, int)","u":"setRow(org.flag4j.arrays.sparse.CooCVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setRow(CooCVector, int)","u":"setRow(org.flag4j.arrays.sparse.CooCVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setRow(CooCVector, int)","u":"setRow(org.flag4j.arrays.sparse.CooCVector,int)"},{"p":"org.flag4j.core","c":"ComplexMatrixMixin","l":"setRow(CooCVector, int)","u":"setRow(org.flag4j.arrays.sparse.CooCVector,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"setRow(CooMatrix, int, double[])","u":"setRow(org.flag4j.arrays.sparse.CooMatrix,int,double[])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setRow(CVector, int)","u":"setRow(org.flag4j.arrays.dense.CVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setRow(CVector, int)","u":"setRow(org.flag4j.arrays.dense.CVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setRow(CVector, int)","u":"setRow(org.flag4j.arrays.dense.CVector,int)"},{"p":"org.flag4j.core","c":"ComplexMatrixMixin","l":"setRow(CVector, int)","u":"setRow(org.flag4j.arrays.dense.CVector,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setRow(double[], int)","u":"setRow(double[],int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setRow(double[], int)","u":"setRow(double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setRow(double[], int)","u":"setRow(double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setRow(double[], int)","u":"setRow(double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setRow(double[], int)","u":"setRow(double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setRow(double[], int)","u":"setRow(double[],int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setRow(double[], int)","u":"setRow(double[],int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setRow(Double[], int)","u":"setRow(java.lang.Double[],int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setRow(Double[], int)","u":"setRow(java.lang.Double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setRow(Double[], int)","u":"setRow(java.lang.Double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setRow(Double[], int)","u":"setRow(java.lang.Double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setRow(Double[], int)","u":"setRow(java.lang.Double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setRow(Double[], int)","u":"setRow(java.lang.Double[],int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setRow(Double[], int)","u":"setRow(java.lang.Double[],int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setRow(int[], int)","u":"setRow(int[],int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setRow(int[], int)","u":"setRow(int[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setRow(int[], int)","u":"setRow(int[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setRow(int[], int)","u":"setRow(int[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setRow(int[], int)","u":"setRow(int[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setRow(int[], int)","u":"setRow(int[],int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setRow(int[], int)","u":"setRow(int[],int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setRow(Integer[], int)","u":"setRow(java.lang.Integer[],int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setRow(Integer[], int)","u":"setRow(java.lang.Integer[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setRow(Integer[], int)","u":"setRow(java.lang.Integer[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setRow(Integer[], int)","u":"setRow(java.lang.Integer[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setRow(Integer[], int)","u":"setRow(java.lang.Integer[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setRow(Integer[], int)","u":"setRow(java.lang.Integer[],int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setRow(Integer[], int)","u":"setRow(java.lang.Integer[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setRow(Vector, int)","u":"setRow(org.flag4j.arrays.dense.Vector,int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setRow(X[], int)","u":"setRow(X[],int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSlice(CMatrix, int, int)","u":"setSlice(org.flag4j.arrays.dense.CMatrix,int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSlice(CNumber[][], int, int)","u":"setSlice(org.flag4j.complex_numbers.CNumber[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setSlice(CNumber[][], int, int)","u":"setSlice(org.flag4j.complex_numbers.CNumber[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setSlice(CNumber[][], int, int)","u":"setSlice(org.flag4j.complex_numbers.CNumber[][],int,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setSlice(CooCMatrix, CNumber[], int, int, int[], int[], int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.complex_numbers.CNumber[],int,int,int[],int[],int,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setSlice(CooCMatrix, CNumber[][], int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.complex_numbers.CNumber[][],int,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setSlice(CooCMatrix, CooCMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooCMatrix,int,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setSlice(CooCMatrix, CooMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooMatrix,int,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setSlice(CooCMatrix, double[], int, int, int[], int[], int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooCMatrix,double[],int,int,int[],int[],int,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setSlice(CooCMatrix, double[][], int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooCMatrix,double[][],int,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setSlice(CooCMatrix, Double[][], int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooCMatrix,java.lang.Double[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSlice(CooCMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooCMatrix,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setSlice(CooCMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooCMatrix,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setSlice(CooCMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooCMatrix,int,int)"},{"p":"org.flag4j.core","c":"ComplexMatrixMixin","l":"setSlice(CooCMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooCMatrix,int,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setSlice(CooCMatrix, int[][], int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooCMatrix,int[][],int,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setSlice(CooCMatrix, Integer[][], int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooCMatrix,java.lang.Integer[][],int,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setSlice(CooCMatrix, Matrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.dense.Matrix,int,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"setSlice(CooMatrix, CooMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooMatrix,int,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"setSlice(CooMatrix, double[], int, int, int[], int[], int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooMatrix,double[],int,int,int[],int[],int,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"setSlice(CooMatrix, double[][], int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooMatrix,double[][],int,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"setSlice(CooMatrix, Double[][], int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooMatrix,java.lang.Double[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSlice(CooMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooMatrix,int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setSlice(CooMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooMatrix,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setSlice(CooMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooMatrix,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setSlice(CooMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooMatrix,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setSlice(CooMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooMatrix,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setSlice(CooMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooMatrix,int,int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setSlice(CooMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooMatrix,int,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"setSlice(CooMatrix, int[][], int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooMatrix,int[][],int,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"setSlice(CooMatrix, Integer[][], int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooMatrix,java.lang.Integer[][],int,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"setSlice(CooMatrix, Matrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.dense.Matrix,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setSlice(CsrCMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CsrCMatrix,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setSlice(CsrMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CsrMatrix,int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSlice(double[][], int, int)","u":"setSlice(double[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setSlice(double[][], int, int)","u":"setSlice(double[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setSlice(double[][], int, int)","u":"setSlice(double[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setSlice(double[][], int, int)","u":"setSlice(double[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setSlice(double[][], int, int)","u":"setSlice(double[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setSlice(double[][], int, int)","u":"setSlice(double[][],int,int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setSlice(double[][], int, int)","u":"setSlice(double[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSlice(Double[][], int, int)","u":"setSlice(java.lang.Double[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setSlice(Double[][], int, int)","u":"setSlice(java.lang.Double[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setSlice(Double[][], int, int)","u":"setSlice(java.lang.Double[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setSlice(Double[][], int, int)","u":"setSlice(java.lang.Double[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setSlice(Double[][], int, int)","u":"setSlice(java.lang.Double[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setSlice(Double[][], int, int)","u":"setSlice(java.lang.Double[][],int,int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setSlice(Double[][], int, int)","u":"setSlice(java.lang.Double[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSlice(int[][], int, int)","u":"setSlice(int[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setSlice(int[][], int, int)","u":"setSlice(int[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setSlice(int[][], int, int)","u":"setSlice(int[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setSlice(int[][], int, int)","u":"setSlice(int[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setSlice(int[][], int, int)","u":"setSlice(int[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setSlice(int[][], int, int)","u":"setSlice(int[][],int,int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setSlice(int[][], int, int)","u":"setSlice(int[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSlice(Integer[][], int, int)","u":"setSlice(java.lang.Integer[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setSlice(Integer[][], int, int)","u":"setSlice(java.lang.Integer[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setSlice(Integer[][], int, int)","u":"setSlice(java.lang.Integer[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setSlice(Integer[][], int, int)","u":"setSlice(java.lang.Integer[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setSlice(Integer[][], int, int)","u":"setSlice(java.lang.Integer[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setSlice(Integer[][], int, int)","u":"setSlice(java.lang.Integer[][],int,int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setSlice(Integer[][], int, int)","u":"setSlice(java.lang.Integer[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSlice(Matrix, int, int)","u":"setSlice(org.flag4j.arrays.dense.Matrix,int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setSlice(Matrix, int, int)","u":"setSlice(org.flag4j.arrays.dense.Matrix,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setSlice(Matrix, int, int)","u":"setSlice(org.flag4j.arrays.dense.Matrix,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setSlice(Matrix, int, int)","u":"setSlice(org.flag4j.arrays.dense.Matrix,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setSlice(Matrix, int, int)","u":"setSlice(org.flag4j.arrays.dense.Matrix,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setSlice(Matrix, int, int)","u":"setSlice(org.flag4j.arrays.dense.Matrix,int,int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setSlice(Matrix, int, int)","u":"setSlice(org.flag4j.arrays.dense.Matrix,int,int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setSlice(T, int, int)","u":"setSlice(T,int,int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setSlice(X[][], int, int)","u":"setSlice(X[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSliceCopy(CMatrix, int, int)","u":"setSliceCopy(org.flag4j.arrays.dense.CMatrix,int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSliceCopy(CNumber[][], int, int)","u":"setSliceCopy(org.flag4j.complex_numbers.CNumber[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSliceCopy(CooCMatrix, int, int)","u":"setSliceCopy(org.flag4j.arrays.sparse.CooCMatrix,int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSliceCopy(CooMatrix, int, int)","u":"setSliceCopy(org.flag4j.arrays.sparse.CooMatrix,int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setSliceCopy(CooMatrix, int, int)","u":"setSliceCopy(org.flag4j.arrays.sparse.CooMatrix,int,int)"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"setSliceCopy(CooMatrix, int, int)","u":"setSliceCopy(org.flag4j.arrays.sparse.CooMatrix,int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSliceCopy(double[][], int, int)","u":"setSliceCopy(double[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setSliceCopy(double[][], int, int)","u":"setSliceCopy(double[][],int,int)"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"setSliceCopy(double[][], int, int)","u":"setSliceCopy(double[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSliceCopy(Double[][], int, int)","u":"setSliceCopy(java.lang.Double[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setSliceCopy(Double[][], int, int)","u":"setSliceCopy(java.lang.Double[][],int,int)"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"setSliceCopy(Double[][], int, int)","u":"setSliceCopy(java.lang.Double[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSliceCopy(int[][], int, int)","u":"setSliceCopy(int[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setSliceCopy(int[][], int, int)","u":"setSliceCopy(int[][],int,int)"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"setSliceCopy(int[][], int, int)","u":"setSliceCopy(int[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSliceCopy(Integer[][], int, int)","u":"setSliceCopy(java.lang.Integer[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setSliceCopy(Integer[][], int, int)","u":"setSliceCopy(java.lang.Integer[][],int,int)"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"setSliceCopy(Integer[][], int, int)","u":"setSliceCopy(java.lang.Integer[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSliceCopy(Matrix, int, int)","u":"setSliceCopy(org.flag4j.arrays.dense.Matrix,int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setSliceCopy(Matrix, int, int)","u":"setSliceCopy(org.flag4j.arrays.dense.Matrix,int,int)"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"setSliceCopy(Matrix, int, int)","u":"setSliceCopy(org.flag4j.arrays.dense.Matrix,int,int)"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"setSliceCopy(T, int, int)","u":"setSliceCopy(T,int,int)"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"setSliceCopy(X[][], int, int)","u":"setSliceCopy(X[][],int,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setSliceParamCheck(T, int, int, int, int)","u":"setSliceParamCheck(T,int,int,int,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setSliceParamCheck(T, U, int, int)","u":"setSliceParamCheck(T,U,int,int)"},{"p":"org.flag4j.linalg.decompositions.hess","c":"SymmHess","l":"setUp(Matrix)","u":"setUp(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"setUp(T)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"setUp(T)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"setUpArrays()"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"setUpArrays()"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"setUpArrays()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseSetOperations","l":"setValues(CNumber[], CNumber[])","u":"setValues(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setValues(CNumber[][])","u":"setValues(org.flag4j.complex_numbers.CNumber[][])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseSetOperations","l":"setValues(CNumber[][], CNumber[])","u":"setValues(org.flag4j.complex_numbers.CNumber[][],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseSetOperations","l":"setValues(double[], CNumber[])","u":"setValues(double[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseSetOperations","l":"setValues(Double[], CNumber[])","u":"setValues(java.lang.Double[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseSetOperations","l":"setValues(double[], double[])","u":"setValues(double[],double[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseSetOperations","l":"setValues(Double[], double[])","u":"setValues(java.lang.Double[],double[])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setValues(double[][])"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setValues(double[][])"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"setValues(double[][])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setValues(Double[][])","u":"setValues(java.lang.Double[][])"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setValues(Double[][])","u":"setValues(java.lang.Double[][])"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"setValues(Double[][])","u":"setValues(java.lang.Double[][])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseSetOperations","l":"setValues(double[][], CNumber[])","u":"setValues(double[][],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseSetOperations","l":"setValues(Double[][], CNumber[])","u":"setValues(java.lang.Double[][],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseSetOperations","l":"setValues(double[][], double[])","u":"setValues(double[][],double[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseSetOperations","l":"setValues(Double[][], double[])","u":"setValues(java.lang.Double[][],double[])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseSetOperations","l":"setValues(int[], CNumber[])","u":"setValues(int[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseSetOperations","l":"setValues(int[], double[])","u":"setValues(int[],double[])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setValues(int[][])"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setValues(int[][])"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"setValues(int[][])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseSetOperations","l":"setValues(int[][], CNumber[])","u":"setValues(int[][],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseSetOperations","l":"setValues(int[][], double[])","u":"setValues(int[][],double[])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseSetOperations","l":"setValues(Integer[], CNumber[])","u":"setValues(java.lang.Integer[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseSetOperations","l":"setValues(Integer[], double[])","u":"setValues(java.lang.Integer[],double[])"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setValues(Integer[][])","u":"setValues(java.lang.Integer[][])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseSetOperations","l":"setValues(Integer[][], CNumber[])","u":"setValues(java.lang.Integer[][],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseSetOperations","l":"setValues(Integer[][], double[])","u":"setValues(java.lang.Integer[][],double[])"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"setValues(X[][])"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"sgn(CNumber)","u":"sgn(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core","c":"TensorBase","l":"shape"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"SHAPE_BROADCAST_ERR"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"SHAPE_ENTRIES_ERR"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"SHAPE_RANK_ERR"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"shape()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"shape()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"shape()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"shape()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"shape()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"shape()"},{"p":"org.flag4j.arrays.sparse","c":"SymmTriDiagonal","l":"shape()"},{"p":"org.flag4j.core","c":"MatrixMixin","l":"shape()"},{"p":"org.flag4j.core","c":"Shape","l":"Shape(boolean, int...)","u":"%3Cinit%3E(boolean,int...)"},{"p":"org.flag4j.core","c":"Shape","l":"Shape(int...)","u":"%3Cinit%3E(int...)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"shapeEntriesError(Shape, int)","u":"shapeEntriesError(org.flag4j.core.Shape,int)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"shapeRankErr(int, int)","u":"shapeRankErr(int,int)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"ComplexUnitaryDecomposition","l":"shift"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"RealUnitaryDecomposition","l":"shift"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"shift(int, int[])","u":"shift(int,int[])"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"shiftCol"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"shiftRange(int, int[], int, int)","u":"shiftRange(int,int[],int,int)"},{"p":"org.flag4j.rng","c":"RandomArray","l":"shuffle(double[])"},{"p":"org.flag4j.rng","c":"RandomArray","l":"shuffle(int[])"},{"p":"org.flag4j.rng","c":"RandomArray","l":"shuffle(Object[])","u":"shuffle(java.lang.Object[])"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"sin(CNumber)","u":"sin(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"sin(double)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"sinceLastExceptional"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher","l":"singletonInstance"},{"p":"org.flag4j.util.exceptions","c":"SingularMatrixException","l":"SingularMatrixException()","u":"%3Cinit%3E()"},{"p":"org.flag4j.util.exceptions","c":"SingularMatrixException","l":"SingularMatrixException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"sinh(CNumber)","u":"sinh(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"sinh(double)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"size"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"size"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"size"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"size"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"size"},{"p":"org.flag4j.arrays.sparse","c":"SymmTriDiagonal","l":"size"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"size()"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"size()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"size()"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"size()"},{"p":"org.flag4j.core","c":"VectorMixin","l":"size()"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexBackSolver","l":"solve(CMatrix, CMatrix)","u":"solve(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexForwardSolver","l":"solve(CMatrix, CMatrix)","u":"solve(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexBackSolver","l":"solve(CMatrix, CVector)","u":"solve(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexForwardSolver","l":"solve(CMatrix, CVector)","u":"solve(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealBackSolver","l":"solve(Matrix, Matrix)","u":"solve(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealForwardSolver","l":"solve(Matrix, Matrix)","u":"solve(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealBackSolver","l":"solve(Matrix, Vector)","u":"solve(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealForwardSolver","l":"solve(Matrix, Vector)","u":"solve(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactSolver","l":"solve(T, T)","u":"solve(T,T)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactTensorSolver","l":"solve(T, T)","u":"solve(T,T)"},{"p":"org.flag4j.linalg.solvers","c":"LinearSolver","l":"solve(T, T)","u":"solve(T,T)"},{"p":"org.flag4j.linalg.solvers","c":"LinearTensorSolver","l":"solve(T, T)","u":"solve(T,T)"},{"p":"org.flag4j.linalg.solvers.lstsq","c":"LstsqSolver","l":"solve(T, T)","u":"solve(T,T)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactSolver","l":"solve(T, U)","u":"solve(T,U)"},{"p":"org.flag4j.linalg.solvers","c":"LinearSolver","l":"solve(T, U)","u":"solve(T,U)"},{"p":"org.flag4j.linalg.solvers.lstsq","c":"LstsqSolver","l":"solve(T, U)","u":"solve(T,U)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexBackSolver","l":"solveIdentity(CMatrix)","u":"solveIdentity(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexForwardSolver","l":"solveIdentity(CMatrix)","u":"solveIdentity(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealBackSolver","l":"solveIdentity(Matrix)","u":"solveIdentity(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealForwardSolver","l":"solveIdentity(Matrix)","u":"solveIdentity(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexBackSolver","l":"solveLower(CMatrix, CMatrix)","u":"solveLower(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexForwardSolver","l":"solveLower(CMatrix, CMatrix)","u":"solveLower(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexForwardSolver","l":"solveLower(CMatrix, CVector)","u":"solveLower(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealBackSolver","l":"solveLower(Matrix, Matrix)","u":"solveLower(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealForwardSolver","l":"solveLower(Matrix, Matrix)","u":"solveLower(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealForwardSolver","l":"solveLower(Matrix, Vector)","u":"solveLower(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexForwardSolver","l":"solveLowerIdentity(CMatrix)","u":"solveLowerIdentity(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealForwardSolver","l":"solveLowerIdentity(Matrix)","u":"solveLowerIdentity(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexForwardSolver","l":"solveUnitLower(CMatrix, CMatrix)","u":"solveUnitLower(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexForwardSolver","l":"solveUnitLower(CMatrix, CVector)","u":"solveUnitLower(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealForwardSolver","l":"solveUnitLower(Matrix, Matrix)","u":"solveUnitLower(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealForwardSolver","l":"solveUnitLower(Matrix, Vector)","u":"solveUnitLower(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexForwardSolver","l":"solveUnitLowerIdentity(CMatrix)","u":"solveUnitLowerIdentity(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealForwardSolver","l":"solveUnitLowerIdentity(Matrix)","u":"solveUnitLowerIdentity(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"sortIndices()"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"sortIndices()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"sortIndices()"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"sortIndices()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"sortIndices()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"sortIndices()"},{"p":"org.flag4j.core.sparse_base","c":"SparseTensorMixin","l":"sortIndices()"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"SparseDataWrapper(T[], int[][], boolean)","u":"%3Cinit%3E(T[],int[][],boolean)"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseElementSearch","l":"SparseElementSearch()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"sparseSort()"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"sparseSortHelper(int, int, int)","u":"sparseSortHelper(int,int,int)"},{"p":"org.flag4j.core.sparse_base","c":"SparseTensorBase","l":"SparseTensorBase(Shape, int, D, int[], int[]...)","u":"%3Cinit%3E(org.flag4j.core.Shape,int,D,int[],int[]...)"},{"p":"org.flag4j.core.sparse_base","c":"SparseTensorBase","l":"SparseTensorBase(Shape, int, D, int[][])","u":"%3Cinit%3E(org.flag4j.core.Shape,int,D,int[][])"},{"p":"org.flag4j.arrays.sparse","c":"SparseUtils","l":"SparseUtils()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseUtils","l":"SparseUtils()","u":"%3Cinit%3E()"},{"p":"org.flag4j.core.sparse_base","c":"SparseTensorBase","l":"sparsity()"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"splice(CNumber[], CNumber[], int)","u":"splice(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber[],int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"splice(CNumber[], double[], int)","u":"splice(org.flag4j.complex_numbers.CNumber[],double[],int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"splice(double[], CNumber[], int)","u":"splice(double[],org.flag4j.complex_numbers.CNumber[],int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"splice(double[], double[], int)","u":"splice(double[],double[],int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"splice(int[], int[], int)","u":"splice(int[],int[],int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"splice(List, CNumber[], int)","u":"splice(java.util.List,org.flag4j.complex_numbers.CNumber[],int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"splice(List, double[], int)","u":"splice(java.util.List,double[],int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"splice(List, int[], int)","u":"splice(java.util.List,int[],int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"spliceDouble(List, double[], int)","u":"spliceDouble(java.util.List,double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"sqrt()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"sqrt()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"sqrt()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"sqrt()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"sqrt()"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"sqrt()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"sqrt(CNumber)","u":"sqrt(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.common.complex","c":"ComplexOperations","l":"sqrt(CNumber[])","u":"sqrt(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"sqrt(double)"},{"p":"org.flag4j.operations.common.complex","c":"ComplexOperations","l":"sqrt(double[])"},{"p":"org.flag4j.operations.common.real","c":"RealOperations","l":"sqrt(double[])"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"sqrtComplex()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"sqrtComplex()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"sqrtComplex()"},{"p":"org.flag4j.core","c":"RealMatrixMixin","l":"sqrtComplex()"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"SQUARE_SHAPE_ERR"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"SQUARENESS_RATIO"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher","l":"SQUARENESS_RATIO"},{"p":"org.flag4j.linalg.transformations","c":"Givens","l":"stableTrigVals(double, double)","u":"stableTrigVals(double,double)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"stack(CMatrix)","u":"stack(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"stack(CMatrix)","u":"stack(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"stack(CMatrix)","u":"stack(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"stack(CMatrix)","u":"stack(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"stack(CMatrix)","u":"stack(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"stack(CMatrix)","u":"stack(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CMatrix)","u":"stack(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CMatrix, int)","u":"stack(org.flag4j.arrays.dense.CMatrix,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"stack(CooCMatrix)","u":"stack(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"stack(CooCMatrix)","u":"stack(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"stack(CooCMatrix)","u":"stack(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"stack(CooCMatrix)","u":"stack(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"stack(CooCMatrix)","u":"stack(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"stack(CooCMatrix)","u":"stack(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CooCMatrix)","u":"stack(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CooCMatrix, int)","u":"stack(org.flag4j.arrays.sparse.CooCMatrix,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"stack(CooCVector)","u":"stack(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"stack(CooCVector)","u":"stack(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"stack(CooCVector)","u":"stack(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"stack(CooCVector)","u":"stack(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"stack(CooCVector)","u":"stack(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"stack(CooCVector)","u":"stack(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"stack(CooCVector)","u":"stack(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"stack(CooCVector)","u":"stack(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"stack(CooCVector)","u":"stack(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"stack(CooCVector)","u":"stack(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CooCVector)","u":"stack(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"stack(CooCVector)","u":"stack(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"stack(CooCVector, int)","u":"stack(org.flag4j.arrays.sparse.CooCVector,int)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"stack(CooCVector, int)","u":"stack(org.flag4j.arrays.sparse.CooCVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"stack(CooCVector, int)","u":"stack(org.flag4j.arrays.sparse.CooCVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"stack(CooCVector, int)","u":"stack(org.flag4j.arrays.sparse.CooCVector,int)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CooCVector, int)","u":"stack(org.flag4j.arrays.sparse.CooCVector,int)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"stack(CooCVector, int)","u":"stack(org.flag4j.arrays.sparse.CooCVector,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"stack(CooMatrix)","u":"stack(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"stack(CooMatrix)","u":"stack(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"stack(CooMatrix)","u":"stack(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"stack(CooMatrix)","u":"stack(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"stack(CooMatrix)","u":"stack(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"stack(CooMatrix)","u":"stack(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CooMatrix)","u":"stack(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CooMatrix, int)","u":"stack(org.flag4j.arrays.sparse.CooMatrix,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"stack(CooVector)","u":"stack(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"stack(CooVector)","u":"stack(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"stack(CooVector)","u":"stack(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"stack(CooVector)","u":"stack(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"stack(CooVector)","u":"stack(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"stack(CooVector)","u":"stack(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"stack(CooVector)","u":"stack(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"stack(CooVector)","u":"stack(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"stack(CooVector)","u":"stack(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"stack(CooVector)","u":"stack(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CooVector)","u":"stack(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"stack(CooVector)","u":"stack(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"stack(CooVector, int)","u":"stack(org.flag4j.arrays.sparse.CooVector,int)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"stack(CooVector, int)","u":"stack(org.flag4j.arrays.sparse.CooVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"stack(CooVector, int)","u":"stack(org.flag4j.arrays.sparse.CooVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"stack(CooVector, int)","u":"stack(org.flag4j.arrays.sparse.CooVector,int)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CooVector, int)","u":"stack(org.flag4j.arrays.sparse.CooVector,int)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"stack(CooVector, int)","u":"stack(org.flag4j.arrays.sparse.CooVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"stack(CsrCMatrix)","u":"stack(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CsrCMatrix)","u":"stack(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CsrCMatrix, int)","u":"stack(org.flag4j.arrays.sparse.CsrCMatrix,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"stack(CsrMatrix)","u":"stack(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CsrMatrix)","u":"stack(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CsrMatrix, int)","u":"stack(org.flag4j.arrays.sparse.CsrMatrix,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"stack(CVector)","u":"stack(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"stack(CVector)","u":"stack(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"stack(CVector)","u":"stack(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"stack(CVector)","u":"stack(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"stack(CVector)","u":"stack(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"stack(CVector)","u":"stack(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"stack(CVector)","u":"stack(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"stack(CVector)","u":"stack(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"stack(CVector)","u":"stack(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"stack(CVector)","u":"stack(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CVector)","u":"stack(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"stack(CVector)","u":"stack(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"stack(CVector, int)","u":"stack(org.flag4j.arrays.dense.CVector,int)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"stack(CVector, int)","u":"stack(org.flag4j.arrays.dense.CVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"stack(CVector, int)","u":"stack(org.flag4j.arrays.dense.CVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"stack(CVector, int)","u":"stack(org.flag4j.arrays.dense.CVector,int)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CVector, int)","u":"stack(org.flag4j.arrays.dense.CVector,int)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"stack(CVector, int)","u":"stack(org.flag4j.arrays.dense.CVector,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"stack(Matrix)","u":"stack(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"stack(Matrix)","u":"stack(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"stack(Matrix)","u":"stack(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"stack(Matrix)","u":"stack(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"stack(Matrix)","u":"stack(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"stack(Matrix)","u":"stack(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(Matrix)","u":"stack(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(Matrix, int)","u":"stack(org.flag4j.arrays.dense.Matrix,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"stack(Vector)","u":"stack(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"stack(Vector)","u":"stack(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"stack(Vector)","u":"stack(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"stack(Vector)","u":"stack(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"stack(Vector)","u":"stack(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"stack(Vector)","u":"stack(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"stack(Vector)","u":"stack(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"stack(Vector)","u":"stack(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"stack(Vector)","u":"stack(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"stack(Vector)","u":"stack(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(Vector)","u":"stack(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"stack(Vector)","u":"stack(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"stack(Vector, int)","u":"stack(org.flag4j.arrays.dense.Vector,int)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"stack(Vector, int)","u":"stack(org.flag4j.arrays.dense.Vector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"stack(Vector, int)","u":"stack(org.flag4j.arrays.dense.Vector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"stack(Vector, int)","u":"stack(org.flag4j.arrays.dense.Vector,int)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(Vector, int)","u":"stack(org.flag4j.arrays.dense.Vector,int)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"stack(Vector, int)","u":"stack(org.flag4j.arrays.dense.Vector,int)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"STANDARD"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"STANDARD"},{"p":"org.flag4j.operations","c":"TransposeDispatcher.Algorithm","l":"STANDARD"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"STANDARD_THRESHOLD"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"STANDARD_VECTOR"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"STANDARD_VECTOR"},{"p":"org.flag4j.operations.dense_sparse.csr.complex","c":"ComplexCsrDenseMatrixMultiplication","l":"standard(CMatrix, CsrCMatrix)","u":"standard(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseMatrixMultiplication","l":"standard(CMatrix, CsrMatrix)","u":"standard(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixMultiplication","l":"standard(CNumber[], int[], int[], Shape, CNumber[], int[], int[], Shape)","u":"standard(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixMultiplication","l":"standard(CNumber[], int[], int[], Shape, CNumber[], Shape)","u":"standard(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixMultiplication","l":"standard(CNumber[], int[], int[], Shape, double[], int[], int[], Shape)","u":"standard(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,double[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"standard(CNumber[], int[], int[], Shape, double[], Shape)","u":"standard(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixMultiplication","l":"standard(CNumber[], Shape, CNumber[], int[], int[], Shape)","u":"standard(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultiplication","l":"standard(CNumber[], Shape, CNumber[], Shape)","u":"standard(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"standard(CNumber[], Shape, double[], int[], int[], Shape)","u":"standard(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"standard(CNumber[], Shape, double[], Shape)","u":"standard(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"standard(CNumber[], Shape, int, int)","u":"standard(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,int,int)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"standard(CNumber[], Shape, int[])","u":"standard(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,int[])"},{"p":"org.flag4j.operations.dense_sparse.csr.complex","c":"ComplexCsrDenseMatrixMultiplication","l":"standard(CsrCMatrix, CMatrix)","u":"standard(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrMatrixMultiplication","l":"standard(CsrCMatrix, CsrCMatrix)","u":"standard(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.operations.sparse.csr.real_complex","c":"RealComplexCsrMatrixMultiplication","l":"standard(CsrCMatrix, CsrMatrix)","u":"standard(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseMatrixMultiplication","l":"standard(CsrCMatrix, Matrix)","u":"standard(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseMatrixMultiplication","l":"standard(CsrMatrix, CMatrix)","u":"standard(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.sparse.csr.real_complex","c":"RealComplexCsrMatrixMultiplication","l":"standard(CsrMatrix, CsrCMatrix)","u":"standard(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrMatrixMultiplication","l":"standard(CsrMatrix, CsrMatrix)","u":"standard(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.operations.dense_sparse.csr.real","c":"RealCsrDenseMatrixMultiplication","l":"standard(CsrMatrix, Matrix)","u":"standard(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixMultiplication","l":"standard(double[], int[], int[], Shape, CNumber[], int[], int[], Shape)","u":"standard(double[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"standard(double[], int[], int[], Shape, CNumber[], Shape)","u":"standard(double[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixMultiplication","l":"standard(double[], int[], int[], Shape, double[], int[], int[], Shape)","u":"standard(double[],int[],int[],org.flag4j.core.Shape,double[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixMultiplication","l":"standard(double[], int[], int[], Shape, double[], Shape)","u":"standard(double[],int[],int[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"standard(double[], Shape, CNumber[], int[], int[], Shape)","u":"standard(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"standard(double[], Shape, CNumber[], Shape)","u":"standard(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixMultiplication","l":"standard(double[], Shape, double[], int[], int[], Shape)","u":"standard(double[],org.flag4j.core.Shape,double[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultiplication","l":"standard(double[], Shape, double[], Shape)","u":"standard(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseTranspose","l":"standard(double[], Shape, int, int)","u":"standard(double[],org.flag4j.core.Shape,int,int)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseTranspose","l":"standard(double[], Shape, int[])","u":"standard(double[],org.flag4j.core.Shape,int[])"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseMatrixMultiplication","l":"standard(Matrix, CsrCMatrix)","u":"standard(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.operations.dense_sparse.csr.real","c":"RealCsrDenseMatrixMultiplication","l":"standard(Matrix, CsrMatrix)","u":"standard(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrMatrixMultiplication","l":"standardAsSparse(CsrCMatrix, CsrCMatrix)","u":"standardAsSparse(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.operations.sparse.csr.real_complex","c":"RealComplexCsrMatrixMultiplication","l":"standardAsSparse(CsrCMatrix, CsrMatrix)","u":"standardAsSparse(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.operations.sparse.csr.real_complex","c":"RealComplexCsrMatrixMultiplication","l":"standardAsSparse(CsrMatrix, CsrCMatrix)","u":"standardAsSparse(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrMatrixMultiplication","l":"standardAsSparse(CsrMatrix, CsrMatrix)","u":"standardAsSparse(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"standardConcurrent(CNumber[], Shape, int, int)","u":"standardConcurrent(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,int,int)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"standardConcurrent(CNumber[], Shape, int[])","u":"standardConcurrent(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,int[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseTranspose","l":"standardConcurrent(double[], Shape, int, int)","u":"standardConcurrent(double[],org.flag4j.core.Shape,int,int)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseTranspose","l":"standardConcurrent(double[], Shape, int[])","u":"standardConcurrent(double[],org.flag4j.core.Shape,int[])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"standardConcurrentHerm(CNumber[], Shape, int, int)","u":"standardConcurrentHerm(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,int,int)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"standardConcurrentHerm(CNumber[], Shape, int[])","u":"standardConcurrentHerm(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,int[])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"standardHerm(CNumber[], Shape, int, int)","u":"standardHerm(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,int,int)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseTranspose","l":"standardIntMatrix(int[][])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"standardMatrix(CNumber[], int, int)","u":"standardMatrix(org.flag4j.complex_numbers.CNumber[],int,int)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseTranspose","l":"standardMatrix(double[], int, int)","u":"standardMatrix(double[],int,int)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"standardMatrixConcurrent(CNumber[], int, int)","u":"standardMatrixConcurrent(org.flag4j.complex_numbers.CNumber[],int,int)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseTranspose","l":"standardMatrixConcurrent(double[], int, int)","u":"standardMatrixConcurrent(double[],int,int)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"standardMatrixConcurrentHerm(CNumber[], int, int)","u":"standardMatrixConcurrentHerm(org.flag4j.complex_numbers.CNumber[],int,int)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"standardMatrixHerm(CNumber[], int, int)","u":"standardMatrixHerm(org.flag4j.complex_numbers.CNumber[],int,int)"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseMatrixMultiplication","l":"standardTranspose(CsrMatrix, CMatrix)","u":"standardTranspose(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense_sparse.csr.real","c":"RealCsrDenseMatrixMultiplication","l":"standardTranspose(CsrMatrix, Matrix)","u":"standardTranspose(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixMultiplication","l":"standardVector(CNumber[], int[], int[], Shape, CNumber[], int[])","u":"standardVector(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[])"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixMultiplication","l":"standardVector(CNumber[], int[], int[], Shape, CNumber[], Shape)","u":"standardVector(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixMultiplication","l":"standardVector(CNumber[], int[], int[], Shape, double[], int[], Shape)","u":"standardVector(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,double[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"standardVector(CNumber[], int[], int[], Shape, double[], Shape)","u":"standardVector(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixMultiplication","l":"standardVector(CNumber[], Shape, CNumber[], int[])","u":"standardVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultiplication","l":"standardVector(CNumber[], Shape, CNumber[], Shape)","u":"standardVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"standardVector(CNumber[], Shape, double[], int[])","u":"standardVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],int[])"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"standardVector(CNumber[], Shape, double[], Shape)","u":"standardVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrMatrixMultiplication","l":"standardVector(CsrCMatrix, CooCVector)","u":"standardVector(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.csr.real_complex","c":"RealComplexCsrMatrixMultiplication","l":"standardVector(CsrCMatrix, CooVector)","u":"standardVector(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.dense_sparse.csr.complex","c":"ComplexCsrDenseMatrixMultiplication","l":"standardVector(CsrCMatrix, CVector)","u":"standardVector(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseMatrixMultiplication","l":"standardVector(CsrCMatrix, Vector)","u":"standardVector(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.sparse.csr.real_complex","c":"RealComplexCsrMatrixMultiplication","l":"standardVector(CsrMatrix, CooCVector)","u":"standardVector(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.dense_sparse.csr.real","c":"RealCsrDenseMatrixMultiplication","l":"standardVector(CsrMatrix, CooVector)","u":"standardVector(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseMatrixMultiplication","l":"standardVector(CsrMatrix, CVector)","u":"standardVector(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.dense_sparse.csr.real","c":"RealCsrDenseMatrixMultiplication","l":"standardVector(CsrMatrix, Vector)","u":"standardVector(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixMultiplication","l":"standardVector(double[], int[], int[], Shape, CNumber[], int[], Shape)","u":"standardVector(double[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"standardVector(double[], int[], int[], Shape, CNumber[], Shape)","u":"standardVector(double[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixMultiplication","l":"standardVector(double[], int[], int[], Shape, double[], int[])","u":"standardVector(double[],int[],int[],org.flag4j.core.Shape,double[],int[])"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixMultiplication","l":"standardVector(double[], int[], int[], Shape, double[], Shape)","u":"standardVector(double[],int[],int[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"standardVector(double[], Shape, CNumber[], int[])","u":"standardVector(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[])"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"standardVector(double[], Shape, CNumber[], Shape)","u":"standardVector(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixMultiplication","l":"standardVector(double[], Shape, double[], int[])","u":"standardVector(double[],org.flag4j.core.Shape,double[],int[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultiplication","l":"standardVector(double[], Shape, double[], Shape)","u":"standardVector(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"storeReflectors"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"stridedFillZeros(CNumber[], int, int)","u":"stridedFillZeros(org.flag4j.complex_numbers.CNumber[],int,int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"stridedFillZeros(CNumber[], int, int, int)","u":"stridedFillZeros(org.flag4j.complex_numbers.CNumber[],int,int,int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"stridedFillZeros(double[], int, int)","u":"stridedFillZeros(double[],int,int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"stridedFillZeros(double[], int, int, int)","u":"stridedFillZeros(double[],int,int,int)"},{"p":"org.flag4j.core","c":"Shape","l":"strides"},{"p":"org.flag4j.util","c":"StringUtils","l":"StringUtils()","u":"%3Cinit%3E()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"sub(CMatrix)","u":"sub(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"sub(CMatrix)","u":"sub(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"sub(CMatrix)","u":"sub(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"sub(CMatrix)","u":"sub(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"sub(CMatrix)","u":"sub(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"sub(CMatrix)","u":"sub(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixOperations","l":"sub(CMatrix, CooCMatrix)","u":"sub(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"sub(CMatrix, CooMatrix)","u":"sub(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"sub(CNumber)","u":"sub(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"sub(CNumber)","u":"sub(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"sub(CNumber)","u":"sub(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"sub(CNumber)","u":"sub(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"sub(CNumber)","u":"sub(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"sub(CNumber)","u":"sub(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"sub(CNumber)","u":"sub(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"sub(CNumber)","u":"sub(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"sub(CNumber)","u":"sub(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"sub(CNumber)","u":"sub(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"sub(CNumber)","u":"sub(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"sub(CNumber)","u":"sub(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"sub(CNumber[], CNumber)","u":"sub(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseOperations","l":"sub(CNumber[], double)","u":"sub(org.flag4j.complex_numbers.CNumber[],double)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"sub(CNumber[], Shape, CNumber[], Shape)","u":"sub(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseOperations","l":"sub(CNumber[], Shape, double[], Shape)","u":"sub(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"sub(CooCMatrix)","u":"sub(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"sub(CooCMatrix)","u":"sub(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"sub(CooCMatrix)","u":"sub(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"sub(CooCMatrix)","u":"sub(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"sub(CooCMatrix)","u":"sub(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"sub(CooCMatrix)","u":"sub(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"sub(CooCMatrix)","u":"sub(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixOperations","l":"sub(CooCMatrix, CMatrix)","u":"sub(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixOperations","l":"sub(CooCMatrix, CNumber)","u":"sub(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixOperations","l":"sub(CooCMatrix, CooCMatrix)","u":"sub(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixOperations","l":"sub(CooCMatrix, CooMatrix)","u":"sub(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixOperations","l":"sub(CooCMatrix, double)","u":"sub(org.flag4j.arrays.sparse.CooCMatrix,double)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"sub(CooCMatrix, Matrix)","u":"sub(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"sub(CooCTensor)","u":"sub(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"sub(CooCTensor)","u":"sub(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"sub(CooCTensor)","u":"sub(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"sub(CooCTensor)","u":"sub(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"sub(CooCTensor)","u":"sub(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexCooTensorOperations","l":"sub(CooCTensor, CooCTensor)","u":"sub(org.flag4j.arrays.sparse.CooCTensor,org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexCooTensorOperations","l":"sub(CooCTensor, CooTensor)","u":"sub(org.flag4j.arrays.sparse.CooCTensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseOperations","l":"sub(CooCTensor, CTensor)","u":"sub(org.flag4j.arrays.sparse.CooCTensor,org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseOperations","l":"sub(CooCTensor, Tensor)","u":"sub(org.flag4j.arrays.sparse.CooCTensor,org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"sub(CooCVector)","u":"sub(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"sub(CooCVector)","u":"sub(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"sub(CooCVector)","u":"sub(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"sub(CooCVector)","u":"sub(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"sub(CooCVector)","u":"sub(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseVectorOperations","l":"sub(CooCVector, CNumber)","u":"sub(org.flag4j.arrays.sparse.CooCVector,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseVectorOperations","l":"sub(CooCVector, CooCVector)","u":"sub(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseVectorOperations","l":"sub(CooCVector, CooVector)","u":"sub(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseVectorOperations","l":"sub(CooCVector, CVector)","u":"sub(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseVectorOperations","l":"sub(CooCVector, double)","u":"sub(org.flag4j.arrays.sparse.CooCVector,double)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"sub(CooCVector, Vector)","u":"sub(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"sub(CooMatrix)","u":"sub(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"sub(CooMatrix)","u":"sub(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"sub(CooMatrix)","u":"sub(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"sub(CooMatrix)","u":"sub(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"sub(CooMatrix)","u":"sub(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"sub(CooMatrix)","u":"sub(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"sub(CooMatrix)","u":"sub(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"sub(CooMatrix, CMatrix)","u":"sub(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixOperations","l":"sub(CooMatrix, CNumber)","u":"sub(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixOperations","l":"sub(CooMatrix, CooCMatrix)","u":"sub(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixOperations","l":"sub(CooMatrix, CooMatrix)","u":"sub(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixOperations","l":"sub(CooMatrix, double)","u":"sub(org.flag4j.arrays.sparse.CooMatrix,double)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixOperations","l":"sub(CooMatrix, Matrix)","u":"sub(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"sub(CooTensor)","u":"sub(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"sub(CooTensor)","u":"sub(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"sub(CooTensor)","u":"sub(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"sub(CooTensor)","u":"sub(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"sub(CooTensor)","u":"sub(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexCooTensorOperations","l":"sub(CooTensor, CooCTensor)","u":"sub(org.flag4j.arrays.sparse.CooTensor,org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealCooTensorOperations","l":"sub(CooTensor, CooTensor)","u":"sub(org.flag4j.arrays.sparse.CooTensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseOperations","l":"sub(CooTensor, CTensor)","u":"sub(org.flag4j.arrays.sparse.CooTensor,org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseTensorOperations","l":"sub(CooTensor, Tensor)","u":"sub(org.flag4j.arrays.sparse.CooTensor,org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"sub(CooVector)","u":"sub(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"sub(CooVector)","u":"sub(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"sub(CooVector)","u":"sub(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"sub(CooVector)","u":"sub(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"sub(CooVector)","u":"sub(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseVectorOperations","l":"sub(CooVector, CNumber)","u":"sub(org.flag4j.arrays.sparse.CooVector,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseVectorOperations","l":"sub(CooVector, CooCVector)","u":"sub(org.flag4j.arrays.sparse.CooVector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseVectorOperations","l":"sub(CooVector, CooVector)","u":"sub(org.flag4j.arrays.sparse.CooVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"sub(CooVector, CVector)","u":"sub(org.flag4j.arrays.sparse.CooVector,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseVectorOperations","l":"sub(CooVector, double)","u":"sub(org.flag4j.arrays.sparse.CooVector,double)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseVectorOperations","l":"sub(CooVector, Vector)","u":"sub(org.flag4j.arrays.sparse.CooVector,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"sub(CsrCMatrix)","u":"sub(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"sub(CsrCMatrix)","u":"sub(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"sub(CsrCMatrix)","u":"sub(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"sub(CsrCMatrix)","u":"sub(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"sub(CsrCMatrix)","u":"sub(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"sub(CsrCMatrix)","u":"sub(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"sub(CsrCMatrix)","u":"sub(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"sub(CsrMatrix)","u":"sub(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"sub(CsrMatrix)","u":"sub(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"sub(CsrMatrix)","u":"sub(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"sub(CsrMatrix)","u":"sub(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"sub(CsrMatrix)","u":"sub(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"sub(CsrMatrix)","u":"sub(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"sub(CsrMatrix)","u":"sub(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"sub(CTensor)","u":"sub(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"sub(CTensor)","u":"sub(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"sub(CTensor)","u":"sub(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"sub(CTensor)","u":"sub(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseOperations","l":"sub(CTensor, CooCTensor)","u":"sub(org.flag4j.arrays.dense.CTensor,org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseOperations","l":"sub(CTensor, CooTensor)","u":"sub(org.flag4j.arrays.dense.CTensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"sub(CVector)","u":"sub(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"sub(CVector)","u":"sub(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"sub(CVector)","u":"sub(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"sub(CVector)","u":"sub(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseVectorOperations","l":"sub(CVector, CooCVector)","u":"sub(org.flag4j.arrays.dense.CVector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"sub(CVector, CooVector)","u":"sub(org.flag4j.arrays.dense.CVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"sub(double)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"sub(double)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"sub(double)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"sub(double)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"sub(double)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"sub(double)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"sub(double)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"sub(double)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"sub(double)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"sub(double)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"sub(double)"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"sub(double)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"sub(double[], CNumber)","u":"sub(double[],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseOperations","l":"sub(double[], CNumber)","u":"sub(double[],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseOperations","l":"sub(double[], double)","u":"sub(double[],double)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseOperations","l":"sub(double[], Shape, CNumber[], Shape)","u":"sub(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseOperations","l":"sub(double[], Shape, double[], Shape)","u":"sub(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"sub(Matrix)","u":"sub(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"sub(Matrix)","u":"sub(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"sub(Matrix)","u":"sub(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"sub(Matrix)","u":"sub(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"sub(Matrix)","u":"sub(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"sub(Matrix)","u":"sub(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"sub(Matrix, CooCMatrix)","u":"sub(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixOperations","l":"sub(Matrix, CooMatrix)","u":"sub(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"sub(T)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"sub(T)"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"sub(T)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"sub(Tensor)","u":"sub(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"sub(Tensor)","u":"sub(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"sub(Tensor)","u":"sub(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"sub(Tensor)","u":"sub(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseOperations","l":"sub(Tensor, CooCTensor)","u":"sub(org.flag4j.arrays.dense.Tensor,org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseTensorOperations","l":"sub(Tensor, CooTensor)","u":"sub(org.flag4j.arrays.dense.Tensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"sub(Vector)","u":"sub(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"sub(Vector)","u":"sub(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"sub(Vector)","u":"sub(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"sub(Vector)","u":"sub(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"sub(Vector, CooCVector)","u":"sub(org.flag4j.arrays.dense.Vector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseVectorOperations","l":"sub(Vector, CooVector)","u":"sub(org.flag4j.arrays.dense.Vector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"subDiagonal"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixOperations","l":"subEq(CMatrix, CooCMatrix)","u":"subEq(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"subEq(CMatrix, CooMatrix)","u":"subEq(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"subEq(CNumber)","u":"subEq(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"subEq(CNumber[], CNumber)","u":"subEq(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseOperations","l":"subEq(CNumber[], double)","u":"subEq(org.flag4j.complex_numbers.CNumber[],double)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"subEq(CNumber[], Shape, CNumber[], Shape)","u":"subEq(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseOperations","l":"subEq(CNumber[], Shape, double[], Shape)","u":"subEq(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"subEq(CooCMatrix)","u":"subEq(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"subEq(CooCTensor)","u":"subEq(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"subEq(CooCTensor)","u":"subEq(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.core","c":"ComplexTensorExclusiveMixin","l":"subEq(CooCTensor)","u":"subEq(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"subEq(CooCVector)","u":"subEq(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"subEq(CooMatrix)","u":"subEq(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"subEq(CooMatrix)","u":"subEq(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"subEq(CooMatrix)","u":"subEq(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"subEq(CooTensor)","u":"subEq(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"subEq(CooTensor)","u":"subEq(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"subEq(CooVector)","u":"subEq(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"subEq(CooVector)","u":"subEq(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core.dense_base","c":"DenseVectorMixin","l":"subEq(CooVector)","u":"subEq(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseOperations","l":"subEq(CTensor, CooCTensor)","u":"subEq(org.flag4j.arrays.dense.CTensor,org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseOperations","l":"subEq(CTensor, CooTensor)","u":"subEq(org.flag4j.arrays.dense.CTensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseVectorOperations","l":"subEq(CVector, CooCVector)","u":"subEq(org.flag4j.arrays.dense.CVector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"subEq(CVector, CooVector)","u":"subEq(org.flag4j.arrays.dense.CVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"subEq(Double)","u":"subEq(java.lang.Double)"},{"p":"org.flag4j.core.dense_base","c":"DenseMixin","l":"subEq(Double)","u":"subEq(java.lang.Double)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"subEq(Double)","u":"subEq(java.lang.Double)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseOperations","l":"subEq(double[], double)","u":"subEq(double[],double)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseOperations","l":"subEq(double[], Shape, double[], Shape)","u":"subEq(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"subEq(Matrix)","u":"subEq(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"subEq(Matrix)","u":"subEq(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixOperations","l":"subEq(Matrix, CooMatrix)","u":"subEq(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"subEq(T)"},{"p":"org.flag4j.core.dense_base","c":"DenseTensorBase","l":"subEq(T)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"subEq(T)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"subEq(Tensor)","u":"subEq(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"subEq(Tensor)","u":"subEq(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.core","c":"ComplexTensorExclusiveMixin","l":"subEq(Tensor)","u":"subEq(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.core.dense_base","c":"DenseTensorMixin","l":"subEq(Tensor)","u":"subEq(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseTensorOperations","l":"subEq(Tensor, CooTensor)","u":"subEq(org.flag4j.arrays.dense.Tensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"subEq(Vector)","u":"subEq(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core.dense_base","c":"DenseVectorMixin","l":"subEq(Vector)","u":"subEq(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseVectorOperations","l":"subEq(Vector, CooVector)","u":"subEq(org.flag4j.arrays.dense.Vector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core.dense_base","c":"DenseMixin","l":"subEq(X)"},{"p":"org.flag4j.linalg","c":"SubSpace","l":"SubSpace()","u":"%3Cinit%3E()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"sum()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"sum()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"sum()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"sum()"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"sum()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"sum(CNumber...)","u":"sum(org.flag4j.complex_numbers.CNumber...)"},{"p":"org.flag4j.operations.common.complex","c":"AggregateComplex","l":"sum(CNumber[])","u":"sum(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.common.real","c":"AggregateReal","l":"sum(double[])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"sumCols()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"sumCols()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"sumCols()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"sumCols()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"sumCols()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"sumCols()"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"sumCols()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"sumRows()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"sumRows()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"sumRows()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"sumRows()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"sumRows()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"sumRows()"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"sumRows()"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"SVD(boolean, boolean)","u":"%3Cinit%3E(boolean,boolean)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"swap(double[], int, int)","u":"swap(double[],int,int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"swap(int[], int, int)","u":"swap(int[],int,int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"swap(int[], int[])","u":"swap(int[],int[])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"swap(Object[], int, int)","u":"swap(java.lang.Object[],int,int)"},{"p":"org.flag4j.core","c":"Shape","l":"swapAxes(int, int)","u":"swapAxes(int,int)"},{"p":"org.flag4j.core","c":"Shape","l":"swapAxes(int...)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixManipulations","l":"swapCols(CooCMatrix, int, int)","u":"swapCols(org.flag4j.arrays.sparse.CooCMatrix,int,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixManipulations","l":"swapCols(CooMatrix, int, int)","u":"swapCols(org.flag4j.arrays.sparse.CooMatrix,int,int)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrManipulations","l":"swapCols(CsrCMatrix, int, int)","u":"swapCols(org.flag4j.arrays.sparse.CsrCMatrix,int,int)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrManipulations","l":"swapCols(CsrMatrix, int, int)","u":"swapCols(org.flag4j.arrays.sparse.CsrMatrix,int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"swapCols(int, int)","u":"swapCols(int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"swapCols(int, int)","u":"swapCols(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"swapCols(int, int)","u":"swapCols(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"swapCols(int, int)","u":"swapCols(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"swapCols(int, int)","u":"swapCols(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"swapCols(int, int)","u":"swapCols(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"swapCols(int, int)","u":"swapCols(int,int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"swapCols(int, int)","u":"swapCols(int,int)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"swapCols(int, int)","u":"swapCols(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"swapPointers"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixManipulations","l":"swapRows(CooCMatrix, int, int)","u":"swapRows(org.flag4j.arrays.sparse.CooCMatrix,int,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixManipulations","l":"swapRows(CooMatrix, int, int)","u":"swapRows(org.flag4j.arrays.sparse.CooMatrix,int,int)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrManipulations","l":"swapRows(CsrCMatrix, int, int)","u":"swapRows(org.flag4j.arrays.sparse.CsrCMatrix,int,int)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrManipulations","l":"swapRows(CsrMatrix, int, int)","u":"swapRows(org.flag4j.arrays.sparse.CsrMatrix,int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"swapRows(int, int)","u":"swapRows(int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"swapRows(int, int)","u":"swapRows(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"swapRows(int, int)","u":"swapRows(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"swapRows(int, int)","u":"swapRows(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"swapRows(int, int)","u":"swapRows(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"swapRows(int, int)","u":"swapRows(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"swapRows(int, int)","u":"swapRows(int,int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"swapRows(int, int)","u":"swapRows(int,int)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"swapRows(int, int)","u":"swapRows(int,int)"},{"p":"org.flag4j.linalg.decompositions.hess","c":"SymmHess","l":"SymmHess()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.hess","c":"SymmHess","l":"SymmHess(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.linalg.decompositions.hess","c":"SymmHess","l":"SymmHess(boolean, boolean)","u":"%3Cinit%3E(boolean,boolean)"},{"p":"org.flag4j.linalg.transformations","c":"Householder","l":"symmLeftRightMultReflector(Matrix, double[], double, int, double[])","u":"symmLeftRightMultReflector(org.flag4j.arrays.dense.Matrix,double[],double,int,double[])"},{"p":"org.flag4j.arrays.sparse","c":"SymmTriDiagonal","l":"SymmTriDiagonal(double[], double[])","u":"%3Cinit%3E(double[],double[])"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"T"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"T()"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"T()"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"T()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"T()"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"T()"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"T()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"T()"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"T()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"T()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"T()"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"T()"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"T()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"T()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"T()"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"T()"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"T()"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"T(int, int)","u":"T(int,int)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"T(int, int)","u":"T(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"T(int, int)","u":"T(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"T(int, int)","u":"T(int,int)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"T(int, int)","u":"T(int,int)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"T(int...)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"T(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"T(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"T(int...)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"T(int...)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"tan(CNumber)","u":"tan(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"tan(double)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"tanh(CNumber)","u":"tanh(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"tanh(double)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"temp"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"Tensor(Matrix)","u":"%3Cinit%3E(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"Tensor(Shape)","u":"%3Cinit%3E(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"Tensor(Shape, double)","u":"%3Cinit%3E(org.flag4j.core.Shape,double)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"Tensor(Shape, double[])","u":"%3Cinit%3E(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"Tensor(Shape, Double[])","u":"%3Cinit%3E(org.flag4j.core.Shape,java.lang.Double[])"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"Tensor(Shape, int[])","u":"%3Cinit%3E(org.flag4j.core.Shape,int[])"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"Tensor(Shape, Integer[])","u":"%3Cinit%3E(org.flag4j.core.Shape,java.lang.Integer[])"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"Tensor(Tensor)","u":"%3Cinit%3E(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"Tensor(Vector)","u":"%3Cinit%3E(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"TensorBase","l":"TensorBase(Shape, D)","u":"%3Cinit%3E(org.flag4j.core.Shape,D)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexCooTensorDot","l":"tensorDot(CooCTensor, CooCTensor, int[], int[])","u":"tensorDot(org.flag4j.arrays.sparse.CooCTensor,org.flag4j.arrays.sparse.CooCTensor,int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"tensorDot(CooCTensor, int[], int[])","u":"tensorDot(org.flag4j.arrays.sparse.CooCTensor,int[],int[])"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealCooTensorDot","l":"tensorDot(CooTensor, CooTensor, int[], int[])","u":"tensorDot(org.flag4j.arrays.sparse.CooTensor,org.flag4j.arrays.sparse.CooTensor,int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"tensorDot(CooTensor, int[], int[])","u":"tensorDot(org.flag4j.arrays.sparse.CooTensor,int[],int[])"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"tensorDot(CTensor)","u":"tensorDot(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTensorDot","l":"tensorDot(CTensor, CTensor, int[], int[])","u":"tensorDot(org.flag4j.arrays.dense.CTensor,org.flag4j.arrays.dense.CTensor,int[],int[])"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"tensorDot(CTensor, int[], int[])","u":"tensorDot(org.flag4j.arrays.dense.CTensor,int[],int[])"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"tensorDot(T)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"tensorDot(T, int)","u":"tensorDot(T,int)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"tensorDot(T, int, int)","u":"tensorDot(T,int,int)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"tensorDot(T, int[], int[])","u":"tensorDot(T,int[],int[])"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"tensorDot(Tensor)","u":"tensorDot(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"tensorDot(Tensor, int[], int[])","u":"tensorDot(org.flag4j.arrays.dense.Tensor,int[],int[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseTensorDot","l":"tensorDot(Tensor, Tensor)","u":"tensorDot(org.flag4j.arrays.dense.Tensor,org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseTensorDot","l":"tensorDot(Tensor, Tensor, int[], int[])","u":"tensorDot(org.flag4j.arrays.dense.Tensor,org.flag4j.arrays.dense.Tensor,int[],int[])"},{"p":"org.flag4j.operations.common","c":"TensorEquals","l":"TensorEquals()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseEquals","l":"tensorEquals(CNumber[], Shape, CNumber[], Shape)","u":"tensorEquals(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseEquals","l":"tensorEquals(CooCTensor, CooCTensor)","u":"tensorEquals(org.flag4j.arrays.sparse.CooCTensor,org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseEquals","l":"tensorEquals(CooTensor, CooCTensor)","u":"tensorEquals(org.flag4j.arrays.sparse.CooTensor,org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseEquals","l":"tensorEquals(CooTensor, CooTensor)","u":"tensorEquals(org.flag4j.arrays.sparse.CooTensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseEquals","l":"tensorEquals(CTensor, CooCTensor)","u":"tensorEquals(org.flag4j.arrays.dense.CTensor,org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseEquals","l":"tensorEquals(CTensor, CooTensor)","u":"tensorEquals(org.flag4j.arrays.dense.CTensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseEquals","l":"tensorEquals(double[], Shape, CNumber[], Shape)","u":"tensorEquals(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseEquals","l":"tensorEquals(double[], Shape, double[], Shape)","u":"tensorEquals(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseEquals","l":"tensorEquals(Tensor, CooCTensor)","u":"tensorEquals(org.flag4j.arrays.dense.Tensor,org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseEquals","l":"tensorEquals(Tensor, CooTensor)","u":"tensorEquals(org.flag4j.arrays.dense.Tensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseEquals","l":"tensorEquals(Tensor, CTensor)","u":"tensorEquals(org.flag4j.arrays.dense.Tensor,org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseEquals","l":"tensorEquals(Tensor, Tensor)","u":"tensorEquals(org.flag4j.arrays.dense.Tensor,org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.core","c":"TensorBase","l":"tensorEquals(TensorBase)","u":"tensorEquals(org.flag4j.core.TensorBase)"},{"p":"org.flag4j.core","c":"TensorComparisonsMixin","l":"tensorEquals(TensorBase)","u":"tensorEquals(org.flag4j.core.TensorBase)"},{"p":"org.flag4j.io","c":"TensorInputStream","l":"TensorInputStream(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"tensorInv()"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"tensorInv(int)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"tensorInv(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"tensorInv(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"tensorInv(int)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"tensorInv(int)"},{"p":"org.flag4j.linalg","c":"TensorInvert","l":"TensorInvert()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"tensorNormL2(CNumber[])","u":"tensorNormL2(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"tensorNormL2(double[])"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"tensorNormLp(CNumber[], double)","u":"tensorNormLp(org.flag4j.complex_numbers.CNumber[],double)"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"tensorNormLp(double[], double)","u":"tensorNormLp(double[],double)"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"TensorNorms()","u":"%3Cinit%3E()"},{"p":"org.flag4j.io","c":"TensorOutputStream","l":"TensorOutputStream(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"org.flag4j.io","c":"TensorReader","l":"TensorReader()","u":"%3Cinit%3E()"},{"p":"org.flag4j.util.exceptions","c":"TensorShapeException","l":"TensorShapeException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"org.flag4j.util.exceptions","c":"TensorShapeException","l":"TensorShapeException(String, Shape)","u":"%3Cinit%3E(java.lang.String,org.flag4j.core.Shape)"},{"p":"org.flag4j.util.exceptions","c":"TensorShapeException","l":"TensorShapeException(String, Shape, Shape)","u":"%3Cinit%3E(java.lang.String,org.flag4j.core.Shape,org.flag4j.core.Shape)"},{"p":"org.flag4j.io","c":"TensorWriter","l":"TensorWriter()","u":"%3Cinit%3E()"},{"p":"org.flag4j.concurrency","c":"ThreadManager","l":"threadLogger"},{"p":"org.flag4j.concurrency","c":"ThreadManager","l":"ThreadManager()","u":"%3Cinit%3E()"},{"p":"org.flag4j.concurrency","c":"ThreadManager","l":"threadPool"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"toArrayList(CNumber[])","u":"toArrayList(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"toArrayList(double[])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"toArrayList(int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"toComplex()"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"toComplex()"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"toComplex()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"toComplex()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"toComplex()"},{"p":"org.flag4j.core","c":"RealTensorMixin","l":"toComplex()"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"toComplexArrayList(double[])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"toCoo()"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"toCoo()"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"toCoo()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"toCoo()"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"toCoo()"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"toCoo()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"toCoo()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"toCoo()"},{"p":"org.flag4j.core.dense_base","c":"DenseTensorBase","l":"toCoo()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"toCsr()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"toCsr()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"toCsr()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"toCsr()"},{"p":"org.flag4j.io","c":"TensorWriter","l":"toCsv(String, MatrixMixin)","u":"toCsv(java.lang.String,org.flag4j.core.MatrixMixin)"},{"p":"org.flag4j.io","c":"TensorWriter","l":"toCsv(String, MatrixMixin, String)","u":"toCsv(java.lang.String,org.flag4j.core.MatrixMixin,java.lang.String)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"toDense()"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"toDense()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"toDense()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"toDense()"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"toDense()"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"toDense()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"toDense()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"toDense()"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"toDense()"},{"p":"org.flag4j.arrays.sparse","c":"SymmTriDiagonal","l":"toDense()"},{"p":"org.flag4j.core.sparse_base","c":"SparseTensorBase","l":"toDense()"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"toMatrix()"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"toMatrix()"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"toMatrix()"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"toMatrix()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"toMatrix()"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"toMatrix()"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"toMatrix()"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"toMatrix(boolean)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"toMatrix(boolean)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"toMatrix(boolean)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"toMatrix(boolean)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"toMatrix(boolean)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"toMatrix(Shape)","u":"toMatrix(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"toMatrix(Shape)","u":"toMatrix(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"toMatrix(Shape)","u":"toMatrix(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"toMatrix(Shape)","u":"toMatrix(org.flag4j.core.Shape)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"toPolar()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"toReal()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"toReal()"},{"p":"org.flag4j.core","c":"ComplexTensorMixin","l":"toReal()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"toReal()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"toReal()"},{"p":"org.flag4j.operations.common.complex","c":"ComplexOperations","l":"toReal(CNumber[])","u":"toReal(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"toRealSafe()"},{"p":"org.flag4j.core","c":"ComplexTensorMixin","l":"toRealSafe()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"toRealSafe()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"toRealSafe()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"toString()"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"toString()"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"toString()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"toString()"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"toString()"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"toString()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"toString()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"toString()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"toString()"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"toString()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"toString()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"toString()"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"toString()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"toString()"},{"p":"org.flag4j.complex_numbers","c":"CNumberToken","l":"toString()"},{"p":"org.flag4j.core","c":"Shape","l":"toString()"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"TOTAL_ENTRIES_ERR"},{"p":"org.flag4j.core","c":"Shape","l":"totalEntries"},{"p":"org.flag4j.core","c":"Shape","l":"totalEntries()"},{"p":"org.flag4j.core","c":"TensorBase","l":"totalEntries()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"toTensor()"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"toTensor()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"toTensor()"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"toTensor()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"toTensor()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"toTensor()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"toTensor()"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"toTensor()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"toTensor()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"toTensor()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"toVector()"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"toVector()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"toVector()"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"toVector()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"toVector()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"toVector()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"toVector()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"toVector()"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"toVector()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"tr()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"tr()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"tr()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"tr()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"tr()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"tr()"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"tr()"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"tr()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"trace()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"trace()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"trace()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"trace()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"trace()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"trace()"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"trace()"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"trace()"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"transformData"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"transformMatrix"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"transpose()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"transpose()"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"transpose()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"transpose()"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"transpose()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"transpose()"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"transpose()"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrOperations","l":"transpose(CsrCMatrix)","u":"transpose(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrOperations","l":"transpose(CsrMatrix)","u":"transpose(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"transpose(int, int)","u":"transpose(int,int)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"transpose(int...)"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"TransposeDispatcher()","u":"%3Cinit%3E()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"TWO"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"U"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"U"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"unbox(Double[])","u":"unbox(java.lang.Double[])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"unbox(Integer[])","u":"unbox(java.lang.Integer[])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"unboxFlatten(Double[][])","u":"unboxFlatten(java.lang.Double[][])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"uniqueSorted(int[])"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"UnitaryDecomposition(int, boolean)","u":"%3Cinit%3E(int,boolean)"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"unwrap(double[], int[])","u":"unwrap(double[],int[])"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"unwrap(double[], int[], int[])","u":"unwrap(double[],int[],int[])"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"unwrap(double[], int[][])","u":"unwrap(double[],int[][])"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"unwrap(T[], int[])","u":"unwrap(T[],int[])"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"unwrap(T[], int[], int[])","u":"unwrap(T[],int[],int[])"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"unwrap(T[], int[][])","u":"unwrap(T[],int[][])"},{"p":"org.flag4j.linalg.decompositions.hess","c":"SymmHess","l":"updateData(int)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"ComplexUnitaryDecomposition","l":"updateData(int)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"RealUnitaryDecomposition","l":"updateData(int)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"updateData(int)"},{"p":"org.flag4j.io","c":"PrintOptions","l":"useCentering()"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseElemDiv","l":"useConcurrent(int)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"UTILITY_CLASS_ERR"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"V"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU.Pivoting","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"org.flag4j.operations","c":"TransposeDispatcher.Algorithm","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"org.flag4j.util","c":"Axis2D","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"org.flag4j.util","c":"StringUtils","l":"ValueOfRound(CNumber, int)","u":"ValueOfRound(org.flag4j.complex_numbers.CNumber,int)"},{"p":"org.flag4j.util","c":"StringUtils","l":"ValueOfRound(double, int)","u":"ValueOfRound(double,int)"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"values"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU.Pivoting","l":"values()"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"values()"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"values()"},{"p":"org.flag4j.operations","c":"TransposeDispatcher.Algorithm","l":"values()"},{"p":"org.flag4j.util","c":"Axis2D","l":"values()"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"VEC_COL_ORIENTATION_ERR"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"VEC_ROW_ORIENTATION_ERR"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"vecColOrientErrMsg(Shape)","u":"vecColOrientErrMsg(org.flag4j.core.Shape)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"vecRowOrientErrMsg(Shape)","u":"vecRowOrientErrMsg(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"Vector(double...)","u":"%3Cinit%3E(double...)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"Vector(int)","u":"%3Cinit%3E(int)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"Vector(int, double)","u":"%3Cinit%3E(int,double)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"Vector(int...)","u":"%3Cinit%3E(int...)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"Vector(Shape)","u":"%3Cinit%3E(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"Vector(Shape, double)","u":"%3Cinit%3E(org.flag4j.core.Shape,double)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"Vector(Vector)","u":"%3Cinit%3E(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseEquals","l":"vectorEquals(CNumber[], CNumber[], int[], int)","u":"vectorEquals(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber[],int[],int)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseEquals","l":"vectorEquals(CNumber[], double[], int[], int)","u":"vectorEquals(org.flag4j.complex_numbers.CNumber[],double[],int[],int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseEquals","l":"vectorEquals(CooCVector, CooCVector)","u":"vectorEquals(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseEquals","l":"vectorEquals(CooVector, CooCVector)","u":"vectorEquals(org.flag4j.arrays.sparse.CooVector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseEquals","l":"vectorEquals(CooVector, CooVector)","u":"vectorEquals(org.flag4j.arrays.sparse.CooVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseEquals","l":"vectorEquals(double[], CNumber[], int[], int)","u":"vectorEquals(double[],org.flag4j.complex_numbers.CNumber[],int[],int)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseEquals","l":"vectorEquals(double[], double[])","u":"vectorEquals(double[],double[])"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseEquals","l":"vectorEquals(double[], double[], int[], int)","u":"vectorEquals(double[],double[],int[],int)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"VectorNorms()","u":"%3Cinit%3E()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"vectorType()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"vectorType()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"vectorType()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"vectorType()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"vectorType()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"vectorType()"},{"p":"org.flag4j.core","c":"MatrixPropertiesMixin","l":"vectorType()"},{"p":"org.flag4j.linalg.transformations","c":"View","l":"View()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"workArray"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"workArray"},{"p":"org.flag4j.linalg.solvers.exact","c":"ComplexExactTensorSolver","l":"wrap(CVector, Shape)","u":"wrap(org.flag4j.arrays.dense.CVector,org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"wrap(double[], int[])","u":"wrap(double[],int[])"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"wrap(double[], int[], int[])","u":"wrap(double[],int[],int[])"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"wrap(double[], int[][])","u":"wrap(double[],int[][])"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"wrap(T[], int[])","u":"wrap(T[],int[])"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"wrap(T[], int[], int[])","u":"wrap(T[],int[],int[])"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"wrap(T[], int[][])","u":"wrap(T[],int[][])"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactTensorSolver","l":"wrap(V, Shape)","u":"wrap(V,org.flag4j.core.Shape)"},{"p":"org.flag4j.linalg.solvers.exact","c":"RealExactTensorSolver","l":"wrap(Vector, Shape)","u":"wrap(org.flag4j.arrays.dense.Vector,org.flag4j.core.Shape)"},{"p":"org.flag4j.io","c":"TensorOutputStream","l":"write(int)"},{"p":"org.flag4j.io","c":"TensorWriter","l":"write(String, TensorBase)","u":"write(java.lang.String,org.flag4j.core.TensorBase)"},{"p":"org.flag4j.io","c":"TensorOutputStream","l":"write(TensorBase)","u":"write(org.flag4j.core.TensorBase)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"BackSolver","l":"x"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ForwardSolver","l":"x"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"BackSolver","l":"X"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ForwardSolver","l":"X"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"BackSolver","l":"xCol"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ForwardSolver","l":"xCol"},{"p":"org.flag4j.linalg.decompositions.lu","c":"ComplexLU","l":"z"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"ZERO"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"ZERO"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"zeroPivotTol"}];updateSearchResults(); \ No newline at end of file +memberSearchIndex = [{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"abs()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"abs()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"abs()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"abs()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"abs()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"abs()"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"abs()"},{"p":"org.flag4j.operations.common.complex","c":"ComplexOperations","l":"abs(CNumber[])","u":"abs(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.common.real","c":"RealOperations","l":"abs(double[])"},{"p":"org.flag4j.concurrency","c":"ThreadManager.TriConsumer","l":"accept(T, U, V)","u":"accept(T,U,V)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"acos(CNumber)","u":"acos(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"acos(double)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"add(CMatrix)","u":"add(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"add(CMatrix)","u":"add(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"add(CMatrix)","u":"add(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"add(CMatrix)","u":"add(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"add(CMatrix)","u":"add(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"add(CMatrix)","u":"add(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixOperations","l":"add(CMatrix, CooCMatrix)","u":"add(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"add(CMatrix, CooMatrix)","u":"add(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"add(CNumber)","u":"add(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"add(CNumber)","u":"add(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"add(CNumber)","u":"add(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"add(CNumber)","u":"add(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"add(CNumber)","u":"add(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"add(CNumber)","u":"add(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"add(CNumber)","u":"add(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"add(CNumber)","u":"add(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"add(CNumber)","u":"add(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"add(CNumber)","u":"add(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"add(CNumber)","u":"add(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"add(CNumber)","u":"add(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"add(CNumber[], CNumber)","u":"add(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseOperations","l":"add(CNumber[], double)","u":"add(org.flag4j.complex_numbers.CNumber[],double)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"add(CNumber[], Shape, CNumber[], Shape)","u":"add(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseOperations","l":"add(CNumber[], Shape, double[], Shape)","u":"add(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"add(CooCMatrix)","u":"add(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"add(CooCMatrix)","u":"add(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"add(CooCMatrix)","u":"add(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"add(CooCMatrix)","u":"add(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"add(CooCMatrix)","u":"add(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"add(CooCMatrix)","u":"add(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"add(CooCMatrix)","u":"add(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixOperations","l":"add(CooCMatrix, CNumber)","u":"add(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixOperations","l":"add(CooCMatrix, CooCMatrix)","u":"add(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixOperations","l":"add(CooCMatrix, CooMatrix)","u":"add(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixOperations","l":"add(CooCMatrix, double)","u":"add(org.flag4j.arrays.sparse.CooCMatrix,double)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"add(CooCTensor)","u":"add(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"add(CooCTensor)","u":"add(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"add(CooCTensor)","u":"add(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"add(CooCTensor)","u":"add(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"add(CooCTensor)","u":"add(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseOperations","l":"add(CooCTensor, CNumber)","u":"add(org.flag4j.arrays.sparse.CooCTensor,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexCooTensorOperations","l":"add(CooCTensor, CooCTensor)","u":"add(org.flag4j.arrays.sparse.CooCTensor,org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexCooTensorOperations","l":"add(CooCTensor, CooTensor)","u":"add(org.flag4j.arrays.sparse.CooCTensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseOperations","l":"add(CooCTensor, double)","u":"add(org.flag4j.arrays.sparse.CooCTensor,double)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"add(CooCVector)","u":"add(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"add(CooCVector)","u":"add(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"add(CooCVector)","u":"add(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"add(CooCVector)","u":"add(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"add(CooCVector)","u":"add(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseVectorOperations","l":"add(CooCVector, CNumber)","u":"add(org.flag4j.arrays.sparse.CooCVector,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseVectorOperations","l":"add(CooCVector, CooCVector)","u":"add(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseVectorOperations","l":"add(CooCVector, CooVector)","u":"add(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseVectorOperations","l":"add(CooCVector, double)","u":"add(org.flag4j.arrays.sparse.CooCVector,double)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseVectorOperations","l":"add(CooCVector, double)","u":"add(org.flag4j.arrays.sparse.CooCVector,double)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"add(CooMatrix)","u":"add(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"add(CooMatrix)","u":"add(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"add(CooMatrix)","u":"add(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"add(CooMatrix)","u":"add(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"add(CooMatrix)","u":"add(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"add(CooMatrix)","u":"add(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"add(CooMatrix)","u":"add(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixOperations","l":"add(CooMatrix, CNumber)","u":"add(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixOperations","l":"add(CooMatrix, CooMatrix)","u":"add(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixOperations","l":"add(CooMatrix, double)","u":"add(org.flag4j.arrays.sparse.CooMatrix,double)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"add(CooTensor)","u":"add(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"add(CooTensor)","u":"add(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"add(CooTensor)","u":"add(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"add(CooTensor)","u":"add(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"add(CooTensor)","u":"add(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseOperations","l":"add(CooTensor, CNumber)","u":"add(org.flag4j.arrays.sparse.CooTensor,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealCooTensorOperations","l":"add(CooTensor, CooTensor)","u":"add(org.flag4j.arrays.sparse.CooTensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseTensorOperations","l":"add(CooTensor, double)","u":"add(org.flag4j.arrays.sparse.CooTensor,double)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"add(CooVector)","u":"add(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"add(CooVector)","u":"add(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"add(CooVector)","u":"add(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"add(CooVector)","u":"add(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"add(CooVector)","u":"add(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseVectorOperations","l":"add(CooVector, CNumber)","u":"add(org.flag4j.arrays.sparse.CooVector,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseVectorOperations","l":"add(CooVector, CooVector)","u":"add(org.flag4j.arrays.sparse.CooVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseVectorOperations","l":"add(CooVector, double)","u":"add(org.flag4j.arrays.sparse.CooVector,double)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"add(CsrCMatrix)","u":"add(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"add(CsrCMatrix)","u":"add(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"add(CsrCMatrix)","u":"add(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"add(CsrCMatrix)","u":"add(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"add(CsrCMatrix)","u":"add(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"add(CsrCMatrix)","u":"add(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"add(CsrCMatrix)","u":"add(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"add(CsrMatrix)","u":"add(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"add(CsrMatrix)","u":"add(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"add(CsrMatrix)","u":"add(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"add(CsrMatrix)","u":"add(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"add(CsrMatrix)","u":"add(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"add(CsrMatrix)","u":"add(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"add(CsrMatrix)","u":"add(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"add(CTensor)","u":"add(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"add(CTensor)","u":"add(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"add(CTensor)","u":"add(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"add(CTensor)","u":"add(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseOperations","l":"add(CTensor, CooCTensor)","u":"add(org.flag4j.arrays.dense.CTensor,org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseOperations","l":"add(CTensor, CooTensor)","u":"add(org.flag4j.arrays.dense.CTensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"add(CVector)","u":"add(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"add(CVector)","u":"add(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"add(CVector)","u":"add(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"add(CVector)","u":"add(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseVectorOperations","l":"add(CVector, CooCVector)","u":"add(org.flag4j.arrays.dense.CVector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"add(CVector, CooVector)","u":"add(org.flag4j.arrays.dense.CVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"add(double)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"add(double)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"add(double)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"add(double)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"add(double)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"add(double)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"add(double)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"add(double)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"add(double)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"add(double)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"add(double)"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"add(double)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"add(double[], CNumber)","u":"add(double[],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseVectorOperations","l":"add(double[], CNumber)","u":"add(double[],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseOperations","l":"add(double[], double)","u":"add(double[],double)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseOperations","l":"add(double[], Shape, double[], Shape)","u":"add(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"add(Matrix)","u":"add(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"add(Matrix)","u":"add(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"add(Matrix)","u":"add(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"add(Matrix)","u":"add(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"add(Matrix)","u":"add(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"add(Matrix)","u":"add(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"add(Matrix, CooCMatrix)","u":"add(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixOperations","l":"add(Matrix, CooMatrix)","u":"add(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"add(T)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"add(T)"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"add(T)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"add(Tensor)","u":"add(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"add(Tensor)","u":"add(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"add(Tensor)","u":"add(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"add(Tensor)","u":"add(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseOperations","l":"add(Tensor, CooCTensor)","u":"add(org.flag4j.arrays.dense.Tensor,org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseTensorOperations","l":"add(Tensor, CooTensor)","u":"add(org.flag4j.arrays.dense.Tensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"add(Vector)","u":"add(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"add(Vector)","u":"add(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"add(Vector)","u":"add(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"add(Vector)","u":"add(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"add(Vector, CooCVector)","u":"add(org.flag4j.arrays.dense.Vector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseVectorOperations","l":"add(Vector, CooVector)","u":"add(org.flag4j.arrays.dense.Vector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixOperations","l":"addEq(CMatrix, CooCMatrix)","u":"addEq(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"addEq(CMatrix, CooMatrix)","u":"addEq(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"addEq(CNumber)","u":"addEq(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"addEq(CNumber[], CNumber)","u":"addEq(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseOperations","l":"addEq(CNumber[], double)","u":"addEq(org.flag4j.complex_numbers.CNumber[],double)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"addEq(CNumber[], Shape, CNumber[], Shape)","u":"addEq(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseOperations","l":"addEq(CNumber[], Shape, double[], Shape)","u":"addEq(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"addEq(CooCMatrix)","u":"addEq(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"addEq(CooCTensor)","u":"addEq(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"addEq(CooCTensor)","u":"addEq(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.core","c":"ComplexTensorExclusiveMixin","l":"addEq(CooCTensor)","u":"addEq(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"addEq(CooCVector)","u":"addEq(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"addEq(CooMatrix)","u":"addEq(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"addEq(CooMatrix)","u":"addEq(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"addEq(CooMatrix)","u":"addEq(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"addEq(CooTensor)","u":"addEq(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"addEq(CooTensor)","u":"addEq(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"addEq(CooVector)","u":"addEq(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"addEq(CooVector)","u":"addEq(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core.dense_base","c":"DenseVectorMixin","l":"addEq(CooVector)","u":"addEq(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseOperations","l":"addEq(CTensor, CooCTensor)","u":"addEq(org.flag4j.arrays.dense.CTensor,org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseOperations","l":"addEq(CTensor, CooTensor)","u":"addEq(org.flag4j.arrays.dense.CTensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseVectorOperations","l":"addEq(CVector, CooCVector)","u":"addEq(org.flag4j.arrays.dense.CVector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"addEq(CVector, CooVector)","u":"addEq(org.flag4j.arrays.dense.CVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"addEq(Double)","u":"addEq(java.lang.Double)"},{"p":"org.flag4j.core.dense_base","c":"DenseMixin","l":"addEq(Double)","u":"addEq(java.lang.Double)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"addEq(Double)","u":"addEq(java.lang.Double)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseOperations","l":"addEq(double[], double)","u":"addEq(double[],double)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseOperations","l":"addEq(double[], Shape, double[], Shape)","u":"addEq(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"addEq(Matrix)","u":"addEq(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"addEq(Matrix)","u":"addEq(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixOperations","l":"addEq(Matrix, CooMatrix)","u":"addEq(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"addEq(T)"},{"p":"org.flag4j.core.dense_base","c":"DenseTensorBase","l":"addEq(T)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"addEq(T)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"addEq(Tensor)","u":"addEq(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"addEq(Tensor)","u":"addEq(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.core","c":"ComplexTensorExclusiveMixin","l":"addEq(Tensor)","u":"addEq(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.core.dense_base","c":"DenseTensorMixin","l":"addEq(Tensor)","u":"addEq(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseTensorOperations","l":"addEq(Tensor, CooTensor)","u":"addEq(org.flag4j.arrays.dense.Tensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"addEq(Vector)","u":"addEq(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core.dense_base","c":"DenseVectorMixin","l":"addEq(Vector)","u":"addEq(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseVectorOperations","l":"addEq(Vector, CooVector)","u":"addEq(org.flag4j.arrays.dense.Vector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core.dense_base","c":"DenseMixin","l":"addEq(X)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"addInv()"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"addNotInCol(List, List, List, CooMatrix, int)","u":"addNotInCol(java.util.List,java.util.List,java.util.List,org.flag4j.arrays.sparse.CooMatrix,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixOperations","l":"addToEachCol(CooCMatrix, CooCVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixOperations","l":"addToEachCol(CooCMatrix, CooVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixOperations","l":"addToEachCol(CooCMatrix, CVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"addToEachCol(CooCMatrix, Vector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"addToEachCol(CooCVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"addToEachCol(CooCVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"addToEachCol(CooCVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"addToEachCol(CooCVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"addToEachCol(CooCVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"addToEachCol(CooCVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"addToEachCol(CooCVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixOperations","l":"addToEachCol(CooMatrix, CooCVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixOperations","l":"addToEachCol(CooMatrix, CooVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"addToEachCol(CooMatrix, CVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixOperations","l":"addToEachCol(CooMatrix, Vector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"addToEachCol(CooVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"addToEachCol(CooVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"addToEachCol(CooVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"addToEachCol(CooVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"addToEachCol(CooVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"addToEachCol(CooVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"addToEachCol(CooVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrOperations","l":"addToEachCol(CsrCMatrix, CooCVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrOperations","l":"addToEachCol(CsrCMatrix, CooVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrOperations","l":"addToEachCol(CsrCMatrix, CVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrOperations","l":"addToEachCol(CsrCMatrix, Vector)","u":"addToEachCol(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrOperations","l":"addToEachCol(CsrMatrix, CooCVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrOperations","l":"addToEachCol(CsrMatrix, CooVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrOperations","l":"addToEachCol(CsrMatrix, CVector)","u":"addToEachCol(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrOperations","l":"addToEachCol(CsrMatrix, Vector)","u":"addToEachCol(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"addToEachCol(CVector)","u":"addToEachCol(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"addToEachCol(CVector)","u":"addToEachCol(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"addToEachCol(CVector)","u":"addToEachCol(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"addToEachCol(CVector)","u":"addToEachCol(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"addToEachCol(CVector)","u":"addToEachCol(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"addToEachCol(CVector)","u":"addToEachCol(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"addToEachCol(CVector)","u":"addToEachCol(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"addToEachCol(Vector)","u":"addToEachCol(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"addToEachCol(Vector)","u":"addToEachCol(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"addToEachCol(Vector)","u":"addToEachCol(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"addToEachCol(Vector)","u":"addToEachCol(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"addToEachCol(Vector)","u":"addToEachCol(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"addToEachCol(Vector)","u":"addToEachCol(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"addToEachCol(Vector)","u":"addToEachCol(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixOperations","l":"addToEachRow(CooCMatrix, CooCVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixOperations","l":"addToEachRow(CooCMatrix, CooVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixOperations","l":"addToEachRow(CooCMatrix, CVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"addToEachRow(CooCMatrix, Vector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"addToEachRow(CooCVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"addToEachRow(CooCVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"addToEachRow(CooCVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"addToEachRow(CooCVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"addToEachRow(CooCVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"addToEachRow(CooCVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"addToEachRow(CooCVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixOperations","l":"addToEachRow(CooMatrix, CooCVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixOperations","l":"addToEachRow(CooMatrix, CooVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"addToEachRow(CooMatrix, CVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixOperations","l":"addToEachRow(CooMatrix, Vector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"addToEachRow(CooVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"addToEachRow(CooVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"addToEachRow(CooVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"addToEachRow(CooVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"addToEachRow(CooVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"addToEachRow(CooVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"addToEachRow(CooVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrOperations","l":"addToEachRow(CsrCMatrix, CooCVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrOperations","l":"addToEachRow(CsrCMatrix, CooVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrOperations","l":"addToEachRow(CsrCMatrix, CVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrOperations","l":"addToEachRow(CsrCMatrix, Vector)","u":"addToEachRow(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrOperations","l":"addToEachRow(CsrMatrix, CooCVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrOperations","l":"addToEachRow(CsrMatrix, CooVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrOperations","l":"addToEachRow(CsrMatrix, CVector)","u":"addToEachRow(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrOperations","l":"addToEachRow(CsrMatrix, Vector)","u":"addToEachRow(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"addToEachRow(CVector)","u":"addToEachRow(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"addToEachRow(CVector)","u":"addToEachRow(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"addToEachRow(CVector)","u":"addToEachRow(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"addToEachRow(CVector)","u":"addToEachRow(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"addToEachRow(CVector)","u":"addToEachRow(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"addToEachRow(CVector)","u":"addToEachRow(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"addToEachRow(CVector)","u":"addToEachRow(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"addToEachRow(Vector)","u":"addToEachRow(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"addToEachRow(Vector)","u":"addToEachRow(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"addToEachRow(Vector)","u":"addToEachRow(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"addToEachRow(Vector)","u":"addToEachRow(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"addToEachRow(Vector)","u":"addToEachRow(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"addToEachRow(Vector)","u":"addToEachRow(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"addToEachRow(Vector)","u":"addToEachRow(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.common.complex","c":"AggregateComplex","l":"AggregateComplex()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.complex","c":"AggregateDenseComplex","l":"AggregateDenseComplex()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real","c":"AggregateDenseReal","l":"AggregateDenseReal()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.common.real","c":"AggregateReal","l":"AggregateReal()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations","c":"TransposeDispatcher.Algorithm","l":"Algorithm()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher","l":"algorithmMap"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"AlgorithmName()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"AlgorithmNames()","u":"%3Cinit%3E()"},{"p":"org.flag4j.util","c":"Axis2D","l":"allAxes()"},{"p":"org.flag4j.operations.common.complex","c":"ComplexProperties","l":"allClose(CNumber[], CNumber[])","u":"allClose(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.common.complex","c":"ComplexProperties","l":"allClose(CNumber[], CNumber[], double, double)","u":"allClose(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber[],double,double)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"allClose(CooCMatrix, double, double)","u":"allClose(org.flag4j.arrays.sparse.CooCMatrix,double,double)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"allClose(CooCTensor, double, double)","u":"allClose(org.flag4j.arrays.sparse.CooCTensor,double,double)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"allClose(CooCVector, double, double)","u":"allClose(org.flag4j.arrays.sparse.CooCVector,double,double)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"allClose(CooMatrix, double, double)","u":"allClose(org.flag4j.arrays.sparse.CooMatrix,double,double)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"allClose(CooTensor, double, double)","u":"allClose(org.flag4j.arrays.sparse.CooTensor,double,double)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"allClose(CooVector, double, double)","u":"allClose(org.flag4j.arrays.sparse.CooVector,double,double)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrEquals","l":"allClose(CsrCMatrix, CsrCMatrix, double, double)","u":"allClose(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CsrCMatrix,double,double)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"allClose(CsrCMatrix, double, double)","u":"allClose(org.flag4j.arrays.sparse.CsrCMatrix,double,double)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrEquals","l":"allClose(CsrMatrix, CsrMatrix, double, double)","u":"allClose(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CsrMatrix,double,double)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"allClose(CsrMatrix, double, double)","u":"allClose(org.flag4j.arrays.sparse.CsrMatrix,double,double)"},{"p":"org.flag4j.operations.common.real","c":"RealProperties","l":"allClose(double[], double[])","u":"allClose(double[],double[])"},{"p":"org.flag4j.operations.common.real","c":"RealProperties","l":"allClose(double[], double[], double, double)","u":"allClose(double[],double[],double,double)"},{"p":"org.flag4j.core","c":"TensorBase","l":"allClose(T)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"allClose(T, double, double)","u":"allClose(T,double,double)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"allClose(T, double, double)","u":"allClose(T,double,double)"},{"p":"org.flag4j.core","c":"TensorBase","l":"allClose(T, double, double)","u":"allClose(T,double,double)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseEquals","l":"allCloseMatrix(CooCMatrix, CooCMatrix, double, double)","u":"allCloseMatrix(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooCMatrix,double,double)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseEquals","l":"allCloseMatrix(CooMatrix, CooMatrix, double, double)","u":"allCloseMatrix(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooMatrix,double,double)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseEquals","l":"allCloseTensor(CooCTensor, CooCTensor, double, double)","u":"allCloseTensor(org.flag4j.arrays.sparse.CooCTensor,org.flag4j.arrays.sparse.CooCTensor,double,double)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseEquals","l":"allCloseTensor(CooTensor, CooTensor, double, double)","u":"allCloseTensor(org.flag4j.arrays.sparse.CooTensor,org.flag4j.arrays.sparse.CooTensor,double,double)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseEquals","l":"allCloseVector(CooCVector, CooCVector, double, double)","u":"allCloseVector(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.sparse.CooCVector,double,double)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseEquals","l":"allCloseVector(CooVector, CooVector, double, double)","u":"allCloseVector(org.flag4j.arrays.sparse.CooVector,org.flag4j.arrays.sparse.CooVector,double,double)"},{"p":"org.flag4j.operations","c":"RealDenseTensorBinaryOperation","l":"apply(double[], Shape, double[], Shape)","u":"apply(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.concurrency","c":"TensorOperation","l":"apply(int, int)","u":"apply(int,int)"},{"p":"org.flag4j.operations.dense_sparse.csr.complex","c":"ComplexCsrDenseOperations","l":"applyBinOpp(CMatrix, CsrCMatrix, BinaryOperator)","u":"applyBinOpp(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CsrCMatrix,java.util.function.BinaryOperator)"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseOperations","l":"applyBinOpp(CMatrix, CsrMatrix, BiFunction)","u":"applyBinOpp(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CsrMatrix,java.util.function.BiFunction)"},{"p":"org.flag4j.operations.dense_sparse.csr.complex","c":"ComplexCsrDenseOperations","l":"applyBinOpp(CsrCMatrix, CMatrix, BinaryOperator, UnaryOperator)","u":"applyBinOpp(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.dense.CMatrix,java.util.function.BinaryOperator,java.util.function.UnaryOperator)"},{"p":"org.flag4j.operations.dense_sparse.csr.complex","c":"ComplexCsrDenseOperations","l":"applyBinOpp(CsrCMatrix, CNumber, BinaryOperator, UnaryOperator)","u":"applyBinOpp(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.complex_numbers.CNumber,java.util.function.BinaryOperator,java.util.function.UnaryOperator)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrOperations","l":"applyBinOpp(CsrCMatrix, CsrCMatrix, BinaryOperator, UnaryOperator)","u":"applyBinOpp(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CsrCMatrix,java.util.function.BinaryOperator,java.util.function.UnaryOperator)"},{"p":"org.flag4j.operations.sparse.csr.real_complex","c":"RealComplexCsrOperations","l":"applyBinOpp(CsrCMatrix, CsrMatrix, BiFunction, UnaryOperator)","u":"applyBinOpp(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CsrMatrix,java.util.function.BiFunction,java.util.function.UnaryOperator)"},{"p":"org.flag4j.operations.dense_sparse.csr.complex","c":"ComplexCsrDenseOperations","l":"applyBinOpp(CsrCMatrix, double, BinaryOperator, UnaryOperator)","u":"applyBinOpp(org.flag4j.arrays.sparse.CsrCMatrix,double,java.util.function.BinaryOperator,java.util.function.UnaryOperator)"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseOperations","l":"applyBinOpp(CsrCMatrix, Matrix, BiFunction, UnaryOperator)","u":"applyBinOpp(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.dense.Matrix,java.util.function.BiFunction,java.util.function.UnaryOperator)"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseOperations","l":"applyBinOpp(CsrMatrix, CMatrix, BiFunction, UnaryOperator)","u":"applyBinOpp(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.CMatrix,java.util.function.BiFunction,java.util.function.UnaryOperator)"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseOperations","l":"applyBinOpp(CsrMatrix, CNumber, BiFunction, UnaryOperator)","u":"applyBinOpp(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.complex_numbers.CNumber,java.util.function.BiFunction,java.util.function.UnaryOperator)"},{"p":"org.flag4j.operations.sparse.csr.real_complex","c":"RealComplexCsrOperations","l":"applyBinOpp(CsrMatrix, CsrCMatrix, BiFunction, UnaryOperator)","u":"applyBinOpp(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CsrCMatrix,java.util.function.BiFunction,java.util.function.UnaryOperator)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrOperations","l":"applyBinOpp(CsrMatrix, CsrMatrix, BinaryOperator, UnaryOperator)","u":"applyBinOpp(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CsrMatrix,java.util.function.BinaryOperator,java.util.function.UnaryOperator)"},{"p":"org.flag4j.operations.dense_sparse.csr.real","c":"RealCsrDenseOperations","l":"applyBinOpp(CsrMatrix, double, BinaryOperator, UnaryOperator)","u":"applyBinOpp(org.flag4j.arrays.sparse.CsrMatrix,double,java.util.function.BinaryOperator,java.util.function.UnaryOperator)"},{"p":"org.flag4j.operations.dense_sparse.csr.real","c":"RealCsrDenseOperations","l":"applyBinOpp(CsrMatrix, Matrix, BinaryOperator, UnaryOperator)","u":"applyBinOpp(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.Matrix,java.util.function.BinaryOperator,java.util.function.UnaryOperator)"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseOperations","l":"applyBinOpp(Matrix, CsrCMatrix, BiFunction)","u":"applyBinOpp(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CsrCMatrix,java.util.function.BiFunction)"},{"p":"org.flag4j.operations.dense_sparse.csr.real","c":"RealCsrDenseOperations","l":"applyBinOpp(Matrix, CsrMatrix, BinaryOperator)","u":"applyBinOpp(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CsrMatrix,java.util.function.BinaryOperator)"},{"p":"org.flag4j.operations.dense_sparse.csr.complex","c":"ComplexCsrDenseOperations","l":"applyBinOppToSparse(CMatrix, CsrCMatrix, BinaryOperator)","u":"applyBinOppToSparse(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CsrCMatrix,java.util.function.BinaryOperator)"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseOperations","l":"applyBinOppToSparse(CMatrix, CsrMatrix, BiFunction)","u":"applyBinOppToSparse(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CsrMatrix,java.util.function.BiFunction)"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseOperations","l":"applyBinOppToSparse(CsrMatrix, CMatrix, BiFunction)","u":"applyBinOppToSparse(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.CMatrix,java.util.function.BiFunction)"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseOperations","l":"applyBinOppToSparse(Matrix, CsrCMatrix, BiFunction)","u":"applyBinOppToSparse(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CsrCMatrix,java.util.function.BiFunction)"},{"p":"org.flag4j.operations.dense_sparse.csr.real","c":"RealCsrDenseOperations","l":"applyBinOppToSparse(Matrix, CsrMatrix, BinaryOperator)","u":"applyBinOppToSparse(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CsrMatrix,java.util.function.BinaryOperator)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"applyDoubleShiftReflector(int, boolean)","u":"applyDoubleShiftReflector(int,boolean)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"applyDoubleShiftReflector(int, boolean)","u":"applyDoubleShiftReflector(int,boolean)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"applyReflector(int, int)","u":"applyReflector(int,int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"applyReflector(int, int)","u":"applyReflector(int,int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"applySingleShiftReflector(int, boolean)","u":"applySingleShiftReflector(int,boolean)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"applySingleShiftReflector(int, boolean)","u":"applySingleShiftReflector(int,boolean)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"applyTransform(CNumber[], Function)","u":"applyTransform(org.flag4j.complex_numbers.CNumber[],java.util.function.Function)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"applyTransform(double[], Function)","u":"applyTransform(double[],java.util.function.Function)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"applyTransform(double[], UnaryOperator)","u":"applyTransform(double[],java.util.function.UnaryOperator)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"applyTransform(T[], UnaryOperator)","u":"applyTransform(T[],java.util.function.UnaryOperator)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"applyUpdate"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"arg(CNumber)","u":"arg(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"argAsCNumber(CNumber)","u":"argAsCNumber(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.real","c":"AggregateDenseReal","l":"argEq(double[], double)","u":"argEq(double[],double)"},{"p":"org.flag4j.operations.dense.real","c":"AggregateDenseReal","l":"argEq(int[], int)","u":"argEq(int[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"argMax()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"argMax()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"argMax()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"argMax()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"argMax()"},{"p":"org.flag4j.core","c":"TensorPropertiesMixin","l":"argMax()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"argMax(CNumber...)","u":"argMax(org.flag4j.complex_numbers.CNumber...)"},{"p":"org.flag4j.operations.dense.complex","c":"AggregateDenseComplex","l":"argMax(CNumber[])","u":"argMax(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.real","c":"AggregateDenseReal","l":"argMax(double[])"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"argMaxReal(CNumber...)","u":"argMaxReal(org.flag4j.complex_numbers.CNumber...)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"argMin()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"argMin()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"argMin()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"argMin()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"argMin()"},{"p":"org.flag4j.core","c":"TensorPropertiesMixin","l":"argMin()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"argMin(CNumber...)","u":"argMin(org.flag4j.complex_numbers.CNumber...)"},{"p":"org.flag4j.operations.dense.complex","c":"AggregateDenseComplex","l":"argMin(CNumber[])","u":"argMin(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.real","c":"AggregateDenseReal","l":"argMin(double[])"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"argMinReal(CNumber...)","u":"argMinReal(org.flag4j.complex_numbers.CNumber...)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"ARRAY_LENGTHS_MISMATCH_ERR"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"arraycopy(double[], int, CNumber[], int, int)","u":"arraycopy(double[],int,org.flag4j.complex_numbers.CNumber[],int,int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"ArrayUtils()","u":"%3Cinit%3E()"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"asDouble(int[], double[])","u":"asDouble(int[],double[])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"asDouble(Integer[], double[])","u":"asDouble(java.lang.Integer[],double[])"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"asin(CNumber)","u":"asin(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"asin(double)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertArrayLengthsEq(int...)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertAxis2D(int)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertBroadcastable(Shape, Shape)","u":"assertBroadcastable(org.flag4j.core.Shape,org.flag4j.core.Shape)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertEquals(double...)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertEquals(int...)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertEqualShape(Shape, Shape)","u":"assertEqualShape(org.flag4j.core.Shape,org.flag4j.core.Shape)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertGreaterEq(double, double, String)","u":"assertGreaterEq(double,double,java.lang.String)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertGreaterEq(double, double...)","u":"assertGreaterEq(double,double...)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertGreaterEq(int, int)","u":"assertGreaterEq(int,int)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertGreaterEq(int, int...)","u":"assertGreaterEq(int,int...)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertIndexInBounds(int, int...)","u":"assertIndexInBounds(int,int...)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertInRange(double, double, double, String)","u":"assertInRange(double,double,double,java.lang.String)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertLessEq(BigInteger, int, String)","u":"assertLessEq(java.math.BigInteger,int,java.lang.String)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertLessEq(double, double, String)","u":"assertLessEq(double,double,java.lang.String)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertLessEq(double, double...)","u":"assertLessEq(double,double...)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertLessEq(int, int...)","u":"assertLessEq(int,int...)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertMatMultShapes(Shape, Shape)","u":"assertMatMultShapes(org.flag4j.core.Shape,org.flag4j.core.Shape)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertNonNegative(int)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertNotEquals(double, double)","u":"assertNotEquals(double,double)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertPermutation(int...)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertPositive(int)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertRank(int, Shape)","u":"assertRank(int,org.flag4j.core.Shape)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertSquare(Shape)","u":"assertSquare(org.flag4j.core.Shape)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertSquareMatrix(int, int)","u":"assertSquareMatrix(int,int)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertSquareMatrix(Shape)","u":"assertSquareMatrix(org.flag4j.core.Shape)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertTotalEntriesEq(double[][], CNumber[])","u":"assertTotalEntriesEq(double[][],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertTotalEntriesEq(double[][], double[])","u":"assertTotalEntriesEq(double[][],double[])"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertTotalEntriesEq(int[][], CNumber[])","u":"assertTotalEntriesEq(int[][],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertTotalEntriesEq(int[][], double[])","u":"assertTotalEntriesEq(int[][],double[])"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertTotalEntriesEq(Object[][], CNumber[])","u":"assertTotalEntriesEq(java.lang.Object[][],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertTotalEntriesEq(Object[][], double[])","u":"assertTotalEntriesEq(java.lang.Object[][],double[])"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertValidIndex(Shape, int...)","u":"assertValidIndex(org.flag4j.core.Shape,int...)"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"assertValidIndices(int, int...)","u":"assertValidIndices(int,int...)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"atan(CNumber)","u":"atan(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"atan(double)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"atan2(CNumber)","u":"atan2(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"atan2AsCNumber(CNumber)","u":"atan2AsCNumber(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"augment(CMatrix)","u":"augment(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"augment(CMatrix)","u":"augment(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"augment(CMatrix)","u":"augment(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"augment(CMatrix)","u":"augment(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"augment(CMatrix)","u":"augment(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"augment(CMatrix)","u":"augment(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"augment(CMatrix)","u":"augment(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"augment(CooCMatrix)","u":"augment(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"augment(CooCMatrix)","u":"augment(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"augment(CooCMatrix)","u":"augment(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"augment(CooCMatrix)","u":"augment(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"augment(CooCMatrix)","u":"augment(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"augment(CooCMatrix)","u":"augment(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"augment(CooCMatrix)","u":"augment(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"augment(CooCVector)","u":"augment(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"augment(CooCVector)","u":"augment(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"augment(CooCVector)","u":"augment(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"augment(CooCVector)","u":"augment(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"augment(CooCVector)","u":"augment(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"augment(CooCVector)","u":"augment(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"augment(CooCVector)","u":"augment(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"augment(CooMatrix)","u":"augment(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"augment(CooMatrix)","u":"augment(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"augment(CooMatrix)","u":"augment(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"augment(CooMatrix)","u":"augment(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"augment(CooMatrix)","u":"augment(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"augment(CooMatrix)","u":"augment(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"augment(CooMatrix)","u":"augment(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"augment(CooVector)","u":"augment(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"augment(CooVector)","u":"augment(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"augment(CooVector)","u":"augment(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"augment(CooVector)","u":"augment(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"augment(CooVector)","u":"augment(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"augment(CooVector)","u":"augment(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"augment(CooVector)","u":"augment(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"augment(CsrCMatrix)","u":"augment(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"augment(CsrCMatrix)","u":"augment(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"augment(CsrMatrix)","u":"augment(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"augment(CsrMatrix)","u":"augment(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"augment(CVector)","u":"augment(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"augment(CVector)","u":"augment(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"augment(CVector)","u":"augment(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"augment(CVector)","u":"augment(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"augment(CVector)","u":"augment(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"augment(CVector)","u":"augment(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"augment(CVector)","u":"augment(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"augment(Matrix)","u":"augment(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"augment(Matrix)","u":"augment(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"augment(Matrix)","u":"augment(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"augment(Matrix)","u":"augment(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"augment(Matrix)","u":"augment(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"augment(Matrix)","u":"augment(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"augment(Matrix)","u":"augment(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"augment(Vector)","u":"augment(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"augment(Vector)","u":"augment(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"augment(Vector)","u":"augment(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"augment(Vector)","u":"augment(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"augment(Vector)","u":"augment(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"augment(Vector)","u":"augment(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"augment(Vector)","u":"augment(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"AXIS_ERR"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"AXIS_ERR_RANGE"},{"p":"org.flag4j.util","c":"Axis2D","l":"Axis2D()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactSolver","l":"backSolver"},{"p":"org.flag4j.linalg.solvers.lstsq","c":"LstsqSolver","l":"backSolver"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"BackSolver","l":"BackSolver(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"BLOCKED"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"BLOCKED"},{"p":"org.flag4j.operations","c":"TransposeDispatcher.Algorithm","l":"BLOCKED"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"BLOCKED_REORDERED"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"BLOCKED_REORDERED"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"BLOCKED_VECTOR"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"BLOCKED_VECTOR"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultiplication","l":"blocked(CNumber[], Shape, CNumber[], Shape)","u":"blocked(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"blocked(CNumber[], Shape, double[], Shape)","u":"blocked(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"blocked(double[], Shape, CNumber[], Shape)","u":"blocked(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultiplication","l":"blocked(double[], Shape, double[], Shape)","u":"blocked(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseTranspose","l":"blockedIntMatrix(int[][])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"blockedMatrix(CNumber[], int, int)","u":"blockedMatrix(org.flag4j.complex_numbers.CNumber[],int,int)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseTranspose","l":"blockedMatrix(double[], int, int)","u":"blockedMatrix(double[],int,int)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"blockedMatrixConcurrent(CNumber[], int, int)","u":"blockedMatrixConcurrent(org.flag4j.complex_numbers.CNumber[],int,int)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseTranspose","l":"blockedMatrixConcurrent(double[], int, int)","u":"blockedMatrixConcurrent(double[],int,int)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"blockedMatrixConcurrentHerm(CNumber[], int, int)","u":"blockedMatrixConcurrentHerm(org.flag4j.complex_numbers.CNumber[],int,int)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"blockedMatrixHerm(CNumber[], int, int)","u":"blockedMatrixHerm(org.flag4j.complex_numbers.CNumber[],int,int)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultiplication","l":"blockedReordered(CNumber[], Shape, CNumber[], Shape)","u":"blockedReordered(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"blockedReordered(CNumber[], Shape, double[], Shape)","u":"blockedReordered(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"blockedReordered(double[], Shape, CNumber[], Shape)","u":"blockedReordered(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultiplication","l":"blockedReordered(double[], Shape, double[], Shape)","u":"blockedReordered(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixMultiplication","l":"blockedVector(CNumber[], Shape, CNumber[], int[])","u":"blockedVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultiplication","l":"blockedVector(CNumber[], Shape, CNumber[], Shape)","u":"blockedVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"blockedVector(CNumber[], Shape, double[], int[])","u":"blockedVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],int[])"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"blockedVector(CNumber[], Shape, double[], Shape)","u":"blockedVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"blockedVector(double[], Shape, CNumber[], int[])","u":"blockedVector(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[])"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"blockedVector(double[], Shape, CNumber[], Shape)","u":"blockedVector(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixMultiplication","l":"blockedVector(double[], Shape, double[], int[])","u":"blockedVector(double[],org.flag4j.core.Shape,double[],int[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultiplication","l":"blockedVector(double[], Shape, double[], Shape)","u":"blockedVector(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.concurrency","c":"Configurations","l":"blockSize"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"boxed(double[])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"boxed(int[])"},{"p":"org.flag4j.io","c":"PrintOptions","l":"center"},{"p":"org.flag4j.util","c":"StringUtils","l":"center(String, int)","u":"center(java.lang.String,int)"},{"p":"org.flag4j.util","c":"StringUtils","l":"center(String, int, String)","u":"center(java.lang.String,int,java.lang.String)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"checkConvergence(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"checkConvergence(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"checkConvergence(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"checkFinite"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"BackSolver","l":"checkParams(T, int)","u":"checkParams(T,int)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ForwardSolver","l":"checkParams(T, int)","u":"checkParams(T,int)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"BackSolver","l":"checkSingular(double, int, int)","u":"checkSingular(double,int,int)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ForwardSolver","l":"checkSingular(double, int, int)","u":"checkSingular(double,int,int)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactTensorSolver","l":"checkSize(int, int)","u":"checkSize(int,int)"},{"p":"org.flag4j.linalg.decompositions.chol","c":"Cholesky","l":"Cholesky(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"chooseAlgorithm(Shape)","u":"chooseAlgorithm(org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"chooseAlgorithmComplex(Shape)","u":"chooseAlgorithmComplex(org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"chooseAlgorithmComplex(Shape, Shape)","u":"chooseAlgorithmComplex(org.flag4j.core.Shape,org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"chooseAlgorithmComplexTranspose(Shape)","u":"chooseAlgorithmComplexTranspose(org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"chooseAlgorithmComplexVector(Shape)","u":"chooseAlgorithmComplexVector(org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"chooseAlgorithmHermitian(Shape)","u":"chooseAlgorithmHermitian(org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"chooseAlgorithmRealComplex(Shape, Shape)","u":"chooseAlgorithmRealComplex(org.flag4j.core.Shape,org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"chooseAlgorithmRealComplexTranspose(Shape)","u":"chooseAlgorithmRealComplexTranspose(org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"chooseAlgorithmRealComplexVector(Shape)","u":"chooseAlgorithmRealComplexVector(org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"chooseAlgorithmRealVector(Shape)","u":"chooseAlgorithmRealVector(org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"chooseAlgorithmTensor(int)"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"chooseAlgorithmTensor(int, int)","u":"chooseAlgorithmTensor(int,int)"},{"p":"org.flag4j.io","c":"TensorInputStream","l":"close()"},{"p":"org.flag4j.io","c":"TensorOutputStream","l":"close()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(CMatrix)","u":"%3Cinit%3E(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(CNumber[][])","u":"%3Cinit%3E(org.flag4j.complex_numbers.CNumber[][])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(double[][])","u":"%3Cinit%3E(double[][])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(int)","u":"%3Cinit%3E(int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(int, CNumber)","u":"%3Cinit%3E(int,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(int, double)","u":"%3Cinit%3E(int,double)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(int, int)","u":"%3Cinit%3E(int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(int, int, CNumber)","u":"%3Cinit%3E(int,int,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(int, int, CNumber[])","u":"%3Cinit%3E(int,int,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(int, int, double)","u":"%3Cinit%3E(int,int,double)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(int[][])","u":"%3Cinit%3E(int[][])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(Matrix)","u":"%3Cinit%3E(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(Shape)","u":"%3Cinit%3E(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(Shape, CNumber)","u":"%3Cinit%3E(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(Shape, CNumber...)","u":"%3Cinit%3E(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber...)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(Shape, double)","u":"%3Cinit%3E(org.flag4j.core.Shape,double)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(Shape, double...)","u":"%3Cinit%3E(org.flag4j.core.Shape,double...)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"CMatrix(String[][])","u":"%3Cinit%3E(java.lang.String[][])"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"CNumber(double)","u":"%3Cinit%3E(double)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"CNumber(double, double)","u":"%3Cinit%3E(double,double)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"CNumber(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"org.flag4j.complex_numbers","c":"CNumberLexer","l":"CNumberLexer(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"org.flag4j.complex_numbers","c":"CNumberParser","l":"CNumberParser()","u":"%3Cinit%3E()"},{"p":"org.flag4j.complex_numbers","c":"CNumberToken","l":"CNumberToken(String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String)"},{"p":"org.flag4j.complex_numbers","c":"CNumberUtils","l":"CNumberUtils()","u":"%3Cinit%3E()"},{"p":"org.flag4j.util","c":"Axis2D","l":"COL"},{"p":"org.flag4j.util","c":"Axis2D","l":"col()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"colIndices"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"colIndices"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"colIndices"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"colIndices"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"colSwaps"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"compareTo(CNumber)","u":"compareTo(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"compareToReal(CNumber)","u":"compareToReal(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"compareToReal(double)"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"COMPLEX_BLOCKED_THRESHOLD"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"COMPLEX_RNG"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexBackSolver","l":"ComplexBackSolver()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexBackSolver","l":"ComplexBackSolver(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.linalg.decompositions.chol","c":"ComplexCholesky","l":"ComplexCholesky()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.chol","c":"ComplexCholesky","l":"ComplexCholesky(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexCooTensorDot","l":"ComplexCooTensorDot()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexCooTensorOperations","l":"ComplexCooTensorOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.csr.complex","c":"ComplexCsrDenseMatrixMultiplication","l":"ComplexCsrDenseMatrixMultiplication()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.csr.complex","c":"ComplexCsrDenseOperations","l":"ComplexCsrDenseOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrEquals","l":"ComplexCsrEquals()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrManipulations","l":"ComplexCsrManipulations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrMatrixMultiplication","l":"ComplexCsrMatrixMultiplication()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrOperations","l":"ComplexCsrOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrProperties","l":"ComplexCsrProperties()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseDeterminant","l":"ComplexDenseDeterminant()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseElemDiv","l":"ComplexDenseElemDiv()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseElemMult","l":"ComplexDenseElemMult()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseEquals","l":"ComplexDenseEquals()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.common","c":"TensorEquals","l":"complexDenseLookUp"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultiplication","l":"ComplexDenseMatrixMultiplication()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultTranspose","l":"ComplexDenseMatrixMultTranspose()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"ComplexDenseOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseProperties","l":"ComplexDenseProperties()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseSetOperations","l":"ComplexDenseSetOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseEquals","l":"ComplexDenseSparseEquals()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixMultiplication","l":"ComplexDenseSparseMatrixMultiplication()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixMultTranspose","l":"ComplexDenseSparseMatrixMultTranspose()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixOperations","l":"ComplexDenseSparseMatrixOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseOperations","l":"ComplexDenseSparseOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseVectorOperations","l":"ComplexDenseSparseVectorOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"ComplexDenseTensorBase(Shape, CNumber[])","u":"%3Cinit%3E(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTensorDot","l":"ComplexDenseTensorDot()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"ComplexDenseTranspose()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseVectorOperations","l":"ComplexDenseVectorOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.solvers.exact","c":"ComplexExactSolver","l":"ComplexExactSolver()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.solvers.exact","c":"ComplexExactTensorSolver","l":"ComplexExactTensorSolver()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexForwardSolver","l":"ComplexForwardSolver()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexForwardSolver","l":"ComplexForwardSolver(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexForwardSolver","l":"ComplexForwardSolver(boolean, boolean)","u":"%3Cinit%3E(boolean,boolean)"},{"p":"org.flag4j.linalg.decompositions.hess","c":"ComplexHess","l":"ComplexHess()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.hess","c":"ComplexHess","l":"ComplexHess(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.linalg.solvers.lstsq","c":"ComplexLstsqSolver","l":"ComplexLstsqSolver()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"ComplexLU","l":"ComplexLU()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"ComplexLU","l":"ComplexLU(int)","u":"%3Cinit%3E(int)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"ComplexLU","l":"ComplexLU(int, double)","u":"%3Cinit%3E(int,double)"},{"p":"org.flag4j.operations.common.complex","c":"ComplexOperations","l":"ComplexOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.common.complex","c":"ComplexProperties","l":"ComplexProperties()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.qr","c":"ComplexQR","l":"ComplexQR()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.qr","c":"ComplexQR","l":"ComplexQR(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"ComplexSchur()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"ComplexSchur(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"ComplexSchur(boolean, long)","u":"%3Cinit%3E(boolean,long)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"ComplexSchur(long)","u":"%3Cinit%3E(long)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseElementSearch","l":"ComplexSparseElementSearch()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseEquals","l":"ComplexSparseEquals()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.common","c":"TensorEquals","l":"complexSparseLookUp"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"ComplexSparseMatrixGetSet()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixManipulations","l":"ComplexSparseMatrixManipulations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixMultiplication","l":"ComplexSparseMatrixMultiplication()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixOperations","l":"ComplexSparseMatrixOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixProperties","l":"ComplexSparseMatrixProperties()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseNorms","l":"ComplexSparseNorms()","u":"%3Cinit%3E()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"ComplexSparseTensorBase(Shape, int, CNumber[], int[], int[]...)","u":"%3Cinit%3E(org.flag4j.core.Shape,int,org.flag4j.complex_numbers.CNumber[],int[],int[]...)"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"ComplexSparseTensorBase(Shape, int, CNumber[], int[][])","u":"%3Cinit%3E(org.flag4j.core.Shape,int,org.flag4j.complex_numbers.CNumber[],int[][])"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseVectorOperations","l":"ComplexSparseVectorOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.svd","c":"ComplexSVD","l":"ComplexSVD()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.svd","c":"ComplexSVD","l":"ComplexSVD(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.linalg.decompositions.svd","c":"ComplexSVD","l":"ComplexSVD(boolean, boolean)","u":"%3Cinit%3E(boolean,boolean)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"ComplexUnitaryDecomposition","l":"ComplexUnitaryDecomposition(int)","u":"%3Cinit%3E(int)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"ComplexUnitaryDecomposition","l":"ComplexUnitaryDecomposition(int, boolean)","u":"%3Cinit%3E(int,boolean)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"computeExceptionalShift(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"computeExceptionalShift(int)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"ComplexUnitaryDecomposition","l":"computeHouseholder(int)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"RealUnitaryDecomposition","l":"computeHouseholder(int)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"computeHouseholder(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"computeImplicitDoubleShift(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"computeImplicitDoubleShift(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"computeImplicitSingleShift(int, CNumber)","u":"computeImplicitSingleShift(int,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"computeImplicitSingleShift(int, double)","u":"computeImplicitSingleShift(int,double)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"ComplexUnitaryDecomposition","l":"computePhasedNorm(int, double)","u":"computePhasedNorm(int,double)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"RealUnitaryDecomposition","l":"computePhasedNorm(int, double)","u":"computePhasedNorm(int,double)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"computePhasedNorm(int, double)","u":"computePhasedNorm(int,double)"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"computeRank(int, int, double[])","u":"computeRank(int,int,double[])"},{"p":"org.flag4j.linalg.decompositions.lu","c":"ComplexLU","l":"computeRows(int)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"RealLU","l":"computeRows(int)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"computeSwaps()"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"computeU"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"computeUV"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"CONCURRENT_BLOCKED"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"CONCURRENT_BLOCKED"},{"p":"org.flag4j.operations","c":"TransposeDispatcher.Algorithm","l":"CONCURRENT_BLOCKED"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"CONCURRENT_BLOCKED_REORDERED"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"CONCURRENT_BLOCKED_REORDERED"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"CONCURRENT_BLOCKED_VECTOR"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"CONCURRENT_BLOCKED_VECTOR"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"CONCURRENT_REORDERED"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"CONCURRENT_REORDERED"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"CONCURRENT_STANDARD"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"CONCURRENT_STANDARD"},{"p":"org.flag4j.operations","c":"TransposeDispatcher.Algorithm","l":"CONCURRENT_STANDARD"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"CONCURRENT_STANDARD_VECTOR"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"CONCURRENT_STANDARD_VECTOR"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"CONCURRENT_SWAPPED_THRESHOLD"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher","l":"CONCURRENT_SWAPPED_THRESHOLD"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseElemDiv","l":"CONCURRENT_THRESHOLD"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseElemMult","l":"CONCURRENT_THRESHOLD"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseElemDiv","l":"CONCURRENT_THRESHOLD"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseElemMult","l":"CONCURRENT_THRESHOLD"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseElemDiv","l":"CONCURRENT_THRESHOLD"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseElemMult","l":"CONCURRENT_THRESHOLD"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"CONCURRENT_THRESHOLD"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultiplication","l":"concurrentBlocked(CNumber[], Shape, CNumber[], Shape)","u":"concurrentBlocked(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"concurrentBlocked(CNumber[], Shape, double[], Shape)","u":"concurrentBlocked(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"concurrentBlocked(double[], Shape, CNumber[], Shape)","u":"concurrentBlocked(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultiplication","l":"concurrentBlocked(double[], Shape, double[], Shape)","u":"concurrentBlocked(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.concurrency","c":"ThreadManager","l":"concurrentBlockedOperation(int, int, TensorOperation)","u":"concurrentBlockedOperation(int,int,org.flag4j.concurrency.TensorOperation)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultiplication","l":"concurrentBlockedReordered(CNumber[], Shape, CNumber[], Shape)","u":"concurrentBlockedReordered(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"concurrentBlockedReordered(CNumber[], Shape, double[], Shape)","u":"concurrentBlockedReordered(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"concurrentBlockedReordered(double[], Shape, CNumber[], Shape)","u":"concurrentBlockedReordered(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultiplication","l":"concurrentBlockedReordered(double[], Shape, double[], Shape)","u":"concurrentBlockedReordered(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixMultiplication","l":"concurrentBlockedVector(CNumber[], Shape, CNumber[], int[])","u":"concurrentBlockedVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultiplication","l":"concurrentBlockedVector(CNumber[], Shape, CNumber[], Shape)","u":"concurrentBlockedVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"concurrentBlockedVector(CNumber[], Shape, double[], int[])","u":"concurrentBlockedVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],int[])"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"concurrentBlockedVector(CNumber[], Shape, double[], Shape)","u":"concurrentBlockedVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"concurrentBlockedVector(double[], Shape, CNumber[], int[])","u":"concurrentBlockedVector(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[])"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"concurrentBlockedVector(double[], Shape, CNumber[], Shape)","u":"concurrentBlockedVector(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixMultiplication","l":"concurrentBlockedVector(double[], Shape, double[], int[])","u":"concurrentBlockedVector(double[],org.flag4j.core.Shape,double[],int[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultiplication","l":"concurrentBlockedVector(double[], Shape, double[], Shape)","u":"concurrentBlockedVector(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.concurrency","c":"ThreadManager","l":"concurrentOperation(int, TensorOperation)","u":"concurrentOperation(int,org.flag4j.concurrency.TensorOperation)"},{"p":"org.flag4j.concurrency","c":"ThreadManager","l":"concurrentOperation(int, ThreadManager.TriConsumer)","u":"concurrentOperation(int,org.flag4j.concurrency.ThreadManager.TriConsumer)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultiplication","l":"concurrentReordered(CNumber[], Shape, CNumber[], Shape)","u":"concurrentReordered(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"concurrentReordered(CNumber[], Shape, double[], Shape)","u":"concurrentReordered(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"concurrentReordered(double[], Shape, CNumber[], Shape)","u":"concurrentReordered(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultiplication","l":"concurrentReordered(double[], Shape, double[], Shape)","u":"concurrentReordered(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixMultiplication","l":"concurrentStandard(CNumber[], int[], int[], Shape, CNumber[], int[], int[], Shape)","u":"concurrentStandard(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixMultiplication","l":"concurrentStandard(CNumber[], int[], int[], Shape, CNumber[], Shape)","u":"concurrentStandard(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixMultiplication","l":"concurrentStandard(CNumber[], int[], int[], Shape, double[], int[], int[], Shape)","u":"concurrentStandard(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,double[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"concurrentStandard(CNumber[], int[], int[], Shape, double[], Shape)","u":"concurrentStandard(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixMultiplication","l":"concurrentStandard(CNumber[], Shape, CNumber[], int[], int[], Shape)","u":"concurrentStandard(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultiplication","l":"concurrentStandard(CNumber[], Shape, CNumber[], Shape)","u":"concurrentStandard(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"concurrentStandard(CNumber[], Shape, double[], int[], int[], Shape)","u":"concurrentStandard(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"concurrentStandard(CNumber[], Shape, double[], Shape)","u":"concurrentStandard(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixMultiplication","l":"concurrentStandard(double[], int[], int[], Shape, CNumber[], int[], int[], Shape)","u":"concurrentStandard(double[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"concurrentStandard(double[], int[], int[], Shape, CNumber[], Shape)","u":"concurrentStandard(double[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixMultiplication","l":"concurrentStandard(double[], int[], int[], Shape, double[], int[], int[], Shape)","u":"concurrentStandard(double[],int[],int[],org.flag4j.core.Shape,double[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixMultiplication","l":"concurrentStandard(double[], int[], int[], Shape, double[], Shape)","u":"concurrentStandard(double[],int[],int[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"concurrentStandard(double[], Shape, CNumber[], int[], int[], Shape)","u":"concurrentStandard(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"concurrentStandard(double[], Shape, CNumber[], Shape)","u":"concurrentStandard(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixMultiplication","l":"concurrentStandard(double[], Shape, double[], int[], int[], Shape)","u":"concurrentStandard(double[],org.flag4j.core.Shape,double[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultiplication","l":"concurrentStandard(double[], Shape, double[], Shape)","u":"concurrentStandard(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixMultiplication","l":"concurrentStandardVector(CNumber[], int[], int[], Shape, CNumber[], int[])","u":"concurrentStandardVector(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[])"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixMultiplication","l":"concurrentStandardVector(CNumber[], int[], int[], Shape, CNumber[], Shape)","u":"concurrentStandardVector(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixMultiplication","l":"concurrentStandardVector(CNumber[], int[], int[], Shape, double[], int[], Shape)","u":"concurrentStandardVector(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,double[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"concurrentStandardVector(CNumber[], int[], int[], Shape, double[], Shape)","u":"concurrentStandardVector(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixMultiplication","l":"concurrentStandardVector(CNumber[], Shape, CNumber[], int[])","u":"concurrentStandardVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultiplication","l":"concurrentStandardVector(CNumber[], Shape, CNumber[], Shape)","u":"concurrentStandardVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"concurrentStandardVector(CNumber[], Shape, double[], int[])","u":"concurrentStandardVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],int[])"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"concurrentStandardVector(CNumber[], Shape, double[], Shape)","u":"concurrentStandardVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixMultiplication","l":"concurrentStandardVector(double[], int[], int[], Shape, CNumber[], int[], Shape)","u":"concurrentStandardVector(double[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"concurrentStandardVector(double[], int[], int[], Shape, CNumber[], Shape)","u":"concurrentStandardVector(double[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixMultiplication","l":"concurrentStandardVector(double[], int[], int[], Shape, double[], int[])","u":"concurrentStandardVector(double[],int[],int[],org.flag4j.core.Shape,double[],int[])"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixMultiplication","l":"concurrentStandardVector(double[], int[], int[], Shape, double[], Shape)","u":"concurrentStandardVector(double[],int[],int[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"concurrentStandardVector(double[], Shape, CNumber[], int[])","u":"concurrentStandardVector(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[])"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"concurrentStandardVector(double[], Shape, CNumber[], Shape)","u":"concurrentStandardVector(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixMultiplication","l":"concurrentStandardVector(double[], Shape, double[], int[])","u":"concurrentStandardVector(double[],org.flag4j.core.Shape,double[],int[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultiplication","l":"concurrentStandardVector(double[], Shape, double[], Shape)","u":"concurrentStandardVector(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.linalg","c":"Condition","l":"cond(CMatrix)","u":"cond(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"Condition","l":"cond(CMatrix, double)","u":"cond(org.flag4j.arrays.dense.CMatrix,double)"},{"p":"org.flag4j.linalg","c":"Condition","l":"cond(Matrix)","u":"cond(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg","c":"Condition","l":"cond(Matrix, double)","u":"cond(org.flag4j.arrays.dense.Matrix,double)"},{"p":"org.flag4j.linalg","c":"Condition","l":"Condition()","u":"%3Cinit%3E()"},{"p":"org.flag4j.concurrency","c":"Configurations","l":"Configurations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"conj()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"conj()"},{"p":"org.flag4j.core","c":"ComplexMatrixMixin","l":"conj()"},{"p":"org.flag4j.core","c":"ComplexTensorMixin","l":"conj()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"conj()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"conj()"},{"p":"org.flag4j.operations.common.complex","c":"ComplexOperations","l":"conj(CNumber[])","u":"conj(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.core","c":"ComplexMatrixMixin","l":"conjT()"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"contains(double[], double)","u":"contains(double[],double)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"contains(double[], double...)","u":"contains(double[],double...)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"contains(int[], int)","u":"contains(int[],int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"contains(int[], int...)","u":"contains(int[],int...)"},{"p":"org.flag4j.complex_numbers","c":"CNumberLexer","l":"content"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"CooCMatrix(CooCMatrix)","u":"%3Cinit%3E(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"CooCMatrix(int)","u":"%3Cinit%3E(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"CooCMatrix(int, CNumber[], int[], int[])","u":"%3Cinit%3E(int,org.flag4j.complex_numbers.CNumber[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"CooCMatrix(int, double[], int[], int[])","u":"%3Cinit%3E(int,double[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"CooCMatrix(int, int)","u":"%3Cinit%3E(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"CooCMatrix(int, int, CNumber[], int[], int[])","u":"%3Cinit%3E(int,int,org.flag4j.complex_numbers.CNumber[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"CooCMatrix(int, int, double[], int[], int[])","u":"%3Cinit%3E(int,int,double[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"CooCMatrix(int, int, int[], int[], int[])","u":"%3Cinit%3E(int,int,int[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"CooCMatrix(int, int[], int[], int[])","u":"%3Cinit%3E(int,int[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"CooCMatrix(Shape)","u":"%3Cinit%3E(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"CooCMatrix(Shape, CNumber[], int[], int[])","u":"%3Cinit%3E(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"CooCMatrix(Shape, double[], int[], int[])","u":"%3Cinit%3E(org.flag4j.core.Shape,double[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"CooCMatrix(Shape, int[], int[], int[])","u":"%3Cinit%3E(org.flag4j.core.Shape,int[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"CooCMatrix(Shape, List, List, List)","u":"%3Cinit%3E(org.flag4j.core.Shape,java.util.List,java.util.List,java.util.List)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"CooCTensor(CooCTensor)","u":"%3Cinit%3E(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"CooCTensor(Shape)","u":"%3Cinit%3E(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"CooCTensor(Shape, CNumber[], int[][])","u":"%3Cinit%3E(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"CooCTensor(Shape, double[], int[][])","u":"%3Cinit%3E(org.flag4j.core.Shape,double[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"CooCTensor(Shape, int[], int[][])","u":"%3Cinit%3E(org.flag4j.core.Shape,int[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"CooCTensor(Shape, List, List)","u":"%3Cinit%3E(org.flag4j.core.Shape,java.util.List,java.util.List)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"CooCVector(CooCVector)","u":"%3Cinit%3E(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"CooCVector(int)","u":"%3Cinit%3E(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"CooCVector(int, CNumber[], int[])","u":"%3Cinit%3E(int,org.flag4j.complex_numbers.CNumber[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"CooCVector(int, double[], int[])","u":"%3Cinit%3E(int,double[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"CooCVector(int, int[], int[])","u":"%3Cinit%3E(int,int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"CooCVector(int, List, List)","u":"%3Cinit%3E(int,java.util.List,java.util.List)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"CooMatrix(CooMatrix)","u":"%3Cinit%3E(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"CooMatrix(int)","u":"%3Cinit%3E(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"CooMatrix(int, double[], int[], int[])","u":"%3Cinit%3E(int,double[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"CooMatrix(int, int)","u":"%3Cinit%3E(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"CooMatrix(int, int, double[], int[], int[])","u":"%3Cinit%3E(int,int,double[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"CooMatrix(int, int, int[], int[], int[])","u":"%3Cinit%3E(int,int,int[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"CooMatrix(int, int[], int[], int[])","u":"%3Cinit%3E(int,int[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"CooMatrix(Shape)","u":"%3Cinit%3E(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"CooMatrix(Shape, double[], int[], int[])","u":"%3Cinit%3E(org.flag4j.core.Shape,double[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"CooMatrix(Shape, int[], int[], int[])","u":"%3Cinit%3E(org.flag4j.core.Shape,int[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"CooMatrix(Shape, List, List, List)","u":"%3Cinit%3E(org.flag4j.core.Shape,java.util.List,java.util.List,java.util.List)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"CooTensor(CooTensor)","u":"%3Cinit%3E(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"CooTensor(Shape)","u":"%3Cinit%3E(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"CooTensor(Shape, double[], int[][])","u":"%3Cinit%3E(org.flag4j.core.Shape,double[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"CooTensor(Shape, int[], int[][])","u":"%3Cinit%3E(org.flag4j.core.Shape,int[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"CooTensor(Shape, List, List)","u":"%3Cinit%3E(org.flag4j.core.Shape,java.util.List,java.util.List)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"CooVector(CooVector)","u":"%3Cinit%3E(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"CooVector(int)","u":"%3Cinit%3E(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"CooVector(int, double[], int[])","u":"%3Cinit%3E(int,double[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"CooVector(int, int[], int[])","u":"%3Cinit%3E(int,int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"CooVector(int, List, List)","u":"%3Cinit%3E(int,java.util.List,java.util.List)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"copy()"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"copy()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"copy()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"copy()"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"copy()"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"copy()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"copy()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"copy()"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"copy()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"copy()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"copy()"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"copy()"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"copy()"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"copy2CNumber(double[], CNumber[])","u":"copy2CNumber(double[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"copy2CNumber(Double[], CNumber[])","u":"copy2CNumber(java.lang.Double[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"copy2CNumber(int[], CNumber[])","u":"copy2CNumber(int[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"copy2CNumber(Integer[], CNumber[])","u":"copy2CNumber(java.lang.Integer[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"copy2CNumber(String[], CNumber[])","u":"copy2CNumber(java.lang.String[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"copyIndices()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"copyIndices()"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixManipulations","l":"copyRanges(CooCMatrix, CNumber[], int[], int[], int[])","u":"copyRanges(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.complex_numbers.CNumber[],int[],int[],int[])"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixManipulations","l":"copyRanges(CooMatrix, double[], int[], int[], int[])","u":"copyRanges(org.flag4j.arrays.sparse.CooMatrix,double[],int[],int[],int[])"},{"p":"org.flag4j.linalg.decompositions.hess","c":"SymmHess","l":"copyUpperTri(Matrix)","u":"copyUpperTri(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"copyValuesNotInSlice(CooCMatrix, List, List, List, int[], int[])","u":"copyValuesNotInSlice(org.flag4j.arrays.sparse.CooCMatrix,java.util.List,java.util.List,java.util.List,int[],int[])"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"copyValuesNotInSlice(CooMatrix, List, List, List, int[], int[])","u":"copyValuesNotInSlice(org.flag4j.arrays.sparse.CooMatrix,java.util.List,java.util.List,java.util.List,int[],int[])"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"cos(CNumber)","u":"cos(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"cos(double)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"cosh(CNumber)","u":"cosh(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"cosh(double)"},{"p":"org.flag4j.linalg.decompositions","c":"DecompositionFactory","l":"createComplexChol()"},{"p":"org.flag4j.linalg.decompositions","c":"DecompositionFactory","l":"createComplexHess()"},{"p":"org.flag4j.linalg.decompositions","c":"DecompositionFactory","l":"createComplexLU()"},{"p":"org.flag4j.linalg.decompositions","c":"DecompositionFactory","l":"createComplexQR()"},{"p":"org.flag4j.linalg.decompositions","c":"DecompositionFactory","l":"createComplexSchur()"},{"p":"org.flag4j.linalg.decompositions","c":"DecompositionFactory","l":"createComplexSVD()"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseUtils","l":"createMap(int, int[])","u":"createMap(int,int[])"},{"p":"org.flag4j.core","c":"Shape","l":"createNewStrides()"},{"p":"org.flag4j.linalg.decompositions","c":"DecompositionFactory","l":"createRealChol()"},{"p":"org.flag4j.linalg.decompositions","c":"DecompositionFactory","l":"createRealHess()"},{"p":"org.flag4j.linalg.decompositions","c":"DecompositionFactory","l":"createRealLU()"},{"p":"org.flag4j.linalg.decompositions","c":"DecompositionFactory","l":"createRealQR()"},{"p":"org.flag4j.linalg.decompositions","c":"DecompositionFactory","l":"createRealSchur()"},{"p":"org.flag4j.linalg.decompositions","c":"DecompositionFactory","l":"createRealSVD()"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"createUniqueMapping(int[])"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"cross(CVector)","u":"cross(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"cross(CVector)","u":"cross(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"cross(Vector)","u":"cross(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"cross(Vector)","u":"cross(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"CsrCMatrix(CooCMatrix)","u":"%3Cinit%3E(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"CsrCMatrix(CooMatrix)","u":"%3Cinit%3E(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"CsrCMatrix(CsrCMatrix)","u":"%3Cinit%3E(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"CsrCMatrix(int, int)","u":"%3Cinit%3E(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"CsrCMatrix(int, int, CNumber[], int[], int[])","u":"%3Cinit%3E(int,int,org.flag4j.complex_numbers.CNumber[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"CsrCMatrix(Shape)","u":"%3Cinit%3E(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"CsrCMatrix(Shape, CNumber[], int[], int[])","u":"%3Cinit%3E(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"CsrCMatrix(Shape, double[], int[], int[])","u":"%3Cinit%3E(org.flag4j.core.Shape,double[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"SparseUtils","l":"CSREquals(CsrCMatrix, CsrCMatrix)","u":"CSREquals(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"SparseUtils","l":"CSREquals(CsrMatrix, CsrMatrix)","u":"CSREquals(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"CsrMatrix(CooMatrix)","u":"%3Cinit%3E(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"CsrMatrix(CsrMatrix)","u":"%3Cinit%3E(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"CsrMatrix(int, int)","u":"%3Cinit%3E(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"CsrMatrix(int, int, double[], int[], int[])","u":"%3Cinit%3E(int,int,double[],int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"CsrMatrix(Shape)","u":"%3Cinit%3E(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"CsrMatrix(Shape, double[], int[], int[])","u":"%3Cinit%3E(org.flag4j.core.Shape,double[],int[],int[])"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"CTensor(CTensor)","u":"%3Cinit%3E(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"CTensor(Shape)","u":"%3Cinit%3E(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"CTensor(Shape, CNumber)","u":"%3Cinit%3E(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"CTensor(Shape, CNumber[])","u":"%3Cinit%3E(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"CTensor(Shape, double)","u":"%3Cinit%3E(org.flag4j.core.Shape,double)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"CTensor(Shape, double[])","u":"%3Cinit%3E(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"CTensor(Shape, int[])","u":"%3Cinit%3E(org.flag4j.core.Shape,int[])"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"CTensor(Tensor)","u":"%3Cinit%3E(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"currentFactor"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"currentFactor"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"ComplexUnitaryDecomposition","l":"currentFactor"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"RealUnitaryDecomposition","l":"currentFactor"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"CVector(CNumber...)","u":"%3Cinit%3E(org.flag4j.complex_numbers.CNumber...)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"CVector(CVector)","u":"%3Cinit%3E(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"CVector(double...)","u":"%3Cinit%3E(double...)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"CVector(int)","u":"%3Cinit%3E(int)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"CVector(int, CNumber)","u":"%3Cinit%3E(int,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"CVector(int, double)","u":"%3Cinit%3E(int,double)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"CVector(int...)","u":"%3Cinit%3E(int...)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"CVector(Vector)","u":"%3Cinit%3E(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.concurrency","c":"ThreadManager","l":"daemonFactory"},{"p":"org.flag4j.linalg.decompositions.chol","c":"ComplexCholesky","l":"decompose(CMatrix)","u":"decompose(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.decompositions.hess","c":"ComplexHess","l":"decompose(CMatrix)","u":"decompose(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.decompositions.qr","c":"ComplexQR","l":"decompose(CMatrix)","u":"decompose(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"decompose(CMatrix)","u":"decompose(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.decompositions.chol","c":"RealCholesky","l":"decompose(Matrix)","u":"decompose(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.decompositions.hess","c":"RealHess","l":"decompose(Matrix)","u":"decompose(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.decompositions.hess","c":"SymmHess","l":"decompose(Matrix)","u":"decompose(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.decompositions.qr","c":"RealQR","l":"decompose(Matrix)","u":"decompose(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"decompose(Matrix)","u":"decompose(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.decompositions","c":"Decomposition","l":"decompose(T)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"decompose(T)"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"decompose(T)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactSolver","l":"decompose(T)"},{"p":"org.flag4j.linalg.solvers.lstsq","c":"LstsqSolver","l":"decompose(T)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"decomposeBase(T)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"decomposeBase(T)"},{"p":"org.flag4j.linalg.decompositions","c":"DecompositionFactory","l":"DecompositionFactory()","u":"%3Cinit%3E()"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"deepCopy(int[][], int[][])","u":"deepCopy(int[][],int[][])"},{"p":"org.flag4j.concurrency","c":"Configurations","l":"DEFAULT_BLOCK_SIZE"},{"p":"org.flag4j.io","c":"PrintOptions","l":"DEFAULT_CENTER"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"DEFAULT_EXCEPTIONAL_ITERS"},{"p":"org.flag4j.io","c":"PrintOptions","l":"DEFAULT_MAX_COLS"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"DEFAULT_MAX_ITERS_FACTOR"},{"p":"org.flag4j.io","c":"PrintOptions","l":"DEFAULT_MAX_ROWS"},{"p":"org.flag4j.concurrency","c":"Configurations","l":"DEFAULT_MIN_RECURSIVE_SIZE"},{"p":"org.flag4j.concurrency","c":"Configurations","l":"DEFAULT_NUM_THREADS"},{"p":"org.flag4j.io","c":"PrintOptions","l":"DEFAULT_PADDING"},{"p":"org.flag4j.linalg.decompositions.chol","c":"Cholesky","l":"DEFAULT_POS_DEF_TOLERANCE"},{"p":"org.flag4j.io","c":"PrintOptions","l":"DEFAULT_PRECISION"},{"p":"org.flag4j.core","c":"TensorBase","l":"DEFAULT_ROUND_TO_ZERO_THRESHOLD"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"DEFAULT_ZERO_PIVOT_TOLERANCE"},{"p":"org.flag4j.core.dense_base","c":"DenseTensorBase","l":"DenseTensorBase(Shape, D)","u":"%3Cinit%3E(org.flag4j.core.Shape,D)"},{"p":"org.flag4j.core.sparse_base","c":"SparseTensorBase","l":"density()"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexBackSolver","l":"det"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexForwardSolver","l":"det"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealBackSolver","l":"det"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealForwardSolver","l":"det"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"det()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"det()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"det()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"det()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"det()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"det()"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"det()"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"det()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseDeterminant","l":"det(CMatrix)","u":"det(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseDeterminant","l":"det(Matrix)","u":"det(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseDeterminant","l":"det1(CMatrix)","u":"det1(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseDeterminant","l":"det1(Matrix)","u":"det1(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseDeterminant","l":"det2(CMatrix)","u":"det2(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseDeterminant","l":"det2(Matrix)","u":"det2(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseDeterminant","l":"det3(CMatrix)","u":"det3(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseDeterminant","l":"det3(Matrix)","u":"det3(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.complex_numbers","c":"CNumberToken","l":"details"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseDeterminant","l":"detLU(CMatrix)","u":"detLU(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseDeterminant","l":"detLU(Matrix)","u":"detLU(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseDeterminant","l":"detTri(CMatrix)","u":"detTri(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseDeterminant","l":"detTri(Matrix)","u":"detTri(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"SymmTriDiagonal","l":"diag"},{"p":"org.flag4j.complex_numbers","c":"CNumberLexer","l":"digit(int)"},{"p":"org.flag4j.core","c":"Shape","l":"dims"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"DirectSum()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CMatrix, CMatrix)","u":"directSum(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CMatrix, CooCMatrix)","u":"directSum(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CMatrix, CooMatrix)","u":"directSum(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CMatrix, Matrix)","u":"directSum(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CooCMatrix, CMatrix)","u":"directSum(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CooCMatrix, CooCMatrix)","u":"directSum(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CooCMatrix, CooMatrix)","u":"directSum(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CooCMatrix, Matrix)","u":"directSum(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CooMatrix, CMatrix)","u":"directSum(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CooMatrix, CooCMatrix)","u":"directSum(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CooMatrix, CooMatrix)","u":"directSum(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CooMatrix, Matrix)","u":"directSum(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CsrCMatrix, CMatrix)","u":"directSum(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CsrCMatrix, CooCMatrix)","u":"directSum(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CsrCMatrix, CooMatrix)","u":"directSum(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CsrCMatrix, Matrix)","u":"directSum(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CsrMatrix, CMatrix)","u":"directSum(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CsrMatrix, CooCMatrix)","u":"directSum(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CsrMatrix, CooMatrix)","u":"directSum(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(CsrMatrix, Matrix)","u":"directSum(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(Matrix, CMatrix)","u":"directSum(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(Matrix, CooCMatrix)","u":"directSum(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(Matrix, CooMatrix)","u":"directSum(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"directSum(Matrix, Matrix)","u":"directSum(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"dispatch(CMatrix)","u":"dispatch(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"dispatch(CMatrix, CMatrix)","u":"dispatch(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"dispatch(CMatrix, CVector)","u":"dispatch(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"dispatch(CMatrix, Matrix)","u":"dispatch(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"dispatch(CMatrix, Vector)","u":"dispatch(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseElemDiv","l":"dispatch(CNumber[], Shape, CNumber[], Shape)","u":"dispatch(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseElemMult","l":"dispatch(CNumber[], Shape, CNumber[], Shape)","u":"dispatch(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"dispatch(CNumber[], Shape, CNumber[], Shape)","u":"dispatch(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseElemDiv","l":"dispatch(CNumber[], Shape, double[], Shape)","u":"dispatch(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseElemMult","l":"dispatch(CNumber[], Shape, double[], Shape)","u":"dispatch(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseElemDiv","l":"dispatch(double[], Shape, CNumber[], Shape)","u":"dispatch(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseElemDiv","l":"dispatch(double[], Shape, double[], Shape)","u":"dispatch(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseElemMult","l":"dispatch(double[], Shape, double[], Shape)","u":"dispatch(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher","l":"dispatch(double[], Shape, double[], Shape)","u":"dispatch(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"dispatch(Matrix)","u":"dispatch(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"dispatch(Matrix, CMatrix)","u":"dispatch(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"dispatch(Matrix, CVector)","u":"dispatch(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher","l":"dispatch(Matrix, Matrix)","u":"dispatch(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"dispatch(Matrix, Vector)","u":"dispatch(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"dispatchHermitian(CMatrix)","u":"dispatchHermitian(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseVectorOperations","l":"dispatchOuter(Vector, Vector)","u":"dispatchOuter(org.flag4j.arrays.dense.Vector,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"dispatchTensor(CTensor, int, int)","u":"dispatchTensor(org.flag4j.arrays.dense.CTensor,int,int)"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"dispatchTensor(double[], Shape, int[])","u":"dispatchTensor(double[],org.flag4j.core.Shape,int[])"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"dispatchTensor(Tensor, int, int)","u":"dispatchTensor(org.flag4j.arrays.dense.Tensor,int,int)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"dispatchTranspose(CMatrix, CMatrix)","u":"dispatchTranspose(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"dispatchTranspose(CMatrix, Matrix)","u":"dispatchTranspose(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"dispatchTranspose(Matrix, CMatrix)","u":"dispatchTranspose(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher","l":"dispatchTranspose(Matrix, Matrix)","u":"dispatchTranspose(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"div(CNumber)","u":"div(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"div(CNumber)","u":"div(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"div(CNumber)","u":"div(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"div(CNumber)","u":"div(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"div(CNumber)","u":"div(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"div(CNumber)","u":"div(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"div(CNumber)","u":"div(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"div(CNumber)","u":"div(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"div(double)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"div(double)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"div(double)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"div(double)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"div(double)"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"div(double)"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"div(double)"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"div(double)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTensorDot","l":"dot(CTensor, CTensor)","u":"dot(org.flag4j.arrays.dense.CTensor,org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"doubleImaginaryValue()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"doubleValue()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"E"},{"p":"org.flag4j.linalg","c":"Eigen","l":"Eigen()","u":"%3Cinit%3E()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"elemDiv(CMatrix)","u":"elemDiv(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"elemDiv(CMatrix)","u":"elemDiv(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"elemDiv(CMatrix)","u":"elemDiv(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"elemDiv(CMatrix)","u":"elemDiv(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"elemDiv(CMatrix)","u":"elemDiv(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"elemDiv(CMatrix)","u":"elemDiv(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseElemDiv","l":"elemDiv(CNumber[], Shape, CNumber[], Shape)","u":"elemDiv(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseElemDiv","l":"elemDiv(CNumber[], Shape, double[], Shape)","u":"elemDiv(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixOperations","l":"elemDiv(CooCMatrix, CMatrix)","u":"elemDiv(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"elemDiv(CooCMatrix, Matrix)","u":"elemDiv(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseVectorOperations","l":"elemDiv(CooCVector, CVector)","u":"elemDiv(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"elemDiv(CooCVector, Vector)","u":"elemDiv(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"elemDiv(CooMatrix, CMatrix)","u":"elemDiv(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixOperations","l":"elemDiv(CooMatrix, Matrix)","u":"elemDiv(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"elemDiv(CooVector, CVector)","u":"elemDiv(org.flag4j.arrays.sparse.CooVector,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseVectorOperations","l":"elemDiv(CooVector, Vector)","u":"elemDiv(org.flag4j.arrays.sparse.CooVector,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"elemDiv(CTensor)","u":"elemDiv(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"elemDiv(CTensor)","u":"elemDiv(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"elemDiv(CTensor)","u":"elemDiv(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"elemDiv(CTensor)","u":"elemDiv(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"elemDiv(CVector)","u":"elemDiv(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"elemDiv(CVector)","u":"elemDiv(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"elemDiv(CVector)","u":"elemDiv(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"elemDiv(CVector)","u":"elemDiv(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseElemDiv","l":"elemDiv(double[], Shape, CNumber[], Shape)","u":"elemDiv(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseElemDiv","l":"elemDiv(double[], Shape, double[], Shape)","u":"elemDiv(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"elemDiv(Matrix)","u":"elemDiv(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"elemDiv(Matrix)","u":"elemDiv(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"elemDiv(Matrix)","u":"elemDiv(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"elemDiv(Matrix)","u":"elemDiv(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"elemDiv(Matrix)","u":"elemDiv(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"elemDiv(Matrix)","u":"elemDiv(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"elemDiv(T)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"elemDiv(T)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"elemDiv(Tensor)","u":"elemDiv(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"elemDiv(Tensor)","u":"elemDiv(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"elemDiv(Tensor)","u":"elemDiv(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"elemDiv(Tensor)","u":"elemDiv(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"elemDiv(U)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"elemDiv(Vector)","u":"elemDiv(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"elemDiv(Vector)","u":"elemDiv(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"elemDiv(Vector)","u":"elemDiv(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"elemDiv(Vector)","u":"elemDiv(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseElemDiv","l":"elemDivConcurrent(CNumber[], Shape, CNumber[], Shape)","u":"elemDivConcurrent(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseElemDiv","l":"elemDivConcurrent(CNumber[], Shape, double[], Shape)","u":"elemDivConcurrent(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseElemDiv","l":"elemDivConcurrent(double[], Shape, CNumber[], Shape)","u":"elemDivConcurrent(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseElemDiv","l":"elemDivConcurrent(double[], Shape, double[], Shape)","u":"elemDivConcurrent(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"elemMult(CMatrix)","u":"elemMult(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"elemMult(CMatrix)","u":"elemMult(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"elemMult(CMatrix)","u":"elemMult(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"elemMult(CMatrix)","u":"elemMult(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"elemMult(CMatrix)","u":"elemMult(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"elemMult(CMatrix)","u":"elemMult(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixOperations","l":"elemMult(CMatrix, CooCMatrix)","u":"elemMult(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"elemMult(CMatrix, CooMatrix)","u":"elemMult(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseElemMult","l":"elemMult(CNumber[], Shape, CNumber[], Shape)","u":"elemMult(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseElemMult","l":"elemMult(CNumber[], Shape, double[], Shape)","u":"elemMult(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"elemMult(CooCMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"elemMult(CooCMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"elemMult(CooCMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"elemMult(CooCMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"elemMult(CooCMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"elemMult(CooCMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"elemMult(CooCMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixOperations","l":"elemMult(CooCMatrix, CooCMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixOperations","l":"elemMult(CooCMatrix, CooMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"elemMult(CooCTensor)","u":"elemMult(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"elemMult(CooCTensor)","u":"elemMult(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"elemMult(CooCTensor)","u":"elemMult(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"elemMult(CooCTensor)","u":"elemMult(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"elemMult(CooCTensor)","u":"elemMult(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"elemMult(CooCVector)","u":"elemMult(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"elemMult(CooCVector)","u":"elemMult(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"elemMult(CooCVector)","u":"elemMult(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"elemMult(CooCVector)","u":"elemMult(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"elemMult(CooCVector)","u":"elemMult(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseVectorOperations","l":"elemMult(CooCVector, CooCVector)","u":"elemMult(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseVectorOperations","l":"elemMult(CooCVector, CooVector)","u":"elemMult(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"elemMult(CooMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"elemMult(CooMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"elemMult(CooMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"elemMult(CooMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"elemMult(CooMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"elemMult(CooMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"elemMult(CooMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixOperations","l":"elemMult(CooMatrix, CooMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"elemMult(CooTensor)","u":"elemMult(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"elemMult(CooTensor)","u":"elemMult(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"elemMult(CooTensor)","u":"elemMult(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"elemMult(CooTensor)","u":"elemMult(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"elemMult(CooTensor)","u":"elemMult(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"elemMult(CooVector)","u":"elemMult(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"elemMult(CooVector)","u":"elemMult(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"elemMult(CooVector)","u":"elemMult(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"elemMult(CooVector)","u":"elemMult(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"elemMult(CooVector)","u":"elemMult(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseVectorOperations","l":"elemMult(CooVector, CooVector)","u":"elemMult(org.flag4j.arrays.sparse.CooVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"elemMult(CsrCMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"elemMult(CsrCMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.operations.sparse.csr.real_complex","c":"RealComplexCsrOperations","l":"elemMult(CsrCMatrix, CsrMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"elemMult(CsrMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"elemMult(CsrMatrix)","u":"elemMult(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"elemMult(CTensor)","u":"elemMult(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"elemMult(CTensor)","u":"elemMult(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"elemMult(CTensor)","u":"elemMult(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"elemMult(CTensor)","u":"elemMult(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseOperations","l":"elemMult(CTensor, CooCTensor)","u":"elemMult(org.flag4j.arrays.dense.CTensor,org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseOperations","l":"elemMult(CTensor, CooTensor)","u":"elemMult(org.flag4j.arrays.dense.CTensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"elemMult(CVector)","u":"elemMult(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"elemMult(CVector)","u":"elemMult(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"elemMult(CVector)","u":"elemMult(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"elemMult(CVector)","u":"elemMult(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseVectorOperations","l":"elemMult(CVector, CooCVector)","u":"elemMult(org.flag4j.arrays.dense.CVector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"elemMult(CVector, CooVector)","u":"elemMult(org.flag4j.arrays.dense.CVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseElemMult","l":"elemMult(double[], Shape, double[], Shape)","u":"elemMult(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"elemMult(Matrix)","u":"elemMult(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"elemMult(Matrix)","u":"elemMult(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"elemMult(Matrix)","u":"elemMult(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"elemMult(Matrix)","u":"elemMult(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"elemMult(Matrix)","u":"elemMult(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"elemMult(Matrix)","u":"elemMult(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"elemMult(Matrix, CooCMatrix)","u":"elemMult(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixOperations","l":"elemMult(Matrix, CooMatrix)","u":"elemMult(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"elemMult(T)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"elemMult(T)"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"elemMult(T)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"elemMult(Tensor)","u":"elemMult(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"elemMult(Tensor)","u":"elemMult(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"elemMult(Tensor)","u":"elemMult(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"elemMult(Tensor)","u":"elemMult(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseOperations","l":"elemMult(Tensor, CooCTensor)","u":"elemMult(org.flag4j.arrays.dense.Tensor,org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseTensorOperations","l":"elemMult(Tensor, CooTensor)","u":"elemMult(org.flag4j.arrays.dense.Tensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"elemMult(Vector)","u":"elemMult(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"elemMult(Vector)","u":"elemMult(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"elemMult(Vector)","u":"elemMult(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"elemMult(Vector)","u":"elemMult(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"elemMult(Vector, CooCVector)","u":"elemMult(org.flag4j.arrays.dense.Vector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseVectorOperations","l":"elemMult(Vector, CooVector)","u":"elemMult(org.flag4j.arrays.dense.Vector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseElemMult","l":"elemMultConcurrent(CNumber[], Shape, CNumber[], Shape)","u":"elemMultConcurrent(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseElemMult","l":"elemMultConcurrent(CNumber[], Shape, double[], Shape)","u":"elemMultConcurrent(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseElemMult","l":"elemMultConcurrent(double[], Shape, double[], Shape)","u":"elemMultConcurrent(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.linalg.decompositions.chol","c":"Cholesky","l":"enforceHermitian"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ForwardSolver","l":"enforceLower"},{"p":"org.flag4j.linalg.decompositions.hess","c":"SymmHess","l":"enforceSymmetric"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"BackSolver","l":"enforceTriU"},{"p":"org.flag4j.operations.common","c":"TensorEquals","l":"ensureTensor(TensorBase)","u":"ensureTensor(org.flag4j.core.TensorBase)"},{"p":"org.flag4j.core","c":"TensorBase","l":"entries"},{"p":"org.flag4j.core","c":"Shape","l":"entriesIndex(int...)"},{"p":"org.flag4j.util","c":"Flag4jConstants","l":"EPS_F32"},{"p":"org.flag4j.util","c":"Flag4jConstants","l":"EPS_F64"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"EQ_SHAPE_MISMATCH_ERR"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"equals(double)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"equals(double[], CNumber[])","u":"equals(double[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.arrays.sparse","c":"SymmTriDiagonal","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.core","c":"Shape","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.core","c":"TensorComparisonsMixin","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"equalShapeErrMsg(Shape, Shape)","u":"equalShapeErrMsg(org.flag4j.core.Shape,org.flag4j.core.Shape)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"equalsNumber(Number)","u":"equalsNumber(java.lang.Number)"},{"p":"org.flag4j.complex_numbers","c":"CNumberLexer","l":"ERR_MSG"},{"p":"org.flag4j.linalg","c":"RowEchelon","l":"erref(CMatrix)","u":"erref(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"RowEchelon","l":"erref(Matrix)","u":"erref(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.complex_numbers","c":"CNumberLexer","l":"error(String)","u":"error(java.lang.String)"},{"p":"org.flag4j.complex_numbers","c":"CNumberToken","l":"errorCheck(String)","u":"errorCheck(java.lang.String)"},{"p":"org.flag4j.complex_numbers","c":"CNumberToken","l":"errorCheck(String, String)","u":"errorCheck(java.lang.String,java.lang.String)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"ErrorMessages()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactSolver","l":"ExactSolver(LU, LinearSolver, LinearSolver)","u":"%3Cinit%3E(org.flag4j.linalg.decompositions.lu.LU,org.flag4j.linalg.solvers.LinearSolver,org.flag4j.linalg.solvers.LinearSolver)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactTensorSolver","l":"ExactTensorSolver(LinearSolver)","u":"%3Cinit%3E(org.flag4j.linalg.solvers.LinearSolver)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"exceptionalThreshold"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"exp(CNumber)","u":"exp(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"exp(double)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"extend(int, int)","u":"extend(int,int)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"extend(int, int)","u":"extend(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"extend(int, int)","u":"extend(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"extend(int, int)","u":"extend(int,int)"},{"p":"org.flag4j.core","c":"VectorManipulationsMixin","l":"extend(int, int)","u":"extend(int,int)"},{"p":"org.flag4j.linalg.decompositions.svd","c":"ComplexSVD","l":"extractNormalizedCols(CMatrix, int)","u":"extractNormalizedCols(org.flag4j.arrays.dense.CMatrix,int)"},{"p":"org.flag4j.linalg.decompositions.svd","c":"RealSVD","l":"extractNormalizedCols(Matrix, int)","u":"extractNormalizedCols(org.flag4j.arrays.dense.Matrix,int)"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"extractNormalizedCols(T, int)","u":"extractNormalizedCols(T,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"fib(CMatrix)","u":"fib(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"fib(CMatrix)","u":"fib(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"fib(CMatrix)","u":"fib(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"fib(CMatrix)","u":"fib(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"fib(CMatrix)","u":"fib(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"fib(CMatrix)","u":"fib(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"fib(CMatrix)","u":"fib(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"fib(CooCMatrix)","u":"fib(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"fib(CooCMatrix)","u":"fib(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"fib(CooCMatrix)","u":"fib(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"fib(CooCMatrix)","u":"fib(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"fib(CooCMatrix)","u":"fib(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"fib(CooCMatrix)","u":"fib(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"fib(CooCMatrix)","u":"fib(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"fib(CooMatrix)","u":"fib(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"fib(CooMatrix)","u":"fib(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"fib(CooMatrix)","u":"fib(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"fib(CooMatrix)","u":"fib(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"fib(CooMatrix)","u":"fib(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"fib(CooMatrix)","u":"fib(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"fib(CooMatrix)","u":"fib(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"fib(CsrCMatrix)","u":"fib(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"fib(CsrMatrix)","u":"fib(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"fib(Matrix)","u":"fib(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"fib(Matrix)","u":"fib(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"fib(Matrix)","u":"fib(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"fib(Matrix)","u":"fib(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"fib(Matrix)","u":"fib(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"fib(Matrix)","u":"fib(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"fib(Matrix)","u":"fib(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.io","c":"TensorInputStream","l":"fileIn"},{"p":"org.flag4j.io","c":"TensorOutputStream","l":"fileOut"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"fill(CNumber[], double)","u":"fill(org.flag4j.complex_numbers.CNumber[],double)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"fill(CNumber[], double, int, int)","u":"fill(org.flag4j.complex_numbers.CNumber[],double,int,int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"fill(CNumber[], int, int, CNumber)","u":"fill(org.flag4j.complex_numbers.CNumber[],int,int,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"fill(CNumber[][], CNumber)","u":"fill(org.flag4j.complex_numbers.CNumber[][],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"fill(double[][], double)","u":"fill(double[][],double)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"filledArray(int, int)","u":"filledArray(int,int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"fillZeros(CNumber[][])","u":"fillZeros(org.flag4j.complex_numbers.CNumber[][])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"findFirstLast(int[], int)","u":"findFirstLast(int[],int)"},{"p":"org.flag4j.linalg.decompositions.hess","c":"SymmHess","l":"findMaxAndInit(int)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"ComplexUnitaryDecomposition","l":"findMaxAndInit(int)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"RealUnitaryDecomposition","l":"findMaxAndInit(int)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"findMaxAndInit(int)"},{"p":"org.flag4j.util","c":"Flag4jConstants","l":"Flag4jConstants()","u":"%3Cinit%3E()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"flatten()"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"flatten()"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"flatten()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"flatten()"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"flatten()"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"flatten()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"flatten()"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"flatten()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"flatten()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"flatten()"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"flatten()"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"flatten()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"flatten()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"flatten()"},{"p":"org.flag4j.core","c":"TensorManipulationsMixin","l":"flatten()"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"flatten(CNumber[][])","u":"flatten(org.flag4j.complex_numbers.CNumber[][])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"flatten(double[][])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"flatten(int)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"flatten(int)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"flatten(int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"flatten(int)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"flatten(int)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"flatten(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"flatten(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"flatten(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"flatten(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"flatten(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"flatten(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"flatten(int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"flatten(int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"flatten(int)"},{"p":"org.flag4j.core","c":"TensorManipulationsMixin","l":"flatten(int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"flatten(int[][])"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"floatImaginaryValue()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"floatValue()"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactSolver","l":"forwardSolver"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ForwardSolver","l":"ForwardSolver(boolean, boolean)","u":"%3Cinit%3E(boolean,boolean)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"fromColSwaps(int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"fromDense(CMatrix)","u":"fromDense(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"fromDense(CTensor)","u":"fromDense(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"fromDense(CVector)","u":"fromDense(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"fromDense(Matrix)","u":"fromDense(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"fromDense(Tensor)","u":"fromDense(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"fromDense(Vector)","u":"fromDense(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"fromDoubleList(List)","u":"fromDoubleList(java.util.List)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"fromIntegerList(List)","u":"fromIntegerList(java.util.List)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"fromIntegerList(List, int[])","u":"fromIntegerList(java.util.List,int[])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"fromList(List, T[])","u":"fromList(java.util.List,T[])"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"fromPolar(double, double)","u":"fromPolar(double,double)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU.Pivoting","l":"FULL"},{"p":"org.flag4j.linalg.decompositions.lu","c":"ComplexLU","l":"fullPivot()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"fullPivot()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"RealLU","l":"fullPivot()"},{"p":"org.flag4j.operations.common","c":"TensorEquals","l":"generalEquals(CooCTensor, SparseTensorBase)","u":"generalEquals(org.flag4j.arrays.sparse.CooCTensor,org.flag4j.core.sparse_base.SparseTensorBase)"},{"p":"org.flag4j.operations.common","c":"TensorEquals","l":"generalEquals(CooTensor, SparseTensorBase)","u":"generalEquals(org.flag4j.arrays.sparse.CooTensor,org.flag4j.core.sparse_base.SparseTensorBase)"},{"p":"org.flag4j.operations.common","c":"TensorEquals","l":"generalEquals(CTensor, DenseTensorBase)","u":"generalEquals(org.flag4j.arrays.dense.CTensor,org.flag4j.core.dense_base.DenseTensorBase)"},{"p":"org.flag4j.operations.common","c":"TensorEquals","l":"generalEquals(CTensor, SparseTensorBase)","u":"generalEquals(org.flag4j.arrays.dense.CTensor,org.flag4j.core.sparse_base.SparseTensorBase)"},{"p":"org.flag4j.operations.common","c":"TensorEquals","l":"generalEquals(DenseTensorBase, SparseTensorBase)","u":"generalEquals(org.flag4j.core.dense_base.DenseTensorBase,org.flag4j.core.sparse_base.SparseTensorBase)"},{"p":"org.flag4j.operations.common","c":"TensorEquals","l":"generalEquals(Tensor, DenseTensorBase)","u":"generalEquals(org.flag4j.arrays.dense.Tensor,org.flag4j.core.dense_base.DenseTensorBase)"},{"p":"org.flag4j.operations.common","c":"TensorEquals","l":"generalEquals(Tensor, SparseTensorBase)","u":"generalEquals(org.flag4j.arrays.dense.Tensor,org.flag4j.core.sparse_base.SparseTensorBase)"},{"p":"org.flag4j.operations.common","c":"TensorEquals","l":"generalEquals(TensorBase, TensorBase)","u":"generalEquals(org.flag4j.core.TensorBase,org.flag4j.core.TensorBase)"},{"p":"org.flag4j.rng","c":"RandomArray","l":"genNormalComplexArray(int)"},{"p":"org.flag4j.rng","c":"RandomArray","l":"genNormalComplexArray(int, double, double)","u":"genNormalComplexArray(int,double,double)"},{"p":"org.flag4j.rng","c":"RandomArray","l":"genNormalRealArray(int)"},{"p":"org.flag4j.rng","c":"RandomArray","l":"genNormalRealArray(int, double, double)","u":"genNormalRealArray(int,double,double)"},{"p":"org.flag4j.rng","c":"RandomArray","l":"genRandomRows(int, int, int, int)","u":"genRandomRows(int,int,int,int)"},{"p":"org.flag4j.rng","c":"RandomArray","l":"genUniformComplexArray(int)"},{"p":"org.flag4j.rng","c":"RandomArray","l":"genUniformComplexArray(int, double, double)","u":"genUniformComplexArray(int,double,double)"},{"p":"org.flag4j.rng","c":"RandomArray","l":"genUniformRealArray(int)"},{"p":"org.flag4j.rng","c":"RandomArray","l":"genUniformRealArray(int, double, double)","u":"genUniformRealArray(int,double,double)"},{"p":"org.flag4j.rng","c":"RandomArray","l":"genUniformRealIntArray(int)"},{"p":"org.flag4j.rng","c":"RandomArray","l":"genUniformRealIntArray(int, int, int)","u":"genUniformRealIntArray(int,int,int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"geRandomTrilMatrix(int, int, int)","u":"geRandomTrilMatrix(int,int,int)"},{"p":"org.flag4j.core","c":"Shape","l":"get(int)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU.Pivoting","l":"get(int)"},{"p":"org.flag4j.arrays.sparse","c":"SymmTriDiagonal","l":"get(int, int)","u":"get(int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"get(int...)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"get(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"get(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"get(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"get(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"get(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"get(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"get(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"get(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"get(int...)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"get(int...)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"get(int...)"},{"p":"org.flag4j.core","c":"MatrixMixin","l":"get(int...)"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"get(int...)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"get2x2EigenValues(CMatrix)","u":"get2x2EigenValues(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"get2x2EigenValues(CNumber, CNumber, CNumber, CNumber)","u":"get2x2EigenValues(org.flag4j.complex_numbers.CNumber,org.flag4j.complex_numbers.CNumber,org.flag4j.complex_numbers.CNumber,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"get2x2EigenValues(double, double, double, double)","u":"get2x2EigenValues(double,double,double,double)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"get2x2EigenValues(Matrix)","u":"get2x2EigenValues(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.transformations","c":"Givens","l":"get2x2Rotator(CNumber, CNumber)","u":"get2x2Rotator(org.flag4j.complex_numbers.CNumber,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.linalg.transformations","c":"Givens","l":"get2x2Rotator(CVector)","u":"get2x2Rotator(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.linalg.transformations","c":"Givens","l":"get2x2Rotator(double, double)","u":"get2x2Rotator(double,double)"},{"p":"org.flag4j.linalg.transformations","c":"Givens","l":"get2x2Rotator(Vector)","u":"get2x2Rotator(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getArrayLengthsMismatchErr(int...)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getAxisErr(int)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getAxisErr(int, int...)","u":"getAxisErr(int,int...)"},{"p":"org.flag4j.concurrency","c":"Configurations","l":"getBlockSize()"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"getCol(CooCMatrix, int)","u":"getCol(org.flag4j.arrays.sparse.CooCMatrix,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"getCol(CooCMatrix, int, int, int)","u":"getCol(org.flag4j.arrays.sparse.CooCMatrix,int,int,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"getCol(CooMatrix, int)","u":"getCol(org.flag4j.arrays.sparse.CooMatrix,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"getCol(CooMatrix, int, int, int)","u":"getCol(org.flag4j.arrays.sparse.CooMatrix,int,int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"getCol(int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"getCol(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"getCol(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"getCol(int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"getCol(int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"getCol(int)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"getCol(int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"getCol(int, int, int)","u":"getCol(int,int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"getCol(int, int, int)","u":"getCol(int,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"getCol(int, int, int)","u":"getCol(int,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"getCol(int, int, int)","u":"getCol(int,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"getCol(int, int, int)","u":"getCol(int,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"getCol(int, int, int)","u":"getCol(int,int,int)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"getCol(int, int, int)","u":"getCol(int,int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"getColAsVector(int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"getColAsVector(int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"getColBelow(int, int)","u":"getColBelow(int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"getColBelow(int, int)","u":"getColBelow(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"getColBelow(int, int)","u":"getColBelow(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"getColBelow(int, int)","u":"getColBelow(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"getColBelow(int, int)","u":"getColBelow(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"getColBelow(int, int)","u":"getColBelow(int,int)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"getColBelow(int, int)","u":"getColBelow(int,int)"},{"p":"org.flag4j.linalg","c":"SubSpace","l":"getColSpace(CMatrix)","u":"getColSpace(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"SubSpace","l":"getColSpace(Matrix)","u":"getColSpace(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.complex_numbers","c":"CNumberLexer","l":"getContent()"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexBackSolver","l":"getDet()"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexForwardSolver","l":"getDet()"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealBackSolver","l":"getDet()"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealForwardSolver","l":"getDet()"},{"p":"org.flag4j.complex_numbers","c":"CNumberToken","l":"getDetails()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"getDiag()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"getDiag()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"getDiag()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"getDiag()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"getDiag()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"getDiag()"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"getDiag()"},{"p":"org.flag4j.core","c":"Shape","l":"getDims()"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenPairs(CMatrix)","u":"getEigenPairs(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenPairs(Matrix)","u":"getEigenPairs(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenValues(CMatrix)","u":"getEigenValues(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenValues(CMatrix, ComplexSchur)","u":"getEigenValues(org.flag4j.arrays.dense.CMatrix,org.flag4j.linalg.decompositions.schur.ComplexSchur)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenValues(CMatrix, long)","u":"getEigenValues(org.flag4j.arrays.dense.CMatrix,long)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenValues(CMatrix, long, int)","u":"getEigenValues(org.flag4j.arrays.dense.CMatrix,long,int)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenValues(Matrix)","u":"getEigenValues(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenValues(Matrix, long)","u":"getEigenValues(org.flag4j.arrays.dense.Matrix,long)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenValues(Matrix, long, int)","u":"getEigenValues(org.flag4j.arrays.dense.Matrix,long,int)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenValues(Matrix, RealSchur)","u":"getEigenValues(org.flag4j.arrays.dense.Matrix,org.flag4j.linalg.decompositions.schur.RealSchur)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenVectors(CMatrix)","u":"getEigenVectors(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenVectors(CMatrix, ComplexSchur)","u":"getEigenVectors(org.flag4j.arrays.dense.CMatrix,org.flag4j.linalg.decompositions.schur.ComplexSchur)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenVectors(CMatrix, long)","u":"getEigenVectors(org.flag4j.arrays.dense.CMatrix,long)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenVectors(CMatrix, long, int)","u":"getEigenVectors(org.flag4j.arrays.dense.CMatrix,long,int)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenVectors(Matrix)","u":"getEigenVectors(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenVectors(Matrix, long)","u":"getEigenVectors(org.flag4j.arrays.dense.Matrix,long)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenVectors(Matrix, long, int)","u":"getEigenVectors(org.flag4j.arrays.dense.Matrix,long,int)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenVectors(Matrix, RealSchur)","u":"getEigenVectors(org.flag4j.arrays.dense.Matrix,org.flag4j.linalg.decompositions.schur.RealSchur)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenVectorsTriu(CMatrix)","u":"getEigenVectorsTriu(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"getEigenVectorsTriu(Matrix)","u":"getEigenVectorsTriu(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"getEmpty(int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"getEmpty(int, int)","u":"getEmpty(int,int)"},{"p":"org.flag4j.core","c":"TensorBase","l":"getEntries()"},{"p":"org.flag4j.linalg.transformations","c":"Givens","l":"getGeneralRotator(int, int, int, double)","u":"getGeneralRotator(int,int,int,double)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getGreaterEqErr(double, double)","u":"getGreaterEqErr(double,double)"},{"p":"org.flag4j.linalg.decompositions.hess","c":"ComplexHess","l":"getH()"},{"p":"org.flag4j.linalg.decompositions.hess","c":"RealHess","l":"getH()"},{"p":"org.flag4j.linalg.decompositions.hess","c":"SymmHess","l":"getH()"},{"p":"org.flag4j.core","c":"Shape","l":"getIndices(int)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getIndicesRankErr(int, int)","u":"getIndicesRankErr(int,int)"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher","l":"getInstance()"},{"p":"org.flag4j.linalg","c":"TensorInvert","l":"getInvShape(Shape, int)","u":"getInvShape(org.flag4j.core.Shape,int)"},{"p":"org.flag4j.complex_numbers","c":"CNumberToken","l":"getKind()"},{"p":"org.flag4j.linalg.decompositions.chol","c":"Cholesky","l":"getL()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"ComplexLU","l":"getL()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"getL()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"RealLU","l":"getL()"},{"p":"org.flag4j.linalg","c":"SubSpace","l":"getLeftNullSpace(CMatrix)","u":"getLeftNullSpace(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"SubSpace","l":"getLeftNullSpace(Matrix)","u":"getLeftNullSpace(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getLessEqErr(double, double)","u":"getLessEqErr(double,double)"},{"p":"org.flag4j.linalg.decompositions.chol","c":"Cholesky","l":"getLH()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"getLU()"},{"p":"org.flag4j.io","c":"PrintOptions","l":"getMaxColumns()"},{"p":"org.flag4j.io","c":"PrintOptions","l":"getMaxRows()"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getNamedGreaterEqErr(double, double, String)","u":"getNamedGreaterEqErr(double,double,java.lang.String)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getNamedLessEqErr(BigInteger, double, String)","u":"getNamedLessEqErr(java.math.BigInteger,double,java.lang.String)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getNamedLessEqErr(double, double, String)","u":"getNamedLessEqErr(double,double,java.lang.String)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getNegValueErr(double)"},{"p":"org.flag4j.core","c":"Shape","l":"getNextIndices(int[], int)","u":"getNextIndices(int[],int)"},{"p":"org.flag4j.complex_numbers","c":"CNumberLexer","l":"getNextSymbol()"},{"p":"org.flag4j.complex_numbers","c":"CNumberLexer","l":"getNextToken()"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getNonPosErr(double)"},{"p":"org.flag4j.linalg","c":"SubSpace","l":"getNullSpace(CMatrix)","u":"getNullSpace(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"SubSpace","l":"getNullSpace(Matrix)","u":"getNullSpace(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"getNumColSwaps()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"getNumRowSwaps()"},{"p":"org.flag4j.concurrency","c":"Configurations","l":"getNumThreads()"},{"p":"org.flag4j.linalg.transformations","c":"Projection","l":"getOrthogonal(double, double, double, double)","u":"getOrthogonal(double,double,double,double)"},{"p":"org.flag4j.linalg.transformations","c":"Projection","l":"getOrthogonal(double, double, double, double, double, double)","u":"getOrthogonal(double,double,double,double,double,double)"},{"p":"org.flag4j.linalg.transformations","c":"Projection","l":"getOrthogonal2D(double, double)","u":"getOrthogonal2D(double,double)"},{"p":"org.flag4j.linalg.transformations","c":"Projection","l":"getOrthogonal2D(double, double, double, double)","u":"getOrthogonal2D(double,double,double,double)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactTensorSolver","l":"getOutputShape(T, T, int)","u":"getOutputShape(T,T,int)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"getP()"},{"p":"org.flag4j.io","c":"PrintOptions","l":"getPadding()"},{"p":"org.flag4j.concurrency","c":"ThreadManager","l":"getParallelismLevel()"},{"p":"org.flag4j.linalg.transformations","c":"Projection","l":"getPerspective(double, double, double, double)","u":"getPerspective(double,double,double,double)"},{"p":"org.flag4j.linalg.transformations","c":"Projection","l":"getPerspective(double, double, double, double, double)","u":"getPerspective(double,double,double,double,double)"},{"p":"org.flag4j.io","c":"PrintOptions","l":"getPrecision()"},{"p":"org.flag4j.linalg","c":"TensorInvert","l":"getProduct(int[], int)","u":"getProduct(int[],int)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"getQ()"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"ComplexUnitaryDecomposition","l":"getQ()"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"RealUnitaryDecomposition","l":"getQ()"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"getQ()"},{"p":"org.flag4j.linalg.decompositions.qr","c":"ComplexQR","l":"getR()"},{"p":"org.flag4j.linalg.decompositions.qr","c":"RealQR","l":"getR()"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getRangeErr(double, double, double, String)","u":"getRangeErr(double,double,double,java.lang.String)"},{"p":"org.flag4j.core","c":"Shape","l":"getRank()"},{"p":"org.flag4j.core","c":"TensorBase","l":"getRank()"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"getRank()"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"getRank()"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"getRatio(Shape)","u":"getRatio(org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher","l":"getRatio(Shape)","u":"getRatio(org.flag4j.core.Shape)"},{"p":"org.flag4j.linalg.transformations","c":"Householder","l":"getReflector(CVector)","u":"getReflector(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.linalg.transformations","c":"Householder","l":"getReflector(Vector)","u":"getReflector(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.linalg.transformations","c":"Givens","l":"getRotator(CVector, int)","u":"getRotator(org.flag4j.arrays.dense.CVector,int)"},{"p":"org.flag4j.linalg.transformations","c":"Givens","l":"getRotator(double[], int)","u":"getRotator(double[],int)"},{"p":"org.flag4j.linalg.transformations","c":"Givens","l":"getRotator(Vector, int)","u":"getRotator(org.flag4j.arrays.dense.Vector,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"getRow(CooCMatrix, int)","u":"getRow(org.flag4j.arrays.sparse.CooCMatrix,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"getRow(CooCMatrix, int, int, int)","u":"getRow(org.flag4j.arrays.sparse.CooCMatrix,int,int,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"getRow(CooMatrix, int)","u":"getRow(org.flag4j.arrays.sparse.CooMatrix,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"getRow(CooMatrix, int, int, int)","u":"getRow(org.flag4j.arrays.sparse.CooMatrix,int,int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"getRow(int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"getRow(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"getRow(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"getRow(int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"getRow(int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"getRow(int)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"getRow(int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"getRowAfter(int, int)","u":"getRowAfter(int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"getRowAfter(int, int)","u":"getRowAfter(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"getRowAfter(int, int)","u":"getRowAfter(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"getRowAfter(int, int)","u":"getRowAfter(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"getRowAfter(int, int)","u":"getRowAfter(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"getRowAfter(int, int)","u":"getRowAfter(int,int)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"getRowAfter(int, int)","u":"getRowAfter(int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"getRowAsVector(int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"getRowAsVector(int)"},{"p":"org.flag4j.linalg","c":"SubSpace","l":"getRowSpace(CMatrix)","u":"getRowSpace(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"SubSpace","l":"getRowSpace(Matrix)","u":"getRowSpace(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"getS()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"getSelf()"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"getSelf()"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"getSelf()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"getSelf()"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"getSelf()"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"getSelf()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"getSelf()"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"getSelf()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"getSelf()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"getSelf()"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"getSelf()"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"getSelf()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"getSelf()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"getSelf()"},{"p":"org.flag4j.core","c":"TensorBase","l":"getSelf()"},{"p":"org.flag4j.core","c":"TensorBase","l":"getShape()"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getShapeBroadcastErr(Shape, Shape)","u":"getShapeBroadcastErr(org.flag4j.core.Shape,org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"getSlice(CooCMatrix, int, int, int, int)","u":"getSlice(org.flag4j.arrays.sparse.CooCMatrix,int,int,int,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"getSlice(CooMatrix, int, int, int, int)","u":"getSlice(org.flag4j.arrays.sparse.CooMatrix,int,int,int,int)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrOperations","l":"getSlice(CsrCMatrix, int, int, int, int)","u":"getSlice(org.flag4j.arrays.sparse.CsrCMatrix,int,int,int,int)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrOperations","l":"getSlice(CsrMatrix, int, int, int, int)","u":"getSlice(org.flag4j.arrays.sparse.CsrMatrix,int,int,int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"getSlice(int, int, int, int)","u":"getSlice(int,int,int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"getSlice(int, int, int, int)","u":"getSlice(int,int,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"getSlice(int, int, int, int)","u":"getSlice(int,int,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"getSlice(int, int, int, int)","u":"getSlice(int,int,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"getSlice(int, int, int, int)","u":"getSlice(int,int,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"getSlice(int, int, int, int)","u":"getSlice(int,int,int,int)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"getSlice(int, int, int, int)","u":"getSlice(int,int,int,int)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getSquareShapeErr(Shape)","u":"getSquareShapeErr(org.flag4j.core.Shape)"},{"p":"org.flag4j.core","c":"Shape","l":"getStrides()"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"getT()"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getTotalEntriesErr()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"ComplexLU","l":"getU()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"getU()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"RealLU","l":"getU()"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"getU()"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"getU()"},{"p":"org.flag4j.linalg.decompositions.hess","c":"ComplexHess","l":"getUpper()"},{"p":"org.flag4j.linalg.decompositions.hess","c":"RealHess","l":"getUpper()"},{"p":"org.flag4j.linalg.decompositions.qr","c":"ComplexQR","l":"getUpper()"},{"p":"org.flag4j.linalg.decompositions.qr","c":"RealQR","l":"getUpper()"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"getUpper()"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"ComplexUnitaryDecomposition","l":"getUpper(CMatrix)","u":"getUpper(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"RealUnitaryDecomposition","l":"getUpper(Matrix)","u":"getUpper(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"getUpper(T)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"getUtilityClassErrMsg()"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"getV()"},{"p":"org.flag4j.linalg.transformations","c":"Householder","l":"getVector(Vector)","u":"getVector(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.linalg.transformations","c":"Givens","l":"Givens()","u":"%3Cinit%3E()"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"GREATER_EQ_ERR"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"H()"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"H()"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"H()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"H()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"H()"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"H()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"H()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"H()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"H()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"H()"},{"p":"org.flag4j.core","c":"ComplexMatrixMixin","l":"H()"},{"p":"org.flag4j.core","c":"ComplexTensorMixin","l":"H()"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"H()"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"H(int, int)","u":"H(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"H(int, int)","u":"H(int,int)"},{"p":"org.flag4j.core","c":"ComplexTensorExclusiveMixin","l":"H(int, int)","u":"H(int,int)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"H(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"H(int...)"},{"p":"org.flag4j.core","c":"ComplexTensorExclusiveMixin","l":"H(int...)"},{"p":"org.flag4j.linalg","c":"SubSpace","l":"hasEqualSpan(CMatrix, CMatrix)","u":"hasEqualSpan(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"SubSpace","l":"hasEqualSpan(Matrix, Matrix)","u":"hasEqualSpan(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"hashCode()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"hashCode()"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"hashCode()"},{"p":"org.flag4j.arrays.sparse","c":"SymmTriDiagonal","l":"hashCode()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"hashCode()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"hashCode()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"hashCode()"},{"p":"org.flag4j.core","c":"Shape","l":"hashCode()"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"HERMATION_BLOCKED_THRESHOLD"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"hermTranspose()"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"hermTranspose()"},{"p":"org.flag4j.core","c":"ComplexTensorMixin","l":"hermTranspose()"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrOperations","l":"hermTranspose(CsrCMatrix)","u":"hermTranspose(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.core","c":"ComplexTensorExclusiveMixin","l":"hermTranspose(int, int)","u":"hermTranspose(int,int)"},{"p":"org.flag4j.core","c":"ComplexTensorExclusiveMixin","l":"hermTranspose(int...)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"hess"},{"p":"org.flag4j.linalg.transformations","c":"Householder","l":"Householder()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"householderVector"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"householderVector"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"I(int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"I(int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"I(int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"I(int, int)","u":"I(int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"I(int, int)","u":"I(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"I(int, int)","u":"I(int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"I(Shape)","u":"I(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"I(Shape)","u":"I(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"I(Shape)","u":"I(org.flag4j.core.Shape)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"im"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"im()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"IMAGINARY_UNIT"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"indexOf(int[], int)","u":"indexOf(int[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"indices"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"indices"},{"p":"org.flag4j.core.sparse_base","c":"SparseTensorBase","l":"indices"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"INDICES_RANK_ERR"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"infNorm(CMatrix)","u":"infNorm(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"infNorm(ComplexDenseTensorBase)","u":"infNorm(org.flag4j.core.dense_base.ComplexDenseTensorBase)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"infNorm(CooCVector)","u":"infNorm(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"infNorm(CooVector)","u":"infNorm(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"infNorm(CTensor)","u":"infNorm(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"infNorm(CVector)","u":"infNorm(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"infNorm(Matrix)","u":"infNorm(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"infNorm(RealDenseTensorBase)","u":"infNorm(org.flag4j.core.dense_base.RealDenseTensorBase)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"infNorm(Vector)","u":"infNorm(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.util.exceptions","c":"SingularMatrixException","l":"INFO"},{"p":"org.flag4j.linalg.decompositions.lu","c":"ComplexLU","l":"initLU(CMatrix)","u":"initLU(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"RealLU","l":"initLU(Matrix)","u":"initLU(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"initLU(T)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ComplexExactTensorSolver","l":"initMatrix(CTensor, int)","u":"initMatrix(org.flag4j.arrays.dense.CTensor,int)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactTensorSolver","l":"initMatrix(T, int)","u":"initMatrix(T,int)"},{"p":"org.flag4j.linalg.solvers.exact","c":"RealExactTensorSolver","l":"initMatrix(Tensor, int)","u":"initMatrix(org.flag4j.arrays.dense.Tensor,int)"},{"p":"org.flag4j.linalg.decompositions.hess","c":"ComplexHess","l":"initQ()"},{"p":"org.flag4j.linalg.decompositions.hess","c":"RealHess","l":"initQ()"},{"p":"org.flag4j.linalg.decompositions.qr","c":"ComplexQR","l":"initQ()"},{"p":"org.flag4j.linalg.decompositions.qr","c":"RealQR","l":"initQ()"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"initQ()"},{"p":"org.flag4j.linalg.decompositions.svd","c":"ComplexSVD","l":"initUV(Shape, int)","u":"initUV(org.flag4j.core.Shape,int)"},{"p":"org.flag4j.linalg.decompositions.svd","c":"RealSVD","l":"initUV(Shape, int)","u":"initUV(org.flag4j.core.Shape,int)"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"initUV(Shape, int)","u":"initUV(org.flag4j.core.Shape,int)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ComplexExactTensorSolver","l":"initVector(CTensor)","u":"initVector(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactTensorSolver","l":"initVector(T)"},{"p":"org.flag4j.linalg.solvers.exact","c":"RealExactTensorSolver","l":"initVector(Tensor)","u":"initVector(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"ComplexUnitaryDecomposition","l":"initWorkArrays(int)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"RealUnitaryDecomposition","l":"initWorkArrays(int)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"initWorkArrays(int)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"inner(CNumber[], double[], int[], int)","u":"inner(org.flag4j.complex_numbers.CNumber[],double[],int[],int)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"inner(CooCVector)","u":"inner(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"inner(CooCVector)","u":"inner(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"inner(CooCVector)","u":"inner(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"inner(CooCVector)","u":"inner(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"inner(CooCVector)","u":"inner(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseVectorOperations","l":"inner(CooCVector, CooCVector)","u":"inner(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseVectorOperations","l":"inner(CooCVector, CooVector)","u":"inner(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"inner(CooVector)","u":"inner(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"inner(CooVector)","u":"inner(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"inner(CooVector)","u":"inner(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"inner(CooVector)","u":"inner(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"inner(CooVector)","u":"inner(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseVectorOperations","l":"inner(CooVector, CooCVector)","u":"inner(org.flag4j.arrays.sparse.CooVector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseVectorOperations","l":"inner(CooVector, CooVector)","u":"inner(org.flag4j.arrays.sparse.CooVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"inner(CVector)","u":"inner(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"inner(CVector)","u":"inner(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"inner(CVector)","u":"inner(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"inner(CVector)","u":"inner(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"inner(CVector)","u":"inner(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"inner(double[], CNumber[], int[], int)","u":"inner(double[],org.flag4j.complex_numbers.CNumber[],int[],int)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseVectorOperations","l":"inner(double[], double[], int[], int)","u":"inner(double[],double[],int[],int)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"inner(double[], int[], int, CNumber[])","u":"inner(double[],int[],int,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"inner(Vector)","u":"inner(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"inner(Vector)","u":"inner(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"inner(Vector)","u":"inner(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"inner(Vector)","u":"inner(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"inner(Vector)","u":"inner(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseVectorOperations","l":"innerProduct(CNumber[], CNumber[])","u":"innerProduct(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseVectorOperations","l":"innerProduct(CNumber[], CNumber[], int[], int)","u":"innerProduct(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber[],int[],int)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseVectorOperations","l":"innerProduct(CNumber[], double[])","u":"innerProduct(org.flag4j.complex_numbers.CNumber[],double[])"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseVectorOperations","l":"innerProduct(CNumber[], int[], int, CNumber[])","u":"innerProduct(org.flag4j.complex_numbers.CNumber[],int[],int,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseVectorOperations","l":"innerProduct(double[], CNumber[])","u":"innerProduct(double[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseVectorOperations","l":"innerProduct(double[], double[])","u":"innerProduct(double[],double[])"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"innerSelf()"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"inSlice(int, int, int, int, int, int)","u":"inSlice(int,int,int,int,int,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"inSlice(int, int, int, int, int, int)","u":"inSlice(int,int,int,int,int,int)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"intImaginaryValue()"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"intRange(int, int)","u":"intRange(int,int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"intRange(int, int, int)","u":"intRange(int,int,int)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"intValue()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"INV_IMAGINARY_UNIT"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"inv()"},{"p":"org.flag4j.linalg","c":"Invert","l":"inv(CMatrix)","u":"inv(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"TensorInvert","l":"inv(CTensor, int)","u":"inv(org.flag4j.arrays.dense.CTensor,int)"},{"p":"org.flag4j.linalg","c":"Invert","l":"inv(Matrix)","u":"inv(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg","c":"TensorInvert","l":"inv(Tensor, int)","u":"inv(org.flag4j.arrays.dense.Tensor,int)"},{"p":"org.flag4j.linalg","c":"Invert","l":"invDiag(CMatrix)","u":"invDiag(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"Invert","l":"invDiag(Matrix)","u":"invDiag(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.decompositions.svd","c":"ComplexSVD","l":"invDirectSum(CMatrix)","u":"invDirectSum(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CMatrix, CMatrix)","u":"invDirectSum(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CMatrix, CooCMatrix)","u":"invDirectSum(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CMatrix, CooMatrix)","u":"invDirectSum(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CMatrix, Matrix)","u":"invDirectSum(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CooCMatrix, CMatrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CooCMatrix, CooCMatrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CooCMatrix, CooMatrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CooCMatrix, Matrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CooMatrix, CMatrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CooMatrix, CooCMatrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CooMatrix, CooMatrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CooMatrix, Matrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CsrCMatrix, CMatrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CsrCMatrix, CooCMatrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CsrCMatrix, CooMatrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CsrCMatrix, CsrMatrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CsrCMatrix, Matrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CsrMatrix, CMatrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CsrMatrix, CooCMatrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CsrMatrix, CooMatrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CsrMatrix, CsrMatrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(CsrMatrix, Matrix)","u":"invDirectSum(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.decompositions.svd","c":"RealSVD","l":"invDirectSum(Matrix)","u":"invDirectSum(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(Matrix, CMatrix)","u":"invDirectSum(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(Matrix, CooCMatrix)","u":"invDirectSum(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(Matrix, CooMatrix)","u":"invDirectSum(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.linalg.ops","c":"DirectSum","l":"invDirectSum(Matrix, Matrix)","u":"invDirectSum(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"invDirectSum(T)"},{"p":"org.flag4j.linalg","c":"Invert","l":"Invert()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg","c":"Invert","l":"invHermPosDef(CMatrix)","u":"invHermPosDef(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"Invert","l":"invHermPosDef(CMatrix, boolean)","u":"invHermPosDef(org.flag4j.arrays.dense.CMatrix,boolean)"},{"p":"org.flag4j.linalg","c":"Invert","l":"invSymPosDef(Matrix)","u":"invSymPosDef(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg","c":"Invert","l":"invSymPosDef(Matrix, boolean)","u":"invSymPosDef(org.flag4j.arrays.dense.Matrix,boolean)"},{"p":"org.flag4j.linalg","c":"Invert","l":"invTriL(CMatrix)","u":"invTriL(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"Invert","l":"invTriL(Matrix)","u":"invTriL(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg","c":"Invert","l":"invTriU(CMatrix)","u":"invTriU(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"Invert","l":"invTriU(Matrix)","u":"invTriU(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"isAntiHermitian()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"isAntiHermitian()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"isAntiHermitian()"},{"p":"org.flag4j.core","c":"ComplexMatrixMixin","l":"isAntiHermitian()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseProperties","l":"isAntiHermitian(CNumber[], Shape)","u":"isAntiHermitian(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixProperties","l":"isAntiHermitian(CooCMatrix)","u":"isAntiHermitian(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrProperties","l":"isAntiHermitian(CsrCMatrix)","u":"isAntiHermitian(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"isAntiSymmetric()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"isAntiSymmetric()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"isAntiSymmetric()"},{"p":"org.flag4j.core","c":"RealMatrixMixin","l":"isAntiSymmetric()"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixProperties","l":"isAntiSymmetric(CooMatrix)","u":"isAntiSymmetric(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrProperties","l":"isAntiSymmetric(CsrMatrix)","u":"isAntiSymmetric(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseProperties","l":"isAntiSymmetric(double[], Shape)","u":"isAntiSymmetric(double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"isCloseToI()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"isCloseToI()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseProperties","l":"isCloseToIdentity(CMatrix)","u":"isCloseToIdentity(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseProperties","l":"isCloseToIdentity(Matrix)","u":"isCloseToIdentity(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"isComplex()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"isComplex()"},{"p":"org.flag4j.core","c":"ComplexMatrixMixin","l":"isComplex()"},{"p":"org.flag4j.core","c":"ComplexTensorMixin","l":"isComplex()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"isComplex()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"isComplex()"},{"p":"org.flag4j.operations.common.complex","c":"ComplexProperties","l":"isComplex(CNumber[])","u":"isComplex(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"isDiag()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"isDiag()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"isDiag()"},{"p":"org.flag4j.core","c":"MatrixPropertiesMixin","l":"isDiag()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"isDouble()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"isFinite()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"isFullRank()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"isFullRank()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"isFullRank()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"isFullRank()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"isFullRank()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"isFullRank()"},{"p":"org.flag4j.core","c":"MatrixPropertiesMixin","l":"isFullRank()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"isHermitian()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"isHermitian()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"isHermitian()"},{"p":"org.flag4j.core","c":"ComplexMatrixMixin","l":"isHermitian()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseProperties","l":"isHermitian(CNumber[], Shape)","u":"isHermitian(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixProperties","l":"isHermitian(CooCMatrix)","u":"isHermitian(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrProperties","l":"isHermitian(CsrCMatrix)","u":"isHermitian(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"isI()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"isI()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"isI()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"isI()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"isI()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"isI()"},{"p":"org.flag4j.core","c":"MatrixComparisonsMixin","l":"isI()"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixProperties","l":"isIdentity(CooCMatrix)","u":"isIdentity(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixProperties","l":"isIdentity(CooMatrix)","u":"isIdentity(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrProperties","l":"isIdentity(CsrCMatrix)","u":"isIdentity(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrProperties","l":"isIdentity(CsrMatrix)","u":"isIdentity(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseProperties","l":"isIdentity(Matrix)","u":"isIdentity(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"isImaginary()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"isInfinite()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"isInt()"},{"p":"org.flag4j.linalg","c":"Invert","l":"isInv(CMatrix, CMatrix)","u":"isInv(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"Invert","l":"isInv(Matrix, Matrix)","u":"isInv(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"isInvertible()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"isInvertible()"},{"p":"org.flag4j.core","c":"MatrixPropertiesMixin","l":"isInvertible()"},{"p":"org.flag4j.complex_numbers","c":"CNumberToken","l":"isKind(String)","u":"isKind(java.lang.String)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"isNaN()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"isNeg()"},{"p":"org.flag4j.core","c":"RealTensorMixin","l":"isNeg()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"isNeg()"},{"p":"org.flag4j.operations.common.real","c":"RealProperties","l":"isNeg(double[])"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"isOnes()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"isOnes()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"isOnes()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"isOnes()"},{"p":"org.flag4j.core","c":"TensorComparisonsMixin","l":"isOnes()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseProperties","l":"isOnes(CNumber[])","u":"isOnes(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseProperties","l":"isOnes(double[])"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"isOrthogonal()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"isOrthogonal()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"isOrthogonal()"},{"p":"org.flag4j.core","c":"RealMatrixMixin","l":"isOrthogonal()"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"isParallel(Vector)","u":"isParallel(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"isParallel(Vector)","u":"isParallel(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"isParallel(Vector)","u":"isParallel(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"isParallel(Vector)","u":"isParallel(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"isParallel(Vector)","u":"isParallel(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"isPerp(Vector)","u":"isPerp(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"isPerp(Vector)","u":"isPerp(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"isPerp(Vector)","u":"isPerp(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"isPerp(Vector)","u":"isPerp(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"isPerp(Vector)","u":"isPerp(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"isPos()"},{"p":"org.flag4j.core","c":"RealTensorMixin","l":"isPos()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"isPos()"},{"p":"org.flag4j.operations.common.real","c":"RealProperties","l":"isPos(double[])"},{"p":"org.flag4j.linalg","c":"PositiveDefiniteness","l":"isPosDef(CMatrix)","u":"isPosDef(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"PositiveDefiniteness","l":"isPosDef(Matrix)","u":"isPosDef(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg","c":"PositiveDefiniteness","l":"isPosSemiDef(CMatrix)","u":"isPosSemiDef(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"PositiveDefiniteness","l":"isPosSemiDef(Matrix)","u":"isPosSemiDef(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"isReal()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"isReal()"},{"p":"org.flag4j.core","c":"ComplexMatrixMixin","l":"isReal()"},{"p":"org.flag4j.core","c":"ComplexTensorMixin","l":"isReal()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"isReal()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"isReal()"},{"p":"org.flag4j.operations.common.complex","c":"ComplexProperties","l":"isReal(CNumber[])","u":"isReal(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"isSingular()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"isSingular()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"isSingular()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"isSingular()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"isSingular()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"isSingular()"},{"p":"org.flag4j.core","c":"MatrixPropertiesMixin","l":"isSingular()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"isSquare()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"isSquare()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"isSquare()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"isSquare()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"isSquare()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"isSquare()"},{"p":"org.flag4j.core","c":"MatrixPropertiesMixin","l":"isSquare()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"isSymmetric()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"isSymmetric()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"isSymmetric()"},{"p":"org.flag4j.core","c":"RealMatrixMixin","l":"isSymmetric()"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixProperties","l":"isSymmetric(CooMatrix)","u":"isSymmetric(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrProperties","l":"isSymmetric(CsrMatrix)","u":"isSymmetric(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseProperties","l":"isSymmetric(double[], Shape)","u":"isSymmetric(double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.linalg","c":"PositiveDefiniteness","l":"isSymmPosDef(CMatrix)","u":"isSymmPosDef(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"PositiveDefiniteness","l":"isSymmPosDef(Matrix)","u":"isSymmPosDef(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"isTri()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"isTri()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"isTri()"},{"p":"org.flag4j.core","c":"MatrixPropertiesMixin","l":"isTri()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"isTriL()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"isTriL()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"isTriL()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"isTriL()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"isTriL()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"isTriL()"},{"p":"org.flag4j.core","c":"MatrixPropertiesMixin","l":"isTriL()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"isTriU()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"isTriU()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"isTriU()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"isTriU()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"isTriU()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"isTriU()"},{"p":"org.flag4j.core","c":"MatrixPropertiesMixin","l":"isTriU()"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ForwardSolver","l":"isUnit"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"isUnitary()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"isUnitary()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"isUnitary()"},{"p":"org.flag4j.core","c":"ComplexMatrixMixin","l":"isUnitary()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"isVector()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"isVector()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"isVector()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"isVector()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"isVector()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"isVector()"},{"p":"org.flag4j.core","c":"MatrixPropertiesMixin","l":"isVector()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"isZeros()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"isZeros()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"isZeros()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"isZeros()"},{"p":"org.flag4j.core","c":"TensorComparisonsMixin","l":"isZeros()"},{"p":"org.flag4j.operations.common.complex","c":"ComplexProperties","l":"isZeros(CNumber[])","u":"isZeros(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.common.real","c":"RealProperties","l":"isZeros(double[])"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"join(CooCVector)","u":"join(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"join(CooCVector)","u":"join(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"join(CooCVector)","u":"join(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"join(CooCVector)","u":"join(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"join(CooCVector)","u":"join(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"join(CooVector)","u":"join(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"join(CooVector)","u":"join(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"join(CooVector)","u":"join(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"join(CooVector)","u":"join(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"join(CooVector)","u":"join(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"join(CVector)","u":"join(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"join(CVector)","u":"join(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"join(CVector)","u":"join(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"join(CVector)","u":"join(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"join(CVector)","u":"join(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"join(double[], double[])","u":"join(double[],double[])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"join(int[], int[])","u":"join(int[],int[])"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"join(Vector)","u":"join(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"join(Vector)","u":"join(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"join(Vector)","u":"join(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"join(Vector)","u":"join(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"join(Vector)","u":"join(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"keys"},{"p":"org.flag4j.complex_numbers","c":"CNumberToken","l":"kind"},{"p":"org.flag4j.linalg.decompositions.chol","c":"Cholesky","l":"L"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"leftMult(CMatrix)","u":"leftMult(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"leftMult(CVector)","u":"leftMult(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"leftMult(Matrix)","u":"leftMult(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"leftMult(Vector)","u":"leftMult(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.linalg.transformations","c":"Givens","l":"leftMult2x2Rotator(CMatrix, CMatrix, int, CNumber[])","u":"leftMult2x2Rotator(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CMatrix,int,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.linalg.transformations","c":"Givens","l":"leftMult2x2Rotator(Matrix, Matrix, int, double[])","u":"leftMult2x2Rotator(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Matrix,int,double[])"},{"p":"org.flag4j.linalg.transformations","c":"Householder","l":"leftMultReflector(CMatrix, CNumber[], CNumber, int, int, int, CNumber[])","u":"leftMultReflector(org.flag4j.arrays.dense.CMatrix,org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber,int,int,int,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.linalg.transformations","c":"Householder","l":"leftMultReflector(CMatrix, CVector, CNumber, int, int, int)","u":"leftMultReflector(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CVector,org.flag4j.complex_numbers.CNumber,int,int,int)"},{"p":"org.flag4j.linalg.transformations","c":"Householder","l":"leftMultReflector(Matrix, double[], double, int, int, int, double[])","u":"leftMultReflector(org.flag4j.arrays.dense.Matrix,double[],double,int,int,int,double[])"},{"p":"org.flag4j.linalg.transformations","c":"Householder","l":"leftMultReflector(Matrix, Vector, double, int, int, int)","u":"leftMultReflector(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Vector,double,int,int,int)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"length()"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"length()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"length()"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"length()"},{"p":"org.flag4j.core","c":"VectorPropertiesMixin","l":"length()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"length(CNumber)","u":"length(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"LESS_EQ_ERR"},{"p":"org.flag4j.util.exceptions","c":"LinearAlgebraException","l":"LinearAlgebraException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"ln(CNumber)","u":"ln(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"ln(double)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"log(CNumber)","u":"log(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"log(CNumber, CNumber)","u":"log(org.flag4j.complex_numbers.CNumber,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"log(double)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"log(double, CNumber)","u":"log(double,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"log(double, double)","u":"log(double,double)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"longImaginaryValue()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"longValue()"},{"p":"org.flag4j.linalg.transformations","c":"View","l":"lookAt(Vector, Vector, Vector)","u":"lookAt(org.flag4j.arrays.dense.Vector,org.flag4j.arrays.dense.Vector,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.linalg.solvers.lstsq","c":"LstsqSolver","l":"LstsqSolver(UnitaryDecomposition, LinearSolver)","u":"%3Cinit%3E(org.flag4j.linalg.decompositions.unitary.UnitaryDecomposition,org.flag4j.linalg.solvers.LinearSolver)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactSolver","l":"lu"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"LU"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactSolver","l":"LU"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"LU(int)","u":"%3Cinit%3E(int)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"LU(int, double)","u":"%3Cinit%3E(int,double)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"mag()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"magSquared()"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultiplication","l":"main(String[])","u":"main(java.lang.String[])"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"makeComplexTensor(Shape, CNumber[])","u":"makeComplexTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"makeComplexTensor(Shape, CNumber[])","u":"makeComplexTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"makeComplexTensor(Shape, CNumber[])","u":"makeComplexTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"makeComplexTensor(Shape, CNumber[])","u":"makeComplexTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"makeComplexTensor(Shape, CNumber[], int[][])","u":"makeComplexTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"makeComplexTensor(Shape, CNumber[], int[][])","u":"makeComplexTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"makeComplexTensor(Shape, CNumber[], int[][])","u":"makeComplexTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"makeComplexTensor(Shape, CNumber[], int[][])","u":"makeComplexTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[][])"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"makeComplexTensor(Shape, CNumber[], int[][])","u":"makeComplexTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[][])"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"makeComplexTensor(Shape, double[])","u":"makeComplexTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"makeComplexTensor(Shape, double[])","u":"makeComplexTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"makeComplexTensor(Shape, double[])","u":"makeComplexTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"makeComplexTensor(Shape, double[])","u":"makeComplexTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"makeDenseTensor(Shape, double[])","u":"makeDenseTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"makeDenseTensor(Shape, double[])","u":"makeDenseTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"makeDenseTensor(Shape, double[])","u":"makeDenseTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"makeDenseTensor(Shape, double[])","u":"makeDenseTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"makeDenseTensor(Shape, double[])","u":"makeDenseTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.linalg.decompositions.svd","c":"ComplexSVD","l":"makeEigenPairs(CMatrix, double[])","u":"makeEigenPairs(org.flag4j.arrays.dense.CMatrix,double[])"},{"p":"org.flag4j.linalg.decompositions.svd","c":"RealSVD","l":"makeEigenPairs(Matrix, double[])","u":"makeEigenPairs(org.flag4j.arrays.dense.Matrix,double[])"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"makeEigenPairs(T, double[])","u":"makeEigenPairs(T,double[])"},{"p":"org.flag4j.linalg.decompositions.svd","c":"ComplexSVD","l":"makeEigenVals(CMatrix, double[])","u":"makeEigenVals(org.flag4j.arrays.dense.CMatrix,double[])"},{"p":"org.flag4j.linalg.decompositions.svd","c":"RealSVD","l":"makeEigenVals(Matrix, double[])","u":"makeEigenVals(org.flag4j.arrays.dense.Matrix,double[])"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"makeEigenVals(T, double[])","u":"makeEigenVals(T,double[])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"makeRealTensor(Shape, double[])","u":"makeRealTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"makeRealTensor(Shape, double[])","u":"makeRealTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"makeRealTensor(Shape, double[])","u":"makeRealTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"makeRealTensor(Shape, double[])","u":"makeRealTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"makeRealTensor(Shape, double[], int[][])","u":"makeRealTensor(org.flag4j.core.Shape,double[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"makeRealTensor(Shape, double[], int[][])","u":"makeRealTensor(org.flag4j.core.Shape,double[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"makeRealTensor(Shape, double[], int[][])","u":"makeRealTensor(org.flag4j.core.Shape,double[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"makeRealTensor(Shape, double[], int[][])","u":"makeRealTensor(org.flag4j.core.Shape,double[],int[][])"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"makeRealTensor(Shape, double[], int[][])","u":"makeRealTensor(org.flag4j.core.Shape,double[],int[][])"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"makeReflector(int, CNumber, CNumber)","u":"makeReflector(int,org.flag4j.complex_numbers.CNumber,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"makeReflector(int, CNumber, CNumber, CNumber)","u":"makeReflector(int,org.flag4j.complex_numbers.CNumber,org.flag4j.complex_numbers.CNumber,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"makeReflector(int, double, double)","u":"makeReflector(int,double,double)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"makeReflector(int, double, double, double)","u":"makeReflector(int,double,double,double)"},{"p":"org.flag4j.core","c":"Shape","l":"makeStridesIfNull()"},{"p":"org.flag4j.linalg","c":"Eigen","l":"makeSystem(CMatrix, int, CMatrix, CVector)","u":"makeSystem(org.flag4j.arrays.dense.CMatrix,int,org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.linalg","c":"Eigen","l":"makeSystem(Matrix, int, Matrix, Vector)","u":"makeSystem(org.flag4j.arrays.dense.Matrix,int,org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"makeTensor(Shape, CNumber...)","u":"makeTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber...)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"makeTensor(Shape, CNumber[])","u":"makeTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"makeTensor(Shape, CNumber[])","u":"makeTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"makeTensor(Shape, CNumber[], int[][])","u":"makeTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"makeTensor(Shape, CNumber[], int[][])","u":"makeTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"makeTensor(Shape, CNumber[], int[][])","u":"makeTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"makeTensor(Shape, CNumber[], int[][])","u":"makeTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[][])"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"makeTensor(Shape, CNumber[], int[][])","u":"makeTensor(org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[][])"},{"p":"org.flag4j.core.dense_base","c":"DenseTensorBase","l":"makeTensor(Shape, D)","u":"makeTensor(org.flag4j.core.Shape,D)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"makeTensor(Shape, double[])","u":"makeTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"makeTensor(Shape, double[])","u":"makeTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"makeTensor(Shape, double[])","u":"makeTensor(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"makeTensor(Shape, double[], int[][])","u":"makeTensor(org.flag4j.core.Shape,double[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"makeTensor(Shape, double[], int[][])","u":"makeTensor(org.flag4j.core.Shape,double[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"makeTensor(Shape, double[], int[][])","u":"makeTensor(org.flag4j.core.Shape,double[],int[][])"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"makeTensor(Shape, double[], int[][])","u":"makeTensor(org.flag4j.core.Shape,double[],int[][])"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"makeTensor(Shape, double[], int[][])","u":"makeTensor(org.flag4j.core.Shape,double[],int[][])"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"MAT_MULT_DIM_MISMATCH_ERR"},{"p":"org.flag4j.complex_numbers","c":"CNumberToken","l":"matches(String, String)","u":"matches(java.lang.String,java.lang.String)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"matMultShapeErrMsg(Shape, Shape)","u":"matMultShapeErrMsg(org.flag4j.core.Shape,org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"Matrix(double[][])","u":"%3Cinit%3E(double[][])"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"Matrix(Double[][])","u":"%3Cinit%3E(java.lang.Double[][])"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"Matrix(int)","u":"%3Cinit%3E(int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"Matrix(int, double)","u":"%3Cinit%3E(int,double)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"Matrix(int, int)","u":"%3Cinit%3E(int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"Matrix(int, int, double)","u":"%3Cinit%3E(int,int,double)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"Matrix(int, int, double[])","u":"%3Cinit%3E(int,int,double[])"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"Matrix(int[][])","u":"%3Cinit%3E(int[][])"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"Matrix(Integer[][])","u":"%3Cinit%3E(java.lang.Integer[][])"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"Matrix(Matrix)","u":"%3Cinit%3E(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"Matrix(Shape)","u":"%3Cinit%3E(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"Matrix(Shape, double)","u":"%3Cinit%3E(org.flag4j.core.Shape,double)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"Matrix(Shape, double[])","u":"%3Cinit%3E(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseElementSearch","l":"matrixBinarySearch(CooCMatrix, int, int)","u":"matrixBinarySearch(org.flag4j.arrays.sparse.CooCMatrix,int,int)"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseElementSearch","l":"matrixBinarySearch(int[], int[], int, int)","u":"matrixBinarySearch(int[],int[],int,int)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseEquals","l":"matrixEquals(CMatrix, CMatrix)","u":"matrixEquals(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseEquals","l":"matrixEquals(CMatrix, CooCMatrix)","u":"matrixEquals(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseEquals","l":"matrixEquals(CMatrix, CooMatrix)","u":"matrixEquals(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseEquals","l":"matrixEquals(CooCMatrix, CooCMatrix)","u":"matrixEquals(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseEquals","l":"matrixEquals(CooMatrix, CooCMatrix)","u":"matrixEquals(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseEquals","l":"matrixEquals(CooMatrix, CooMatrix)","u":"matrixEquals(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseEquals","l":"matrixEquals(Matrix, CMatrix)","u":"matrixEquals(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseEquals","l":"matrixEquals(Matrix, CooCMatrix)","u":"matrixEquals(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseEquals","l":"matrixEquals(Matrix, CooMatrix)","u":"matrixEquals(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseEquals","l":"matrixEquals(Matrix, Matrix)","u":"matrixEquals(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseElementSearch","l":"matrixFindRowStartEnd(CooCMatrix, int)","u":"matrixFindRowStartEnd(org.flag4j.arrays.sparse.CooCMatrix,int)"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseElementSearch","l":"matrixFindRowStartEnd(int[], int)","u":"matrixFindRowStartEnd(int[],int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"matrixGet(CooCMatrix, int, int)","u":"matrixGet(org.flag4j.arrays.sparse.CooCMatrix,int,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"matrixGet(CooMatrix, int, int)","u":"matrixGet(org.flag4j.arrays.sparse.CooMatrix,int,int)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"matrixInfNorm(CNumber[], Shape)","u":"matrixInfNorm(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"matrixInfNorm(double[], Shape)","u":"matrixInfNorm(double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"matrixMaxNorm(CNumber[])","u":"matrixMaxNorm(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"matrixMaxNorm(double[])"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"MatrixMultiplyDispatcher()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"matrixNormL2(CNumber[], Shape)","u":"matrixNormL2(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseNorms","l":"matrixNormL2(CooCMatrix)","u":"matrixNormL2(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseNorms","l":"matrixNormL2(CooMatrix)","u":"matrixNormL2(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"matrixNormLp(CNumber[], Shape, double)","u":"matrixNormLp(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseNorms","l":"matrixNormLp(CooCMatrix, double)","u":"matrixNormLp(org.flag4j.arrays.sparse.CooCMatrix,double)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseNorms","l":"matrixNormLp(CooMatrix, double)","u":"matrixNormLp(org.flag4j.arrays.sparse.CooMatrix,double)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"matrixNormLpq(CNumber[], Shape, double, double)","u":"matrixNormLpq(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double,double)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseNorms","l":"matrixNormLpq(CooCMatrix, double, double)","u":"matrixNormLpq(org.flag4j.arrays.sparse.CooCMatrix,double,double)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseNorms","l":"matrixNormLpq(CooMatrix, double, double)","u":"matrixNormLpq(org.flag4j.arrays.sparse.CooMatrix,double,double)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"matrixNormLpq(CsrMatrix, double, double)","u":"matrixNormLpq(org.flag4j.arrays.sparse.CsrMatrix,double,double)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"matrixNormLpq(double[], Shape, double, double)","u":"matrixNormLpq(double[],org.flag4j.core.Shape,double,double)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"MatrixNorms()","u":"%3Cinit%3E()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"matrixRank()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"matrixRank()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"matrixRank()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"matrixRank()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"matrixRank()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"matrixRank()"},{"p":"org.flag4j.core","c":"MatrixPropertiesMixin","l":"matrixRank()"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"matrixSet(CooCMatrix, int, int, CNumber)","u":"matrixSet(org.flag4j.arrays.sparse.CooCMatrix,int,int,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"matrixSet(CooMatrix, int, int, double)","u":"matrixSet(org.flag4j.arrays.sparse.CooMatrix,int,int,double)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactTensorSolver","l":"matrixSolver"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"MAX_REAL"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"max()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"max()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"max()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"max()"},{"p":"org.flag4j.core","c":"TensorPropertiesMixin","l":"max()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"max(CNumber...)","u":"max(org.flag4j.complex_numbers.CNumber...)"},{"p":"org.flag4j.operations.common.real","c":"AggregateReal","l":"max(double[])"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"maxAbs()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"maxAbs()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"maxAbs()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"maxAbs()"},{"p":"org.flag4j.core","c":"TensorPropertiesMixin","l":"maxAbs()"},{"p":"org.flag4j.core","c":"VectorPropertiesMixin","l":"maxAbs()"},{"p":"org.flag4j.operations.common.complex","c":"AggregateComplex","l":"maxAbs(CNumber...)","u":"maxAbs(org.flag4j.complex_numbers.CNumber...)"},{"p":"org.flag4j.operations.common.real","c":"AggregateReal","l":"maxAbs(double...)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"ComplexLU","l":"maxColIndex(int)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"RealLU","l":"maxColIndex(int)"},{"p":"org.flag4j.io","c":"PrintOptions","l":"maxColumns"},{"p":"org.flag4j.linalg.decompositions.lu","c":"ComplexLU","l":"maxIndex(int)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"RealLU","l":"maxIndex(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"maxIterations"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"maxIterationsFactor"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"maxNorm(CMatrix)","u":"maxNorm(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"maxNorm(CooCMatrix)","u":"maxNorm(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"maxNorm(CooMatrix)","u":"maxNorm(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"maxNorm(CsrMatrix)","u":"maxNorm(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"maxNorm(Matrix)","u":"maxNorm(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"maxRe(CNumber...)","u":"maxRe(org.flag4j.complex_numbers.CNumber...)"},{"p":"org.flag4j.io","c":"PrintOptions","l":"maxRows"},{"p":"org.flag4j.complex_numbers","c":"CNumberUtils","l":"maxStringLength(CNumber[])","u":"maxStringLength(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.complex_numbers","c":"CNumberUtils","l":"maxStringLength(CNumber[], int)","u":"maxStringLength(org.flag4j.complex_numbers.CNumber[],int)"},{"p":"org.flag4j.complex_numbers","c":"CNumberUtils","l":"maxStringLength(double[])"},{"p":"org.flag4j.complex_numbers","c":"CNumberUtils","l":"maxStringLength(double[], int)","u":"maxStringLength(double[],int)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"MIN_REAL"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"MIN_REAL_NORMAL"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"min()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"min()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"min()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"min()"},{"p":"org.flag4j.core","c":"TensorPropertiesMixin","l":"min()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"min(CNumber...)","u":"min(org.flag4j.complex_numbers.CNumber...)"},{"p":"org.flag4j.operations.common.real","c":"AggregateReal","l":"min(double[])"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"minAbs()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"minAbs()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"minAbs()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"minAbs()"},{"p":"org.flag4j.core","c":"TensorPropertiesMixin","l":"minAbs()"},{"p":"org.flag4j.operations.common.complex","c":"AggregateComplex","l":"minAbs(CNumber[])","u":"minAbs(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.common.real","c":"AggregateReal","l":"minAbs(double[])"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"minAxisSize"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"minRe(CNumber...)","u":"minRe(org.flag4j.complex_numbers.CNumber...)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrManipulations","l":"moveAndShiftLeft(CsrCMatrix, int, int, int)","u":"moveAndShiftLeft(org.flag4j.arrays.sparse.CsrCMatrix,int,int,int)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrManipulations","l":"moveAndShiftLeft(CsrMatrix, int, int, int)","u":"moveAndShiftLeft(org.flag4j.arrays.sparse.CsrMatrix,int,int,int)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrManipulations","l":"moveAndShiftRight(CsrCMatrix, int, int, int)","u":"moveAndShiftRight(org.flag4j.arrays.sparse.CsrCMatrix,int,int,int)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrManipulations","l":"moveAndShiftRight(CsrMatrix, int, int, int)","u":"moveAndShiftRight(org.flag4j.arrays.sparse.CsrMatrix,int,int,int)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"MULT_T"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"MULT_T"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"MULT_T_BLOCKED"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"MULT_T_BLOCKED"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"MULT_T_BLOCKED_CONCURRENT"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"MULT_T_BLOCKED_CONCURRENT"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"MULT_T_CONCURRENT"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"MULT_T_CONCURRENT"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"mult(CMatrix)","u":"mult(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"mult(CMatrix)","u":"mult(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"mult(CMatrix)","u":"mult(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"mult(CMatrix)","u":"mult(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"mult(CMatrix)","u":"mult(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"mult(CMatrix)","u":"mult(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"mult(CMatrix)","u":"mult(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"mult(CNumber)","u":"mult(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"mult(CNumber)","u":"mult(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"mult(CNumber)","u":"mult(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"mult(CNumber)","u":"mult(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"mult(CNumber)","u":"mult(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"mult(CNumber)","u":"mult(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"mult(CNumber)","u":"mult(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"mult(CooCMatrix)","u":"mult(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"mult(CooCMatrix)","u":"mult(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"mult(CooCMatrix)","u":"mult(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"mult(CooCMatrix)","u":"mult(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"mult(CooCMatrix)","u":"mult(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"mult(CooCMatrix)","u":"mult(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"mult(CooCMatrix)","u":"mult(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"mult(CooCVector)","u":"mult(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"mult(CooCVector)","u":"mult(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"mult(CooCVector)","u":"mult(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"mult(CooCVector)","u":"mult(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"mult(CooCVector)","u":"mult(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"mult(CooCVector)","u":"mult(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"mult(CooCVector)","u":"mult(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"mult(CooMatrix)","u":"mult(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"mult(CooMatrix)","u":"mult(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"mult(CooMatrix)","u":"mult(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"mult(CooMatrix)","u":"mult(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"mult(CooMatrix)","u":"mult(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"mult(CooMatrix)","u":"mult(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"mult(CooMatrix)","u":"mult(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"mult(CooVector)","u":"mult(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"mult(CooVector)","u":"mult(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"mult(CooVector)","u":"mult(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"mult(CooVector)","u":"mult(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"mult(CooVector)","u":"mult(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"mult(CooVector)","u":"mult(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"mult(CooVector)","u":"mult(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"mult(CsrCMatrix)","u":"mult(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"mult(CsrCMatrix)","u":"mult(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"mult(CsrCMatrix)","u":"mult(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"mult(CsrCMatrix)","u":"mult(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"mult(CsrCMatrix)","u":"mult(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"mult(CsrCMatrix)","u":"mult(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"mult(CsrCMatrix)","u":"mult(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"mult(CsrMatrix)","u":"mult(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"mult(CsrMatrix)","u":"mult(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"mult(CsrMatrix)","u":"mult(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"mult(CsrMatrix)","u":"mult(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"mult(CsrMatrix)","u":"mult(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"mult(CsrMatrix)","u":"mult(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"mult(CsrMatrix)","u":"mult(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"mult(CVector)","u":"mult(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"mult(CVector)","u":"mult(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"mult(CVector)","u":"mult(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"mult(CVector)","u":"mult(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"mult(CVector)","u":"mult(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"mult(CVector)","u":"mult(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"mult(CVector)","u":"mult(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"mult(double)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"mult(double)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"mult(double)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"mult(double)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"mult(double)"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"mult(double)"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"mult(double)"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"mult(double)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"mult(Matrix)","u":"mult(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"mult(Matrix)","u":"mult(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"mult(Matrix)","u":"mult(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"mult(Matrix)","u":"mult(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"mult(Matrix)","u":"mult(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"mult(Matrix)","u":"mult(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"mult(Matrix)","u":"mult(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"mult(T)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"mult(TT)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"mult(Vector)","u":"mult(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"mult(Vector)","u":"mult(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"mult(Vector)","u":"mult(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"mult(Vector)","u":"mult(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"mult(Vector)","u":"mult(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"mult(Vector)","u":"mult(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"mult(Vector)","u":"mult(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"mult2CSR(CooCMatrix)","u":"mult2CSR(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"mult2CSR(CooCMatrix)","u":"mult2CSR(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"mult2CSR(CooMatrix)","u":"mult2CSR(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"mult2CSR(CooMatrix)","u":"mult2CSR(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"mult2CSR(CsrCMatrix)","u":"mult2CSR(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"mult2CSR(CsrCMatrix)","u":"mult2CSR(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"mult2CSR(CsrMatrix)","u":"mult2CSR(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"mult2CSR(CsrMatrix)","u":"mult2CSR(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"multInv()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"multTranspose(CMatrix)","u":"multTranspose(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"multTranspose(CMatrix)","u":"multTranspose(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"multTranspose(CMatrix)","u":"multTranspose(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"multTranspose(CMatrix)","u":"multTranspose(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"multTranspose(CMatrix)","u":"multTranspose(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixMultTranspose","l":"multTranspose(CNumber[], Shape, CNumber[], int[], int[], Shape)","u":"multTranspose(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultTranspose","l":"multTranspose(CNumber[], Shape, CNumber[], Shape)","u":"multTranspose(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultTranspose","l":"multTranspose(CNumber[], Shape, double[], int[], int[], Shape)","u":"multTranspose(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultTranspose","l":"multTranspose(CNumber[], Shape, double[], Shape)","u":"multTranspose(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"multTranspose(CooCMatrix)","u":"multTranspose(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"multTranspose(CooCMatrix)","u":"multTranspose(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"multTranspose(CooCMatrix)","u":"multTranspose(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"multTranspose(CooCMatrix)","u":"multTranspose(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"multTranspose(CooCMatrix)","u":"multTranspose(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"multTranspose(CooMatrix)","u":"multTranspose(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"multTranspose(CooMatrix)","u":"multTranspose(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"multTranspose(CooMatrix)","u":"multTranspose(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"multTranspose(CooMatrix)","u":"multTranspose(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"multTranspose(CooMatrix)","u":"multTranspose(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"multTranspose(CsrCMatrix)","u":"multTranspose(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"multTranspose(CsrMatrix)","u":"multTranspose(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultTranspose","l":"multTranspose(double[], Shape, CNumber[], int[], int[], Shape)","u":"multTranspose(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultTranspose","l":"multTranspose(double[], Shape, CNumber[], Shape)","u":"multTranspose(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixMultTranspose","l":"multTranspose(double[], Shape, double[], int[], int[], Shape)","u":"multTranspose(double[],org.flag4j.core.Shape,double[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultTranspose","l":"multTranspose(double[], Shape, double[], Shape)","u":"multTranspose(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"multTranspose(Matrix)","u":"multTranspose(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"multTranspose(Matrix)","u":"multTranspose(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"multTranspose(Matrix)","u":"multTranspose(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"multTranspose(Matrix)","u":"multTranspose(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"multTranspose(Matrix)","u":"multTranspose(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultTranspose","l":"multTransposeBlocked(CNumber[], Shape, CNumber[], Shape)","u":"multTransposeBlocked(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultTranspose","l":"multTransposeBlocked(CNumber[], Shape, double[], Shape)","u":"multTransposeBlocked(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultTranspose","l":"multTransposeBlocked(double[], Shape, CNumber[], Shape)","u":"multTransposeBlocked(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultTranspose","l":"multTransposeBlocked(double[], Shape, double[], Shape)","u":"multTransposeBlocked(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultTranspose","l":"multTransposeBlockedConcurrent(CNumber[], Shape, CNumber[], Shape)","u":"multTransposeBlockedConcurrent(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultTranspose","l":"multTransposeBlockedConcurrent(CNumber[], Shape, double[], Shape)","u":"multTransposeBlockedConcurrent(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultTranspose","l":"multTransposeBlockedConcurrent(double[], Shape, CNumber[], Shape)","u":"multTransposeBlockedConcurrent(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultTranspose","l":"multTransposeBlockedConcurrent(double[], Shape, double[], Shape)","u":"multTransposeBlockedConcurrent(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultTranspose","l":"multTransposeConcurrent(CNumber[], Shape, CNumber[], Shape)","u":"multTransposeConcurrent(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultTranspose","l":"multTransposeConcurrent(CNumber[], Shape, double[], Shape)","u":"multTransposeConcurrent(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultTranspose","l":"multTransposeConcurrent(double[], Shape, CNumber[], Shape)","u":"multTransposeConcurrent(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultTranspose","l":"multTransposeConcurrent(double[], Shape, double[], Shape)","u":"multTransposeConcurrent(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"NAMED_GREATER_EQ_ERR"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"NAMED_LESS_EQ_BI_ERR"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"NAMED_LESS_EQ_ERR"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"NaN"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"nearZero(CNumber, double)","u":"nearZero(org.flag4j.complex_numbers.CNumber,double)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"NEG_DIM_ERR"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"NEG_VALUE_ERR"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"NEGATIVE_INFINITY"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"NEGATIVE_ONE"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"negativeDimErrMsg(int[])"},{"p":"org.flag4j.core.sparse_base","c":"SparseTensorBase","l":"nnz"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"NON_POS_ERR"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU.Pivoting","l":"NONE"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"nonZeroEntries()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"nonZeroEntries()"},{"p":"org.flag4j.core.sparse_base","c":"SparseTensorBase","l":"nonZeroEntries()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"ComplexLU","l":"noPivot()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"noPivot()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"RealLU","l":"noPivot()"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"norm"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"norm"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"ComplexUnitaryDecomposition","l":"norm"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"RealUnitaryDecomposition","l":"norm"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"norm(CMatrix)","u":"norm(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"norm(CMatrix, double)","u":"norm(org.flag4j.arrays.dense.CMatrix,double)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"norm(CMatrix, double, double)","u":"norm(org.flag4j.arrays.dense.CMatrix,double,double)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"norm(CNumber...)","u":"norm(org.flag4j.complex_numbers.CNumber...)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"norm(CNumber[], double)","u":"norm(org.flag4j.complex_numbers.CNumber[],double)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"norm(CooCMatrix)","u":"norm(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"norm(CooCMatrix, double)","u":"norm(org.flag4j.arrays.sparse.CooCMatrix,double)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"norm(CooCMatrix, double, double)","u":"norm(org.flag4j.arrays.sparse.CooCMatrix,double,double)"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"norm(CooCTensor)","u":"norm(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"norm(CooCTensor, double)","u":"norm(org.flag4j.arrays.sparse.CooCTensor,double)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"norm(CooCVector)","u":"norm(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"norm(CooCVector, double)","u":"norm(org.flag4j.arrays.sparse.CooCVector,double)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"norm(CooMatrix)","u":"norm(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"norm(CooMatrix, double)","u":"norm(org.flag4j.arrays.sparse.CooMatrix,double)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"norm(CooMatrix, double, double)","u":"norm(org.flag4j.arrays.sparse.CooMatrix,double,double)"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"norm(CooTensor)","u":"norm(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"norm(CooTensor, double)","u":"norm(org.flag4j.arrays.sparse.CooTensor,double)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"norm(CooVector)","u":"norm(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"norm(CooVector, double)","u":"norm(org.flag4j.arrays.sparse.CooVector,double)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"norm(CsrMatrix)","u":"norm(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"norm(CsrMatrix, double)","u":"norm(org.flag4j.arrays.sparse.CsrMatrix,double)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"norm(CsrMatrix, double, double)","u":"norm(org.flag4j.arrays.sparse.CsrMatrix,double,double)"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"norm(CTensor)","u":"norm(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"norm(CTensor, double)","u":"norm(org.flag4j.arrays.dense.CTensor,double)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"norm(CVector)","u":"norm(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"norm(CVector, double)","u":"norm(org.flag4j.arrays.dense.CVector,double)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"norm(double...)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"norm(double[], double)","u":"norm(double[],double)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"norm(Matrix)","u":"norm(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"norm(Matrix, double)","u":"norm(org.flag4j.arrays.dense.Matrix,double)"},{"p":"org.flag4j.linalg","c":"MatrixNorms","l":"norm(Matrix, double, double)","u":"norm(org.flag4j.arrays.dense.Matrix,double,double)"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"norm(Tensor)","u":"norm(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"norm(Tensor, double)","u":"norm(org.flag4j.arrays.dense.Tensor,double)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"norm(Vector)","u":"norm(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"norm(Vector, double)","u":"norm(org.flag4j.arrays.dense.Vector,double)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"normalize()"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"normalize()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"normalize()"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"normalize()"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"normalize()"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"ComplexUnitaryDecomposition","l":"normRe"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"notContains(int[], int)","u":"notContains(int[],int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"notInAxes(int[], int)","u":"notInAxes(int[],int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"numCols"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"numCols"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"numCols"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"numCols"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"numCols"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"numCols"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"numCols"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"numCols()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"numCols()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"numCols()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"numCols()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"numCols()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"numCols()"},{"p":"org.flag4j.core","c":"MatrixMixin","l":"numCols()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"numColSwaps"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"numExceptional"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"numRows"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"numRows"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"numRows"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"numRows"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"numRows"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"numRows"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"numRows"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"numRows"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"numRows()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"numRows()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"numRows()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"numRows()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"numRows()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"numRows()"},{"p":"org.flag4j.core","c":"MatrixMixin","l":"numRows()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"numRowSwaps"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"numUnique(double[])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"numUnique(int[])"},{"p":"org.flag4j.io","c":"TensorInputStream","l":"objectIn"},{"p":"org.flag4j.io","c":"TensorOutputStream","l":"objectOut"},{"p":"org.flag4j.arrays.sparse","c":"SymmTriDiagonal","l":"offDiag"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"ONE"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseVectorOperations","l":"OUTER_CONCURRENT_THRESHOLD"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"outer(CooCVector)","u":"outer(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"outer(CooCVector)","u":"outer(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"outer(CooCVector)","u":"outer(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"outer(CooCVector)","u":"outer(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"outer(CooCVector)","u":"outer(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"outer(CooVector)","u":"outer(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"outer(CooVector)","u":"outer(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"outer(CooVector)","u":"outer(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"outer(CooVector)","u":"outer(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"outer(CooVector)","u":"outer(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"outer(CVector)","u":"outer(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"outer(CVector)","u":"outer(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"outer(CVector)","u":"outer(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"outer(CVector)","u":"outer(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"outer(CVector)","u":"outer(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"outer(Vector)","u":"outer(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"outer(Vector)","u":"outer(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"outer(Vector)","u":"outer(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"outer(Vector)","u":"outer(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"outer(Vector)","u":"outer(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseVectorOperations","l":"outerProduct(CNumber[], CNumber[])","u":"outerProduct(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseVectorOperations","l":"outerProduct(CNumber[], CNumber[], int[], int)","u":"outerProduct(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber[],int[],int)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseVectorOperations","l":"outerProduct(CNumber[], double[])","u":"outerProduct(org.flag4j.complex_numbers.CNumber[],double[])"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"outerProduct(CNumber[], double[], int[], int)","u":"outerProduct(org.flag4j.complex_numbers.CNumber[],double[],int[],int)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseVectorOperations","l":"outerProduct(CNumber[], int[], int, CNumber[])","u":"outerProduct(org.flag4j.complex_numbers.CNumber[],int[],int,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"outerProduct(CNumber[], int[], int, double[])","u":"outerProduct(org.flag4j.complex_numbers.CNumber[],int[],int,double[])"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseVectorOperations","l":"outerProduct(CooCVector, CooCVector)","u":"outerProduct(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseVectorOperations","l":"outerProduct(CooCVector, CooVector)","u":"outerProduct(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseVectorOperations","l":"outerProduct(CooVector, CooCVector)","u":"outerProduct(org.flag4j.arrays.sparse.CooVector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseVectorOperations","l":"outerProduct(CooVector, CooVector)","u":"outerProduct(org.flag4j.arrays.sparse.CooVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseVectorOperations","l":"outerProduct(double[], CNumber[])","u":"outerProduct(double[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"outerProduct(double[], CNumber[], int[], int)","u":"outerProduct(double[],org.flag4j.complex_numbers.CNumber[],int[],int)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseVectorOperations","l":"outerProduct(double[], double[])","u":"outerProduct(double[],double[])"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseVectorOperations","l":"outerProduct(double[], double[], int[], int)","u":"outerProduct(double[],double[],int[],int)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"outerProduct(double[], int[], int, CNumber[])","u":"outerProduct(double[],int[],int,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseVectorOperations","l":"outerProduct(double[], int[], int, double[])","u":"outerProduct(double[],int[],int,double[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseVectorOperations","l":"outerProductConcurrent(double[], double[])","u":"outerProductConcurrent(double[],double[])"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"P"},{"p":"org.flag4j.io","c":"PrintOptions","l":"padding"},{"p":"org.flag4j.concurrency","c":"ThreadManager","l":"parallelismLevel"},{"p":"org.flag4j.util","c":"ParameterChecks","l":"ParameterChecks()","u":"%3Cinit%3E()"},{"p":"org.flag4j.complex_numbers","c":"CNumberParser","l":"parseNumber(String)","u":"parseNumber(java.lang.String)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU.Pivoting","l":"PARTIAL"},{"p":"org.flag4j.linalg.decompositions.lu","c":"ComplexLU","l":"partialPivot()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"partialPivot()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"RealLU","l":"partialPivot()"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"performDoubleShift(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"performDoubleShift(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"performDoubleShift(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"performExceptionalShift(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"performExceptionalShift(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"performExceptionalShift(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"performSingleShift(int, CNumber)","u":"performSingleShift(int,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"performSingleShift(int, double)","u":"performSingleShift(int,double)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"PermutationMatrix(int)","u":"%3Cinit%3E(int)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"PermutationMatrix(int[])","u":"%3Cinit%3E(int[])"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"PermutationMatrix(PermutationMatrix)","u":"%3Cinit%3E(org.flag4j.arrays.sparse.PermutationMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"PermutationMatrix(Shape)","u":"%3Cinit%3E(org.flag4j.core.Shape)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ComplexExactSolver","l":"permuteRows(CMatrix)","u":"permuteRows(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ComplexExactSolver","l":"permuteRows(CVector)","u":"permuteRows(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"permuteRows(int[])"},{"p":"org.flag4j.linalg.solvers.exact","c":"RealExactSolver","l":"permuteRows(Matrix)","u":"permuteRows(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactSolver","l":"permuteRows(T)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactSolver","l":"permuteRows(U)"},{"p":"org.flag4j.linalg.solvers.exact","c":"RealExactSolver","l":"permuteRows(Vector)","u":"permuteRows(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"PI"},{"p":"org.flag4j.linalg","c":"Invert","l":"pInv(CMatrix)","u":"pInv(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"Invert","l":"pInv(Matrix)","u":"pInv(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"pivotFlag"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU.Pivoting","l":"Pivoting()","u":"%3Cinit%3E()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"POSITIVE_INFINITY"},{"p":"org.flag4j.linalg","c":"PositiveDefiniteness","l":"PositiveDefiniteness()","u":"%3Cinit%3E()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"pow(CNumber, CNumber)","u":"pow(org.flag4j.complex_numbers.CNumber,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"pow(CNumber, double)","u":"pow(org.flag4j.complex_numbers.CNumber,double)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"pow(double, CNumber)","u":"pow(double,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"pow(double, double)","u":"pow(double,double)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"pow(int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"pow(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"pow(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"pow(int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"pow(int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"pow(int)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"pow(int)"},{"p":"org.flag4j.io","c":"PrintOptions","l":"precision"},{"p":"org.flag4j.io","c":"PrintOptions","l":"PrintOptions()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"prod(CNumber[])","u":"prod(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseOperations","l":"prod(double[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseOperations","l":"prod(int[])"},{"p":"org.flag4j.linalg.transformations","c":"Projection","l":"Projection()","u":"%3Cinit%3E()"},{"p":"org.flag4j.complex_numbers","c":"CNumberLexer","l":"putBackSymbol(int)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"Q"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"qFactors"},{"p":"org.flag4j.linalg.solvers.lstsq","c":"LstsqSolver","l":"Qh"},{"p":"org.flag4j.linalg.solvers.lstsq","c":"LstsqSolver","l":"qr"},{"p":"org.flag4j.linalg.solvers.lstsq","c":"LstsqSolver","l":"R"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"RAND_ARRAY"},{"p":"org.flag4j.rng","c":"RandomCNumber","l":"randn()"},{"p":"org.flag4j.rng","c":"RandomCNumber","l":"randn(double, double)","u":"randn(double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnCMatrix(int, int)","u":"randnCMatrix(int,int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnCMatrix(int, int, double, double)","u":"randnCMatrix(int,int,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnCMatrix(Shape)","u":"randnCMatrix(org.flag4j.core.Shape)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnCMatrix(Shape, double, double)","u":"randnCMatrix(org.flag4j.core.Shape,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnCTensor(Shape)","u":"randnCTensor(org.flag4j.core.Shape)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnCTensor(Shape, double, double)","u":"randnCTensor(org.flag4j.core.Shape,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnCVector(int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnCVector(int, double, double)","u":"randnCVector(int,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnMatrix(int, int)","u":"randnMatrix(int,int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnMatrix(int, int, double, double)","u":"randnMatrix(int,int,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnMatrix(Shape)","u":"randnMatrix(org.flag4j.core.Shape)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnMatrix(Shape, double, double)","u":"randnMatrix(org.flag4j.core.Shape,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnTensor(Shape)","u":"randnTensor(org.flag4j.core.Shape)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnTensor(Shape, double, double)","u":"randnTensor(org.flag4j.core.Shape,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnVector(int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randnVector(int, double, double)","u":"randnVector(int,double,double)"},{"p":"org.flag4j.rng","c":"RandomCNumber","l":"random()"},{"p":"org.flag4j.rng","c":"RandomCNumber","l":"random(double)"},{"p":"org.flag4j.rng","c":"RandomCNumber","l":"random(double, double)","u":"random(double,double)"},{"p":"org.flag4j.rng","c":"RandomArray","l":"RandomArray()","u":"%3Cinit%3E()"},{"p":"org.flag4j.rng","c":"RandomArray","l":"RandomArray(RandomCNumber)","u":"%3Cinit%3E(org.flag4j.rng.RandomCNumber)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCMatrix(int, int)","u":"randomCMatrix(int,int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCMatrix(int, int, double, double)","u":"randomCMatrix(int,int,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCMatrix(Shape)","u":"randomCMatrix(org.flag4j.core.Shape)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCMatrix(Shape, double, double)","u":"randomCMatrix(org.flag4j.core.Shape,double,double)"},{"p":"org.flag4j.rng","c":"RandomCNumber","l":"RandomCNumber()","u":"%3Cinit%3E()"},{"p":"org.flag4j.rng","c":"RandomCNumber","l":"RandomCNumber(long)","u":"%3Cinit%3E(long)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCooMatrix(int, int, double, double, double)","u":"randomCooMatrix(int,int,double,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCooMatrix(int, int, double, double, int)","u":"randomCooMatrix(int,int,double,double,int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCooMatrix(Shape, double, double, double)","u":"randomCooMatrix(org.flag4j.core.Shape,double,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCooMatrix(Shape, double, double, int)","u":"randomCooMatrix(org.flag4j.core.Shape,double,double,int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCsrMatrix(int, int, double, double, double)","u":"randomCsrMatrix(int,int,double,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCsrMatrix(int, int, double, double, int)","u":"randomCsrMatrix(int,int,double,double,int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCsrMatrix(Shape, double, double, double)","u":"randomCsrMatrix(org.flag4j.core.Shape,double,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCsrMatrix(Shape, double, double, int)","u":"randomCsrMatrix(org.flag4j.core.Shape,double,double,int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCTensor(Shape)","u":"randomCTensor(org.flag4j.core.Shape)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCTensor(Shape, double, double)","u":"randomCTensor(org.flag4j.core.Shape,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCVector(int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomCVector(int, double, double)","u":"randomCVector(int,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomMatrix(int, int)","u":"randomMatrix(int,int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomMatrix(int, int, double, double)","u":"randomMatrix(int,int,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomMatrix(Shape)","u":"randomMatrix(org.flag4j.core.Shape)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomMatrix(Shape, double, double)","u":"randomMatrix(org.flag4j.core.Shape,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomOrthogonalMatrix(int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomSparseCMatrix(int, int, double, double, double)","u":"randomSparseCMatrix(int,int,double,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomSparseCMatrix(int, int, double, double, int)","u":"randomSparseCMatrix(int,int,double,double,int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomSparseCMatrix(Shape, double, double, double)","u":"randomSparseCMatrix(org.flag4j.core.Shape,double,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomSparseCMatrix(Shape, double, double, int)","u":"randomSparseCMatrix(org.flag4j.core.Shape,double,double,int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomSymmetricCooMatrix(int, int, int, double)","u":"randomSymmetricCooMatrix(int,int,int,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomSymmetricCsrMatrix(int, int, int, double)","u":"randomSymmetricCsrMatrix(int,int,int,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomSymmetricMatrix(int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"RandomTensor()","u":"%3Cinit%3E()"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"RandomTensor(long)","u":"%3Cinit%3E(long)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomTensor(Shape)","u":"randomTensor(org.flag4j.core.Shape)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomTensor(Shape, double, double)","u":"randomTensor(org.flag4j.core.Shape,double,double)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomTriuMatrix(int, int, int)","u":"randomTriuMatrix(int,int,int)"},{"p":"org.flag4j.rng","c":"RandomArray","l":"randomUniqueIndices(int, int, int)","u":"randomUniqueIndices(int,int,int)"},{"p":"org.flag4j.rng","c":"RandomArray","l":"randomUniqueIndices2D(int, int, int, int, int)","u":"randomUniqueIndices2D(int,int,int,int,int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomUnitaryMatrix(int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomVector(int)"},{"p":"org.flag4j.rng","c":"RandomTensor","l":"randomVector(int, double, double)","u":"randomVector(int,double,double)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"RANGE_ERR"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"range(int, int)","u":"range(int,int)"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"rank"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"BackSolver","l":"RANK_CONDITION"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ForwardSolver","l":"RANK_CONDITION"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"re"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"re()"},{"p":"org.flag4j.io","c":"TensorInputStream","l":"read()"},{"p":"org.flag4j.io","c":"TensorInputStream","l":"readMatrix()"},{"p":"org.flag4j.io","c":"TensorReader","l":"readMatrix(String)","u":"readMatrix(java.lang.String)"},{"p":"org.flag4j.io","c":"TensorInputStream","l":"readTensor()"},{"p":"org.flag4j.io","c":"TensorReader","l":"readTensor(String)","u":"readTensor(java.lang.String)"},{"p":"org.flag4j.io","c":"TensorInputStream","l":"readVector()"},{"p":"org.flag4j.io","c":"TensorReader","l":"readVector(String)","u":"readVector(java.lang.String)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"real2ComplexSchur()"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"real2ComplexSchur()"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealBackSolver","l":"RealBackSolver()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealBackSolver","l":"RealBackSolver(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.linalg.decompositions.chol","c":"RealCholesky","l":"RealCholesky()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.chol","c":"RealCholesky","l":"RealCholesky(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexCooTensorOperations","l":"RealComplexCooTensorOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseMatrixMultiplication","l":"RealComplexCsrDenseMatrixMultiplication()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseOperations","l":"RealComplexCsrDenseOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.csr.real_complex","c":"RealComplexCsrMatrixMultiplication","l":"RealComplexCsrMatrixMultiplication()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.csr.real_complex","c":"RealComplexCsrOperations","l":"RealComplexCsrOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseElemDiv","l":"RealComplexDenseElemDiv()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseElemMult","l":"RealComplexDenseElemMult()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseEquals","l":"RealComplexDenseEquals()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"RealComplexDenseMatrixMultiplication()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultTranspose","l":"RealComplexDenseMatrixMultTranspose()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseOperations","l":"RealComplexDenseOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseEquals","l":"RealComplexDenseSparseEquals()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"RealComplexDenseSparseMatrixMultiplication()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultTranspose","l":"RealComplexDenseSparseMatrixMultTranspose()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"RealComplexDenseSparseMatrixOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseOperations","l":"RealComplexDenseSparseOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"RealComplexDenseSparseVectorOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseVectorOperations","l":"RealComplexDenseVectorOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseEquals","l":"RealComplexSparseEquals()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixMultiplication","l":"RealComplexSparseMatrixMultiplication()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixOperations","l":"RealComplexSparseMatrixOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseVectorOperations","l":"RealComplexSparseVectorOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealCooTensorDot","l":"RealCooTensorDot()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealCooTensorOperations","l":"RealCooTensorOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrConcats","l":"RealCsrConcats()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.csr.real","c":"RealCsrDenseMatrixMultiplication","l":"RealCsrDenseMatrixMultiplication()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.csr.real","c":"RealCsrDenseOperations","l":"RealCsrDenseOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrEquals","l":"RealCsrEquals()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrManipulations","l":"RealCsrManipulations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrMatrixMultiplication","l":"RealCsrMatrixMultiplication()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrOperations","l":"RealCsrOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrProperties","l":"RealCsrProperties()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseDeterminant","l":"RealDenseDeterminant()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseElemDiv","l":"RealDenseElemDiv()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseElemMult","l":"RealDenseElemMult()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseEquals","l":"RealDenseEquals()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.common","c":"TensorEquals","l":"realDenseLookUp"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultiplication","l":"RealDenseMatrixMultiplication()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher","l":"RealDenseMatrixMultiplyDispatcher()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultTranspose","l":"RealDenseMatrixMultTranspose()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseOperations","l":"RealDenseOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseProperties","l":"RealDenseProperties()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseSetOperations","l":"RealDenseSetOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseEquals","l":"RealDenseSparseEquals()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixMultiplication","l":"RealDenseSparseMatrixMultiplication()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixMultTranspose","l":"RealDenseSparseMatrixMultTranspose()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixOperations","l":"RealDenseSparseMatrixOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseTensorOperations","l":"RealDenseSparseTensorOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseVectorOperations","l":"RealDenseSparseVectorOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"RealDenseTensorBase(Shape, double[])","u":"%3Cinit%3E(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseTensorDot","l":"RealDenseTensorDot()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseTranspose","l":"RealDenseTranspose()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseVectorOperations","l":"RealDenseVectorOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.solvers.exact","c":"RealExactSolver","l":"RealExactSolver()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.solvers.exact","c":"RealExactTensorSolver","l":"RealExactTensorSolver()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealForwardSolver","l":"RealForwardSolver()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealForwardSolver","l":"RealForwardSolver(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealForwardSolver","l":"RealForwardSolver(boolean, boolean)","u":"%3Cinit%3E(boolean,boolean)"},{"p":"org.flag4j.linalg.decompositions.hess","c":"RealHess","l":"RealHess()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.hess","c":"RealHess","l":"RealHess(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.linalg.solvers.lstsq","c":"RealLstsqSolver","l":"RealLstsqSolver()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"RealLU","l":"RealLU()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.lu","c":"RealLU","l":"RealLU(int)","u":"%3Cinit%3E(int)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"RealLU","l":"RealLU(int, double)","u":"%3Cinit%3E(int,double)"},{"p":"org.flag4j.operations.common.real","c":"RealOperations","l":"RealOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.common.real","c":"RealProperties","l":"RealProperties()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.qr","c":"RealQR","l":"RealQR()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.qr","c":"RealQR","l":"RealQR(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"RealSchur()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"RealSchur(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"RealSchur(boolean, long)","u":"%3Cinit%3E(boolean,long)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"RealSchur(long)","u":"%3Cinit%3E(long)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseEquals","l":"RealSparseEquals()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.common","c":"TensorEquals","l":"realSparseLookUp"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseManipulations","l":"RealSparseManipulations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"RealSparseMatrixGetSet()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixManipulations","l":"RealSparseMatrixManipulations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixMultiplication","l":"RealSparseMatrixMultiplication()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixOperations","l":"RealSparseMatrixOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixProperties","l":"RealSparseMatrixProperties()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseNorms","l":"RealSparseNorms()","u":"%3Cinit%3E()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"RealSparseTensorBase(Shape, int, double[], int[], int[]...)","u":"%3Cinit%3E(org.flag4j.core.Shape,int,double[],int[],int[]...)"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"RealSparseTensorBase(Shape, int, double[], int[][])","u":"%3Cinit%3E(org.flag4j.core.Shape,int,double[],int[][])"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseVectorOperations","l":"RealSparseVectorOperations()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.svd","c":"RealSVD","l":"RealSVD()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.svd","c":"RealSVD","l":"RealSVD(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.linalg.decompositions.svd","c":"RealSVD","l":"RealSVD(boolean, boolean)","u":"%3Cinit%3E(boolean,boolean)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"RealUnitaryDecomposition","l":"RealUnitaryDecomposition(int)","u":"%3Cinit%3E(int)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"RealUnitaryDecomposition","l":"RealUnitaryDecomposition(int, boolean)","u":"%3Cinit%3E(int,boolean)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"recip()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"recip()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"recip()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"recip()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"recip()"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"recip()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"recip(CNumber[])","u":"recip(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseOperations","l":"recip(double[])"},{"p":"org.flag4j.linalg.decompositions.qr","c":"ComplexQR","l":"reduced"},{"p":"org.flag4j.linalg.decompositions.qr","c":"RealQR","l":"reduced"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"reduced"},{"p":"org.flag4j.linalg","c":"RowEchelon","l":"ref(CMatrix)","u":"ref(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"RowEchelon","l":"ref(Matrix)","u":"ref(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrEquals","l":"removeCloseToZero(CsrCMatrix, List, int[], List, double)","u":"removeCloseToZero(org.flag4j.arrays.sparse.CsrCMatrix,java.util.List,int[],java.util.List,double)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrEquals","l":"removeCloseToZero(CsrMatrix, List, int[], List, double)","u":"removeCloseToZero(org.flag4j.arrays.sparse.CsrMatrix,java.util.List,int[],java.util.List,double)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixManipulations","l":"removeCol(CooCMatrix, int)","u":"removeCol(org.flag4j.arrays.sparse.CooCMatrix,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixManipulations","l":"removeCol(CooMatrix, int)","u":"removeCol(org.flag4j.arrays.sparse.CooMatrix,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"removeCol(int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"removeCol(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"removeCol(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"removeCol(int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"removeCol(int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"removeCol(int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"removeCol(int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixManipulations","l":"removeCols(CooCMatrix, int...)","u":"removeCols(org.flag4j.arrays.sparse.CooCMatrix,int...)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixManipulations","l":"removeCols(CooMatrix, int...)","u":"removeCols(org.flag4j.arrays.sparse.CooMatrix,int...)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"removeCols(int...)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"removeCols(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"removeCols(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"removeCols(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"removeCols(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"removeCols(int...)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"removeCols(int...)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixManipulations","l":"removeRow(CooCMatrix, int)","u":"removeRow(org.flag4j.arrays.sparse.CooCMatrix,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixManipulations","l":"removeRow(CooMatrix, int)","u":"removeRow(org.flag4j.arrays.sparse.CooMatrix,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"removeRow(int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"removeRow(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"removeRow(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"removeRow(int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"removeRow(int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"removeRow(int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"removeRow(int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixManipulations","l":"removeRows(CooCMatrix, int...)","u":"removeRows(org.flag4j.arrays.sparse.CooCMatrix,int...)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixManipulations","l":"removeRows(CooMatrix, int...)","u":"removeRows(org.flag4j.arrays.sparse.CooMatrix,int...)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"removeRows(int...)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"removeRows(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"removeRows(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"removeRows(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"removeRows(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"removeRows(int...)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"removeRows(int...)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"REORDERED"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"REORDERED"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultiplication","l":"reordered(CNumber[], Shape, CNumber[], Shape)","u":"reordered(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"reordered(CNumber[], Shape, double[], Shape)","u":"reordered(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"reordered(double[], Shape, CNumber[], Shape)","u":"reordered(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultiplication","l":"reordered(double[], Shape, double[], Shape)","u":"reordered(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"repeat(int, int)","u":"repeat(int,int)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"repeat(int, int)","u":"repeat(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"repeat(int, int)","u":"repeat(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"repeat(int, int)","u":"repeat(int,int)"},{"p":"org.flag4j.core","c":"VectorMixin","l":"repeat(int, int)","u":"repeat(int,int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"repeat(int, int[])","u":"repeat(int,int[])"},{"p":"org.flag4j.concurrency","c":"Configurations","l":"resetAll()"},{"p":"org.flag4j.io","c":"PrintOptions","l":"resetAll()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"reshape(int...)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"reshape(int...)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"reshape(int...)"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"reshape(int...)"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"reshape(int...)"},{"p":"org.flag4j.core","c":"TensorManipulationsMixin","l":"reshape(int...)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"reshape(Shape)","u":"reshape(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"reshape(Shape)","u":"reshape(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"reshape(Shape)","u":"reshape(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"reshape(Shape)","u":"reshape(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"reshape(Shape)","u":"reshape(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"reshape(Shape)","u":"reshape(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"reshape(Shape)","u":"reshape(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"reshape(Shape)","u":"reshape(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"reshape(Shape)","u":"reshape(org.flag4j.core.Shape)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"reshape(Shape)","u":"reshape(org.flag4j.core.Shape)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"reshape(Shape)","u":"reshape(org.flag4j.core.Shape)"},{"p":"org.flag4j.core","c":"TensorManipulationsMixin","l":"reshape(Shape)","u":"reshape(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"rightMult(CMatrix)","u":"rightMult(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"rightMult(CVector)","u":"rightMult(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"rightMult(Matrix)","u":"rightMult(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"rightMult(Vector)","u":"rightMult(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.linalg.transformations","c":"Givens","l":"rightMult2x2Rotator(CMatrix, CMatrix, int, CNumber[])","u":"rightMult2x2Rotator(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CMatrix,int,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.linalg.transformations","c":"Givens","l":"rightMult2x2Rotator(Matrix, Matrix, int, double[])","u":"rightMult2x2Rotator(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Matrix,int,double[])"},{"p":"org.flag4j.linalg.transformations","c":"Householder","l":"rightMultReflector(CMatrix, CNumber[], CNumber, int, int, int)","u":"rightMultReflector(org.flag4j.arrays.dense.CMatrix,org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber,int,int,int)"},{"p":"org.flag4j.linalg.transformations","c":"Householder","l":"rightMultReflector(CMatrix, CVector, CNumber, int, int, int)","u":"rightMultReflector(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CVector,org.flag4j.complex_numbers.CNumber,int,int,int)"},{"p":"org.flag4j.linalg.transformations","c":"Householder","l":"rightMultReflector(Matrix, double[], double, int, int, int)","u":"rightMultReflector(org.flag4j.arrays.dense.Matrix,double[],double,int,int,int)"},{"p":"org.flag4j.linalg.transformations","c":"Householder","l":"rightMultReflector(Matrix, Vector, double, int, int, int)","u":"rightMultReflector(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Vector,double,int,int,int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"rng"},{"p":"org.flag4j.rng","c":"RandomArray","l":"rng"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"ROOT_THREE"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"ROOT_TWO"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"round()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"round()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"round()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"round()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"round()"},{"p":"org.flag4j.core","c":"TensorManipulationsMixin","l":"round()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"round(CNumber)","u":"round(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"round(CNumber, int)","u":"round(org.flag4j.complex_numbers.CNumber,int)"},{"p":"org.flag4j.operations.common.complex","c":"ComplexOperations","l":"round(CNumber[])","u":"round(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.common.complex","c":"ComplexOperations","l":"round(CNumber[], int)","u":"round(org.flag4j.complex_numbers.CNumber[],int)"},{"p":"org.flag4j.operations.common.real","c":"RealOperations","l":"round(double[])"},{"p":"org.flag4j.operations.common.real","c":"RealOperations","l":"round(double[], int)","u":"round(double[],int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"round(int)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"round(int)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"round(int)"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"round(int)"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"round(int)"},{"p":"org.flag4j.core","c":"TensorManipulationsMixin","l":"round(int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"roundToZero()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"roundToZero()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"roundToZero()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"roundToZero()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"roundToZero()"},{"p":"org.flag4j.core","c":"TensorManipulationsMixin","l":"roundToZero()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"roundToZero(CNumber, double)","u":"roundToZero(org.flag4j.complex_numbers.CNumber,double)"},{"p":"org.flag4j.operations.common.complex","c":"ComplexOperations","l":"roundToZero(CNumber[], double)","u":"roundToZero(org.flag4j.complex_numbers.CNumber[],double)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"roundToZero(double)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"roundToZero(double)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"roundToZero(double)"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"roundToZero(double)"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"roundToZero(double)"},{"p":"org.flag4j.core","c":"TensorManipulationsMixin","l":"roundToZero(double)"},{"p":"org.flag4j.operations.common.real","c":"RealOperations","l":"roundToZero(double[], double)","u":"roundToZero(double[],double)"},{"p":"org.flag4j.util","c":"Axis2D","l":"ROW"},{"p":"org.flag4j.util","c":"Axis2D","l":"row()"},{"p":"org.flag4j.linalg","c":"RowEchelon","l":"RowEchelon()","u":"%3Cinit%3E()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"rowIndices"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"rowIndices"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactSolver","l":"rowPermute"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"rowPointers"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"rowPointers"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"rowSwaps"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"rowToString(int, int, List)","u":"rowToString(int,int,java.util.List)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"rowToString(int, int, List)","u":"rowToString(int,int,java.util.List)"},{"p":"org.flag4j.linalg","c":"RowEchelon","l":"rref(CMatrix)","u":"rref(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg","c":"RowEchelon","l":"rref(Matrix)","u":"rref(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"S"},{"p":"org.flag4j.core","c":"TensorBase","l":"sameLength(TensorBase, TensorBase, int)","u":"sameLength(org.flag4j.core.TensorBase,org.flag4j.core.TensorBase,int)"},{"p":"org.flag4j.core","c":"TensorBase","l":"sameShape(TensorBase)","u":"sameShape(org.flag4j.core.TensorBase)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"scalDiv(CNumber[], CNumber)","u":"scalDiv(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"scalDiv(CNumber[], double)","u":"scalDiv(org.flag4j.complex_numbers.CNumber[],double)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseOperations","l":"scalDiv(CNumber[], double)","u":"scalDiv(org.flag4j.complex_numbers.CNumber[],double)"},{"p":"org.flag4j.operations.common.complex","c":"ComplexOperations","l":"scalDiv(double[], CNumber)","u":"scalDiv(double[],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseOperations","l":"scalDiv(double[], CNumber)","u":"scalDiv(double[],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.common.real","c":"RealOperations","l":"scalDiv(double[], double)","u":"scalDiv(double[],double)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseOperations","l":"scalDiv(double[], double)","u":"scalDiv(double[],double)"},{"p":"org.flag4j.operations.common.complex","c":"ComplexOperations","l":"scalMult(CNumber[], CNumber)","u":"scalMult(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"scalMult(CNumber[], CNumber)","u":"scalMult(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.common.complex","c":"ComplexOperations","l":"scalMult(CNumber[], CNumber[], CNumber)","u":"scalMult(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.common.complex","c":"ComplexOperations","l":"scalMult(CNumber[], CNumber[], CNumber, int, int)","u":"scalMult(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber,int,int)"},{"p":"org.flag4j.operations.common.complex","c":"ComplexOperations","l":"scalMult(CNumber[], double)","u":"scalMult(org.flag4j.complex_numbers.CNumber[],double)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"scalMult(CNumber[], double)","u":"scalMult(org.flag4j.complex_numbers.CNumber[],double)"},{"p":"org.flag4j.operations.common.complex","c":"ComplexOperations","l":"scalMult(double[], CNumber)","u":"scalMult(double[],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.common.real","c":"RealOperations","l":"scalMult(double[], double)","u":"scalMult(double[],double)"},{"p":"org.flag4j.operations.common.real","c":"RealOperations","l":"scalMult(double[], double[], double)","u":"scalMult(double[],double[],double)"},{"p":"org.flag4j.operations.common.real","c":"RealOperations","l":"scalMult(double[], double[], double, int, int)","u":"scalMult(double[],double[],double,int,int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"Schur(boolean, RandomCNumber, UnitaryDecomposition)","u":"%3Cinit%3E(boolean,org.flag4j.rng.RandomCNumber,org.flag4j.linalg.decompositions.unitary.UnitaryDecomposition)"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher","l":"selectAlgorithm(Shape, Shape)","u":"selectAlgorithm(org.flag4j.core.Shape,org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher","l":"selectAlgorithmTranspose(Shape)","u":"selectAlgorithmTranspose(org.flag4j.core.Shape)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"SEQUENTIAL_SWAPPED_THRESHOLD"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher","l":"SEQUENTIAL_SWAPPED_THRESHOLD"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"set(CNumber, int, int)","u":"set(org.flag4j.complex_numbers.CNumber,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"set(CNumber, int, int)","u":"set(org.flag4j.complex_numbers.CNumber,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"set(CNumber, int, int)","u":"set(org.flag4j.complex_numbers.CNumber,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"set(CNumber, int...)","u":"set(org.flag4j.complex_numbers.CNumber,int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"set(CNumber, int...)","u":"set(org.flag4j.complex_numbers.CNumber,int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"set(CNumber, int...)","u":"set(org.flag4j.complex_numbers.CNumber,int...)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"set(CNumber, int...)","u":"set(org.flag4j.complex_numbers.CNumber,int...)"},{"p":"org.flag4j.core","c":"ComplexTensorMixin","l":"set(CNumber, int...)","u":"set(org.flag4j.complex_numbers.CNumber,int...)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"set(CNumber, int...)","u":"set(org.flag4j.complex_numbers.CNumber,int...)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseSetOperations","l":"set(CNumber[], Shape, CNumber, int...)","u":"set(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber,int...)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseSetOperations","l":"set(CNumber[], Shape, double, int...)","u":"set(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double,int...)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"set(double, int, int)","u":"set(double,int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"set(double, int, int)","u":"set(double,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"set(double, int, int)","u":"set(double,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"set(double, int, int)","u":"set(double,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"set(double, int, int)","u":"set(double,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"set(double, int, int)","u":"set(double,int,int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"set(double, int, int)","u":"set(double,int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"set(Double, int, int)","u":"set(java.lang.Double,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"set(Double, int, int)","u":"set(java.lang.Double,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"set(Double, int, int)","u":"set(java.lang.Double,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"set(double, int...)","u":"set(double,int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"set(double, int...)","u":"set(double,int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"set(double, int...)","u":"set(double,int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"set(double, int...)","u":"set(double,int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"set(double, int...)","u":"set(double,int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"set(double, int...)","u":"set(double,int...)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"set(double, int...)","u":"set(double,int...)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"set(double, int...)","u":"set(double,int...)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"set(double, int...)","u":"set(double,int...)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"set(double, int...)","u":"set(double,int...)"},{"p":"org.flag4j.core","c":"TensorManipulationsMixin","l":"set(double, int...)","u":"set(double,int...)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseSetOperations","l":"set(double[], Shape, double, int...)","u":"set(double[],org.flag4j.core.Shape,double,int...)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"set(X, int, int)","u":"set(X,int,int)"},{"p":"org.flag4j.concurrency","c":"Configurations","l":"setBlockSize(int)"},{"p":"org.flag4j.io","c":"PrintOptions","l":"setCentering(boolean)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setCol(CNumber[], int)","u":"setCol(org.flag4j.complex_numbers.CNumber[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setCol(CNumber[], int)","u":"setCol(org.flag4j.complex_numbers.CNumber[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setCol(CNumber[], int)","u":"setCol(org.flag4j.complex_numbers.CNumber[],int)"},{"p":"org.flag4j.core","c":"ComplexMatrixMixin","l":"setCol(CNumber[], int)","u":"setCol(org.flag4j.complex_numbers.CNumber[],int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setCol(CooCMatrix, int, CNumber[])","u":"setCol(org.flag4j.arrays.sparse.CooCMatrix,int,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setCol(CooCMatrix, int, CooCVector)","u":"setCol(org.flag4j.arrays.sparse.CooCMatrix,int,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setCol(CooCMatrix, int, double[])","u":"setCol(org.flag4j.arrays.sparse.CooCMatrix,int,double[])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setCol(CooCVector, int)","u":"setCol(org.flag4j.arrays.sparse.CooCVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setCol(CooCVector, int)","u":"setCol(org.flag4j.arrays.sparse.CooCVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setCol(CooCVector, int)","u":"setCol(org.flag4j.arrays.sparse.CooCVector,int)"},{"p":"org.flag4j.core","c":"ComplexMatrixMixin","l":"setCol(CooCVector, int)","u":"setCol(org.flag4j.arrays.sparse.CooCVector,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"setCol(CooMatrix, int, CooVector)","u":"setCol(org.flag4j.arrays.sparse.CooMatrix,int,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"setCol(CooMatrix, int, double[])","u":"setCol(org.flag4j.arrays.sparse.CooMatrix,int,double[])"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setCol(CooVector, int)","u":"setCol(org.flag4j.arrays.sparse.CooVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setCol(CooVector, int)","u":"setCol(org.flag4j.arrays.sparse.CooVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setCol(CooVector, int)","u":"setCol(org.flag4j.arrays.sparse.CooVector,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setCol(CVector, int)","u":"setCol(org.flag4j.arrays.dense.CVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setCol(CVector, int)","u":"setCol(org.flag4j.arrays.dense.CVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setCol(CVector, int)","u":"setCol(org.flag4j.arrays.dense.CVector,int)"},{"p":"org.flag4j.core","c":"ComplexMatrixMixin","l":"setCol(CVector, int)","u":"setCol(org.flag4j.arrays.dense.CVector,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setCol(double[], int)","u":"setCol(double[],int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setCol(double[], int)","u":"setCol(double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setCol(double[], int)","u":"setCol(double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setCol(double[], int)","u":"setCol(double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setCol(double[], int)","u":"setCol(double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setCol(double[], int)","u":"setCol(double[],int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setCol(double[], int)","u":"setCol(double[],int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setCol(Double[], int)","u":"setCol(java.lang.Double[],int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setCol(Double[], int)","u":"setCol(java.lang.Double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setCol(Double[], int)","u":"setCol(java.lang.Double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setCol(Double[], int)","u":"setCol(java.lang.Double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setCol(Double[], int)","u":"setCol(java.lang.Double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setCol(Double[], int)","u":"setCol(java.lang.Double[],int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setCol(Double[], int)","u":"setCol(java.lang.Double[],int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setCol(int[], int)","u":"setCol(int[],int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setCol(int[], int)","u":"setCol(int[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setCol(int[], int)","u":"setCol(int[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setCol(int[], int)","u":"setCol(int[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setCol(int[], int)","u":"setCol(int[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setCol(int[], int)","u":"setCol(int[],int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setCol(int[], int)","u":"setCol(int[],int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setCol(Integer[], int)","u":"setCol(java.lang.Integer[],int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setCol(Integer[], int)","u":"setCol(java.lang.Integer[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setCol(Integer[], int)","u":"setCol(java.lang.Integer[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setCol(Integer[], int)","u":"setCol(java.lang.Integer[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setCol(Integer[], int)","u":"setCol(java.lang.Integer[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setCol(Integer[], int)","u":"setCol(java.lang.Integer[],int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setCol(Integer[], int)","u":"setCol(java.lang.Integer[],int)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"setCol(TT, int)","u":"setCol(TT,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setCol(Vector, int)","u":"setCol(org.flag4j.arrays.dense.Vector,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setCol(Vector, int)","u":"setCol(org.flag4j.arrays.dense.Vector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setCol(Vector, int)","u":"setCol(org.flag4j.arrays.dense.Vector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setCol(Vector, int)","u":"setCol(org.flag4j.arrays.dense.Vector,int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setCol(X[], int)","u":"setCol(X[],int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"setExceptionalThreshold(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"setExceptionalThreshold(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"setExceptionalThreshold(int)"},{"p":"org.flag4j.io","c":"PrintOptions","l":"setMaxColumns(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"setMaxIterationFactor(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"setMaxIterationFactor(int)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"setMaxIterationFactor(int)"},{"p":"org.flag4j.io","c":"PrintOptions","l":"setMaxRows(int)"},{"p":"org.flag4j.io","c":"PrintOptions","l":"setMaxRowsCols(int)"},{"p":"org.flag4j.io","c":"PrintOptions","l":"setMaxRowsCols(int, int)","u":"setMaxRowsCols(int,int)"},{"p":"org.flag4j.concurrency","c":"Configurations","l":"setNumThreads(int)"},{"p":"org.flag4j.concurrency","c":"Configurations","l":"setNumThreadsAsAvailableProcessors()"},{"p":"org.flag4j.io","c":"PrintOptions","l":"setPadding(int)"},{"p":"org.flag4j.concurrency","c":"ThreadManager","l":"setParallelismLevel(int)"},{"p":"org.flag4j.io","c":"PrintOptions","l":"setPrecision(int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setRow(CNumber[], int)","u":"setRow(org.flag4j.complex_numbers.CNumber[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setRow(CNumber[], int)","u":"setRow(org.flag4j.complex_numbers.CNumber[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setRow(CNumber[], int)","u":"setRow(org.flag4j.complex_numbers.CNumber[],int)"},{"p":"org.flag4j.core","c":"ComplexMatrixMixin","l":"setRow(CNumber[], int)","u":"setRow(org.flag4j.complex_numbers.CNumber[],int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setRow(CooCMatrix, int, CNumber[])","u":"setRow(org.flag4j.arrays.sparse.CooCMatrix,int,org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setRow(CooCMatrix, int, CooCVector)","u":"setRow(org.flag4j.arrays.sparse.CooCMatrix,int,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setRow(CooCMatrix, int, double[])","u":"setRow(org.flag4j.arrays.sparse.CooCMatrix,int,double[])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setRow(CooCVector, int)","u":"setRow(org.flag4j.arrays.sparse.CooCVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setRow(CooCVector, int)","u":"setRow(org.flag4j.arrays.sparse.CooCVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setRow(CooCVector, int)","u":"setRow(org.flag4j.arrays.sparse.CooCVector,int)"},{"p":"org.flag4j.core","c":"ComplexMatrixMixin","l":"setRow(CooCVector, int)","u":"setRow(org.flag4j.arrays.sparse.CooCVector,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"setRow(CooMatrix, int, double[])","u":"setRow(org.flag4j.arrays.sparse.CooMatrix,int,double[])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setRow(CVector, int)","u":"setRow(org.flag4j.arrays.dense.CVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setRow(CVector, int)","u":"setRow(org.flag4j.arrays.dense.CVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setRow(CVector, int)","u":"setRow(org.flag4j.arrays.dense.CVector,int)"},{"p":"org.flag4j.core","c":"ComplexMatrixMixin","l":"setRow(CVector, int)","u":"setRow(org.flag4j.arrays.dense.CVector,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setRow(double[], int)","u":"setRow(double[],int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setRow(double[], int)","u":"setRow(double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setRow(double[], int)","u":"setRow(double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setRow(double[], int)","u":"setRow(double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setRow(double[], int)","u":"setRow(double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setRow(double[], int)","u":"setRow(double[],int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setRow(double[], int)","u":"setRow(double[],int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setRow(Double[], int)","u":"setRow(java.lang.Double[],int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setRow(Double[], int)","u":"setRow(java.lang.Double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setRow(Double[], int)","u":"setRow(java.lang.Double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setRow(Double[], int)","u":"setRow(java.lang.Double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setRow(Double[], int)","u":"setRow(java.lang.Double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setRow(Double[], int)","u":"setRow(java.lang.Double[],int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setRow(Double[], int)","u":"setRow(java.lang.Double[],int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setRow(int[], int)","u":"setRow(int[],int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setRow(int[], int)","u":"setRow(int[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setRow(int[], int)","u":"setRow(int[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setRow(int[], int)","u":"setRow(int[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setRow(int[], int)","u":"setRow(int[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setRow(int[], int)","u":"setRow(int[],int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setRow(int[], int)","u":"setRow(int[],int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setRow(Integer[], int)","u":"setRow(java.lang.Integer[],int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setRow(Integer[], int)","u":"setRow(java.lang.Integer[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setRow(Integer[], int)","u":"setRow(java.lang.Integer[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setRow(Integer[], int)","u":"setRow(java.lang.Integer[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setRow(Integer[], int)","u":"setRow(java.lang.Integer[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setRow(Integer[], int)","u":"setRow(java.lang.Integer[],int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setRow(Integer[], int)","u":"setRow(java.lang.Integer[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setRow(Vector, int)","u":"setRow(org.flag4j.arrays.dense.Vector,int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setRow(X[], int)","u":"setRow(X[],int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSlice(CMatrix, int, int)","u":"setSlice(org.flag4j.arrays.dense.CMatrix,int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSlice(CNumber[][], int, int)","u":"setSlice(org.flag4j.complex_numbers.CNumber[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setSlice(CNumber[][], int, int)","u":"setSlice(org.flag4j.complex_numbers.CNumber[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setSlice(CNumber[][], int, int)","u":"setSlice(org.flag4j.complex_numbers.CNumber[][],int,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setSlice(CooCMatrix, CNumber[], int, int, int[], int[], int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.complex_numbers.CNumber[],int,int,int[],int[],int,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setSlice(CooCMatrix, CNumber[][], int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.complex_numbers.CNumber[][],int,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setSlice(CooCMatrix, CooCMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooCMatrix,int,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setSlice(CooCMatrix, CooMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooMatrix,int,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setSlice(CooCMatrix, double[], int, int, int[], int[], int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooCMatrix,double[],int,int,int[],int[],int,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setSlice(CooCMatrix, double[][], int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooCMatrix,double[][],int,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setSlice(CooCMatrix, Double[][], int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooCMatrix,java.lang.Double[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSlice(CooCMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooCMatrix,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setSlice(CooCMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooCMatrix,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setSlice(CooCMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooCMatrix,int,int)"},{"p":"org.flag4j.core","c":"ComplexMatrixMixin","l":"setSlice(CooCMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooCMatrix,int,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setSlice(CooCMatrix, int[][], int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooCMatrix,int[][],int,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setSlice(CooCMatrix, Integer[][], int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooCMatrix,java.lang.Integer[][],int,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setSlice(CooCMatrix, Matrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.dense.Matrix,int,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"setSlice(CooMatrix, CooMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooMatrix,int,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"setSlice(CooMatrix, double[], int, int, int[], int[], int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooMatrix,double[],int,int,int[],int[],int,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"setSlice(CooMatrix, double[][], int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooMatrix,double[][],int,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"setSlice(CooMatrix, Double[][], int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooMatrix,java.lang.Double[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSlice(CooMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooMatrix,int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setSlice(CooMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooMatrix,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setSlice(CooMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooMatrix,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setSlice(CooMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooMatrix,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setSlice(CooMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooMatrix,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setSlice(CooMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooMatrix,int,int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setSlice(CooMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooMatrix,int,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"setSlice(CooMatrix, int[][], int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooMatrix,int[][],int,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"setSlice(CooMatrix, Integer[][], int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooMatrix,java.lang.Integer[][],int,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixGetSet","l":"setSlice(CooMatrix, Matrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.dense.Matrix,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setSlice(CsrCMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CsrCMatrix,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setSlice(CsrMatrix, int, int)","u":"setSlice(org.flag4j.arrays.sparse.CsrMatrix,int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSlice(double[][], int, int)","u":"setSlice(double[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setSlice(double[][], int, int)","u":"setSlice(double[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setSlice(double[][], int, int)","u":"setSlice(double[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setSlice(double[][], int, int)","u":"setSlice(double[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setSlice(double[][], int, int)","u":"setSlice(double[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setSlice(double[][], int, int)","u":"setSlice(double[][],int,int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setSlice(double[][], int, int)","u":"setSlice(double[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSlice(Double[][], int, int)","u":"setSlice(java.lang.Double[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setSlice(Double[][], int, int)","u":"setSlice(java.lang.Double[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setSlice(Double[][], int, int)","u":"setSlice(java.lang.Double[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setSlice(Double[][], int, int)","u":"setSlice(java.lang.Double[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setSlice(Double[][], int, int)","u":"setSlice(java.lang.Double[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setSlice(Double[][], int, int)","u":"setSlice(java.lang.Double[][],int,int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setSlice(Double[][], int, int)","u":"setSlice(java.lang.Double[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSlice(int[][], int, int)","u":"setSlice(int[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setSlice(int[][], int, int)","u":"setSlice(int[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setSlice(int[][], int, int)","u":"setSlice(int[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setSlice(int[][], int, int)","u":"setSlice(int[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setSlice(int[][], int, int)","u":"setSlice(int[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setSlice(int[][], int, int)","u":"setSlice(int[][],int,int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setSlice(int[][], int, int)","u":"setSlice(int[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSlice(Integer[][], int, int)","u":"setSlice(java.lang.Integer[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setSlice(Integer[][], int, int)","u":"setSlice(java.lang.Integer[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setSlice(Integer[][], int, int)","u":"setSlice(java.lang.Integer[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setSlice(Integer[][], int, int)","u":"setSlice(java.lang.Integer[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setSlice(Integer[][], int, int)","u":"setSlice(java.lang.Integer[][],int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setSlice(Integer[][], int, int)","u":"setSlice(java.lang.Integer[][],int,int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setSlice(Integer[][], int, int)","u":"setSlice(java.lang.Integer[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSlice(Matrix, int, int)","u":"setSlice(org.flag4j.arrays.dense.Matrix,int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setSlice(Matrix, int, int)","u":"setSlice(org.flag4j.arrays.dense.Matrix,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"setSlice(Matrix, int, int)","u":"setSlice(org.flag4j.arrays.dense.Matrix,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"setSlice(Matrix, int, int)","u":"setSlice(org.flag4j.arrays.dense.Matrix,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"setSlice(Matrix, int, int)","u":"setSlice(org.flag4j.arrays.dense.Matrix,int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"setSlice(Matrix, int, int)","u":"setSlice(org.flag4j.arrays.dense.Matrix,int,int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setSlice(Matrix, int, int)","u":"setSlice(org.flag4j.arrays.dense.Matrix,int,int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setSlice(T, int, int)","u":"setSlice(T,int,int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"setSlice(X[][], int, int)","u":"setSlice(X[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSliceCopy(CMatrix, int, int)","u":"setSliceCopy(org.flag4j.arrays.dense.CMatrix,int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSliceCopy(CNumber[][], int, int)","u":"setSliceCopy(org.flag4j.complex_numbers.CNumber[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSliceCopy(CooCMatrix, int, int)","u":"setSliceCopy(org.flag4j.arrays.sparse.CooCMatrix,int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSliceCopy(CooMatrix, int, int)","u":"setSliceCopy(org.flag4j.arrays.sparse.CooMatrix,int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setSliceCopy(CooMatrix, int, int)","u":"setSliceCopy(org.flag4j.arrays.sparse.CooMatrix,int,int)"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"setSliceCopy(CooMatrix, int, int)","u":"setSliceCopy(org.flag4j.arrays.sparse.CooMatrix,int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSliceCopy(double[][], int, int)","u":"setSliceCopy(double[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setSliceCopy(double[][], int, int)","u":"setSliceCopy(double[][],int,int)"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"setSliceCopy(double[][], int, int)","u":"setSliceCopy(double[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSliceCopy(Double[][], int, int)","u":"setSliceCopy(java.lang.Double[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setSliceCopy(Double[][], int, int)","u":"setSliceCopy(java.lang.Double[][],int,int)"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"setSliceCopy(Double[][], int, int)","u":"setSliceCopy(java.lang.Double[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSliceCopy(int[][], int, int)","u":"setSliceCopy(int[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setSliceCopy(int[][], int, int)","u":"setSliceCopy(int[][],int,int)"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"setSliceCopy(int[][], int, int)","u":"setSliceCopy(int[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSliceCopy(Integer[][], int, int)","u":"setSliceCopy(java.lang.Integer[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setSliceCopy(Integer[][], int, int)","u":"setSliceCopy(java.lang.Integer[][],int,int)"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"setSliceCopy(Integer[][], int, int)","u":"setSliceCopy(java.lang.Integer[][],int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setSliceCopy(Matrix, int, int)","u":"setSliceCopy(org.flag4j.arrays.dense.Matrix,int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setSliceCopy(Matrix, int, int)","u":"setSliceCopy(org.flag4j.arrays.dense.Matrix,int,int)"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"setSliceCopy(Matrix, int, int)","u":"setSliceCopy(org.flag4j.arrays.dense.Matrix,int,int)"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"setSliceCopy(T, int, int)","u":"setSliceCopy(T,int,int)"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"setSliceCopy(X[][], int, int)","u":"setSliceCopy(X[][],int,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setSliceParamCheck(T, int, int, int, int)","u":"setSliceParamCheck(T,int,int,int,int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixGetSet","l":"setSliceParamCheck(T, U, int, int)","u":"setSliceParamCheck(T,U,int,int)"},{"p":"org.flag4j.linalg.decompositions.hess","c":"SymmHess","l":"setUp(Matrix)","u":"setUp(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"setUp(T)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"setUp(T)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"setUpArrays()"},{"p":"org.flag4j.linalg.decompositions.schur","c":"RealSchur","l":"setUpArrays()"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"setUpArrays()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseSetOperations","l":"setValues(CNumber[], CNumber[])","u":"setValues(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setValues(CNumber[][])","u":"setValues(org.flag4j.complex_numbers.CNumber[][])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseSetOperations","l":"setValues(CNumber[][], CNumber[])","u":"setValues(org.flag4j.complex_numbers.CNumber[][],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseSetOperations","l":"setValues(double[], CNumber[])","u":"setValues(double[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseSetOperations","l":"setValues(Double[], CNumber[])","u":"setValues(java.lang.Double[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseSetOperations","l":"setValues(double[], double[])","u":"setValues(double[],double[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseSetOperations","l":"setValues(Double[], double[])","u":"setValues(java.lang.Double[],double[])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setValues(double[][])"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setValues(double[][])"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"setValues(double[][])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setValues(Double[][])","u":"setValues(java.lang.Double[][])"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setValues(Double[][])","u":"setValues(java.lang.Double[][])"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"setValues(Double[][])","u":"setValues(java.lang.Double[][])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseSetOperations","l":"setValues(double[][], CNumber[])","u":"setValues(double[][],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseSetOperations","l":"setValues(Double[][], CNumber[])","u":"setValues(java.lang.Double[][],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseSetOperations","l":"setValues(double[][], double[])","u":"setValues(double[][],double[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseSetOperations","l":"setValues(Double[][], double[])","u":"setValues(java.lang.Double[][],double[])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseSetOperations","l":"setValues(int[], CNumber[])","u":"setValues(int[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseSetOperations","l":"setValues(int[], double[])","u":"setValues(int[],double[])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"setValues(int[][])"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setValues(int[][])"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"setValues(int[][])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseSetOperations","l":"setValues(int[][], CNumber[])","u":"setValues(int[][],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseSetOperations","l":"setValues(int[][], double[])","u":"setValues(int[][],double[])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseSetOperations","l":"setValues(Integer[], CNumber[])","u":"setValues(java.lang.Integer[],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseSetOperations","l":"setValues(Integer[], double[])","u":"setValues(java.lang.Integer[],double[])"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"setValues(Integer[][])","u":"setValues(java.lang.Integer[][])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseSetOperations","l":"setValues(Integer[][], CNumber[])","u":"setValues(java.lang.Integer[][],org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseSetOperations","l":"setValues(Integer[][], double[])","u":"setValues(java.lang.Integer[][],double[])"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"setValues(X[][])"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"sgn(CNumber)","u":"sgn(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core","c":"TensorBase","l":"shape"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"SHAPE_BROADCAST_ERR"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"SHAPE_ENTRIES_ERR"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"SHAPE_RANK_ERR"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"shape()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"shape()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"shape()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"shape()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"shape()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"shape()"},{"p":"org.flag4j.arrays.sparse","c":"SymmTriDiagonal","l":"shape()"},{"p":"org.flag4j.core","c":"MatrixMixin","l":"shape()"},{"p":"org.flag4j.core","c":"Shape","l":"Shape(boolean, int...)","u":"%3Cinit%3E(boolean,int...)"},{"p":"org.flag4j.core","c":"Shape","l":"Shape(int...)","u":"%3Cinit%3E(int...)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"shapeEntriesError(Shape, int)","u":"shapeEntriesError(org.flag4j.core.Shape,int)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"shapeRankErr(int, int)","u":"shapeRankErr(int,int)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"ComplexUnitaryDecomposition","l":"shift"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"RealUnitaryDecomposition","l":"shift"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"shift(int, int[])","u":"shift(int,int[])"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"shiftCol"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"shiftRange(int, int[], int, int)","u":"shiftRange(int,int[],int,int)"},{"p":"org.flag4j.rng","c":"RandomArray","l":"shuffle(double[])"},{"p":"org.flag4j.rng","c":"RandomArray","l":"shuffle(int[])"},{"p":"org.flag4j.rng","c":"RandomArray","l":"shuffle(Object[])","u":"shuffle(java.lang.Object[])"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"sin(CNumber)","u":"sin(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"sin(double)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"sinceLastExceptional"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher","l":"singletonInstance"},{"p":"org.flag4j.util.exceptions","c":"SingularMatrixException","l":"SingularMatrixException()","u":"%3Cinit%3E()"},{"p":"org.flag4j.util.exceptions","c":"SingularMatrixException","l":"SingularMatrixException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"sinh(CNumber)","u":"sinh(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"sinh(double)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"size"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"size"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"size"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"size"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"size"},{"p":"org.flag4j.arrays.sparse","c":"SymmTriDiagonal","l":"size"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"size()"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"size()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"size()"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"size()"},{"p":"org.flag4j.core","c":"VectorMixin","l":"size()"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexBackSolver","l":"solve(CMatrix, CMatrix)","u":"solve(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexForwardSolver","l":"solve(CMatrix, CMatrix)","u":"solve(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexBackSolver","l":"solve(CMatrix, CVector)","u":"solve(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexForwardSolver","l":"solve(CMatrix, CVector)","u":"solve(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealBackSolver","l":"solve(Matrix, Matrix)","u":"solve(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealForwardSolver","l":"solve(Matrix, Matrix)","u":"solve(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealBackSolver","l":"solve(Matrix, Vector)","u":"solve(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealForwardSolver","l":"solve(Matrix, Vector)","u":"solve(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactSolver","l":"solve(T, T)","u":"solve(T,T)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactTensorSolver","l":"solve(T, T)","u":"solve(T,T)"},{"p":"org.flag4j.linalg.solvers","c":"LinearSolver","l":"solve(T, T)","u":"solve(T,T)"},{"p":"org.flag4j.linalg.solvers","c":"LinearTensorSolver","l":"solve(T, T)","u":"solve(T,T)"},{"p":"org.flag4j.linalg.solvers.lstsq","c":"LstsqSolver","l":"solve(T, T)","u":"solve(T,T)"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactSolver","l":"solve(T, U)","u":"solve(T,U)"},{"p":"org.flag4j.linalg.solvers","c":"LinearSolver","l":"solve(T, U)","u":"solve(T,U)"},{"p":"org.flag4j.linalg.solvers.lstsq","c":"LstsqSolver","l":"solve(T, U)","u":"solve(T,U)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexBackSolver","l":"solveIdentity(CMatrix)","u":"solveIdentity(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexForwardSolver","l":"solveIdentity(CMatrix)","u":"solveIdentity(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealBackSolver","l":"solveIdentity(Matrix)","u":"solveIdentity(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealForwardSolver","l":"solveIdentity(Matrix)","u":"solveIdentity(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexBackSolver","l":"solveLower(CMatrix, CMatrix)","u":"solveLower(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexForwardSolver","l":"solveLower(CMatrix, CMatrix)","u":"solveLower(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexForwardSolver","l":"solveLower(CMatrix, CVector)","u":"solveLower(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealBackSolver","l":"solveLower(Matrix, Matrix)","u":"solveLower(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealForwardSolver","l":"solveLower(Matrix, Matrix)","u":"solveLower(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealForwardSolver","l":"solveLower(Matrix, Vector)","u":"solveLower(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexForwardSolver","l":"solveLowerIdentity(CMatrix)","u":"solveLowerIdentity(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealForwardSolver","l":"solveLowerIdentity(Matrix)","u":"solveLowerIdentity(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexForwardSolver","l":"solveUnitLower(CMatrix, CMatrix)","u":"solveUnitLower(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexForwardSolver","l":"solveUnitLower(CMatrix, CVector)","u":"solveUnitLower(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealForwardSolver","l":"solveUnitLower(Matrix, Matrix)","u":"solveUnitLower(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealForwardSolver","l":"solveUnitLower(Matrix, Vector)","u":"solveUnitLower(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ComplexForwardSolver","l":"solveUnitLowerIdentity(CMatrix)","u":"solveUnitLowerIdentity(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"RealForwardSolver","l":"solveUnitLowerIdentity(Matrix)","u":"solveUnitLowerIdentity(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"sortIndices()"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"sortIndices()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"sortIndices()"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"sortIndices()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"sortIndices()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"sortIndices()"},{"p":"org.flag4j.core.sparse_base","c":"SparseTensorMixin","l":"sortIndices()"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"SparseDataWrapper(T[], int[][], boolean)","u":"%3Cinit%3E(T[],int[][],boolean)"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseElementSearch","l":"SparseElementSearch()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"sparseSort()"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"sparseSortHelper(int, int, int)","u":"sparseSortHelper(int,int,int)"},{"p":"org.flag4j.core.sparse_base","c":"SparseTensorBase","l":"SparseTensorBase(Shape, int, D, int[], int[]...)","u":"%3Cinit%3E(org.flag4j.core.Shape,int,D,int[],int[]...)"},{"p":"org.flag4j.core.sparse_base","c":"SparseTensorBase","l":"SparseTensorBase(Shape, int, D, int[][])","u":"%3Cinit%3E(org.flag4j.core.Shape,int,D,int[][])"},{"p":"org.flag4j.arrays.sparse","c":"SparseUtils","l":"SparseUtils()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseUtils","l":"SparseUtils()","u":"%3Cinit%3E()"},{"p":"org.flag4j.core.sparse_base","c":"SparseTensorBase","l":"sparsity()"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"splice(CNumber[], CNumber[], int)","u":"splice(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber[],int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"splice(CNumber[], double[], int)","u":"splice(org.flag4j.complex_numbers.CNumber[],double[],int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"splice(double[], CNumber[], int)","u":"splice(double[],org.flag4j.complex_numbers.CNumber[],int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"splice(double[], double[], int)","u":"splice(double[],double[],int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"splice(int[], int[], int)","u":"splice(int[],int[],int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"splice(List, CNumber[], int)","u":"splice(java.util.List,org.flag4j.complex_numbers.CNumber[],int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"splice(List, double[], int)","u":"splice(java.util.List,double[],int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"splice(List, int[], int)","u":"splice(java.util.List,int[],int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"spliceDouble(List, double[], int)","u":"spliceDouble(java.util.List,double[],int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"sqrt()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"sqrt()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"sqrt()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"sqrt()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"sqrt()"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"sqrt()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"sqrt(CNumber)","u":"sqrt(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.common.complex","c":"ComplexOperations","l":"sqrt(CNumber[])","u":"sqrt(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"sqrt(double)"},{"p":"org.flag4j.operations.common.complex","c":"ComplexOperations","l":"sqrt(double[])"},{"p":"org.flag4j.operations.common.real","c":"RealOperations","l":"sqrt(double[])"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"sqrtComplex()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"sqrtComplex()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"sqrtComplex()"},{"p":"org.flag4j.core","c":"RealMatrixMixin","l":"sqrtComplex()"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"SQUARE_SHAPE_ERR"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher","l":"SQUARENESS_RATIO"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher","l":"SQUARENESS_RATIO"},{"p":"org.flag4j.linalg.transformations","c":"Givens","l":"stableTrigVals(double, double)","u":"stableTrigVals(double,double)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"stack(CMatrix)","u":"stack(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"stack(CMatrix)","u":"stack(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"stack(CMatrix)","u":"stack(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"stack(CMatrix)","u":"stack(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"stack(CMatrix)","u":"stack(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"stack(CMatrix)","u":"stack(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CMatrix)","u":"stack(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CMatrix, int)","u":"stack(org.flag4j.arrays.dense.CMatrix,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"stack(CooCMatrix)","u":"stack(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"stack(CooCMatrix)","u":"stack(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"stack(CooCMatrix)","u":"stack(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"stack(CooCMatrix)","u":"stack(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"stack(CooCMatrix)","u":"stack(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"stack(CooCMatrix)","u":"stack(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CooCMatrix)","u":"stack(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CooCMatrix, int)","u":"stack(org.flag4j.arrays.sparse.CooCMatrix,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"stack(CooCVector)","u":"stack(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"stack(CooCVector)","u":"stack(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"stack(CooCVector)","u":"stack(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"stack(CooCVector)","u":"stack(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"stack(CooCVector)","u":"stack(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"stack(CooCVector)","u":"stack(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"stack(CooCVector)","u":"stack(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"stack(CooCVector)","u":"stack(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"stack(CooCVector)","u":"stack(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"stack(CooCVector)","u":"stack(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CooCVector)","u":"stack(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"stack(CooCVector)","u":"stack(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"stack(CooCVector, int)","u":"stack(org.flag4j.arrays.sparse.CooCVector,int)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"stack(CooCVector, int)","u":"stack(org.flag4j.arrays.sparse.CooCVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"stack(CooCVector, int)","u":"stack(org.flag4j.arrays.sparse.CooCVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"stack(CooCVector, int)","u":"stack(org.flag4j.arrays.sparse.CooCVector,int)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CooCVector, int)","u":"stack(org.flag4j.arrays.sparse.CooCVector,int)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"stack(CooCVector, int)","u":"stack(org.flag4j.arrays.sparse.CooCVector,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"stack(CooMatrix)","u":"stack(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"stack(CooMatrix)","u":"stack(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"stack(CooMatrix)","u":"stack(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"stack(CooMatrix)","u":"stack(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"stack(CooMatrix)","u":"stack(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"stack(CooMatrix)","u":"stack(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CooMatrix)","u":"stack(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CooMatrix, int)","u":"stack(org.flag4j.arrays.sparse.CooMatrix,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"stack(CooVector)","u":"stack(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"stack(CooVector)","u":"stack(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"stack(CooVector)","u":"stack(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"stack(CooVector)","u":"stack(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"stack(CooVector)","u":"stack(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"stack(CooVector)","u":"stack(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"stack(CooVector)","u":"stack(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"stack(CooVector)","u":"stack(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"stack(CooVector)","u":"stack(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"stack(CooVector)","u":"stack(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CooVector)","u":"stack(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"stack(CooVector)","u":"stack(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"stack(CooVector, int)","u":"stack(org.flag4j.arrays.sparse.CooVector,int)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"stack(CooVector, int)","u":"stack(org.flag4j.arrays.sparse.CooVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"stack(CooVector, int)","u":"stack(org.flag4j.arrays.sparse.CooVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"stack(CooVector, int)","u":"stack(org.flag4j.arrays.sparse.CooVector,int)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CooVector, int)","u":"stack(org.flag4j.arrays.sparse.CooVector,int)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"stack(CooVector, int)","u":"stack(org.flag4j.arrays.sparse.CooVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"stack(CsrCMatrix)","u":"stack(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CsrCMatrix)","u":"stack(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CsrCMatrix, int)","u":"stack(org.flag4j.arrays.sparse.CsrCMatrix,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"stack(CsrMatrix)","u":"stack(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CsrMatrix)","u":"stack(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CsrMatrix, int)","u":"stack(org.flag4j.arrays.sparse.CsrMatrix,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"stack(CVector)","u":"stack(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"stack(CVector)","u":"stack(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"stack(CVector)","u":"stack(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"stack(CVector)","u":"stack(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"stack(CVector)","u":"stack(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"stack(CVector)","u":"stack(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"stack(CVector)","u":"stack(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"stack(CVector)","u":"stack(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"stack(CVector)","u":"stack(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"stack(CVector)","u":"stack(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CVector)","u":"stack(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"stack(CVector)","u":"stack(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"stack(CVector, int)","u":"stack(org.flag4j.arrays.dense.CVector,int)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"stack(CVector, int)","u":"stack(org.flag4j.arrays.dense.CVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"stack(CVector, int)","u":"stack(org.flag4j.arrays.dense.CVector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"stack(CVector, int)","u":"stack(org.flag4j.arrays.dense.CVector,int)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(CVector, int)","u":"stack(org.flag4j.arrays.dense.CVector,int)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"stack(CVector, int)","u":"stack(org.flag4j.arrays.dense.CVector,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"stack(Matrix)","u":"stack(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"stack(Matrix)","u":"stack(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"stack(Matrix)","u":"stack(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"stack(Matrix)","u":"stack(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"stack(Matrix)","u":"stack(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"stack(Matrix)","u":"stack(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(Matrix)","u":"stack(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(Matrix, int)","u":"stack(org.flag4j.arrays.dense.Matrix,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"stack(Vector)","u":"stack(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"stack(Vector)","u":"stack(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"stack(Vector)","u":"stack(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"stack(Vector)","u":"stack(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"stack(Vector)","u":"stack(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"stack(Vector)","u":"stack(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"stack(Vector)","u":"stack(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"stack(Vector)","u":"stack(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"stack(Vector)","u":"stack(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"stack(Vector)","u":"stack(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(Vector)","u":"stack(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"stack(Vector)","u":"stack(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"stack(Vector, int)","u":"stack(org.flag4j.arrays.dense.Vector,int)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"stack(Vector, int)","u":"stack(org.flag4j.arrays.dense.Vector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"stack(Vector, int)","u":"stack(org.flag4j.arrays.dense.Vector,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"stack(Vector, int)","u":"stack(org.flag4j.arrays.dense.Vector,int)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"stack(Vector, int)","u":"stack(org.flag4j.arrays.dense.Vector,int)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"stack(Vector, int)","u":"stack(org.flag4j.arrays.dense.Vector,int)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"STANDARD"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"STANDARD"},{"p":"org.flag4j.operations","c":"TransposeDispatcher.Algorithm","l":"STANDARD"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"STANDARD_THRESHOLD"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"STANDARD_VECTOR"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"STANDARD_VECTOR"},{"p":"org.flag4j.operations.dense_sparse.csr.complex","c":"ComplexCsrDenseMatrixMultiplication","l":"standard(CMatrix, CsrCMatrix)","u":"standard(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseMatrixMultiplication","l":"standard(CMatrix, CsrMatrix)","u":"standard(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixMultiplication","l":"standard(CNumber[], int[], int[], Shape, CNumber[], int[], int[], Shape)","u":"standard(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixMultiplication","l":"standard(CNumber[], int[], int[], Shape, CNumber[], Shape)","u":"standard(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixMultiplication","l":"standard(CNumber[], int[], int[], Shape, double[], int[], int[], Shape)","u":"standard(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,double[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"standard(CNumber[], int[], int[], Shape, double[], Shape)","u":"standard(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixMultiplication","l":"standard(CNumber[], Shape, CNumber[], int[], int[], Shape)","u":"standard(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultiplication","l":"standard(CNumber[], Shape, CNumber[], Shape)","u":"standard(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"standard(CNumber[], Shape, double[], int[], int[], Shape)","u":"standard(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"standard(CNumber[], Shape, double[], Shape)","u":"standard(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"standard(CNumber[], Shape, int, int)","u":"standard(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,int,int)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"standard(CNumber[], Shape, int[])","u":"standard(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,int[])"},{"p":"org.flag4j.operations.dense_sparse.csr.complex","c":"ComplexCsrDenseMatrixMultiplication","l":"standard(CsrCMatrix, CMatrix)","u":"standard(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrMatrixMultiplication","l":"standard(CsrCMatrix, CsrCMatrix)","u":"standard(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.operations.sparse.csr.real_complex","c":"RealComplexCsrMatrixMultiplication","l":"standard(CsrCMatrix, CsrMatrix)","u":"standard(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseMatrixMultiplication","l":"standard(CsrCMatrix, Matrix)","u":"standard(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseMatrixMultiplication","l":"standard(CsrMatrix, CMatrix)","u":"standard(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.sparse.csr.real_complex","c":"RealComplexCsrMatrixMultiplication","l":"standard(CsrMatrix, CsrCMatrix)","u":"standard(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrMatrixMultiplication","l":"standard(CsrMatrix, CsrMatrix)","u":"standard(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.operations.dense_sparse.csr.real","c":"RealCsrDenseMatrixMultiplication","l":"standard(CsrMatrix, Matrix)","u":"standard(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixMultiplication","l":"standard(double[], int[], int[], Shape, CNumber[], int[], int[], Shape)","u":"standard(double[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"standard(double[], int[], int[], Shape, CNumber[], Shape)","u":"standard(double[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixMultiplication","l":"standard(double[], int[], int[], Shape, double[], int[], int[], Shape)","u":"standard(double[],int[],int[],org.flag4j.core.Shape,double[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixMultiplication","l":"standard(double[], int[], int[], Shape, double[], Shape)","u":"standard(double[],int[],int[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"standard(double[], Shape, CNumber[], int[], int[], Shape)","u":"standard(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"standard(double[], Shape, CNumber[], Shape)","u":"standard(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixMultiplication","l":"standard(double[], Shape, double[], int[], int[], Shape)","u":"standard(double[],org.flag4j.core.Shape,double[],int[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultiplication","l":"standard(double[], Shape, double[], Shape)","u":"standard(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseTranspose","l":"standard(double[], Shape, int, int)","u":"standard(double[],org.flag4j.core.Shape,int,int)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseTranspose","l":"standard(double[], Shape, int[])","u":"standard(double[],org.flag4j.core.Shape,int[])"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseMatrixMultiplication","l":"standard(Matrix, CsrCMatrix)","u":"standard(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.operations.dense_sparse.csr.real","c":"RealCsrDenseMatrixMultiplication","l":"standard(Matrix, CsrMatrix)","u":"standard(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrMatrixMultiplication","l":"standardAsSparse(CsrCMatrix, CsrCMatrix)","u":"standardAsSparse(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.operations.sparse.csr.real_complex","c":"RealComplexCsrMatrixMultiplication","l":"standardAsSparse(CsrCMatrix, CsrMatrix)","u":"standardAsSparse(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.operations.sparse.csr.real_complex","c":"RealComplexCsrMatrixMultiplication","l":"standardAsSparse(CsrMatrix, CsrCMatrix)","u":"standardAsSparse(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrMatrixMultiplication","l":"standardAsSparse(CsrMatrix, CsrMatrix)","u":"standardAsSparse(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"standardConcurrent(CNumber[], Shape, int, int)","u":"standardConcurrent(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,int,int)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"standardConcurrent(CNumber[], Shape, int[])","u":"standardConcurrent(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,int[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseTranspose","l":"standardConcurrent(double[], Shape, int, int)","u":"standardConcurrent(double[],org.flag4j.core.Shape,int,int)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseTranspose","l":"standardConcurrent(double[], Shape, int[])","u":"standardConcurrent(double[],org.flag4j.core.Shape,int[])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"standardConcurrentHerm(CNumber[], Shape, int, int)","u":"standardConcurrentHerm(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,int,int)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"standardConcurrentHerm(CNumber[], Shape, int[])","u":"standardConcurrentHerm(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,int[])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"standardHerm(CNumber[], Shape, int, int)","u":"standardHerm(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,int,int)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseTranspose","l":"standardIntMatrix(int[][])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"standardMatrix(CNumber[], int, int)","u":"standardMatrix(org.flag4j.complex_numbers.CNumber[],int,int)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseTranspose","l":"standardMatrix(double[], int, int)","u":"standardMatrix(double[],int,int)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"standardMatrixConcurrent(CNumber[], int, int)","u":"standardMatrixConcurrent(org.flag4j.complex_numbers.CNumber[],int,int)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseTranspose","l":"standardMatrixConcurrent(double[], int, int)","u":"standardMatrixConcurrent(double[],int,int)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"standardMatrixConcurrentHerm(CNumber[], int, int)","u":"standardMatrixConcurrentHerm(org.flag4j.complex_numbers.CNumber[],int,int)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTranspose","l":"standardMatrixHerm(CNumber[], int, int)","u":"standardMatrixHerm(org.flag4j.complex_numbers.CNumber[],int,int)"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseMatrixMultiplication","l":"standardTranspose(CsrMatrix, CMatrix)","u":"standardTranspose(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense_sparse.csr.real","c":"RealCsrDenseMatrixMultiplication","l":"standardTranspose(CsrMatrix, Matrix)","u":"standardTranspose(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixMultiplication","l":"standardVector(CNumber[], int[], int[], Shape, CNumber[], int[])","u":"standardVector(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[])"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixMultiplication","l":"standardVector(CNumber[], int[], int[], Shape, CNumber[], Shape)","u":"standardVector(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixMultiplication","l":"standardVector(CNumber[], int[], int[], Shape, double[], int[], Shape)","u":"standardVector(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,double[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"standardVector(CNumber[], int[], int[], Shape, double[], Shape)","u":"standardVector(org.flag4j.complex_numbers.CNumber[],int[],int[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixMultiplication","l":"standardVector(CNumber[], Shape, CNumber[], int[])","u":"standardVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[])"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseMatrixMultiplication","l":"standardVector(CNumber[], Shape, CNumber[], Shape)","u":"standardVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"standardVector(CNumber[], Shape, double[], int[])","u":"standardVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],int[])"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"standardVector(CNumber[], Shape, double[], Shape)","u":"standardVector(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrMatrixMultiplication","l":"standardVector(CsrCMatrix, CooCVector)","u":"standardVector(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.csr.real_complex","c":"RealComplexCsrMatrixMultiplication","l":"standardVector(CsrCMatrix, CooVector)","u":"standardVector(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.dense_sparse.csr.complex","c":"ComplexCsrDenseMatrixMultiplication","l":"standardVector(CsrCMatrix, CVector)","u":"standardVector(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseMatrixMultiplication","l":"standardVector(CsrCMatrix, Vector)","u":"standardVector(org.flag4j.arrays.sparse.CsrCMatrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.sparse.csr.real_complex","c":"RealComplexCsrMatrixMultiplication","l":"standardVector(CsrMatrix, CooCVector)","u":"standardVector(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.dense_sparse.csr.real","c":"RealCsrDenseMatrixMultiplication","l":"standardVector(CsrMatrix, CooVector)","u":"standardVector(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","c":"RealComplexCsrDenseMatrixMultiplication","l":"standardVector(CsrMatrix, CVector)","u":"standardVector(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.dense_sparse.csr.real","c":"RealCsrDenseMatrixMultiplication","l":"standardVector(CsrMatrix, Vector)","u":"standardVector(org.flag4j.arrays.sparse.CsrMatrix,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixMultiplication","l":"standardVector(double[], int[], int[], Shape, CNumber[], int[], Shape)","u":"standardVector(double[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"standardVector(double[], int[], int[], Shape, CNumber[], Shape)","u":"standardVector(double[],int[],int[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixMultiplication","l":"standardVector(double[], int[], int[], Shape, double[], int[])","u":"standardVector(double[],int[],int[],org.flag4j.core.Shape,double[],int[])"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixMultiplication","l":"standardVector(double[], int[], int[], Shape, double[], Shape)","u":"standardVector(double[],int[],int[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixMultiplication","l":"standardVector(double[], Shape, CNumber[], int[])","u":"standardVector(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],int[])"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseMatrixMultiplication","l":"standardVector(double[], Shape, CNumber[], Shape)","u":"standardVector(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixMultiplication","l":"standardVector(double[], Shape, double[], int[])","u":"standardVector(double[],org.flag4j.core.Shape,double[],int[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseMatrixMultiplication","l":"standardVector(double[], Shape, double[], Shape)","u":"standardVector(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"storeReflectors"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"stridedFillZeros(CNumber[], int, int)","u":"stridedFillZeros(org.flag4j.complex_numbers.CNumber[],int,int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"stridedFillZeros(CNumber[], int, int, int)","u":"stridedFillZeros(org.flag4j.complex_numbers.CNumber[],int,int,int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"stridedFillZeros(double[], int, int)","u":"stridedFillZeros(double[],int,int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"stridedFillZeros(double[], int, int, int)","u":"stridedFillZeros(double[],int,int,int)"},{"p":"org.flag4j.core","c":"Shape","l":"strides"},{"p":"org.flag4j.util","c":"StringUtils","l":"StringUtils()","u":"%3Cinit%3E()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"sub(CMatrix)","u":"sub(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"sub(CMatrix)","u":"sub(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"sub(CMatrix)","u":"sub(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"sub(CMatrix)","u":"sub(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"sub(CMatrix)","u":"sub(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"sub(CMatrix)","u":"sub(org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixOperations","l":"sub(CMatrix, CooCMatrix)","u":"sub(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"sub(CMatrix, CooMatrix)","u":"sub(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"sub(CNumber)","u":"sub(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"sub(CNumber)","u":"sub(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"sub(CNumber)","u":"sub(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"sub(CNumber)","u":"sub(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"sub(CNumber)","u":"sub(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"sub(CNumber)","u":"sub(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"sub(CNumber)","u":"sub(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"sub(CNumber)","u":"sub(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"sub(CNumber)","u":"sub(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"sub(CNumber)","u":"sub(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"sub(CNumber)","u":"sub(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"sub(CNumber)","u":"sub(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"sub(CNumber[], CNumber)","u":"sub(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseOperations","l":"sub(CNumber[], double)","u":"sub(org.flag4j.complex_numbers.CNumber[],double)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"sub(CNumber[], Shape, CNumber[], Shape)","u":"sub(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseOperations","l":"sub(CNumber[], Shape, double[], Shape)","u":"sub(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"sub(CooCMatrix)","u":"sub(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"sub(CooCMatrix)","u":"sub(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"sub(CooCMatrix)","u":"sub(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"sub(CooCMatrix)","u":"sub(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"sub(CooCMatrix)","u":"sub(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"sub(CooCMatrix)","u":"sub(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"sub(CooCMatrix)","u":"sub(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixOperations","l":"sub(CooCMatrix, CMatrix)","u":"sub(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixOperations","l":"sub(CooCMatrix, CNumber)","u":"sub(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixOperations","l":"sub(CooCMatrix, CooCMatrix)","u":"sub(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixOperations","l":"sub(CooCMatrix, CooMatrix)","u":"sub(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixOperations","l":"sub(CooCMatrix, double)","u":"sub(org.flag4j.arrays.sparse.CooCMatrix,double)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"sub(CooCMatrix, Matrix)","u":"sub(org.flag4j.arrays.sparse.CooCMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"sub(CooCTensor)","u":"sub(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"sub(CooCTensor)","u":"sub(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"sub(CooCTensor)","u":"sub(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"sub(CooCTensor)","u":"sub(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"sub(CooCTensor)","u":"sub(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexCooTensorOperations","l":"sub(CooCTensor, CooCTensor)","u":"sub(org.flag4j.arrays.sparse.CooCTensor,org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexCooTensorOperations","l":"sub(CooCTensor, CooTensor)","u":"sub(org.flag4j.arrays.sparse.CooCTensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseOperations","l":"sub(CooCTensor, CTensor)","u":"sub(org.flag4j.arrays.sparse.CooCTensor,org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseOperations","l":"sub(CooCTensor, Tensor)","u":"sub(org.flag4j.arrays.sparse.CooCTensor,org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"sub(CooCVector)","u":"sub(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"sub(CooCVector)","u":"sub(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"sub(CooCVector)","u":"sub(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"sub(CooCVector)","u":"sub(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"sub(CooCVector)","u":"sub(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseVectorOperations","l":"sub(CooCVector, CNumber)","u":"sub(org.flag4j.arrays.sparse.CooCVector,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseVectorOperations","l":"sub(CooCVector, CooCVector)","u":"sub(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseVectorOperations","l":"sub(CooCVector, CooVector)","u":"sub(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseVectorOperations","l":"sub(CooCVector, CVector)","u":"sub(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseVectorOperations","l":"sub(CooCVector, double)","u":"sub(org.flag4j.arrays.sparse.CooCVector,double)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"sub(CooCVector, Vector)","u":"sub(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"sub(CooMatrix)","u":"sub(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"sub(CooMatrix)","u":"sub(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"sub(CooMatrix)","u":"sub(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"sub(CooMatrix)","u":"sub(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"sub(CooMatrix)","u":"sub(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"sub(CooMatrix)","u":"sub(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"sub(CooMatrix)","u":"sub(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"sub(CooMatrix, CMatrix)","u":"sub(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.dense.CMatrix)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixOperations","l":"sub(CooMatrix, CNumber)","u":"sub(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseMatrixOperations","l":"sub(CooMatrix, CooCMatrix)","u":"sub(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixOperations","l":"sub(CooMatrix, CooMatrix)","u":"sub(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixOperations","l":"sub(CooMatrix, double)","u":"sub(org.flag4j.arrays.sparse.CooMatrix,double)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixOperations","l":"sub(CooMatrix, Matrix)","u":"sub(org.flag4j.arrays.sparse.CooMatrix,org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"sub(CooTensor)","u":"sub(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"sub(CooTensor)","u":"sub(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"sub(CooTensor)","u":"sub(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"sub(CooTensor)","u":"sub(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"sub(CooTensor)","u":"sub(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexCooTensorOperations","l":"sub(CooTensor, CooCTensor)","u":"sub(org.flag4j.arrays.sparse.CooTensor,org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealCooTensorOperations","l":"sub(CooTensor, CooTensor)","u":"sub(org.flag4j.arrays.sparse.CooTensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseOperations","l":"sub(CooTensor, CTensor)","u":"sub(org.flag4j.arrays.sparse.CooTensor,org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseTensorOperations","l":"sub(CooTensor, Tensor)","u":"sub(org.flag4j.arrays.sparse.CooTensor,org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"sub(CooVector)","u":"sub(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"sub(CooVector)","u":"sub(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"sub(CooVector)","u":"sub(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"sub(CooVector)","u":"sub(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"sub(CooVector)","u":"sub(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseVectorOperations","l":"sub(CooVector, CNumber)","u":"sub(org.flag4j.arrays.sparse.CooVector,org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseVectorOperations","l":"sub(CooVector, CooCVector)","u":"sub(org.flag4j.arrays.sparse.CooVector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseVectorOperations","l":"sub(CooVector, CooVector)","u":"sub(org.flag4j.arrays.sparse.CooVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"sub(CooVector, CVector)","u":"sub(org.flag4j.arrays.sparse.CooVector,org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseVectorOperations","l":"sub(CooVector, double)","u":"sub(org.flag4j.arrays.sparse.CooVector,double)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseVectorOperations","l":"sub(CooVector, Vector)","u":"sub(org.flag4j.arrays.sparse.CooVector,org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"sub(CsrCMatrix)","u":"sub(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"sub(CsrCMatrix)","u":"sub(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"sub(CsrCMatrix)","u":"sub(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"sub(CsrCMatrix)","u":"sub(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"sub(CsrCMatrix)","u":"sub(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"sub(CsrCMatrix)","u":"sub(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"sub(CsrCMatrix)","u":"sub(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"sub(CsrMatrix)","u":"sub(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"sub(CsrMatrix)","u":"sub(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"sub(CsrMatrix)","u":"sub(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"sub(CsrMatrix)","u":"sub(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"sub(CsrMatrix)","u":"sub(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"sub(CsrMatrix)","u":"sub(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"sub(CsrMatrix)","u":"sub(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"sub(CTensor)","u":"sub(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"sub(CTensor)","u":"sub(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"sub(CTensor)","u":"sub(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"sub(CTensor)","u":"sub(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseOperations","l":"sub(CTensor, CooCTensor)","u":"sub(org.flag4j.arrays.dense.CTensor,org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseOperations","l":"sub(CTensor, CooTensor)","u":"sub(org.flag4j.arrays.dense.CTensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"sub(CVector)","u":"sub(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"sub(CVector)","u":"sub(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"sub(CVector)","u":"sub(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"sub(CVector)","u":"sub(org.flag4j.arrays.dense.CVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseVectorOperations","l":"sub(CVector, CooCVector)","u":"sub(org.flag4j.arrays.dense.CVector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"sub(CVector, CooVector)","u":"sub(org.flag4j.arrays.dense.CVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"sub(double)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"sub(double)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"sub(double)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"sub(double)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"sub(double)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"sub(double)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"sub(double)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"sub(double)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"sub(double)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"sub(double)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"sub(double)"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"sub(double)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"sub(double[], CNumber)","u":"sub(double[],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseOperations","l":"sub(double[], CNumber)","u":"sub(double[],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseOperations","l":"sub(double[], double)","u":"sub(double[],double)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseOperations","l":"sub(double[], Shape, CNumber[], Shape)","u":"sub(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseOperations","l":"sub(double[], Shape, double[], Shape)","u":"sub(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"sub(Matrix)","u":"sub(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"sub(Matrix)","u":"sub(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"sub(Matrix)","u":"sub(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"sub(Matrix)","u":"sub(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"sub(Matrix)","u":"sub(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"sub(Matrix)","u":"sub(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"sub(Matrix, CooCMatrix)","u":"sub(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixOperations","l":"sub(Matrix, CooMatrix)","u":"sub(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"sub(T)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"sub(T)"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"sub(T)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"sub(Tensor)","u":"sub(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"sub(Tensor)","u":"sub(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"sub(Tensor)","u":"sub(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"sub(Tensor)","u":"sub(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseOperations","l":"sub(Tensor, CooCTensor)","u":"sub(org.flag4j.arrays.dense.Tensor,org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseTensorOperations","l":"sub(Tensor, CooTensor)","u":"sub(org.flag4j.arrays.dense.Tensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"sub(Vector)","u":"sub(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"sub(Vector)","u":"sub(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"sub(Vector)","u":"sub(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"sub(Vector)","u":"sub(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"sub(Vector, CooCVector)","u":"sub(org.flag4j.arrays.dense.Vector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseVectorOperations","l":"sub(Vector, CooVector)","u":"sub(org.flag4j.arrays.dense.Vector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"subDiagonal"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseMatrixOperations","l":"subEq(CMatrix, CooCMatrix)","u":"subEq(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseMatrixOperations","l":"subEq(CMatrix, CooMatrix)","u":"subEq(org.flag4j.arrays.dense.CMatrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"subEq(CNumber)","u":"subEq(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"subEq(CNumber[], CNumber)","u":"subEq(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseOperations","l":"subEq(CNumber[], double)","u":"subEq(org.flag4j.complex_numbers.CNumber[],double)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseOperations","l":"subEq(CNumber[], Shape, CNumber[], Shape)","u":"subEq(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseOperations","l":"subEq(CNumber[], Shape, double[], Shape)","u":"subEq(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"subEq(CooCMatrix)","u":"subEq(org.flag4j.arrays.sparse.CooCMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"subEq(CooCTensor)","u":"subEq(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"subEq(CooCTensor)","u":"subEq(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.core","c":"ComplexTensorExclusiveMixin","l":"subEq(CooCTensor)","u":"subEq(org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"subEq(CooCVector)","u":"subEq(org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"subEq(CooMatrix)","u":"subEq(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"subEq(CooMatrix)","u":"subEq(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"subEq(CooMatrix)","u":"subEq(org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"subEq(CooTensor)","u":"subEq(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"subEq(CooTensor)","u":"subEq(org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"subEq(CooVector)","u":"subEq(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"subEq(CooVector)","u":"subEq(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core.dense_base","c":"DenseVectorMixin","l":"subEq(CooVector)","u":"subEq(org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseOperations","l":"subEq(CTensor, CooCTensor)","u":"subEq(org.flag4j.arrays.dense.CTensor,org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseOperations","l":"subEq(CTensor, CooTensor)","u":"subEq(org.flag4j.arrays.dense.CTensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseVectorOperations","l":"subEq(CVector, CooCVector)","u":"subEq(org.flag4j.arrays.dense.CVector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseVectorOperations","l":"subEq(CVector, CooVector)","u":"subEq(org.flag4j.arrays.dense.CVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"subEq(Double)","u":"subEq(java.lang.Double)"},{"p":"org.flag4j.core.dense_base","c":"DenseMixin","l":"subEq(Double)","u":"subEq(java.lang.Double)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"subEq(Double)","u":"subEq(java.lang.Double)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseOperations","l":"subEq(double[], double)","u":"subEq(double[],double)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseOperations","l":"subEq(double[], Shape, double[], Shape)","u":"subEq(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"subEq(Matrix)","u":"subEq(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.core.dense_base","c":"DenseMatrixMixin","l":"subEq(Matrix)","u":"subEq(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseMatrixOperations","l":"subEq(Matrix, CooMatrix)","u":"subEq(org.flag4j.arrays.dense.Matrix,org.flag4j.arrays.sparse.CooMatrix)"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"subEq(T)"},{"p":"org.flag4j.core.dense_base","c":"DenseTensorBase","l":"subEq(T)"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"subEq(T)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"subEq(Tensor)","u":"subEq(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"subEq(Tensor)","u":"subEq(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.core","c":"ComplexTensorExclusiveMixin","l":"subEq(Tensor)","u":"subEq(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.core.dense_base","c":"DenseTensorMixin","l":"subEq(Tensor)","u":"subEq(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseTensorOperations","l":"subEq(Tensor, CooTensor)","u":"subEq(org.flag4j.arrays.dense.Tensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"subEq(Vector)","u":"subEq(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core.dense_base","c":"DenseVectorMixin","l":"subEq(Vector)","u":"subEq(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseVectorOperations","l":"subEq(Vector, CooVector)","u":"subEq(org.flag4j.arrays.dense.Vector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.core.dense_base","c":"DenseMixin","l":"subEq(X)"},{"p":"org.flag4j.linalg","c":"SubSpace","l":"SubSpace()","u":"%3Cinit%3E()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"sum()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"sum()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"sum()"},{"p":"org.flag4j.core.sparse_base","c":"RealSparseTensorBase","l":"sum()"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"sum()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"sum(CNumber...)","u":"sum(org.flag4j.complex_numbers.CNumber...)"},{"p":"org.flag4j.operations.common.complex","c":"AggregateComplex","l":"sum(CNumber[])","u":"sum(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.operations.common.real","c":"AggregateReal","l":"sum(double[])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"sumCols()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"sumCols()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"sumCols()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"sumCols()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"sumCols()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"sumCols()"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"sumCols()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"sumRows()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"sumRows()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"sumRows()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"sumRows()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"sumRows()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"sumRows()"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"sumRows()"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"SVD(boolean, boolean)","u":"%3Cinit%3E(boolean,boolean)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"swap(double[], int, int)","u":"swap(double[],int,int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"swap(int[], int, int)","u":"swap(int[],int,int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"swap(int[], int[])","u":"swap(int[],int[])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"swap(Object[], int, int)","u":"swap(java.lang.Object[],int,int)"},{"p":"org.flag4j.core","c":"Shape","l":"swapAxes(int, int)","u":"swapAxes(int,int)"},{"p":"org.flag4j.core","c":"Shape","l":"swapAxes(int...)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixManipulations","l":"swapCols(CooCMatrix, int, int)","u":"swapCols(org.flag4j.arrays.sparse.CooCMatrix,int,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixManipulations","l":"swapCols(CooMatrix, int, int)","u":"swapCols(org.flag4j.arrays.sparse.CooMatrix,int,int)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrManipulations","l":"swapCols(CsrCMatrix, int, int)","u":"swapCols(org.flag4j.arrays.sparse.CsrCMatrix,int,int)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrManipulations","l":"swapCols(CsrMatrix, int, int)","u":"swapCols(org.flag4j.arrays.sparse.CsrMatrix,int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"swapCols(int, int)","u":"swapCols(int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"swapCols(int, int)","u":"swapCols(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"swapCols(int, int)","u":"swapCols(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"swapCols(int, int)","u":"swapCols(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"swapCols(int, int)","u":"swapCols(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"swapCols(int, int)","u":"swapCols(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"swapCols(int, int)","u":"swapCols(int,int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"swapCols(int, int)","u":"swapCols(int,int)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"swapCols(int, int)","u":"swapCols(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"swapPointers"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseMatrixManipulations","l":"swapRows(CooCMatrix, int, int)","u":"swapRows(org.flag4j.arrays.sparse.CooCMatrix,int,int)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseMatrixManipulations","l":"swapRows(CooMatrix, int, int)","u":"swapRows(org.flag4j.arrays.sparse.CooMatrix,int,int)"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrManipulations","l":"swapRows(CsrCMatrix, int, int)","u":"swapRows(org.flag4j.arrays.sparse.CsrCMatrix,int,int)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrManipulations","l":"swapRows(CsrMatrix, int, int)","u":"swapRows(org.flag4j.arrays.sparse.CsrMatrix,int,int)"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"swapRows(int, int)","u":"swapRows(int,int)"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"swapRows(int, int)","u":"swapRows(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"swapRows(int, int)","u":"swapRows(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"swapRows(int, int)","u":"swapRows(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"swapRows(int, int)","u":"swapRows(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"swapRows(int, int)","u":"swapRows(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"swapRows(int, int)","u":"swapRows(int,int)"},{"p":"org.flag4j.core","c":"MatrixManipulationsMixin","l":"swapRows(int, int)","u":"swapRows(int,int)"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"swapRows(int, int)","u":"swapRows(int,int)"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"swapUnsafe(int[], int[])","u":"swapUnsafe(int[],int[])"},{"p":"org.flag4j.linalg.decompositions.hess","c":"SymmHess","l":"SymmHess()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.hess","c":"SymmHess","l":"SymmHess(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"org.flag4j.linalg.decompositions.hess","c":"SymmHess","l":"SymmHess(boolean, boolean)","u":"%3Cinit%3E(boolean,boolean)"},{"p":"org.flag4j.linalg.transformations","c":"Householder","l":"symmLeftRightMultReflector(Matrix, double[], double, int, double[])","u":"symmLeftRightMultReflector(org.flag4j.arrays.dense.Matrix,double[],double,int,double[])"},{"p":"org.flag4j.arrays.sparse","c":"SymmTriDiagonal","l":"SymmTriDiagonal(double[], double[])","u":"%3Cinit%3E(double[],double[])"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"T"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"T()"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"T()"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"T()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"T()"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"T()"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"T()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"T()"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"T()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"T()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"T()"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"T()"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"T()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"T()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"T()"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"T()"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"T()"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"T(int, int)","u":"T(int,int)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"T(int, int)","u":"T(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"T(int, int)","u":"T(int,int)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"T(int, int)","u":"T(int,int)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"T(int, int)","u":"T(int,int)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"T(int...)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"T(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"T(int...)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"T(int...)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"T(int...)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"tan(CNumber)","u":"tan(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"tan(double)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"tanh(CNumber)","u":"tanh(org.flag4j.complex_numbers.CNumber)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"tanh(double)"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"temp"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"Tensor(Matrix)","u":"%3Cinit%3E(org.flag4j.arrays.dense.Matrix)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"Tensor(Shape)","u":"%3Cinit%3E(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"Tensor(Shape, double)","u":"%3Cinit%3E(org.flag4j.core.Shape,double)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"Tensor(Shape, double[])","u":"%3Cinit%3E(org.flag4j.core.Shape,double[])"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"Tensor(Shape, Double[])","u":"%3Cinit%3E(org.flag4j.core.Shape,java.lang.Double[])"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"Tensor(Shape, int[])","u":"%3Cinit%3E(org.flag4j.core.Shape,int[])"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"Tensor(Shape, Integer[])","u":"%3Cinit%3E(org.flag4j.core.Shape,java.lang.Integer[])"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"Tensor(Tensor)","u":"%3Cinit%3E(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"Tensor(Vector)","u":"%3Cinit%3E(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.core","c":"TensorBase","l":"TensorBase(Shape, D)","u":"%3Cinit%3E(org.flag4j.core.Shape,D)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexCooTensorDot","l":"tensorDot(CooCTensor, CooCTensor, int[], int[])","u":"tensorDot(org.flag4j.arrays.sparse.CooCTensor,org.flag4j.arrays.sparse.CooCTensor,int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"tensorDot(CooCTensor, int[], int[])","u":"tensorDot(org.flag4j.arrays.sparse.CooCTensor,int[],int[])"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealCooTensorDot","l":"tensorDot(CooTensor, CooTensor, int[], int[])","u":"tensorDot(org.flag4j.arrays.sparse.CooTensor,org.flag4j.arrays.sparse.CooTensor,int[],int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"tensorDot(CooTensor, int[], int[])","u":"tensorDot(org.flag4j.arrays.sparse.CooTensor,int[],int[])"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"tensorDot(CTensor)","u":"tensorDot(org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseTensorDot","l":"tensorDot(CTensor, CTensor, int[], int[])","u":"tensorDot(org.flag4j.arrays.dense.CTensor,org.flag4j.arrays.dense.CTensor,int[],int[])"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"tensorDot(CTensor, int[], int[])","u":"tensorDot(org.flag4j.arrays.dense.CTensor,int[],int[])"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"tensorDot(T)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"tensorDot(T, int)","u":"tensorDot(T,int)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"tensorDot(T, int, int)","u":"tensorDot(T,int,int)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"tensorDot(T, int[], int[])","u":"tensorDot(T,int[],int[])"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"tensorDot(Tensor)","u":"tensorDot(org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"tensorDot(Tensor, int[], int[])","u":"tensorDot(org.flag4j.arrays.dense.Tensor,int[],int[])"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseTensorDot","l":"tensorDot(Tensor, Tensor)","u":"tensorDot(org.flag4j.arrays.dense.Tensor,org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseTensorDot","l":"tensorDot(Tensor, Tensor, int[], int[])","u":"tensorDot(org.flag4j.arrays.dense.Tensor,org.flag4j.arrays.dense.Tensor,int[],int[])"},{"p":"org.flag4j.operations.common","c":"TensorEquals","l":"TensorEquals()","u":"%3Cinit%3E()"},{"p":"org.flag4j.operations.dense.complex","c":"ComplexDenseEquals","l":"tensorEquals(CNumber[], Shape, CNumber[], Shape)","u":"tensorEquals(org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseEquals","l":"tensorEquals(CooCTensor, CooCTensor)","u":"tensorEquals(org.flag4j.arrays.sparse.CooCTensor,org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseEquals","l":"tensorEquals(CooTensor, CooCTensor)","u":"tensorEquals(org.flag4j.arrays.sparse.CooTensor,org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseEquals","l":"tensorEquals(CooTensor, CooTensor)","u":"tensorEquals(org.flag4j.arrays.sparse.CooTensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseEquals","l":"tensorEquals(CTensor, CooCTensor)","u":"tensorEquals(org.flag4j.arrays.dense.CTensor,org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseEquals","l":"tensorEquals(CTensor, CooTensor)","u":"tensorEquals(org.flag4j.arrays.dense.CTensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseEquals","l":"tensorEquals(double[], Shape, CNumber[], Shape)","u":"tensorEquals(double[],org.flag4j.core.Shape,org.flag4j.complex_numbers.CNumber[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseEquals","l":"tensorEquals(double[], Shape, double[], Shape)","u":"tensorEquals(double[],org.flag4j.core.Shape,double[],org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseEquals","l":"tensorEquals(Tensor, CooCTensor)","u":"tensorEquals(org.flag4j.arrays.dense.Tensor,org.flag4j.arrays.sparse.CooCTensor)"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseEquals","l":"tensorEquals(Tensor, CooTensor)","u":"tensorEquals(org.flag4j.arrays.dense.Tensor,org.flag4j.arrays.sparse.CooTensor)"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseEquals","l":"tensorEquals(Tensor, CTensor)","u":"tensorEquals(org.flag4j.arrays.dense.Tensor,org.flag4j.arrays.dense.CTensor)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseEquals","l":"tensorEquals(Tensor, Tensor)","u":"tensorEquals(org.flag4j.arrays.dense.Tensor,org.flag4j.arrays.dense.Tensor)"},{"p":"org.flag4j.core","c":"TensorBase","l":"tensorEquals(TensorBase)","u":"tensorEquals(org.flag4j.core.TensorBase)"},{"p":"org.flag4j.core","c":"TensorComparisonsMixin","l":"tensorEquals(TensorBase)","u":"tensorEquals(org.flag4j.core.TensorBase)"},{"p":"org.flag4j.io","c":"TensorInputStream","l":"TensorInputStream(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"tensorInv()"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"tensorInv(int)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"tensorInv(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"tensorInv(int)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"tensorInv(int)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"tensorInv(int)"},{"p":"org.flag4j.linalg","c":"TensorInvert","l":"TensorInvert()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"tensorNormL2(CNumber[])","u":"tensorNormL2(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"tensorNormL2(double[])"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"tensorNormLp(CNumber[], double)","u":"tensorNormLp(org.flag4j.complex_numbers.CNumber[],double)"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"tensorNormLp(double[], double)","u":"tensorNormLp(double[],double)"},{"p":"org.flag4j.linalg","c":"TensorNorms","l":"TensorNorms()","u":"%3Cinit%3E()"},{"p":"org.flag4j.io","c":"TensorOutputStream","l":"TensorOutputStream(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"org.flag4j.io","c":"TensorReader","l":"TensorReader()","u":"%3Cinit%3E()"},{"p":"org.flag4j.util.exceptions","c":"TensorShapeException","l":"TensorShapeException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"org.flag4j.util.exceptions","c":"TensorShapeException","l":"TensorShapeException(String, Shape)","u":"%3Cinit%3E(java.lang.String,org.flag4j.core.Shape)"},{"p":"org.flag4j.util.exceptions","c":"TensorShapeException","l":"TensorShapeException(String, Shape, Shape)","u":"%3Cinit%3E(java.lang.String,org.flag4j.core.Shape,org.flag4j.core.Shape)"},{"p":"org.flag4j.io","c":"TensorWriter","l":"TensorWriter()","u":"%3Cinit%3E()"},{"p":"org.flag4j.concurrency","c":"ThreadManager","l":"threadLogger"},{"p":"org.flag4j.concurrency","c":"ThreadManager","l":"ThreadManager()","u":"%3Cinit%3E()"},{"p":"org.flag4j.concurrency","c":"ThreadManager","l":"threadPool"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"toArrayList(CNumber[])","u":"toArrayList(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"toArrayList(double[])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"toArrayList(int[])"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"toComplex()"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"toComplex()"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"toComplex()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"toComplex()"},{"p":"org.flag4j.core.dense_base","c":"RealDenseTensorBase","l":"toComplex()"},{"p":"org.flag4j.core","c":"RealTensorMixin","l":"toComplex()"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"toComplexArrayList(double[])"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"toCoo()"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"toCoo()"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"toCoo()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"toCoo()"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"toCoo()"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"toCoo()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"toCoo()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"toCoo()"},{"p":"org.flag4j.core.dense_base","c":"DenseTensorBase","l":"toCoo()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"toCsr()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"toCsr()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"toCsr()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"toCsr()"},{"p":"org.flag4j.io","c":"TensorWriter","l":"toCsv(String, MatrixMixin)","u":"toCsv(java.lang.String,org.flag4j.core.MatrixMixin)"},{"p":"org.flag4j.io","c":"TensorWriter","l":"toCsv(String, MatrixMixin, String)","u":"toCsv(java.lang.String,org.flag4j.core.MatrixMixin,java.lang.String)"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"toDense()"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"toDense()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"toDense()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"toDense()"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"toDense()"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"toDense()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"toDense()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"toDense()"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"toDense()"},{"p":"org.flag4j.arrays.sparse","c":"SymmTriDiagonal","l":"toDense()"},{"p":"org.flag4j.core.sparse_base","c":"SparseTensorBase","l":"toDense()"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"toMatrix()"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"toMatrix()"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"toMatrix()"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"toMatrix()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"toMatrix()"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"toMatrix()"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"toMatrix()"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"toMatrix(boolean)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"toMatrix(boolean)"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"toMatrix(boolean)"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"toMatrix(boolean)"},{"p":"org.flag4j.core","c":"VectorOperationsMixin","l":"toMatrix(boolean)"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"toMatrix(Shape)","u":"toMatrix(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"toMatrix(Shape)","u":"toMatrix(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"toMatrix(Shape)","u":"toMatrix(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"toMatrix(Shape)","u":"toMatrix(org.flag4j.core.Shape)"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"toPolar()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"toReal()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"toReal()"},{"p":"org.flag4j.core","c":"ComplexTensorMixin","l":"toReal()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"toReal()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"toReal()"},{"p":"org.flag4j.operations.common.complex","c":"ComplexOperations","l":"toReal(CNumber[])","u":"toReal(org.flag4j.complex_numbers.CNumber[])"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"toRealSafe()"},{"p":"org.flag4j.core","c":"ComplexTensorMixin","l":"toRealSafe()"},{"p":"org.flag4j.core.dense_base","c":"ComplexDenseTensorBase","l":"toRealSafe()"},{"p":"org.flag4j.core.sparse_base","c":"ComplexSparseTensorBase","l":"toRealSafe()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"toString()"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"toString()"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"toString()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"toString()"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"toString()"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"toString()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"toString()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"toString()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"toString()"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"toString()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"toString()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"toString()"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"toString()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"toString()"},{"p":"org.flag4j.complex_numbers","c":"CNumberToken","l":"toString()"},{"p":"org.flag4j.core","c":"Shape","l":"toString()"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"TOTAL_ENTRIES_ERR"},{"p":"org.flag4j.core","c":"Shape","l":"totalEntries"},{"p":"org.flag4j.core","c":"Shape","l":"totalEntries()"},{"p":"org.flag4j.core","c":"TensorBase","l":"totalEntries()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"toTensor()"},{"p":"org.flag4j.arrays.dense","c":"CVector","l":"toTensor()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"toTensor()"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"toTensor()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"toTensor()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"toTensor()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"toTensor()"},{"p":"org.flag4j.arrays.sparse","c":"CooVector","l":"toTensor()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"toTensor()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"toTensor()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"toVector()"},{"p":"org.flag4j.arrays.dense","c":"CTensor","l":"toVector()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"toVector()"},{"p":"org.flag4j.arrays.dense","c":"Tensor","l":"toVector()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"toVector()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"toVector()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"toVector()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"toVector()"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"toVector()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"tr()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"tr()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"tr()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"tr()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"tr()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"tr()"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"tr()"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"tr()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"trace()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"trace()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"trace()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"trace()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"trace()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"trace()"},{"p":"org.flag4j.arrays.sparse","c":"PermutationMatrix","l":"trace()"},{"p":"org.flag4j.core","c":"MatrixOperationsMixin","l":"trace()"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"transformData"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"transformMatrix"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"transpose()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"transpose()"},{"p":"org.flag4j.arrays.sparse","c":"CooCTensor","l":"transpose()"},{"p":"org.flag4j.arrays.sparse","c":"CooCVector","l":"transpose()"},{"p":"org.flag4j.arrays.sparse","c":"CooTensor","l":"transpose()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"transpose()"},{"p":"org.flag4j.core","c":"TensorOperationsMixin","l":"transpose()"},{"p":"org.flag4j.operations.sparse.csr.complex","c":"ComplexCsrOperations","l":"transpose(CsrCMatrix)","u":"transpose(org.flag4j.arrays.sparse.CsrCMatrix)"},{"p":"org.flag4j.operations.sparse.csr.real","c":"RealCsrOperations","l":"transpose(CsrMatrix)","u":"transpose(org.flag4j.arrays.sparse.CsrMatrix)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"transpose(int, int)","u":"transpose(int,int)"},{"p":"org.flag4j.core","c":"TensorExclusiveMixin","l":"transpose(int...)"},{"p":"org.flag4j.operations","c":"TransposeDispatcher","l":"TransposeDispatcher()","u":"%3Cinit%3E()"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"TWO"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"U"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"U"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"unbox(Double[])","u":"unbox(java.lang.Double[])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"unbox(Integer[])","u":"unbox(java.lang.Integer[])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"unboxFlatten(Double[][])","u":"unboxFlatten(java.lang.Double[][])"},{"p":"org.flag4j.util","c":"ArrayUtils","l":"uniqueSorted(int[])"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"UnitaryDecomposition(int, boolean)","u":"%3Cinit%3E(int,boolean)"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"unwrap(double[], int[])","u":"unwrap(double[],int[])"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"unwrap(double[], int[], int[])","u":"unwrap(double[],int[],int[])"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"unwrap(double[], int[][])","u":"unwrap(double[],int[][])"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"unwrap(T[], int[])","u":"unwrap(T[],int[])"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"unwrap(T[], int[], int[])","u":"unwrap(T[],int[],int[])"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"unwrap(T[], int[][])","u":"unwrap(T[],int[][])"},{"p":"org.flag4j.linalg.decompositions.hess","c":"SymmHess","l":"updateData(int)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"ComplexUnitaryDecomposition","l":"updateData(int)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"RealUnitaryDecomposition","l":"updateData(int)"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"updateData(int)"},{"p":"org.flag4j.io","c":"PrintOptions","l":"useCentering()"},{"p":"org.flag4j.operations.dense.real_complex","c":"RealComplexDenseElemDiv","l":"useConcurrent(int)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"UTILITY_CLASS_ERR"},{"p":"org.flag4j.linalg.decompositions.svd","c":"SVD","l":"V"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU.Pivoting","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"org.flag4j.operations","c":"TransposeDispatcher.Algorithm","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"org.flag4j.util","c":"Axis2D","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"org.flag4j.util","c":"StringUtils","l":"ValueOfRound(CNumber, int)","u":"ValueOfRound(org.flag4j.complex_numbers.CNumber,int)"},{"p":"org.flag4j.util","c":"StringUtils","l":"ValueOfRound(double, int)","u":"ValueOfRound(double,int)"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"values"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU.Pivoting","l":"values()"},{"p":"org.flag4j.operations","c":"MatrixMultiplyDispatcher.AlgorithmName","l":"values()"},{"p":"org.flag4j.operations","c":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames","l":"values()"},{"p":"org.flag4j.operations","c":"TransposeDispatcher.Algorithm","l":"values()"},{"p":"org.flag4j.util","c":"Axis2D","l":"values()"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"VEC_COL_ORIENTATION_ERR"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"VEC_ROW_ORIENTATION_ERR"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"vecColOrientErrMsg(Shape)","u":"vecColOrientErrMsg(org.flag4j.core.Shape)"},{"p":"org.flag4j.util","c":"ErrorMessages","l":"vecRowOrientErrMsg(Shape)","u":"vecRowOrientErrMsg(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"Vector(double...)","u":"%3Cinit%3E(double...)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"Vector(int)","u":"%3Cinit%3E(int)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"Vector(int, double)","u":"%3Cinit%3E(int,double)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"Vector(int...)","u":"%3Cinit%3E(int...)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"Vector(Shape)","u":"%3Cinit%3E(org.flag4j.core.Shape)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"Vector(Shape, double)","u":"%3Cinit%3E(org.flag4j.core.Shape,double)"},{"p":"org.flag4j.arrays.dense","c":"Vector","l":"Vector(Vector)","u":"%3Cinit%3E(org.flag4j.arrays.dense.Vector)"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","c":"ComplexDenseSparseEquals","l":"vectorEquals(CNumber[], CNumber[], int[], int)","u":"vectorEquals(org.flag4j.complex_numbers.CNumber[],org.flag4j.complex_numbers.CNumber[],int[],int)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseEquals","l":"vectorEquals(CNumber[], double[], int[], int)","u":"vectorEquals(org.flag4j.complex_numbers.CNumber[],double[],int[],int)"},{"p":"org.flag4j.operations.sparse.coo.complex","c":"ComplexSparseEquals","l":"vectorEquals(CooCVector, CooCVector)","u":"vectorEquals(org.flag4j.arrays.sparse.CooCVector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real_complex","c":"RealComplexSparseEquals","l":"vectorEquals(CooVector, CooCVector)","u":"vectorEquals(org.flag4j.arrays.sparse.CooVector,org.flag4j.arrays.sparse.CooCVector)"},{"p":"org.flag4j.operations.sparse.coo.real","c":"RealSparseEquals","l":"vectorEquals(CooVector, CooVector)","u":"vectorEquals(org.flag4j.arrays.sparse.CooVector,org.flag4j.arrays.sparse.CooVector)"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","c":"RealComplexDenseSparseEquals","l":"vectorEquals(double[], CNumber[], int[], int)","u":"vectorEquals(double[],org.flag4j.complex_numbers.CNumber[],int[],int)"},{"p":"org.flag4j.operations.dense.real","c":"RealDenseEquals","l":"vectorEquals(double[], double[])","u":"vectorEquals(double[],double[])"},{"p":"org.flag4j.operations.dense_sparse.coo.real","c":"RealDenseSparseEquals","l":"vectorEquals(double[], double[], int[], int)","u":"vectorEquals(double[],double[],int[],int)"},{"p":"org.flag4j.linalg","c":"VectorNorms","l":"VectorNorms()","u":"%3Cinit%3E()"},{"p":"org.flag4j.arrays.dense","c":"CMatrix","l":"vectorType()"},{"p":"org.flag4j.arrays.dense","c":"Matrix","l":"vectorType()"},{"p":"org.flag4j.arrays.sparse","c":"CooCMatrix","l":"vectorType()"},{"p":"org.flag4j.arrays.sparse","c":"CooMatrix","l":"vectorType()"},{"p":"org.flag4j.arrays.sparse","c":"CsrCMatrix","l":"vectorType()"},{"p":"org.flag4j.arrays.sparse","c":"CsrMatrix","l":"vectorType()"},{"p":"org.flag4j.core","c":"MatrixPropertiesMixin","l":"vectorType()"},{"p":"org.flag4j.linalg.transformations","c":"View","l":"View()","u":"%3Cinit%3E()"},{"p":"org.flag4j.linalg.decompositions.schur","c":"Schur","l":"workArray"},{"p":"org.flag4j.linalg.decompositions.unitary","c":"UnitaryDecomposition","l":"workArray"},{"p":"org.flag4j.linalg.solvers.exact","c":"ComplexExactTensorSolver","l":"wrap(CVector, Shape)","u":"wrap(org.flag4j.arrays.dense.CVector,org.flag4j.core.Shape)"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"wrap(double[], int[])","u":"wrap(double[],int[])"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"wrap(double[], int[], int[])","u":"wrap(double[],int[],int[])"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"wrap(double[], int[][])","u":"wrap(double[],int[][])"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"wrap(T[], int[])","u":"wrap(T[],int[])"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"wrap(T[], int[], int[])","u":"wrap(T[],int[],int[])"},{"p":"org.flag4j.operations.sparse.coo","c":"SparseDataWrapper","l":"wrap(T[], int[][])","u":"wrap(T[],int[][])"},{"p":"org.flag4j.linalg.solvers.exact","c":"ExactTensorSolver","l":"wrap(V, Shape)","u":"wrap(V,org.flag4j.core.Shape)"},{"p":"org.flag4j.linalg.solvers.exact","c":"RealExactTensorSolver","l":"wrap(Vector, Shape)","u":"wrap(org.flag4j.arrays.dense.Vector,org.flag4j.core.Shape)"},{"p":"org.flag4j.io","c":"TensorOutputStream","l":"write(int)"},{"p":"org.flag4j.io","c":"TensorWriter","l":"write(String, TensorBase)","u":"write(java.lang.String,org.flag4j.core.TensorBase)"},{"p":"org.flag4j.io","c":"TensorOutputStream","l":"write(TensorBase)","u":"write(org.flag4j.core.TensorBase)"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"BackSolver","l":"x"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ForwardSolver","l":"x"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"BackSolver","l":"X"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ForwardSolver","l":"X"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"BackSolver","l":"xCol"},{"p":"org.flag4j.linalg.solvers.exact.triangular","c":"ForwardSolver","l":"xCol"},{"p":"org.flag4j.linalg.decompositions.lu","c":"ComplexLU","l":"z"},{"p":"org.flag4j.complex_numbers","c":"CNumber","l":"ZERO"},{"p":"org.flag4j.linalg.decompositions.schur","c":"ComplexSchur","l":"ZERO"},{"p":"org.flag4j.linalg.decompositions.lu","c":"LU","l":"zeroPivotTol"}];updateSearchResults(); \ No newline at end of file diff --git a/docs/org/flag4j/arrays/dense/CMatrix.html b/docs/org/flag4j/arrays/dense/CMatrix.html index b94fa66fa..44c0794fd 100644 --- a/docs/org/flag4j/arrays/dense/CMatrix.html +++ b/docs/org/flag4j/arrays/dense/CMatrix.html @@ -1,11 +1,11 @@ - + CMatrix - + diff --git a/docs/org/flag4j/arrays/dense/CTensor.html b/docs/org/flag4j/arrays/dense/CTensor.html index ff67d7892..0dca65f57 100644 --- a/docs/org/flag4j/arrays/dense/CTensor.html +++ b/docs/org/flag4j/arrays/dense/CTensor.html @@ -1,11 +1,11 @@ - + CTensor - + diff --git a/docs/org/flag4j/arrays/dense/CVector.html b/docs/org/flag4j/arrays/dense/CVector.html index f95212cc8..2906cb339 100644 --- a/docs/org/flag4j/arrays/dense/CVector.html +++ b/docs/org/flag4j/arrays/dense/CVector.html @@ -1,11 +1,11 @@ - + CVector - + diff --git a/docs/org/flag4j/arrays/dense/Matrix.html b/docs/org/flag4j/arrays/dense/Matrix.html index 9c1086522..eb4cc830f 100644 --- a/docs/org/flag4j/arrays/dense/Matrix.html +++ b/docs/org/flag4j/arrays/dense/Matrix.html @@ -1,11 +1,11 @@ - + Matrix - + diff --git a/docs/org/flag4j/arrays/dense/Tensor.html b/docs/org/flag4j/arrays/dense/Tensor.html index 35e794a50..5baf0719e 100644 --- a/docs/org/flag4j/arrays/dense/Tensor.html +++ b/docs/org/flag4j/arrays/dense/Tensor.html @@ -1,11 +1,11 @@ - + Tensor - + diff --git a/docs/org/flag4j/arrays/dense/Vector.html b/docs/org/flag4j/arrays/dense/Vector.html index 5f95fee09..c6974249a 100644 --- a/docs/org/flag4j/arrays/dense/Vector.html +++ b/docs/org/flag4j/arrays/dense/Vector.html @@ -1,11 +1,11 @@ - + Vector - + diff --git a/docs/org/flag4j/arrays/dense/package-summary.html b/docs/org/flag4j/arrays/dense/package-summary.html index 48364641f..030e49590 100644 --- a/docs/org/flag4j/arrays/dense/package-summary.html +++ b/docs/org/flag4j/arrays/dense/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.arrays.dense - + diff --git a/docs/org/flag4j/arrays/dense/package-tree.html b/docs/org/flag4j/arrays/dense/package-tree.html index 6ac534fda..e0a7ddd62 100644 --- a/docs/org/flag4j/arrays/dense/package-tree.html +++ b/docs/org/flag4j/arrays/dense/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.arrays.dense Class Hierarchy - + diff --git a/docs/org/flag4j/arrays/sparse/CooCMatrix.html b/docs/org/flag4j/arrays/sparse/CooCMatrix.html index e08f9511a..2088c6651 100644 --- a/docs/org/flag4j/arrays/sparse/CooCMatrix.html +++ b/docs/org/flag4j/arrays/sparse/CooCMatrix.html @@ -1,11 +1,11 @@ - + CooCMatrix - + diff --git a/docs/org/flag4j/arrays/sparse/CooCTensor.html b/docs/org/flag4j/arrays/sparse/CooCTensor.html index 3ebd3deff..15de4d105 100644 --- a/docs/org/flag4j/arrays/sparse/CooCTensor.html +++ b/docs/org/flag4j/arrays/sparse/CooCTensor.html @@ -1,11 +1,11 @@ - + CooCTensor - + diff --git a/docs/org/flag4j/arrays/sparse/CooCVector.html b/docs/org/flag4j/arrays/sparse/CooCVector.html index 6f0963a05..0db0cf436 100644 --- a/docs/org/flag4j/arrays/sparse/CooCVector.html +++ b/docs/org/flag4j/arrays/sparse/CooCVector.html @@ -1,11 +1,11 @@ - + CooCVector - + diff --git a/docs/org/flag4j/arrays/sparse/CooMatrix.html b/docs/org/flag4j/arrays/sparse/CooMatrix.html index 05850dca8..e214f9a83 100644 --- a/docs/org/flag4j/arrays/sparse/CooMatrix.html +++ b/docs/org/flag4j/arrays/sparse/CooMatrix.html @@ -1,11 +1,11 @@ - + CooMatrix - + diff --git a/docs/org/flag4j/arrays/sparse/CooTensor.html b/docs/org/flag4j/arrays/sparse/CooTensor.html index 7a85d7f37..ded5dff01 100644 --- a/docs/org/flag4j/arrays/sparse/CooTensor.html +++ b/docs/org/flag4j/arrays/sparse/CooTensor.html @@ -1,11 +1,11 @@ - + CooTensor - + diff --git a/docs/org/flag4j/arrays/sparse/CooVector.html b/docs/org/flag4j/arrays/sparse/CooVector.html index 97ae3c984..78e43b276 100644 --- a/docs/org/flag4j/arrays/sparse/CooVector.html +++ b/docs/org/flag4j/arrays/sparse/CooVector.html @@ -1,11 +1,11 @@ - + CooVector - + diff --git a/docs/org/flag4j/arrays/sparse/CsrCMatrix.html b/docs/org/flag4j/arrays/sparse/CsrCMatrix.html index 5b3571e39..5f0916986 100644 --- a/docs/org/flag4j/arrays/sparse/CsrCMatrix.html +++ b/docs/org/flag4j/arrays/sparse/CsrCMatrix.html @@ -1,11 +1,11 @@ - + CsrCMatrix - + diff --git a/docs/org/flag4j/arrays/sparse/CsrMatrix.html b/docs/org/flag4j/arrays/sparse/CsrMatrix.html index 40d597a66..197e6cda1 100644 --- a/docs/org/flag4j/arrays/sparse/CsrMatrix.html +++ b/docs/org/flag4j/arrays/sparse/CsrMatrix.html @@ -1,11 +1,11 @@ - + CsrMatrix - + diff --git a/docs/org/flag4j/arrays/sparse/PermutationMatrix.html b/docs/org/flag4j/arrays/sparse/PermutationMatrix.html index b49e75698..69299f5bd 100644 --- a/docs/org/flag4j/arrays/sparse/PermutationMatrix.html +++ b/docs/org/flag4j/arrays/sparse/PermutationMatrix.html @@ -1,11 +1,11 @@ - + PermutationMatrix - + diff --git a/docs/org/flag4j/arrays/sparse/SparseUtils.html b/docs/org/flag4j/arrays/sparse/SparseUtils.html index 9e6d946b4..0a7df794e 100644 --- a/docs/org/flag4j/arrays/sparse/SparseUtils.html +++ b/docs/org/flag4j/arrays/sparse/SparseUtils.html @@ -1,11 +1,11 @@ - + SparseUtils - + diff --git a/docs/org/flag4j/arrays/sparse/SymmTriDiagonal.html b/docs/org/flag4j/arrays/sparse/SymmTriDiagonal.html index 5b5044b4a..4e4d20f87 100644 --- a/docs/org/flag4j/arrays/sparse/SymmTriDiagonal.html +++ b/docs/org/flag4j/arrays/sparse/SymmTriDiagonal.html @@ -1,11 +1,11 @@ - + SymmTriDiagonal - + diff --git a/docs/org/flag4j/arrays/sparse/package-summary.html b/docs/org/flag4j/arrays/sparse/package-summary.html index b19b53055..ab44f949e 100644 --- a/docs/org/flag4j/arrays/sparse/package-summary.html +++ b/docs/org/flag4j/arrays/sparse/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.arrays.sparse - + diff --git a/docs/org/flag4j/arrays/sparse/package-tree.html b/docs/org/flag4j/arrays/sparse/package-tree.html index c820a3399..bd8482dca 100644 --- a/docs/org/flag4j/arrays/sparse/package-tree.html +++ b/docs/org/flag4j/arrays/sparse/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.arrays.sparse Class Hierarchy - + diff --git a/docs/org/flag4j/complex_numbers/CNumber.html b/docs/org/flag4j/complex_numbers/CNumber.html index 456317eb1..5f43c4a3f 100644 --- a/docs/org/flag4j/complex_numbers/CNumber.html +++ b/docs/org/flag4j/complex_numbers/CNumber.html @@ -1,11 +1,11 @@ - + CNumber - + diff --git a/docs/org/flag4j/complex_numbers/CNumberLexer.html b/docs/org/flag4j/complex_numbers/CNumberLexer.html index 1fda708ac..48c4f2ae4 100644 --- a/docs/org/flag4j/complex_numbers/CNumberLexer.html +++ b/docs/org/flag4j/complex_numbers/CNumberLexer.html @@ -1,11 +1,11 @@ - + CNumberLexer - + diff --git a/docs/org/flag4j/complex_numbers/CNumberParser.html b/docs/org/flag4j/complex_numbers/CNumberParser.html index eaf1173ec..0c6733777 100644 --- a/docs/org/flag4j/complex_numbers/CNumberParser.html +++ b/docs/org/flag4j/complex_numbers/CNumberParser.html @@ -1,11 +1,11 @@ - + CNumberParser - + diff --git a/docs/org/flag4j/complex_numbers/CNumberToken.html b/docs/org/flag4j/complex_numbers/CNumberToken.html index d694836ed..bfb9f4593 100644 --- a/docs/org/flag4j/complex_numbers/CNumberToken.html +++ b/docs/org/flag4j/complex_numbers/CNumberToken.html @@ -1,11 +1,11 @@ - + CNumberToken - + diff --git a/docs/org/flag4j/complex_numbers/CNumberUtils.html b/docs/org/flag4j/complex_numbers/CNumberUtils.html index d476a8dc4..af65d0971 100644 --- a/docs/org/flag4j/complex_numbers/CNumberUtils.html +++ b/docs/org/flag4j/complex_numbers/CNumberUtils.html @@ -1,11 +1,11 @@ - + CNumberUtils - + diff --git a/docs/org/flag4j/complex_numbers/package-summary.html b/docs/org/flag4j/complex_numbers/package-summary.html index a5f9f46e2..aa384404e 100644 --- a/docs/org/flag4j/complex_numbers/package-summary.html +++ b/docs/org/flag4j/complex_numbers/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.complex_numbers - + diff --git a/docs/org/flag4j/complex_numbers/package-tree.html b/docs/org/flag4j/complex_numbers/package-tree.html index 6c664a139..928eb6161 100644 --- a/docs/org/flag4j/complex_numbers/package-tree.html +++ b/docs/org/flag4j/complex_numbers/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.complex_numbers Class Hierarchy - + diff --git a/docs/org/flag4j/concurrency/Configurations.html b/docs/org/flag4j/concurrency/Configurations.html index c630b7ac4..28db62695 100644 --- a/docs/org/flag4j/concurrency/Configurations.html +++ b/docs/org/flag4j/concurrency/Configurations.html @@ -1,11 +1,11 @@ - + Configurations - + @@ -89,7 +89,7 @@

            Class Configurations


            -
            public abstract class Configurations +
            public final class Configurations extends Object
            Configurations for standard and concurrent operations.
            @@ -110,12 +110,12 @@

            Field Summary

            The block size to use in blocked algorithms.
            -
            private static final int
            +
            static final int
            The default block size for blocked algorithms.
            -
            private static final int
            +
            static final int
            The default minimum recursive size for recursive algorithms.
            @@ -125,11 +125,6 @@

            Field Summary

            The default number of threads to use for concurrent algorithms.
            -
            private static int
            - -
            -
            The minimum size of tensor/matrix/vector to make recursive calls on in recursive algorithms.
            -
            @@ -165,29 +160,19 @@

            Method Summary

            Gets the current block size used in blocked algorithms.
            static int
            - +
            -
            Gets the minimum size of tensor/matrix/vector to make recursive calls on in recursive algorithms.
            -
            -
            static int
            - -
            Gets the current number of threads to be used.
            -
            static void
            - -
            -
            Resets all configurations to their default values.
            -
            static void
            -
            setBlockSize(int blockSize)
            +
            -
            Sets the current block size used in blocked algorithms.
            +
            Resets all configurations to their default values.
            static void
            -
            setMinRecursiveSize(int minRecursiveSize)
            +
            setBlockSize(int blockSize)
            -
            Sets the minimum size of tensor/matrix/vector to make recursive calls on in recursive algorithms.
            +
            Sets the current block size used in blocked algorithms.
            static void
            setNumThreads(int numThreads)
            @@ -230,7 +215,7 @@

            DEFAULT_NUM_THREADS

            DEFAULT_BLOCK_SIZE

            -
            private static final int DEFAULT_BLOCK_SIZE
            +
            public static final int DEFAULT_BLOCK_SIZE
            The default block size for blocked algorithms.
            See Also:
            @@ -247,7 +232,7 @@

            DEFAULT_BLOCK_SIZE

            DEFAULT_MIN_RECURSIVE_SIZE

            -
            private static final int DEFAULT_MIN_RECURSIVE_SIZE
            +
            public static final int DEFAULT_MIN_RECURSIVE_SIZE
            The default minimum recursive size for recursive algorithms.
            See Also:
            @@ -269,15 +254,6 @@

            blockSize

            -
          • -
            -

            minRecursiveSize

            -
            -
            private static int minRecursiveSize
            -
            The minimum size of tensor/matrix/vector to make recursive calls on in recursive algorithms.
            -
            -
            -

  • @@ -310,8 +286,7 @@

    setNumThreadsAsAvailableProcessors

    Sets the number of threads for use in concurrent operations as the number of processors available to the Java virtual machine. Note that this value may change during runtime. This method will include logical cores so the value returned may be higher than the number of physical cores on the machine if hyper-threading is enabled. -

    - This is implemented as: numThreads = Runtime.getRuntime().availableProcessors();
    +

    Returns:
    The new value of numThreads, i.e. the number of available processors.
    @@ -372,32 +347,6 @@

    setBlockSize

  • -
    -

    getMinRecursiveSize

    -
    -
    public static int getMinRecursiveSize()
    -
    Gets the minimum size of tensor/matrix/vector to make recursive calls on in recursive algorithms.
    -
    -
    Returns:
    -
    minimum size of tensor/matrix/vector to make recursive calls on in recursive algorithms.
    -
    -
    -
    -
  • -
  • -
    -

    setMinRecursiveSize

    -
    -
    public static void setMinRecursiveSize(int minRecursiveSize)
    -
    Sets the minimum size of tensor/matrix/vector to make recursive calls on in recursive algorithms.
    -
    -
    Parameters:
    -
    minRecursiveSize - New minimum size.
    -
    -
    -
    -
  • -
  • resetAll

    diff --git a/docs/org/flag4j/concurrency/TensorOperation.html b/docs/org/flag4j/concurrency/TensorOperation.html new file mode 100644 index 000000000..c0699cecb --- /dev/null +++ b/docs/org/flag4j/concurrency/TensorOperation.html @@ -0,0 +1,154 @@ + + + + +TensorOperation + + + + + + + + + + + + + + +
    + +
    +
    + +
    + +

    Interface TensorOperation

    +
    +
    +
    +
    +
    Functional Interface:
    +
    This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.
    +
    +
    +
    @FunctionalInterface +public interface TensorOperation
    +
    Functional interface for general tensor operation.
    +
    +
    +
    +
      + +
    • +
      +

      Method Summary

      +
      +
      +
      +
      +
      Modifier and Type
      +
      Method
      +
      Description
      +
      void
      +
      apply(int startIdx, + int endIdx)
      +
      +
      Applies a tensor operation over the specified index range.
      +
      +
      +
      +
      +
      +
    • +
    +
    +
    +
      + +
    • +
      +

      Method Details

      +
        +
      • +
        +

        apply

        +
        +
        void apply(int startIdx, + int endIdx)
        +
        Applies a tensor operation over the specified index range.
        +
        +
        Parameters:
        +
        startIdx - Staring index for operation.
        +
        endIdx - Ending index for operation.
        +
        +
        +
        +
      • +
      +
      +
    • +
    +
    + +
    + + diff --git a/docs/org/flag4j/concurrency/ThreadManager.TriConsumer.html b/docs/org/flag4j/concurrency/ThreadManager.TriConsumer.html new file mode 100644 index 000000000..ba877954a --- /dev/null +++ b/docs/org/flag4j/concurrency/ThreadManager.TriConsumer.html @@ -0,0 +1,151 @@ + + + + +ThreadManager.TriConsumer + + + + + + + + + + + + + + +
    + +
    +
    + +
    + +

    Interface ThreadManager.TriConsumer<T,U,V>

    +
    +
    +
    +
    +
    Enclosing class:
    +
    ThreadManager
    +
    +
    +
    Functional Interface:
    +
    This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.
    +
    +
    +
    @FunctionalInterface +public static interface ThreadManager.TriConsumer<T,U,V>
    +
    +
    +
    +
      + +
    • +
      +

      Method Summary

      +
      +
      +
      +
      +
      Modifier and Type
      +
      Method
      +
      Description
      +
      void
      +
      accept(T t, + U u, + V v)
      +
       
      +
      +
      +
      +
      +
    • +
    +
    +
    +
      + +
    • +
      +

      Method Details

      +
        +
      • +
        +

        accept

        +
        +
        void accept(T t, + U u, + V v)
        +
        +
        +
      • +
      +
      +
    • +
    +
    + +
    + + diff --git a/docs/org/flag4j/concurrency/ThreadManager.html b/docs/org/flag4j/concurrency/ThreadManager.html index 534b39df3..485874172 100644 --- a/docs/org/flag4j/concurrency/ThreadManager.html +++ b/docs/org/flag4j/concurrency/ThreadManager.html @@ -1,11 +1,11 @@ - + ThreadManager - + @@ -37,7 +37,7 @@
  • Summary:

      -
    • Nested
    • +
    • Nested
    • Field
    • Constr
    • Method
    • @@ -57,7 +57,7 @@
  • diff --git a/docs/org/flag4j/operations/dense/complex/ComplexDenseOperations.html b/docs/org/flag4j/operations/dense/complex/ComplexDenseOperations.html index e11f0f965..d35b8bcb7 100644 --- a/docs/org/flag4j/operations/dense/complex/ComplexDenseOperations.html +++ b/docs/org/flag4j/operations/dense/complex/ComplexDenseOperations.html @@ -1,11 +1,11 @@ - + ComplexDenseOperations - + diff --git a/docs/org/flag4j/operations/dense/complex/ComplexDenseProperties.html b/docs/org/flag4j/operations/dense/complex/ComplexDenseProperties.html index 834f3bf92..40549e49a 100644 --- a/docs/org/flag4j/operations/dense/complex/ComplexDenseProperties.html +++ b/docs/org/flag4j/operations/dense/complex/ComplexDenseProperties.html @@ -1,11 +1,11 @@ - + ComplexDenseProperties - + diff --git a/docs/org/flag4j/operations/dense/complex/ComplexDenseSetOperations.html b/docs/org/flag4j/operations/dense/complex/ComplexDenseSetOperations.html index dd947784a..87176d5f7 100644 --- a/docs/org/flag4j/operations/dense/complex/ComplexDenseSetOperations.html +++ b/docs/org/flag4j/operations/dense/complex/ComplexDenseSetOperations.html @@ -1,11 +1,11 @@ - + ComplexDenseSetOperations - + diff --git a/docs/org/flag4j/operations/dense/complex/ComplexDenseTensorDot.html b/docs/org/flag4j/operations/dense/complex/ComplexDenseTensorDot.html index 6b543a94c..e2ab12f37 100644 --- a/docs/org/flag4j/operations/dense/complex/ComplexDenseTensorDot.html +++ b/docs/org/flag4j/operations/dense/complex/ComplexDenseTensorDot.html @@ -1,11 +1,11 @@ - + ComplexDenseTensorDot - + diff --git a/docs/org/flag4j/operations/dense/complex/ComplexDenseTranspose.html b/docs/org/flag4j/operations/dense/complex/ComplexDenseTranspose.html index c99456ca4..8ac16847b 100644 --- a/docs/org/flag4j/operations/dense/complex/ComplexDenseTranspose.html +++ b/docs/org/flag4j/operations/dense/complex/ComplexDenseTranspose.html @@ -1,11 +1,11 @@ - + ComplexDenseTranspose - + diff --git a/docs/org/flag4j/operations/dense/complex/ComplexDenseVectorOperations.html b/docs/org/flag4j/operations/dense/complex/ComplexDenseVectorOperations.html index 91142e94b..365d92834 100644 --- a/docs/org/flag4j/operations/dense/complex/ComplexDenseVectorOperations.html +++ b/docs/org/flag4j/operations/dense/complex/ComplexDenseVectorOperations.html @@ -1,11 +1,11 @@ - + ComplexDenseVectorOperations - + diff --git a/docs/org/flag4j/operations/dense/complex/package-summary.html b/docs/org/flag4j/operations/dense/complex/package-summary.html index ffc80b868..dc6facab2 100644 --- a/docs/org/flag4j/operations/dense/complex/package-summary.html +++ b/docs/org/flag4j/operations/dense/complex/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.dense.complex - + diff --git a/docs/org/flag4j/operations/dense/complex/package-tree.html b/docs/org/flag4j/operations/dense/complex/package-tree.html index 2af8de092..dd5805b5d 100644 --- a/docs/org/flag4j/operations/dense/complex/package-tree.html +++ b/docs/org/flag4j/operations/dense/complex/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.dense.complex Class Hierarchy - + diff --git a/docs/org/flag4j/operations/dense/real/AggregateDenseReal.html b/docs/org/flag4j/operations/dense/real/AggregateDenseReal.html index f6214d975..b1a330ad1 100644 --- a/docs/org/flag4j/operations/dense/real/AggregateDenseReal.html +++ b/docs/org/flag4j/operations/dense/real/AggregateDenseReal.html @@ -1,11 +1,11 @@ - + AggregateDenseReal - + diff --git a/docs/org/flag4j/operations/dense/real/RealDenseDeterminant.html b/docs/org/flag4j/operations/dense/real/RealDenseDeterminant.html index d96611dd9..581a494d3 100644 --- a/docs/org/flag4j/operations/dense/real/RealDenseDeterminant.html +++ b/docs/org/flag4j/operations/dense/real/RealDenseDeterminant.html @@ -1,11 +1,11 @@ - + RealDenseDeterminant - + diff --git a/docs/org/flag4j/operations/dense/real/RealDenseElemDiv.html b/docs/org/flag4j/operations/dense/real/RealDenseElemDiv.html index 3741fd8dd..a358e9eea 100644 --- a/docs/org/flag4j/operations/dense/real/RealDenseElemDiv.html +++ b/docs/org/flag4j/operations/dense/real/RealDenseElemDiv.html @@ -1,11 +1,11 @@ - + RealDenseElemDiv - + diff --git a/docs/org/flag4j/operations/dense/real/RealDenseElemMult.html b/docs/org/flag4j/operations/dense/real/RealDenseElemMult.html index bae8f73f1..f0d6c5c1f 100644 --- a/docs/org/flag4j/operations/dense/real/RealDenseElemMult.html +++ b/docs/org/flag4j/operations/dense/real/RealDenseElemMult.html @@ -1,11 +1,11 @@ - + RealDenseElemMult - + diff --git a/docs/org/flag4j/operations/dense/real/RealDenseEquals.html b/docs/org/flag4j/operations/dense/real/RealDenseEquals.html index b4633f299..09deddd07 100644 --- a/docs/org/flag4j/operations/dense/real/RealDenseEquals.html +++ b/docs/org/flag4j/operations/dense/real/RealDenseEquals.html @@ -1,11 +1,11 @@ - + RealDenseEquals - + diff --git a/docs/org/flag4j/operations/dense/real/RealDenseMatrixMultTranspose.html b/docs/org/flag4j/operations/dense/real/RealDenseMatrixMultTranspose.html index 84261e8e2..fb2f43c4b 100644 --- a/docs/org/flag4j/operations/dense/real/RealDenseMatrixMultTranspose.html +++ b/docs/org/flag4j/operations/dense/real/RealDenseMatrixMultTranspose.html @@ -1,11 +1,11 @@ - + RealDenseMatrixMultTranspose - + diff --git a/docs/org/flag4j/operations/dense/real/RealDenseMatrixMultiplication.html b/docs/org/flag4j/operations/dense/real/RealDenseMatrixMultiplication.html index b8e9adcfa..17809416c 100644 --- a/docs/org/flag4j/operations/dense/real/RealDenseMatrixMultiplication.html +++ b/docs/org/flag4j/operations/dense/real/RealDenseMatrixMultiplication.html @@ -1,11 +1,11 @@ - + RealDenseMatrixMultiplication - + @@ -202,29 +202,32 @@

    Method Summary

    Computes the multiplication of a real dense matrix with a real dense vector using a concurrent implementation of the standard matrix multiplication algorithm.
  • -
    static double[]
    -
    reordered(double[] src1, +
    static void
    +
    main(String[] args)
    +
     
    +
    static double[]
    +
    reordered(double[] src1, Shape shape1, double[] src2, Shape shape2)
    -
    +
    Computes the matrix multiplication between two real dense matrices using the standard algorithm with j-k loops swapped.
    -
    static double[]
    -
    standard(double[] src1, +
    static double[]
    +
    standard(double[] src1, Shape shape1, double[] src2, Shape shape2)
    -
    +
    Computes the matrix multiplication between two real dense matrices using the standard algorithm.
    -
    static double[]
    -
    standardVector(double[] src1, +
    static double[]
    +
    standardVector(double[] src1, Shape shape1, double[] src2, Shape shape2)
    -
    +
    Computes the multiplication of a real dense matrix with a real dense vector using the standard algorithm.
    @@ -520,6 +523,14 @@

    concurrentBlockedVector

    +
  • +
    +

    main

    +
    +
    public static void main(String[] args)
    +
    +
    +
  • diff --git a/docs/org/flag4j/operations/dense/real/RealDenseOperations.html b/docs/org/flag4j/operations/dense/real/RealDenseOperations.html index a6cef3d7b..8da04c4df 100644 --- a/docs/org/flag4j/operations/dense/real/RealDenseOperations.html +++ b/docs/org/flag4j/operations/dense/real/RealDenseOperations.html @@ -1,11 +1,11 @@ - + RealDenseOperations - + diff --git a/docs/org/flag4j/operations/dense/real/RealDenseProperties.html b/docs/org/flag4j/operations/dense/real/RealDenseProperties.html index ea01eadba..f762baa67 100644 --- a/docs/org/flag4j/operations/dense/real/RealDenseProperties.html +++ b/docs/org/flag4j/operations/dense/real/RealDenseProperties.html @@ -1,11 +1,11 @@ - + RealDenseProperties - + diff --git a/docs/org/flag4j/operations/dense/real/RealDenseSetOperations.html b/docs/org/flag4j/operations/dense/real/RealDenseSetOperations.html index beec1ce11..4008aa64a 100644 --- a/docs/org/flag4j/operations/dense/real/RealDenseSetOperations.html +++ b/docs/org/flag4j/operations/dense/real/RealDenseSetOperations.html @@ -1,11 +1,11 @@ - + RealDenseSetOperations - + diff --git a/docs/org/flag4j/operations/dense/real/RealDenseTensorDot.html b/docs/org/flag4j/operations/dense/real/RealDenseTensorDot.html index a74872a2c..37765fb6a 100644 --- a/docs/org/flag4j/operations/dense/real/RealDenseTensorDot.html +++ b/docs/org/flag4j/operations/dense/real/RealDenseTensorDot.html @@ -1,11 +1,11 @@ - + RealDenseTensorDot - + diff --git a/docs/org/flag4j/operations/dense/real/RealDenseTranspose.html b/docs/org/flag4j/operations/dense/real/RealDenseTranspose.html index 24f8c078a..d96c81843 100644 --- a/docs/org/flag4j/operations/dense/real/RealDenseTranspose.html +++ b/docs/org/flag4j/operations/dense/real/RealDenseTranspose.html @@ -1,11 +1,11 @@ - + RealDenseTranspose - + @@ -141,56 +141,53 @@

    Method Summary

    Computes the transpose of a matrix using a blocked concurrent algorithm.
    -
    static void
    -
    main(String[] args)
    -
     
    -
    static double[]
    -
    standard(double[] src, +
    static double[]
    +
    standard(double[] src, Shape shape, int[] axes)
    -
    +
    Computes the transpose of a tensor.
    -
    static double[]
    -
    standard(double[] src, +
    static double[]
    +
    standard(double[] src, Shape shape, int axis1, int axis2)
    -
    +
    Transposes tensor along specified axes using a standard transpose algorithm.
    -
    static double[]
    -
    standardConcurrent(double[] src, +
    static double[]
    +
    standardConcurrent(double[] src, Shape shape, int[] axes)
    -
    +
    Computes the transpose of a tensor using a concurrent implementation.
    -
    static double[]
    -
    standardConcurrent(double[] src, +
    static double[]
    +
    standardConcurrent(double[] src, Shape shape, int axis1, int axis2)
    -
    +
    Transposes tensor along specified axes using a standard concurrent transpose algorithm.
    -
    static int[][]
    -
    standardIntMatrix(int[][] src)
    -
    +
    static int[][]
    +
    standardIntMatrix(int[][] src)
    +
    Transposes a matrix using the standard algorithm.
    -
    static double[]
    -
    standardMatrix(double[] src, +
    static double[]
    +
    standardMatrix(double[] src, int numRows, int numCols)
    -
    +
    Transposes a matrix using the standard algorithm.
    -
    static double[]
    -
    standardMatrixConcurrent(double[] src, +
    static double[]
    +
    standardMatrixConcurrent(double[] src, int numRows, int numCols)
    -
    +
    Computes the transpose of a matrix using a standard concurrent algorithm.
    @@ -425,14 +422,6 @@

    blockedIntMatrix

    -
  • -
    -

    main

    -
    -
    public static void main(String[] args)
    -
    -
    -
  • diff --git a/docs/org/flag4j/operations/dense/real/RealDenseVectorOperations.html b/docs/org/flag4j/operations/dense/real/RealDenseVectorOperations.html index 790c80adc..cf431d077 100644 --- a/docs/org/flag4j/operations/dense/real/RealDenseVectorOperations.html +++ b/docs/org/flag4j/operations/dense/real/RealDenseVectorOperations.html @@ -1,11 +1,11 @@ - + RealDenseVectorOperations - + diff --git a/docs/org/flag4j/operations/dense/real/package-summary.html b/docs/org/flag4j/operations/dense/real/package-summary.html index 64370ab19..f2ccb2130 100644 --- a/docs/org/flag4j/operations/dense/real/package-summary.html +++ b/docs/org/flag4j/operations/dense/real/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.dense.real - + diff --git a/docs/org/flag4j/operations/dense/real/package-tree.html b/docs/org/flag4j/operations/dense/real/package-tree.html index 7f963766b..1219c3d2f 100644 --- a/docs/org/flag4j/operations/dense/real/package-tree.html +++ b/docs/org/flag4j/operations/dense/real/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.dense.real Class Hierarchy - + diff --git a/docs/org/flag4j/operations/dense/real_complex/RealComplexDenseElemDiv.html b/docs/org/flag4j/operations/dense/real_complex/RealComplexDenseElemDiv.html index 1669989e9..b7662cb23 100644 --- a/docs/org/flag4j/operations/dense/real_complex/RealComplexDenseElemDiv.html +++ b/docs/org/flag4j/operations/dense/real_complex/RealComplexDenseElemDiv.html @@ -1,11 +1,11 @@ - + RealComplexDenseElemDiv - + diff --git a/docs/org/flag4j/operations/dense/real_complex/RealComplexDenseElemMult.html b/docs/org/flag4j/operations/dense/real_complex/RealComplexDenseElemMult.html index 2559dcb5c..e38fb4907 100644 --- a/docs/org/flag4j/operations/dense/real_complex/RealComplexDenseElemMult.html +++ b/docs/org/flag4j/operations/dense/real_complex/RealComplexDenseElemMult.html @@ -1,11 +1,11 @@ - + RealComplexDenseElemMult - + diff --git a/docs/org/flag4j/operations/dense/real_complex/RealComplexDenseEquals.html b/docs/org/flag4j/operations/dense/real_complex/RealComplexDenseEquals.html index 3aeae768a..b278dd7de 100644 --- a/docs/org/flag4j/operations/dense/real_complex/RealComplexDenseEquals.html +++ b/docs/org/flag4j/operations/dense/real_complex/RealComplexDenseEquals.html @@ -1,11 +1,11 @@ - + RealComplexDenseEquals - + diff --git a/docs/org/flag4j/operations/dense/real_complex/RealComplexDenseMatrixMultTranspose.html b/docs/org/flag4j/operations/dense/real_complex/RealComplexDenseMatrixMultTranspose.html index 77e7b0227..39485c869 100644 --- a/docs/org/flag4j/operations/dense/real_complex/RealComplexDenseMatrixMultTranspose.html +++ b/docs/org/flag4j/operations/dense/real_complex/RealComplexDenseMatrixMultTranspose.html @@ -1,11 +1,11 @@ - + RealComplexDenseMatrixMultTranspose - + diff --git a/docs/org/flag4j/operations/dense/real_complex/RealComplexDenseMatrixMultiplication.html b/docs/org/flag4j/operations/dense/real_complex/RealComplexDenseMatrixMultiplication.html index 8fe0371bc..c7d380fd7 100644 --- a/docs/org/flag4j/operations/dense/real_complex/RealComplexDenseMatrixMultiplication.html +++ b/docs/org/flag4j/operations/dense/real_complex/RealComplexDenseMatrixMultiplication.html @@ -1,11 +1,11 @@ - + RealComplexDenseMatrixMultiplication - + diff --git a/docs/org/flag4j/operations/dense/real_complex/RealComplexDenseOperations.html b/docs/org/flag4j/operations/dense/real_complex/RealComplexDenseOperations.html index 5f9794a0d..e7b8d7faa 100644 --- a/docs/org/flag4j/operations/dense/real_complex/RealComplexDenseOperations.html +++ b/docs/org/flag4j/operations/dense/real_complex/RealComplexDenseOperations.html @@ -1,11 +1,11 @@ - + RealComplexDenseOperations - + diff --git a/docs/org/flag4j/operations/dense/real_complex/RealComplexDenseVectorOperations.html b/docs/org/flag4j/operations/dense/real_complex/RealComplexDenseVectorOperations.html index 9d6c01090..0073cc24d 100644 --- a/docs/org/flag4j/operations/dense/real_complex/RealComplexDenseVectorOperations.html +++ b/docs/org/flag4j/operations/dense/real_complex/RealComplexDenseVectorOperations.html @@ -1,11 +1,11 @@ - + RealComplexDenseVectorOperations - + diff --git a/docs/org/flag4j/operations/dense/real_complex/package-summary.html b/docs/org/flag4j/operations/dense/real_complex/package-summary.html index 6f5008aa8..5624075ab 100644 --- a/docs/org/flag4j/operations/dense/real_complex/package-summary.html +++ b/docs/org/flag4j/operations/dense/real_complex/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.dense.real_complex - + diff --git a/docs/org/flag4j/operations/dense/real_complex/package-tree.html b/docs/org/flag4j/operations/dense/real_complex/package-tree.html index a9fb5e4b0..ba2f5fa66 100644 --- a/docs/org/flag4j/operations/dense/real_complex/package-tree.html +++ b/docs/org/flag4j/operations/dense/real_complex/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.dense.real_complex Class Hierarchy - + diff --git a/docs/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseEquals.html b/docs/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseEquals.html index 091feca0b..a7e085ec7 100644 --- a/docs/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseEquals.html +++ b/docs/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseEquals.html @@ -1,11 +1,11 @@ - + ComplexDenseSparseEquals - + diff --git a/docs/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseMatrixMultTranspose.html b/docs/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseMatrixMultTranspose.html index cdc51fb02..791bab599 100644 --- a/docs/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseMatrixMultTranspose.html +++ b/docs/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseMatrixMultTranspose.html @@ -1,11 +1,11 @@ - + ComplexDenseSparseMatrixMultTranspose - + diff --git a/docs/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseMatrixMultiplication.html b/docs/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseMatrixMultiplication.html index 9df3f4384..46ea2d829 100644 --- a/docs/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseMatrixMultiplication.html +++ b/docs/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseMatrixMultiplication.html @@ -1,11 +1,11 @@ - + ComplexDenseSparseMatrixMultiplication - + diff --git a/docs/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseMatrixOperations.html b/docs/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseMatrixOperations.html index d6ca8290c..d94697a75 100644 --- a/docs/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseMatrixOperations.html +++ b/docs/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseMatrixOperations.html @@ -1,11 +1,11 @@ - + ComplexDenseSparseMatrixOperations - + diff --git a/docs/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseOperations.html b/docs/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseOperations.html index d62507085..53d6981d2 100644 --- a/docs/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseOperations.html +++ b/docs/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseOperations.html @@ -1,11 +1,11 @@ - + ComplexDenseSparseOperations - + diff --git a/docs/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseVectorOperations.html b/docs/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseVectorOperations.html index 8e1c4cbe1..f5106bf1f 100644 --- a/docs/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseVectorOperations.html +++ b/docs/org/flag4j/operations/dense_sparse/coo/complex/ComplexDenseSparseVectorOperations.html @@ -1,11 +1,11 @@ - + ComplexDenseSparseVectorOperations - + diff --git a/docs/org/flag4j/operations/dense_sparse/coo/complex/package-summary.html b/docs/org/flag4j/operations/dense_sparse/coo/complex/package-summary.html index ddf0a4490..97b3f1d28 100644 --- a/docs/org/flag4j/operations/dense_sparse/coo/complex/package-summary.html +++ b/docs/org/flag4j/operations/dense_sparse/coo/complex/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.dense_sparse.coo.complex - + diff --git a/docs/org/flag4j/operations/dense_sparse/coo/complex/package-tree.html b/docs/org/flag4j/operations/dense_sparse/coo/complex/package-tree.html index 03877c655..46e60e21a 100644 --- a/docs/org/flag4j/operations/dense_sparse/coo/complex/package-tree.html +++ b/docs/org/flag4j/operations/dense_sparse/coo/complex/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.dense_sparse.coo.complex Class Hierarchy - + diff --git a/docs/org/flag4j/operations/dense_sparse/coo/real/RealDenseSparseEquals.html b/docs/org/flag4j/operations/dense_sparse/coo/real/RealDenseSparseEquals.html index 8a8dd138e..1615b29d6 100644 --- a/docs/org/flag4j/operations/dense_sparse/coo/real/RealDenseSparseEquals.html +++ b/docs/org/flag4j/operations/dense_sparse/coo/real/RealDenseSparseEquals.html @@ -1,11 +1,11 @@ - + RealDenseSparseEquals - + diff --git a/docs/org/flag4j/operations/dense_sparse/coo/real/RealDenseSparseMatrixMultTranspose.html b/docs/org/flag4j/operations/dense_sparse/coo/real/RealDenseSparseMatrixMultTranspose.html index afb8491fd..aaf06f73e 100644 --- a/docs/org/flag4j/operations/dense_sparse/coo/real/RealDenseSparseMatrixMultTranspose.html +++ b/docs/org/flag4j/operations/dense_sparse/coo/real/RealDenseSparseMatrixMultTranspose.html @@ -1,11 +1,11 @@ - + RealDenseSparseMatrixMultTranspose - + diff --git a/docs/org/flag4j/operations/dense_sparse/coo/real/RealDenseSparseMatrixMultiplication.html b/docs/org/flag4j/operations/dense_sparse/coo/real/RealDenseSparseMatrixMultiplication.html index 79e60397c..30acb2fa5 100644 --- a/docs/org/flag4j/operations/dense_sparse/coo/real/RealDenseSparseMatrixMultiplication.html +++ b/docs/org/flag4j/operations/dense_sparse/coo/real/RealDenseSparseMatrixMultiplication.html @@ -1,11 +1,11 @@ - + RealDenseSparseMatrixMultiplication - + @@ -132,96 +132,88 @@

    Method Summary

    Computes the dense matrix sparse vector multiplication using a blocked algorithm.
    static double[]
    -
    concurrentAtomicArray(double[] src1, - int[] rowIndices1, - int[] colIndices1, - Shape shape1, - double[] src2, - Shape shape2)
    -
     
    -
    static double[]
    -
    concurrentBlockedVector(double[] src1, +
    concurrentBlockedVector(double[] src1, Shape shape1, double[] src2, int[] indices)
    -
    +
    Computes the dense matrix sparse vector multiplication using a blocked algorithm.
    -
    static double[]
    -
    concurrentStandard(double[] src1, +
    static double[]
    +
    concurrentStandard(double[] src1, int[] rowIndices, int[] colIndices, Shape shape1, double[] src2, Shape shape2)
    -
    +
    Computes the matrix multiplication between a real sparse matrix and a real dense matrix using a concurrent standard algorithm.
    -
    static double[]
    -
    concurrentStandard(double[] src1, +
    static double[]
    +
    concurrentStandard(double[] src1, Shape shape1, double[] src2, int[] rowIndices, int[] colIndices, Shape shape2)
    -
    +
    Computes the matrix multiplication between a real dense matrix and a real sparse matrix using a concurrent standard algorithm.
    -
    static double[]
    -
    concurrentStandardVector(double[] src1, +
    static double[]
    +
    concurrentStandardVector(double[] src1, int[] rowIndices, int[] colIndices, Shape shape1, double[] src2, Shape shape2)
    -
    +
    Computes the sparse matrix dense vector multiplication using a concurrent standard algorithm.
    -
    static double[]
    -
    concurrentStandardVector(double[] src1, +
    static double[]
    +
    concurrentStandardVector(double[] src1, Shape shape1, double[] src2, int[] indices)
    -
    +
    Computes the dense matrix sparse vector multiplication using a concurrent standard algorithm.
    -
    static double[]
    -
    standard(double[] src1, +
    static double[]
    +
    standard(double[] src1, int[] rowIndices, int[] colIndices, Shape shape1, double[] src2, Shape shape2)
    -
    +
    Computes the matrix multiplication between a real sparse matrix and a real dense matrix using a standard algorithm.
    -
    static double[]
    -
    standard(double[] src1, +
    static double[]
    +
    standard(double[] src1, Shape shape1, double[] src2, int[] rowIndices, int[] colIndices, Shape shape2)
    -
    +
    Computes the matrix multiplication between a real dense matrix and a real sparse matrix using a standard algorithm.
    -
    static double[]
    -
    standardVector(double[] src1, +
    static double[]
    +
    standardVector(double[] src1, int[] rowIndices, int[] colIndices, Shape shape1, double[] src2, Shape shape2)
    -
    +
    Computes the sparse matrix dense vector multiplication using a standard algorithm.
    -
    static double[]
    -
    standardVector(double[] src1, +
    static double[]
    +
    standardVector(double[] src1, Shape shape1, double[] src2, int[] indices)
    -
    +
    Computes the dense matrix sparse vector multiplication using a standard algorithm.
    @@ -359,19 +351,6 @@

    concurrentStandard

  • -
    -

    concurrentAtomicArray

    -
    -
    public static double[] concurrentAtomicArray(double[] src1, - int[] rowIndices1, - int[] colIndices1, - Shape shape1, - double[] src2, - Shape shape2)
    -
    -
    -
  • -
  • standardVector

    diff --git a/docs/org/flag4j/operations/dense_sparse/coo/real/RealDenseSparseMatrixOperations.html b/docs/org/flag4j/operations/dense_sparse/coo/real/RealDenseSparseMatrixOperations.html index 7aa6911f1..a5874cb6c 100644 --- a/docs/org/flag4j/operations/dense_sparse/coo/real/RealDenseSparseMatrixOperations.html +++ b/docs/org/flag4j/operations/dense_sparse/coo/real/RealDenseSparseMatrixOperations.html @@ -1,11 +1,11 @@ - + RealDenseSparseMatrixOperations - + diff --git a/docs/org/flag4j/operations/dense_sparse/coo/real/RealDenseSparseTensorOperations.html b/docs/org/flag4j/operations/dense_sparse/coo/real/RealDenseSparseTensorOperations.html index 32a5d40cc..c9ff207fb 100644 --- a/docs/org/flag4j/operations/dense_sparse/coo/real/RealDenseSparseTensorOperations.html +++ b/docs/org/flag4j/operations/dense_sparse/coo/real/RealDenseSparseTensorOperations.html @@ -1,11 +1,11 @@ - + RealDenseSparseTensorOperations - + diff --git a/docs/org/flag4j/operations/dense_sparse/coo/real/RealDenseSparseVectorOperations.html b/docs/org/flag4j/operations/dense_sparse/coo/real/RealDenseSparseVectorOperations.html index 94cb1defb..6eb44277c 100644 --- a/docs/org/flag4j/operations/dense_sparse/coo/real/RealDenseSparseVectorOperations.html +++ b/docs/org/flag4j/operations/dense_sparse/coo/real/RealDenseSparseVectorOperations.html @@ -1,11 +1,11 @@ - + RealDenseSparseVectorOperations - + diff --git a/docs/org/flag4j/operations/dense_sparse/coo/real/package-summary.html b/docs/org/flag4j/operations/dense_sparse/coo/real/package-summary.html index 25a3a9825..fea47530b 100644 --- a/docs/org/flag4j/operations/dense_sparse/coo/real/package-summary.html +++ b/docs/org/flag4j/operations/dense_sparse/coo/real/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.dense_sparse.coo.real - + diff --git a/docs/org/flag4j/operations/dense_sparse/coo/real/package-tree.html b/docs/org/flag4j/operations/dense_sparse/coo/real/package-tree.html index 4e28469d0..1cc580022 100644 --- a/docs/org/flag4j/operations/dense_sparse/coo/real/package-tree.html +++ b/docs/org/flag4j/operations/dense_sparse/coo/real/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.dense_sparse.coo.real Class Hierarchy - + diff --git a/docs/org/flag4j/operations/dense_sparse/coo/real_complex/RealComplexDenseSparseEquals.html b/docs/org/flag4j/operations/dense_sparse/coo/real_complex/RealComplexDenseSparseEquals.html index 650514f58..4111ac6b2 100644 --- a/docs/org/flag4j/operations/dense_sparse/coo/real_complex/RealComplexDenseSparseEquals.html +++ b/docs/org/flag4j/operations/dense_sparse/coo/real_complex/RealComplexDenseSparseEquals.html @@ -1,11 +1,11 @@ - + RealComplexDenseSparseEquals - + diff --git a/docs/org/flag4j/operations/dense_sparse/coo/real_complex/RealComplexDenseSparseMatrixMultTranspose.html b/docs/org/flag4j/operations/dense_sparse/coo/real_complex/RealComplexDenseSparseMatrixMultTranspose.html index c58c18e17..54f058785 100644 --- a/docs/org/flag4j/operations/dense_sparse/coo/real_complex/RealComplexDenseSparseMatrixMultTranspose.html +++ b/docs/org/flag4j/operations/dense_sparse/coo/real_complex/RealComplexDenseSparseMatrixMultTranspose.html @@ -1,11 +1,11 @@ - + RealComplexDenseSparseMatrixMultTranspose - + diff --git a/docs/org/flag4j/operations/dense_sparse/coo/real_complex/RealComplexDenseSparseMatrixMultiplication.html b/docs/org/flag4j/operations/dense_sparse/coo/real_complex/RealComplexDenseSparseMatrixMultiplication.html index 551cca5b4..c0f20edc1 100644 --- a/docs/org/flag4j/operations/dense_sparse/coo/real_complex/RealComplexDenseSparseMatrixMultiplication.html +++ b/docs/org/flag4j/operations/dense_sparse/coo/real_complex/RealComplexDenseSparseMatrixMultiplication.html @@ -1,11 +1,11 @@ - + RealComplexDenseSparseMatrixMultiplication - + diff --git a/docs/org/flag4j/operations/dense_sparse/coo/real_complex/RealComplexDenseSparseMatrixOperations.html b/docs/org/flag4j/operations/dense_sparse/coo/real_complex/RealComplexDenseSparseMatrixOperations.html index 3517dd9ab..3cf5d605a 100644 --- a/docs/org/flag4j/operations/dense_sparse/coo/real_complex/RealComplexDenseSparseMatrixOperations.html +++ b/docs/org/flag4j/operations/dense_sparse/coo/real_complex/RealComplexDenseSparseMatrixOperations.html @@ -1,11 +1,11 @@ - + RealComplexDenseSparseMatrixOperations - + diff --git a/docs/org/flag4j/operations/dense_sparse/coo/real_complex/RealComplexDenseSparseOperations.html b/docs/org/flag4j/operations/dense_sparse/coo/real_complex/RealComplexDenseSparseOperations.html index 08ceeb456..631309e6a 100644 --- a/docs/org/flag4j/operations/dense_sparse/coo/real_complex/RealComplexDenseSparseOperations.html +++ b/docs/org/flag4j/operations/dense_sparse/coo/real_complex/RealComplexDenseSparseOperations.html @@ -1,11 +1,11 @@ - + RealComplexDenseSparseOperations - + diff --git a/docs/org/flag4j/operations/dense_sparse/coo/real_complex/RealComplexDenseSparseVectorOperations.html b/docs/org/flag4j/operations/dense_sparse/coo/real_complex/RealComplexDenseSparseVectorOperations.html index 010a7644e..52eca2f00 100644 --- a/docs/org/flag4j/operations/dense_sparse/coo/real_complex/RealComplexDenseSparseVectorOperations.html +++ b/docs/org/flag4j/operations/dense_sparse/coo/real_complex/RealComplexDenseSparseVectorOperations.html @@ -1,11 +1,11 @@ - + RealComplexDenseSparseVectorOperations - + diff --git a/docs/org/flag4j/operations/dense_sparse/coo/real_complex/package-summary.html b/docs/org/flag4j/operations/dense_sparse/coo/real_complex/package-summary.html index 8a7dc5e63..b5a5bf2eb 100644 --- a/docs/org/flag4j/operations/dense_sparse/coo/real_complex/package-summary.html +++ b/docs/org/flag4j/operations/dense_sparse/coo/real_complex/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.dense_sparse.coo.real_complex - + diff --git a/docs/org/flag4j/operations/dense_sparse/coo/real_complex/package-tree.html b/docs/org/flag4j/operations/dense_sparse/coo/real_complex/package-tree.html index c6bb9c9c3..e13aefa06 100644 --- a/docs/org/flag4j/operations/dense_sparse/coo/real_complex/package-tree.html +++ b/docs/org/flag4j/operations/dense_sparse/coo/real_complex/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.dense_sparse.coo.real_complex Class Hierarchy - + diff --git a/docs/org/flag4j/operations/dense_sparse/csr/complex/ComplexCsrDenseMatrixMultiplication.html b/docs/org/flag4j/operations/dense_sparse/csr/complex/ComplexCsrDenseMatrixMultiplication.html index 1cec3cdb3..c0f749f97 100644 --- a/docs/org/flag4j/operations/dense_sparse/csr/complex/ComplexCsrDenseMatrixMultiplication.html +++ b/docs/org/flag4j/operations/dense_sparse/csr/complex/ComplexCsrDenseMatrixMultiplication.html @@ -1,11 +1,11 @@ - + ComplexCsrDenseMatrixMultiplication - + diff --git a/docs/org/flag4j/operations/dense_sparse/csr/complex/ComplexCsrDenseOperations.html b/docs/org/flag4j/operations/dense_sparse/csr/complex/ComplexCsrDenseOperations.html index de98ba697..21a02ad61 100644 --- a/docs/org/flag4j/operations/dense_sparse/csr/complex/ComplexCsrDenseOperations.html +++ b/docs/org/flag4j/operations/dense_sparse/csr/complex/ComplexCsrDenseOperations.html @@ -1,11 +1,11 @@ - + ComplexCsrDenseOperations - + diff --git a/docs/org/flag4j/operations/dense_sparse/csr/complex/package-summary.html b/docs/org/flag4j/operations/dense_sparse/csr/complex/package-summary.html index c043bd79f..1dd6c09cc 100644 --- a/docs/org/flag4j/operations/dense_sparse/csr/complex/package-summary.html +++ b/docs/org/flag4j/operations/dense_sparse/csr/complex/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.dense_sparse.csr.complex - + diff --git a/docs/org/flag4j/operations/dense_sparse/csr/complex/package-tree.html b/docs/org/flag4j/operations/dense_sparse/csr/complex/package-tree.html index d51921386..42f0e5316 100644 --- a/docs/org/flag4j/operations/dense_sparse/csr/complex/package-tree.html +++ b/docs/org/flag4j/operations/dense_sparse/csr/complex/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.dense_sparse.csr.complex Class Hierarchy - + diff --git a/docs/org/flag4j/operations/dense_sparse/csr/real/RealCsrDenseMatrixMultiplication.html b/docs/org/flag4j/operations/dense_sparse/csr/real/RealCsrDenseMatrixMultiplication.html index 0d4298254..1cb03495a 100644 --- a/docs/org/flag4j/operations/dense_sparse/csr/real/RealCsrDenseMatrixMultiplication.html +++ b/docs/org/flag4j/operations/dense_sparse/csr/real/RealCsrDenseMatrixMultiplication.html @@ -1,11 +1,11 @@ - + RealCsrDenseMatrixMultiplication - + diff --git a/docs/org/flag4j/operations/dense_sparse/csr/real/RealCsrDenseOperations.html b/docs/org/flag4j/operations/dense_sparse/csr/real/RealCsrDenseOperations.html index c9a236a2d..85301fe8c 100644 --- a/docs/org/flag4j/operations/dense_sparse/csr/real/RealCsrDenseOperations.html +++ b/docs/org/flag4j/operations/dense_sparse/csr/real/RealCsrDenseOperations.html @@ -1,11 +1,11 @@ - + RealCsrDenseOperations - + diff --git a/docs/org/flag4j/operations/dense_sparse/csr/real/package-summary.html b/docs/org/flag4j/operations/dense_sparse/csr/real/package-summary.html index 91e338f7b..b804dad9e 100644 --- a/docs/org/flag4j/operations/dense_sparse/csr/real/package-summary.html +++ b/docs/org/flag4j/operations/dense_sparse/csr/real/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.dense_sparse.csr.real - + diff --git a/docs/org/flag4j/operations/dense_sparse/csr/real/package-tree.html b/docs/org/flag4j/operations/dense_sparse/csr/real/package-tree.html index ca8385c70..1bc6c3a66 100644 --- a/docs/org/flag4j/operations/dense_sparse/csr/real/package-tree.html +++ b/docs/org/flag4j/operations/dense_sparse/csr/real/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.dense_sparse.csr.real Class Hierarchy - + diff --git a/docs/org/flag4j/operations/dense_sparse/csr/real_complex/RealComplexCsrDenseMatrixMultiplication.html b/docs/org/flag4j/operations/dense_sparse/csr/real_complex/RealComplexCsrDenseMatrixMultiplication.html index 50074ef16..57e066614 100644 --- a/docs/org/flag4j/operations/dense_sparse/csr/real_complex/RealComplexCsrDenseMatrixMultiplication.html +++ b/docs/org/flag4j/operations/dense_sparse/csr/real_complex/RealComplexCsrDenseMatrixMultiplication.html @@ -1,11 +1,11 @@ - + RealComplexCsrDenseMatrixMultiplication - + diff --git a/docs/org/flag4j/operations/dense_sparse/csr/real_complex/RealComplexCsrDenseOperations.html b/docs/org/flag4j/operations/dense_sparse/csr/real_complex/RealComplexCsrDenseOperations.html index c5d993490..dac4336e1 100644 --- a/docs/org/flag4j/operations/dense_sparse/csr/real_complex/RealComplexCsrDenseOperations.html +++ b/docs/org/flag4j/operations/dense_sparse/csr/real_complex/RealComplexCsrDenseOperations.html @@ -1,11 +1,11 @@ - + RealComplexCsrDenseOperations - + diff --git a/docs/org/flag4j/operations/dense_sparse/csr/real_complex/package-summary.html b/docs/org/flag4j/operations/dense_sparse/csr/real_complex/package-summary.html index 6800cfd3e..08cd4bdd3 100644 --- a/docs/org/flag4j/operations/dense_sparse/csr/real_complex/package-summary.html +++ b/docs/org/flag4j/operations/dense_sparse/csr/real_complex/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.dense_sparse.csr.real_complex - + diff --git a/docs/org/flag4j/operations/dense_sparse/csr/real_complex/package-tree.html b/docs/org/flag4j/operations/dense_sparse/csr/real_complex/package-tree.html index 5c4a0c060..ebe9614dd 100644 --- a/docs/org/flag4j/operations/dense_sparse/csr/real_complex/package-tree.html +++ b/docs/org/flag4j/operations/dense_sparse/csr/real_complex/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.dense_sparse.csr.real_complex Class Hierarchy - + diff --git a/docs/org/flag4j/operations/package-summary.html b/docs/org/flag4j/operations/package-summary.html index 33a640ce0..5a3bdfe96 100644 --- a/docs/org/flag4j/operations/package-summary.html +++ b/docs/org/flag4j/operations/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.operations - + diff --git a/docs/org/flag4j/operations/package-tree.html b/docs/org/flag4j/operations/package-tree.html index 2154ee3c9..65da0e02f 100644 --- a/docs/org/flag4j/operations/package-tree.html +++ b/docs/org/flag4j/operations/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.operations Class Hierarchy - + diff --git a/docs/org/flag4j/operations/sparse/coo/SparseDataWrapper.html b/docs/org/flag4j/operations/sparse/coo/SparseDataWrapper.html index 68bf74128..66e672607 100644 --- a/docs/org/flag4j/operations/sparse/coo/SparseDataWrapper.html +++ b/docs/org/flag4j/operations/sparse/coo/SparseDataWrapper.html @@ -1,11 +1,11 @@ - + SparseDataWrapper - + diff --git a/docs/org/flag4j/operations/sparse/coo/SparseElementSearch.html b/docs/org/flag4j/operations/sparse/coo/SparseElementSearch.html index e4a710e7e..d5375dd4e 100644 --- a/docs/org/flag4j/operations/sparse/coo/SparseElementSearch.html +++ b/docs/org/flag4j/operations/sparse/coo/SparseElementSearch.html @@ -1,11 +1,11 @@ - + SparseElementSearch - + diff --git a/docs/org/flag4j/operations/sparse/coo/SparseUtils.html b/docs/org/flag4j/operations/sparse/coo/SparseUtils.html index 73a556731..2986b7215 100644 --- a/docs/org/flag4j/operations/sparse/coo/SparseUtils.html +++ b/docs/org/flag4j/operations/sparse/coo/SparseUtils.html @@ -1,11 +1,11 @@ - + SparseUtils - + diff --git a/docs/org/flag4j/operations/sparse/coo/complex/ComplexCooTensorDot.html b/docs/org/flag4j/operations/sparse/coo/complex/ComplexCooTensorDot.html index 5978c241b..2fb4212c4 100644 --- a/docs/org/flag4j/operations/sparse/coo/complex/ComplexCooTensorDot.html +++ b/docs/org/flag4j/operations/sparse/coo/complex/ComplexCooTensorDot.html @@ -1,11 +1,11 @@ - + ComplexCooTensorDot - + diff --git a/docs/org/flag4j/operations/sparse/coo/complex/ComplexCooTensorOperations.html b/docs/org/flag4j/operations/sparse/coo/complex/ComplexCooTensorOperations.html index ab73130e6..890e3890b 100644 --- a/docs/org/flag4j/operations/sparse/coo/complex/ComplexCooTensorOperations.html +++ b/docs/org/flag4j/operations/sparse/coo/complex/ComplexCooTensorOperations.html @@ -1,11 +1,11 @@ - + ComplexCooTensorOperations - + diff --git a/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseElementSearch.html b/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseElementSearch.html index 2495e3826..7e8af0af5 100644 --- a/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseElementSearch.html +++ b/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseElementSearch.html @@ -1,11 +1,11 @@ - + ComplexSparseElementSearch - + diff --git a/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseEquals.html b/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseEquals.html index e6d74d206..d67bf5a42 100644 --- a/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseEquals.html +++ b/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseEquals.html @@ -1,11 +1,11 @@ - + ComplexSparseEquals - + diff --git a/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseMatrixGetSet.html b/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseMatrixGetSet.html index 602fc6899..184971572 100644 --- a/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseMatrixGetSet.html +++ b/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseMatrixGetSet.html @@ -1,11 +1,11 @@ - + ComplexSparseMatrixGetSet - + diff --git a/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseMatrixManipulations.html b/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseMatrixManipulations.html index cf01ffaa5..f04e19d8d 100644 --- a/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseMatrixManipulations.html +++ b/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseMatrixManipulations.html @@ -1,11 +1,11 @@ - + ComplexSparseMatrixManipulations - + diff --git a/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseMatrixMultiplication.html b/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseMatrixMultiplication.html index eec33a1b9..72905d476 100644 --- a/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseMatrixMultiplication.html +++ b/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseMatrixMultiplication.html @@ -1,11 +1,11 @@ - + ComplexSparseMatrixMultiplication - + diff --git a/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseMatrixOperations.html b/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseMatrixOperations.html index ddb1099ad..785738beb 100644 --- a/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseMatrixOperations.html +++ b/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseMatrixOperations.html @@ -1,11 +1,11 @@ - + ComplexSparseMatrixOperations - + diff --git a/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseMatrixProperties.html b/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseMatrixProperties.html index 0d2b5d07b..8a7df57ce 100644 --- a/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseMatrixProperties.html +++ b/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseMatrixProperties.html @@ -1,11 +1,11 @@ - + ComplexSparseMatrixProperties - + diff --git a/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseNorms.html b/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseNorms.html index ca26dc037..7afb33326 100644 --- a/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseNorms.html +++ b/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseNorms.html @@ -1,11 +1,11 @@ - + ComplexSparseNorms - + diff --git a/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseVectorOperations.html b/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseVectorOperations.html index f3d4bce82..3b09a4e6d 100644 --- a/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseVectorOperations.html +++ b/docs/org/flag4j/operations/sparse/coo/complex/ComplexSparseVectorOperations.html @@ -1,11 +1,11 @@ - + ComplexSparseVectorOperations - + diff --git a/docs/org/flag4j/operations/sparse/coo/complex/package-summary.html b/docs/org/flag4j/operations/sparse/coo/complex/package-summary.html index ae193e2eb..73cea757e 100644 --- a/docs/org/flag4j/operations/sparse/coo/complex/package-summary.html +++ b/docs/org/flag4j/operations/sparse/coo/complex/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.sparse.coo.complex - + diff --git a/docs/org/flag4j/operations/sparse/coo/complex/package-tree.html b/docs/org/flag4j/operations/sparse/coo/complex/package-tree.html index b44905c6a..89e1d50f3 100644 --- a/docs/org/flag4j/operations/sparse/coo/complex/package-tree.html +++ b/docs/org/flag4j/operations/sparse/coo/complex/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.sparse.coo.complex Class Hierarchy - + diff --git a/docs/org/flag4j/operations/sparse/coo/package-summary.html b/docs/org/flag4j/operations/sparse/coo/package-summary.html index d5df019a4..e9dcfb2d1 100644 --- a/docs/org/flag4j/operations/sparse/coo/package-summary.html +++ b/docs/org/flag4j/operations/sparse/coo/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.sparse.coo - + diff --git a/docs/org/flag4j/operations/sparse/coo/package-tree.html b/docs/org/flag4j/operations/sparse/coo/package-tree.html index 5a5b5281a..135a2f671 100644 --- a/docs/org/flag4j/operations/sparse/coo/package-tree.html +++ b/docs/org/flag4j/operations/sparse/coo/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.sparse.coo Class Hierarchy - + diff --git a/docs/org/flag4j/operations/sparse/coo/real/RealCooTensorDot.html b/docs/org/flag4j/operations/sparse/coo/real/RealCooTensorDot.html index ef49a5aaa..976f25839 100644 --- a/docs/org/flag4j/operations/sparse/coo/real/RealCooTensorDot.html +++ b/docs/org/flag4j/operations/sparse/coo/real/RealCooTensorDot.html @@ -1,11 +1,11 @@ - + RealCooTensorDot - + diff --git a/docs/org/flag4j/operations/sparse/coo/real/RealCooTensorOperations.html b/docs/org/flag4j/operations/sparse/coo/real/RealCooTensorOperations.html index da4267034..d2e946092 100644 --- a/docs/org/flag4j/operations/sparse/coo/real/RealCooTensorOperations.html +++ b/docs/org/flag4j/operations/sparse/coo/real/RealCooTensorOperations.html @@ -1,11 +1,11 @@ - + RealCooTensorOperations - + diff --git a/docs/org/flag4j/operations/sparse/coo/real/RealSparseEquals.html b/docs/org/flag4j/operations/sparse/coo/real/RealSparseEquals.html index acb307500..a86053cfa 100644 --- a/docs/org/flag4j/operations/sparse/coo/real/RealSparseEquals.html +++ b/docs/org/flag4j/operations/sparse/coo/real/RealSparseEquals.html @@ -1,11 +1,11 @@ - + RealSparseEquals - + diff --git a/docs/org/flag4j/operations/sparse/coo/real/RealSparseManipulations.html b/docs/org/flag4j/operations/sparse/coo/real/RealSparseManipulations.html index e95924ac1..29e491075 100644 --- a/docs/org/flag4j/operations/sparse/coo/real/RealSparseManipulations.html +++ b/docs/org/flag4j/operations/sparse/coo/real/RealSparseManipulations.html @@ -1,11 +1,11 @@ - + RealSparseManipulations - + diff --git a/docs/org/flag4j/operations/sparse/coo/real/RealSparseMatrixGetSet.html b/docs/org/flag4j/operations/sparse/coo/real/RealSparseMatrixGetSet.html index b48a631d3..341cb974d 100644 --- a/docs/org/flag4j/operations/sparse/coo/real/RealSparseMatrixGetSet.html +++ b/docs/org/flag4j/operations/sparse/coo/real/RealSparseMatrixGetSet.html @@ -1,11 +1,11 @@ - + RealSparseMatrixGetSet - + diff --git a/docs/org/flag4j/operations/sparse/coo/real/RealSparseMatrixManipulations.html b/docs/org/flag4j/operations/sparse/coo/real/RealSparseMatrixManipulations.html index c68891089..36e065e4b 100644 --- a/docs/org/flag4j/operations/sparse/coo/real/RealSparseMatrixManipulations.html +++ b/docs/org/flag4j/operations/sparse/coo/real/RealSparseMatrixManipulations.html @@ -1,11 +1,11 @@ - + RealSparseMatrixManipulations - + diff --git a/docs/org/flag4j/operations/sparse/coo/real/RealSparseMatrixMultiplication.html b/docs/org/flag4j/operations/sparse/coo/real/RealSparseMatrixMultiplication.html index b2d0fb10f..c36810f73 100644 --- a/docs/org/flag4j/operations/sparse/coo/real/RealSparseMatrixMultiplication.html +++ b/docs/org/flag4j/operations/sparse/coo/real/RealSparseMatrixMultiplication.html @@ -1,11 +1,11 @@ - + RealSparseMatrixMultiplication - + diff --git a/docs/org/flag4j/operations/sparse/coo/real/RealSparseMatrixOperations.html b/docs/org/flag4j/operations/sparse/coo/real/RealSparseMatrixOperations.html index 8ab8fc23c..2130d6fbb 100644 --- a/docs/org/flag4j/operations/sparse/coo/real/RealSparseMatrixOperations.html +++ b/docs/org/flag4j/operations/sparse/coo/real/RealSparseMatrixOperations.html @@ -1,11 +1,11 @@ - + RealSparseMatrixOperations - + diff --git a/docs/org/flag4j/operations/sparse/coo/real/RealSparseMatrixProperties.html b/docs/org/flag4j/operations/sparse/coo/real/RealSparseMatrixProperties.html index 5ac5c618f..4d8711587 100644 --- a/docs/org/flag4j/operations/sparse/coo/real/RealSparseMatrixProperties.html +++ b/docs/org/flag4j/operations/sparse/coo/real/RealSparseMatrixProperties.html @@ -1,11 +1,11 @@ - + RealSparseMatrixProperties - + diff --git a/docs/org/flag4j/operations/sparse/coo/real/RealSparseNorms.html b/docs/org/flag4j/operations/sparse/coo/real/RealSparseNorms.html index 3a32c391c..a5192d79f 100644 --- a/docs/org/flag4j/operations/sparse/coo/real/RealSparseNorms.html +++ b/docs/org/flag4j/operations/sparse/coo/real/RealSparseNorms.html @@ -1,11 +1,11 @@ - + RealSparseNorms - + diff --git a/docs/org/flag4j/operations/sparse/coo/real/RealSparseVectorOperations.html b/docs/org/flag4j/operations/sparse/coo/real/RealSparseVectorOperations.html index aad40dfa3..9a804cf40 100644 --- a/docs/org/flag4j/operations/sparse/coo/real/RealSparseVectorOperations.html +++ b/docs/org/flag4j/operations/sparse/coo/real/RealSparseVectorOperations.html @@ -1,11 +1,11 @@ - + RealSparseVectorOperations - + diff --git a/docs/org/flag4j/operations/sparse/coo/real/package-summary.html b/docs/org/flag4j/operations/sparse/coo/real/package-summary.html index f0b8eae97..297479e32 100644 --- a/docs/org/flag4j/operations/sparse/coo/real/package-summary.html +++ b/docs/org/flag4j/operations/sparse/coo/real/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.sparse.coo.real - + diff --git a/docs/org/flag4j/operations/sparse/coo/real/package-tree.html b/docs/org/flag4j/operations/sparse/coo/real/package-tree.html index 052cf1da3..f5924cfb0 100644 --- a/docs/org/flag4j/operations/sparse/coo/real/package-tree.html +++ b/docs/org/flag4j/operations/sparse/coo/real/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.sparse.coo.real Class Hierarchy - + diff --git a/docs/org/flag4j/operations/sparse/coo/real_complex/RealComplexCooTensorOperations.html b/docs/org/flag4j/operations/sparse/coo/real_complex/RealComplexCooTensorOperations.html index 45a3156cd..28b21069c 100644 --- a/docs/org/flag4j/operations/sparse/coo/real_complex/RealComplexCooTensorOperations.html +++ b/docs/org/flag4j/operations/sparse/coo/real_complex/RealComplexCooTensorOperations.html @@ -1,11 +1,11 @@ - + RealComplexCooTensorOperations - + diff --git a/docs/org/flag4j/operations/sparse/coo/real_complex/RealComplexSparseEquals.html b/docs/org/flag4j/operations/sparse/coo/real_complex/RealComplexSparseEquals.html index 6d80f9c72..ee86a7455 100644 --- a/docs/org/flag4j/operations/sparse/coo/real_complex/RealComplexSparseEquals.html +++ b/docs/org/flag4j/operations/sparse/coo/real_complex/RealComplexSparseEquals.html @@ -1,11 +1,11 @@ - + RealComplexSparseEquals - + diff --git a/docs/org/flag4j/operations/sparse/coo/real_complex/RealComplexSparseMatrixMultiplication.html b/docs/org/flag4j/operations/sparse/coo/real_complex/RealComplexSparseMatrixMultiplication.html index ba7413662..13b5854fd 100644 --- a/docs/org/flag4j/operations/sparse/coo/real_complex/RealComplexSparseMatrixMultiplication.html +++ b/docs/org/flag4j/operations/sparse/coo/real_complex/RealComplexSparseMatrixMultiplication.html @@ -1,11 +1,11 @@ - + RealComplexSparseMatrixMultiplication - + diff --git a/docs/org/flag4j/operations/sparse/coo/real_complex/RealComplexSparseMatrixOperations.html b/docs/org/flag4j/operations/sparse/coo/real_complex/RealComplexSparseMatrixOperations.html index 44a62a59c..192bb1e44 100644 --- a/docs/org/flag4j/operations/sparse/coo/real_complex/RealComplexSparseMatrixOperations.html +++ b/docs/org/flag4j/operations/sparse/coo/real_complex/RealComplexSparseMatrixOperations.html @@ -1,11 +1,11 @@ - + RealComplexSparseMatrixOperations - + diff --git a/docs/org/flag4j/operations/sparse/coo/real_complex/RealComplexSparseVectorOperations.html b/docs/org/flag4j/operations/sparse/coo/real_complex/RealComplexSparseVectorOperations.html index 887269c27..e279a2abd 100644 --- a/docs/org/flag4j/operations/sparse/coo/real_complex/RealComplexSparseVectorOperations.html +++ b/docs/org/flag4j/operations/sparse/coo/real_complex/RealComplexSparseVectorOperations.html @@ -1,11 +1,11 @@ - + RealComplexSparseVectorOperations - + diff --git a/docs/org/flag4j/operations/sparse/coo/real_complex/package-summary.html b/docs/org/flag4j/operations/sparse/coo/real_complex/package-summary.html index 1581abafa..1c6279f82 100644 --- a/docs/org/flag4j/operations/sparse/coo/real_complex/package-summary.html +++ b/docs/org/flag4j/operations/sparse/coo/real_complex/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.sparse.coo.real_complex - + diff --git a/docs/org/flag4j/operations/sparse/coo/real_complex/package-tree.html b/docs/org/flag4j/operations/sparse/coo/real_complex/package-tree.html index 0082eda66..ceb83e308 100644 --- a/docs/org/flag4j/operations/sparse/coo/real_complex/package-tree.html +++ b/docs/org/flag4j/operations/sparse/coo/real_complex/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.sparse.coo.real_complex Class Hierarchy - + diff --git a/docs/org/flag4j/operations/sparse/csr/complex/ComplexCsrEquals.html b/docs/org/flag4j/operations/sparse/csr/complex/ComplexCsrEquals.html index 303ffd325..aa2b8b2a9 100644 --- a/docs/org/flag4j/operations/sparse/csr/complex/ComplexCsrEquals.html +++ b/docs/org/flag4j/operations/sparse/csr/complex/ComplexCsrEquals.html @@ -1,11 +1,11 @@ - + ComplexCsrEquals - + diff --git a/docs/org/flag4j/operations/sparse/csr/complex/ComplexCsrManipulations.html b/docs/org/flag4j/operations/sparse/csr/complex/ComplexCsrManipulations.html index 26e5c45bc..57896846f 100644 --- a/docs/org/flag4j/operations/sparse/csr/complex/ComplexCsrManipulations.html +++ b/docs/org/flag4j/operations/sparse/csr/complex/ComplexCsrManipulations.html @@ -1,11 +1,11 @@ - + ComplexCsrManipulations - + diff --git a/docs/org/flag4j/operations/sparse/csr/complex/ComplexCsrMatrixMultiplication.html b/docs/org/flag4j/operations/sparse/csr/complex/ComplexCsrMatrixMultiplication.html index 4cbe9a6fd..197cd20ee 100644 --- a/docs/org/flag4j/operations/sparse/csr/complex/ComplexCsrMatrixMultiplication.html +++ b/docs/org/flag4j/operations/sparse/csr/complex/ComplexCsrMatrixMultiplication.html @@ -1,11 +1,11 @@ - + ComplexCsrMatrixMultiplication - + diff --git a/docs/org/flag4j/operations/sparse/csr/complex/ComplexCsrOperations.html b/docs/org/flag4j/operations/sparse/csr/complex/ComplexCsrOperations.html index d516e0131..a020ee3f2 100644 --- a/docs/org/flag4j/operations/sparse/csr/complex/ComplexCsrOperations.html +++ b/docs/org/flag4j/operations/sparse/csr/complex/ComplexCsrOperations.html @@ -1,11 +1,11 @@ - + ComplexCsrOperations - + diff --git a/docs/org/flag4j/operations/sparse/csr/complex/ComplexCsrProperties.html b/docs/org/flag4j/operations/sparse/csr/complex/ComplexCsrProperties.html index 56777ec3c..1f3543e27 100644 --- a/docs/org/flag4j/operations/sparse/csr/complex/ComplexCsrProperties.html +++ b/docs/org/flag4j/operations/sparse/csr/complex/ComplexCsrProperties.html @@ -1,11 +1,11 @@ - + ComplexCsrProperties - + diff --git a/docs/org/flag4j/operations/sparse/csr/complex/package-summary.html b/docs/org/flag4j/operations/sparse/csr/complex/package-summary.html index 54eec1075..b22ddbc45 100644 --- a/docs/org/flag4j/operations/sparse/csr/complex/package-summary.html +++ b/docs/org/flag4j/operations/sparse/csr/complex/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.sparse.csr.complex - + diff --git a/docs/org/flag4j/operations/sparse/csr/complex/package-tree.html b/docs/org/flag4j/operations/sparse/csr/complex/package-tree.html index 2a5f0b068..1aee2b8c4 100644 --- a/docs/org/flag4j/operations/sparse/csr/complex/package-tree.html +++ b/docs/org/flag4j/operations/sparse/csr/complex/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.sparse.csr.complex Class Hierarchy - + diff --git a/docs/org/flag4j/operations/sparse/csr/real/RealCsrConcats.html b/docs/org/flag4j/operations/sparse/csr/real/RealCsrConcats.html index f04df7d98..fc5a06788 100644 --- a/docs/org/flag4j/operations/sparse/csr/real/RealCsrConcats.html +++ b/docs/org/flag4j/operations/sparse/csr/real/RealCsrConcats.html @@ -1,11 +1,11 @@ - + RealCsrConcats - + diff --git a/docs/org/flag4j/operations/sparse/csr/real/RealCsrEquals.html b/docs/org/flag4j/operations/sparse/csr/real/RealCsrEquals.html index 06fc1b401..8cf948d8a 100644 --- a/docs/org/flag4j/operations/sparse/csr/real/RealCsrEquals.html +++ b/docs/org/flag4j/operations/sparse/csr/real/RealCsrEquals.html @@ -1,11 +1,11 @@ - + RealCsrEquals - + diff --git a/docs/org/flag4j/operations/sparse/csr/real/RealCsrManipulations.html b/docs/org/flag4j/operations/sparse/csr/real/RealCsrManipulations.html index df25f4cd1..abc63ad32 100644 --- a/docs/org/flag4j/operations/sparse/csr/real/RealCsrManipulations.html +++ b/docs/org/flag4j/operations/sparse/csr/real/RealCsrManipulations.html @@ -1,11 +1,11 @@ - + RealCsrManipulations - + diff --git a/docs/org/flag4j/operations/sparse/csr/real/RealCsrMatrixMultiplication.html b/docs/org/flag4j/operations/sparse/csr/real/RealCsrMatrixMultiplication.html index 7dc3a841c..6c067e36a 100644 --- a/docs/org/flag4j/operations/sparse/csr/real/RealCsrMatrixMultiplication.html +++ b/docs/org/flag4j/operations/sparse/csr/real/RealCsrMatrixMultiplication.html @@ -1,11 +1,11 @@ - + RealCsrMatrixMultiplication - + diff --git a/docs/org/flag4j/operations/sparse/csr/real/RealCsrOperations.html b/docs/org/flag4j/operations/sparse/csr/real/RealCsrOperations.html index 1bb0b1ffa..f98f70751 100644 --- a/docs/org/flag4j/operations/sparse/csr/real/RealCsrOperations.html +++ b/docs/org/flag4j/operations/sparse/csr/real/RealCsrOperations.html @@ -1,11 +1,11 @@ - + RealCsrOperations - + diff --git a/docs/org/flag4j/operations/sparse/csr/real/RealCsrProperties.html b/docs/org/flag4j/operations/sparse/csr/real/RealCsrProperties.html index ae665d688..4e160a675 100644 --- a/docs/org/flag4j/operations/sparse/csr/real/RealCsrProperties.html +++ b/docs/org/flag4j/operations/sparse/csr/real/RealCsrProperties.html @@ -1,11 +1,11 @@ - + RealCsrProperties - + diff --git a/docs/org/flag4j/operations/sparse/csr/real/package-summary.html b/docs/org/flag4j/operations/sparse/csr/real/package-summary.html index 69791a423..84d4e0a95 100644 --- a/docs/org/flag4j/operations/sparse/csr/real/package-summary.html +++ b/docs/org/flag4j/operations/sparse/csr/real/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.sparse.csr.real - + diff --git a/docs/org/flag4j/operations/sparse/csr/real/package-tree.html b/docs/org/flag4j/operations/sparse/csr/real/package-tree.html index 1fe54a29b..57db2616a 100644 --- a/docs/org/flag4j/operations/sparse/csr/real/package-tree.html +++ b/docs/org/flag4j/operations/sparse/csr/real/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.sparse.csr.real Class Hierarchy - + diff --git a/docs/org/flag4j/operations/sparse/csr/real_complex/RealComplexCsrMatrixMultiplication.html b/docs/org/flag4j/operations/sparse/csr/real_complex/RealComplexCsrMatrixMultiplication.html index b1f5d86b6..1968a884c 100644 --- a/docs/org/flag4j/operations/sparse/csr/real_complex/RealComplexCsrMatrixMultiplication.html +++ b/docs/org/flag4j/operations/sparse/csr/real_complex/RealComplexCsrMatrixMultiplication.html @@ -1,11 +1,11 @@ - + RealComplexCsrMatrixMultiplication - + diff --git a/docs/org/flag4j/operations/sparse/csr/real_complex/RealComplexCsrOperations.html b/docs/org/flag4j/operations/sparse/csr/real_complex/RealComplexCsrOperations.html index 70a398478..fc5439dc2 100644 --- a/docs/org/flag4j/operations/sparse/csr/real_complex/RealComplexCsrOperations.html +++ b/docs/org/flag4j/operations/sparse/csr/real_complex/RealComplexCsrOperations.html @@ -1,11 +1,11 @@ - + RealComplexCsrOperations - + diff --git a/docs/org/flag4j/operations/sparse/csr/real_complex/package-summary.html b/docs/org/flag4j/operations/sparse/csr/real_complex/package-summary.html index 250fecfa7..78c9de7db 100644 --- a/docs/org/flag4j/operations/sparse/csr/real_complex/package-summary.html +++ b/docs/org/flag4j/operations/sparse/csr/real_complex/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.sparse.csr.real_complex - + diff --git a/docs/org/flag4j/operations/sparse/csr/real_complex/package-tree.html b/docs/org/flag4j/operations/sparse/csr/real_complex/package-tree.html index e08e7c8e6..157c2adfb 100644 --- a/docs/org/flag4j/operations/sparse/csr/real_complex/package-tree.html +++ b/docs/org/flag4j/operations/sparse/csr/real_complex/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.operations.sparse.csr.real_complex Class Hierarchy - + diff --git a/docs/org/flag4j/rng/RandomArray.html b/docs/org/flag4j/rng/RandomArray.html index 9f70db84f..6d62bedcb 100644 --- a/docs/org/flag4j/rng/RandomArray.html +++ b/docs/org/flag4j/rng/RandomArray.html @@ -1,11 +1,11 @@ - + RandomArray - + diff --git a/docs/org/flag4j/rng/RandomCNumber.html b/docs/org/flag4j/rng/RandomCNumber.html index 247ba5f08..bcf17365e 100644 --- a/docs/org/flag4j/rng/RandomCNumber.html +++ b/docs/org/flag4j/rng/RandomCNumber.html @@ -1,11 +1,11 @@ - + RandomCNumber - + diff --git a/docs/org/flag4j/rng/RandomTensor.html b/docs/org/flag4j/rng/RandomTensor.html index 1719cb2df..ff0116361 100644 --- a/docs/org/flag4j/rng/RandomTensor.html +++ b/docs/org/flag4j/rng/RandomTensor.html @@ -1,11 +1,11 @@ - + RandomTensor - + diff --git a/docs/org/flag4j/rng/package-summary.html b/docs/org/flag4j/rng/package-summary.html index 9b7924559..b00d809d1 100644 --- a/docs/org/flag4j/rng/package-summary.html +++ b/docs/org/flag4j/rng/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.rng - + diff --git a/docs/org/flag4j/rng/package-tree.html b/docs/org/flag4j/rng/package-tree.html index d553fe964..627700166 100644 --- a/docs/org/flag4j/rng/package-tree.html +++ b/docs/org/flag4j/rng/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.rng Class Hierarchy - + diff --git a/docs/org/flag4j/util/ArrayUtils.html b/docs/org/flag4j/util/ArrayUtils.html index 91888602c..32697723c 100644 --- a/docs/org/flag4j/util/ArrayUtils.html +++ b/docs/org/flag4j/util/ArrayUtils.html @@ -1,11 +1,11 @@ - + ArrayUtils - + @@ -544,44 +544,50 @@

    Method Summary

    Swaps to elements in an array.
    - -
    toArrayList(double[] src)
    +
    static void
    +
    swapUnsafe(int[] src, + int[] indices)
    -
    Converts an array of doubles to an array list.
    +
    Swaps elements in an array according to a specified permutation.
    - -
    toArrayList(int[] src)
    + +
    toArrayList(double[] src)
    Converts an array of doubles to an array list.
    - - + +
    toArrayList(int[] src)
    -
    Converts an array of complex numbers to an array list.
    +
    Converts an array of doubles to an array list.
    -
    toComplexArrayList(double[] src)
    +
    -
    Converts an array of doubles to a complex array list.
    +
    Converts an array of complex numbers to an array list.
    -
    static double[]
    -
    unbox(Double[] arr)
    + +
    toComplexArrayList(double[] src)
    -
    Converts an array of Double objects to a primitive array (i.e.
    +
    Converts an array of doubles to a complex array list.
    -
    static int[]
    -
    unbox(Integer[] arr)
    +
    static double[]
    +
    unbox(Double[] arr)
    -
    Converts an array of Integer objects to a primitive array (i.e.
    +
    Converts an array of Double objects to a primitive array (i.e.
    -
    static double[]
    - +
    static int[]
    +
    unbox(Integer[] arr)
    -
    Flattens a two-dimensional array and unboxes.
    +
    Converts an array of Integer objects to a primitive array (i.e.
    -
    static int[]
    -
    uniqueSorted(int[] src)
    +
    static double[]
    +
    +
    Flattens a two-dimensional array and unboxes.
    +
    +
    static int[]
    +
    uniqueSorted(int[] src)
    +
    Gets the unique values from an array and sorts them.
    @@ -1136,6 +1142,23 @@

    swap

  • +
    +

    swapUnsafe

    +
    +
    public static void swapUnsafe(int[] src, + int[] indices)
    +
    Swaps elements in an array according to a specified permutation. This method should be used with extreem caution as unlike + swap(int[], int[]), this method does not verify that indices is a permutation.
    +
    +
    Parameters:
    +
    src - Array to swap elements within.
    +
    indices - Array containing indices of the permutation. If the src array has length N, then + the array must be a permutation of {0, 1, 2, ..., N-1}.
    +
    +
    +
    +
  • +
  • swap

    diff --git a/docs/org/flag4j/util/Axis2D.html b/docs/org/flag4j/util/Axis2D.html index b96a2024d..d89fc12e6 100644 --- a/docs/org/flag4j/util/Axis2D.html +++ b/docs/org/flag4j/util/Axis2D.html @@ -1,11 +1,11 @@ - + Axis2D - + diff --git a/docs/org/flag4j/util/ErrorMessages.html b/docs/org/flag4j/util/ErrorMessages.html index 5cb3feff8..9086e6e48 100644 --- a/docs/org/flag4j/util/ErrorMessages.html +++ b/docs/org/flag4j/util/ErrorMessages.html @@ -1,11 +1,11 @@ - + ErrorMessages - + diff --git a/docs/org/flag4j/util/Flag4jConstants.html b/docs/org/flag4j/util/Flag4jConstants.html index ec01a1f1d..f08fce377 100644 --- a/docs/org/flag4j/util/Flag4jConstants.html +++ b/docs/org/flag4j/util/Flag4jConstants.html @@ -1,11 +1,11 @@ - + Flag4jConstants - + diff --git a/docs/org/flag4j/util/ParameterChecks.html b/docs/org/flag4j/util/ParameterChecks.html index c6e150643..0918fa59c 100644 --- a/docs/org/flag4j/util/ParameterChecks.html +++ b/docs/org/flag4j/util/ParameterChecks.html @@ -1,11 +1,11 @@ - + ParameterChecks - + diff --git a/docs/org/flag4j/util/StringUtils.html b/docs/org/flag4j/util/StringUtils.html index 2e92bb2f5..f65ae38e8 100644 --- a/docs/org/flag4j/util/StringUtils.html +++ b/docs/org/flag4j/util/StringUtils.html @@ -1,11 +1,11 @@ - + StringUtils - + diff --git a/docs/org/flag4j/util/exceptions/LinearAlgebraException.html b/docs/org/flag4j/util/exceptions/LinearAlgebraException.html index f2f9981ec..8ef91b585 100644 --- a/docs/org/flag4j/util/exceptions/LinearAlgebraException.html +++ b/docs/org/flag4j/util/exceptions/LinearAlgebraException.html @@ -1,11 +1,11 @@ - + LinearAlgebraException - + diff --git a/docs/org/flag4j/util/exceptions/SingularMatrixException.html b/docs/org/flag4j/util/exceptions/SingularMatrixException.html index 7c6207c7d..0bd437f74 100644 --- a/docs/org/flag4j/util/exceptions/SingularMatrixException.html +++ b/docs/org/flag4j/util/exceptions/SingularMatrixException.html @@ -1,11 +1,11 @@ - + SingularMatrixException - + diff --git a/docs/org/flag4j/util/exceptions/TensorShapeException.html b/docs/org/flag4j/util/exceptions/TensorShapeException.html index 26077af9f..654281b00 100644 --- a/docs/org/flag4j/util/exceptions/TensorShapeException.html +++ b/docs/org/flag4j/util/exceptions/TensorShapeException.html @@ -1,11 +1,11 @@ - + TensorShapeException - + diff --git a/docs/org/flag4j/util/exceptions/package-summary.html b/docs/org/flag4j/util/exceptions/package-summary.html index 697e87044..3ca60fcdb 100644 --- a/docs/org/flag4j/util/exceptions/package-summary.html +++ b/docs/org/flag4j/util/exceptions/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.util.exceptions - + diff --git a/docs/org/flag4j/util/exceptions/package-tree.html b/docs/org/flag4j/util/exceptions/package-tree.html index 1efdd1479..037b509ed 100644 --- a/docs/org/flag4j/util/exceptions/package-tree.html +++ b/docs/org/flag4j/util/exceptions/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.util.exceptions Class Hierarchy - + diff --git a/docs/org/flag4j/util/package-summary.html b/docs/org/flag4j/util/package-summary.html index 2aca0718f..9c2f1c01b 100644 --- a/docs/org/flag4j/util/package-summary.html +++ b/docs/org/flag4j/util/package-summary.html @@ -1,11 +1,11 @@ - + org.flag4j.util - + diff --git a/docs/org/flag4j/util/package-tree.html b/docs/org/flag4j/util/package-tree.html index e827eeb3e..df9cf50e8 100644 --- a/docs/org/flag4j/util/package-tree.html +++ b/docs/org/flag4j/util/package-tree.html @@ -1,11 +1,11 @@ - + org.flag4j.util Class Hierarchy - + diff --git a/docs/overview-summary.html b/docs/overview-summary.html index 5b48e87e8..571a78101 100644 --- a/docs/overview-summary.html +++ b/docs/overview-summary.html @@ -1,11 +1,11 @@ - + Generated Documentation (Untitled) - + diff --git a/docs/overview-tree.html b/docs/overview-tree.html index b24329d2d..5153f51c1 100644 --- a/docs/overview-tree.html +++ b/docs/overview-tree.html @@ -1,11 +1,11 @@ - + Class Hierarchy - + @@ -449,8 +449,10 @@

    Interface Hierarchy

  • org.flag4j.core.TensorManipulationsMixin<T>
  • +
  • org.flag4j.concurrency.TensorOperation
  • org.flag4j.core.TensorOperationsMixin<T,U,W,Z,Y,X>
  • org.flag4j.core.TensorPropertiesMixin
  • +
  • org.flag4j.concurrency.ThreadManager.TriConsumer<T,U,V>
  • org.flag4j.core.VectorComparisonsMixin
    • org.flag4j.core.VectorMixin<T,U,V,W,X,TT,UU,WW> (also extends org.flag4j.core.VectorManipulationsMixin<TT>, org.flag4j.core.VectorOperationsMixin<T,U,V,W,X,TT,UU,WW>, org.flag4j.core.VectorPropertiesMixin)
    • diff --git a/docs/search.html b/docs/search.html index 66415080b..7cf5bed30 100644 --- a/docs/search.html +++ b/docs/search.html @@ -1,11 +1,11 @@ - + Search - + diff --git a/docs/serialized-form.html b/docs/serialized-form.html index 8a34f9260..9fbf23294 100644 --- a/docs/serialized-form.html +++ b/docs/serialized-form.html @@ -1,11 +1,11 @@ - + Serialized Form - + diff --git a/docs/type-search-index.js b/docs/type-search-index.js index 80b2d8800..aa0d371e3 100644 --- a/docs/type-search-index.js +++ b/docs/type-search-index.js @@ -1 +1 @@ -typeSearchIndex = [{"p":"org.flag4j.operations.common.complex","l":"AggregateComplex"},{"p":"org.flag4j.operations.dense.complex","l":"AggregateDenseComplex"},{"p":"org.flag4j.operations.dense.real","l":"AggregateDenseReal"},{"p":"org.flag4j.operations.common.real","l":"AggregateReal"},{"p":"org.flag4j.operations","l":"TransposeDispatcher.Algorithm"},{"p":"org.flag4j.operations","l":"MatrixMultiplyDispatcher.AlgorithmName"},{"p":"org.flag4j.operations","l":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames"},{"l":"All Classes and Interfaces","u":"allclasses-index.html"},{"p":"org.flag4j.util","l":"ArrayUtils"},{"p":"org.flag4j.util","l":"Axis2D"},{"p":"org.flag4j.linalg.solvers.exact.triangular","l":"BackSolver"},{"p":"org.flag4j.linalg.decompositions.chol","l":"Cholesky"},{"p":"org.flag4j.arrays.dense","l":"CMatrix"},{"p":"org.flag4j.complex_numbers","l":"CNumber"},{"p":"org.flag4j.complex_numbers","l":"CNumberLexer"},{"p":"org.flag4j.complex_numbers","l":"CNumberParser"},{"p":"org.flag4j.complex_numbers","l":"CNumberToken"},{"p":"org.flag4j.complex_numbers","l":"CNumberUtils"},{"p":"org.flag4j.linalg.solvers.exact.triangular","l":"ComplexBackSolver"},{"p":"org.flag4j.linalg.decompositions.chol","l":"ComplexCholesky"},{"p":"org.flag4j.operations.sparse.coo.complex","l":"ComplexCooTensorDot"},{"p":"org.flag4j.operations.sparse.coo.complex","l":"ComplexCooTensorOperations"},{"p":"org.flag4j.operations.dense_sparse.csr.complex","l":"ComplexCsrDenseMatrixMultiplication"},{"p":"org.flag4j.operations.dense_sparse.csr.complex","l":"ComplexCsrDenseOperations"},{"p":"org.flag4j.operations.sparse.csr.complex","l":"ComplexCsrEquals"},{"p":"org.flag4j.operations.sparse.csr.complex","l":"ComplexCsrManipulations"},{"p":"org.flag4j.operations.sparse.csr.complex","l":"ComplexCsrMatrixMultiplication"},{"p":"org.flag4j.operations.sparse.csr.complex","l":"ComplexCsrOperations"},{"p":"org.flag4j.operations.sparse.csr.complex","l":"ComplexCsrProperties"},{"p":"org.flag4j.operations.dense.complex","l":"ComplexDenseDeterminant"},{"p":"org.flag4j.operations.dense.complex","l":"ComplexDenseElemDiv"},{"p":"org.flag4j.operations.dense.complex","l":"ComplexDenseElemMult"},{"p":"org.flag4j.operations.dense.complex","l":"ComplexDenseEquals"},{"p":"org.flag4j.operations.dense.complex","l":"ComplexDenseMatrixMultiplication"},{"p":"org.flag4j.operations.dense.complex","l":"ComplexDenseMatrixMultTranspose"},{"p":"org.flag4j.operations.dense.complex","l":"ComplexDenseOperations"},{"p":"org.flag4j.operations.dense.complex","l":"ComplexDenseProperties"},{"p":"org.flag4j.operations.dense.complex","l":"ComplexDenseSetOperations"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","l":"ComplexDenseSparseEquals"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","l":"ComplexDenseSparseMatrixMultiplication"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","l":"ComplexDenseSparseMatrixMultTranspose"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","l":"ComplexDenseSparseMatrixOperations"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","l":"ComplexDenseSparseOperations"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","l":"ComplexDenseSparseVectorOperations"},{"p":"org.flag4j.core.dense_base","l":"ComplexDenseTensorBase"},{"p":"org.flag4j.operations.dense.complex","l":"ComplexDenseTensorDot"},{"p":"org.flag4j.operations.dense.complex","l":"ComplexDenseTranspose"},{"p":"org.flag4j.operations.dense.complex","l":"ComplexDenseVectorOperations"},{"p":"org.flag4j.linalg.solvers.exact","l":"ComplexExactSolver"},{"p":"org.flag4j.linalg.solvers.exact","l":"ComplexExactTensorSolver"},{"p":"org.flag4j.linalg.solvers.exact.triangular","l":"ComplexForwardSolver"},{"p":"org.flag4j.linalg.decompositions.hess","l":"ComplexHess"},{"p":"org.flag4j.linalg.solvers.lstsq","l":"ComplexLstsqSolver"},{"p":"org.flag4j.linalg.decompositions.lu","l":"ComplexLU"},{"p":"org.flag4j.core","l":"ComplexMatrixMixin"},{"p":"org.flag4j.operations.common.complex","l":"ComplexOperations"},{"p":"org.flag4j.operations.common.complex","l":"ComplexProperties"},{"p":"org.flag4j.linalg.decompositions.qr","l":"ComplexQR"},{"p":"org.flag4j.linalg.decompositions.schur","l":"ComplexSchur"},{"p":"org.flag4j.operations.sparse.coo.complex","l":"ComplexSparseElementSearch"},{"p":"org.flag4j.operations.sparse.coo.complex","l":"ComplexSparseEquals"},{"p":"org.flag4j.operations.sparse.coo.complex","l":"ComplexSparseMatrixGetSet"},{"p":"org.flag4j.operations.sparse.coo.complex","l":"ComplexSparseMatrixManipulations"},{"p":"org.flag4j.operations.sparse.coo.complex","l":"ComplexSparseMatrixMultiplication"},{"p":"org.flag4j.operations.sparse.coo.complex","l":"ComplexSparseMatrixOperations"},{"p":"org.flag4j.operations.sparse.coo.complex","l":"ComplexSparseMatrixProperties"},{"p":"org.flag4j.operations.sparse.coo.complex","l":"ComplexSparseNorms"},{"p":"org.flag4j.core.sparse_base","l":"ComplexSparseTensorBase"},{"p":"org.flag4j.operations.sparse.coo.complex","l":"ComplexSparseVectorOperations"},{"p":"org.flag4j.linalg.decompositions.svd","l":"ComplexSVD"},{"p":"org.flag4j.core","l":"ComplexTensorExclusiveMixin"},{"p":"org.flag4j.core","l":"ComplexTensorMixin"},{"p":"org.flag4j.linalg.decompositions.unitary","l":"ComplexUnitaryDecomposition"},{"p":"org.flag4j.linalg","l":"Condition"},{"p":"org.flag4j.concurrency","l":"Configurations"},{"p":"org.flag4j.arrays.sparse","l":"CooCMatrix"},{"p":"org.flag4j.arrays.sparse","l":"CooCTensor"},{"p":"org.flag4j.arrays.sparse","l":"CooCVector"},{"p":"org.flag4j.arrays.sparse","l":"CooMatrix"},{"p":"org.flag4j.arrays.sparse","l":"CooTensor"},{"p":"org.flag4j.arrays.sparse","l":"CooVector"},{"p":"org.flag4j.arrays.sparse","l":"CsrCMatrix"},{"p":"org.flag4j.arrays.sparse","l":"CsrMatrix"},{"p":"org.flag4j.arrays.dense","l":"CTensor"},{"p":"org.flag4j.arrays.dense","l":"CVector"},{"p":"org.flag4j.linalg.decompositions","l":"Decomposition"},{"p":"org.flag4j.linalg.decompositions","l":"DecompositionFactory"},{"p":"org.flag4j.core.dense_base","l":"DenseMatrixMixin"},{"p":"org.flag4j.core.dense_base","l":"DenseMixin"},{"p":"org.flag4j.core.dense_base","l":"DenseTensorBase"},{"p":"org.flag4j.core.dense_base","l":"DenseTensorMixin"},{"p":"org.flag4j.core.dense_base","l":"DenseVectorMixin"},{"p":"org.flag4j.linalg.ops","l":"DirectSum"},{"p":"org.flag4j.linalg","l":"Eigen"},{"p":"org.flag4j.util","l":"ErrorMessages"},{"p":"org.flag4j.linalg.solvers.exact","l":"ExactSolver"},{"p":"org.flag4j.linalg.solvers.exact","l":"ExactTensorSolver"},{"p":"org.flag4j.util","l":"Flag4jConstants"},{"p":"org.flag4j.linalg.solvers.exact.triangular","l":"ForwardSolver"},{"p":"org.flag4j.linalg.transformations","l":"Givens"},{"p":"org.flag4j.linalg.transformations","l":"Householder"},{"p":"org.flag4j.linalg","l":"Invert"},{"p":"org.flag4j.util.exceptions","l":"LinearAlgebraException"},{"p":"org.flag4j.linalg.solvers","l":"LinearSolver"},{"p":"org.flag4j.linalg.solvers","l":"LinearTensorSolver"},{"p":"org.flag4j.linalg.solvers.lstsq","l":"LstsqSolver"},{"p":"org.flag4j.linalg.decompositions.lu","l":"LU"},{"p":"org.flag4j.arrays.dense","l":"Matrix"},{"p":"org.flag4j.core","l":"MatrixComparisonsMixin"},{"p":"org.flag4j.core","l":"MatrixManipulationsMixin"},{"p":"org.flag4j.core","l":"MatrixMixin"},{"p":"org.flag4j.operations","l":"MatrixMultiplyDispatcher"},{"p":"org.flag4j.linalg","l":"MatrixNorms"},{"p":"org.flag4j.core","l":"MatrixOperationsMixin"},{"p":"org.flag4j.core","l":"MatrixPropertiesMixin"},{"p":"org.flag4j.util","l":"ParameterChecks"},{"p":"org.flag4j.arrays.sparse","l":"PermutationMatrix"},{"p":"org.flag4j.linalg.decompositions.lu","l":"LU.Pivoting"},{"p":"org.flag4j.linalg","l":"PositiveDefiniteness"},{"p":"org.flag4j.io","l":"PrintOptions"},{"p":"org.flag4j.linalg.transformations","l":"Projection"},{"p":"org.flag4j.rng","l":"RandomArray"},{"p":"org.flag4j.rng","l":"RandomCNumber"},{"p":"org.flag4j.rng","l":"RandomTensor"},{"p":"org.flag4j.linalg.solvers.exact.triangular","l":"RealBackSolver"},{"p":"org.flag4j.linalg.decompositions.chol","l":"RealCholesky"},{"p":"org.flag4j.operations.sparse.coo.real_complex","l":"RealComplexCooTensorOperations"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","l":"RealComplexCsrDenseMatrixMultiplication"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","l":"RealComplexCsrDenseOperations"},{"p":"org.flag4j.operations.sparse.csr.real_complex","l":"RealComplexCsrMatrixMultiplication"},{"p":"org.flag4j.operations.sparse.csr.real_complex","l":"RealComplexCsrOperations"},{"p":"org.flag4j.operations.dense.real_complex","l":"RealComplexDenseElemDiv"},{"p":"org.flag4j.operations.dense.real_complex","l":"RealComplexDenseElemMult"},{"p":"org.flag4j.operations.dense.real_complex","l":"RealComplexDenseEquals"},{"p":"org.flag4j.operations.dense.real_complex","l":"RealComplexDenseMatrixMultiplication"},{"p":"org.flag4j.operations.dense.real_complex","l":"RealComplexDenseMatrixMultTranspose"},{"p":"org.flag4j.operations.dense.real_complex","l":"RealComplexDenseOperations"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","l":"RealComplexDenseSparseEquals"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","l":"RealComplexDenseSparseMatrixMultiplication"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","l":"RealComplexDenseSparseMatrixMultTranspose"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","l":"RealComplexDenseSparseMatrixOperations"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","l":"RealComplexDenseSparseOperations"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","l":"RealComplexDenseSparseVectorOperations"},{"p":"org.flag4j.operations.dense.real_complex","l":"RealComplexDenseVectorOperations"},{"p":"org.flag4j.operations.sparse.coo.real_complex","l":"RealComplexSparseEquals"},{"p":"org.flag4j.operations.sparse.coo.real_complex","l":"RealComplexSparseMatrixMultiplication"},{"p":"org.flag4j.operations.sparse.coo.real_complex","l":"RealComplexSparseMatrixOperations"},{"p":"org.flag4j.operations.sparse.coo.real_complex","l":"RealComplexSparseVectorOperations"},{"p":"org.flag4j.operations.sparse.coo.real","l":"RealCooTensorDot"},{"p":"org.flag4j.operations.sparse.coo.real","l":"RealCooTensorOperations"},{"p":"org.flag4j.operations.sparse.csr.real","l":"RealCsrConcats"},{"p":"org.flag4j.operations.dense_sparse.csr.real","l":"RealCsrDenseMatrixMultiplication"},{"p":"org.flag4j.operations.dense_sparse.csr.real","l":"RealCsrDenseOperations"},{"p":"org.flag4j.operations.sparse.csr.real","l":"RealCsrEquals"},{"p":"org.flag4j.operations.sparse.csr.real","l":"RealCsrManipulations"},{"p":"org.flag4j.operations.sparse.csr.real","l":"RealCsrMatrixMultiplication"},{"p":"org.flag4j.operations.sparse.csr.real","l":"RealCsrOperations"},{"p":"org.flag4j.operations.sparse.csr.real","l":"RealCsrProperties"},{"p":"org.flag4j.operations.dense.real","l":"RealDenseDeterminant"},{"p":"org.flag4j.operations.dense.real","l":"RealDenseElemDiv"},{"p":"org.flag4j.operations.dense.real","l":"RealDenseElemMult"},{"p":"org.flag4j.operations.dense.real","l":"RealDenseEquals"},{"p":"org.flag4j.operations.dense.real","l":"RealDenseMatrixMultiplication"},{"p":"org.flag4j.operations","l":"RealDenseMatrixMultiplyDispatcher"},{"p":"org.flag4j.operations.dense.real","l":"RealDenseMatrixMultTranspose"},{"p":"org.flag4j.operations.dense.real","l":"RealDenseOperations"},{"p":"org.flag4j.operations.dense.real","l":"RealDenseProperties"},{"p":"org.flag4j.operations.dense.real","l":"RealDenseSetOperations"},{"p":"org.flag4j.operations.dense_sparse.coo.real","l":"RealDenseSparseEquals"},{"p":"org.flag4j.operations.dense_sparse.coo.real","l":"RealDenseSparseMatrixMultiplication"},{"p":"org.flag4j.operations.dense_sparse.coo.real","l":"RealDenseSparseMatrixMultTranspose"},{"p":"org.flag4j.operations.dense_sparse.coo.real","l":"RealDenseSparseMatrixOperations"},{"p":"org.flag4j.operations.dense_sparse.coo.real","l":"RealDenseSparseTensorOperations"},{"p":"org.flag4j.operations.dense_sparse.coo.real","l":"RealDenseSparseVectorOperations"},{"p":"org.flag4j.core.dense_base","l":"RealDenseTensorBase"},{"p":"org.flag4j.operations","l":"RealDenseTensorBinaryOperation"},{"p":"org.flag4j.operations.dense.real","l":"RealDenseTensorDot"},{"p":"org.flag4j.operations.dense.real","l":"RealDenseTranspose"},{"p":"org.flag4j.operations.dense.real","l":"RealDenseVectorOperations"},{"p":"org.flag4j.linalg.solvers.exact","l":"RealExactSolver"},{"p":"org.flag4j.linalg.solvers.exact","l":"RealExactTensorSolver"},{"p":"org.flag4j.linalg.solvers.exact.triangular","l":"RealForwardSolver"},{"p":"org.flag4j.linalg.decompositions.hess","l":"RealHess"},{"p":"org.flag4j.linalg.solvers.lstsq","l":"RealLstsqSolver"},{"p":"org.flag4j.linalg.decompositions.lu","l":"RealLU"},{"p":"org.flag4j.core","l":"RealMatrixMixin"},{"p":"org.flag4j.operations.common.real","l":"RealOperations"},{"p":"org.flag4j.operations.common.real","l":"RealProperties"},{"p":"org.flag4j.linalg.decompositions.qr","l":"RealQR"},{"p":"org.flag4j.linalg.decompositions.schur","l":"RealSchur"},{"p":"org.flag4j.operations.sparse.coo.real","l":"RealSparseEquals"},{"p":"org.flag4j.operations.sparse.coo.real","l":"RealSparseManipulations"},{"p":"org.flag4j.operations.sparse.coo.real","l":"RealSparseMatrixGetSet"},{"p":"org.flag4j.operations.sparse.coo.real","l":"RealSparseMatrixManipulations"},{"p":"org.flag4j.operations.sparse.coo.real","l":"RealSparseMatrixMultiplication"},{"p":"org.flag4j.operations.sparse.coo.real","l":"RealSparseMatrixOperations"},{"p":"org.flag4j.operations.sparse.coo.real","l":"RealSparseMatrixProperties"},{"p":"org.flag4j.operations.sparse.coo.real","l":"RealSparseNorms"},{"p":"org.flag4j.core.sparse_base","l":"RealSparseTensorBase"},{"p":"org.flag4j.operations.sparse.coo.real","l":"RealSparseVectorOperations"},{"p":"org.flag4j.linalg.decompositions.svd","l":"RealSVD"},{"p":"org.flag4j.core","l":"RealTensorMixin"},{"p":"org.flag4j.linalg.decompositions.unitary","l":"RealUnitaryDecomposition"},{"p":"org.flag4j.linalg","l":"RowEchelon"},{"p":"org.flag4j.linalg.decompositions.schur","l":"Schur"},{"p":"org.flag4j.core","l":"Shape"},{"p":"org.flag4j.util.exceptions","l":"SingularMatrixException"},{"p":"org.flag4j.operations.sparse.coo","l":"SparseDataWrapper"},{"p":"org.flag4j.operations.sparse.coo","l":"SparseElementSearch"},{"p":"org.flag4j.core.sparse_base","l":"SparseTensorBase"},{"p":"org.flag4j.core.sparse_base","l":"SparseTensorMixin"},{"p":"org.flag4j.arrays.sparse","l":"SparseUtils"},{"p":"org.flag4j.operations.sparse.coo","l":"SparseUtils"},{"p":"org.flag4j.util","l":"StringUtils"},{"p":"org.flag4j.linalg","l":"SubSpace"},{"p":"org.flag4j.linalg.decompositions.svd","l":"SVD"},{"p":"org.flag4j.linalg.decompositions.hess","l":"SymmHess"},{"p":"org.flag4j.arrays.sparse","l":"SymmTriDiagonal"},{"p":"org.flag4j.arrays.dense","l":"Tensor"},{"p":"org.flag4j.core","l":"TensorBase"},{"p":"org.flag4j.core","l":"TensorComparisonsMixin"},{"p":"org.flag4j.operations.common","l":"TensorEquals"},{"p":"org.flag4j.core","l":"TensorExclusiveMixin"},{"p":"org.flag4j.io","l":"TensorInputStream"},{"p":"org.flag4j.linalg","l":"TensorInvert"},{"p":"org.flag4j.core","l":"TensorManipulationsMixin"},{"p":"org.flag4j.linalg","l":"TensorNorms"},{"p":"org.flag4j.core","l":"TensorOperationsMixin"},{"p":"org.flag4j.io","l":"TensorOutputStream"},{"p":"org.flag4j.core","l":"TensorPropertiesMixin"},{"p":"org.flag4j.io","l":"TensorReader"},{"p":"org.flag4j.util.exceptions","l":"TensorShapeException"},{"p":"org.flag4j.io","l":"TensorWriter"},{"p":"org.flag4j.concurrency","l":"ThreadManager"},{"p":"org.flag4j.operations","l":"TransposeDispatcher"},{"p":"org.flag4j.linalg.decompositions.unitary","l":"UnitaryDecomposition"},{"p":"org.flag4j.arrays.dense","l":"Vector"},{"p":"org.flag4j.core","l":"VectorComparisonsMixin"},{"p":"org.flag4j.core","l":"VectorManipulationsMixin"},{"p":"org.flag4j.core","l":"VectorMixin"},{"p":"org.flag4j.linalg","l":"VectorNorms"},{"p":"org.flag4j.core","l":"VectorOperationsMixin"},{"p":"org.flag4j.core","l":"VectorPropertiesMixin"},{"p":"org.flag4j.linalg.transformations","l":"View"}];updateSearchResults(); \ No newline at end of file +typeSearchIndex = [{"p":"org.flag4j.operations.common.complex","l":"AggregateComplex"},{"p":"org.flag4j.operations.dense.complex","l":"AggregateDenseComplex"},{"p":"org.flag4j.operations.dense.real","l":"AggregateDenseReal"},{"p":"org.flag4j.operations.common.real","l":"AggregateReal"},{"p":"org.flag4j.operations","l":"TransposeDispatcher.Algorithm"},{"p":"org.flag4j.operations","l":"MatrixMultiplyDispatcher.AlgorithmName"},{"p":"org.flag4j.operations","l":"RealDenseMatrixMultiplyDispatcher.AlgorithmNames"},{"l":"All Classes and Interfaces","u":"allclasses-index.html"},{"p":"org.flag4j.util","l":"ArrayUtils"},{"p":"org.flag4j.util","l":"Axis2D"},{"p":"org.flag4j.linalg.solvers.exact.triangular","l":"BackSolver"},{"p":"org.flag4j.linalg.decompositions.chol","l":"Cholesky"},{"p":"org.flag4j.arrays.dense","l":"CMatrix"},{"p":"org.flag4j.complex_numbers","l":"CNumber"},{"p":"org.flag4j.complex_numbers","l":"CNumberLexer"},{"p":"org.flag4j.complex_numbers","l":"CNumberParser"},{"p":"org.flag4j.complex_numbers","l":"CNumberToken"},{"p":"org.flag4j.complex_numbers","l":"CNumberUtils"},{"p":"org.flag4j.linalg.solvers.exact.triangular","l":"ComplexBackSolver"},{"p":"org.flag4j.linalg.decompositions.chol","l":"ComplexCholesky"},{"p":"org.flag4j.operations.sparse.coo.complex","l":"ComplexCooTensorDot"},{"p":"org.flag4j.operations.sparse.coo.complex","l":"ComplexCooTensorOperations"},{"p":"org.flag4j.operations.dense_sparse.csr.complex","l":"ComplexCsrDenseMatrixMultiplication"},{"p":"org.flag4j.operations.dense_sparse.csr.complex","l":"ComplexCsrDenseOperations"},{"p":"org.flag4j.operations.sparse.csr.complex","l":"ComplexCsrEquals"},{"p":"org.flag4j.operations.sparse.csr.complex","l":"ComplexCsrManipulations"},{"p":"org.flag4j.operations.sparse.csr.complex","l":"ComplexCsrMatrixMultiplication"},{"p":"org.flag4j.operations.sparse.csr.complex","l":"ComplexCsrOperations"},{"p":"org.flag4j.operations.sparse.csr.complex","l":"ComplexCsrProperties"},{"p":"org.flag4j.operations.dense.complex","l":"ComplexDenseDeterminant"},{"p":"org.flag4j.operations.dense.complex","l":"ComplexDenseElemDiv"},{"p":"org.flag4j.operations.dense.complex","l":"ComplexDenseElemMult"},{"p":"org.flag4j.operations.dense.complex","l":"ComplexDenseEquals"},{"p":"org.flag4j.operations.dense.complex","l":"ComplexDenseMatrixMultiplication"},{"p":"org.flag4j.operations.dense.complex","l":"ComplexDenseMatrixMultTranspose"},{"p":"org.flag4j.operations.dense.complex","l":"ComplexDenseOperations"},{"p":"org.flag4j.operations.dense.complex","l":"ComplexDenseProperties"},{"p":"org.flag4j.operations.dense.complex","l":"ComplexDenseSetOperations"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","l":"ComplexDenseSparseEquals"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","l":"ComplexDenseSparseMatrixMultiplication"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","l":"ComplexDenseSparseMatrixMultTranspose"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","l":"ComplexDenseSparseMatrixOperations"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","l":"ComplexDenseSparseOperations"},{"p":"org.flag4j.operations.dense_sparse.coo.complex","l":"ComplexDenseSparseVectorOperations"},{"p":"org.flag4j.core.dense_base","l":"ComplexDenseTensorBase"},{"p":"org.flag4j.operations.dense.complex","l":"ComplexDenseTensorDot"},{"p":"org.flag4j.operations.dense.complex","l":"ComplexDenseTranspose"},{"p":"org.flag4j.operations.dense.complex","l":"ComplexDenseVectorOperations"},{"p":"org.flag4j.linalg.solvers.exact","l":"ComplexExactSolver"},{"p":"org.flag4j.linalg.solvers.exact","l":"ComplexExactTensorSolver"},{"p":"org.flag4j.linalg.solvers.exact.triangular","l":"ComplexForwardSolver"},{"p":"org.flag4j.linalg.decompositions.hess","l":"ComplexHess"},{"p":"org.flag4j.linalg.solvers.lstsq","l":"ComplexLstsqSolver"},{"p":"org.flag4j.linalg.decompositions.lu","l":"ComplexLU"},{"p":"org.flag4j.core","l":"ComplexMatrixMixin"},{"p":"org.flag4j.operations.common.complex","l":"ComplexOperations"},{"p":"org.flag4j.operations.common.complex","l":"ComplexProperties"},{"p":"org.flag4j.linalg.decompositions.qr","l":"ComplexQR"},{"p":"org.flag4j.linalg.decompositions.schur","l":"ComplexSchur"},{"p":"org.flag4j.operations.sparse.coo.complex","l":"ComplexSparseElementSearch"},{"p":"org.flag4j.operations.sparse.coo.complex","l":"ComplexSparseEquals"},{"p":"org.flag4j.operations.sparse.coo.complex","l":"ComplexSparseMatrixGetSet"},{"p":"org.flag4j.operations.sparse.coo.complex","l":"ComplexSparseMatrixManipulations"},{"p":"org.flag4j.operations.sparse.coo.complex","l":"ComplexSparseMatrixMultiplication"},{"p":"org.flag4j.operations.sparse.coo.complex","l":"ComplexSparseMatrixOperations"},{"p":"org.flag4j.operations.sparse.coo.complex","l":"ComplexSparseMatrixProperties"},{"p":"org.flag4j.operations.sparse.coo.complex","l":"ComplexSparseNorms"},{"p":"org.flag4j.core.sparse_base","l":"ComplexSparseTensorBase"},{"p":"org.flag4j.operations.sparse.coo.complex","l":"ComplexSparseVectorOperations"},{"p":"org.flag4j.linalg.decompositions.svd","l":"ComplexSVD"},{"p":"org.flag4j.core","l":"ComplexTensorExclusiveMixin"},{"p":"org.flag4j.core","l":"ComplexTensorMixin"},{"p":"org.flag4j.linalg.decompositions.unitary","l":"ComplexUnitaryDecomposition"},{"p":"org.flag4j.linalg","l":"Condition"},{"p":"org.flag4j.concurrency","l":"Configurations"},{"p":"org.flag4j.arrays.sparse","l":"CooCMatrix"},{"p":"org.flag4j.arrays.sparse","l":"CooCTensor"},{"p":"org.flag4j.arrays.sparse","l":"CooCVector"},{"p":"org.flag4j.arrays.sparse","l":"CooMatrix"},{"p":"org.flag4j.arrays.sparse","l":"CooTensor"},{"p":"org.flag4j.arrays.sparse","l":"CooVector"},{"p":"org.flag4j.arrays.sparse","l":"CsrCMatrix"},{"p":"org.flag4j.arrays.sparse","l":"CsrMatrix"},{"p":"org.flag4j.arrays.dense","l":"CTensor"},{"p":"org.flag4j.arrays.dense","l":"CVector"},{"p":"org.flag4j.linalg.decompositions","l":"Decomposition"},{"p":"org.flag4j.linalg.decompositions","l":"DecompositionFactory"},{"p":"org.flag4j.core.dense_base","l":"DenseMatrixMixin"},{"p":"org.flag4j.core.dense_base","l":"DenseMixin"},{"p":"org.flag4j.core.dense_base","l":"DenseTensorBase"},{"p":"org.flag4j.core.dense_base","l":"DenseTensorMixin"},{"p":"org.flag4j.core.dense_base","l":"DenseVectorMixin"},{"p":"org.flag4j.linalg.ops","l":"DirectSum"},{"p":"org.flag4j.linalg","l":"Eigen"},{"p":"org.flag4j.util","l":"ErrorMessages"},{"p":"org.flag4j.linalg.solvers.exact","l":"ExactSolver"},{"p":"org.flag4j.linalg.solvers.exact","l":"ExactTensorSolver"},{"p":"org.flag4j.util","l":"Flag4jConstants"},{"p":"org.flag4j.linalg.solvers.exact.triangular","l":"ForwardSolver"},{"p":"org.flag4j.linalg.transformations","l":"Givens"},{"p":"org.flag4j.linalg.transformations","l":"Householder"},{"p":"org.flag4j.linalg","l":"Invert"},{"p":"org.flag4j.util.exceptions","l":"LinearAlgebraException"},{"p":"org.flag4j.linalg.solvers","l":"LinearSolver"},{"p":"org.flag4j.linalg.solvers","l":"LinearTensorSolver"},{"p":"org.flag4j.linalg.solvers.lstsq","l":"LstsqSolver"},{"p":"org.flag4j.linalg.decompositions.lu","l":"LU"},{"p":"org.flag4j.arrays.dense","l":"Matrix"},{"p":"org.flag4j.core","l":"MatrixComparisonsMixin"},{"p":"org.flag4j.core","l":"MatrixManipulationsMixin"},{"p":"org.flag4j.core","l":"MatrixMixin"},{"p":"org.flag4j.operations","l":"MatrixMultiplyDispatcher"},{"p":"org.flag4j.linalg","l":"MatrixNorms"},{"p":"org.flag4j.core","l":"MatrixOperationsMixin"},{"p":"org.flag4j.core","l":"MatrixPropertiesMixin"},{"p":"org.flag4j.util","l":"ParameterChecks"},{"p":"org.flag4j.arrays.sparse","l":"PermutationMatrix"},{"p":"org.flag4j.linalg.decompositions.lu","l":"LU.Pivoting"},{"p":"org.flag4j.linalg","l":"PositiveDefiniteness"},{"p":"org.flag4j.io","l":"PrintOptions"},{"p":"org.flag4j.linalg.transformations","l":"Projection"},{"p":"org.flag4j.rng","l":"RandomArray"},{"p":"org.flag4j.rng","l":"RandomCNumber"},{"p":"org.flag4j.rng","l":"RandomTensor"},{"p":"org.flag4j.linalg.solvers.exact.triangular","l":"RealBackSolver"},{"p":"org.flag4j.linalg.decompositions.chol","l":"RealCholesky"},{"p":"org.flag4j.operations.sparse.coo.real_complex","l":"RealComplexCooTensorOperations"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","l":"RealComplexCsrDenseMatrixMultiplication"},{"p":"org.flag4j.operations.dense_sparse.csr.real_complex","l":"RealComplexCsrDenseOperations"},{"p":"org.flag4j.operations.sparse.csr.real_complex","l":"RealComplexCsrMatrixMultiplication"},{"p":"org.flag4j.operations.sparse.csr.real_complex","l":"RealComplexCsrOperations"},{"p":"org.flag4j.operations.dense.real_complex","l":"RealComplexDenseElemDiv"},{"p":"org.flag4j.operations.dense.real_complex","l":"RealComplexDenseElemMult"},{"p":"org.flag4j.operations.dense.real_complex","l":"RealComplexDenseEquals"},{"p":"org.flag4j.operations.dense.real_complex","l":"RealComplexDenseMatrixMultiplication"},{"p":"org.flag4j.operations.dense.real_complex","l":"RealComplexDenseMatrixMultTranspose"},{"p":"org.flag4j.operations.dense.real_complex","l":"RealComplexDenseOperations"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","l":"RealComplexDenseSparseEquals"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","l":"RealComplexDenseSparseMatrixMultiplication"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","l":"RealComplexDenseSparseMatrixMultTranspose"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","l":"RealComplexDenseSparseMatrixOperations"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","l":"RealComplexDenseSparseOperations"},{"p":"org.flag4j.operations.dense_sparse.coo.real_complex","l":"RealComplexDenseSparseVectorOperations"},{"p":"org.flag4j.operations.dense.real_complex","l":"RealComplexDenseVectorOperations"},{"p":"org.flag4j.operations.sparse.coo.real_complex","l":"RealComplexSparseEquals"},{"p":"org.flag4j.operations.sparse.coo.real_complex","l":"RealComplexSparseMatrixMultiplication"},{"p":"org.flag4j.operations.sparse.coo.real_complex","l":"RealComplexSparseMatrixOperations"},{"p":"org.flag4j.operations.sparse.coo.real_complex","l":"RealComplexSparseVectorOperations"},{"p":"org.flag4j.operations.sparse.coo.real","l":"RealCooTensorDot"},{"p":"org.flag4j.operations.sparse.coo.real","l":"RealCooTensorOperations"},{"p":"org.flag4j.operations.sparse.csr.real","l":"RealCsrConcats"},{"p":"org.flag4j.operations.dense_sparse.csr.real","l":"RealCsrDenseMatrixMultiplication"},{"p":"org.flag4j.operations.dense_sparse.csr.real","l":"RealCsrDenseOperations"},{"p":"org.flag4j.operations.sparse.csr.real","l":"RealCsrEquals"},{"p":"org.flag4j.operations.sparse.csr.real","l":"RealCsrManipulations"},{"p":"org.flag4j.operations.sparse.csr.real","l":"RealCsrMatrixMultiplication"},{"p":"org.flag4j.operations.sparse.csr.real","l":"RealCsrOperations"},{"p":"org.flag4j.operations.sparse.csr.real","l":"RealCsrProperties"},{"p":"org.flag4j.operations.dense.real","l":"RealDenseDeterminant"},{"p":"org.flag4j.operations.dense.real","l":"RealDenseElemDiv"},{"p":"org.flag4j.operations.dense.real","l":"RealDenseElemMult"},{"p":"org.flag4j.operations.dense.real","l":"RealDenseEquals"},{"p":"org.flag4j.operations.dense.real","l":"RealDenseMatrixMultiplication"},{"p":"org.flag4j.operations","l":"RealDenseMatrixMultiplyDispatcher"},{"p":"org.flag4j.operations.dense.real","l":"RealDenseMatrixMultTranspose"},{"p":"org.flag4j.operations.dense.real","l":"RealDenseOperations"},{"p":"org.flag4j.operations.dense.real","l":"RealDenseProperties"},{"p":"org.flag4j.operations.dense.real","l":"RealDenseSetOperations"},{"p":"org.flag4j.operations.dense_sparse.coo.real","l":"RealDenseSparseEquals"},{"p":"org.flag4j.operations.dense_sparse.coo.real","l":"RealDenseSparseMatrixMultiplication"},{"p":"org.flag4j.operations.dense_sparse.coo.real","l":"RealDenseSparseMatrixMultTranspose"},{"p":"org.flag4j.operations.dense_sparse.coo.real","l":"RealDenseSparseMatrixOperations"},{"p":"org.flag4j.operations.dense_sparse.coo.real","l":"RealDenseSparseTensorOperations"},{"p":"org.flag4j.operations.dense_sparse.coo.real","l":"RealDenseSparseVectorOperations"},{"p":"org.flag4j.core.dense_base","l":"RealDenseTensorBase"},{"p":"org.flag4j.operations","l":"RealDenseTensorBinaryOperation"},{"p":"org.flag4j.operations.dense.real","l":"RealDenseTensorDot"},{"p":"org.flag4j.operations.dense.real","l":"RealDenseTranspose"},{"p":"org.flag4j.operations.dense.real","l":"RealDenseVectorOperations"},{"p":"org.flag4j.linalg.solvers.exact","l":"RealExactSolver"},{"p":"org.flag4j.linalg.solvers.exact","l":"RealExactTensorSolver"},{"p":"org.flag4j.linalg.solvers.exact.triangular","l":"RealForwardSolver"},{"p":"org.flag4j.linalg.decompositions.hess","l":"RealHess"},{"p":"org.flag4j.linalg.solvers.lstsq","l":"RealLstsqSolver"},{"p":"org.flag4j.linalg.decompositions.lu","l":"RealLU"},{"p":"org.flag4j.core","l":"RealMatrixMixin"},{"p":"org.flag4j.operations.common.real","l":"RealOperations"},{"p":"org.flag4j.operations.common.real","l":"RealProperties"},{"p":"org.flag4j.linalg.decompositions.qr","l":"RealQR"},{"p":"org.flag4j.linalg.decompositions.schur","l":"RealSchur"},{"p":"org.flag4j.operations.sparse.coo.real","l":"RealSparseEquals"},{"p":"org.flag4j.operations.sparse.coo.real","l":"RealSparseManipulations"},{"p":"org.flag4j.operations.sparse.coo.real","l":"RealSparseMatrixGetSet"},{"p":"org.flag4j.operations.sparse.coo.real","l":"RealSparseMatrixManipulations"},{"p":"org.flag4j.operations.sparse.coo.real","l":"RealSparseMatrixMultiplication"},{"p":"org.flag4j.operations.sparse.coo.real","l":"RealSparseMatrixOperations"},{"p":"org.flag4j.operations.sparse.coo.real","l":"RealSparseMatrixProperties"},{"p":"org.flag4j.operations.sparse.coo.real","l":"RealSparseNorms"},{"p":"org.flag4j.core.sparse_base","l":"RealSparseTensorBase"},{"p":"org.flag4j.operations.sparse.coo.real","l":"RealSparseVectorOperations"},{"p":"org.flag4j.linalg.decompositions.svd","l":"RealSVD"},{"p":"org.flag4j.core","l":"RealTensorMixin"},{"p":"org.flag4j.linalg.decompositions.unitary","l":"RealUnitaryDecomposition"},{"p":"org.flag4j.linalg","l":"RowEchelon"},{"p":"org.flag4j.linalg.decompositions.schur","l":"Schur"},{"p":"org.flag4j.core","l":"Shape"},{"p":"org.flag4j.util.exceptions","l":"SingularMatrixException"},{"p":"org.flag4j.operations.sparse.coo","l":"SparseDataWrapper"},{"p":"org.flag4j.operations.sparse.coo","l":"SparseElementSearch"},{"p":"org.flag4j.core.sparse_base","l":"SparseTensorBase"},{"p":"org.flag4j.core.sparse_base","l":"SparseTensorMixin"},{"p":"org.flag4j.arrays.sparse","l":"SparseUtils"},{"p":"org.flag4j.operations.sparse.coo","l":"SparseUtils"},{"p":"org.flag4j.util","l":"StringUtils"},{"p":"org.flag4j.linalg","l":"SubSpace"},{"p":"org.flag4j.linalg.decompositions.svd","l":"SVD"},{"p":"org.flag4j.linalg.decompositions.hess","l":"SymmHess"},{"p":"org.flag4j.arrays.sparse","l":"SymmTriDiagonal"},{"p":"org.flag4j.arrays.dense","l":"Tensor"},{"p":"org.flag4j.core","l":"TensorBase"},{"p":"org.flag4j.core","l":"TensorComparisonsMixin"},{"p":"org.flag4j.operations.common","l":"TensorEquals"},{"p":"org.flag4j.core","l":"TensorExclusiveMixin"},{"p":"org.flag4j.io","l":"TensorInputStream"},{"p":"org.flag4j.linalg","l":"TensorInvert"},{"p":"org.flag4j.core","l":"TensorManipulationsMixin"},{"p":"org.flag4j.linalg","l":"TensorNorms"},{"p":"org.flag4j.concurrency","l":"TensorOperation"},{"p":"org.flag4j.core","l":"TensorOperationsMixin"},{"p":"org.flag4j.io","l":"TensorOutputStream"},{"p":"org.flag4j.core","l":"TensorPropertiesMixin"},{"p":"org.flag4j.io","l":"TensorReader"},{"p":"org.flag4j.util.exceptions","l":"TensorShapeException"},{"p":"org.flag4j.io","l":"TensorWriter"},{"p":"org.flag4j.concurrency","l":"ThreadManager"},{"p":"org.flag4j.operations","l":"TransposeDispatcher"},{"p":"org.flag4j.concurrency","l":"ThreadManager.TriConsumer"},{"p":"org.flag4j.linalg.decompositions.unitary","l":"UnitaryDecomposition"},{"p":"org.flag4j.arrays.dense","l":"Vector"},{"p":"org.flag4j.core","l":"VectorComparisonsMixin"},{"p":"org.flag4j.core","l":"VectorManipulationsMixin"},{"p":"org.flag4j.core","l":"VectorMixin"},{"p":"org.flag4j.linalg","l":"VectorNorms"},{"p":"org.flag4j.core","l":"VectorOperationsMixin"},{"p":"org.flag4j.core","l":"VectorPropertiesMixin"},{"p":"org.flag4j.linalg.transformations","l":"View"}];updateSearchResults(); \ No newline at end of file From a3cd1ddb8d3fb40f04fb0740b0fd0aaa29bf3f76 Mon Sep 17 00:00:00 2001 From: jacob Date: Fri, 9 Aug 2024 16:36:34 -0600 Subject: [PATCH 8/8] Remove temporary lines. --- .../org/flag4j/concurrency/ThreadManager.java | 40 ------------------- .../real/RealDenseMatrixMultiplication.java | 21 ---------- 2 files changed, 61 deletions(-) diff --git a/src/main/java/org/flag4j/concurrency/ThreadManager.java b/src/main/java/org/flag4j/concurrency/ThreadManager.java index 4012e9731..e9bdea4ed 100644 --- a/src/main/java/org/flag4j/concurrency/ThreadManager.java +++ b/src/main/java/org/flag4j/concurrency/ThreadManager.java @@ -154,44 +154,4 @@ public static void concurrentBlockedOperation(final int totalSize, final int blo } } } - - // TODO: TEMP FOR TESTING. - /** - * Executes a concurrent operation on a given range of indices. - * The operation is split across multiple threads, each handling a subset of the range. - * - * @param totalTasks The total number of tasks (e.g., rows in a matrix) to be processed. - * @param task A lambda expression or function that takes three arguments: start index, end index, and thread ID. - * This function represents the work to be done by each thread for its assigned range. - */ - public static void concurrentOperation(int totalTasks, TriConsumer task) { - int numThreads = Runtime.getRuntime().availableProcessors(); - ExecutorService executor = Executors.newFixedThreadPool(numThreads); - - int tasksPerThread = (totalTasks + numThreads - 1) / numThreads; // Ceiling division - - for (int threadId = 0; threadId < numThreads; threadId++) { - int startIdx = threadId * tasksPerThread; - int endIdx = Math.min(startIdx + tasksPerThread, totalTasks); - - if (startIdx < endIdx) { - final int finalThreadId = threadId; - executor.submit(() -> task.accept(startIdx, endIdx, finalThreadId)); - } - } - - executor.shutdown(); - - try { - executor.awaitTermination(Long.MAX_VALUE, TimeUnit.NANOSECONDS); - } catch (InterruptedException e) { - Thread.currentThread().interrupt(); - throw new RuntimeException("Thread execution interrupted", e); - } - } - - @FunctionalInterface - public interface TriConsumer { - void accept(T t, U u, V v); - } } diff --git a/src/main/java/org/flag4j/operations/dense/real/RealDenseMatrixMultiplication.java b/src/main/java/org/flag4j/operations/dense/real/RealDenseMatrixMultiplication.java index ce5695e01..9bd2002fe 100644 --- a/src/main/java/org/flag4j/operations/dense/real/RealDenseMatrixMultiplication.java +++ b/src/main/java/org/flag4j/operations/dense/real/RealDenseMatrixMultiplication.java @@ -24,11 +24,9 @@ package org.flag4j.operations.dense.real; -import org.flag4j.arrays.dense.Matrix; import org.flag4j.concurrency.Configurations; import org.flag4j.concurrency.ThreadManager; import org.flag4j.core.Shape; -import org.flag4j.rng.RandomTensor; import org.flag4j.util.ErrorMessages; /** @@ -572,23 +570,4 @@ public static double[] concurrentBlockedVector(double[] src1, Shape shape1, doub return dest; } - - - public static void main(String[] args) { - RandomTensor rtg = new RandomTensor(); - Shape shape = new Shape(8192, 8192); - Matrix A = rtg.randomMatrix(shape, -100, 100); - Matrix B = rtg.randomMatrix(shape, -100, 100); - - int warmup = 1; - for(int i=0; i