Class RealFieldDenseMatMultTranspose

java.lang.Object
org.flag4j.linalg.ops.dense.real_field_ops.RealFieldDenseMatMultTranspose

public final class RealFieldDenseMatMultTranspose extends Object

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 Type
    Method
    Description
    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.
    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.
    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.
    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.
    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.
    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.
    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.
    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.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • 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 length shape1.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 length shape1.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 length shape1.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 length shape1.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 length shape1.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 length shape1.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 length shape1.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 length shape1.get(0)*shape1.get(0).