Pull to refresh
Comments 27

Почему не CORDIC? (практически та же школьная тригонометрия, но вычислительно эффективнее).

CORDIC требует больше вычислений, здесь табличный пересчёт — это совершенно разные вещи.

~Почему больше? Меньше же! Умножения заменены на сдвиги – только в самом конце два умножения на константу.
Подход-то практически тот же, что у вас, только последовательность констант для шагов такая, что удаётся схалявить.~


Пардон, невнимательно прочитал пост – теперь осознал, что по сравнению с CORDIC операций действительно меньше (обрабатываем по 4 бита за раз), но они "дороже". Интересно было бы увидеть сравнение по быстродействию — когда какой подход выигрывает (ну, про реализацию в железе не говорю, там всё понятно, а вот что будет в софте?)

Однако таблицы — это элемент памяти, а обращение к памяти занимает больше времени, чем вычисления (конечно все зависит от памяти и от вычислителя)
Интересно посмотреть графики сравнения — мол, при прочих равных в чем отличие (точность, количество обращений в память, количество математических операций и пр)
Если таблицы невелики — а я показал, что они могут быть небольшими — и горячие, то они спокойно осядут в кэше процессора и уже не будут столь дороги.

Почему больше? Меньше же! Умножения заменены на сдвиги – только в самом конце два умножения на константу.
Подход-то практически тот же, что у вас, только последовательность констант для шагов такая, что удаётся схалявить.


Пардон, невнимательно прочитал пост – теперь осознал, что по сравнению с CORDIC операций действительно меньше (обрабатываем по 4 бита за раз), но они "дороже". Интересно было бы увидеть сравнение по быстродействию — когда какой подход выигрывает (ну, про реализацию в железе не говорю, там всё понятно, а вот что будет в софте?)

Для синуса будем отбрасывать кубический член

Что насчет остальных?
А остальные ещё меньше, да и сумма знакопеременная.
Я правильно понял, что угол меньше 0.000846 — с приемлемой точностью равен собственному синусу?
Да.
Приемлемость определяется ограниченностью разрядной сетки при хранении значений.
Тогда прошу уточнить вопрос — я его не понял
'Что происходит с остальными элементами разложения?'
Вы издеваетесь?
Ряд Тейлора является абсолютно сходящимся — сумма последующих отбрасываемых членов всегда меньше по модулю модуля первого отбрасываемого члена.
Я не издеваюсь.
Ряд Тейлора является абсолютно сходящимся — сумма последующих отбрасываемых членов всегда меньше по модулю модуля первого отбрасываемого члена.
В общем случае это неверно. А поскольку ваша статья образовательная, такие пробелы в логике, как 'пропадающие неизвестно куда' слагаемые, нужно исправлять.
И кстати, с каких пор утверждение типа 'отношение y к x было меньше чем z' принято выражать через 1 — (x — y)/x < z? Почему не написать сразу как оно есть: y/x < z?
Проблема с тригонометрией в вычислительной геометрии состоит не в том, что этот колхоз слишком долго считается, а в том, что из-за него программа вместо элегантного перемножения кватернионов или матриц превращается в фарш из тригонометрии и багов, с этой самой тригонометрией связанных. Баги будут из-за того, что при копипасте километровых формул того же самого поворота обязательно кто-то попутает знак перед синусом, или наоборот, знак поменяет, а синус на косинус — нет.

Эти дурацкие периодические функции, приводящие к ковыряниям в пипопаламах (а у нас углы от 0 до 2пи или от -пи до пи?, Мать-мать-мать, как вспомню, так вздрогну) и прочий бред можно полностью из программы выкинуть и заменить банальной линейной алгеброй за второй курс любого заборостроительного пединститута имени проф. Мозгоклюева.

В 2д расчётах можно стерпеть ― ну, помнит человек школьную программу, уже хорошо. Но когда в коде видишь синусы/косинусы вместе с переменными x, y, z, бедного автора хочется пожалеть и чем-нибудь приласкать.

Эти дурацкие периодические функции, приводящие к ковыряниям в пипопаламах (а у нас углы от 0 до 2пи или от -пи до пи?, Мать-мать-мать, как вспомню, так вздрогну)

'That's what she said.'
В смысле, моя знакомая студентка о теории комплексных чисел.
ТФКП как раз и призвана выкинуть на плоскости тригонометрию и заменить ее на элегантные операции с комплексными числами, за что и любима разного рода электротехниками да гидродинамиками.

В пространстве ту же задачу решают кватернионы, да матрицы 4x4.
ТФКП как раз и призвана выкинуть на плоскости тригонометрию и заменить ее на элегантные операции с комплексными числами

Ну, видимо у женщин просто другие понятия о 'элегантности'.
Эхх, сейчас скорее сделают прикаунт с заданным шагом и не будут париться. Подумаешь, 16 метров ОЗУ от 16 гигов.
там тоже вполне делается прикаунт 1/8 периода синуса (если нужна скорость и точность), либо библиотеки типа fast_math, если нужна скорость.
Совершенно верно. Тривиальный размен вычислений на память и обратно.
Only those users with full accounts are able to leave comments. Log in, please.