---
title: 数据类型
description: "提供KML_SPBLAS库函数的数据类型说明。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/240RC1/accel/kunpengaccel_kml_16_0069.html
sourcePath: /source/zh/kunpengboostkithistory/240RC1/accel/kunpengaccel_kml_16_0069.html
indexId: 8c9c9f361432a0347d62051893d1ff523e24eb500781aca74eaac77318dd6a5e76
---
# 数据类型

提供KML_SPBLAS库函数的数据类型说明。

#### 基本数据类型

整型数据：

```
typedef int KML_INT;  /*32位整型数*/
#define MAX_KML_INT 0x7FFFFFFD            /* 32位KML_INT的最大值减2，避免rows+2申请内存时溢出 */
```

复数数据类型：

单精度复数

```
typedef struct {
float real;
float imag;
} KML_Complex8;
```

双精度复数

```
typedef struct {
double real;
double imag;
} KML_Complex16;
```


#### 枚举类型

表1描述了KML_SPBLAS的枚举类型。


**表1 枚举类型及定义**

| 枚举类型 | 说明 | 定义 |
| --- | --- | --- |
| kml\_sparse\_status\_t | 表示函数执行状态。 | typedef enum{ KML\_SPARSE\_STATUS\_SUCCESS = 0, /\* the operation was successful \*/ KML\_SPARSE\_STATUS\_NOT\_INITIALIZED = 1, /\* empty handle or matrix arrays \*/ KML\_SPARSE\_STATUS\_ALLOC\_FAILED = 2, /\* internal error: memory allocation failed \*/ KML\_SPARSE\_STATUS\_INVALID\_VALUE = 3, /\* invalid input value \*/ KML\_SPARSE\_STATUS\_EXECUTION\_FAILED = 4, /\* e.g. 0\-diagonal element for triangular solver, etc. \*/ KML\_SPARSE\_STATUS\_INTERNAL\_ERROR = 5, /\* internal error \*/ KML\_SPARSE\_STATUS\_NOT\_SUPPORTED = 6 /\* e.g. operation for double precision doesn't support other types \*/ } kml\_sparse\_status\_t; |
| kml\_sparse\_operation\_t | 表示矩阵的操作（无变化、转置、共轭转置）。 | typedef enum { KML\_SPARSE\_OPERATION\_NON\_TRANSPOSE = 0, KML\_SPARSE\_OPERATION\_TRANSPOSE = 1, KML\_SPARSE\_OPERATION\_CONJUGATE\_TRANSPOSE = 2, KML\_SPARSE\_OPERATION\_NUM } kml\_sparse\_operation\_t; |
| kml\_sparse\_matrix\_type\_t | 表示稀疏矩阵的类型。 | typedef enum{ KML\_SPARSE\_MATRIX\_TYPE\_GENERAL = 0, KML\_SPARSE\_MATRIX\_TYPE\_SYMMETRIC = 1, KML\_SPARSE\_MATRIX\_TYPE\_HERMITIAN = 2, KML\_SPARSE\_MATRIX\_TYPE\_TRIANGULAR = 3, KML\_SPARSE\_MATRIX\_TYPE\_DIAGONAL = 4, KML\_SPARSE\_MATRIX\_TYPE\_BLOCK\_TRIANGULAR = 5, KML\_SPARSE\_MATRIX\_TYPE\_BLOCK\_DIAGONAL = 6, KML\_SPARSE\_MATRIX\_TYPE\_NUM } kml\_sparse\_matrix\_type\_t; |
| kml\_sparse\_format\_t | 表示稀疏矩阵的存储格式。 | typedef enum{ KML\_SPARSE\_FORMAT\_COO = 0, KML\_SPARSE\_FORMAT\_CSR = 1, KML\_SPARSE\_FORMAT\_CSC = 2, KML\_SPARSE\_FORMAT\_BSR = 3 KML\_SPARSE\_FORMAT\_SKY = 4 KML\_SPARSE\_FORMAT\_DIA = 5 } kml\_sparse\_format\_t; |
| kml\_sparse\_index\_num\_t | 表示稀疏矩阵的indx从0开始或1开始。 | typedef enum{ KML\_SPARSE\_INDEX\_BASE\_ZERO = 0, KML\_SPARSE\_INDEX\_BASE\_ONE = 1 } kml\_sparse\_index\_num\_t; |
| kml\_sparse\_fill\_mode\_t | 表示稀疏矩阵是上三角或下三角矩阵。 | typedef enum{ KML\_SPARSE\_FILL\_MODE\_LOWER = 0, KML\_SPARSE\_FILL\_MODE\_UPPER = 1 } kml\_sparse\_fill\_mode\_t; |
| kml\_sparse\_diag\_type\_t | 表示稀疏矩阵是否单元矩阵。 | typedef enum{ KML\_SPARSE\_DIAG\_NON\_UNIT = 0, KML\_SPARSE\_DIAG\_UNIT = 1 } kml\_sparse\_diag\_type\_t; |
| kml\_sparse\_layout\_t | 表示稀疏矩阵是行主序或列主序。 | typedef enum{ KML\_SPARSE\_LAYOUT\_ROW\_MAJOR = 0, KML\_SPARSE\_LAYOUT\_COLUMN\_MAJOR = 1 } kml\_sparse\_layout\_t; |
| kml\_sparse\_order\_t | 表示稀疏矩阵是否排序。 | typedef enum{ KML\_SPARSE\_NON\_ORDER = 0, KML\_SPARSE\_ORDER = 1 } kml\_sparse\_order\_t; |
| kml\_sparse\_datatype\_t | 表示数据类型。 | typedef enum{ KML\_SPARSE\_DATATYPE\_FLOAT = 0, KML\_SPARSE\_DATATYPE\_DOUBLE = 1, KML\_SPARSE\_DATATYPE\_FLOAT\_COMPLEX = 2, KML\_SPARSE\_DATATYPE\_DOUBLE\_COMPLEX = 3 } kml\_sparse\_datatype\_t; |
