创建矩阵操作句柄。
创建矩阵时是浅拷贝,用户需要保证在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所示。 |
输入 |
字段名 |
类型 |
描述 |
---|---|---|
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 |
字段名 |
类型 |
描述 |
---|---|---|
type |
KmlScasolverMatrixPartitionType |
矩阵在进程间的划分方式,有如下值。
|
localBegin |
int64_t |
表示当前进程在全局矩阵中的偏移量,意义取决于划分方式type,具体如下。
|
返回值 |
类型 |
描述 |
---|---|---|
KMLSS_NO_ERROR |
int |
正常执行。 |
KMLSS_INTERNAL_ERROR |
int |
内部错误。 |
KMLSS_NULL_ARGUMENT |
int |
pMatrix,store,basicOptions,scaOptions存在空参数。 |
#include "kml_scadss.h"