Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
софтверная плавающая точка 23.09.04 16:00
Автор: leo <Леонид Юрьев> Статус: Elderman
|
Нужен не эмулятор FPU, а именно C-библиотека для вычислений (+, -, *, /, sqrt) с плавающей точкой.
Совместимость со стандартными форматами IEEE совершенно не нужна, что-нибудь типа 48-56 бит на мантиссу, и 6-8 бит на порядок будет в самый раз.
Кроме http://www.jhauser.us/arithmetic/SoftFloat.html, что ещё есть готового?
|
 |
Реализацию только этих пяти операций можно и самому накатать за часок. 23.09.04 19:19
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman Отредактировано 23.09.04 19:27 Количество правок: 2
|
Например сложение: "меньшее" (по экспоненте) число двигается побиттово N раз вправо, где N разница между экспонентами, складываются, если получили конечный перенос, то сдвигаем все еще на 1 бит вправо, устанавливаем старший бит, увеличиваем на 1 порядок.
Вычитание - аналогично.
Умножение - по правилам математики: перемножаем мантиссы, складываем экспоненты, нормализуем.
Деление - все то же.
С корнем - подумать надо.
Да, если (думаю наверняка) мантиссы со знаковым битом, то все еще чуть чуть усложнится.
|
 |  |
Накатать конечно можно, но IMHO не за часок 23.09.04 19:53
Автор: leo <Леонид Юрьев> Статус: Elderman
|
Возни на самом деле не мало. И у мантис могут быть разные знаки и у экспонент, over/under нужно отлавливать и т.д. А с корнем не сложно - из мантиссы по а-ля ньютону, экспоненту пополам, если нечетная домножить на sqrt(2) и нормализовать.
А главное - не интересно просто рутина. Но пожалуй придеться написать...
|
|
|