Я только начал работать с библиотекой произвольной точности MPFR и довольно скоро столкнулся с очень странным поведением. Основная цель его использования состояла в том, чтобы улучшить точность триггеров аргументов lagre, и это прекрасно работает в MPFR.
Но потом я решил проверить простую математику, и это было невероятно - даже в простых примерах со строгими ответами ошибки округления существуют и не зависят от используемой точности.
Даже в примере, подобном 1.1 * 1, результат равен 1.10000000000000008881784 ...
И этот результат дан с безумной точностью 2000 бит (53 в обычном двойном)!
Возможно, это проблема моей системы, но даже в онлайн MPFR подобные проблемы существуют. Вы можете попробовать такой пример онлайн: http://ex -cs.sist.ac.jp / ~ tkouya / try_mpfr.html
1 * 1.1 @ 64 бита = 1.10000000000000000002
Но в онлайн-версии ошибка увеличивается с увеличением точности, но в моей установке - нет.
Моя система: Ubuntu 9.10 + gmp 5.0.0.1 + mpfr 2.4.2