Discussion:
О процессорах
(слишком старое сообщение для ответа)
Vyacheslav Morozov
2006-06-14 04:54:53 UTC
Permalink
Что будешь пить, Alexander!?

07 Jun 06 14:48 Alexander Grebenkov обращается к Олег Крылов:

ОК>> синуса, которая, по моей мысли, могла бы заменить FSIN FCOS в
ОК>> приближенных рассчетах. Подпрограммка занимала около дюжины
ОК>> ассемблерных инструкций. Я ожидал, что она будет работать раз в пять
ОК>> бстрее, но какое же удивление меня ждало. Она работала лишь в
ОК>> полтора-два раза быстрее! Процессор у меня Пентиум 3. Если посмотреть
ОК>> тайиминг, то выходит, что его FCOS всего 30-40 тактов!

AG> В настоящий момент мне известен один способ офигительно ускорить подсчёт
AG> тригонометрии -
AG> забить табличку и делать по ней просмотры. Промежуточные значения -
AG> интерполировать. Только я
AG> подозреваю, что я не один такой умный, и те, кто процессоры оптимизирует -
AG> они тоже об этом знают.

где-то валялась функция sin на асм-е написана - полкило текста :)

Извините, что без скандала! [ The Ultimate Game? - It is BRIDGE! ]
Слава. [R50.SYSOP.DRUNK]
Олег Крылов
2006-06-14 10:44:54 UTC
Permalink
Wed Jun 07 2006 15:48, Alexander Grebenkov wrote to Олег Крылов:

AG> В настоящий момент мне известен один способ офигительно ускорить подсчёт
AG> тригонометрии - забить табличку и делать по ней просмотры. Промежуточные
AG> значения - интерполировать. Только я подозреваю, что я не один такой
AG> умный, и те, кто процессоры оптимизирует - они тоже об этом знают.

Я примерно так и сделал, ты правильно догадался. Результат см. в предыдущем
письме. Обескураживающий.

В процах сделано не так, там тригонометрия считается раскладыванием в ряд
Тейлора. Почему? Потому что точность нужна максимальная. Неизвестно же, для
чего этот синус или косинус нужен. По табличке с интерполяцией ты либо
получишь неточное значение, либа табличка получится офигительно большая, с
большим расходом памяти.

Suum cuique
Олег Крылов
2006-06-14 11:15:14 UTC
Permalink
Wed Jun 14 2006 14:44, Олег Крылов wrote to Alexander Grebenkov:

ОК> From: "Олег Крылов" <***@peterlink.ru>

ОК> Wed Jun 07 2006 15:48, Alexander Grebenkov wrote to Олег Крылов:

ОК> В процах сделано не так, там тригонометрия считается раскладыванием в ряд
ОК> Тейлора. Почему? Потому что точность нужна максимальная. Hеизвестно же,
ОК> для чего этот синус или косинус нужен. По табличке с интерполяцией ты
ОК> либо получишь неточное значение, либа табличка получится офигительно
ОК> большая, с большим расходом памяти.

Т.е. табличка там все-таки есть, но интерполяция не линейная, а по формуле
Тейлора. Поскольку разница между аргументами в таблице очень мала, ряд
сходится очень быстро: если не ошибаюсь, считается три его члена.

ОК> Suum cuique

Suum cuique

Loading...