2013-12-16 4 views
1

Что такое оптимизация производительности тригонометрических функций над стандартными методами в Java? Вот, например: Fast transcendent/trigonometric functions for Java Я нашел некоторые методы и библиотеки для выполнения подобных задач.Повышение эффективности оптимизации тригонометрических функций в Java

+0

Если вы не понимаете, как это работает, крайне маловероятно, что вам требуются эти функции. встроенные функции, вероятно, лучше документируются и поддерживаются. – Kent

+0

@Builder_K Я бы хотел сначала рассмотреть повышение производительности, поэтому я знаю, стоит ли вообще углубляться в эту тему. – spectre

ответ

1

Это также зависит от реализации JDK, функции в StrictMath являются родными.

Один из подходов заключается в использовании некоторой функции, полученной из подмножества Taylor.

Я вспомнил еще один интересный подход к вычислению функции. Скажем, вам нужно иметь 3d-вращение, и все аргументы находятся в ограничено целочисленное подмножество (0..180)/PI. Итак, вы создаете предварительно рассчитанную таблицу значений и затем используете ее.

double[]result=new double[180]; 
for(int i=0; i<180; i++) results[i]=Math.sin(i/Math.PI);//end of init 
double sin(int value){return result[i];} 
+0

Отлично, но это не отвечает на вопрос: какова была производительность? – spectre

+0

выгода из какой способ? Вы можете использовать усиление производительности процессора от прямого одиночного вызова к процессору, использовать другое приближение, коэффициент усиления производительности от меньшего количества арифметических операций, использовать предварительно рассчитанные значения, коэффициент усиления производительности от прямого вызова памяти вместо вычисления. – chro

+0

Разработка. Думаю, у вас есть практический опыт, поэтому вы можете публиковать свои наблюдения. – spectre

Смежные вопросы