---
title: KmlAmgPrecondCreate
description: "创建预条件子句柄。"
url: https://www.hikunpeng.com/document/detail/zh/kunpenghpcs/hpckit/devg/kunpengaccel_kml_0983.html
sourcePath: /source/zh/kunpenghpcs/hpckit/devg/kunpengaccel_kml_0983.html
indexId: bae30772a18350c9efc7d023f8e6984f36df423104f43001de0fe6ba6e4dde1461
---
# KmlAmgPrecondCreate

创建预条件子句柄。

#### 接口定义

C Interface：KmlAmgStatus KmlAmgPrecondCreate(KmlAmgPrecondH* precond, const KmlAmgPrecondOptions* options);


#### 参数

| 参数名 | 类型 | 描述 | 输入/输出 |
| --- | --- | --- | --- |
| precond | KmlAmgPrecondH\* | 预条件子句柄，precond不可为空指针 | 输入/输出 |
| options | const KmlAmgPrecondOptions\* | 预条件子配置选项 | 输入 |


#### 返回值

| 返回值 | 类型 | 描述 |
| --- | --- | --- |
| KMLAMG\_SUCCESS | int | 运行成功 |
| KMLAMG\_ERR\_INVALID\_PARAM | int | 参数无效 |
| KMLAMG\_ERR\_UNSUPPORTED | int | 功能暂不支持 |
| KMLAMG\_ERR\_NULL\_POINTER | int | 空指针 |
| KMLAMG\_ERR\_NO\_REQUIRED\_FIELD | int | 没有设置必需字段 |
| KMLAMG\_ERR\_NO\_MEMORY | int | 内存分配失败 |
| KMLAMG\_ERR\_UNKNOWN\_TYPE | int | 未知的类型 |
| KMLAMG\_ERR\_UNEXPECTED\_CALL\_ORDER | int | 预期之外的调用顺序 |
| KMLAMG\_ERR\_NO\_RESOURCE | int | 资源未就绪 |
| KMLAMG\_ERR\_INCONSISTENT | int | 不同阶段传递的信息不一致 |
| KMLAMG\_ERR\_UNKNOWN\_ERROR | int | 未知错误 |


#### 结构体说明

KmlAmgPrecondOptions结构体描述：

| 字段名 | 类型 | 描述 |
| --- | --- | --- |
| fieldMask | uint64\_t | 配置生效的字段掩码。非0的位代表配置对应字段指定的值，0的位代表使用默认值，可配置的掩码位见具体字段的说明。 |
| valueType | KmlAmgValueType | 预条件子矩阵数值类型 KMLAMG\_VALUE\_FP32表示float KMLAMG\_VALUE\_FP64表示double 掩码位：KMLAMG\_PRECOND\_OPTIONS\_VALUE\_TYPE |
| indexType | KmlAmgIndexType | 预条件子矩阵索引类型 KMLAMG\_INDEX\_INT32表示int32\_t KMLAMG\_INDEX\_INT64表示int64\_t（暂不支持） 掩码位：KMLAMG\_PRECOND\_OPTIONS\_INDEX\_TYPE |
| precondType | KmlAmgPrecondType | 预条件子类型有如下值： KMLAMG\_PRECOND\_AMG表示amg预条件子 掩码位：KMLAMG\_PRECOND\_OPTIONS\_TYPE |
| numThreads | int32\_t | 线程数 掩码位：KMLAMG\_PRECOND\_OPTIONS\_NUM\_THREADS |


#### 依赖

#include "amg4c.h"
