libfixmath

libfixmath
開発者ベン・ブリューワー
安定版リリース
r64 / 2012年2月2日; 13年前 (2012-02-02)
リポジトリ
  • code.google.com/archive/p/libfixmath/source/default/source
書かれたC99
オペレーティング·システムクロスプラットフォーム
タイプ固定小数点数学ライブラリ
ライセンスマサチューセッツ工科大学
Webサイトcode.google.com/p/libfixmath 

libfixmathはプラットフォームに依存しない 固定小数点演算ライブラリです。FPU搭載していない(または性能の低い)プラットフォームで高速な非整数演算を実行したい開発者を対象としています。Q16.16固定小数点数で使用するための標準math.h関数と同様のインターフェースを開発者に提供します。libfixmathは、 stdint.hと64ビット整数演算をサポートするコンパイラ( GCCなど以外に外部依存関係はありません。 [1]マイクロコントローラDSP用の多くのコンパイラは64ビット演算をサポートしていないため、条件付きコンパイルオプションによって64ビット対応コンパイラ必要性を排除できます。[2]

歴史

libfixmathはBen Brewerによって開発され、Dingoo SDKの一部として初めて公開されました。[3]その後、FGLと呼ばれるソフトウェア3Dグラフィックスライブラリの実装に使用されてきました。[4]

Q16.16 関数

名前説明
fix16_acos逆余弦
fix16_asin逆正弦
fix16_atan1パラメータ逆正接
fix16_atan22パラメータ逆正接
fix16_cos余弦
fix16_exp指数関数
fix16_sin正弦
fix16_sqrt平方根
fix16_tan正接
fix16_mul乗算
fix16_div分割
fix16_sadd飽和 添加
fix16_smul飽和 乗算
fix16_sdiv飽和 分割

その他の機能

名前説明
fix16_to_dblQ16.16をdouble変換する
fix16_to_floatQ16.16を浮動小数点数に変換する
fix16_to_intQ16.16を整数変換する
fix16_from_dbl倍精度数をQ16.16変換する
fix16_from_float浮動小数点数をQ16.16変換する
fix16_from_int整数をQ16.16変換する

パフォーマンス

最も負荷の高い関数 ( atan2 ) のベンチマーク結果は次のようになります。

名前フロートと比較した時間
ARM Cortex-M026.3%
Marvell PXA270 ( ARM ) @ 312 MHz58.45%
インテル T5500120%
インテル Atom N280141%

注: これらの結果は、キャッシュ最適化をオフにしたfixtestを使用して計算されました。[5]

ライセンス

libfixmath は寛容なフリーソフトウェアライセンスであるMIT ライセンスの下でリリースされており、フリーソフトウェアです

参照

参考文献

  1. ^ 「libfixmath プロジェクトページ」。GitHub
  2. ^ 「64 ビット コンパイラのサポートの問題」。
  3. ^ 「Dingoo SDK プロジェクト ページ」。
  4. ^ 「FGL Flatmush/固定小数点グラフィックス ライブラリ プロジェクト ページ」。
  5. ^ 「fixtest ダウンロード ページ」。
  • プロジェクトページ
  • グループページ/メーリングリスト
Retrieved from "https://en.wikipedia.org/w/index.php?title=Libfixmath&oldid=1313971762"