[an error occurred while processing this directive]
Таки деление сдвигом быстрее, а умноженя для Мег и Ат есть 2 варианта, с использованием аппаратного и без.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
Отправлено
Russ
27 января 2006 г. 12:59
В ответ на:
Алгоритмов никаких специальных нет. Все дело в том, что (+)
отправлено SM 27 января 2006 г. 12:54
Составить ответ
|||
Конференция
|||
Архив
Ответы
Быстрее? Это смотря какой процессор. Вот в TMS320C6711 явно Рафсон быстрее. При наличии аппаратного перемножение double*double.
—
SM
(27.01.2006 13:03
213.141.159.26
,
пустое
)
На Меге короче сдвигами, да и быстрее, тяжелое наследие асма, каждый такат экономить :-)
—
Russ
(27.01.2006 13:09
62.33.25.238
,
пустое
)
Сборище телепатов у нас? Процессор не объявляли.
—
SM
(27.01.2006 13:28
213.141.159.26
,
пустое
)
Поддерживаю.. Делал деление самыми разными способами - а сдвигами всё равно быстрее..
—
argus98
(27.01.2006 13:25
81.22.205.230
,
пустое
)
Значит не попадались такие платформы, где есть более эффективные решения.
—
SM
(27.01.2006 13:27
213.141.159.26
,
пустое
)
Имелось ввиду AVR c умножителем.. Но все равно - с ростом разрядности чисел по сравнению с разрядностью умножителя, эффективность Ньютона (или полинома) падает, и начиная с некоторого момента сдвиги становятся быстрее..
—
argus98
(27.01.2006 13:56
81.22.205.230
,
пустое
)
А где вы все про АВР узнали? Я это от автора темы услышал только сейчас... В этой теме. После всех постов.
—
SM
(27.01.2006 14:04
213.141.159.26
,
пустое
)
Блин, я же просто Russ'а поддержал - он пример с Мегой привел..
—
argus98
(27.01.2006 14:31
81.22.205.230
,
пустое
)
Это да. Не спорю. Как и на слишком коротких. Для этого метода есть свой оптимальный диапазон разрядностей. И, самое главное, зависит от требуемой точности результата.
—
SM
(27.01.2006 14:03
213.141.159.26
,
пустое
)
В общем, если есть пара однотактовый умножителей 16х16 или лучше один 32х32, то Рафсон сделает сдвиговый алгоритм как ребенка (на достаточно длинных числах)
—
SM
(27.01.2006 13:31
213.141.159.26
,
пустое
)
Где такое есть, там и аппаратное деление присутствует
—
Russ
(27.01.2006 13:48
81.211.97.86
,
пустое
)
То есть там (в дсп) не принято деление делать аппаратное, так как оно очень редко применяется в алгоритмах ЦОС. И они сами и предлагают, как на их процессорах грамотно его реализовать.
—
SM
(27.01.2006 13:55
213.141.159.26
,
пустое
)
К сожалению далеко не так. Там аппаратное деление только 16/16 бит и толку от него в контексте вопроса как от козла молока.
—
SM
(27.01.2006 13:51
213.141.159.26
,
пустое
)
Вообще-то деление чисел длиной 2*N сводится к 4 умножениям чисел длиной N, и так далее (рекурсивно) - это будет лучше Ньютона
—
CD_Eater
(28.01.2006 16:26
83.138.50.150
,
пустое
)
Жаль, ща глянул код, на асме деление 32/32 - 11 команд в цикле, 703 такта
—
Russ
(27.01.2006 14:24
62.33.25.238
,
пустое
)
Отправка ответа
Имя (обязательно):
Пароль:
E-mail:
NoIX ключ
:
Запомнить
Тема (обязательно):
Сообщение:
Ссылка на URL:
Название ссылки:
URL изображения:
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание
E-mail:
info@telesys.ru