Есть ли способ использовать программные FPU для вычисления синуса и косинуса одновременно? - PullRequest
0 голосов
/ 25 января 2011

Косинус - это просто результат сдвига значения синуса на 90 градусов. Я использую микроконтроллер с программным обеспечением IEEE754 32-битный FPU, который имеет функции sin и cos. Sin и cos относительно медленны (около 800 циклов каждый), поэтому было бы быстрее, если бы я мог вычислить значение синуса или косинуса и каким-то образом получить недостающее значение. Возможно ли это?

1 Ответ

2 голосов
/ 25 января 2011

Как быстро работает sqrt на вашем программном FPU?Если это быстрее, чем sin / cos, то вы можете использовать идентификатор: sin(x)^2 + cos(x)^2 = 1, то есть

cos(x) = sqrt(1 - sin(x)^2)

Вам, конечно, нужно позаботиться о знаке +/-, но это не проблема, еслиВы знаете, в каком квадранте вы находитесь.

...