---
title: KmlScadssAnalyze
description: "分析输入矩阵，包括Reordering、符号分解等。"
url: https://www.hikunpeng.com/document/detail/zh/kunpenghpcs/hpckit/devg/kunpengaccel_kml_1014.html
sourcePath: /source/zh/kunpenghpcs/hpckit/devg/kunpengaccel_kml_1014.html
indexId: 773198e54cbee369f23718729c855d0624edcf27c4cfbce0dc3b7be60ca43db761
---
# KmlScadssAnalyze

分析输入矩阵，包括Reordering、符号分解等。

#### 接口定义

C Interface：

int KmlScadssAnalyze(KmlScadssSolver *solver, KmlScasolverMatrix *matrix, const KmlDssAnalyzeOption *basicOptions, const KmlScadssAnalyzeOption *scaOptions);


#### 参数

| 参数名 | 类型 | 描述 | 输入/输出 |
| --- | --- | --- | --- |
| solver | KmlScadssSolver \* | 由KmlScadssInit创建的求解器句柄。 | 输入 |
| matrix | KmlScasolverMatrix \* | 矩阵句柄，由KmlScasolverMatrixCreate函数创建，不可为空指针。 | 输入 |
| basicOptions | KmlDssAnalyzeOption \* | 分析阶段基础配置选项，不可为空指针，具体内容如4.3.3.10.2.2\-表1所示。 | 输入 |
| scaOptions | KmlScadssAnalyzeOption \* | 分析阶段分布式配置选项，不可为空指针，具体内容如表1所示。 | 输入 |


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

| 字段名 | 类型 | 描述 |
| --- | --- | --- |
| fieldMask | uint64\_t | 配置生效的字段掩码。非0的位代表配置对应字段指定的值，0的位代表使用默认值，可配置的掩码位见具体字段的说明。 |
| fr | KmlScadssFRAlgo | Fill\-in reduction算法类型，若不指定此掩码，则使用分析阶段基础配置项basicOptions的相关配置项。有如下值。 KMLSCADSS\_FR\_USER表示使用自定义Fill\-in reduction函数。 掩码位：KMLSCADSS\_ANALYSE\_OPTIONS\_FR |
| userFR | KmlScadssUserFRFunc | 用户自定义的分布式Fill\-in reduction算法，使用KmlScadssUserFRFunc结构体描述，见表2。 如果fr字段掩码KMLSCADSS\_FR\_USER未指定，则将忽略该参数。 如果fr字段掩码为KMLSCADSS\_FR\_USER，但userFR.func为NULL，则会出现错误. 掩码位：KMLSCADSS\_ANALYSE\_OPTIONS\_USER\_FR |


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

| 字段名 | 类型 | 描述 |
| --- | --- | --- |
| func | int (\*)(void \*arg, const KmlScadssMatrixPartition \*partition, const KmlSolverMatrixStore \*store, void \*iPerm, MPI\_Comm comm); | 用户自定义的分布式Fill\-in reduction函数，该函数的原型为int (\*func)(void \*arg, const KmlScadssMatrixPartition \*partition, const KmlSolverMatrixStore \*store, void \*iPerm, MPI\_Comm comm); |
| arg | void \* | 用户相关的参数，可以用作用户上下文。在调用func函数时将此作为第一个参数。 |


#### 返回值

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


#### 依赖

#include "kml_scadss.h"
