Package org.ujmp.core.calculation
Class MtimesDenseDoubleMatrix2D
java.lang.Object
org.ujmp.core.calculation.MtimesDenseDoubleMatrix2D
- All Implemented Interfaces:
MtimesCalculation<DenseDoubleMatrix2D,
DenseDoubleMatrix2D, DenseDoubleMatrix2D>
class MtimesDenseDoubleMatrix2D
extends Object
implements MtimesCalculation<DenseDoubleMatrix2D,DenseDoubleMatrix2D,DenseDoubleMatrix2D>
Contains matrix multiplication methods for different matrix implementations
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate BlockDenseDoubleMatrix2D
blockMultiplyMultiThreaded
(BlockDenseDoubleMatrix2D a, BlockDenseDoubleMatrix2D b, BlockDenseDoubleMatrix2D c) final void
calc
(DenseDoubleMatrix2D source1, DenseDoubleMatrix2D source2, DenseDoubleMatrix2D target) private void
calcBlockMatrixMultiThreaded
(DenseDoubleMatrix2D source1, DenseDoubleMatrix2D source2, DenseDoubleMatrix2D target) private final void
calcDenseDoubleMatrix2DMultiThreaded
(DenseDoubleMatrix2D A, DenseDoubleMatrix2D B, DenseDoubleMatrix2D C) private final void
calcDenseDoubleMatrix2DSingleThreaded
(DenseDoubleMatrix2D A, DenseDoubleMatrix2D B, DenseDoubleMatrix2D C) private final void
calcDoubleArray2DMultiThreaded
(double[][] m1, double[][] m2, double[][] ret) private final void
calcDoubleArray2DSingleThreaded
(double[][] m1, double[][] m2, double[][] ret) private final void
calcDoubleArrayMultiThreaded
(double[] A, int m1RowCount, int m1ColumnCount, double[] B, int m2RowCount, int m2ColumnCount, double[] C) private static final void
calcOneColumn
(double temp, double[] A, double[] C, int m1RowCount, int index1, int index2) private final void
gemmDoubleArraySingleThreaded
(double[] A, int m1RowCount, int m1ColumnCount, double[] B, int m2RowCount, int m2ColumnCount, double[] C) private int
selectBlocksPerTaskDimJ
(int blockStripe, int iMax, int jMax, int kMax)
-
Constructor Details
-
MtimesDenseDoubleMatrix2D
MtimesDenseDoubleMatrix2D()
-
-
Method Details
-
calc
public final void calc(DenseDoubleMatrix2D source1, DenseDoubleMatrix2D source2, DenseDoubleMatrix2D target) - Specified by:
calc
in interfaceMtimesCalculation<DenseDoubleMatrix2D,
DenseDoubleMatrix2D, DenseDoubleMatrix2D>
-
calcBlockMatrixMultiThreaded
private void calcBlockMatrixMultiThreaded(DenseDoubleMatrix2D source1, DenseDoubleMatrix2D source2, DenseDoubleMatrix2D target) -
gemmDoubleArraySingleThreaded
private final void gemmDoubleArraySingleThreaded(double[] A, int m1RowCount, int m1ColumnCount, double[] B, int m2RowCount, int m2ColumnCount, double[] C) -
calcDoubleArrayMultiThreaded
private final void calcDoubleArrayMultiThreaded(double[] A, int m1RowCount, int m1ColumnCount, double[] B, int m2RowCount, int m2ColumnCount, double[] C) -
calcOneColumn
private static final void calcOneColumn(double temp, double[] A, double[] C, int m1RowCount, int index1, int index2) -
calcDoubleArray2DSingleThreaded
private final void calcDoubleArray2DSingleThreaded(double[][] m1, double[][] m2, double[][] ret) -
calcDoubleArray2DMultiThreaded
private final void calcDoubleArray2DMultiThreaded(double[][] m1, double[][] m2, double[][] ret) -
calcDenseDoubleMatrix2DSingleThreaded
private final void calcDenseDoubleMatrix2DSingleThreaded(DenseDoubleMatrix2D A, DenseDoubleMatrix2D B, DenseDoubleMatrix2D C) -
calcDenseDoubleMatrix2DMultiThreaded
private final void calcDenseDoubleMatrix2DMultiThreaded(DenseDoubleMatrix2D A, DenseDoubleMatrix2D B, DenseDoubleMatrix2D C) -
blockMultiplyMultiThreaded
private BlockDenseDoubleMatrix2D blockMultiplyMultiThreaded(BlockDenseDoubleMatrix2D a, BlockDenseDoubleMatrix2D b, BlockDenseDoubleMatrix2D c) - Parameters:
a
-b
-c
-- Returns:
-
selectBlocksPerTaskDimJ
private int selectBlocksPerTaskDimJ(int blockStripe, int iMax, int jMax, int kMax)
-