LMMC
Lamina Mathematic core
载入中...
搜索中...
未找到
interp.h
浏览该文件的文档.
1
7#ifndef LMMC_INTERP_H
8#define LMMC_INTERP_H
9
10#include "lmmc/config.h"
11#include "lmmc/status.h"
12#include <stddef.h>
13
14#ifdef __cplusplus
15extern "C" {
16#endif
17
33 const lmmc_real_t* xs,
34 const lmmc_real_t* ys,
35 size_t n,
36 lmmc_real_t query_x,
37 lmmc_real_t* out_y
38);
39
42
52
72 const lmmc_real_t* xs,
73 const lmmc_real_t* ys,
74 size_t n,
75 lmmc_interp_cspline_t** out_spline
76);
77
107 const lmmc_real_t* xs,
108 const lmmc_real_t* ys,
109 size_t n,
111 lmmc_real_t deriv_left,
112 lmmc_real_t deriv_right,
113 lmmc_interp_cspline_t** out_spline
114);
115
118 const lmmc_interp_cspline_t* spline,
119 lmmc_real_t query_x,
120 lmmc_real_t* out_y
121);
122
125
128
153 const lmmc_real_t* xs,
154 const lmmc_real_t* ys,
155 size_t n,
157);
158
161 const lmmc_interp_pchip_t* p,
162 lmmc_real_t x,
163 lmmc_real_t* out_y
164);
165
168
171
196 const lmmc_real_t* xs,
197 const lmmc_real_t* ys,
198 size_t n,
200);
201
204 const lmmc_interp_akima_t* a,
205 lmmc_real_t x,
206 lmmc_real_t* out_y
207);
208
211
214
221 const lmmc_real_t* xs,
222 const lmmc_real_t* ys,
223 size_t n,
224 lmmc_interp_lagrange_t** out_lagrange
225);
226
229 const lmmc_interp_lagrange_t* lagrange,
230 lmmc_real_t query_x,
231 lmmc_real_t* out_y
232);
233
236
250 const lmmc_real_t* xs, size_t nx,
251 const lmmc_real_t* ys, size_t ny,
252 const lmmc_real_t* zs,
254 lmmc_real_t* out_z
255);
256
281 const lmmc_real_t* xs, size_t nx,
282 const lmmc_real_t* ys, size_t ny,
283 const lmmc_real_t* zs,
285 lmmc_real_t* out_z
286);
287
288#ifdef __cplusplus
289}
290#endif
291
292#endif
LMMC binary real type and arithmetic spelling.
double lmmc_real_t
Public and internal LMMC real type.
void lmmc_interp_pchip_destroy(lmmc_interp_pchip_t *p)
销毁 PCHIP 插值上下文,释放内部分配的所有内存.
lmmc_status_t lmmc_interp_akima_create(const lmmc_real_t *xs, const lmmc_real_t *ys, size_t n, lmmc_interp_akima_t **out)
由节点构造 Akima 局部三次插值.
lmmc_status_t lmmc_interp_cspline_eval(const lmmc_interp_cspline_t *spline, lmmc_real_t query_x, lmmc_real_t *out_y)
在样条上求值.
lmmc_status_t lmmc_interp_cspline_create(const lmmc_real_t *xs, const lmmc_real_t *ys, size_t n, lmmc_interp_cspline_t **out_spline)
由节点构造自然三次样条.
lmmc_status_t lmmc_interp_lagrange_eval(const lmmc_interp_lagrange_t *lagrange, lmmc_real_t query_x, lmmc_real_t *out_y)
在 Lagrange 插值多项式上求值.
lmmc_spline_bc_t
样条边界条件类型.
@ LMMC_SPLINE_NOT_A_KNOT
@ LMMC_SPLINE_CLAMPED
@ LMMC_SPLINE_NATURAL
@ LMMC_SPLINE_PERIODIC
void lmmc_interp_akima_destroy(lmmc_interp_akima_t *a)
销毁 Akima 插值上下文,释放内部分配的所有内存.
lmmc_status_t lmmc_interp_pchip_create(const lmmc_real_t *xs, const lmmc_real_t *ys, size_t n, lmmc_interp_pchip_t **out)
由节点构造 PCHIP 单调三次插值.
lmmc_status_t lmmc_interp_pchip_eval(const lmmc_interp_pchip_t *p, lmmc_real_t x, lmmc_real_t *out_y)
在 PCHIP 插值上求值.
lmmc_status_t lmmc_interp_cspline_create_ex(const lmmc_real_t *xs, const lmmc_real_t *ys, size_t n, lmmc_spline_bc_t bc, lmmc_real_t deriv_left, lmmc_real_t deriv_right, lmmc_interp_cspline_t **out_spline)
由节点构造带指定边界条件的三次样条.
lmmc_status_t lmmc_interp_bicubic(const lmmc_real_t *xs, size_t nx, const lmmc_real_t *ys, size_t ny, const lmmc_real_t *zs, lmmc_real_t qx, lmmc_real_t qy, lmmc_real_t *out_z)
双三次插值(矩形网格).
void lmmc_interp_lagrange_destroy(lmmc_interp_lagrange_t *lagrange)
销毁 Lagrange 插值上下文.
lmmc_status_t lmmc_interp_akima_eval(const lmmc_interp_akima_t *a, lmmc_real_t x, lmmc_real_t *out_y)
在 Akima 插值上求值.
lmmc_status_t lmmc_interp_linear(const lmmc_real_t *xs, const lmmc_real_t *ys, size_t n, lmmc_real_t query_x, lmmc_real_t *out_y)
在节点 (xs[i], ys[i]) 间做分段线性插值.
lmmc_status_t lmmc_interp_bilinear(const lmmc_real_t *xs, size_t nx, const lmmc_real_t *ys, size_t ny, const lmmc_real_t *zs, lmmc_real_t qx, lmmc_real_t qy, lmmc_real_t *out_z)
双线性插值(矩形网格).
void lmmc_interp_cspline_destroy(lmmc_interp_cspline_t *spline)
销毁三次样条上下文,释放内部分配的所有内存.
lmmc_status_t lmmc_interp_lagrange_create(const lmmc_real_t *xs, const lmmc_real_t *ys, size_t n, lmmc_interp_lagrange_t **out_lagrange)
由节点构造 Lagrange 插值多项式(基于重心权重).
Lagrange 多项式插值上下文(不透明类型).
Akima 插值上下文(不透明类型).
PCHIP 插值上下文(不透明类型).
三次样条插值上下文(不透明类型,自然边界条件).
LMMC 通用状态码定义.
lmmc_status_t
LMMC 库统一返回的状态码.