2012-02-09 5 views
2

Я пытаюсь реализовать алгоритм разделения Ньютона-Рафсона Wikipedia entry для реализации 32-разрядного деления с плавающей запятой IEEE-754 на процессоре, который не имеет единицы аппаратного разделения.Отдел Ньютона-Рафсона для разделения плавающих точек?

Мое расположение памяти - это 32-разрядное слово дополнения, и я уже реализовал сложение, вычитание и умножение с плавающей запятой, поэтому я могу повторно использовать код для реализации алгоритма Ньютона-Рафсона. Я пытаюсь сначала реализовать все это в Matlab.

На этом шаге: X_0 = 48/17 - 32/17 * D
Как Bitshift D правильно в пределах от 0,5 до 1, как описано в деталях алгоритма?

ответ

1

Вы можете посмотреть библиотеку времени компилятора-rt (часть LLVM), которая имеет либеральную лицензию и реализует операции с плавающей запятой для процессоров, которым не хватает аппаратной поддержки.

Вы также можете посмотреть на libgcc, хотя я считаю, что это GPL, что может быть или не быть проблемой для вас.

На самом деле, не просто смотрите на них. Используйте один из них (или другую библиотеку с мягким поплавком). Нет необходимости повторно изобретать колесо.