diff --git a/docs/allclasses-index.html b/docs/allclasses-index.html index 67cd565ce..cba90d15f 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<
CNumber
-
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.
CNumberLexer
@@ -121,6 +121,14 @@

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

+
ComplexCooTensorDot
+
+
Utility class for computing tensor dot products between two complex sparse COO tensors.
+
+
ComplexCooTensorOperations
+
+
Utility class for computing operations between two complex sparse COO tensors.
+
ComplexCsrDenseMatrixMultiplication
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,429 +563,445 @@

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.
+ +
+
Functional interface for general tensor operation.
+
This interface specifies operations which all tensors (i.e.
@@ -1007,49 +1031,51 @@

All Classes and Interfaces<
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..f7624c4b7 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..4d6e22825 100644 --- a/docs/constant-values.html +++ b/docs/constant-values.html @@ -1,11 +1,11 @@ - + Constant Field Values - + @@ -76,10 +76,10 @@

org.flag4j.*

Modifier and Type
Constant Field
Value
-
private static final int
+
public static final int
64
-
private static final int
+
public static final int
128
@@ -241,7 +241,7 @@

org.flag4j.*

Value
private static final int
-
50625
+
50000
diff --git a/docs/help-doc.html b/docs/help-doc.html index 53d137ffb..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 8248c8848..716250a1f 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.
@@ -89,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.
@@ -195,6 +189,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 +269,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 +369,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 +481,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 +493,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 +667,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 +725,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 +764,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 +797,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 +810,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.
@@ -1290,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.
@@ -1440,18 +1486,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 +1522,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 +1567,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..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 d03aeb50a..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 67d008159..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 e30a184f8..c4d0141fa 100644 --- a/docs/index-files/index-13.html +++ b/docs/index-files/index-13.html @@ -1,11 +1,11 @@ - + M-Index - + @@ -59,7 +59,7 @@

M

Squares this magnitude of this complex number.
-
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
@@ -455,7 +455,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 +519,7 @@

M

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 +568,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 +592,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 +668,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 +689,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 +717,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,18 +745,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.
-
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.
@@ -793,18 +761,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 +1065,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 +1145,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..7e21d8ab6 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..795db28ad 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..61f6ed497 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..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 f664752e5..ae4526c24 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..5bb36655e 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.
@@ -550,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.
@@ -1331,18 +1331,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 +1744,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 +2315,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 +2602,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 +2731,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 +2811,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 +2919,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 +3047,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 +3059,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 +3253,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 +3311,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 +3350,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 +3383,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 +3396,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 +3436,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.
@@ -3628,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 fb607ffd8..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 464026b24..173b1c1d5 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.
@@ -382,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.
@@ -438,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.
@@ -534,6 +580,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 +680,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 +720,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 +804,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 +1019,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..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 36527b0d4..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 9762229e9..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 c3d94c2c1..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 c77dd82e3..fa70b14c8 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..932ad98a0 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 @@ -897,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 @@ -919,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 @@ -975,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
@@ -1179,10 +1187,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 +1317,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 +1422,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 +1486,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 +1498,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 +1522,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 +1530,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..52059a568 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..eb29734d9 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..9ab6fca82 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..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.
@@ -751,6 +747,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..19dde8893 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..28f816e86 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..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 9a3f7a901..b1e8580c5 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.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 cc0513898..44c0794fd 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..0dca65f57 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

  • +
    +

    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..2906cb339 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..eb4cc830f 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..5baf0719e 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..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 2b773b5f4..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 8941f5c0c..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 - + @@ -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..15de4d105 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..0db0cf436 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..e214f9a83 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..ded5dff01 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..78e43b276 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..5f0916986 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..197e6cda1 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..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 8f385cbc2..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 b7d07e253..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 63d11cd32..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 83e0d6872..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 - + @@ -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..5f43c4a3f 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..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 732a48733..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 70f30c3d1..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 b96402fad..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 983415859..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 - + @@ -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..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 926b1c202..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 9f327ec22..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 @@
  • 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..ff0b7c336 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..6731a7910 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..f5b179e1f 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..ebca6b81f 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..7e51fab4a 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..02d9ffd42 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..3c227c349 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..a877f4381 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..34c838d0f 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.
    -
    @@ -171,86 +167,81 @@

    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.
    -
    void
    - -
    +
    void
    + +
    If strides are null, create them.
    - -
    swapAxes(int... axes)
    -
    + +
    swapAxes(int... axes)
    +
    Permutes the axes of this shape.
    - -
    swapAxes(int axis1, + +
    swapAxes(int axis1, int axis2)
    -
    +
    Swaps two axes of this shape.
    - - -
    + + +
    Converts this Shape object to a string format.
    - - -
    + + +
    Gets the total number of entries for a tensor with this shape.
    @@ -274,7 +265,7 @@

    Field Details

    dims

    -
    public int[] dims
    +
    private final int[] dims
    An array containing the size of each dimension of this shape.
    @@ -283,11 +274,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 +328,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 +396,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 +459,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 +498,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

    diff --git a/docs/org/flag4j/core/TensorBase.html b/docs/org/flag4j/core/TensorBase.html index a78fe33fc..1a21320ec 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..11551ff52 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..15b6b3a98 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..6f5711743 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..c0494802e 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..6864ac7a8 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..4039e80c4 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..82a19b160 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..c89b9167b 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..e62f1b10f 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..19a1d29d1 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..9d8fc3e97 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..294a6ca09 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..818e5fb55 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..4eff8b59b 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..ae0efbb4b 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..6c7156fd1 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..3c4bff113 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..d52b84c46 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..db1d1771e 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..8407c52cf 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..fb244aee8 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..502bd3066 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..f1857a1d0 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..673ef0adf 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..47b0b80fa 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..ad0cbd03c 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..bcf4bfa94 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..54e8c0173 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..2d4ea8863 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..3cc7ce07c 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..3ece3ddaf 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..428fcc1cb 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..9749aae58 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..a347aacad 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..d80005088 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..ea3820810 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..7014b7439 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..95037d476 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..7ba8c652c 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..536094501 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..7376066d4 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..fa8d86076 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..809fb109d 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..d53dab496 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..6934a3f3c 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..cea9a5f8d 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..6c9e66bd8 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..20b7ae81d 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..9aba07164 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..6d8eb48b1 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..38a8bcfd5 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..c0518c47c 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..c156efa6a 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..514ffe7a1 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..bd37bf1ac 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..04ed7bb11 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..a104cccfc 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..3eff7efb5 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..e50d47c1f 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..a0cecf197 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..c50fd6bfc 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..6e44b0cd1 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..e6c15ed17 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..a80c46bc6 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..3a06ef228 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..b6587092b 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..db04c2866 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..b49804fc7 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..0da0c46e2 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..4cfd358f0 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..d1ff20e01 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..f6651b512 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..76a272ca7 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..83fb86ee1 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..c5e39717d 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..68602cb27 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..7d51cbfba 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..f5b08a29b 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..12404ee02 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..74f65d151 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..c69664918 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..c51197669 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..93cfe6477 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..70d5fbd37 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..6b229ac75 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..0015c78e7 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..0b461e18f 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..885ea2a5e 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..a56ae4f4b 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..bf22da5fa 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..883cac297 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..99dd5ff7d 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..9dbf60232 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..59b43aaf5 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..543c51581 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..2bc6d1f33 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..3dc943275 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..cd3d26ae5 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..ce6539923 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..af57bd662 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..846acc79d 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..02475dd0b 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..215d85dc8 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..526acb05b 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..79b6e03bd 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..28830d6a7 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..b78799f1f 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..48a8d6119 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..da4fa73db 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..0c078e0d5 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..50163a681 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..6ea062ac0 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..02bbedb8d 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..c3a8a8598 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..1166fa5f4 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..37c879aab 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..0a6f75e61 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..22adc7e89 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..da606870f 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..8863eec17 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..ab4185279 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..7a62eb148 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..65bc523be 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..6530c57c1 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..a84e978e9 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..8d1637c3a 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..4f22109c8 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..6586ab9b3 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..5b9f5a9d3 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..4aa600e25 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..1326b9fd3 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..6b37ae8db 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..1a891321d 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..8c46d8690 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..8806e0629 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..86b7bfbf6 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..6a0ce7f40 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..4c2abc1b5 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..9a28b05a5 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..7bb726671 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..2540b1b1c 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..2ce367f65 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..a6ddf4ce5 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..5ceab8b6f 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..f6d473ac3 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..cba3f759b 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,11 +89,12 @@

    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.
    - WARNING: These methods do not perform any sanity checks.
    +

    This class contains several low level methods for computing complex matrix-matrix multiplications. This includes transpose + multiplications.

    + +

    WARNING: These methods do not perform any sanity checks.

    diff --git a/docs/org/flag4j/operations/dense/complex/ComplexDenseOperations.html b/docs/org/flag4j/operations/dense/complex/ComplexDenseOperations.html index f91e4c62a..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 - + @@ -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..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 ea83cd0e7..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 - + @@ -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..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 21bf3c96c..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 - + @@ -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..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 9519c0865..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 baa6c1857..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 1c9f21d32..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 89d5297b5..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 d5cd06104..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 d3487d714..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 a9b7ef1bc..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 555497e4d..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 bb4225d56..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 0562f768a..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 - + @@ -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..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 - + @@ -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..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 db0bd2706..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 c54da740a..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 7e87de215..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 d2c7cc371..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 3bab88d2b..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 e2dca3178..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 52f4f4417..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 732a4d3b2..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 04528a48d..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 - + @@ -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..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 - + @@ -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..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 40440e0b4..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 - + @@ -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..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 298379c3f..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 7cd49bfdf..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 - + @@ -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..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 - + @@ -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..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 - + @@ -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..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 - + @@ -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..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 - + @@ -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..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 - + @@ -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..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 5da944ce6..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 cacfd3c72..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 8d9b1fa50..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 e97e9be96..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 23b5048f3..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 d1480e72b..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 - + @@ -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..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 ae2a159b2..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 eb34b3dbb..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 743da9c24..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 - + @@ -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..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 76fd507dc..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 - + @@ -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..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 - + @@ -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..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 - + @@ -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..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 - + @@ -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..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 d3bc43a99..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 4089a0e5a..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 - + @@ -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..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 - + @@ -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..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 84de86c33..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 85e711a83..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 b61b291de..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 26a6b08d8..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 72d896e5b..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 833aabded..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 - + @@ -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..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 - + @@ -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..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 9ba282dff..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 497f6c4f8..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 635bf376b..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 c1123da8c..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 7898e7ec5..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 8086d3b83..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 new file mode 100644 index 000000000..2fb4212c4 --- /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..890e3890b --- /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..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 dbbe7c8ee..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 3badd0f31..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 - + @@ -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..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 66f4ebde7..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 - + @@ -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..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 - + @@ -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..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 cb8c70c5c..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 445408fad..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 - + @@ -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..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 - + @@ -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..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 - + @@ -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..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 3d04c8e64..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 new file mode 100644 index 000000000..976f25839 --- /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..d2e946092 --- /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..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 38b7879be..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 b250ea819..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 f5d85b1c2..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 bd41486cb..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 cfcb229bf..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 9b620618f..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 3ae8f80aa..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 18276acee..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 57d247a24..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 - + @@ -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..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 - + @@ -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..28b21069c --- /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..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 9124e246d..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 - + @@ -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..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 - + @@ -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..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 - + @@ -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..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 - + @@ -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..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 - + @@ -57,6 +57,7 @@

            Class Hierarchy

            • java.lang.Object
                +
              • org.flag4j.operations.sparse.coo.real_complex.RealComplexCooTensorOperations
              • org.flag4j.operations.sparse.coo.real_complex.RealComplexSparseEquals
              • org.flag4j.operations.sparse.coo.real_complex.RealComplexSparseMatrixMultiplication
              • org.flag4j.operations.sparse.coo.real_complex.RealComplexSparseMatrixOperations
              • diff --git a/docs/org/flag4j/operations/sparse/csr/complex/ComplexCsrEquals.html b/docs/org/flag4j/operations/sparse/csr/complex/ComplexCsrEquals.html index 4b4c41101..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 1e3f815ff..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 10d74557d..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 - + @@ -89,7 +89,7 @@

                Class ComplexCsrM

                -
                public class ComplexCsrMatrixMultiplication +
                public final class ComplexCsrMatrixMultiplication extends Object
                This class contains low-level implementations of complex-complex sparse-sparse matrix multiplication where the sparse matrices are in CSR format.
                diff --git a/docs/org/flag4j/operations/sparse/csr/complex/ComplexCsrOperations.html b/docs/org/flag4j/operations/sparse/csr/complex/ComplexCsrOperations.html index 2271ae77a..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 - + @@ -89,7 +89,7 @@

                Class ComplexCsrOperations<

                -
                public class ComplexCsrOperations +
                public final class ComplexCsrOperations extends Object
                This class contains low-level implementations for element-wise operations on complex CSR matrices.
                diff --git a/docs/org/flag4j/operations/sparse/csr/complex/ComplexCsrProperties.html b/docs/org/flag4j/operations/sparse/csr/complex/ComplexCsrProperties.html index 53c40d20b..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 - + @@ -89,7 +89,7 @@

                Class ComplexCsrProperties<

                -
                public class ComplexCsrProperties +
                public final class ComplexCsrProperties extends Object
                This class contains low-level implementations for determining certain properties of complex sparse CSR matrices.
                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 f33d6f58c..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 6e1dd53b5..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 68b38085d..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 87cc1e005..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 4e647523f..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 36763f8de..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 ab8529d48..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 67cebcb83..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 1774fe715..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 8046fde9c..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 795cf60d4..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 - + @@ -89,7 +89,7 @@

                Class RealCom

                -
                public class RealComplexCsrMatrixMultiplication +
                public final class RealComplexCsrMatrixMultiplication extends Object
                This class provides low-level implementation of matrix multiplication between a real CSR matrix and a complex CSR matrix.
                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 4e55cb91a..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 - + @@ -89,7 +89,7 @@

                Class RealComplexCsrOpe

                -
                public class RealComplexCsrOperations +
                public final class RealComplexCsrOperations extends Object
                This class contains low-level implementations for element-wise operations on real/complex CSR matrices.
                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 aa1555278..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 590ac0106..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 23b56d5bb..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 923954e62..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 c5b1a91b8..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 aaf379ac0..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 9e1336521..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 39179844c..32697723c 100644 --- a/docs/org/flag4j/util/ArrayUtils.html +++ b/docs/org/flag4j/util/ArrayUtils.html @@ -1,11 +1,11 @@ - + ArrayUtils - + @@ -156,110 +156,82 @@

                Method Summary

                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.
                -
                static void
                -
                arraycopy(CNumber[] src, - int srcPos, - CNumber[] dest, - int destPos, - int length)
                +
                static double[]
                +
                asDouble(int[] src, + double[] dest)
                -
                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.
                +
                Converts an array of ints to an array of doubles.
                static double[]
                -
                asDouble(int[] src, +
                asDouble(Integer[] src, double[] dest)
                -
                Converts an array of ints to an array of doubles.
                -
                -
                static double[]
                -
                asDouble(Integer[] src, - double[] dest)
                -
                Converts an array of Integers to an array of doubles.
                -
                static Double[]
                -
                boxed(double[] src)
                -
                +
                static Double[]
                +
                boxed(double[] src)
                +
                Converts a primitive array to an array of equivalent boxed type.
                -
                static Integer[]
                -
                boxed(int[] src)
                -
                +
                static Integer[]
                +
                boxed(int[] src)
                +
                Converts a primitive array to an array of equivalent boxed type.
                -
                static boolean
                -
                contains(double[] arr, +
                static boolean
                +
                contains(double[] arr, double key)
                -
                +
                Checks if an array contains a specified value.
                -
                static boolean[]
                -
                contains(double[] src, +
                static boolean[]
                +
                contains(double[] src, double... keys)
                -
                +
                Checks if a set of keys are in an array.
                -
                static boolean
                -
                contains(int[] arr, +
                static boolean
                +
                contains(int[] arr, int key)
                -
                +
                Checks if an array contains a specified value.
                -
                static boolean[]
                -
                contains(int[] src, +
                static boolean[]
                +
                contains(int[] src, int... keys)
                -
                -
                Checks if a set of keys is in an array.
                -
                -
                static CNumber[]
                -
                copy2CNumber(double[] src, - CNumber[] dest)
                -
                Converts array to an array of complex numbers.
                +
                Checks if a set of keys is in an array.
                static CNumber[]
                -
                copy2CNumber(int[] src, +
                copy2CNumber(double[] src, CNumber[] dest)
                Converts array to an array of complex numbers.
                static CNumber[]
                -
                copy2CNumber(Double[] src, +
                copy2CNumber(int[] src, CNumber[] dest)
                Converts array to an array of complex numbers.
                static CNumber[]
                -
                copy2CNumber(Integer[] src, +
                copy2CNumber(Double[] src, CNumber[] dest)
                Converts array to an array of complex numbers.
                static CNumber[]
                -
                copy2CNumber(String[] src, +
                copy2CNumber(Integer[] src, CNumber[] dest)
                Converts array to an array of complex numbers.
                static CNumber[]
                -
                copy2CNumber(CNumber[] src, +
                copy2CNumber(String[] src, CNumber[] dest)
                Converts array to an array of complex numbers.
                -
                static CNumber[]
                -
                copyOf(CNumber[] src)
                -
                -
                Copies the full array.
                -
                -
                static CNumber[]
                -
                copyOfRange(CNumber[] src, - int start, - int stop)
                -
                -
                Copies a range of an array into a new array.
                -
                @@ -312,42 +284,17 @@

                Method Summary

                Fills an array with specified value.
                -
                static void
                -
                fill(CNumber[] dest, - CNumber fillValue)
                -
                -
                Fills an array with specified value.
                -
                -
                static int[]
                -
                filledArray(int size, +
                static int[]
                +
                filledArray(int size, int value)
                -
                -
                Constructs an array filled with a specific value.
                -
                -
                static void
                -
                fillZeros(double[] dest, - int start, - int end)
                -
                Fills a specified range of an array with zeros.
                +
                Constructs an array filled with a specific value.
                static void
                - +
                fillZeros(CNumber[][] dest)
                Fills an array of complex numbers with zeros.
                -
                static void
                -
                fillZeros(CNumber[][] dest)
                -
                -
                Fills an array of complex numbers with zeros.
                -
                -
                static void
                -
                fillZeros(CNumber[] dest, - int start, - int end)
                -
                -
                Fills a specified range of an array of complex numbers with zeros.
                -
                static int[]
                findFirstLast(int[] src, int key)
                @@ -430,7 +377,7 @@

                Method Summary

                Checks if a key is in an array.
                static int[]
                -
                notinAxes(int[] srcAxes, +
                notInAxes(int[] srcAxes, int dim)
                Given a list of integers, srcAxes, which is a subset of {0, 1, 2, ...., dim-1} @@ -542,7 +489,7 @@

                Method Summary

                int stride)
                - Fills an array with zeros seperated by the given stride.
                + Fills an array with zeros separated by the given stride.
                static void
                stridedFillZeros(double[] dest, @@ -551,7 +498,7 @@

                Method Summary

                int stride)
                - 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.
                static void
                stridedFillZeros(CNumber[] dest, @@ -559,7 +506,7 @@

                Method Summary

                int stride)
                - Fills an array with zeros seperated by the given stride.
                + Fills an array with zeros separated by the given stride.
                static void
                stridedFillZeros(CNumber[] dest, @@ -597,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.
                @@ -786,50 +739,6 @@

                copy2CNumber

              • -
                -

                copy2CNumber

                -
                -
                public static CNumber[] copy2CNumber(CNumber[] src, - CNumber[] dest)
                -
                Converts array to an array of complex numbers.
                -
                -
                Parameters:
                -
                src - Array to convert.
                -
                dest - Destination array. If the destination array is null, a new array will be created.
                -
                Returns:
                -
                A reference to the dest array.
                -
                Throws:
                -
                IllegalArgumentException - If source and destination arrays do not have the same length.
                -
                -
                -
                -
              • -
              • -
                -

                arraycopy

                -
                -
                public static void arraycopy(CNumber[] src, - int srcPos, - CNumber[] dest, - int destPos, - int length)
                -
                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.
                -
                -
                Parameters:
                -
                src - The source array.
                -
                srcPos - The starting position from which to copy elements of the source array.
                -
                dest - The destination array for the copy.
                -
                destPos - Starting index to place copied elements in the destination array.
                -
                length - The number of array elements to be copied.
                -
                Throws:
                -
                ArrayIndexOutOfBoundsException - If the destPos parameter plus the length parameter exceeds the length of the - source array length or the destination array length.
                -
                -
                -
                -
              • -
              • arraycopy

                @@ -855,59 +764,6 @@

                arraycopy

              • -
                -

                copyOfRange

                -
                -
                public static CNumber[] copyOfRange(CNumber[] src, - int start, - int stop)
                -
                Copies a range of an array into a new array. Similar to Arrays.copyOfRange(Object[], int, int) but - performs a deep copy.
                -
                -
                Parameters:
                -
                src - Source array to copy from.
                -
                start - Staring index of range to copy (inclusive).
                -
                stop - Stopping index of range to copy (Exclusive).
                -
                Returns:
                -
                An array of length stop-start containing a deep copy of the specified range of the source array.
                -
                Throws:
                -
                NegativeArraySizeException - If stop is less than start.
                -
                -
                -
                -
              • -
              • -
                -

                copyOf

                -
                -
                public static CNumber[] copyOf(CNumber[] src)
                -
                Copies the full array. Similar to Arrays.copyOfRange(Object[], int, int) but - performs a deep copy.
                -
                -
                Parameters:
                -
                src - Source array to copy from.
                -
                Returns:
                -
                An array of length stop-start containing a deep copy of the specified range of the source array.
                -
                Throws:
                -
                NegativeArraySizeException - If stop is less than start.
                -
                -
                -
                -
              • -
              • -
                -

                fillZeros

                -
                -
                public static void fillZeros(CNumber[] dest)
                -
                Fills an array of complex numbers with zeros.
                -
                -
                Parameters:
                -
                dest - Array to fill with zeros.
                -
                -
                -
                -
              • -
              • fillZeros

                @@ -921,42 +777,6 @@

                fillZeros

              • -
                -

                fillZeros

                -
                -
                public static void fillZeros(CNumber[] dest, - int start, - int end)
                -
                Fills a specified range of an array of complex numbers with zeros.
                -
                -
                Parameters:
                -
                dest - Array to fill specified range with zeros.
                -
                start - Starting index of range to fill (inclusive).
                -
                end - Ending index of range to fill (Exclusive).
                -
                Throws:
                -
                ArrayIndexOutOfBoundsException - If start or end are out of range for the provided array.
                -
                -
                -
                -
              • -
              • -
                -

                fillZeros

                -
                -
                public static void fillZeros(double[] dest, - int start, - int end)
                -
                Fills a specified range of an array with zeros.
                -
                -
                Parameters:
                -
                dest - Array to fill specified range with zeros.
                -
                start - Starting index of range to fill (inclusive).
                -
                end - Ending index of range to fill (Exclusive).
                -
                -
                -
                -
              • -
              • stridedFillZeros

                @@ -964,7 +784,7 @@

                stridedFillZeros

                int start, int stride)

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

                @@ -990,7 +810,7 @@

                stridedFillZeros

                int start, int stride)

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

                @@ -1048,8 +868,8 @@

                stridedFillZeros

                int length, int stride)

                - 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.

                @@ -1120,21 +940,6 @@

                fill

              • -
                -

                fill

                -
                -
                public static void fill(CNumber[] dest, - CNumber fillValue)
                -
                Fills an array with specified value.
                -
                -
                Parameters:
                -
                dest - Array to fill.
                -
                fillValue - Value to fill array with.
                -
                -
                -
                -
              • -
              • fill

                @@ -1337,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

                @@ -1651,10 +1473,10 @@

                join

              • -
                -

                notinAxes

                +
                +

                notInAxes

                -
                public static int[] notinAxes(int[] srcAxes, +
                public static int[] notInAxes(int[] srcAxes, int dim)
                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/org/flag4j/util/Axis2D.html b/docs/org/flag4j/util/Axis2D.html index 67aa9c262..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 3024f031d..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 e67002461..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 14223ade0..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 256406e6e..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 aec090f55..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 1aafda57d..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 3a1c8dcde..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 f90cb147a..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 580541904..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 500f247fd..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 3381fcac0..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 3adcea654..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 a987df00f..5153f51c1 100644 --- a/docs/overview-tree.html +++ b/docs/overview-tree.html @@ -1,11 +1,11 @@ - + Class Hierarchy - + @@ -123,6 +123,8 @@

                Class Hierarchy

              • org.flag4j.complex_numbers.CNumberParser
              • org.flag4j.complex_numbers.CNumberToken
              • org.flag4j.complex_numbers.CNumberUtils
              • +
              • org.flag4j.operations.sparse.coo.complex.ComplexCooTensorDot
              • +
              • org.flag4j.operations.sparse.coo.complex.ComplexCooTensorOperations
              • org.flag4j.operations.dense_sparse.csr.complex.ComplexCsrDenseMatrixMultiplication
              • org.flag4j.operations.dense_sparse.csr.complex.ComplexCsrDenseOperations
              • org.flag4j.operations.sparse.csr.complex.ComplexCsrEquals
              • @@ -228,6 +230,7 @@

                Class Hierarchy

              • org.flag4j.rng.RandomArray
              • org.flag4j.rng.RandomTensor
              • +
              • org.flag4j.operations.sparse.coo.real_complex.RealComplexCooTensorOperations
              • org.flag4j.operations.dense_sparse.csr.real_complex.RealComplexCsrDenseMatrixMultiplication
              • org.flag4j.operations.dense_sparse.csr.real_complex.RealComplexCsrDenseOperations
              • org.flag4j.operations.sparse.csr.real_complex.RealComplexCsrMatrixMultiplication
              • @@ -249,6 +252,8 @@

                Class Hierarchy

              • org.flag4j.operations.sparse.coo.real_complex.RealComplexSparseMatrixMultiplication
              • org.flag4j.operations.sparse.coo.real_complex.RealComplexSparseMatrixOperations
              • org.flag4j.operations.sparse.coo.real_complex.RealComplexSparseVectorOperations
              • +
              • org.flag4j.operations.sparse.coo.real.RealCooTensorDot
              • +
              • org.flag4j.operations.sparse.coo.real.RealCooTensorOperations
              • org.flag4j.operations.sparse.csr.real.RealCsrConcats
              • org.flag4j.operations.dense_sparse.csr.real.RealCsrDenseMatrixMultiplication
              • org.flag4j.operations.dense_sparse.csr.real.RealCsrDenseOperations
              • @@ -314,14 +319,14 @@

                Class 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 bb4ecb4b7..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 bb9dec649..9fbf23294 100644 --- a/docs/serialized-form.html +++ b/docs/serialized-form.html @@ -1,11 +1,11 @@ - + Serialized Form - + @@ -309,11 +309,6 @@
                  colIndices
                  Column indices of the non-zero entries of the sparse matrix.
                • -
                  nnz
                  -
                  int nnz
                  -
                  The number of non-zero entries stored in this sparse matrix.
                  -
                • -
                • numCols
                  int numCols
                  The number of columns in this matrix.
                  @@ -349,11 +344,6 @@
                  colIndices
                  Column indices of the non-zero entries of the sparse matrix.
                • -
                  nnz
                  -
                  int nnz
                  -
                  The number of non-zero entries stored in this sparse matrix.
                  -
                • -
                • numCols
                  int numCols
                  The number of columns in this matrix.
                  @@ -489,6 +479,11 @@
                  strides
                  int[] strides
                  An array containing the strides of all dimensions within this shape.
                • +
                • +
                  totalEntries
                  +
                  BigInteger totalEntries
                  +
                  Total entries of this shape. This is only computed on demand by Shape.totalEntries()
                  +
              • @@ -579,8 +574,8 @@
                indices
                Indices for non-zero entries of this tensor. Will have shape (nonZeroEntries-by-rank).
              • -
                nonZeroEntries
                -
                int nonZeroEntries
                +
                nnz
                +
                int nnz
                The number of non-zero entries in this sparse tensor.
              diff --git a/docs/type-search-index.js b/docs/type-search-index.js index afe7c1d00..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.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.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.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 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 056edbf26..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,9 +91,9 @@ 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]; + Arrays.fill(super.entries, CNumber.ZERO); + this.numRows = shape.get(0); + this.numCols = shape.get(1); } @@ -103,8 +105,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 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 be83a6a96..626128cd7 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; @@ -64,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); } @@ -88,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); } @@ -146,7 +147,7 @@ public CTensor(Shape shape, CNumber[] entries) { * @param A Tensor specifying shape and entries. */ public CTensor(Tensor A) { - super(A.shape.copy(), new CNumber[A.totalEntries().intValue()]); + super(A.shape, new CNumber[A.totalEntries().intValue()]); shape.makeStridesIfNull(); ArrayUtils.copy2CNumber(A.entries, super.entries); } @@ -157,9 +158,9 @@ public CTensor(Tensor A) { * @param A Tensor specifying shape and entries. */ public CTensor(CTensor A) { - super(A.shape.copy(), new CNumber[A.totalEntries().intValue()]); + 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); } @@ -257,7 +258,7 @@ public boolean equals(Object object) { @Override public CTensor H() { return new CTensor( - shape.copy().swapAxes(0, getRank()-1), + shape.swapAxes(0, getRank()-1), ComplexDenseTranspose.standardConcurrentHerm( entries, shape, @@ -282,7 +283,7 @@ public CTensor H() { @Override public CTensor H(int axis1, int axis2) { return new CTensor( - shape.copy().swapAxes(axis1, axis2), + shape.swapAxes(axis1, axis2), ComplexDenseTranspose.standardConcurrentHerm( entries, shape, @@ -305,7 +306,7 @@ public CTensor H(int axis1, int axis2) { @Override public CTensor H(int... axes) { return new CTensor( - this.shape.copy().swapAxes(axes), + this.shape.swapAxes(axes), ComplexDenseTranspose.standardConcurrentHerm(this.entries, this.shape, axes) ); } @@ -388,7 +389,7 @@ public CTensor T(int axis1, int axis2) { public CTensor T(int... axes) { // TODO: Add dispatcher for this method to choose between concurrent and sequential implementations. return new CTensor( - this.shape.copy().swapAxes(axes), + this.shape.swapAxes(axes), ComplexDenseTranspose.standardConcurrent(this.entries, this.shape, axes) ); } @@ -452,7 +453,7 @@ public CTensor add(CooTensor B) { @Override public CTensor add(Tensor B) { return new CTensor( - this.shape.copy(), + this.shape, RealComplexDenseOperations.add(this.entries, this.shape, B.entries, B.shape) ); } @@ -467,7 +468,7 @@ public CTensor add(Tensor B) { @Override public CTensor sub(Tensor B) { return new CTensor( - this.shape.copy(), + this.shape, RealComplexDenseOperations.sub(this.entries, this.shape, B.entries, B.shape) ); } @@ -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); } @@ -557,7 +556,7 @@ public void subEq(CooTensor B) { @Override public CTensor elemMult(Tensor B) { return new CTensor( - this.shape.copy(), + this.shape, RealComplexDenseElemMult.dispatch(this.entries, this.shape, B.entries, B.shape) ); } @@ -599,7 +598,7 @@ public CooCTensor elemMult(CooCTensor B) { @Override public CTensor elemDiv(Tensor B) { return new CTensor( - shape.copy(), + shape, RealComplexDenseElemDiv.dispatch(entries, shape, B.entries, B.shape) ); } @@ -640,12 +639,25 @@ 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); } + /** + * 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, Arrays.copyOf(entries, entries.length)); + } + + /** * Converts this tensor to an equivalent matrix. * @return If this tensor is rank 2, then the equivalent matrix will be returned. @@ -656,10 +668,10 @@ 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.copy(), entries); + mat = new CMatrix(this.shape, entries); } else { mat = new CMatrix(1, this.entries.length, entries); } diff --git a/src/main/java/org/flag4j/arrays/dense/CVector.java b/src/main/java/org/flag4j/arrays/dense/CVector.java index 416a9140e..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,8 +63,8 @@ public class CVector extends ComplexDenseTensorBase */ public CVector(int size) { super(new Shape(size), new CNumber[size]); - ArrayUtils.fillZeros(super.entries); - this.size = shape.dims[0]; + Arrays.fill(super.entries, CNumber.ZERO); + this.size = shape.get(0); } @@ -74,7 +76,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); } @@ -85,8 +87,8 @@ 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]; + Arrays.fill(super.entries, fillValue); + this.size = shape.get(0); } @@ -97,7 +99,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 +110,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 +120,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 +129,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 +140,9 @@ public CVector(Vector a) { * @param a Complex vector to copy. */ public CVector(CVector a) { - super(a.shape.copy(), new CNumber[a.totalEntries().intValue()]); - ArrayUtils.copy2CNumber(a.entries, super.entries); - this.size = shape.dims[0]; + super(a.shape, new CNumber[a.totalEntries().intValue()]); + 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 { @@ -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) ); } @@ -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 @@ -1779,7 +1781,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) ); } @@ -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/Tensor.java b/src/main/java/org/flag4j/arrays/dense/Tensor.java index 50c8c3a72..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). */ @@ -163,7 +164,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 +174,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 +184,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(); } @@ -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); } @@ -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) ); } @@ -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); } @@ -509,7 +508,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 +535,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) ); } @@ -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. @@ -577,7 +589,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..ed937522e 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 - implements MatrixMixin, + implements MatrixMixin, ComplexMatrixMixin { /** @@ -86,8 +86,8 @@ public CooCMatrix(int size) { super(new Shape(size, size), 0, new CNumber[0], new int[0][0]); rowIndices = new int[0]; colIndices = new int[0]; - this.numRows = shape.dims[0]; - this.numCols = shape.dims[1]; + this.numRows = shape.get(0); + this.numCols = shape.get(1); } @@ -100,8 +100,8 @@ public CooCMatrix(int rows, int cols) { super(new Shape(rows, cols), 0, new CNumber[0], new int[0][0]); rowIndices = new int[0]; colIndices = new int[0]; - this.numRows = shape.dims[0]; - this.numCols = shape.dims[1]; + this.numRows = shape.get(0); + this.numCols = shape.get(1); } @@ -113,8 +113,8 @@ public CooCMatrix(Shape shape) { super(shape, 0, new CNumber[0], new int[0], new int[0]); rowIndices = indices[0]; colIndices = indices[1]; - this.numRows = shape.dims[0]; - this.numCols = shape.dims[1]; + this.numRows = shape.get(0); + this.numCols = shape.get(1); } @@ -183,8 +183,8 @@ public CooCMatrix(Shape shape, CNumber[] nonZeroEntries, int[] rowIndices, int[] ParameterChecks.assertEquals(nonZeroEntries.length, rowIndices.length, colIndices.length); this.rowIndices = indices[0]; this.colIndices = indices[1]; - this.numRows = shape.dims[0]; - this.numCols = shape.dims[1]; + this.numRows = shape.get(0); + this.numCols = shape.get(1); } @@ -207,8 +207,8 @@ public CooCMatrix(int size, double[] nonZeroEntries, int[] rowIndices, int[] col ArrayUtils.copy2CNumber(nonZeroEntries, entries); this.rowIndices = indices[0]; this.colIndices = indices[1]; - this.numRows = shape.dims[0]; - this.numCols = shape.dims[1]; + this.numRows = shape.get(0); + this.numCols = shape.get(1); } @@ -232,8 +232,8 @@ public CooCMatrix(int rows, int cols, double[] nonZeroEntries, int[] rowIndices, ArrayUtils.copy2CNumber(nonZeroEntries, entries); this.rowIndices = indices[0]; this.colIndices = indices[1]; - this.numRows = shape.dims[0]; - this.numCols = shape.dims[1]; + this.numRows = shape.get(0); + this.numCols = shape.get(1); } @@ -256,8 +256,8 @@ public CooCMatrix(Shape shape, double[] nonZeroEntries, int[] rowIndices, int[] ArrayUtils.copy2CNumber(nonZeroEntries, entries); this.rowIndices = indices[0]; this.colIndices = indices[1]; - this.numRows = shape.dims[0]; - this.numCols = shape.dims[1]; + this.numRows = shape.get(0); + this.numCols = shape.get(1); } @@ -280,8 +280,8 @@ public CooCMatrix(int size, int[] nonZeroEntries, int[] rowIndices, int[] colInd ArrayUtils.copy2CNumber(nonZeroEntries, entries); this.rowIndices = indices[0]; this.colIndices = indices[1]; - numRows = shape.dims[0]; - numCols = shape.dims[1]; + numRows = shape.get(0); + numCols = shape.get(1); } @@ -305,8 +305,8 @@ public CooCMatrix(int rows, int cols, int[] nonZeroEntries, int[] rowIndices, in ArrayUtils.copy2CNumber(nonZeroEntries, entries); this.rowIndices = indices[0]; this.colIndices = indices[1]; - numRows = shape.dims[0]; - numCols = shape.dims[1]; + numRows = shape.get(0); + numCols = shape.get(1); } @@ -329,8 +329,8 @@ public CooCMatrix(Shape shape, int[] nonZeroEntries, int[] rowIndices, int[] col ArrayUtils.copy2CNumber(nonZeroEntries, entries); this.rowIndices = indices[0]; this.colIndices = indices[1]; - numRows = shape.dims[0]; - numCols = shape.dims[1]; + numRows = shape.get(0); + numCols = shape.get(1); } @@ -352,8 +352,8 @@ public CooCMatrix(Shape shape, List 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,16 +363,16 @@ 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), + Arrays.copyOf(A.entries, A.entries.length), A.rowIndices.clone(), A.colIndices.clone() ); rowIndices = indices[0]; colIndices = indices[1]; - numRows = shape.dims[0]; - numCols = shape.dims[1]; + numRows = shape.get(0); + numCols = shape.get(1); } @@ -531,8 +531,8 @@ public CooCMatrix transpose() { @Override public CooCMatrix T() { CooCMatrix transpose = new CooCMatrix( - shape.copy().swapAxes(0, 1), - ArrayUtils.copyOf(entries), + shape.swapAxes(0, 1), + Arrays.copyOf(entries, entries.length), colIndices.clone(), rowIndices.clone() ); @@ -568,8 +568,8 @@ public CNumber get(int... indices) { @Override public CooCMatrix copy() { return new CooCMatrix( - shape.copy(), - ArrayUtils.copyOf(entries), + shape, + Arrays.copyOf(entries, entries.length), rowIndices.clone(), colIndices.clone() ); @@ -647,18 +647,18 @@ 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; - for(int i=0; i -// implements ComplexTensorExclusiveMixin // TODO: Implement methods from this class. + implements ComplexTensorExclusiveMixin { @@ -80,7 +92,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. * @param A The sparse complex tensor to construct a copy of. */ public CooCTensor(CooCTensor 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; iNO complex entries. Otherwise, returns false. + * @return The complex transpose of this tensor. */ @Override - public boolean isReal() { - return false; + public CooCTensor hermTranspose() { + return H(0, getRank()-1); } /** - * Checks if this tensor contains at least one complex entry. + * 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 #hermTranspose()}. * - * @return True if this tensor contains at least one complex entry. Otherwise, returns false. + * @return The complex transpose of this tensor. */ @Override - public boolean isComplex() { - return false; + public CooCTensor H() { + return H(0, getRank()-1); } /** - * Computes the complex conjugate of a tensor. + * Sets an index of this tensor to a specified value. * - * @return The complex conjugate of this tensor. + * @param value Value to set. + * @param indices The indices of this matrix for which to set the value. + * @return A reference to this tensor. + * @throws IllegalArgumentException If the number of indices is not equal to the rank of this tensor. + * @throws IndexOutOfBoundsException If any of the indices are not within this tensor. */ @Override - public CooCTensor conj() { + public CooCTensor set(CNumber value, int... indices) { + // TODO: Implementation. return null; } /** - * Converts a complex tensor to a real matrix. The imaginary component of any complex value will be ignored. + * Sets an index of this tensor to a specified value. * - * @return A tensor of the same size containing only the real components of this tensor. + * @param value Value to set. + * @param indices The indices of this tensor for which to set the value. + * @return A reference to this tensor. */ @Override - public CooTensor toReal() { + public CooCTensor set(double value, int... indices) { + // TODO: Implementation. 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. + * 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. * - * @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() + * @param newShape 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 toRealSafe() { - return null; - } + public CooCTensor reshape(Shape newShape) { + ParameterChecks.assertBroadcastable(shape, newShape); + newShape.makeStridesIfNull(); + int rank = indices[0].length; + int nnz = entries.length; - /** - * 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}. - * - * @return The complex transpose of this tensor. - */ - @Override - public CooCTensor hermTranspose() { - return null; - } + int[] oldStrides = shape.getStrides(); + int[] newStrides = newShape.getStrides(); + int[][] newIndices = new int[nnz][rank]; - /** - * 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 #hermTranspose()}. - * - * @return The complex transpose of this tensor. - */ - @Override - public CooCTensor H() { - return null; + for (int i = 0; i < nnz; i++) { + int flatIndex = 0; + for (int j = 0; j < rank; j++) { + flatIndex += indices[i][j] * oldStrides[j]; + } + + for (int j = 0; j < rank; j++) { + newIndices[i][j] = flatIndex / newStrides[j]; + flatIndex %= newStrides[j]; + } + } + + return new CooCTensor(newShape, Arrays.copyOf(entries, entries.length), newIndices); } /** - * Sets an index of this tensor to a specified value. + * Flattens tensor to single dimension. To flatten tensor along a single axis. * - * @param value Value to set. - * @param indices The indices of this matrix for which to set the value. - * @return A reference to this tensor. - * @throws IllegalArgumentException If the number of indices is not equal to the rank of this tensor. - * @throws IndexOutOfBoundsException If any of the indices are not within this tensor. + * @return The flattened tensor. */ @Override - public CooCTensor set(CNumber value, int... indices) { - return null; + public CooCTensor flatten() { + int[][] destIndices = new int[entries.length][1]; + + for(int i = 0; i < entries.length; i++) + destIndices[i][0] = RealDenseOperations.prod(indices[i]); + + return new CooCTensor(shape, Arrays.copyOf(entries, entries.length), destIndices); } /** - * Checks if this tensor only contains zeros. + * 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 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. * - * @return True if this tensor only contains zeros. Otherwise, returns false. + * @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 boolean isZeros() { - return false; + public CTensor tensorDot(CooCTensor src2, int[] aAxes, int[] bAxes) { + return ComplexCooTensorDot.tensorDot(this, src2, aAxes, bAxes); } /** - * Checks if this tensor only contains ones. + * 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. * - * @return True if this tensor only contains ones. Otherwise, returns false. + * @param axis1 First axis to exchange. + * @param axis2 Second axis to exchange. + * + * @return The transpose of this tensor. */ @Override - public boolean isOnes() { - return false; + 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)}.

              * - * @return The maximum value, in absolute value, in this tensor. - */ - @Override - public double maxAbs() { - return 0; - } - - - /** - * Finds the indices of the minimum value in this tensor. + *

              WARNING: This method will convert this tensor to a dense 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. + * @param numIndices The number of first numIndices which are involved in the inverse sum. * - * @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. + * @return The 'inverse' of this tensor as defined in the above sense. + * + * @see #tensorInv() */ @Override - public int[] argMax() { - return new int[0]; + public CTensor tensorInv(int numIndices) { + return toDense().tensorInv(numIndices); } @@ -638,6 +712,7 @@ public int[] argMax() { */ @Override public CooCTensor flatten(int axis) { + // TODO: Implementation. return null; } @@ -692,15 +767,29 @@ public static CooCTensor fromDense(CTensor src) { CNumber value; 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{ @@ -343,8 +344,8 @@ public CooVector toRealSafe() { */ public CooCTensor toTensor() { return new CooCTensor( - this.shape.copy(), - ArrayUtils.copyOf(entries), + this.shape, + Arrays.copyOf(entries, entries.length), RealDenseTranspose.blockedIntMatrix(new int[][]{this.indices.clone()}) ); } @@ -374,8 +375,8 @@ public CooCVector set(double value, int... indices) { @Override public CooCVector reshape(Shape shape) { ParameterChecks.assertRank(1, shape); - ParameterChecks.assertEquals(size, shape.get(0)); - return new CooCVector(this); + ParameterChecks.assertBroadcastable(this.shape, shape); + return copy(); } @@ -402,7 +403,7 @@ public CooCVector reshape(int... shape) { */ @Override public CooCVector flatten() { - return new CooCVector(this); + return copy(); } @@ -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 { @@ -99,8 +99,8 @@ public CooMatrix(int size) { super(new Shape(size, size), 0, new double[0], new int[0][0]); rowIndices = new int[0]; colIndices = new int[0]; - numRows = shape.dims[0]; - numCols = shape.dims[1]; + numRows = shape.get(0); + numCols = shape.get(1); } @@ -113,8 +113,8 @@ public CooMatrix(int rows, int cols) { super(new Shape(rows, cols), 0, new double[0], new int[0][0]); rowIndices = new int[0]; colIndices = new int[0]; - numRows = shape.dims[0]; - numCols = shape.dims[1]; + numRows = shape.get(0); + numCols = shape.get(1); } @@ -126,8 +126,8 @@ public CooMatrix(Shape shape) { super(shape, 0, new double[0], new int[0][0]); rowIndices = new int[0]; colIndices = new int[0]; - numRows = shape.dims[0]; - numCols = shape.dims[1]; + numRows = shape.get(0); + numCols = shape.get(1); } @@ -148,8 +148,8 @@ public CooMatrix(int size, double[] nonZeroEntries, int[] rowIndices, int[] colI ParameterChecks.assertEquals(nonZeroEntries.length, rowIndices.length, colIndices.length); this.rowIndices = rowIndices; this.colIndices = colIndices; - numRows = shape.dims[0]; - numCols = shape.dims[1]; + numRows = shape.get(0); + numCols = shape.get(1); } @@ -170,8 +170,8 @@ public CooMatrix(int rows, int cols, double[] nonZeroEntries, int[] rowIndices, ParameterChecks.assertEquals(nonZeroEntries.length, rowIndices.length, colIndices.length); this.rowIndices = rowIndices; this.colIndices = colIndices; - numRows = shape.dims[0]; - numCols = shape.dims[1]; + numRows = shape.get(0); + numCols = shape.get(1); } @@ -191,8 +191,8 @@ public CooMatrix(Shape shape, double[] nonZeroEntries, int[] rowIndices, int[] c ParameterChecks.assertEquals(nonZeroEntries.length, rowIndices.length, colIndices.length); this.rowIndices = rowIndices; this.colIndices = colIndices; - numRows = shape.dims[0]; - numCols = shape.dims[1]; + numRows = shape.get(0); + numCols = shape.get(1); } @@ -212,8 +212,8 @@ public CooMatrix(int size, int[] nonZeroEntries, int[] rowIndices, int[] colIndi ParameterChecks.assertEquals(nonZeroEntries.length, rowIndices.length, colIndices.length); this.rowIndices = rowIndices; this.colIndices = colIndices; - numRows = shape.dims[0]; - numCols = shape.dims[1]; + numRows = shape.get(0); + numCols = shape.get(1); } @@ -234,8 +234,8 @@ public CooMatrix(int rows, int cols, int[] nonZeroEntries, int[] rowIndices, int ParameterChecks.assertEquals(nonZeroEntries.length, rowIndices.length, colIndices.length); this.rowIndices = rowIndices; this.colIndices = colIndices; - numRows = shape.dims[0]; - numCols = shape.dims[1]; + numRows = shape.get(0); + numCols = shape.get(1); } @@ -257,8 +257,8 @@ public CooMatrix(Shape shape, int[] nonZeroEntries, int[] rowIndices, int[] colI ParameterChecks.assertEquals(nonZeroEntries.length, rowIndices.length, colIndices.length); this.rowIndices = rowIndices; this.colIndices = colIndices; - numRows = shape.dims[0]; - numCols = shape.dims[1]; + numRows = shape.get(0); + numCols = shape.get(1); } @@ -268,7 +268,7 @@ public CooMatrix(Shape shape, int[] nonZeroEntries, int[] rowIndices, int[] colI * @param A Sparse Matrix to copy. */ public CooMatrix(CooMatrix A) { - super(A.shape.copy(), + super(A.shape, A.nonZeroEntries(), A.entries.clone(), A.rowIndices.clone(), @@ -276,8 +276,8 @@ public CooMatrix(CooMatrix A) { ); this.rowIndices = indices[0]; this.colIndices = indices[1]; - numRows = shape.dims[0]; - numCols = shape.dims[1]; + numRows = shape.get(0); + numCols = shape.get(1); } @@ -299,8 +299,8 @@ public CooMatrix(Shape shape, List 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()); } @@ -659,14 +659,14 @@ public Matrix toDense() { int row; int col; - for(int i=0; i -// implements TensorExclusiveMixin + implements TensorExclusiveMixin { @@ -75,18 +85,33 @@ public CooTensor(Shape shape, double[] nonZeroEntries, int[][] indices) { * @param indices Indices of the non-zero entries of the tensor. */ public CooTensor(Shape shape, int[] nonZeroEntries, int[][] indices) { - super(shape, nonZeroEntries.length, Arrays.stream(nonZeroEntries).asDoubleStream().toArray(), indices); + super(shape, nonZeroEntries.length, ArrayUtils.asDouble(nonZeroEntries, null), indices); this.shape.makeStridesIfNull(); } + /** + * Creates a sparse tensor with specified shape and non-zero values/indices. + * @param shape Shape of the tensor. + * @param nonZeroEntries Non-zero entries of the tensor. + * @param indices Indices of the non-zero entries of the tensor. + */ + public CooTensor(Shape shape, List 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. * @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; 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. + * + * @see #tensorInv() + */ + @Override + public Tensor tensorInv(int numIndices) { + return TensorInvert.inv(toDense(), numIndices); } @@ -551,6 +749,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. * @@ -560,10 +772,10 @@ public boolean allClose(CooTensor tensor, double relTol, double absTol) { public Tensor toDense() { double[] entries = new double[totalEntries().intValueExact()]; - for(int i=0; i - implements MatrixMixin, + implements MatrixMixin, ComplexMatrixMixin { /** @@ -92,10 +92,6 @@ public class CsrCMatrix * The number of columns in this matrix. */ public final int numCols; - /** - * The number of non-zero entries stored in this sparse matrix. - */ - public final int nnz; /** @@ -103,13 +99,12 @@ public class CsrCMatrix * @param shape Shape of the CSR matrix. */ public CsrCMatrix(Shape shape) { - super(shape, 0, new CNumber[0], new int[shape.dims[0]+1], new int[0]); + super(shape, 0, new CNumber[0], new int[shape.get(0)+1], new int[0]); - numRows = shape.dims[0]; - numCols = shape.dims[1]; + numRows = shape.get(0); + numCols = shape.get(1); this.rowPointers = indices[0]; this.colIndices = indices[1]; - nnz = entries.length; } @@ -121,11 +116,10 @@ public CsrCMatrix(Shape shape) { public CsrCMatrix(int numRows, int numCols) { super(new Shape(numRows, numCols), 0, new CNumber[0], new int[numRows+1], new int[0]); - this.numRows = shape.dims[0]; - this.numCols = shape.dims[1]; + this.numRows = shape.get(0); + this.numCols = shape.get(1); this.rowPointers = indices[0]; this.colIndices = indices[1]; - nnz = entries.length; } @@ -141,9 +135,8 @@ public CsrCMatrix(Shape shape, CNumber[] entries, int[] rowPointers, int[] colIn this.rowPointers = rowPointers; this.colIndices = colIndices; - numRows = shape.dims[0]; - numCols = shape.dims[1]; - nnz = entries.length; + numRows = shape.get(0); + numCols = shape.get(1); } @@ -160,9 +153,8 @@ public CsrCMatrix(int numRows, int numCols, CNumber[] entries, int[] rowPointers this.rowPointers = rowPointers; this.colIndices = colIndices; - this.numRows = shape.dims[0]; - this.numCols = shape.dims[1]; - nnz = entries.length; + this.numRows = shape.get(0); + this.numCols = shape.get(1); } @@ -180,9 +172,8 @@ public CsrCMatrix(Shape shape, double[] entries, int[] rowPointers, int[] colInd this.rowPointers = rowPointers; this.colIndices = colIndices; - numRows = shape.dims[0]; - numCols = shape.dims[1]; - nnz = entries.length; + numRows = shape.get(0); + numCols = shape.get(1); } @@ -191,14 +182,13 @@ public CsrCMatrix(Shape shape, double[] entries, int[] rowPointers, int[] colInd * @param src Matrix to create copy of. */ public CsrCMatrix(CsrCMatrix src) { - super(src.shape.copy(), 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]; this.colIndices = indices[1]; - this.numRows = shape.dims[0]; - this.numCols = shape.dims[1]; - nnz = entries.length; + this.numRows = shape.get(0); + this.numCols = shape.get(1); } @@ -207,7 +197,7 @@ public CsrCMatrix(CsrCMatrix src) { * @param src COO matrix to convert. Indices must be sorted lexicographically. */ public CsrCMatrix(CooCMatrix src) { - super(src.shape.copy(), + super(src.shape, src.entries.length, new CNumber[src.entries.length], new int[src.numRows + 1], @@ -216,11 +206,10 @@ public CsrCMatrix(CooCMatrix src) { rowPointers = this.indices[0]; colIndices = this.indices[1]; - this.numRows = shape.dims[0]; - this.numCols = shape.dims[1]; - nnz = entries.length; + 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; } @@ -965,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()); } @@ -1207,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); } } @@ -1846,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); } } @@ -1925,17 +1973,17 @@ 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 { @@ -95,10 +95,6 @@ public class CsrMatrix * The number of columns in this matrix. */ public final int numCols; - /** - * The number of non-zero entries stored in this sparse matrix. - */ - public final int nnz; /** @@ -106,13 +102,12 @@ public class CsrMatrix * @param shape Shape of the CSR matrix. */ public CsrMatrix(Shape shape) { - super(shape, 0, new double[0], new int[shape.dims[0]+1], new int[0]); + super(shape, 0, new double[0], new int[shape.get(0)+1], new int[0]); - numRows = shape.dims[0]; - numCols = shape.dims[1]; + numRows = shape.get(0); + numCols = shape.get(1); this.rowPointers = indices[0]; this.colIndices = indices[1]; - nnz = entries.length; } @@ -124,11 +119,10 @@ public CsrMatrix(Shape shape) { public CsrMatrix(int numRows, int numCols) { super(new Shape(numRows, numCols), 0, new double[0], new int[numRows+1], new int[0]); - this.numRows = shape.dims[0]; - this.numCols = shape.dims[1]; + this.numRows = shape.get(0); + this.numCols = shape.get(1); this.rowPointers = indices[0]; this.colIndices = indices[1]; - nnz = entries.length; } @@ -144,9 +138,8 @@ public CsrMatrix(Shape shape, double[] entries, int[] rowPointers, int[] colIndi this.rowPointers = rowPointers; this.colIndices = colIndices; - numRows = shape.dims[0]; - numCols = shape.dims[1]; - nnz = entries.length; + numRows = shape.get(0); + numCols = shape.get(1); } @@ -163,9 +156,8 @@ public CsrMatrix(int numRows, int numCols, double[] entries, int[] rowPointers, this.rowPointers = rowPointers; this.colIndices = colIndices; - this.numRows = shape.dims[0]; - this.numCols = shape.dims[1]; - nnz = entries.length; + this.numRows = shape.get(0); + this.numCols = shape.get(1); } @@ -174,14 +166,13 @@ public CsrMatrix(int numRows, int numCols, double[] entries, int[] rowPointers, * @param src Matrix to create copy of. */ public CsrMatrix(CsrMatrix src) { - super(src.shape.copy(), src.entries.length, src.entries.clone(), + super(src.shape, src.entries.length, src.entries.clone(), src.rowPointers.clone(), src.colIndices.clone()); this.rowPointers = indices[0]; this.colIndices = indices[1]; - this.numRows = shape.dims[0]; - this.numCols = shape.dims[1]; - nnz = entries.length; + this.numRows = shape.get(0); + this.numCols = shape.get(1); } @@ -190,7 +181,7 @@ public CsrMatrix(CsrMatrix src) { * @param src COO matrix to convert. Indices must be sorted lexicographically. */ public CsrMatrix(CooMatrix src) { - super(src.shape.copy(), + super(src.shape, src.entries.length, src.entries.clone(), new int[src.numRows + 1], @@ -199,9 +190,8 @@ public CsrMatrix(CooMatrix src) { rowPointers = this.indices[0]; colIndices = this.indices[1]; - this.numRows = shape.dims[0]; - this.numCols = shape.dims[1]; - nnz = entries.length; + this.numRows = shape.get(0); + this.numCols = shape.get(1); // Copy the non-zero entries anc column indices. Count number of entries per row. for(int i=0; iA 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; /** @@ -140,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. @@ -160,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); - } /** @@ -203,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; } @@ -223,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; } @@ -325,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); } @@ -335,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); } @@ -386,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); } @@ -396,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); } @@ -439,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); } @@ -478,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; @@ -502,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); } @@ -593,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); } @@ -611,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); } @@ -905,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; } @@ -1312,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; } } @@ -1628,7 +1486,6 @@ public boolean isInfinite() { } - /** * Gets the real component of this complex number. * @return The real component of this complex number. @@ -1657,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. @@ -1811,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/concurrency/Configurations.java b/src/main/java/org/flag4j/concurrency/Configurations.java index 38a3a3d53..ea14fc6a3 100644 --- a/src/main/java/org/flag4j/concurrency/Configurations.java +++ b/src/main/java/org/flag4j/concurrency/Configurations.java @@ -29,7 +29,7 @@ /** * Configurations for standard and concurrent operations. */ -public abstract class Configurations { +public final class Configurations { private Configurations() { throw new IllegalStateException(ErrorMessages.getUtilityClassErrMsg()); } @@ -41,29 +41,24 @@ private Configurations() { /** * The default block size for blocked algorithms. */ - private static final int DEFAULT_BLOCK_SIZE = 64; + public static final int DEFAULT_BLOCK_SIZE = 64; /** * The default minimum recursive size for recursive algorithms. */ - private static final int DEFAULT_MIN_RECURSIVE_SIZE = 128; - + public static final int DEFAULT_MIN_RECURSIVE_SIZE = 128; /** * The block size to use in blocked algorithms. */ private static int blockSize = DEFAULT_BLOCK_SIZE; - /** - * The minimum size of tensor/matrix/vector to make recursive calls on in recursive algorithms. - */ - private static int minRecursiveSize = DEFAULT_MIN_RECURSIVE_SIZE; - /** * 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 = {@link Runtime#availableProcessors() Runtime.getRuntime().availableProcessors()}; + * @implNote This is implemented as: + * numThreads = {@link Runtime#availableProcessors() Runtime.getRuntime().availableProcessors()}; * @return The new value of numThreads, i.e. the number of available processors. */ public static int setNumThreadsAsAvailableProcessors() { @@ -108,30 +103,11 @@ public static void setBlockSize(int blockSize) { } - /** - * Gets the minimum size of tensor/matrix/vector to make recursive calls on in recursive algorithms. - * @return minimum size of tensor/matrix/vector to make recursive calls on in recursive algorithms. - */ - public static int getMinRecursiveSize() { - return minRecursiveSize; - } - - - /** - * Sets the minimum size of tensor/matrix/vector to make recursive calls on in recursive algorithms. - * @param minRecursiveSize New minimum size. - */ - public static void setMinRecursiveSize(int minRecursiveSize) { - Configurations.minRecursiveSize = Math.max(1, minRecursiveSize); - } - - /** * Resets all configurations to their default values. */ public static void resetAll() { ThreadManager.setParallelismLevel(DEFAULT_NUM_THREADS); blockSize = DEFAULT_BLOCK_SIZE; - minRecursiveSize = DEFAULT_MIN_RECURSIVE_SIZE; } } diff --git a/src/main/java/org/flag4j/concurrency/TensorOperation.java b/src/main/java/org/flag4j/concurrency/TensorOperation.java new file mode 100644 index 000000000..bed5f6e44 --- /dev/null +++ b/src/main/java/org/flag4j/concurrency/TensorOperation.java @@ -0,0 +1,40 @@ +/* + * 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.concurrency; + + +/** + * Functional interface for general tensor operation. + */ +@FunctionalInterface +public interface TensorOperation { + + /** + * Applies a tensor operation over the specified index range. + * @param startIdx Staring index for operation. + * @param endIdx Ending index for operation. + */ + void apply(int startIdx, int endIdx); +} diff --git a/src/main/java/org/flag4j/concurrency/ThreadManager.java b/src/main/java/org/flag4j/concurrency/ThreadManager.java index 5d7a038a6..e9bdea4ed 100644 --- a/src/main/java/org/flag4j/concurrency/ThreadManager.java +++ b/src/main/java/org/flag4j/concurrency/ThreadManager.java @@ -26,20 +26,16 @@ import org.flag4j.util.ErrorMessages; -import java.util.concurrent.ExecutionException; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.ThreadFactory; -import java.util.function.IntConsumer; -import java.util.logging.Level; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.*; import java.util.logging.Logger; -import java.util.stream.IntStream; /** * This class contains the base thread pool for all concurrent operations and several methods for managing the * pool. */ -public class ThreadManager { +public final class ThreadManager { private ThreadManager() { // Hide default constructor for utility class. throw new IllegalStateException(ErrorMessages.getUtilityClassErrMsg()); @@ -68,7 +64,7 @@ private ThreadManager() { /** * Thread pool for managing threads executing concurrent operations. */ - protected static ExecutorService threadPool = Executors.newFixedThreadPool(parallelismLevel, daemonFactory); + private static ThreadPoolExecutor threadPool = (ThreadPoolExecutor) Executors.newFixedThreadPool(parallelismLevel, daemonFactory); /** @@ -78,7 +74,7 @@ private ThreadManager() { */ protected static void setParallelismLevel(int parallelismLevel) { ThreadManager.parallelismLevel = Math.max(parallelismLevel, 1); - threadPool = Executors.newFixedThreadPool(parallelismLevel, daemonFactory); + threadPool.setCorePoolSize(parallelismLevel); } @@ -92,44 +88,70 @@ public static int getParallelismLevel() { /** - * Applies a concurrent loop to a function. - * @param startIndex Starting index for concurrent loop (inclusive). - * @param endIndex Ending index for concurrent loop (exclusive). - * @param function Function to apply each iteration. Function may be dependent on iteration index but should - * individual iterations should be independent of each other. + * Computes a specified tensor operation concurrently by evenly dividing work amoung available threads (specified by + * {@link Configurations#getNumThreads()}). + * @param totalSize Total size of the outer loop for the operation. + * @param operation Operation to be computed. */ - public static void concurrentLoop(int startIndex, int endIndex, IntConsumer function) { - try { - threadPool.submit(() -> IntStream.range(startIndex, endIndex).parallel().forEach(function)).get(); - } catch (InterruptedException | ExecutionException e) { - threadLogger.setLevel(Level.WARNING); - threadLogger.warning(e.getMessage()); - Thread.currentThread().interrupt(); + public static void concurrentOperation(final int totalSize, final TensorOperation operation) { + // Calculate chunk size. + int chunkSize = (totalSize + parallelismLevel - 1) / parallelismLevel; + List> futures = new ArrayList<>(parallelismLevel); + + for(int threadIndex = 0; threadIndex < parallelismLevel; threadIndex++) { + final int startIdx = threadIndex * chunkSize; + final int endIdx = Math.min(startIdx + chunkSize, totalSize); + + if(startIdx >= endIdx) break; // No more indices to process. + + futures.add(ThreadManager.threadPool.submit(() -> { + operation.apply(startIdx, endIdx); + })); + } + + // Wait for all tasks to complete. + for(Future future : futures) { + try { + future.get(); // Ensure all tasks are complete. + } catch (InterruptedException | ExecutionException e) { + // An exception occured. + threadLogger.warning(e.getMessage()); + Thread.currentThread().interrupt(); + } } } /** - * Applies a concurrent strided-loop to a function. - * @param startIndex Starting index for concurrent loop (inclusive). - * @param endIndex Ending index for concurrent loop (exclusive). - * @param step Step size for the index variable of the loop (i.e. the stride size). - * @param function Function to apply each iteration. Function may be dependent on iteration index but should - * individual iterations should be independent of each other. + * Computes a specified blocked tensor operation concurrently by evenly dividing work amoung available threads (specified by + * {@link Configurations#getNumThreads()}). + * @param totalSize Total size of the outer loop for the operation. + * @param blockSize Size of the block used in the blocekdOperation. + * @param blockedOperation Operation to be computed. */ - public static void concurrentLoop(int startIndex, int endIndex, int step, IntConsumer function) { - if(step <= 0) - throw new IllegalArgumentException(ErrorMessages.getNegValueErr(startIndex)); - try { - int range = endIndex - startIndex; - int iterations = range/step + ((range%step == 0) ? 0 : 1); - threadPool.submit(() -> IntStream.range(0, iterations).parallel().forEach( - i -> function.accept(startIndex + i*step)) - ).get(); - } catch (InterruptedException | ExecutionException e) { - threadLogger.setLevel(Level.WARNING); - threadLogger.warning(e.getMessage()); - Thread.currentThread().interrupt(); + public static void concurrentBlockedOperation(final int totalSize, final int blockSize, final TensorOperation blockedOperation) { + // Calculate chunk size for blocks. + int numBlocks = (totalSize + blockSize - 1) / blockSize; + List> futures = new ArrayList<>(parallelismLevel); + + for(int blockIndex = 0; blockIndex < numBlocks; blockIndex++) { + final int startBlock = blockIndex * blockSize; + final int endBlock = Math.min(startBlock + blockSize, totalSize); + + futures.add(threadPool.submit(() -> { + blockedOperation.apply(startBlock, endBlock); + })); + } + + // Wait for all tasks to complete. + for(Future future : futures) { + try { + future.get(); // Ensure all tasks are complete. + } catch (InterruptedException | ExecutionException e) { + // An exception occured. + threadLogger.warning(e.getMessage()); + Thread.currentThread().interrupt(); + } } } } 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/Shape.java b/src/main/java/org/flag4j/core/Shape.java index 33c9c56af..ceb3d3d21 100644 --- a/src/main/java/org/flag4j/core/Shape.java +++ b/src/main/java/org/flag4j/core/Shape.java @@ -24,25 +24,30 @@ package org.flag4j.core; -import org.flag4j.util.ErrorMessages; +import org.flag4j.util.ArrayUtils; import org.flag4j.util.ParameterChecks; import java.io.Serializable; import java.math.BigInteger; import java.util.Arrays; +import java.util.StringJoiner; /** - * 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. */ public class Shape implements Serializable { /** * An array containing the size of each dimension of this shape. */ - public int[] dims; + private final int[] dims; /** * An array containing the strides of all dimensions within this shape. */ - public int[] strides; + private int[] strides; + /** + * Total entries of this shape. This is only computed on demand by {@link #totalEntries()} + */ + private BigInteger totalEntries = null; /** @@ -71,30 +76,6 @@ public Shape(boolean computeStrides, int... dims) { } - /** - * Copy constructor which creates a copy of the specified shape. - * @param shape Shape to copy. - */ - public Shape(Shape shape) { - this.dims = shape.dims.clone(); - if(shape.strides!=null) this.strides = shape.strides.clone(); - } - - - /** - * Copy constructor which creates a copy of the specified shape. - * @param shape Shape to copy. - */ - public Shape(boolean computeStrides, Shape shape) { - this.dims = shape.dims.clone(); - - if(computeStrides) { - if(shape.strides!=null) this.strides = shape.strides.clone(); - else createNewStrides(); - } - } - - /** * Gets the rank of a tensor with this shape. * @return The rank for a tensor with this shape. @@ -109,7 +90,7 @@ public int getRank() { * @return Shape of a tensor as an integer array. */ public int[] getDims() { - return this.dims; + return this.dims.clone(); } @@ -118,7 +99,7 @@ public int[] getDims() { * @return Shape of a tensor as an integer array. */ public int[] getStrides() { - return this.strides; + return this.strides.clone(); } @@ -134,7 +115,7 @@ public int get(int i) { /** * 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. * @return The strides for all dimensions of a newly constructed tensor with this shape. */ public int[] createNewStrides() { @@ -169,28 +150,22 @@ public void makeStridesIfNull() { * @throws IndexOutOfBoundsException If any index does not fit within a tensor with this shape. */ public int entriesIndex(int... indices) { - if(indices.length != dims.length) { - throw new IllegalArgumentException(ErrorMessages.getIndicesRankErr(indices.length, dims.length)); - } - if(indices.length>0 && 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; } @@ -218,17 +193,17 @@ public int[] getIndices(int index) { * Swaps two axes of this shape. New strides are constructed for this shape. * @param axis1 First axis to swap. * @param axis2 Second axis to swap. - * @return Returns this shape. + * @return A copy of this shape with the specified axis swapped. * @throws ArrayIndexOutOfBoundsException If either axis is not within [0, {@link #getRank() rank}-1]. */ public Shape swapAxes(int axis1, int axis2) { - int temp = dims[axis1]; - dims[axis1] = dims[axis2]; - dims[axis2] = temp; + int[] newDims = dims.clone(); + ArrayUtils.swap(newDims, axis1, axis2); + Shape newShape = new Shape(newDims); - if(strides!=null) this.strides = this.createNewStrides(); + if(strides!=null) newShape.strides = newShape.createNewStrides(); - return this; + return newShape; } @@ -244,17 +219,15 @@ public Shape swapAxes(int... axes) { ParameterChecks.assertPermutation(axes); int[] tempDims = new int[dims.length]; - int i=0; - // Permute axes. - for(int axis : axes) { + int i=0; + for(int axis : axes) // Permute axes. tempDims[i++] = dims[axis]; - } - this.dims = tempDims; - if(strides!=null) this.strides = this.createNewStrides(); + Shape newShape = new Shape(tempDims); + if(strides!=null) newShape.strides = newShape.createNewStrides(); - return this; + return newShape; } @@ -263,6 +236,9 @@ public Shape swapAxes(int... axes) { * @return The total number of entries for a tensor with this shape. */ public BigInteger totalEntries() { + // Check if totalEntries has already been computed for this shape. + if(totalEntries!=null) return totalEntries; + BigInteger product; if(dims.length>0) { @@ -275,16 +251,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 +264,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,13 +303,11 @@ 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("x"); - } - result.deleteCharAt(result.length()-1); // Remove excess 'x' character. + for(int d : dims) + joiner.add(Integer.toString(d)); - return result.toString(); + return joiner.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, TensorBaseGets 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 581995238..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; @@ -138,7 +137,7 @@ public boolean isOnes() { */ @Override public int hashCode() { - return Arrays.hashCode(entries)+Arrays.hashCode(shape.dims); + return Arrays.hashCode(entries)+Arrays.hashCode(shape.getDims()); } @@ -216,7 +215,7 @@ public CNumber get(int... indices) { */ @Override public Y toReal() { - return makeRealTensor(this.shape.copy(), ComplexOperations.toReal(this.entries)); + return makeRealTensor(this.shape, ComplexOperations.toReal(this.entries)); } @@ -246,7 +245,7 @@ public Y toRealSafe() { */ @Override public T copy() { - return makeTensor(this.shape.copy(), ArrayUtils.copyOf(entries)); + return makeTensor(this.shape, Arrays.copyOf(entries, entries.length)); } @@ -281,7 +280,7 @@ public CNumber sum() { */ @Override public T sqrt() { - return makeTensor(this.shape.copy(), ComplexOperations.sqrt(this.entries)); + return makeTensor(this.shape, ComplexOperations.sqrt(this.entries)); } @@ -293,7 +292,7 @@ public T sqrt() { */ @Override public Y abs() { - return makeRealTensor(this.shape.copy(), ComplexOperations.abs(this.entries)); + return makeRealTensor(this.shape, ComplexOperations.abs(this.entries)); } @@ -304,7 +303,7 @@ public Y abs() { */ @Override public T conj() { - return makeTensor(this.shape.copy(), ComplexOperations.conj(this.entries)); + return makeTensor(this.shape, ComplexOperations.conj(this.entries)); } @@ -318,7 +317,7 @@ public T conj() { @Override public T add(T B) { return makeTensor( - this.shape.copy(), + this.shape, ComplexDenseOperations.add(this.entries, this.shape, B.entries, B.shape) ); } @@ -332,7 +331,7 @@ public T add(T B) { */ @Override public T add(double a) { - return makeTensor(this.shape.copy(), RealComplexDenseOperations.add(this.entries, a)); + return makeTensor(this.shape, RealComplexDenseOperations.add(this.entries, a)); } @@ -344,7 +343,7 @@ public T add(double a) { */ @Override public T add(CNumber a) { - return makeTensor(this.shape.copy(), ComplexDenseOperations.add(this.entries, a)); + return makeTensor(this.shape, ComplexDenseOperations.add(this.entries, a)); } @@ -358,7 +357,7 @@ public T add(CNumber a) { @Override public T sub(T B) { return makeTensor( - this.shape.copy(), + this.shape, ComplexDenseOperations.sub(this.entries, this.shape, B.entries, B.shape) ); } @@ -372,7 +371,7 @@ public T sub(T B) { */ @Override public T sub(double a) { - return makeTensor(this.shape.copy(), + return makeTensor(this.shape, RealComplexDenseOperations.sub(this.entries, a) ); } @@ -386,7 +385,7 @@ public T sub(double a) { */ @Override public T sub(CNumber a) { - return makeTensor(this.shape.copy(), + return makeTensor(this.shape, ComplexDenseOperations.sub(this.entries, a) ); } @@ -400,7 +399,7 @@ public T sub(CNumber a) { */ @Override public T mult(double factor) { - return makeTensor(this.shape.copy(), + return makeTensor(this.shape, ComplexOperations.scalMult(this.entries, factor) ); } @@ -414,7 +413,7 @@ public T mult(double factor) { */ @Override public T mult(CNumber factor) { - return makeTensor(this.shape.copy(), + return makeTensor(this.shape, ComplexOperations.scalMult(this.entries, factor) ); } @@ -429,7 +428,7 @@ public T mult(CNumber factor) { */ @Override public T div(double divisor) { - return makeTensor(this.shape.copy(), + return makeTensor(this.shape, RealComplexDenseOperations.scalDiv(this.entries, divisor) ); } @@ -444,7 +443,7 @@ public T div(double divisor) { */ @Override public T div(CNumber divisor) { - return makeTensor(this.shape.copy(), + return makeTensor(this.shape, ComplexDenseOperations.scalDiv(this.entries, divisor) ); } @@ -460,7 +459,7 @@ public T div(CNumber divisor) { @Override public T elemMult(T B) { return makeTensor( - shape.copy(), + shape, ComplexDenseElemMult.dispatch(entries, shape, B.entries, B.shape) ); } @@ -476,7 +475,7 @@ public T elemMult(T B) { @Override public T elemDiv(T B) { return makeTensor( - shape.copy(), + shape, ComplexDenseElemDiv.dispatch(entries, shape, B.entries, B.shape) ); } @@ -581,13 +580,13 @@ public T reshape(Shape shape) { @Override public T round() { - return makeTensor(this.shape.copy(), ComplexOperations.round(this.entries)); + return makeTensor(this.shape, ComplexOperations.round(this.entries)); } @Override public T round(int precision) { - return makeTensor(this.shape.copy(), ComplexOperations.round(this.entries, precision)); + return makeTensor(this.shape, ComplexOperations.round(this.entries, precision)); } diff --git a/src/main/java/org/flag4j/core/dense_base/RealDenseTensorBase.java b/src/main/java/org/flag4j/core/dense_base/RealDenseTensorBase.java index 4444c8179..33ac46299 100644 --- a/src/main/java/org/flag4j/core/dense_base/RealDenseTensorBase.java +++ b/src/main/java/org/flag4j/core/dense_base/RealDenseTensorBase.java @@ -162,61 +162,61 @@ public boolean isOnes() { @Override public T abs() { - return makeTensor(shape.copy(), RealOperations.abs(entries)); + return makeTensor(shape, RealOperations.abs(entries)); } @Override public T sqrt() { - return makeTensor(shape.copy(), RealOperations.sqrt(entries)); + return makeTensor(shape, RealOperations.sqrt(entries)); } @Override public T add(T B) { - return makeTensor(shape.copy(), RealDenseOperations.add(entries, shape, B.entries, B.shape)); + return makeTensor(shape, RealDenseOperations.add(entries, shape, B.entries, B.shape)); } @Override public T sub(T B) { - return makeTensor(shape.copy(), RealDenseOperations.sub(entries, shape, B.entries, B.shape)); + return makeTensor(shape, RealDenseOperations.sub(entries, shape, B.entries, B.shape)); } @Override public T add(double b) { - return makeTensor(shape.copy(), RealDenseOperations.add(entries, b)); + return makeTensor(shape, RealDenseOperations.add(entries, b)); } @Override public T sub(double b) { - return makeTensor(shape.copy(), RealDenseOperations.sub(entries, b)); + return makeTensor(shape, RealDenseOperations.sub(entries, b)); } @Override public T mult(double b) { - return makeTensor(shape.copy(), RealOperations.scalMult(entries, b)); + return makeTensor(shape, RealOperations.scalMult(entries, b)); } @Override public T div(double b) { - return makeTensor(shape.copy(), RealDenseOperations.scalDiv(entries, b)); + return makeTensor(shape, RealDenseOperations.scalDiv(entries, b)); } @Override public T elemMult(T B) { - return makeTensor(shape.copy(), RealDenseElemMult.dispatch(entries, shape, B.entries, B.shape)); + return makeTensor(shape, RealDenseElemMult.dispatch(entries, shape, B.entries, B.shape)); } @Override public T elemDiv(T B) { - return makeTensor(shape.copy(), RealDenseElemDiv.dispatch(entries, shape, B.entries, B.shape)); + return makeTensor(shape, RealDenseElemDiv.dispatch(entries, shape, B.entries, B.shape)); } @@ -283,7 +283,7 @@ public T set(double value, int... indices) { @Override public T reshape(Shape shape) { ParameterChecks.assertBroadcastable(this.shape, shape); - return makeTensor(shape.copy(), this.entries.clone()); + return makeTensor(shape, this.entries.clone()); } @@ -310,7 +310,7 @@ public T reshape(int... shape) { @Override public T recip() { return makeTensor( - shape.copy(), + shape, RealDenseOperations.recip(entries) ); } @@ -337,7 +337,7 @@ public Double get(int... indices) { */ @Override public T copy() { - return makeTensor(shape.copy(), entries.clone()); + return makeTensor(shape, entries.clone()); } @@ -349,7 +349,7 @@ public T copy() { */ @Override public W toComplex() { - return makeComplexTensor(shape.copy(), entries); + return makeComplexTensor(shape, entries); } @@ -362,7 +362,7 @@ public W toComplex() { @Override public W add(CNumber a) { return makeComplexTensor( - shape.copy(), + shape, ComplexDenseOperations.add(entries, a) ); } @@ -377,7 +377,7 @@ public W add(CNumber a) { @Override public W sub(CNumber a) { return makeComplexTensor( - shape.copy(), + shape, ComplexDenseOperations.sub(entries, a) ); } @@ -392,7 +392,7 @@ public W sub(CNumber a) { @Override public W mult(CNumber factor) { return makeComplexTensor( - shape.copy(), + shape, ComplexOperations.scalMult(entries, factor) ); } @@ -408,7 +408,7 @@ public W mult(CNumber factor) { @Override public W div(CNumber divisor) { return makeComplexTensor( - shape.copy(), + shape, RealComplexDenseOperations.scalDiv(entries, divisor) ); } @@ -421,19 +421,19 @@ public W div(CNumber divisor) { */ @Override public int hashCode() { - return Arrays.hashCode(entries)+Arrays.hashCode(shape.dims); + return Arrays.hashCode(entries)+Arrays.hashCode(shape.getDims()); } @Override public T round() { - return makeTensor(this.shape.copy(), RealOperations.round(this.entries)); + return makeTensor(this.shape, RealOperations.round(this.entries)); } @Override public T round(int precision) { - return makeTensor(this.shape.copy(), RealOperations.round(this.entries, precision)); + return makeTensor(this.shape, RealOperations.round(this.entries, precision)); } 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 14a7f9e21..01918dd1c 100644 --- a/src/main/java/org/flag4j/core/sparse_base/ComplexSparseTensorBase.java +++ b/src/main/java/org/flag4j/core/sparse_base/ComplexSparseTensorBase.java @@ -192,49 +192,49 @@ public CNumber sum() { @Override public T mult(double a) { - return makeTensor(shape.copy(), ComplexOperations.scalMult(entries, a), copyIndices()); + return makeTensor(shape, ComplexOperations.scalMult(entries, a), copyIndices()); } @Override public T mult(CNumber a) { - return makeTensor(shape.copy(), ComplexOperations.scalMult(entries, a), copyIndices()); + return makeTensor(shape, ComplexOperations.scalMult(entries, a), copyIndices()); } @Override public T div(double divisor) { - return makeTensor(shape.copy(), ComplexOperations.scalMult(entries, divisor), copyIndices()); + return makeTensor(shape, ComplexOperations.scalMult(entries, divisor), copyIndices()); } @Override public T div(CNumber divisor) { - return makeTensor(shape.copy(), ComplexOperations.scalMult(entries, divisor), copyIndices()); + return makeTensor(shape, ComplexOperations.scalMult(entries, divisor), copyIndices()); } @Override public T sqrt() { - return makeTensor(shape.copy(), ComplexOperations.sqrt(entries), copyIndices()); + return makeTensor(shape, ComplexOperations.sqrt(entries), copyIndices()); } @Override public Y abs() { - return makeRealTensor(shape.copy(), ComplexOperations.abs(entries), copyIndices()); + return makeRealTensor(shape, ComplexOperations.abs(entries), copyIndices()); } @Override public T conj() { - return makeTensor(shape.copy(), ComplexOperations.conj(entries), copyIndices()); + return makeTensor(shape, ComplexOperations.conj(entries), copyIndices()); } @Override public T recip() { - return makeTensor(shape.copy(), ComplexDenseOperations.recip(entries), copyIndices()); + return makeTensor(shape, ComplexDenseOperations.recip(entries), copyIndices()); } @@ -252,13 +252,13 @@ public boolean isReal() { @Override public T round() { - return makeTensor(shape.copy(), ComplexOperations.round(this.entries), copyIndices()); + return makeTensor(shape, ComplexOperations.round(this.entries), copyIndices()); } @Override public T round(int precision) { - return makeTensor(shape.copy(), ComplexOperations.round(this.entries, precision), copyIndices()); + return makeTensor(shape, ComplexOperations.round(this.entries, precision), copyIndices()); } @@ -284,7 +284,7 @@ public int[] argMin() { */ @Override public Y toReal() { - return makeRealTensor(this.shape.copy(), ComplexOperations.toReal(this.entries), copyIndices()); + return makeRealTensor(this.shape, ComplexOperations.toReal(this.entries), copyIndices()); } @@ -307,21 +307,6 @@ public Y toRealSafe() { } - /** - * 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 newShape 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 T reshape(Shape newShape) { - ParameterChecks.assertBroadcastable(shape, newShape); - return makeTensor(newShape, ArrayUtils.copyOf(entries), copyIndices()); - } - - /** * 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. @@ -336,19 +321,10 @@ 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( - shape.copy(), + shape, ComplexOperations.roundToZero(this.entries, DEFAULT_ROUND_TO_ZERO_THRESHOLD), copyIndices() ); @@ -358,7 +334,7 @@ public T roundToZero() { @Override public T roundToZero(double threshold) { return makeTensor( - shape.copy(), + shape, ComplexOperations.roundToZero(this.entries, threshold), copyIndices() ); 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 e15c5adf9..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, @@ -218,37 +219,37 @@ public Double sum() { @Override public T mult(double factor) { - return makeTensor(shape.copy(), RealOperations.scalMult(entries, factor), copyIndices()); + return makeTensor(shape, RealOperations.scalMult(entries, factor), copyIndices()); } @Override public W mult(CNumber factor) { - return makeComplexTensor(shape.copy(), ComplexOperations.scalMult(entries, factor), copyIndices()); + return makeComplexTensor(shape, ComplexOperations.scalMult(entries, factor), copyIndices()); } @Override public T div(double divisor) { - return makeTensor(shape.copy(), RealOperations.scalMult(entries, divisor), copyIndices()); + return makeTensor(shape, RealOperations.scalMult(entries, divisor), copyIndices()); } @Override public W div(CNumber divisor) { - return makeComplexTensor(shape.copy(), ComplexOperations.scalMult(entries, divisor), copyIndices()); + return makeComplexTensor(shape, ComplexOperations.scalMult(entries, divisor), copyIndices()); } @Override public T sqrt() { - return makeTensor(shape.copy(), RealOperations.sqrt(entries), copyIndices()); + return makeTensor(shape, RealOperations.sqrt(entries), copyIndices()); } @Override public T abs() { - return makeTensor(shape.copy(), RealOperations.abs(entries), copyIndices()); + return makeTensor(shape, RealOperations.abs(entries), copyIndices()); } @@ -258,22 +259,6 @@ public T reshape(int... dims) { } - @Override - public T reshape(Shape newShape) { - ParameterChecks.assertBroadcastable(shape, newShape); - return makeTensor(newShape, entries.clone(), copyIndices()); - } - - - @Override - public T flatten() { - return makeTensor( - new Shape(shape.totalEntries().intValueExact()), - entries.clone(), copyIndices() - ); - } - - @Override public int[] argMax() { int idx = AggregateDenseReal.argMax(entries); @@ -290,26 +275,26 @@ public int[] argMin() { @Override public T recip() { - return makeTensor(shape.copy(), RealDenseOperations.recip(entries), copyIndices()); + return makeTensor(shape, RealDenseOperations.recip(entries), copyIndices()); } @Override public T round() { - return makeTensor(shape.copy(), RealOperations.round(this.entries), copyIndices()); + return makeTensor(shape, RealOperations.round(this.entries), copyIndices()); } @Override public T round(int precision) { - return makeTensor(shape.copy(), RealOperations.round(this.entries, precision), copyIndices()); + return makeTensor(shape, RealOperations.round(this.entries, precision), copyIndices()); } @Override public T roundToZero() { return makeTensor( - shape.copy(), + shape, RealOperations.roundToZero(this.entries, DEFAULT_ROUND_TO_ZERO_THRESHOLD), copyIndices() ); @@ -319,7 +304,7 @@ public T roundToZero() { @Override public T roundToZero(double threshold) { return makeTensor( - shape.copy(), + shape, RealOperations.roundToZero(this.entries, threshold), copyIndices() ); 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..1d5c1d6e5 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/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/ComplexSVD.java b/src/main/java/org/flag4j/linalg/decompositions/svd/ComplexSVD.java index 962cf3abf..a7378612f 100644 --- a/src/main/java/org/flag4j/linalg/decompositions/svd/ComplexSVD.java +++ b/src/main/java/org/flag4j/linalg/decompositions/svd/ComplexSVD.java @@ -134,8 +134,8 @@ protected void makeEigenVals(CMatrix B, double[] eigVals) { */ @Override protected void initUV(Shape src, int cols) { - U = new CMatrix(src.dims[0], cols); - V = new CMatrix(src.dims[1], cols); + U = new CMatrix(src.get(0), cols); + V = new CMatrix(src.get(1), cols); } diff --git a/src/main/java/org/flag4j/linalg/decompositions/svd/RealSVD.java b/src/main/java/org/flag4j/linalg/decompositions/svd/RealSVD.java index 6d1ffbb3c..849020d13 100644 --- a/src/main/java/org/flag4j/linalg/decompositions/svd/RealSVD.java +++ b/src/main/java/org/flag4j/linalg/decompositions/svd/RealSVD.java @@ -136,8 +136,8 @@ protected void makeEigenVals(Matrix B, double[] eigVals) { */ @Override protected void initUV(Shape src, int cols) { - U = new Matrix(src.dims[0], cols); - V = new Matrix(src.dims[1], cols); + U = new Matrix(src.get(0), cols); + V = new Matrix(src.get(1), cols); } 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 a8eae461b..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 { @@ -77,7 +77,8 @@ public T solve(T A, T B) { Shape outputShape = getOutputShape(A, B, rank); // Compute output shape. int prod = 1; - for(int k : outputShape.dims) { + int[] dims = outputShape.getDims(); + for(int k : dims) { prod *= k; } @@ -102,10 +103,10 @@ public T solve(T A, T B) { */ protected Shape getOutputShape(T A, T B, int aRankOriginal) { int start = -(aRankOriginal - B.getRank()); - int stop = A.shape.dims.length; + int stop = A.shape.getRank(); int[] dims = new int[stop-start]; - System.arraycopy(A.shape.dims, start, dims, 0, dims.length); + System.arraycopy(A.shape.getDims(), start, dims, 0, dims.length); return new Shape(true, dims); } 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 8302746a2..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. @@ -305,10 +306,10 @@ public static void leftMult2x2Rotator(CMatrix src, CMatrix G, int row, CNumber[] CNumber[] src1 = G.entries; CNumber[] src2 = src.entries; - int cols2 = src.shape.dims[1]; + 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; iproduct[i] = src1[i].div(src2[i])); + ThreadManager.concurrentOperation(product.length, (start, end)->{ + for(int i=start; iproduct[i] = src1[i].mult(src2[i]) - ); + ThreadManager.concurrentOperation(product.length, ((startIdx, endIdx) -> { + for(int i=startIdx; i * WARNING: These methods do not perform any sanity checks. */ -public class ComplexDenseMatrixMultTranspose { +public final class ComplexDenseMatrixMultTranspose { private ComplexDenseMatrixMultTranspose() { // Hide default constructor. @@ -57,12 +57,12 @@ private ComplexDenseMatrixMultTranspose() { * @return The result of multiplying the first matrix with the transpose of the second matrix. */ public static CNumber[] multTranspose(CNumber[] 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); + Arrays.fill(dest, CNumber.ZERO); int src1Index, src2Index, destIndex, src1IndexStart, destIndexStart, end; @@ -75,10 +75,13 @@ public static CNumber[] multTranspose(CNumber[] src1, Shape shape1, CNumber[] sr src1Index = src1IndexStart; src2Index = j*cols2; destIndex = destIndexStart + j; + CNumber sum = dest[destIndex]; while(src1Index { - int src1IndexStart = i*cols2; - int destIndexStart = i*rows2; - int end = src1IndexStart + cols2; - - for(int j=0; j { + for(int i=startIdx; i{ - int iBound = Math.min(ii + blockSize, rows1); + ThreadManager.concurrentBlockedOperation(rows1, blockSize, (startIdx, endIdx) -> { + for(int ii=0; ii - * WARNING: These methods do not perform any sanity checks. + *

              This class contains several low level methods for computing complex matrix-matrix multiplications. This includes transpose + * multiplications.

              + * + *

              WARNING: These methods do not perform any sanity checks.

              */ -public class ComplexDenseMatrixMultiplication { +public final class ComplexDenseMatrixMultiplication { private ComplexDenseMatrixMultiplication() { // Hide default constructor. @@ -55,9 +55,9 @@ private ComplexDenseMatrixMultiplication() { * @return The result of matrix multiplying the two matrices. */ public static CNumber[] standard(CNumber[] 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); @@ -73,11 +73,14 @@ public static CNumber[] standard(CNumber[] src1, Shape shape1, CNumber[] src2, S src1Index = src1IndexStart; destIndex = destIndexStart + j; end = src1Index + rows2; + CNumber sum = dest[destIndex]; while(src1Index { - int src1IndexStart = i*cols1; - int destIndexStart = i*cols2; + ThreadManager.concurrentOperation(rows1, (startIdx, endIdx) -> { + for(int i=startIdx; i { - int src1IndexStart = i*rows2; - int destIndexStart = i*cols2; + ThreadManager.concurrentOperation(rows1, (startIdx, endIdx) -> { + for(int i=startIdx; i { - int iBound = Math.min(ii + blockSize, rows1); + ThreadManager.concurrentBlockedOperation(rows1, blockSize, (startIdx, endIdx) -> { + for(int ii=startIdx; ii { - int iBound = Math.min(ii + blockSize, rows1); + ThreadManager.concurrentBlockedOperation(rows1, blockSize, (startIdx, endIdx) -> { + for(int ii=startIdx; ii { - int src1Index = i*cols1; - int src2Index = 0; + ThreadManager.concurrentOperation(rows1, (startIdx, endIdx) -> { + for(int i=startIdx; i { - int iBound = Math.min(ii+blockSize, rows1); + ThreadManager.concurrentBlockedOperation(rows1, blockSize, (startIdx, endIdx) -> { + for(int ii=startIdx; ii { - 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 + ThreadManager.concurrentOperation(src.length, (startIdx, endIdx) -> { + for(int i=startIdx; i { - int[] destIndices = shape.getIndices(i); - ArrayUtils.swap(destIndices, axes); // Compute destination indices. - dest[destShape.entriesIndex(destIndices)] = src[i]; // Apply transpose for the element + // Compute transpose concurrently. + ThreadManager.concurrentOperation(src.length, (startIdx, endIdx) -> { + for(int i=startIdx; i { - int srcIndex = i; - int destIndex = i*numRows; - int end = destIndex + numRows; - - while (destIndex < end) { - dest[destIndex++] = src[srcIndex].copy(); - srcIndex += numCols; + ThreadManager.concurrentOperation(numCols, (startIdx, endIdx) -> { + for(int i=startIdx; i { - for(int j=0; j { + for(int i=startIdx; i { - int[] destIndices = shape.getIndices(i); - ArrayUtils.swap(destIndices, axis1, axis2); // Compute destination indices. - dest[destShape.entriesIndex(destIndices)] = src[i].conj(); // Apply transpose for the element + ThreadManager.concurrentOperation(src.length, (startIdx, endIdx) -> { + for(int i=startIdx; i { - int[] destIndices = shape.getIndices(i); - ArrayUtils.swap(destIndices, axes); // Compute destination indices. - dest[destShape.entriesIndex(destIndices)] = src[i].conj(); // Apply conjugate transpose for the element + ThreadManager.concurrentOperation(src.length, (startIdx, endIdx) -> { + for(int i=startIdx; i { - int srcIndex = i; - int destIndex = i*numRows; - int end = destIndex + numRows; - - while (destIndex < end) { - dest[destIndex++] = src[srcIndex].conj(); - srcIndex += numCols; + ThreadManager.concurrentOperation(numCols, (startIdx, endIdx) -> { + for(int i=startIdx; i { - for(int j=0; j { + for(int i=startIdx; i product[i] = src1[i]/src2[i] - ); + ThreadManager.concurrentOperation(product.length, (startIdx, endIdx) -> { + for(int i=startIdx; i product[i] = src1[i]*src2[i] - ); + ThreadManager.concurrentOperation(product.length, (startIdx, endIdx) -> { + for(int i=startIdx; i { - int src1IndexStart = i*cols2; - int destIndexStart = i*rows2; - int end = src1IndexStart + cols2; + ThreadManager.concurrentOperation(rows1, (startIdx, endIdx) -> { + for(int i=startIdx; i{ - int iBound = Math.min(ii + blockSize, rows1); + ThreadManager.concurrentBlockedOperation(rows1, blockSize, (startIdx, endIdx) -> { + for(int ii=startIdx; ii { - int src1IndexStart = i*cols1; - int destIndexStart = i*cols2; + ThreadManager.concurrentOperation(rows1, (startRow, endRow) -> { + for (int i = startRow; i < endRow; i++) { + int src1IndexStart = i * cols1; + int destIndexStart = i * cols2; - for(int j=0; j { - int src1IndexStart = i*rows2; - int destIndexStart = i*cols2; + ThreadManager.concurrentOperation(rows1, (startRow, endRow) -> { + for(int i = startRow; i { - int iBound = Math.min(ii + blockSize, rows1); - - for(int jj = 0; jj { + for (int jj = 0; jj < cols2; jj += blockSize) { int jBound = Math.min(jj + blockSize, cols2); - for(int kk = 0; kk { - int iBound = Math.min(ii + blockSize, rows1); + ThreadManager.concurrentBlockedOperation(rows1, blockSize, (blockStart, blockEnd) -> { + for(int ii=blockStart; ii { - int src1Index = i*cols1; - int src2Index = 0; + ThreadManager.concurrentOperation(rows1, (rowStart, rowEnd) -> { + for(int i=rowStart; i { - int iBound = Math.min(ii+blockSize, rows1); + ThreadManager.concurrentBlockedOperation(rows1, blockSize, (rowStart, rowEnd) -> { + for(int ii=rowStart; ii 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); - ArrayUtils.swap(destIndices, axes); // Compute destination indices. - dest[destShape.entriesIndex(destIndices)] = src[i]; // Apply transpose for the element + ThreadManager.concurrentOperation(src.length, (startIdx, endIdx) -> { + for(int i=startIdx; i { - int[] destIndices = shape.getIndices(i); - ArrayUtils.swap(destIndices, axis1, axis2); // Compute destination indices. - dest[destShape.entriesIndex(destIndices)] = src[i]; // Apply transpose for the element + ThreadManager.concurrentOperation(src.length, (startIdx, endIdx) -> { + for(int i=startIdx; i { - int srcIndex = i; - int destIndex = i*numRows; - int end = destIndex + numRows; - - while (destIndex < end) { - dest[destIndex++] = src[srcIndex]; - srcIndex += numCols; + ThreadManager.concurrentOperation(numCols, (startIdx, endIdx) -> { + for(int i=startIdx; i{ - int blockHeight = Math.min(ii+blockSize, numRows) - ii; - int srcIndexStart = ii*numCols; - int destIndexStart = ii; - - for(int jj=0; jj { + for(int ii=startIdx; ii= warmupRuns) { - bTime += (bEnd-bStart)*10e-6; - sTime += (sEnd-sStart)*10e-6; - } - } - - System.out.printf("Shape: (%d, %d)\n\n", rows, cols); - System.out.printf("Standard Time: %.5f ms\n", sTime/numRuns); - System.out.printf("Blocked Time: %.5f ms\n", bTime/numRuns); - } } diff --git a/src/main/java/org/flag4j/operations/dense/real/RealDenseVectorOperations.java b/src/main/java/org/flag4j/operations/dense/real/RealDenseVectorOperations.java index 81865c709..2dc0de633 100644 --- a/src/main/java/org/flag4j/operations/dense/real/RealDenseVectorOperations.java +++ b/src/main/java/org/flag4j/operations/dense/real/RealDenseVectorOperations.java @@ -97,12 +97,14 @@ public static double[] outerProduct(double[] src1, double[] src2) { public static double[] outerProductConcurrent(double[] src1, double[] src2) { double[] dest = new double[src1.length*src2.length]; - ThreadManager.concurrentLoop(0, src1.length, (int i)->{ - int destIndex = i*src2.length; - double v1 = src1[i]; - - for(double v2 : src2) { - dest[destIndex++] = v1*v2; + ThreadManager.concurrentOperation(src1.length, (startIdx, endIdx) -> { + for(int i=startIdx; iproduct[i] = src1[i].div(src2[i]) - ); + ThreadManager.concurrentOperation(product.length, (startIdx, endIdx) -> { + for(int i=startIdx; i { - double divisor = src2[i].re*src2[i].re + src2[i].im*src2[i].im; - quotient[i] = new CNumber(src1[i]*src2[i].re / divisor, -src1[i]*src2[i].im / divisor); + ThreadManager.concurrentOperation(quotient.length, (startIdx, endIdx) -> { + for(int i=startIdx; iproduct[i] = src1[i].mult(src2[i]) - ); + ThreadManager.concurrentOperation(product.length, (startIdx, endIdx) -> { + for(int i=startIdx; i * WARNING: These methods do not perform any sanity checks. */ -public class RealComplexDenseMatrixMultTranspose { +public final class RealComplexDenseMatrixMultTranspose { private RealComplexDenseMatrixMultTranspose() { // Hide default constructor. @@ -55,12 +55,12 @@ 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); + Arrays.fill(dest, CNumber.ZERO); int src1Index, src2Index, destIndex, src1IndexStart, destIndexStart, end; @@ -73,10 +73,13 @@ public static CNumber[] multTranspose(CNumber[] src1, Shape shape1, double[] src src1Index = src1IndexStart; src2Index = j*cols2; destIndex = destIndexStart + j; + CNumber sum = dest[destIndex]; while(src1Index { - int src1IndexStart = i*cols2; - int destIndexStart = i*rows2; - int end = src1IndexStart + cols2; - - for(int j=0; j { + for(int i=startIdx; i{ - int iBound = Math.min(ii + blockSize, rows1); + ThreadManager.concurrentBlockedOperation(rows1, blockSize, (startIdx, endIdx) -> { + for(int ii=startIdx; ii { - int src1IndexStart = i*cols2; - int destIndexStart = i*rows2; - int end = src1IndexStart + cols2; - - for(int j=0; j { + for(int i=startIdx; i { + for(int ii=startIdx; ii{ - int iBound = Math.min(ii + blockSize, rows1); + for(int jj = 0; jj * WARNING: These methods do not perform any sanity checks. */ -public class RealComplexDenseMatrixMultiplication { +public final class RealComplexDenseMatrixMultiplication { private RealComplexDenseMatrixMultiplication() { @@ -57,11 +56,11 @@ 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]; + final CNumber[] dest = new CNumber[rows1*cols2]; ArrayUtils.fill(dest, 0); int src1Index, src2Index, destIndex, src1IndexStart, destIndexStart, end; @@ -75,12 +74,14 @@ public static CNumber[] standard(double[] src1, Shape shape1, CNumber[] src2, Sh src1Index = src1IndexStart; destIndex = destIndexStart + j; end = src1Index + rows2; + CNumber sum = dest[destIndex]; while(src1Index { - int src1IndexStart = i*cols1; - int destIndexStart = i*cols2; + ThreadManager.concurrentOperation(rows1, (startIdx, endIdx) -> { + for(int i=startIdx; i { - int src1IndexStart = i*rows2; - int destIndexStart = i*cols2; + ThreadManager.concurrentOperation(rows1, (startIdx, endIdx) -> { + for(int i=startIdx; i { - int iBound = Math.min(ii + blockSize, rows1); + ThreadManager.concurrentBlockedOperation(rows1, blockSize, (startIdx, endIdx) -> { + for(int ii=startIdx; ii { - int iBound = Math.min(ii + blockSize, rows1); + ThreadManager.concurrentBlockedOperation(rows1, blockSize, (startIdx, endIdx) -> { + for(int ii=startIdx; ii { - int src1Index = i*cols1; - int src2Index = 0; + ThreadManager.concurrentOperation(rows1, (startIdx, endIdx) -> { + for(int i=startIdx; i { - int iBound = Math.min(ii+blockSize, rows1); + ThreadManager.concurrentBlockedOperation(rows1, blockSize, (startIdx, endIdx) -> { + for(int ii=startIdx; ii { - int src1IndexStart = i*cols1; - int destIndexStart = i*cols2; + ThreadManager.concurrentOperation(rows1, (startIdx, endIdx) -> { + for(int i=startIdx; i { - int src1IndexStart = i*rows2; - int destIndexStart = i*cols2; + ThreadManager.concurrentOperation(rows1, (startIdx, endIdx) -> { + for(int i=startIdx; i { - int iBound = Math.min(ii + blockSize, rows1); + ThreadManager.concurrentBlockedOperation(rows1, blockSize, (startIdx, endIdx) -> { + for(int ii=startIdx; ii { - int iBound = Math.min(ii + blockSize, rows1); - - for(int kk = 0; kk { + for(int ii=startIdx; ii { - int src1Index = i*cols1; - int src2Index = 0; + ThreadManager.concurrentOperation(rows1, (startIdx, endIdx) -> { + for(int i=startIdx; i { - int iBound = Math.min(ii+blockSize, rows1); + ThreadManager.concurrentBlockedOperation(rows1, blockSize, (startIdx, endIdx) -> { + for(int ii=startIdx; ii * WARNING: These methods do not perform any sanity checks. */ -public class ComplexDenseSparseMatrixMultTranspose { +public final class ComplexDenseSparseMatrixMultTranspose { private ComplexDenseSparseMatrixMultTranspose() { // Hide default constructor. @@ -56,12 +56,12 @@ 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); + Arrays.fill(dest, CNumber.ZERO); int row, col; int destStart, dSrcStart; @@ -75,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 b550597c2..b6ce7e1e6 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,15 +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.Axis2D; 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. @@ -58,22 +58,25 @@ 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); + Arrays.fill(dest, CNumber.ZERO); int row, col; for(int i=0; i { - // Loop over non-zero entries of sparse matrix. - for(int j=0; j { + for(int i=startIdx; i { - int row = rowIndices[i]; - int col = colIndices[i]; + ThreadManager.concurrentOperation(src1.length, (startIdx, endIdx) -> { + for(int i=startIdx; i { - for(int j=0; j { + for(int i=startIdx; i { - int row = rowIndices[i]; - int col = colIndices[i]; + ThreadManager.concurrentOperation(src1.length, (startIdx, endIdx) -> { + for(int i=startIdx; i { - for(int jj=0; jj { + for(int ii=startIdx; ii { - double[] localResult = new double[cols2]; // Store the result for the local thread. - int destRow = i*cols2; - int src1Row = i*cols1; + ThreadManager.concurrentOperation(rows1, (startIdx, endIdx) -> { + for(int i=startIdx; i { - int r1 = rowIndices[i]; - int c1 = colIndices[i]; - - int destRowStart = r1 * cols2; - int src2RowStart = c1 * cols2; + ThreadManager.concurrentOperation(src1.length, (startIdx, endIdx) -> { + for(int i=startIdx; i destAtomic = new AtomicReferenceArray<>(rows1 * cols2); - for(int i=0; i { - int row = rowIndices1[i]; - int col = colIndices1[i]; - int destRow = row*cols2; - int src2Row = col*cols2; - for(int j=0; j { - for(int j=0; j { + for(int i=startIdx; i { - int row = rowIndices[i]; - int col = colIndices[i]; + ThreadManager.concurrentOperation(src1.length, (startIdx, endIdx) -> { + for(int i=startIdx; i { - for(int jj=0; jj { + for(int ii=startIdx; ii { - // Loop over non-zero entries of sparse matrix. - for(int j=0; j { + for(int i=startIdx; i { - int row = rowIndices[i]; - int col = colIndices[i]; + ThreadManager.concurrentOperation(src1.length, (startIdx, endIdx) -> { + for(var i=startIdx; i { - // Loop over non-zero entries of sparse matrix. - for(int j=0; j { + for(int i=startIdx; i { - int row = rowIndices[i]; - int col = colIndices[i]; + ThreadManager.concurrentOperation(src1.length, (startIdx, endIdx) -> { + for(int i=startIdx; i { - for(int j=0; j { + for(int i=startIdx; i { + for(int i=startIdx; i { - int row = rowIndices[i]; - int col = colIndices[i]; - CNumber product = src2[col].mult(src1[i]); - - synchronized (dest) { - dest[row].addEq(product); + synchronized (dest) { + dest[row] = dest[row].add(product); + } } }); @@ -496,8 +534,8 @@ public static CNumber[] concurrentStandardVector(double[] src1, int[] rowIndices * @return Entries of the dense matrix resulting from the matrix vector multiplication. */ public static CNumber[] concurrentBlockedVector(double[] 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. @@ -506,13 +544,19 @@ public static CNumber[] concurrentBlockedVector(double[] src1, Shape shape1, CNu ArrayUtils.fill(dest, 0); // Blocked matrix-vector multiply - ThreadManager.concurrentLoop(0, rows1, bsize, ii -> { - for(int jj=0; jj { + for(int ii=startIdx; ii { - for(int j=0; j { + for(int i=startIdx; i { - int row = rowIndices[i]; - int col = colIndices[i]; - CNumber product = src1[i].mult(src2[col]); + ThreadManager.concurrentOperation(src1.length, (startIdx, endIdx) -> { + for(int i=startIdx; i { - for(int jj=0; jj { + for(int ii=startIdx; ii 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 new file mode 100644 index 000000000..23c16620c --- /dev/null +++ b/src/main/java/org/flag4j/operations/sparse/coo/complex/ComplexCooTensorOperations.java @@ -0,0 +1,144 @@ +/* + * 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.complex; + + +import org.flag4j.arrays.sparse.CooCTensor; +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 two complex sparse COO tensors. + */ +public final class ComplexCooTensorOperations { + + private ComplexCooTensorOperations() { + // Hide default constructor for utility class. + } + + + /** + * Sums two complex 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, 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]); + 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); + } + sumIndices.add(src1Idx); + } + + // Insert any remaining elements from src2 + while(src2Pos < src2.nnz) { + sumEntries.add(src2.entries[src2Pos]); + 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); + } + 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/complex/ComplexSparseMatrixGetSet.java b/src/main/java/org/flag4j/operations/sparse/coo/complex/ComplexSparseMatrixGetSet.java index 197840025..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,13 +100,13 @@ 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(); } - return new CooCMatrix(src.shape.copy(), destEntries, destRowIndices, destColIndices); + return new CooCMatrix(src.shape, destEntries, destRowIndices, destColIndices); } @@ -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) ); @@ -184,7 +184,7 @@ public static CooCMatrix setRow(CooCMatrix src, int rowIdx, double[] row) { ); } - return new CooCMatrix(src.shape.copy(), destEntries, destRowIndices, destColIndices); + return new CooCMatrix(src.shape, destEntries, destRowIndices, destColIndices); } @@ -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) ); @@ -262,7 +262,7 @@ public static CooCMatrix setRow(CooCMatrix src, int rowIdx, CNumber[] row) { ); } - return new CooCMatrix(src.shape.copy(), destEntries, destRowIndices, destColIndices); + return new CooCMatrix(src.shape, destEntries, destRowIndices, destColIndices); } @@ -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 ); @@ -342,7 +342,7 @@ public static CooCMatrix setRow(CooCMatrix src, int rowIdx, CooCVector row) { ); } - return new CooCMatrix(src.shape.copy(), destEntries, destRowIndices, destColIndices); + return new CooCMatrix(src.shape, destEntries, destRowIndices, destColIndices); } @@ -373,14 +373,14 @@ 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 75523bb59..7a6aafec5 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 @@ -29,9 +29,9 @@ import org.flag4j.core.Shape; import org.flag4j.operations.sparse.coo.SparseUtils; import org.flag4j.util.ArrayUtils; -import org.flag4j.util.Axis2D; import org.flag4j.util.ErrorMessages; +import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; @@ -41,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. @@ -63,11 +63,11 @@ private ComplexSparseMatrixMultiplication() { */ public static CNumber[] standard(CNumber[] 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); + 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. @@ -83,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])); } } } @@ -109,28 +109,30 @@ public static CNumber[] standard(CNumber[] src1, int[] rowIndices1, int[] colInd */ public static CNumber[] concurrentStandard(CNumber[] 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); + Arrays.fill(dest, CNumber.ZERO); ConcurrentMap destMap = new ConcurrentHashMap<>(); // Create a map where key is row index from src2. // and value is a list of indices in src2 where this row appears. Map> map = SparseUtils.createMap(src2.length, rowIndices2); - ThreadManager.concurrentLoop(0, src1.length, (i)->{ - int c1 = colIndices1[i]; // = k + ThreadManager.concurrentOperation(src1.length, (startIdx, endIdx) -> { + for(int i=startIdx; i { - int r1 = rowIndices1[i]; // = i - int c1 = colIndices1[i]; // = k + ThreadManager.concurrentOperation(src1.length, (startIdx, endIdx) -> { + for(int i=startIdx; iUtility class for computing tensor dot products between two {@link CooTensor real sparse COO tensors}.

              + */ +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/RealSparseMatrixGetSet.java b/src/main/java/org/flag4j/operations/sparse/coo/real/RealSparseMatrixGetSet.java index 51108f036..8be352ee1 100644 --- a/src/main/java/org/flag4j/operations/sparse/coo/real/RealSparseMatrixGetSet.java +++ b/src/main/java/org/flag4j/operations/sparse/coo/real/RealSparseMatrixGetSet.java @@ -103,7 +103,7 @@ public static CooMatrix matrixSet(CooMatrix src, int row, int col, double value) destColIndices = src.colIndices.clone(); } - return new CooMatrix(src.shape.copy(), destEntries, destRowIndices, destColIndices); + return new CooMatrix(src.shape, destEntries, destRowIndices, destColIndices); } @@ -181,7 +181,7 @@ public static CooMatrix setRow(CooMatrix src, int rowIdx, double[] row) { ); } - return new CooMatrix(src.shape.copy(), destEntries, destRowIndices, destColIndices); + return new CooMatrix(src.shape, destEntries, destRowIndices, destColIndices); } @@ -257,7 +257,7 @@ private static CooMatrix addNotInCol(List 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..ff4e05ba5 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]; @@ -72,6 +72,7 @@ public static double[] standard(double[] src1, int[] rowIndices1, int[] colIndic for(int i=0; i destMap = new ConcurrentHashMap<>(); @@ -117,17 +118,20 @@ public static double[] concurrentStandard(double[] src1, int[] rowIndices1, int[ // and value is a list of indices in src2 where this row appears. Map> map = SparseUtils.createMap(src2.length, rowIndices2); - ThreadManager.concurrentLoop(0, src1.length, (i)->{ - int c1 = colIndices1[i]; // = k + ThreadManager.concurrentOperation(src1.length, (startIdx, endIdx) -> { + for(int i=startIdx; i { - int r1 = rowIndices1[i]; // = i - int c1 = colIndices1[i]; // = k - - for(int j=0; j { + for(int i=startIdx; 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(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); + } + 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); + } + 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/operations/sparse/coo/real_complex/RealComplexSparseMatrixMultiplication.java b/src/main/java/org/flag4j/operations/sparse/coo/real_complex/RealComplexSparseMatrixMultiplication.java index 2194f7db0..032fafd47 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. @@ -64,11 +64,11 @@ 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); + 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. @@ -76,6 +76,7 @@ public static CNumber[] standard(CNumber[] src1, int[] rowIndices1, int[] colInd for(int i=0; i destMap = new ConcurrentHashMap<>(); // Create a map where key is row index from src2. // and value is a list of indices in src2 where this row appears. Map> map = SparseUtils.createMap(src2.length, rowIndices2); - ThreadManager.concurrentLoop(0, src1.length, (i)->{ - int c1 = colIndices1[i]; // = k + ThreadManager.concurrentOperation(src1.length, (startIdx, endIdx) -> { + for(int i=startIdx; i { - int r1 = rowIndices1[i]; // = i - int c1 = colIndices1[i]; // = k - - for(int j=0; j { + for(int i=startIdx; i destMap = new ConcurrentHashMap<>(); // Create a map where key is row index from src2. // and value is a list of indices in src2 where this row appears. Map> map = SparseUtils.createMap(src2.length, rowIndices2); - ThreadManager.concurrentLoop(0, src1.length, (i)->{ - int c1 = colIndices1[i]; // = k + ThreadManager.concurrentOperation(src1.length, (startIdx, endIdx) -> { + for(int i=startIdx; i { - int r1 = rowIndices1[i]; // = i - int c1 = colIndices1[i]; // = k + CNumber[] dest = new CNumber[rows1]; + Arrays.fill(dest, CNumber.ZERO); - for(int j=0; j { + for(int i=startIdx; 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]++; @@ -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) @@ -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. *

              * *

              @@ -330,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); @@ -341,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. *

              * *

              @@ -354,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; } @@ -382,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; } } } @@ -396,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. *

              * @@ -413,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); @@ -431,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); } @@ -443,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); } @@ -460,23 +335,10 @@ 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++) - dest[i] = new CNumber(fillValue); - } - - - /** - * 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(); + CNumber complexFillValue = new CNumber(fillValue); + Arrays.fill(dest, from, to, complexFillValue); } @@ -491,9 +353,8 @@ 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) { - for (int i = start; i < end; i++) - dest[i] = fillValue.copy(); + public static void fill(final CNumber[] dest, final int start, final int end, final CNumber fillValue) { + Arrays.fill(dest, start, end, fillValue); } @@ -503,7 +364,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); } @@ -515,7 +376,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) @@ -531,11 +392,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; } @@ -547,7 +407,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) @@ -563,7 +423,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) @@ -579,7 +439,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++) @@ -595,7 +455,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++) @@ -612,7 +472,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++) @@ -631,7 +491,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); } @@ -645,7 +505,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; @@ -660,7 +520,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]; @@ -673,6 +533,25 @@ public static void swap(int[] src, int[] indices) { } + /** + * Swaps elements in an array according to a specified permutation. This method should be used with extreem caution as unlike + * {@link #swap(int[], int[])}, this method does not verify that {@code indices} is a permutation. + * + * @param src Array to swap elements within. + * @param indices Array containing indices of the permutation. If the {@code src} array has length {@code N}, then + * the array must be a permutation of {@code {0, 1, 2, ..., N-1}}. + */ + public static void swapUnsafe(final int[] src, final int[] indices) { + int[] swapped = new int[src.length]; + int i = 0; + + for(int value : indices) + swapped[i++] = src[value]; + + System.arraycopy(swapped, 0, src, 0, swapped.length); + } + + /** * Swaps to elements in an array. This is done in place. * @@ -681,7 +560,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; @@ -696,7 +575,7 @@ 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; @@ -710,12 +589,12 @@ public static void swap(Object[] arr, int i, int j) { * @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; } @@ -728,7 +607,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; @@ -751,7 +630,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]; @@ -773,7 +652,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) { @@ -799,7 +678,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); } @@ -813,7 +692,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++) { @@ -833,7 +712,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++) { @@ -853,7 +732,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; } @@ -867,7 +746,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; } @@ -878,7 +757,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. @@ -897,7 +776,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. @@ -916,7 +795,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. @@ -935,14 +814,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; } @@ -956,7 +835,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); @@ -972,7 +851,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); @@ -989,24 +868,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; } @@ -1018,7 +897,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); } @@ -1034,7 +913,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; @@ -1048,7 +927,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) @@ -1067,7 +946,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; @@ -1081,7 +960,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]; @@ -1098,7 +977,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]; @@ -1115,7 +994,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]; @@ -1132,7 +1011,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]; @@ -1149,7 +1028,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); @@ -1166,7 +1045,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); @@ -1187,7 +1066,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); @@ -1219,7 +1098,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. @@ -1248,7 +1127,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) @@ -1266,7 +1145,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); @@ -1282,7 +1161,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++) @@ -1300,7 +1179,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++) @@ -1318,13 +1197,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; } @@ -1338,13 +1217,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; } @@ -1358,12 +1237,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; @@ -1378,7 +1257,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]; @@ -1398,7 +1277,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]; @@ -1418,7 +1297,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]; @@ -1442,7 +1321,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]; @@ -1466,14 +1345,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); @@ -1490,7 +1369,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]; @@ -1512,7 +1391,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= 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/TestHelpers.java b/src/test/java/org/flag4j/TestHelpers.java index e3ccd8964..70b50ed4e 100644 --- a/src/test/java/org/flag4j/TestHelpers.java +++ b/src/test/java/org/flag4j/TestHelpers.java @@ -13,7 +13,7 @@ public class TestHelpers { public static void printAsNumpyArray(Object... args) { for(Object arg : args) { if(arg instanceof MatrixMixin) { - printAsNumpyArray((MatrixMixin) 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/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/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 95980a6a0..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); @@ -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 ]]"; @@ -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); @@ -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 ]]"; @@ -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); @@ -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 ]]"; @@ -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_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/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/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..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")} }; @@ -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_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/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_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_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..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)); @@ -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/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/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/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/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/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/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/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/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/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 b1e084875..af96840b8 100644 Binary files a/target/flag4j-v0.1.0-beta.jar and b/target/flag4j-v0.1.0-beta.jar differ