Я знаю, что это повторяющийся вопрос, но я еще не нашел полезного ответа. В основном я ищу быстрое приближение функции acos
в С++, я хотел бы знать, смогу ли я значительно превзойти стандартную.
Но у некоторых из вас может быть понимание моей конкретной проблемы. :Я пишу научную программу, которая должна быть очень быстрой. Сложность основного алгоритма сводится к многократному вычислению следующего выражения (с разными параметрами):
sin( acos(t_1) + acos(t_2) +... + acos(t_n) )
где t_i
— известные действительные (двойные )числа, а n
— очень маленькое (вроде меньше 6 ). Мне нужна точность не менее 1e -10. В настоящее время я использую стандартные функции sin
и acos
C++.
Как вы думаете, я могу как-то значительно увеличить скорость? Для тех из вас, кто немного знаком с математикой, как вы думаете, было бы разумно расширить этот синус, чтобы получить алгебраическое выражение в терминахt_i
(только с квадратными корнями )?
Спасибо за ваши ответы.