|
LMMC
Lamina Mathematic core
|
#include "internal/quadrature_internal.h"结构体 | |
| struct | lmmc_quad_tanh_sinh_state_t |
| 双指数映射:x(t) = center + half_length*tanh(pi/2*sinh(t))。 更多... | |
函数 | |
| lmmc_status_t | lmmc_quad_tanh_sinh (lmmc_quad_func_t f, void *ud, lmmc_real_t a, lmmc_real_t b, lmmc_real_t abs_tol, size_t max_nodes, lmmc_quad_result_t *out) |
| Tanh-Sinh(双指数)积分,适用于端点奇异性。 | |
| struct lmmc_quad_tanh_sinh_state_t |
双指数映射:x(t) = center + half_length*tanh(pi/2*sinh(t))。
在文件 quadrature_tanh_sinh.c 第 4 行定义.
| 成员变量 | ||
|---|---|---|
| lmmc_quad_func_t | func | |
| void * | user_data | |
| lmmc_real_t | a | |
| lmmc_real_t | b | |
| lmmc_real_t | center | |
| lmmc_real_t | half_length | |
| size_t | max_nodes | |
| size_t | num_evals | |
| lmmc_status_t lmmc_quad_tanh_sinh | ( | lmmc_quad_func_t | f, |
| void * | ud, | ||
| lmmc_real_t | a, | ||
| lmmc_real_t | b, | ||
| lmmc_real_t | abs_tol, | ||
| size_t | max_nodes, | ||
| lmmc_quad_result_t * | out ) |
Tanh-Sinh(双指数)积分,适用于端点奇异性。
利用 \(\tanh(\frac{\pi}{2}\sinh t)\) 变换将端点奇异性映射为指数衰减。 因浮点舍入落到精确端点的节点不调用 f,其极限权重贡献按零处理; 非端点回调的 NaN 或无穷值仍返回数值失败。 对端点处有代数或对数奇异性的被积函数特别有效。
| [in] | f | 被积函数回调。 |
| [in] | ud | 用户数据指针,传递给 f 。 |
| [in] | a | 积分下限。 |
| [in] | b | 积分上限。 |
| [in] | abs_tol | 绝对容差,范围 [1e-15, 1e-1]。 |
| [in] | max_nodes | 实际回调次数的总预算,范围 [1, 1000000]。 |
| [out] | out | 积分结果(值、误差估计、求值次数)。 |
f。 max_nodes 次。在文件 quadrature_tanh_sinh.c 第 136 行定义.
引用了 lmmc_quad_tanh_sinh_state_t::a, lmmc_quad_tanh_sinh_state_t::b, lmmc_quad_tanh_sinh_state_t::center, lmmc_quad_result_t::error, lmmc_quad_tanh_sinh_state_t::func, lmmc_quad_tanh_sinh_state_t::half_length, lmmc_quad_center_half_length(), lmmc_quad_tanh_sinh(), LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_NUMERICAL_FAILURE, lmmc_quad_tanh_sinh_state_t::max_nodes, lmmc_quad_result_t::num_evals, lmmc_quad_tanh_sinh_state_t::user_data , 以及 lmmc_quad_result_t::value.
被这些函数引用 lmmc_quad_tanh_sinh().