|
LMMC
Lamina Mathematic core
|
#include <float.h>#include <math.h>#include <stdlib.h>#include "memory_bridge.h"#include "lmmc/config.h"#include "lmmc/numeric.h"#include "lmmc/stats.h"#include "statistics_internal.h"函数 | |
| lmmc_status_t | lmmc_vec_median (const lmmc_vec_t *x, lmmc_real_t *out) |
| 计算向量中位数。 | |
| lmmc_status_t | lmmc_vec_quantile (const lmmc_vec_t *x, lmmc_real_t p, lmmc_real_t *out) |
| 计算向量的 p 分位数(线性插值法)。 | |
| lmmc_status_t | lmmc_vec_histogram (const lmmc_vec_t *x, size_t nbins, lmmc_real_t *edges, size_t *counts) |
| 计算向量的等宽直方图。 | |
| lmmc_status_t lmmc_vec_median | ( | const lmmc_vec_t * | x, |
| lmmc_real_t * | out ) |
计算向量中位数。
内部会复制并排序数据。对偶数长度使用无溢出的浮点中点计算。 所有观测值必须有限;非有限观测不会进入排序比较器。
| [in] | x | 输入有限向量,size >= 1。 |
| [out] | out | 输出中位数。 |
x 。 在文件 statistics_selection.c 第 26 行定义.
引用了 lmmc_vec_t::data, lmmc_memory_alloc_array(), lmmc_memory_free(), LMMC_STATUS_ALLOCATION_FAILED, LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_NUMERICAL_FAILURE, LMMC_STATUS_OK, lmmc_vec_median() , 以及 lmmc_vec_t::size.
被这些函数引用 lmmc_std_stats_median() , 以及 lmmc_vec_median().
| lmmc_status_t lmmc_vec_quantile | ( | const lmmc_vec_t * | x, |
| lmmc_real_t | p, | ||
| lmmc_real_t * | out ) |
计算向量的 p 分位数(线性插值法)。
非有限概率会在转换为数组索引前拒绝;所有观测值必须有限。
| [in] | x | 输入有限向量,size >= 1。 |
| [in] | p | 有限分位数,范围 [0, 1]。 |
| [out] | out | 输出分位数值。 |
使用与 NumPy 默认方式相同的线性插值。
在文件 statistics_selection.c 第 56 行定义.
引用了 lmmc_vec_t::data, lmmc_memory_alloc_array(), lmmc_memory_free(), LMMC_STATUS_ALLOCATION_FAILED, LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_NUMERICAL_FAILURE, LMMC_STATUS_OK, lmmc_vec_quantile() , 以及 lmmc_vec_t::size.
被这些函数引用 lmmc_std_stats_quantile() , 以及 lmmc_vec_quantile().
| lmmc_status_t lmmc_vec_histogram | ( | const lmmc_vec_t * | x, |
| size_t | nbins, | ||
| lmmc_real_t * | edges, | ||
| size_t * | counts ) |
计算向量的等宽直方图。
将有限数据范围 [min, max] 等分为 nbins 个区间。跨零范围采用 凸组合构造边界,避免 max-min 的中间溢出;分箱使用缩放后的归一化 坐标,保持线性时间复杂度。最后一个区间包含右端点。
| [in] | x | 输入有限向量,size >= 1。 |
| [in] | nbins | 区间数,必须 >= 1。 |
| [out] | edges | 输出区间边界数组,长度 nbins+1,调用方预分配。 |
| [out] | counts | 输出每个区间的计数,长度 nbins,调用方预分配。 |
在文件 statistics_selection.c 第 182 行定义.
引用了 lmmc_vec_t::data, LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_NUMERICAL_FAILURE, LMMC_STATUS_OK, lmmc_vec_histogram() , 以及 lmmc_vec_t::size.
被这些函数引用 lmmc_vec_histogram().