Class ComplexDenseMatrixMultiplication
java.lang.Object
org.flag4j.operations.dense.complex.ComplexDenseMatrixMultiplication
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.
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic CNumber[]
Computes the matrix multiplication of two real dense matrices using a blocked algorithm.static CNumber[]
blockedReordered
(CNumber[] src1, Shape shape1, CNumber[] src2, Shape shape2) Computes the matrix multiplication of two real dense matrices using a blocked algorithm with the j-k loops swapped.static CNumber[]
blockedVector
(CNumber[] src1, Shape shape1, CNumber[] src2, Shape shape2) Computes the multiplication of a real dense matrix with a real dense vector using a blocked algorithm.static CNumber[]
concurrentBlocked
(CNumber[] src1, Shape shape1, CNumber[] src2, Shape shape2) Computes the matrix multiplication of two real dense matrices using a concurrent implementation of a blocked algorithm.static CNumber[]
concurrentBlockedReordered
(CNumber[] src1, Shape shape1, CNumber[] src2, Shape shape2) Computes the matrix multiplication of two real dense matrices using a concurrent implementation of a blocked algorithm with the j-k loops swapped.static CNumber[]
concurrentBlockedVector
(CNumber[] src1, Shape shape1, CNumber[] src2, Shape shape2) Computes the multiplication of a real dense matrix with a real dense vector using a concurrent implementation of a blocked algorithm.static CNumber[]
concurrentReordered
(CNumber[] src1, Shape shape1, CNumber[] src2, Shape shape2) Computes the matrix multiplication of two real dense matrices using a concurrent implementation of the standard matrix multiplication algorithm with j-k loops swapped.static CNumber[]
concurrentStandard
(CNumber[] src1, Shape shape1, CNumber[] src2, Shape shape2) Computes the matrix multiplication of two real dense matrices using a concurrent implementation of the standard matrix multiplication algorithm.static CNumber[]
concurrentStandardVector
(CNumber[] src1, Shape shape1, CNumber[] src2, Shape shape2) Computes the multiplication of a real dense matrix with a real dense vector using a concurrent implementation of the standard matrix multiplication algorithm.static CNumber[]
Computes the matrix multiplication between two real dense matrices using the standard algorithm with j-k loops swapped.static CNumber[]
Computes the matrix multiplication between two real dense matrices using the standard algorithm.static CNumber[]
standardVector
(CNumber[] src1, Shape shape1, CNumber[] src2, Shape shape2) Computes the multiplication of a real dense matrix with a real dense vector using the standard algorithm.
-
Constructor Details
-
ComplexDenseMatrixMultiplication
private ComplexDenseMatrixMultiplication()
-
-
Method Details
-
standard
Computes the matrix multiplication between two real dense matrices using the standard algorithm.- Parameters:
src1
- Entries of the first matrix.shape1
- Shape of the first matrix.src2
- Entries of the second matrix.shape2
- Shape fo the second matrix.- Returns:
- The result of matrix multiplying the two matrices.
-
reordered
Computes the matrix multiplication between two real dense matrices using the standard algorithm with j-k loops swapped.- Parameters:
src1
- Entries of the first matrix.shape1
- Shape of the first matrix.src2
- Entries of the second matrix.shape2
- Shape fo the second matrix.- Returns:
- The result of matrix multiplying the two matrices.
-
blocked
Computes the matrix multiplication of two real dense matrices using a blocked algorithm.- Parameters:
src1
- Entries of the first matrix.shape1
- Shape of the first matrix.src2
- Entries of the second matrix.shape2
- Shape fo the second matrix.- Returns:
- The result of matrix multiplying the two matrices.
-
blockedReordered
public static CNumber[] blockedReordered(CNumber[] src1, Shape shape1, CNumber[] src2, Shape shape2) Computes the matrix multiplication of two real dense matrices using a blocked algorithm with the j-k loops swapped.- Parameters:
src1
- Entries of the first matrix.shape1
- Shape of the first matrix.src2
- Entries of the second matrix.shape2
- Shape fo the second matrix.- Returns:
- The result of matrix multiplying the two matrices.
-
concurrentStandard
public static CNumber[] concurrentStandard(CNumber[] src1, Shape shape1, CNumber[] src2, Shape shape2) Computes the matrix multiplication of two real dense matrices using a concurrent implementation of the standard matrix multiplication algorithm.- Parameters:
src1
- Entries of the first matrix.shape1
- Shape of the first matrix.src2
- Entries of the second matrix.shape2
- Shape fo the second matrix.- Returns:
- The result of matrix multiplying the two matrices.
-
concurrentReordered
public static CNumber[] concurrentReordered(CNumber[] src1, Shape shape1, CNumber[] src2, Shape shape2) Computes the matrix multiplication of two real dense matrices using a concurrent implementation of the standard matrix multiplication algorithm with j-k loops swapped.- Parameters:
src1
- Entries of the first matrix.shape1
- Shape of the first matrix.src2
- Entries of the second matrix.shape2
- Shape fo the second matrix.- Returns:
- The result of matrix multiplying the two matrices.
-
concurrentBlocked
public static CNumber[] concurrentBlocked(CNumber[] src1, Shape shape1, CNumber[] src2, Shape shape2) Computes the matrix multiplication of two real dense matrices using a concurrent implementation of a blocked algorithm.- Parameters:
src1
- Entries of the first matrix.shape1
- Shape of the first matrix.src2
- Entries of the second matrix.shape2
- Shape fo the second matrix.- Returns:
- The result of matrix multiplying the two matrices.
-
concurrentBlockedReordered
public static CNumber[] concurrentBlockedReordered(CNumber[] src1, Shape shape1, CNumber[] src2, Shape shape2) Computes the matrix multiplication of two real dense matrices using a concurrent implementation of a blocked algorithm with the j-k loops swapped.- Parameters:
src1
- Entries of the first matrix.shape1
- Shape of the first matrix.src2
- Entries of the second matrix.shape2
- Shape fo the second matrix.- Returns:
- The result of matrix multiplying the two matrices.
-
standardVector
Computes the multiplication of a real dense matrix with a real dense vector using the standard algorithm.- Parameters:
src1
- Entries of the first matrix.shape1
- Shape of the first matrix.src2
- Entries of the second matrix.shape2
- Shape fo the second matrix.- Returns:
- The result of matrix multiplying the two matrices.
-
blockedVector
Computes the multiplication of a real dense matrix with a real dense vector using a blocked algorithm.- Parameters:
src1
- Entries of the first matrix.shape1
- Shape of the first matrix.src2
- Entries of the second matrix.shape2
- Shape fo the second matrix.- Returns:
- The result of matrix multiplying the two matrices.
-
concurrentStandardVector
public static CNumber[] concurrentStandardVector(CNumber[] src1, Shape shape1, CNumber[] src2, Shape shape2) Computes the multiplication of a real dense matrix with a real dense vector using a concurrent implementation of the standard matrix multiplication algorithm.- Parameters:
src1
- Entries of the first matrix.shape1
- Shape of the first matrix.src2
- Entries of the second matrix.shape2
- Shape fo the second matrix.- Returns:
- The result of matrix multiplying the two matrices.
-
concurrentBlockedVector
public static CNumber[] concurrentBlockedVector(CNumber[] src1, Shape shape1, CNumber[] src2, Shape shape2) Computes the multiplication of a real dense matrix with a real dense vector using a concurrent implementation of a blocked algorithm.- Parameters:
src1
- Entries of the first matrix.shape1
- Shape of the first matrix.src2
- Entries of the second matrix.shape2
- Shape fo the second matrix.- Returns:
- The result of matrix multiplying the two matrices.
-