Libfixmath - Libfixmath

libfixmath это независимая платформа фиксированная точка библиотека математики, предназначенная для разработчиков, желающих выполнять быстрые нецелочисленные математические операции на платформах, не имеющих (или с низкой производительностью) FPU. Он предлагает разработчикам интерфейс, аналогичный стандартному math.h функции для использования на Q16.16 фиксированная точка numbers.libfixmath не имеет внешних зависимостей, кроме stdint.h и компилятор, который поддерживает 64-битный целочисленная арифметика (например, GCC ).[1]Существуют варианты условной компиляции, чтобы исключить требование для 64-битный способный компилятор столько же компиляторов для микроконтроллеры и DSP не поддерживаю 64-битный арифметика.[2]

История

libfixmath изначально был разработан Беном Брюером (он же flatmush) и впервые выпущен публично как часть Dingoo SDK.[3] С тех пор он использовался для реализации программного обеспечения 3D графика библиотека под названием FGL.[4]

Q16.16 Функции

Прочие функции

ИмяОписание
fix16_to_dblКонвертировать Q16.16 к двойной
fix16_to_floatКонвертировать Q16.16 к плавать
fix16_to_intКонвертировать Q16.16 для целое число
fix16_from_dblКонвертировать двойной к Q16.16
fix16_from_floatКонвертировать плавать к Q16.16
fix16_from_intКонвертировать целое число к Q16.16

Спектакль

Для наиболее интенсивной функции (atan2 ) результаты тестов показывают следующие результаты:

ИмяВремя по сравнению с плаванием
ARM Cortex-M026.3%
Марвелл PXA270 (РУКА ) @ 312 МГц58.45%
Intel T5500120%
Intel Atom N280141%

Примечание. Эти результаты были рассчитаны с помощью fixtest с отключенной оптимизацией кеширования.[5]

Лицензирование

libfixmath выпущен под Лицензия MIT, а разрешающая лицензия свободных программ, и является бесплатно программное обеспечение.

Смотрите также

Рекомендации

  1. ^ "Страница проекта libfixmath".
  2. ^ «Проблемы с поддержкой 64-битного компилятора».
  3. ^ "Страница проекта Dingoo SDK".
  4. ^ "Страница проекта графической библиотеки FGL Flatmush / с фиксированной точкой".
  5. ^ "страница загрузки fixtest".

внешняя ссылка