Class RealComplexCsrDenseMatrixMultiplication
java.lang.Object
org.flag4j.operations.dense_sparse.csr.real_complex.RealComplexCsrDenseMatrixMultiplication
This class contains low-level implementations of real-complex sparse-dense matrix multiplication where the sparse matrix
is in CSR format.
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic CMatrix
Computes the matrix multiplication between a real dense matrix and a real sparse CSR matrix.static CMatrix
standard
(Matrix src1, CsrCMatrix src2) Computes the matrix multiplication between a real dense matrix and a real sparse CSR matrix.static CMatrix
standard
(CsrCMatrix src1, Matrix src2) Computes the matrix multiplication between a complex sparse CSR matrix and a real dense matrix.static CMatrix
Computes the matrix multiplication between a real sparse CSR matrix and a complex dense matrix.static CMatrix
standardTranspose
(CsrMatrix src1, CMatrix src2) Computes the matrix multiplication between a real sparse CSR matrix and the transpose of a complex dense matrix.static CVector
standardVector
(CsrCMatrix src1, Vector src2) Computes the matrix-vector multiplication between a real sparse CSR matrix and a complex dense vector.static CVector
standardVector
(CsrMatrix src1, CVector src2) Computes the matrix-vector multiplication between a real sparse CSR matrix and a complex dense vector.
-
Constructor Details
-
RealComplexCsrDenseMatrixMultiplication
private RealComplexCsrDenseMatrixMultiplication()
-
-
Method Details
-
standard
Computes the matrix multiplication between a real sparse CSR matrix and a complex dense matrix. WARNING: If the first matrix is very large but not very sparse, this method may be slower than converting the first matrix to adense
matrix and callingMatrix.mult(CMatrix)
.- Parameters:
src1
- First matrix in the matrix multiplication.src2
- Second matrix in the matrix multiplication.- Returns:
- The result of the matrix multiplication between
src1
andsrc2
. - Throws:
IllegalArgumentException
- Ifsrc1
does not have the same number of columns assrc2
has rows.
-
standardTranspose
Computes the matrix multiplication between a real sparse CSR matrix and the transpose of a complex dense matrix. WARNING: This method is likely slower thanstandard(src1, src2.T())
unlesssrc1
has many more columns than rows and is very sparse.- Parameters:
src1
- First matrix in the matrix multiplication.src2
- Second matrix in the matrix multiplication. Will be implicitly transposed.- Returns:
- The result of the matrix multiplication between
src1
andsrc2
. - Throws:
IllegalArgumentException
- Ifsrc1
andsrc2
do not have the same number of rows.
-
standard
Computes the matrix multiplication between a real dense matrix and a real 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 adense
matrix and callingMatrix.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
andsrc2
. - Throws:
IllegalArgumentException
- Ifsrc1
does not have the same number of columns assrc2
has rows.
-
standard
Computes the matrix multiplication between a real dense matrix and a real 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 adense
matrix and callingMatrix.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
andsrc2
. - Throws:
IllegalArgumentException
- Ifsrc1
does not have the same number of columns assrc2
has rows.
-
standardVector
Computes the matrix-vector multiplication between a real sparse CSR matrix and a complex dense vector.- Parameters:
src1
- The matrix in the multiplication.src2
- Vector in multiplication. Treated as a column vector.- Returns:
- The result of the matrix-vector multiplication.
- Throws:
IllegalArgumentException
- If the number of columns insrc1
does not equal the length ofsrc2
.
-
standard
Computes the matrix multiplication between a complex sparse CSR matrix and a real dense matrix. WARNING: If the first matrix is very large but not very sparse, this method may be slower than converting the first matrix to adense
matrix and callingMatrix.mult(CMatrix)
.- Parameters:
src1
- First matrix in the matrix multiplication.src2
- Second matrix in the matrix multiplication.- Returns:
- The result of the matrix multiplication between
src1
andsrc2
. - Throws:
IllegalArgumentException
- Ifsrc1
does not have the same number of columns assrc2
has rows.
-
standardVector
Computes the matrix-vector multiplication between a real sparse CSR matrix and a complex dense vector.- Parameters:
src1
- The matrix in the multiplication.src2
- Vector in multiplication. Treated as a column vector.- Returns:
- The result of the matrix-vector multiplication.
- Throws:
IllegalArgumentException
- If the number of columns insrc1
does not equal the length ofsrc2
.
-