|
LMMC
Lamina Mathematic core
|
#include "lmmc/interp.h"结构体 | |
| struct | interp_grid_t |
| struct | interp_spline_workspace_t |
函数 | |
| size_t | interp_find_interval (const lmmc_real_t *xs, size_t n, lmmc_real_t query_x) |
| lmmc_real_t | interp_interval_fraction (lmmc_real_t left, lmmc_real_t right, lmmc_real_t query) |
| 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) |
| int | interp_check_samples (const lmmc_real_t *xs, const lmmc_real_t *ys, size_t n, size_t minimum) |
| lmmc_status_t | interp_barycentric_weights (const lmmc_real_t *nodes, size_t n, lmmc_real_t *weights) |
| lmmc_status_t | interp_check_grid (const interp_grid_t *grid, size_t minimum, const lmmc_real_t *out) |
| void | interp_spline_standard (interp_spline_workspace_t *work, lmmc_spline_bc_t bc, lmmc_real_t deriv_left, lmmc_real_t deriv_right) |
| void | interp_spline_not_a_knot (interp_spline_workspace_t *work) |
| void | interp_spline_periodic (interp_spline_workspace_t *work) |
| struct interp_grid_t |
在文件 interp_internal.h 第 16 行定义.
| 成员变量 | ||
|---|---|---|
| const lmmc_real_t * | xs | |
| const lmmc_real_t * | ys | |
| const lmmc_real_t * | zs | |
| size_t | nx | |
| size_t | ny | |
| lmmc_real_t | qx | |
| lmmc_real_t | qy | |
| struct interp_spline_workspace_t |
在文件 interp_internal.h 第 29 行定义.
| 成员变量 | ||
|---|---|---|
| size_t | n | |
| const lmmc_real_t * | ys | |
| lmmc_real_t * | h | |
| lmmc_real_t * | moments | |
| lmmc_real_t * | sub | |
| lmmc_real_t * | dia | |
| lmmc_real_t * | sup | |
| lmmc_real_t * | rhs | |
| lmmc_real_t * | auxiliary | |
| lmmc_real_t * | diagonal_copy | |
| size_t interp_find_interval | ( | const lmmc_real_t * | xs, |
| size_t | n, | ||
| lmmc_real_t | query_x ) |
被这些函数引用 interp_find_interval(), lmmc_interp_akima_eval(), lmmc_interp_bilinear(), lmmc_interp_cspline_eval(), lmmc_interp_linear() , 以及 lmmc_interp_pchip_eval().
| lmmc_real_t interp_interval_fraction | ( | lmmc_real_t | left, |
| lmmc_real_t | right, | ||
| lmmc_real_t | query ) |
引用了 interp_interval_fraction().
被这些函数引用 interp_interval_fraction(), lmmc_interp_bilinear() , 以及 lmmc_interp_linear().
| int interp_check_strictly_increasing | ( | const lmmc_real_t * | xs, |
| size_t | n ) |
引用了 interp_check_strictly_increasing().
被这些函数引用 interp_check_samples() , 以及 interp_check_strictly_increasing().
| int interp_check_finite_values | ( | const lmmc_real_t * | values, |
| size_t | n ) |
引用了 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().
| int interp_check_samples | ( | const lmmc_real_t * | xs, |
| const lmmc_real_t * | ys, | ||
| size_t | n, | ||
| size_t | minimum ) |
引用了 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().
| lmmc_status_t interp_barycentric_weights | ( | const lmmc_real_t * | nodes, |
| size_t | n, | ||
| lmmc_real_t * | weights ) |
引用了 interp_barycentric_weights(), LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_NUMERICAL_FAILURE , 以及 LMMC_STATUS_OK.
被这些函数引用 interp_barycentric_weights() , 以及 lmmc_interp_lagrange_create().
| lmmc_status_t interp_check_grid | ( | const interp_grid_t * | grid, |
| size_t | minimum, | ||
| const lmmc_real_t * | out ) |
引用了 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().
| void interp_spline_standard | ( | interp_spline_workspace_t * | work, |
| lmmc_spline_bc_t | bc, | ||
| lmmc_real_t | deriv_left, | ||
| lmmc_real_t | deriv_right ) |
在文件 interp_spline_boundary.c 第 42 行定义.
引用了 interp_spline_workspace_t::dia, interp_spline_workspace_t::h, interp_spline_standard(), LMMC_SPLINE_CLAMPED, interp_spline_workspace_t::moments, interp_spline_workspace_t::n, interp_spline_workspace_t::rhs, interp_spline_workspace_t::sub, interp_spline_workspace_t::sup , 以及 interp_spline_workspace_t::ys.
被这些函数引用 interp_spline_standard() , 以及 lmmc_interp_cspline_create_ex().
| void interp_spline_not_a_knot | ( | interp_spline_workspace_t * | work | ) |
三个节点确定唯一二次多项式,其二阶导数为常数。
利用三阶导数连续性消去端点的二阶导数。
在文件 interp_spline_boundary.c 第 65 行定义.
引用了 interp_spline_workspace_t::dia, interp_spline_workspace_t::h, interp_spline_not_a_knot(), interp_spline_workspace_t::moments, interp_spline_workspace_t::n, interp_spline_workspace_t::rhs, interp_spline_workspace_t::sub , 以及 interp_spline_workspace_t::sup.
被这些函数引用 interp_spline_not_a_knot() , 以及 lmmc_interp_cspline_create_ex().
| void interp_spline_periodic | ( | interp_spline_workspace_t * | work | ) |
Sherman-Morrison 修正复用同一三对角系统,分别求解右端项 b 和 u。
在文件 interp_spline_boundary.c 第 93 行定义.
引用了 interp_spline_workspace_t::auxiliary, interp_spline_workspace_t::dia, interp_spline_workspace_t::diagonal_copy, interp_spline_workspace_t::h, interp_spline_periodic(), interp_spline_workspace_t::moments, interp_spline_workspace_t::n, interp_spline_workspace_t::rhs, interp_spline_workspace_t::sub, interp_spline_workspace_t::sup , 以及 interp_spline_workspace_t::ys.
被这些函数引用 interp_spline_periodic() , 以及 lmmc_interp_cspline_create_ex().