kml_?_interp_eval_integ
这个函数返回插值函数对于给定点(x)的积分。计算中使用插值对象interp,数据数组xarr,yarr以及加速器xacc。对于x在xarr的区间外,将返回报错信息。
接口定义
int kml_float_interp_eval_integ_e(const kml_float_interp *interp, const float xa[], const float ya[],
float a, float b, kml_interp_accel *acc, float *result)
float kml_float_interp_eval_integ(const kml_float_interp *interp, const float xa[], const float ya[],
float a, float b, kml_interp_accel *acc)
int kml_double_interp_eval_integ_e(const kml_double_interp *interp, const double xa[], const double ya[], double a,
double b, kml_interp_accel *acc, double *result);
double kml_double_interp_eval_integ(const kml_double_interp *interp, const double xa[], const double ya[], double a,
double b, kml_interp_accel *acc);
参数
参数名  | 
类型  | 
描述  | 
输入/输出  | 
|---|---|---|---|
interp  | 
kml_float_interp*, kml_double_interp*  | 
插值对象指针  | 
输入  | 
xa  | 
float, double  | 
存有x值的数组  | 
输入  | 
ya  | 
float, double  | 
存有y值的数组  | 
输入  | 
x  | 
float, double  | 
求解点x的值  | 
输入  | 
y  | 
float, double  | 
求解点y的值  | 
输入  | 
a  | 
kml_interp_accel *  | 
加速器对象指针  | 
输入  | 
依赖
#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_integ(interp, xArr, x, xacc);
kml_float_interp_free(interp);
kml_interp_accel_free(xacc);
free_if_not_null(xArr);