---
title: KmlScaissGmresSetUserSpmv?
description: "关联用户自定义矩阵向量乘函数，需要与无矩阵初始化接口一起使用。"
url: https://www.hikunpeng.com/document/detail/zh/kunpenghpcs/hpckit/devg/kunpengaccel_kml_0940.html
sourcePath: /source/zh/kunpenghpcs/hpckit/devg/kunpengaccel_kml_0940.html
indexId: 6ff3180e84ed18ead815a118ddaff248730c27d0142fbc8c3158d9ec3d60498b61
---
# KmlScaissGmresSetUserSpmv?

关联用户自定义矩阵向量乘函数，需要与无矩阵初始化接口一起使用。

#### 接口定义

C Interface:

int KmlScaissGmresSetUserSpmvSI(KmlScasolverTask **handle, void *ustruct, int (*fptr)(void *ustruct, const float *x, float *y));

int KmlScaissGmresSetUserSpmvDI(KmlScasolverTask **handle, void *ustruct, int (*fptr)(void *ustruct, const double *x, double *y));


#### 参数

| 参数名 | 类型 | 描述 | 输入/输出 |
| --- | --- | --- | --- |
| handle | KmlScasolverTask \*\* | 求解器句柄，传入之前步骤的变量。 | 输入/输出 |
| ustruct | void \* | 指向用户数据的指针，每次调用预条件子时作为第一个参数传递。 | 输入 |
| (\*fptr) | int | 用户自定义的函数指针，指向矩阵向量乘函数，该矩阵向量乘函数进行矩阵与其第二参数间的计算。 | 输入 |


#### 返回值

| 返回值 | 类型 | 描述 |
| --- | --- | --- |
| KMLSS\_NO\_ERROR | int | 正常执行。 |
| KMLSS\_DATA\_SIZE | int | 参数nd不等于1。 |
| KMLSS\_NULL\_ARGUMENT | int | handle，data中存在空参数。 |
