Самая быстрая реализация синуса, косинуса и квадратного корня в C++ (не обязательно должна быть очень точной)C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Самая быстрая реализация синуса, косинуса и квадратного корня в C++ (не обязательно должна быть очень точной)

Сообщение Anonymous »

Я гуглил этот вопрос уже час, но есть только указания на серию Тейлора или какой-то пример кода, который либо слишком медленный, либо вообще не компилируется. Что ж, большинство ответов, которые я нашел в Google, - это «Погуглите, об этом уже спрашивали», но, к сожалению, это не так...

Я Я профилирую свою игру на младшем Pentium 4 и обнаружил, что ~ 85% времени выполнения тратится на вычисление синуса, косинуса и квадратного корня (из стандартной библиотеки C++ в Visual Studio), и это, похоже, сильно зависит от процессора (от мой I7 получил только те же функции 5% времени выполнения, и игра становится ваааааааааа быстрее). Я не могу оптимизировать эти три функции или вычислить синус и косинус за один проход (они взаимозависимы), но мне не нужны слишком точные результаты для моего моделирования, поэтому я могу жить с более быстрым приближением.

Итак, вопрос: каков самый быстрый способ вычислить синус, косинус и квадратный корень для числа с плавающей запятой в C++?

EDIT
Таблица поиска становится более болезненной, поскольку в результате Cache Miss обходится намного дороже для современного процессора, чем Taylor Series. В наши дни процессоры такие быстрые, а кеш нет.

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

Итак, обновленный вопрос: есть ли какая-нибудь быстрая оптимизация и для квадратного корня?

EDIT2

Я я использую квадратный корень для расчета расстояния, а не нормализацию - не могу использовать быстрый алгоритм обратного квадратного корня (как указано в комментарии: http://en.wikipedia.org/wiki/Fast_inverse_square_root

EDIT3

Я также не могу работать с квадратами расстояний, мне нужно точное расстояние для расчетов

Подробнее здесь: https://stackoverflow.com/questions/186 ... -need-to-b
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»