Плавающие и рациональные числа в дробной арифметике произвольной точности (C/C++)

Поскольку существует два способа реализации дробного числа AP, один из них — эмулировать хранение и поведение типа данных double, только с большим количеством байтов, а другой — использовать существующую целочисленную реализацию APA для представления дробного числа в виде рациональное, то есть как пара целых чисел, числитель и знаменатель, какой из двух способов с большей вероятностью обеспечит эффективную арифметику с точки зрения производительности? (Использование памяти не имеет большого значения.)

Я знаю о существующих библиотеках C/C++, некоторые из которых предлагают дробный APA с «плавающими» и другие с рациональными числами (ни одна из них не имеет APA с фиксированной -точкой, однако )и, конечно, я мог сравнить библиотека, которая полагается на "плавающую" реализацию по сравнению с той, которая использует рациональную реализацию, но результаты в значительной степени будут зависеть от деталей реализации тех конкретных библиотек, которые мне придется выбирать случайным образом из почти десяти доступных. Так что меня больше интересуют теоретические плюсы и минусы двух подходов (или трех, если принять во внимание фиксированную -точку APA ).

10
задан Desmond Hume 3 August 2012 в 19:34
поделиться