Изменения

Перейти к: навигация, поиск

Adaptive precision arithmetic

501 байт добавлено, 08:27, 20 октября 2011
Простое суммирование
Dekker
|statement=
Пусть <tex>a</tex> и <tex>b</tex> есть <tex>p</tex>-битные числа, причем <tex>|a| \geqslant |b|</tex>. Тогда следующий алгоритм вернет непересекающееся расширение <tex>x + y</tex> такое, что <tex>a + b = x + y</tex>, где <tex>x</tex> - приближение (аппроксимация) суммы <tex>a + b</tex>, а <tex>y</tex> представляет собой ошибку округления при вычислении <tex>x</tex>. (Аналогично для вычитания).
}}
{{TODO |t=add pictures}} Псевдокоддля суммы:
<tex>FastTwoSum(a, b)</tex>
<tex>3</tex> <tex>y \Leftarrow b \ominus b_{virtual}</tex>
<tex>4</tex> <tex>return (x, y)</tex>
 Псевдокод для суммы:  <tex>FastTwoSum(a, b)</tex> <tex>1</tex> <tex>x \Leftarrow a \ominus b</tex> <tex>2</tex> <tex>b_{virtual} \Leftarrow x \ominus a</tex> <tex>3</tex> <tex>y \Leftarrow b \ominus b_{TODO |t=add pictures}virtual}</tex> <tex>4</tex> <tex>return (x, y)</tex> Отметим, что величины на выходе этой процедуры вовсе не должны иметь один знак.
355
правок

Навигация