BLAS库函数
根据Java语言的书写风格,矩阵默认使用行主序。
枚举类型
表1描述了KML_JAVA库中BLAS的枚举类型。
枚举类型 |
说明 |
定义 |
---|---|---|
Transpose |
定义常规矩阵或共轭矩阵是否进行转置。 |
public enum Transpose { NO_TRANS(111), TRANS(112), CONJ_TRANS(113), CONJ_NO_TRANS(114); } |
Uplo |
定义使用矩阵的上三角还是下三角部分。 |
public enum Uplo { UPPER=121, LOWER=122; } |
Diag |
定义使用矩阵是否为单元矩阵。 |
public enum Diag { NON_UNIT=131, UNIT=132; } |
Side |
定义矩阵为左操作还是右操作元素。 |
public enum Side { LEFT=141, RIGHT=142; } |
依赖
import com.huawei.kml.BLAS;
若用户需使用枚举体,请显式声明:
import com.huawei.kml.BLAS.Diag;
import com.huawei.kml.BLAS.Side;
import com.huawei.kml.BLAS.Transpose;
import com.huawei.kml.BLAS.Uplo;
示例
public class DMMTest { void testGemm() { int sizeM = 4; int sizeN = 4; int sizeK = 3; double[] matrixA = new double[]{ 0.340188, 0.411647, -0.222225, -0.105617, -0.302449, 0.053970, 0.283099, -0.164777, -0.022603, 0.298440, 0.268230, 0.128871}; double[] matrixB = new double[]{ -0.135216, 0.416195, -0.358397, -0.257113, 0.013401, 0.135712, 0.106969, -0.362768, 0.452230, 0.217297, -0.483699, 0.304177}; double[] matrixC = new double[]{ -0.343321, 0.498924, 0.112640, -0.006417, -0.099056, -0.281743, -0.203968, 0.472775, -0.370210, 0.012932, 0.137552, -0.207483, -0.391191, 0.339112, 0.024287, 0.271358}; double alpha = 1.0; double beta = 2.0; BLAS.dgemm( Transpose.NO_TRANS, Transpose.NO_TRANS, sizeM, sizeN, sizeK, alpha, matrixA, sizeK, matrixB, sizeN, beta, matrixC, sizeN); } } /* * matrixC: * -0.827621 1.147010 0.254881 -0.317229 * -0.163476 -0.636762 -0.428542 1.098841 * -0.791128 0.116416 0.166949 -0.434854 * -0.760862 0.866839 -0.092028 0.407877 * */
父主题: 函数定义