Сообщение от Tiomich
|
Где взять библиотеку с математикой?
|
Если компилер GCC, то
1) в программе написать #include ‹math.h›
2) в опциях для линковщика -lm
Если компилер другой, то проделать что-то аналогичное.
Сообщение от Tiomich
|
Она же тормознутая. По нескольку тысяч тактов на вычисление sin или cos.
|
Еще есть функции sinf / cosf - с одинарной точностью. Они работают быстрее, но не всегда реализованы.
Сообщение от st_1
|
STM32F103@72MHz при вычислении sin() быстрее Mega32@16MHz в ~7,6 раза... при разнице в частоте всего в 4,5 раза...
|
Она должна быть быстрее в 15 раз при равной частоте, потому что 32 бит против 8.
Под мегу есть оптимизированная фп бииблиотека по крйней мере для AVR-GCC, видимо оттуда она и в других компиляторах появилась. Я для cortex-M3 я такой либы не видел (только платные). Дефолтная билбиотека довольно угловатая.
Для повышения скорости остается разумный вариант вычислять функции самостоятельно (через разложения в ряд Тейлора), но с использованием арифметики с фиксированной запятой. Главная причина тормозов дефолтных либ - они в каждой операции сначала распаковывают float, потом запаковывают назад.