Package org.ejml.sparse.csc.mult
Class ImplMultiplication_MT_DSCC
java.lang.Object
org.ejml.sparse.csc.mult.ImplMultiplication_MT_DSCC
public class ImplMultiplication_MT_DSCC extends Object
Concurrent matrix multiplication for DSCC matrices.
-
Constructor Summary
Constructors Constructor Description ImplMultiplication_MT_DSCC() -
Method Summary
Modifier and Type Method Description static voidmult(org.ejml.data.DMatrixSparseCSC A, org.ejml.data.DMatrixRMaj B, org.ejml.data.DMatrixRMaj C, boolean add, pabeles.concurrency.GrowArray<org.ejml.data.DGrowArray> listWork)static voidmult(org.ejml.data.DMatrixSparseCSC A, org.ejml.data.DMatrixRMaj B, org.ejml.data.DMatrixRMaj C, pabeles.concurrency.GrowArray<org.ejml.data.DGrowArray> listWork)static voidmult(org.ejml.data.DMatrixSparseCSC A, org.ejml.data.DMatrixSparseCSC B, org.ejml.data.DMatrixSparseCSC C, pabeles.concurrency.GrowArray<Workspace_MT_DSCC> listWork)Performs matrix multiplication.static voidmultAdd(org.ejml.data.DMatrixSparseCSC A, org.ejml.data.DMatrixRMaj B, org.ejml.data.DMatrixRMaj C, pabeles.concurrency.GrowArray<org.ejml.data.DGrowArray> listWork)static voidmultAddTransA(org.ejml.data.DMatrixSparseCSC A, org.ejml.data.DMatrixRMaj B, org.ejml.data.DMatrixRMaj C, pabeles.concurrency.GrowArray<org.ejml.data.DGrowArray> listWork)static voidmultAddTransAB(org.ejml.data.DMatrixSparseCSC A, org.ejml.data.DMatrixRMaj B, org.ejml.data.DMatrixRMaj C)static voidmultAddTransB(org.ejml.data.DMatrixSparseCSC A, org.ejml.data.DMatrixRMaj B, org.ejml.data.DMatrixRMaj C, pabeles.concurrency.GrowArray<org.ejml.data.DGrowArray> listWork)static voidmultTransA(org.ejml.data.DMatrixSparseCSC A, org.ejml.data.DMatrixRMaj B, org.ejml.data.DMatrixRMaj C, pabeles.concurrency.GrowArray<org.ejml.data.DGrowArray> listWork)static voidmultTransAB(org.ejml.data.DMatrixSparseCSC A, org.ejml.data.DMatrixRMaj B, org.ejml.data.DMatrixRMaj C)static voidmultTransB(org.ejml.data.DMatrixSparseCSC A, org.ejml.data.DMatrixRMaj B, org.ejml.data.DMatrixRMaj C, boolean add, pabeles.concurrency.GrowArray<org.ejml.data.DGrowArray> listWork)static voidmultTransB(org.ejml.data.DMatrixSparseCSC A, org.ejml.data.DMatrixRMaj B, org.ejml.data.DMatrixRMaj C, pabeles.concurrency.GrowArray<org.ejml.data.DGrowArray> listWork)static voidstitchMatrix(org.ejml.data.DMatrixSparseCSC out, int numRows, int numCols, pabeles.concurrency.GrowArray<Workspace_MT_DSCC> listWork)Compines results from independent blocks into a single matrix
-
Constructor Details
-
ImplMultiplication_MT_DSCC
public ImplMultiplication_MT_DSCC()
-
-
Method Details
-
mult
public static void mult(org.ejml.data.DMatrixSparseCSC A, org.ejml.data.DMatrixSparseCSC B, org.ejml.data.DMatrixSparseCSC C, pabeles.concurrency.GrowArray<Workspace_MT_DSCC> listWork)Performs matrix multiplication. C = A*B. The problem is broken up into as many "blocks" as there are threads available. Each block will process a set of columns independently. After running results from independent blocks are stitched together in the main thread. Extra storage requirements is about the same size as 'C'.- Parameters:
A- MatrixB- MatrixC- Storage for results. Data length is increased if increased if insufficient.listWork- (Optional) Storage for internal workspace. Can be null.
-
stitchMatrix
public static void stitchMatrix(org.ejml.data.DMatrixSparseCSC out, int numRows, int numCols, pabeles.concurrency.GrowArray<Workspace_MT_DSCC> listWork)Compines results from independent blocks into a single matrix -
mult
public static void mult(org.ejml.data.DMatrixSparseCSC A, org.ejml.data.DMatrixRMaj B, org.ejml.data.DMatrixRMaj C, pabeles.concurrency.GrowArray<org.ejml.data.DGrowArray> listWork) -
multAdd
public static void multAdd(org.ejml.data.DMatrixSparseCSC A, org.ejml.data.DMatrixRMaj B, org.ejml.data.DMatrixRMaj C, pabeles.concurrency.GrowArray<org.ejml.data.DGrowArray> listWork) -
mult
public static void mult(org.ejml.data.DMatrixSparseCSC A, org.ejml.data.DMatrixRMaj B, org.ejml.data.DMatrixRMaj C, boolean add, pabeles.concurrency.GrowArray<org.ejml.data.DGrowArray> listWork) -
multTransA
public static void multTransA(org.ejml.data.DMatrixSparseCSC A, org.ejml.data.DMatrixRMaj B, org.ejml.data.DMatrixRMaj C, pabeles.concurrency.GrowArray<org.ejml.data.DGrowArray> listWork) -
multAddTransA
public static void multAddTransA(org.ejml.data.DMatrixSparseCSC A, org.ejml.data.DMatrixRMaj B, org.ejml.data.DMatrixRMaj C, pabeles.concurrency.GrowArray<org.ejml.data.DGrowArray> listWork) -
multTransB
public static void multTransB(org.ejml.data.DMatrixSparseCSC A, org.ejml.data.DMatrixRMaj B, org.ejml.data.DMatrixRMaj C, pabeles.concurrency.GrowArray<org.ejml.data.DGrowArray> listWork) -
multAddTransB
public static void multAddTransB(org.ejml.data.DMatrixSparseCSC A, org.ejml.data.DMatrixRMaj B, org.ejml.data.DMatrixRMaj C, pabeles.concurrency.GrowArray<org.ejml.data.DGrowArray> listWork) -
multTransB
public static void multTransB(org.ejml.data.DMatrixSparseCSC A, org.ejml.data.DMatrixRMaj B, org.ejml.data.DMatrixRMaj C, boolean add, pabeles.concurrency.GrowArray<org.ejml.data.DGrowArray> listWork) -
multTransAB
public static void multTransAB(org.ejml.data.DMatrixSparseCSC A, org.ejml.data.DMatrixRMaj B, org.ejml.data.DMatrixRMaj C) -
multAddTransAB
public static void multAddTransAB(org.ejml.data.DMatrixSparseCSC A, org.ejml.data.DMatrixRMaj B, org.ejml.data.DMatrixRMaj C)
-