我已经编写了一个小库(在C++ 11中)以使用四元数进行计算,但是我很快意识到存在很多精度/准确性问题,因为涉及到很多浮点运算。这使我着眼于std::complex和IEEE754。std::complex专门处理大量的NaN。这是我唯一需要担心要成为“IEEE 754兼容”吗?更普遍的说,是否有一个“食谱”来解决如何将原本幼稚的数字库变成“符合IEEE 754标准”的问题?
注意:问题不是关于编译器是否为IEEE 754,而是关于我是否应该在自己的算法中采取特殊步骤来满足IEEE754。毕竟,我和编写std::complex的人处于同一位置,他们确实采取了额外的步骤,例如用于NaN。
最佳答案
您可以简单地检查库的 header <limits>
常量numeric_limits::is_iec559
(IEC 559与IEEE 754相同),以查看您的C++编译器是否已支持IEEE 754。