Нижний предел gmp float с заданной точностью

Я пишу библиотеку C с GMP, и ее поплавки произвольной точности. Мне нужно отрубить "мелкие цифры", а как определить что мелкое я не знаю.

Скажем, я установил точность плавающих чисел GMP (mpf_t) на n бит. Тогда что считать малым при расчете?

Для любого из вас, кто может быть знаком с GSL (Научная библиотека GNU), мне нужен эквивалент их GSL_DBL_EPSILON, который для двойного числа на моем 32-битном компьютере оказывается равным 2.2204460492503131e-16.

Заранее спасибо, Дж.


person japs    schedule 23.02.2012    source источник


Ответы (1)


Я думаю, что нашел магическое число: это 2 ^{-(биты значащей точности)}, как описано в этом Статья в Википедии.

person japs    schedule 24.02.2012