TGViewer
Григорий Дядиченко Григорий Дядиченко @dev_game · 2.66K subscribers
Post #1887 1.05K
Как искал быстрый asin() и нашёл его в документации 2012 года
https://habr.com/ru/articles/1009424/

Хорошая история про то как легко потерять несколько дней оптимизируя то что уже оптимизировано.

Автор работает над трассировщиком лучей. Профилировщик показывает что std::asin() вызывается много. Окей, надо ускорить. Пишет аппроксимацию на рядах Тейлора — получает +5%. Неплохо, но точность страдает на краях диапазона. Переходит к аппроксимациям Паде — сложнее, точнее, но скорость та же.

Несколько дней работы. Красивые графики погрешностей. Умная математика.

Потом спрашивает LLM — тот выдаёт решение из документации Nvidia CG Toolkit. Продукт не обновлялся с 2012 года. Формула из учебника по математике 1960-х. На Intel быстрее std::asin() в 1.5–1.9 раза, точность почти идеальная.


double fast_asin(const double x) {
constexpr double a0 = 1.5707288;
constexpr double a1 = -0.2121144;
constexpr double a2 = 0.0742610;
constexpr double a3 = -0.0187293;
const double abs_x = fabs(x);
double p = a3 * abs_x + a2;
p = p * abs_x + a1;
p = p * abs_x + a0;
return copysign(HalfPi - sqrt(1.0 - abs_x) * p, x);
}


Мораль которую сам автор и формулирует честно: он ни разу не остановился и не спросил себя "а может кто-то это уже решил?". Просто начал делать. Решение лежало в мёртвом SDK, который никто уже не помнит. И никто из знакомых разработчиков не подсказал — хотя проект публичный и известный в C++ и графических кругах.

#новость #рендеринг #математика #оптимизация
Хабр Более быстрый asin() Когда я пишу эту статью, то чувствую себя довольно глупо. На самом деле, это история с моралью «Прежде, чем действовать, изучи вопрос и понимай, в чём заключается твоя цель, потому что иначе потеряешь...
  • 🤷‍♂ 9
  • 🔥 7
More from @dev_game
  1. Sep 25, 2026Meta VR Glasses Посмотрел кратко о чём речь. Вспомнил скупой слезой свой концепт. Будем по…
  2. Sep 23, 2026Чисто магия, что я теперь самостоятельно могу сделать такой пак + ролик к нему :) И мне нр…
  3. Sep 22, 2026🚀 Как запустить игровой стартап и применить бизнес-опыт в геймдеве? 🚀 Высшая школа бизне…
  4. Sep 21, 2026Эмоциональный окрас голоса Задумался над юмористическими форматами контента помимо познава…
  5. Sep 20, 2026Новый формат роликов https://youtube.com/shorts/sBWPJmyMqKg?si=GqUfUyLol_ahrRsK Возможно п…
  6. Sep 20, 2026Про мои текущие эксперименты То что я буду писать в этом посте думаю не так интересно прос…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →