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; r