реклама на сайте
подробности

 
 
> Алгоритм деления 1/X
syoma
сообщение Jul 28 2007, 21:49
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 817
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368



Привет
Народ подскажите пожалуйста, существуют ли другие алгоритмы для нахождения числа 1/X , если Х- любое целое число, кроме естественно деления столбиком, если есть возможность применения умножения, сложения и вычитания. При этом решающим фактором является время выполнения деления.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
syoma
сообщение Aug 5 2007, 08:41
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 817
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368



Фигней оказался этот Cordic - так как результат 1/U - очень маленькое число - пришлось увеличить разрядность после точки - у меня все данные только с фиксированной точкой. В итоге сгенерился настолько большой VHDL код, что компилятор сказал, что это в FPGA не поместится.
В итоге я плюнул на все это и запрограммировал предложеный Самураем алгоритм Ньютона a14.gif .
Так как диапазон результатов - от 1/4000 до 1/500, то проблем с выбором первого числа не было - взял наименьшее, что может получиться. В итоге получилась компактная и красивая реализация для FPGA с 2мя умножителями. При точности 1/2^21 результат 1/500 получился за 10 итераций. 1/3000 - за 4. У Cordica задержки получались от 30 циклов при меньшей точности.

Сообщение отредактировал syoma - Aug 5 2007, 08:43
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 26th August 2025 - 13:19
Рейтинг@Mail.ru


Страница сгенерированна за 0.01355 секунд с 7
ELECTRONIX ©2004-2016