如何避免boost中有理数的正常化?

时间:2012-03-28 13:01:10

标签: c++ boost

我正在使用Boost.Rational 1.46。根据其documentation

  

最后的基本操作是使理性正常化。只要构造了理性(并在适当的位置分配),就会执行此操作。所有其他操作都小心地将理性维持在标准化状态。归一化成本相当于一个gcd和两个分区。

对于使用相对较小的有理值(因此小整数)的应用程序,规范化太昂贵而无法一直进行。有没有办法避免这种情况,或只是在某些时刻强迫?

1 个答案:

答案 0 :(得分:2)

增强有理数的不变量是它们总是被标准化(参见你的问题中引用的参考文献)。因此,如果您想使用非标准化的有理数,则不能使用boost实现。