Jump to content

libfixmath

libfixmath
Разработчик(и) Бен Брюэр
Стабильная версия
р64 / 2 февраля 2012 г .; 12 лет назад ( 2012-02-02 )
Репозиторий
Написано в С99
Операционная система Кросс-платформенный
Тип математическая библиотека с фиксированной запятой
Лицензия С
Веб-сайт код .Google /п /libfixmath  Edit this on Wikidata

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

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

Q16.16 функции

[ редактировать ]
Имя Описание
fix16_acosобратный косинус
fix16_asinобратный синус
fix16_atanоднопараметрический обратный тангенс
fix16_atan2двухпараметрический обратный тангенс
fix16_cosкосинус
fix16_expпоказательная функция
fix16_sinих
fix16_sqrtквадратный корень
fix16_tanкасательная
fix16_mulумножение
fix16_divразделение
fix16_saddнасыщенное дополнение
fix16_smulнасыщенное умножение
fix16_sdivнасыщенный дивизион

Другие функции

[ редактировать ]
Имя Описание
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 ) результаты тестов показывают следующие результаты:

Имя Время по сравнению с плавающим
АРМ Кортекс-М0 26.3%
Marvell PXA270 ( ARM ) @ 312 МГц 58.45%
Интел Т5500 120%
Интел Атом N280 141%

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

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

[ редактировать ]

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

См. также

[ редактировать ]
  1. ^ «Страница проекта libfixmath» .
  2. ^ «Проблемы поддержки 64-битного компилятора» .
  3. ^ «Страница проекта Dingoo SDK» .
  4. ^ «Страница проекта библиотеки FGL Flatmush/графики с фиксированной точкой» .
  5. ^ «Страница загрузки fixtest» .
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 9a83bf994ee558502e28981867da8272__1673955600
URL1:https://arc.ask3.ru/arc/aa/9a/72/9a83bf994ee558502e28981867da8272.html
Заголовок, (Title) документа по адресу, URL1:
libfixmath - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)