Поскольку большинство целей ARM не имеют FPU, если вы хотите «самый быстрый исполняемый файл», вам следует рассмотреть возможность использования библиотеки с фиксированной запятой.Эта статья доктора Добба: Оптимизация математических приложений с арифметикой с фиксированной точкой содержит хорошее объяснение алгоритмов CORDIC и предоставляет полный исходный код для библиотеки, обсуждаемой в статье.Эта статья посвящена ускорению математического кода на устройствах ARM без FPU.Результаты, о которых сообщают, как правило, были 4-кратным ускорением по сравнению с реализацией с плавающей запятой, которая, учитывая, что VFP без использования векторизации (которую компилятор вряд ли будет поддерживать, кроме как посредством библиотечного кода) дает 5-кратное ускорение, довольно хороша для программной реализации.1003 *
Примечание. Я использовал эту библиотеку и обнаружил ошибку в функции log ().Это исправляется добавлением 0x0LL в конец инициализатора массива log_two_power_n_reversed [].Я подтвердил это исправление с автором.Ссылка на код в статье не работает, найдите ее по адресу: ftp: //ftp.drdobbs.com/sourcecode/ddj/2008/0804.zip
[РЕДАКТИРОВАТЬ] Ой, извините, в статье и коде обсуждается реализация C ++, широко используемая перегрузка операторов и функций, чтобы сделать тип fixed
максимально прозрачным.Возможно, это хорошая причина использовать компиляцию C ++, но не то, что вы просили.