Class RealFieldDenseMatMultTranspose
java.lang.Object
org.flag4j.linalg.ops.dense.real_field_ops.RealFieldDenseMatMultTranspose
This class contains several low level methods for computing matrix-matrix multiplications with a transpose for a real dense matrix and a dense field matrix.
Warning: These methods do not perform any sanity checks.
-
Method Summary
Modifier and TypeMethodDescriptionstatic <T extends Field<T>>
voidmultTranspose
(double[] src1, Shape shape1, T[] src2, Shape shape2, T[] dest) Multiplies a matrix to the transpose of a second matrix.static <T extends Field<T>>
voidmultTranspose
(T[] src1, Shape shape1, double[] src2, Shape shape2, T[] dest) Multiplies a matrix to the transpose of a second matrix.static <T extends Field<T>>
voidmultTransposeBlocked
(double[] src1, Shape shape1, T[] src2, Shape shape2, T[] dest) Multiplies a matrix to the transpose of a second matrix using a blocked algorithm.static <T extends Field<T>>
voidmultTransposeBlocked
(T[] src1, Shape shape1, double[] src2, Shape shape2, T[] dest) Multiplies a matrix to the transpose of a second matrix using a blocked algorithm.static <T extends Field<T>>
voidmultTransposeBlockedConcurrent
(double[] src1, Shape shape1, T[] src2, Shape shape2, T[] dest) Multiplies a matrix to the transpose of a second matrix using a concurrent implementation of a blocked algorithm.static <T extends Field<T>>
voidmultTransposeBlockedConcurrent
(T[] src1, Shape shape1, double[] src2, Shape shape2, T[] dest) Multiplies a matrix to the transpose of a second matrix using a concurrent implementation of a blocked algorithm.static <T extends Field<T>>
voidmultTransposeConcurrent
(double[] src1, Shape shape1, T[] src2, Shape shape2, T[] dest) Multiplies a matrix to the transpose of a second matrix using a concurrent algorithm.static <T extends Field<T>>
voidmultTransposeConcurrent
(T[] src1, Shape shape1, double[] src2, Shape shape2, T[] dest) Multiplies a matrix to the transpose of a second matrix using a concurrent algorithm.
-
Method Details
-
multTranspose
public static <T extends Field<T>> void multTranspose(T[] src1, Shape shape1, double[] src2, Shape shape2, T[] dest) Multiplies a matrix to the transpose of a second matrix. This method may be significantly faster than computing the transpose and multiplication in two steps.- Parameters:
src1
- Entries of the first matrix.shape1
- Shape of the first matrix.src2
- Entries of the second matrix.shape2
- Shape of the second matrix.dest
- Array to store the result of the matrix multiplication in (modified). Must have lengthshape1.get(0)*shape1.get(0)
.
-
multTransposeBlocked
public static <T extends Field<T>> void multTransposeBlocked(T[] src1, Shape shape1, double[] src2, Shape shape2, T[] dest) Multiplies a matrix to the transpose of a second matrix using a blocked algorithm. This method may be significantly faster than computing the transpose and multiplication in two steps.- Parameters:
src1
- Entries of the first matrix.shape1
- Shape of the first matrix.src2
- Entries of the second matrix.shape2
- Shape of the second matrix.dest
- Array to store the result of the matrix multiplication in (modified). Must have lengthshape1.get(0)*shape1.get(0)
.
-
multTransposeConcurrent
public static <T extends Field<T>> void multTransposeConcurrent(T[] src1, Shape shape1, double[] src2, Shape shape2, T[] dest) Multiplies a matrix to the transpose of a second matrix using a concurrent algorithm. This method may be significantly faster than computing the transpose and multiplication in two steps.- Parameters:
src1
- Entries of the first matrix.shape1
- Shape of the first matrix.src2
- Entries of the second matrix.shape2
- Shape of the second matrix.dest
- Array to store the result of the matrix multiplication in (modified). Must have lengthshape1.get(0)*shape1.get(0)
.
-
multTransposeBlockedConcurrent
public static <T extends Field<T>> void multTransposeBlockedConcurrent(T[] src1, Shape shape1, double[] src2, Shape shape2, T[] dest) Multiplies a matrix to the transpose of a second matrix using a concurrent implementation of a blocked algorithm. This method may be significantly faster than computing the transpose and multiplication in two steps.- Parameters:
src1
- Entries of the first matrix.shape1
- Shape of the first matrix.src2
- Entries of the second matrix.shape2
- Shape of the second matrix.dest
- Array to store the result of the matrix multiplication in (modified). Must have lengthshape1.get(0)*shape1.get(0)
.
-
multTranspose
public static <T extends Field<T>> void multTranspose(double[] src1, Shape shape1, T[] src2, Shape shape2, T[] dest) Multiplies a matrix to the transpose of a second matrix. This method may be significantly faster than computing the transpose and multiplication in two steps.- Parameters:
src1
- Entries of the first matrix.shape1
- Shape of the first matrix.src2
- Entries of the second matrix.shape2
- Shape of the second matrix.dest
- Array to store the result of the matrix multiplication in (modified). Must have lengthshape1.get(0)*shape1.get(0)
.
-
multTransposeBlocked
public static <T extends Field<T>> void multTransposeBlocked(double[] src1, Shape shape1, T[] src2, Shape shape2, T[] dest) Multiplies a matrix to the transpose of a second matrix using a blocked algorithm. This method may be significantly faster than computing the transpose and multiplication in two steps.- Parameters:
src1
- Entries of the first matrix.shape1
- Shape of the first matrix.src2
- Entries of the second matrix.shape2
- Shape of the second matrix.dest
- Array to store the result of the matrix multiplication in (modified). Must have lengthshape1.get(0)*shape1.get(0)
.
-
multTransposeConcurrent
public static <T extends Field<T>> void multTransposeConcurrent(double[] src1, Shape shape1, T[] src2, Shape shape2, T[] dest) Multiplies a matrix to the transpose of a second matrix using a concurrent algorithm. This method may be significantly faster than computing the transpose and multiplication in two steps.- Parameters:
src1
- Entries of the first matrix.shape1
- Shape of the first matrix.src2
- Entries of the second matrix.shape2
- Shape of the second matrix.dest
- Array to store the result of the matrix multiplication in (modified). Must have lengthshape1.get(0)*shape1.get(0)
.
-
multTransposeBlockedConcurrent
public static <T extends Field<T>> void multTransposeBlockedConcurrent(double[] src1, Shape shape1, T[] src2, Shape shape2, T[] dest) Multiplies a matrix to the transpose of a second matrix using a concurrent implementation of a blocked algorithm. This method may be significantly faster than computing the transpose and multiplication in two steps.- Parameters:
src1
- Entries of the first matrix.shape1
- Shape of the first matrix.src2
- Entries of the second matrix.shape2
- Shape of the second matrix.dest
- Array to store the result of the matrix multiplication in (modified). Must have lengthshape1.get(0)*shape1.get(0)
.
-