---
title: kml_?_interp_eval_deriv
description: "这个函数返回插值函数对于给定点(x)的微分。计算中使用插值对象interp，数据数组xarr，yarr以及加速器xacc。对于x在xarr的区间外，将返回报错信息。"
url: https://www.hikunpeng.com/document/detail/zh/kunpenghpcs/hpckit/devg/kunpengaccel_kml_0541.html
sourcePath: /source/zh/kunpenghpcs/hpckit/devg/kunpengaccel_kml_0541.html
indexId: 90b02a4a6f98e6dbf2758e7882fc3ac7f4425add969798d8abec1c9c06a91e7161
---
# kml_?_interp_eval_deriv

这个函数返回插值函数对于给定点(x)的微分。计算中使用插值对象interp，数据数组xarr，yarr以及加速器xacc。对于x在xarr的区间外，将返回报错信息。

#### 接口定义

int kml_float_interp_eval_deriv_e(const kml_float_interp *interp, const float xa[], const float ya[], float x,

kml_interp_accel *a, float *dydx)

float kml_float_interp_eval_deriv(const kml_float_interp *interp, const float xa[], const float ya[], float x,

kml_interp_accel *a)

int kml_double_interp_eval_deriv_e(const kml_double_interp *interp, const double xa[], const double ya[], double x,

kml_interp_accel *a, double *dydx);

double kml_double_interp_eval_deriv(const kml_double_interp *interp, const double xa[], const double ya[], double x,

kml_interp_accel *a);


#### 参数

| 参数名 | 类型 | 描述 | 输入/输出 |
| --- | --- | --- | --- |
| interp | kml\_float\_interp\*, kml\_double\_interp\* | 插值对象指针 | 输入 |
| xa | float, double | 存有x值的数组 | 输入 |
| ya | float, double | 存有y值的数组 | 输入 |
| x | float, double | 求解点x的值 | 输入 |
| a | kml\_interp\_accel \* | 加速器对象指针 | 输入 |
| dydx | float, double | 定点x处的二阶微分 | 输入 |


#### 依赖

#include "kipl.h"


#### 示例

```
const size_t xMin = 4;
const size_t xMax = 2048;
const size_t xSize = 4;
const float xValLo = 1;
const float xValHi = 2;
float xArr[4] = {1,1.33,1.67,2};
float* yArr = (float*)malloc(xSize * sizeof(float));
float x = 1;
float y = 0;
kml_float_interp *interp = kml_float_interp_alloc(kml_float_interp_cspline, xSize);
kml_interp_accel *xacc = kml_interp_accel_alloc();
kml_float_interp_init(interp, xSize, xArr, yArr);
y = kml_float_interp_eval_deriv(interp, xArr, yArr, x, xacc);
kml_float_interp_free(interp);
kml_interp_accel_free(xacc);
```
