浮点测试初探
浮点计算的实现
浮点的计算可以有两种实现思路1. 软件实现浮点转定点,依靠ISA提供的整数运算2. 直接依靠ISA提供的浮点运算第二种的实现速度更快
软件实现浮点计算
-
- MPFR
-
- SoftFloat by Berkeley
硬件实现浮点计算
-
- The HardFloat, SoftFloat, and TestFloat Packages
浮点的表示
<<计算机组成与设计 硬件软件接口>> 有写 浮点数据在内存中是怎么表示的浮点数据在内存中的表示静态的转换是 编译器 做的 . 将 float 变量 直接编码到 bin文件中动态的转换是 运行时 做的 . 属于浮点计算的一种.
浮点的测试
- ✅ 1. [MPFR (GNU Multiple Precision Floating-Point Reliable Library)]
适合用于验证单精度浮点数运算的正确性,尽管它本身是高精度的(任意精度)。
你可以用它生成参考值,再与单精度 float 运算结果做对比。
常用于测试float
、double
运算的误差和正确性。
官网: The GNU MPFR Library
- ✅ 2. TestFloat by Berkeley
Berkeley 的
SoftFloat
库提供了纯软件实现的 IEEE-754 浮点运算,精度准确,覆盖了单精度(float)、双精度、扩展精度。
TestFloat
是它的测试模块,可以对比硬件浮点结果与软件参考实现。
支持多种 rounding modes、NaN、异常等测试。
官网: The HardFloat, SoftFloat, and TestFloat Packages