I_love_natalia's blog

By I_love_natalia, history, 7 years ago, In Russian

Недавно был раунд, на котором многие участники ловили проблемы из-за отсутствия 80-битной вещественной арифметики в Java. Меня интересует вопрос (ведь исследования наверняка проводились), как же правильно складывать положительные вещественные числа?

Для желающих проникнуться темой я написал несколько реализаций сложения и проверил их на нескольких известных примерах. Реализации следующие: сложение в порядке возрастания, сложение в порядке убывания (всегда самое плохое :) ), сложение случайной перестановкой с последующей рекурсией через сумму левой и правой половины и сложение по принципу построения кода Хаффмана (последнее в действительности очень хорошо, но медленно).

http://ideone.com/OZIvET сложение в 32-битных числах для ряда

http://ideone.com/3SG8qm сложение в 64-битных числах для ряда

http://ideone.com/cWAvck сложение в 64-битных числах с разбросом 10

http://ideone.com/TB0loz сложение в 64-битных числах с разбросом 10000

  • Vote: I like it
  • +35
  • Vote: I do not like it