chronaxis.core.integral_sum_numpy
按原顺序累加各段积分面积,并用NumPy保存浮点误差项,减少大数相减后丢失小数的情况。每次push处理一块面积,finish返回当前总和并换算输出单位。partial_limit限制误差项数量;容量不足会报错。中途溢出后,后续抵消不会把结果恢复为正常值。
这是模块参考。日常调用先查公开API索引;下划线对象和嵌套函数供维护者查阅。签名来自固定源码,公开类构造签名经实际Python接口核对。
相关类型
IntegralStateLimitError、IntegralSumResult、NumpyIntegralTerms、QualityFlag(源码别名Q)
对象导航
| 对象 | 用途 |
|---|---|
NumpyIntegralSum |
保存有限 float64 误差项和有效项计数,保持跨块原序及持久溢出状态。 |
NumpyIntegralSum.__init__ |
建立独立的空数组误差状态。 |
NumpyIntegralSum.valid_term_count |
返回已经处理的有效面积项数;即使累计中途溢出,导致溢出的项及后续有效项仍计数。 |
NumpyIntegralSum.calculation_failed |
返回累计是否已经发生数值计算失败,例如累加结果变成无穷大。True表示本次累计不能作为正常积分值,即使后续又读到了有效数据也不能当先前错误没发生。 |
NumpyIntegralSum.partial_count |
读取当前持有的非零误差项数,不暴露可修改的数组。 |
NumpyIntegralSum.push |
按原顺序逐项累加当前块中的有效面积,不先把整块相加成一个数。 |
NumpyIntegralSum.push_values |
直接累加给定的浮点数序列,不要求调用方先构造积分面积对象。 |
NumpyIntegralSum._advance |
生成一项的独立误差候选,不提前改写当前状态。 |
NumpyIntegralSum.finish |
正确舍入当前误差状态,再做一次输出单位换算,返回独立快照。 |
NumpyIntegralSum._rounded |
从最大误差项向小项求和,在首个舍入误差处完成半偶修正。 |
导入与重导出来源(展开)
from .integral_sum import IntegralStateLimitError, IntegralSumResult, require_partial_limit, require_sum_finish
from .integral_terms_numpy import NumpyIntegralTerms
from .types import QualityFlag as QNumpyIntegralSum
保存有限 float64 误差项和有效项计数,保持跨块原序及持久溢出状态。
partials 只在完整单项候选满足容量后安装,不按输入项数增长;中途溢出 清空数值状态并永久标失败,但后续有效面积仍计数。输入和已返回结果不被修改。
NumpyIntegralSum(partial_limit: int=4096)源码:src/chronaxis/core/integral_sum_numpy.py:21(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。
NumpyIntegralSum.__init__
建立独立的空数组误差状态。
NumpyIntegralSum.__init__(partial_limit: int=4096)参数
| 名称 | 数据类型 | 必填 | 省略时的值 | 用途、取值和效果 |
|---|---|---|---|---|
partial_limit |
int | 否 | 4096 | 位置或关键字。大于0的整数,限制浮点累加时保留的误差补偿项数量。默认4096;它不是样本数上限,也不是允许出现多少次错误。超过容量会报错。 |
返回说明
无;初始化有效项数 0、累计故障 False 及空 float64 数组。
异常说明
TypeError/ValueError 为限额不合法;内存分配错误直接传播。
源码:src/chronaxis/core/integral_sum_numpy.py:28(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。
NumpyIntegralSum.valid_term_count
返回已经处理的有效面积项数;即使累计中途溢出,导致溢出的项及后续有效项仍计数。
NumpyIntegralSum.valid_term_count: int装饰器:property。
读取属性,不使用调用括号。
参数说明
无。
返回说明
非负原生 int。
异常说明
无。
返回类型:int。
源码:src/chronaxis/core/integral_sum_numpy.py:42(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。
NumpyIntegralSum.calculation_failed
返回累计是否已经发生数值计算失败,例如累加结果变成无穷大。True表示本次累计不能作为正常积分值,即使后续又读到了有效数据也不能当先前错误没发生。
NumpyIntegralSum.calculation_failed: bool装饰器:property。
读取属性,不使用调用括号。
参数说明
无。
返回说明
bool;finish 的单位换算故障不修改本属性。
异常说明
无。
返回类型:bool。
源码:src/chronaxis/core/integral_sum_numpy.py:51(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。
NumpyIntegralSum.partial_count
读取当前持有的非零误差项数,不暴露可修改的数组。
NumpyIntegralSum.partial_count: int装饰器:property。
读取属性,不使用调用括号。
参数说明
无。
返回说明
不超过 partial_limit 的原生 int。
异常说明
无。
返回类型:int。
源码:src/chronaxis/core/integral_sum_numpy.py:60(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。
NumpyIntegralSum.push
按原顺序逐项累加当前块中的有效面积,不先把整块相加成一个数。
NumpyIntegralSum.push(terms: NumpyIntegralTerms) -> None参数
| 名称 | 数据类型 | 必填 | 省略时的值 | 用途、取值和效果 |
|---|---|---|---|---|
terms |
NumpyIntegralTerms | 是 | 无 | 位置或关键字。terms 为已校验的只读 float64 面积、bool 掩码和 IntegralFacts。 |
返回说明
None;安装成功的单项更新状态和有效计数,输入数组保持原样。
异常说明
TypeError 为输入类型错误;IntegralStateLimitError 为候选容量超限; 分配或取消错误传播。超限项不安装,其前面已成功消费的项保留。
返回类型:None。
源码:src/chronaxis/core/integral_sum_numpy.py:68(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。
NumpyIntegralSum.push_values
直接累加给定的浮点数序列,不要求调用方先构造积分面积对象。
NumpyIntegralSum.push_values(values: np.ndarray, valid: np.ndarray) -> None参数
| 名称 | 数据类型 | 必填 | 省略时的值 | 用途、取值和效果 |
|---|---|---|---|---|
values |
numpy.ndarray[float64] | 是 | 无 | 位置或关键字。当前这批要累加的数值;按输入顺序处理,不修改输入。 |
valid |
numpy.ndarray[bool] | 是 | 无 | 位置或关键字。每个值是否有效,与values等长;True参加累加,False位置不贡献数值。 |
返回说明
None;原序推进、容量、中间溢出及finish行为与积分入口相同。
异常说明
TypeError/ValueError 为结构或写保护错误;容量、分配和取消传播。 内存: 检查掩码与索引均为当前有限(N,)临时列,调用方必须先预约预算。
返回类型:None。
源码:src/chronaxis/core/integral_sum_numpy.py:86(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。
NumpyIntegralSum._advance
生成一项的独立误差候选,不提前改写当前状态。
NumpyIntegralSum._advance(area: np.float64) -> np.ndarray | None参数
| 名称 | 数据类型 | 必填 | 省略时的值 | 用途、取值和效果 |
|---|---|---|---|---|
area |
np.float64 | 是 | 无 | 位置或关键字。area 为有限 float64 面积,量纲仍为 input_unit 乘秒。 |
返回说明
float64 形状 (K,) 的新候选,K 不超过限额;中途非有限返回 None。
异常说明
IntegralStateLimitError 为候选超限;分配和取消错误传播。
本函数直接报告的具体错误:
IntegralStateLimitError:数组积分误差状态超过 partial_limit。
返回类型:np.ndarray | None。
源码:src/chronaxis/core/integral_sum_numpy.py:125(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。
NumpyIntegralSum.finish
正确舍入当前误差状态,再做一次输出单位换算,返回独立快照。
NumpyIntegralSum.finish(unit: str, factor: float=1.0) -> IntegralSumResult参数
| 名称 | 数据类型 | 必填 | 省略时的值 | 用途、取值和效果 |
|---|---|---|---|---|
unit |
str | 是 | 无 | 位置或关键字。unit 为非空输出单位 |
factor |
float | 否 | 1.0 | 位置或关键字。factor 为正有限原生 float,仅在最后相乘。 |
返回说明
IntegralSumResult;没有有效项为 None,有效全零为 +0.0;累计或 换算非有限为 NONFINITE,非零换算下溢为 PRECISION_LOSS,均标计算失败。
异常说明
TypeError/ValueError 为参数错误;分配或取消错误传播。
返回类型:IntegralSumResult。
源码:src/chronaxis/core/integral_sum_numpy.py:161(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。
NumpyIntegralSum._rounded
从最大误差项向小项求和,在首个舍入误差处完成半偶修正。
NumpyIntegralSum._rounded() -> np.float64参数:无显式参数。
参数说明
无;当前状态必须至少包含一个非零有限 partial。
返回说明
当前原量纲的正确舍入 float64;不修改误差数组。
异常说明
分配或取消错误传播;数值非有限由 finish 分类。
返回类型:np.float64。
源码:src/chronaxis/core/integral_sum_numpy.py:190(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。