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

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

1 ответ

Решение

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

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

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

Другие вопросы по тегам