LMMC
Lamina Mathematic core
载入中...
搜索中...
未找到
interp.c 文件参考
#include "internal.h"
#include "internal/interp_internal.h"
#include <math.h>
interp.c 的引用(Include)关系图:

浏览该文件的源代码.

函数

size_t interp_find_interval (const lmmc_real_t *xs, size_t n, lmmc_real_t query_x)
int interp_check_strictly_increasing (const lmmc_real_t *xs, size_t n)
int interp_check_finite_values (const lmmc_real_t *values, size_t n)
lmmc_status_t interp_barycentric_weights (const lmmc_real_t *nodes, size_t n, lmmc_real_t *weights)
int interp_check_samples (const lmmc_real_t *xs, const lmmc_real_t *ys, size_t n, size_t minimum)
lmmc_status_t interp_check_grid (const interp_grid_t *grid, size_t minimum, const lmmc_real_t *out)
lmmc_real_t interp_interval_fraction (lmmc_real_t left, lmmc_real_t right, lmmc_real_t query)
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]) 间做分段线性插值.

函数说明

◆ interp_find_interval()

size_t interp_find_interval ( const lmmc_real_t * xs,
size_t n,
lmmc_real_t query_x )

在文件 interp.c 第 6 行定义.

引用了 interp_find_interval().

被这些函数引用 interp_find_interval(), lmmc_interp_akima_eval(), lmmc_interp_bilinear(), lmmc_interp_cspline_eval(), lmmc_interp_linear() , 以及 lmmc_interp_pchip_eval().

函数调用图:
这是这个函数的调用关系图:

◆ interp_check_strictly_increasing()

int interp_check_strictly_increasing ( const lmmc_real_t * xs,
size_t n )

在文件 interp.c 第 18 行定义.

引用了 interp_check_strictly_increasing().

被这些函数引用 interp_check_samples() , 以及 interp_check_strictly_increasing().

函数调用图:
这是这个函数的调用关系图:

◆ interp_check_finite_values()

int interp_check_finite_values ( const lmmc_real_t * values,
size_t n )

在文件 interp.c 第 33 行定义.

引用了 interp_check_finite_values().

被这些函数引用 interp_check_finite_values(), interp_check_samples(), lmmc_interp_akima_create(), lmmc_interp_cspline_create_ex(), lmmc_interp_lagrange_create() , 以及 lmmc_interp_pchip_create().

函数调用图:
这是这个函数的调用关系图:

◆ interp_barycentric_weights()

lmmc_status_t interp_barycentric_weights ( const lmmc_real_t * nodes,
size_t n,
lmmc_real_t * weights )

在文件 interp.c 第 48 行定义.

引用了 interp_barycentric_weights(), LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_NUMERICAL_FAILURE , 以及 LMMC_STATUS_OK.

被这些函数引用 interp_barycentric_weights() , 以及 lmmc_interp_lagrange_create().

函数调用图:
这是这个函数的调用关系图:

◆ interp_check_samples()

int interp_check_samples ( const lmmc_real_t * xs,
const lmmc_real_t * ys,
size_t n,
size_t minimum )

在文件 interp.c 第 83 行定义.

引用了 interp_check_finite_values(), interp_check_samples() , 以及 interp_check_strictly_increasing().

被这些函数引用 interp_check_samples(), lmmc_interp_akima_create(), lmmc_interp_cspline_create_ex(), lmmc_interp_linear() , 以及 lmmc_interp_pchip_create().

函数调用图:
这是这个函数的调用关系图:

◆ interp_check_grid()

lmmc_status_t interp_check_grid ( const interp_grid_t * grid,
size_t minimum,
const lmmc_real_t * out )

在文件 interp.c 第 106 行定义.

引用了 interp_check_grid(), LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_OK, LMMC_STATUS_OUT_OF_RANGE, interp_grid_t::nx, interp_grid_t::ny, interp_grid_t::qx, interp_grid_t::qy, interp_grid_t::xs, interp_grid_t::ys , 以及 interp_grid_t::zs.

被这些函数引用 interp_check_grid(), lmmc_interp_bicubic() , 以及 lmmc_interp_bilinear().

函数调用图:
这是这个函数的调用关系图:

◆ interp_interval_fraction()

lmmc_real_t interp_interval_fraction ( lmmc_real_t left,
lmmc_real_t right,
lmmc_real_t query )

在文件 interp.c 第 125 行定义.

引用了 interp_interval_fraction().

被这些函数引用 interp_interval_fraction(), lmmc_interp_bilinear() , 以及 lmmc_interp_linear().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_interp_linear()

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]) 间做分段线性插值.

内部对横坐标归一化,并按符号选择溢出安全的仿射组合;因此有限端点 跨越完整浮点范围时仍可计算有限的区间内插值。

参数
[in]xs严格升序的节点 x 数组.
[in]ys对应的 y 值数组.
[in]n节点数,至少 2 .
[in]query_x查询点.
[out]out_y输出插值结果.超出 [xs[0], xs[n-1]] 范围返回 LMMC_STATUS_OUT_OF_RANGE .
返回
非有限输入或非严格升序节点返回 ::LMMC_STATUS_INVALID_ARGUMENT; 算术溢出返回 ::LMMC_STATUS_NUMERICAL_FAILURE。

在文件 interp.c 第 155 行定义.

引用了 interp_check_samples(), interp_find_interval(), interp_interval_fraction(), lmmc_interp_linear(), LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_NUMERICAL_FAILURE, LMMC_STATUS_OK , 以及 LMMC_STATUS_OUT_OF_RANGE.

被这些函数引用 lmmc_interp_linear().

函数调用图:
这是这个函数的调用关系图: