Class RealComplexDenseMatrixMultiplication
java.lang.Object
org.flag4j.operations.dense.real_complex.RealComplexDenseMatrixMultiplication
This class contains several low level methods for computing real/complex matrix-matrix multiplications. This includes transpose
multiplications.
WARNING: These methods do not perform any sanity checks.
WARNING: These methods do not perform any sanity checks.
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic CNumber[]
Computes the matrix multiplication of a real dense matrix with a complex dense matrix using a blocked algorithm.static CNumber[]
Computes the matrix multiplication of a real dense matrix with a complex dense matrix using a blocked algorithm.static CNumber[]
blockedReordered
(double[] src1, Shape shape1, CNumber[] src2, Shape shape2) Computes the matrix multiplication of a real dense matrix with a complex dense matrix using a blocked algorithm with the j-k loops swapped.static CNumber[]
blockedReordered
(CNumber[] src1, Shape shape1, double[] src2, Shape shape2) Computes the matrix multiplication of a real dense matrix with a complex dense matrix using a blocked algorithm with the j-k loops swapped.static CNumber[]
blockedVector
(double[] src1, Shape shape1, CNumber[] src2, Shape shape2) Computes the multiplication of a real dense matrix with a complex dense vector using a blocked algorithm.static CNumber[]
blockedVector
(CNumber[] src1, Shape shape1, double[] src2, Shape shape2) Computes the multiplication of a real dense matrix with a complex dense vector using a blocked algorithm.static CNumber[]
concurrentBlocked
(double[] src1, Shape shape1, CNumber[] src2, Shape shape2) Computes the matrix multiplication of a real dense matrix with a complex dense matrix using a concurrent implementation of a blocked algorithm.static CNumber[]
concurrentBlocked
(CNumber[] src1, Shape shape1, double[] src2, Shape shape2) Computes the matrix multiplication of a real dense matrix with a complex dense matrix using a concurrent implementation of a blocked algorithm.static CNumber[]
concurrentBlockedReordered
(double[] src1, Shape shape1, CNumber[] src2, Shape shape2) Computes the matrix multiplication of a real dense matrix with a complex dense matrix using a concurrent implementation of a blocked algorithm with the j-k loops swapped.static CNumber[]
concurrentBlockedReordered
(CNumber[] src1, Shape shape1, double[] src2, Shape shape2) Computes the matrix multiplication of a real dense matrix with a complex dense matrix using a concurrent implementation of a blocked algorithm with the j-k loops swapped.static CNumber[]
concurrentBlockedVector
(double[] src1, Shape shape1, CNumber[] src2, Shape shape2) Computes the multiplication of a real dense matrix with a complex dense vector using a concurrent implementation of a blocked algorithm.static CNumber[]
concurrentBlockedVector
(CNumber[] src1, Shape shape1, double[] src2, Shape shape2) Computes the multiplication of a real dense matrix with a complex dense vector using a concurrent implementation of a blocked algorithm.static CNumber[]
concurrentReordered
(double[] src1, Shape shape1, CNumber[] src2, Shape shape2) Computes the matrix multiplication of a real dense matrix with a complex dense matrix using a concurrent implementation of the standard matrix multiplication algorithm with j-k loops swapped.static CNumber[]
concurrentReordered
(CNumber[] src1, Shape shape1, double[] src2, Shape shape2) Computes the matrix multiplication of a real dense matrix with a complex dense matrix using a concurrent implementation of the standard matrix multiplication algorithm with j-k loops swapped.static CNumber[]
concurrentStandard
(double[] src1, Shape shape1, CNumber[] src2, Shape shape2) Computes the matrix multiplication of a real dense matrix with a complex dense matrix using a concurrent implementation of the standard matrix multiplication algorithm.static CNumber[]
concurrentStandard
(CNumber[] src1, Shape shape1, double[] src2, Shape shape2) Computes the matrix multiplication of a real dense matrix with a complex dense matrix using a concurrent implementation of the standard matrix multiplication algorithm.static CNumber[]
concurrentStandardVector
(double[] src1, Shape shape1, CNumber[] src2, Shape shape2) Computes the multiplication of a real dense matrix with a complex dense vector using a concurrent implementation of the standard matrix multiplication algorithm.static CNumber[]
concurrentStandardVector
(CNumber[] src1, Shape shape1, double[] src2, Shape shape2) Computes the multiplication of a real dense matrix with a complex dense vector using a concurrent implementation of the standard matrix multiplication algorithm.static CNumber[]
Computes the matrix multiplication between a real dense matrix with a complex dense matrix using the standard algorithm with j-k loops swapped.static CNumber[]
Computes the matrix multiplication between a real dense matrix with a complex dense matrix using the standard algorithm with j-k loops swapped.static CNumber[]
Computes the matrix multiplication between a real dense matrix with a complex dense matrix using the standard algorithm.static CNumber[]
Computes the matrix multiplication between a real dense matrix with a complex dense matrix using the standard algorithm.static CNumber[]
standardVector
(double[] src1, Shape shape1, CNumber[] src2, Shape shape2) Computes the multiplication of a real dense matrix with a complex dense vector using the standard algorithm.static CNumber[]
standardVector
(CNumber[] src1, Shape shape1, double[] src2, Shape shape2) Computes the multiplication of a real dense matrix with a complex dense vector using the standard algorithm.
-
Constructor Details
-
RealComplexDenseMatrixMultiplication
private RealComplexDenseMatrixMultiplication()
-
-
Method Details
-
standard
Computes the matrix multiplication between a real dense matrix with a complex dense matrix 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 a real dense matrix with a complex dense matrix 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 a real dense matrix with a complex dense matrix 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
Computes the matrix multiplication of a real dense matrix with a complex dense matrix 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(double[] src1, Shape shape1, CNumber[] src2, Shape shape2) Computes the matrix multiplication of a real dense matrix with a complex dense matrix 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(double[] src1, Shape shape1, CNumber[] src2, Shape shape2) Computes the matrix multiplication of a real dense matrix with a complex dense matrix 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(double[] src1, Shape shape1, CNumber[] src2, Shape shape2) Computes the matrix multiplication of a real dense matrix with a complex dense matrix 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(double[] src1, Shape shape1, CNumber[] src2, Shape shape2) Computes the matrix multiplication of a real dense matrix with a complex dense matrix 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 complex 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 complex 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(double[] src1, Shape shape1, CNumber[] src2, Shape shape2) Computes the multiplication of a real dense matrix with a complex 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(double[] src1, Shape shape1, CNumber[] src2, Shape shape2) Computes the multiplication of a real dense matrix with a complex 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.
-
standard
Computes the matrix multiplication between a real dense matrix with a complex dense matrix 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 a real dense matrix with a complex dense matrix 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 a real dense matrix with a complex dense matrix 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
Computes the matrix multiplication of a real dense matrix with a complex dense matrix 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, double[] src2, Shape shape2) Computes the matrix multiplication of a real dense matrix with a complex dense matrix 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, double[] src2, Shape shape2) Computes the matrix multiplication of a real dense matrix with a complex dense matrix 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, double[] src2, Shape shape2) Computes the matrix multiplication of a real dense matrix with a complex dense matrix 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, double[] src2, Shape shape2) Computes the matrix multiplication of a real dense matrix with a complex dense matrix 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 complex 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 complex 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, double[] src2, Shape shape2) Computes the multiplication of a real dense matrix with a complex 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, double[] src2, Shape shape2) Computes the multiplication of a real dense matrix with a complex 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.
-