public class LibMatrixMult extends Object
Modifier and Type | Method and Description |
---|---|
static void |
copyUpperToLowerTriangle(MatrixBlock ret)
Used for all version of TSMM where the result is known to be symmetric.
|
static double |
dotProduct(double[] a,
double[] b,
int[] aix,
int ai,
int bi,
int len) |
static double |
dotProduct(double[] a,
double[] b,
int ai,
int bi,
int len) |
static void |
matrixMult(MatrixBlock m1,
MatrixBlock m2,
MatrixBlock ret)
Performs a matrix multiplication and stores the result in the output matrix.
|
static void |
matrixMult(MatrixBlock m1,
MatrixBlock m2,
MatrixBlock ret,
boolean examSparsity)
This method allows one to disabling exam sparsity.
|
static void |
matrixMult(MatrixBlock m1,
MatrixBlock m2,
MatrixBlock ret,
int k)
Performs a multi-threaded matrix multiplication and stores the result in the output matrix.
|
static void |
matrixMult(MatrixBlock m1,
MatrixBlock m2,
MatrixBlock ret,
int rl,
int ru) |
static void |
matrixMult(MatrixBlock m1,
MatrixBlock m2,
MatrixBlock ret,
int rl,
int ru,
boolean examSparsity) |
static void |
matrixMultChain(MatrixBlock mX,
MatrixBlock mV,
MatrixBlock mW,
MatrixBlock ret,
org.apache.sysml.lops.MapMultChain.ChainType ct)
Performs a matrix multiplication chain operation of type t(X)%*%(X%*%v) or t(X)%*%(w*(X%*%v)).
|
static void |
matrixMultChain(MatrixBlock mX,
MatrixBlock mV,
MatrixBlock mW,
MatrixBlock ret,
org.apache.sysml.lops.MapMultChain.ChainType ct,
int k)
Performs a parallel matrix multiplication chain operation of type t(X)%*%(X%*%v) or t(X)%*%(w*(X%*%v)).
|
static void |
matrixMultPermute(MatrixBlock pm1,
MatrixBlock m2,
MatrixBlock ret1,
MatrixBlock ret2) |
static void |
matrixMultPermute(MatrixBlock pm1,
MatrixBlock m2,
MatrixBlock ret1,
MatrixBlock ret2,
int k) |
static void |
matrixMultTransposeSelf(MatrixBlock m1,
MatrixBlock ret,
boolean leftTranspose) |
static void |
matrixMultTransposeSelf(MatrixBlock m1,
MatrixBlock ret,
boolean leftTranspose,
int k) |
static void |
matrixMultWCeMM(MatrixBlock mW,
MatrixBlock mU,
MatrixBlock mV,
double eps,
MatrixBlock ret,
org.apache.sysml.lops.WeightedCrossEntropy.WCeMMType wt) |
static void |
matrixMultWCeMM(MatrixBlock mW,
MatrixBlock mU,
MatrixBlock mV,
double eps,
MatrixBlock ret,
org.apache.sysml.lops.WeightedCrossEntropy.WCeMMType wt,
int k) |
static void |
matrixMultWDivMM(MatrixBlock mW,
MatrixBlock mU,
MatrixBlock mV,
MatrixBlock mX,
MatrixBlock ret,
org.apache.sysml.lops.WeightedDivMM.WDivMMType wt)
NOTE: This operation has limited NaN support, which is acceptable because all our sparse-safe operations
have only limited NaN support.
|
static void |
matrixMultWDivMM(MatrixBlock mW,
MatrixBlock mU,
MatrixBlock mV,
MatrixBlock mX,
MatrixBlock ret,
org.apache.sysml.lops.WeightedDivMM.WDivMMType wt,
int k)
NOTE: This operation has limited NaN support, which is acceptable because all our sparse-safe operations
have only limited NaN support.
|
static void |
matrixMultWSigmoid(MatrixBlock mW,
MatrixBlock mU,
MatrixBlock mV,
MatrixBlock ret,
org.apache.sysml.lops.WeightedSigmoid.WSigmoidType wt) |
static void |
matrixMultWSigmoid(MatrixBlock mW,
MatrixBlock mU,
MatrixBlock mV,
MatrixBlock ret,
org.apache.sysml.lops.WeightedSigmoid.WSigmoidType wt,
int k) |
static void |
matrixMultWSLoss(MatrixBlock mX,
MatrixBlock mU,
MatrixBlock mV,
MatrixBlock mW,
MatrixBlock ret,
org.apache.sysml.lops.WeightedSquaredLoss.WeightsType wt) |
static void |
matrixMultWSLoss(MatrixBlock mX,
MatrixBlock mU,
MatrixBlock mV,
MatrixBlock mW,
MatrixBlock ret,
org.apache.sysml.lops.WeightedSquaredLoss.WeightsType wt,
int k) |
static void |
matrixMultWuMM(MatrixBlock mW,
MatrixBlock mU,
MatrixBlock mV,
MatrixBlock ret,
org.apache.sysml.lops.WeightedUnaryMM.WUMMType wt,
org.apache.sysml.runtime.functionobjects.ValueFunction fn) |
static void |
matrixMultWuMM(MatrixBlock mW,
MatrixBlock mU,
MatrixBlock mV,
MatrixBlock ret,
org.apache.sysml.lops.WeightedUnaryMM.WUMMType wt,
org.apache.sysml.runtime.functionobjects.ValueFunction fn,
int k) |
static void |
vectAdd(double[] a,
double[] c,
int ai,
int ci,
int len) |
static void |
vectMultiplyAdd(double aval,
double[] b,
double[] c,
int[] bix,
int bi,
int ci,
int len) |
static void |
vectMultiplyAdd(double aval,
double[] b,
double[] c,
int bi,
int ci,
int len) |
static void |
vectMultiplyWrite(double aval,
double[] b,
double[] c,
int bi,
int ci,
int len) |
public static void matrixMult(MatrixBlock m1, MatrixBlock m2, MatrixBlock ret) throws DMLRuntimeException
m1
- first matrixm2
- second matrixret
- result matrixDMLRuntimeException
- if DMLRuntimeException occurspublic static void matrixMult(MatrixBlock m1, MatrixBlock m2, MatrixBlock ret, boolean examSparsity) throws DMLRuntimeException
m1
- first matrixm2
- second matrixret
- result matrixexamSparsity
- if false, sparsity examination is disabledDMLRuntimeException
- if DMLRuntimeException occurspublic static void matrixMult(MatrixBlock m1, MatrixBlock m2, MatrixBlock ret, int rl, int ru) throws DMLRuntimeException
DMLRuntimeException
public static void matrixMult(MatrixBlock m1, MatrixBlock m2, MatrixBlock ret, int rl, int ru, boolean examSparsity) throws DMLRuntimeException
DMLRuntimeException
public static void matrixMult(MatrixBlock m1, MatrixBlock m2, MatrixBlock ret, int k) throws DMLRuntimeException
m1
- first matrixm2
- second matrixret
- result matrixk
- maximum parallelismDMLRuntimeException
- if DMLRuntimeException occurspublic static void matrixMultChain(MatrixBlock mX, MatrixBlock mV, MatrixBlock mW, MatrixBlock ret, org.apache.sysml.lops.MapMultChain.ChainType ct) throws DMLRuntimeException
mX
- X matrixmV
- v matrixmW
- w matrixret
- result matrixct
- chain typeDMLRuntimeException
- if DMLRuntimeException occurspublic static void matrixMultChain(MatrixBlock mX, MatrixBlock mV, MatrixBlock mW, MatrixBlock ret, org.apache.sysml.lops.MapMultChain.ChainType ct, int k) throws DMLRuntimeException
mX
- X matrixmV
- v matrixmW
- w matrixret
- result matrixct
- chain typek
- maximum parallelismDMLRuntimeException
- if DMLRuntimeException occurspublic static void matrixMultTransposeSelf(MatrixBlock m1, MatrixBlock ret, boolean leftTranspose) throws DMLRuntimeException
DMLRuntimeException
public static void matrixMultTransposeSelf(MatrixBlock m1, MatrixBlock ret, boolean leftTranspose, int k) throws DMLRuntimeException
DMLRuntimeException
public static void matrixMultPermute(MatrixBlock pm1, MatrixBlock m2, MatrixBlock ret1, MatrixBlock ret2) throws DMLRuntimeException
DMLRuntimeException
public static void matrixMultPermute(MatrixBlock pm1, MatrixBlock m2, MatrixBlock ret1, MatrixBlock ret2, int k) throws DMLRuntimeException
DMLRuntimeException
public static void matrixMultWSLoss(MatrixBlock mX, MatrixBlock mU, MatrixBlock mV, MatrixBlock mW, MatrixBlock ret, org.apache.sysml.lops.WeightedSquaredLoss.WeightsType wt) throws DMLRuntimeException
DMLRuntimeException
public static void matrixMultWSLoss(MatrixBlock mX, MatrixBlock mU, MatrixBlock mV, MatrixBlock mW, MatrixBlock ret, org.apache.sysml.lops.WeightedSquaredLoss.WeightsType wt, int k) throws DMLRuntimeException
DMLRuntimeException
public static void matrixMultWSigmoid(MatrixBlock mW, MatrixBlock mU, MatrixBlock mV, MatrixBlock ret, org.apache.sysml.lops.WeightedSigmoid.WSigmoidType wt) throws DMLRuntimeException
DMLRuntimeException
public static void matrixMultWSigmoid(MatrixBlock mW, MatrixBlock mU, MatrixBlock mV, MatrixBlock ret, org.apache.sysml.lops.WeightedSigmoid.WSigmoidType wt, int k) throws DMLRuntimeException
DMLRuntimeException
public static void matrixMultWDivMM(MatrixBlock mW, MatrixBlock mU, MatrixBlock mV, MatrixBlock mX, MatrixBlock ret, org.apache.sysml.lops.WeightedDivMM.WDivMMType wt) throws DMLRuntimeException
mW
- matrix WmU
- matrix UmV
- matrix VmX
- matrix Xret
- result typewt
- weighted divide matrix multiplication typeDMLRuntimeException
- if DMLRuntimeException occurspublic static void matrixMultWDivMM(MatrixBlock mW, MatrixBlock mU, MatrixBlock mV, MatrixBlock mX, MatrixBlock ret, org.apache.sysml.lops.WeightedDivMM.WDivMMType wt, int k) throws DMLRuntimeException
mW
- matrix WmU
- matrix UmV
- matrix VmX
- matrix Xret
- result matrixwt
- weighted divide matrix multiplication typek
- maximum parallelismDMLRuntimeException
- if DMLRuntimeException occurspublic static void matrixMultWCeMM(MatrixBlock mW, MatrixBlock mU, MatrixBlock mV, double eps, MatrixBlock ret, org.apache.sysml.lops.WeightedCrossEntropy.WCeMMType wt) throws DMLRuntimeException
DMLRuntimeException
public static void matrixMultWCeMM(MatrixBlock mW, MatrixBlock mU, MatrixBlock mV, double eps, MatrixBlock ret, org.apache.sysml.lops.WeightedCrossEntropy.WCeMMType wt, int k) throws DMLRuntimeException
DMLRuntimeException
public static void matrixMultWuMM(MatrixBlock mW, MatrixBlock mU, MatrixBlock mV, MatrixBlock ret, org.apache.sysml.lops.WeightedUnaryMM.WUMMType wt, org.apache.sysml.runtime.functionobjects.ValueFunction fn) throws DMLRuntimeException
DMLRuntimeException
public static void matrixMultWuMM(MatrixBlock mW, MatrixBlock mU, MatrixBlock mV, MatrixBlock ret, org.apache.sysml.lops.WeightedUnaryMM.WUMMType wt, org.apache.sysml.runtime.functionobjects.ValueFunction fn, int k) throws DMLRuntimeException
DMLRuntimeException
public static double dotProduct(double[] a, double[] b, int ai, int bi, int len)
public static double dotProduct(double[] a, double[] b, int[] aix, int ai, int bi, int len)
public static void vectMultiplyAdd(double aval, double[] b, double[] c, int bi, int ci, int len)
public static void vectMultiplyAdd(double aval, double[] b, double[] c, int[] bix, int bi, int ci, int len)
public static void vectMultiplyWrite(double aval, double[] b, double[] c, int bi, int ci, int len)
public static void vectAdd(double[] a, double[] c, int ai, int ci, int len)
public static void copyUpperToLowerTriangle(MatrixBlock ret)
ret
- matrixCopyright © 2017 The Apache Software Foundation. All rights reserved.