Class ImplMultiplication_DSCC

java.lang.Object
org.ejml.sparse.csc.mult.ImplMultiplication_DSCC

public class ImplMultiplication_DSCC extends Object
Implementation of single thread sparse matrix multiplication. Most functions should be invoked through CommonOps_DSCC. This code is focused on the implementation and does not check the contract or properly initialize input data structures.
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static void
    addRowsInAInToC(org.ejml.data.DMatrixSparseCSC A, int colA, org.ejml.data.DMatrixSparseCSC C, int colC, int[] w)
    Adds rows to C[*,colC] that are in A[*,colA] as long as they are marked in w.
    static double
    dotInnerColumns(org.ejml.data.DMatrixSparseCSC A, int colA, org.ejml.data.DMatrixSparseCSC B, int colB, @Nullable org.ejml.data.IGrowArray gw, @Nullable org.ejml.data.DGrowArray gx)
    Computes the inner product of two column vectors taken from the input matrices.
    static void
    mult(org.ejml.data.DMatrixSparseCSC A, org.ejml.data.DMatrixRMaj B, org.ejml.data.DMatrixRMaj C)
    Invoke through CommonOps_DSCC
    static void
    mult(org.ejml.data.DMatrixSparseCSC A, org.ejml.data.DMatrixSparseCSC B, org.ejml.data.DMatrixSparseCSC C, @Nullable org.ejml.data.IGrowArray gw, @Nullable org.ejml.data.DGrowArray gx)
    Performs matrix multiplication.
    static void
    multAdd(org.ejml.data.DMatrixSparseCSC A, org.ejml.data.DMatrixRMaj B, org.ejml.data.DMatrixRMaj C)
    Invoke through CommonOps_DSCC
    static void
    multAddColA(org.ejml.data.DMatrixSparseCSC A, int colA, double alpha, org.ejml.data.DMatrixSparseCSC C, int mark, double[] x, int[] w)
    Performs the operation x = x + A(:,i)*alpha
    static void
    multAddTransA(org.ejml.data.DMatrixSparseCSC A, org.ejml.data.DMatrixRMaj B, org.ejml.data.DMatrixRMaj C, org.ejml.data.DGrowArray workArray)
    Invoke through CommonOps_DSCC
    static void
    multAddTransAB(org.ejml.data.DMatrixSparseCSC A, org.ejml.data.DMatrixRMaj B, org.ejml.data.DMatrixRMaj C)
    Invoke through CommonOps_DSCC
    static void
    multAddTransB(org.ejml.data.DMatrixSparseCSC A, org.ejml.data.DMatrixRMaj B, org.ejml.data.DMatrixRMaj C, org.ejml.data.DGrowArray workArray)
    Invoke through CommonOps_DSCC
    static void
    multTransA(org.ejml.data.DMatrixSparseCSC A, org.ejml.data.DMatrixRMaj B, org.ejml.data.DMatrixRMaj C, org.ejml.data.DGrowArray workArray)
    Invoke through CommonOps_DSCC
    static void
    multTransA(org.ejml.data.DMatrixSparseCSC A, org.ejml.data.DMatrixRMaj B, org.ejml.data.DMatrixRMaj C, org.ejml.data.DGrowArray workArray, org.ejml.ops.DOperatorBinary op)
    Invoke through CommonOps_DSCC
    static void
    multTransAB(org.ejml.data.DMatrixSparseCSC A, org.ejml.data.DMatrixRMaj B, org.ejml.data.DMatrixRMaj C)
    Invoke through CommonOps_DSCC
    static void
    multTransB(org.ejml.data.DMatrixSparseCSC A, org.ejml.data.DMatrixRMaj B, org.ejml.data.DMatrixRMaj C, org.ejml.data.DGrowArray workArray)
    Invoke through CommonOps_DSCC

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • ImplMultiplication_DSCC

      public ImplMultiplication_DSCC()
  • Method Details

    • mult

      public static void mult(org.ejml.data.DMatrixSparseCSC A, org.ejml.data.DMatrixSparseCSC B, org.ejml.data.DMatrixSparseCSC C, @Nullable @Nullable org.ejml.data.IGrowArray gw, @Nullable @Nullable org.ejml.data.DGrowArray gx)
      Performs matrix multiplication. C = A*B

      Invoke through CommonOps_DSCC

      Parameters:
      A - Matrix
      B - Matrix
      C - Storage for results. Array size is increased if needed.
      gw - (Optional) Storage for internal workspace. Can be null.
      gx - (Optional) Storage for internal workspace. Can be null.
    • multAddColA

      public static void multAddColA(org.ejml.data.DMatrixSparseCSC A, int colA, double alpha, org.ejml.data.DMatrixSparseCSC C, int mark, double[] x, int[] w)
      Performs the operation x = x + A(:,i)*alpha

      NOTE: This is the same as cs_scatter() in csparse.

    • addRowsInAInToC

      public static void addRowsInAInToC(org.ejml.data.DMatrixSparseCSC A, int colA, org.ejml.data.DMatrixSparseCSC C, int colC, int[] w)
      Adds rows to C[*,colC] that are in A[*,colA] as long as they are marked in w. This is used to grow C and colC must be the last filled in column in C.

      NOTE: This is the same as cs_scatter if x is null.

      Parameters:
      A - Matrix
      colA - The column in A that is being examined
      C - Matrix
      colC - Column in C that rows in A are being added to.
      w - An array used to indicate if a row in A should be added to C. if w[i] < colC AND i is a row in A[*,colA] then it will be added.
    • mult

      public static void mult(org.ejml.data.DMatrixSparseCSC A, org.ejml.data.DMatrixRMaj B, org.ejml.data.DMatrixRMaj C)

      Invoke through CommonOps_DSCC

    • multAdd

      public static void multAdd(org.ejml.data.DMatrixSparseCSC A, org.ejml.data.DMatrixRMaj B, org.ejml.data.DMatrixRMaj C)

      Invoke through CommonOps_DSCC

    • multTransA

      public static void multTransA(org.ejml.data.DMatrixSparseCSC A, org.ejml.data.DMatrixRMaj B, org.ejml.data.DMatrixRMaj C, org.ejml.data.DGrowArray workArray)

      Invoke through CommonOps_DSCC

    • multAddTransA

      public static void multAddTransA(org.ejml.data.DMatrixSparseCSC A, org.ejml.data.DMatrixRMaj B, org.ejml.data.DMatrixRMaj C, org.ejml.data.DGrowArray workArray)

      Invoke through CommonOps_DSCC

    • multTransA

      public static void multTransA(org.ejml.data.DMatrixSparseCSC A, org.ejml.data.DMatrixRMaj B, org.ejml.data.DMatrixRMaj C, org.ejml.data.DGrowArray workArray, org.ejml.ops.DOperatorBinary op)

      Invoke through CommonOps_DSCC

    • multTransB

      public static void multTransB(org.ejml.data.DMatrixSparseCSC A, org.ejml.data.DMatrixRMaj B, org.ejml.data.DMatrixRMaj C, org.ejml.data.DGrowArray workArray)

      Invoke through CommonOps_DSCC

    • multAddTransB

      public static void multAddTransB(org.ejml.data.DMatrixSparseCSC A, org.ejml.data.DMatrixRMaj B, org.ejml.data.DMatrixRMaj C, org.ejml.data.DGrowArray workArray)

      Invoke through CommonOps_DSCC

    • multTransAB

      public static void multTransAB(org.ejml.data.DMatrixSparseCSC A, org.ejml.data.DMatrixRMaj B, org.ejml.data.DMatrixRMaj C)

      Invoke through CommonOps_DSCC

    • multAddTransAB

      public static void multAddTransAB(org.ejml.data.DMatrixSparseCSC A, org.ejml.data.DMatrixRMaj B, org.ejml.data.DMatrixRMaj C)

      Invoke through CommonOps_DSCC

    • dotInnerColumns

      public static double dotInnerColumns(org.ejml.data.DMatrixSparseCSC A, int colA, org.ejml.data.DMatrixSparseCSC B, int colB, @Nullable @Nullable org.ejml.data.IGrowArray gw, @Nullable @Nullable org.ejml.data.DGrowArray gx)
      Computes the inner product of two column vectors taken from the input matrices.

      dot = A(:,colA)'*B(:,colB)

      Invoke through CommonOps_DSCC

      Parameters:
      A - Matrix
      colA - Column in A
      B - Matrix
      colB - Column in B
      Returns:
      Dot product