---
title: BLAS库函数
description: "根据Java语言的书写风格，矩阵默认使用行主序。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/240RC2/accel/kunpengaccel_kml_16_0315.html
sourcePath: /source/zh/kunpengboostkithistory/240RC2/accel/kunpengaccel_kml_16_0315.html
indexId: 69ce3a18402c9d7e193b97a587e257da21b6e2001814338ad9b02dd28e87b38376
---
# BLAS库函数

根据Java语言的书写风格，矩阵默认使用行主序。

#### 枚举类型

表1描述了KML_JAVA库中BLAS的枚举类型。


**表1 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
*      */
```
