C++ (и математика):быстрое приближение тригонометрической функции

Я знаю, что это повторяющийся вопрос, но я еще не нашел полезного ответа. В основном я ищу быстрое приближение функции acosв С++, я хотел бы знать, смогу ли я значительно превзойти стандартную.

Но у некоторых из вас может быть понимание моей конкретной проблемы. :Я пишу научную программу, которая должна быть очень быстрой. Сложность основного алгоритма сводится к многократному вычислению следующего выражения (с разными параметрами):

sin( acos(t_1) + acos(t_2) +... + acos(t_n) )

где t_i— известные действительные (двойные )числа, а n— очень маленькое (вроде меньше 6 ). Мне нужна точность не менее 1e -10. В настоящее время я использую стандартные функции sinи acosC++.

Как вы думаете, я могу как-то значительно увеличить скорость? Для тех из вас, кто немного знаком с математикой, как вы думаете, было бы разумно расширить этот синус, чтобы получить алгебраическое выражение в терминахt_i(только с квадратными корнями )?

Спасибо за ваши ответы.

14
задан Denys Séguret 14 September 2012 в 16:07
поделиться