|
ViewDesignEngine
3.1.0
高性能 CAD 计算几何引擎
|
双精度区间算术类 更多...
#include <interval.h>
Public 成员函数 | |
| Interval () | |
| 默认构造:空区间 [0, 0] 更多... | |
| Interval (double v) | |
| 从单值构造精确区间(退化为点) 更多... | |
| Interval (double l, double h) | |
| 从上下界构造区间 更多... | |
| double | mid () const |
| 区间中点 更多... | |
| double | width () const |
| 区间宽度 更多... | |
| bool | contains (double v) const |
| 判断区间是否包含给定值 更多... | |
| bool | is_exact (double eps=1e-12) const |
| 判断区间是否足够窄(收敛) 更多... | |
| bool | overlaps (const Interval &o) const |
| 判断两个区间是否有重叠 更多... | |
| int | cmp (const Interval &o) const |
| 确定性区间比较 更多... | |
| Interval | operator+ (const Interval &o) const |
| 区间加法 更多... | |
| Interval | operator- (const Interval &o) const |
| 区间减法 更多... | |
| Interval | operator* (const Interval &o) const |
| 区间乘法 更多... | |
| Interval | operator/ (const Interval &o) const |
| 区间除法 更多... | |
| Interval | operator- () const |
| 取负 更多... | |
| Interval | sqrt () const |
| 区间平方根 更多... | |
静态 Public 成员函数 | |
| static Interval | from_double (double v, double error=0) |
| 从双精度值创建区间(含舍入误差带) 更多... | |
| static Interval | from_coord (double v) |
| 从坐标值创建区间(含 ULP 误差带) 更多... | |
Public 属性 | |
| double | lo |
| double | hi |
双精度区间算术类
存储区间 [lo, hi] 的上下边界,支持区间算术运算和确定性比较。 主要用于验证浮点计算的可靠性:若区间结果不跨越零,则可确定符号; 若跨越零,则说明双精度不足以确定结果,需要更高精度或精确算术。
区间运算遵循保守原则(结果区间包含所有可能的真实值), 即 out = [min(所有组合), max(所有组合)]。
在文件 interval.h 第 20 行定义.
|
inline |
默认构造:空区间 [0, 0]
在文件 interval.h 第 25 行定义.
|
inline |
|
inline |
|
inline |
确定性区间比较
仅当两个区间无重叠时才能确定大小关系。
| o | 另一个区间 |
在文件 interval.h 第 96 行定义.
|
inline |
|
inlinestatic |
从坐标值创建区间(含 ULP 误差带)
误差估计为 |v| * 2.22e-16 + 1e-300,即双精度最小单位。
| v | 坐标值 |
在文件 interval.h 第 181 行定义.
|
inlinestatic |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
| double vde::foundation::Interval::hi |
在文件 interval.h 第 22 行定义.
被这些函数引用 cmp(), contains(), mid(), operator*(), operator+(), operator-(), operator/(), overlaps(), sqrt() , 以及 width().
| double vde::foundation::Interval::lo |
在文件 interval.h 第 22 行定义.
被这些函数引用 cmp(), contains(), mid(), operator*(), operator+(), operator-(), operator/(), overlaps(), sqrt() , 以及 width().