---
title: KmlScasolverMatrixCreate
description: "创建矩阵操作句柄。"
url: https://www.hikunpeng.com/document/detail/zh/kunpenghpcs/hpckit/devg/kunpengaccel_kml_1009.html
sourcePath: /source/zh/kunpenghpcs/hpckit/devg/kunpengaccel_kml_1009.html
indexId: ffe6ba6c5eb6f9c2874a903886b0686a964087bcdc6268a10439760c752a0ebc61
---
# KmlScasolverMatrixCreate

创建矩阵操作句柄。

创建矩阵时是浅拷贝，用户需要保证在KmlScasolverMatrixDestroy前不释放通过参数store指定的内存。


#### 接口定义

C Interface：

int KmlScasolverMatrixCreate(KmlScasolverMatrix **pMatrix, KmlSolverMatrixStore *store, const KmlSolverMatrixOption *basicOptions, const KmlScasolverMatrixOption *scaOptions);


#### 参数

| 参数名 | 类型 | 描述 | 输入/输出 |
| --- | --- | --- | --- |
| pMatrix | KmlScasolverMatrix \*\* | 矩阵句柄，pMatrix不可为空指针。 | 输入/输出 |
| store | KmlSolverMatrixStore \* | 矩阵格式信息结构体，仅描述当前进程本地矩阵，不可为空指针，具体内容如4.3.3.10.1.1\-表1所示。 | 输入 |
| basicOptions | KmlSolverMatrixOption \* | 矩阵基础配置选项，不可为空指针，具体内容如4.3.3.10.1.1\-表2所示。 | 输入 |
| scaOptions | KmlScasolverMatrixOption \* | 矩阵分布式配置选项，所有进程保存的矩阵需保证能够组成完整矩阵且无重复部分，不可为空指针，具体内容如表1所示。 | 输入 |


**表1 KmlScasolverMatrixOption结构体字段描述**

| 字段名 | 类型 | 描述 |
| --- | --- | --- |
| fieldMask | uint64\_t | 配置生效的字段掩码。非0的位代表配置对应字段指定的值，0的位代表使用默认值，可配置的掩码位见具体字段的说明。 |
| globalNumRows | int64\_t | 全局矩阵的行数。如果未指定，则默认值与KmlSolverMatrixStore::nrows相同。 掩码位：KMLSS\_MATRIX\_OPTIONS\_GLOBAL\_NROWS |
| globalNumCols | int64\_t | 全局矩阵的列数。如果未指定，则默认值与KmlSolverMatrixStore::ncols相同。 掩码位：KMLSS\_MATRIX\_OPTIONS\_GLOBAL\_NCOLS |
| partition | KmlScadssMatrixPartition | 全局矩阵在进程间的划分，具体内容如表2所示。 掩码位：KMLSS\_MATRIX\_OPTIONS\_PARTITION |


**表2 KmlScadssMatrixPartition结构体字段描述**

| 字段名 | 类型 | 描述 |
| --- | --- | --- |
| type | KmlScasolverMatrixPartitionType | 矩阵在进程间的划分方式，有如下值。 KMLSS\_MATRIX\_PARTITION\_ROW表示按行划分。 KMLSS\_MATRIX\_PARTITION\_COL表示按列划分。 KMLSS\_MATRIX\_PARTITION\_NZ表示按非零元素划分。 |
| localBegin | int64\_t | 表示当前进程在全局矩阵中的偏移量，意义取决于划分方式type，具体如下。 KMLSS\_MATRIX\_PARTITION\_ROW时表示第一个本进程矩阵行的全局行号。 KMLSS\_MATRIX\_PARTITION\_COL时表示第一个本进程矩阵列的全局列号。 KMLSS\_MATRIX\_PARTITION\_NZ时则忽略本参数。 |


#### 返回值

| 返回值 | 类型 | 描述 |
| --- | --- | --- |
| KMLSS\_NO\_ERROR | int | 正常执行。 |
| KMLSS\_INTERNAL\_ERROR | int | 内部错误。 |
| KMLSS\_NULL\_ARGUMENT | int | pMatrix，store，basicOptions，scaOptions存在空参数。 |


#### 依赖

#include "kml_scadss.h"
