57

無料の C++ 固定小数点ライブラリを探しています (主に組み込みデバイスで使用するためのもので、任意精度の数学用ではありません)。基本的に、要件は次のとおりです。

  • 不必要なランタイム オーバーヘッドはありません。コンパイル時に実行できることはすべて、コンパイル時に実行する必要があります。
  • 固有のオーバーヘッドなしで、固定小数点と浮動小数点の間で透過的にコードを切り替える機能。
  • 固定小数点演算関数。平方根を取るために前後にキャストする必要がある場合、固定小数点を使用する意味はあまりありません。
  • 小さな足跡。

助言がありますか?

4

7 に答える 7

8

以下のリンクから、オープンソースの固定小数点数学ライブラリ プロジェクトを見つけることができます。

これは、C++ ユーザー向けの C++ クラス インターフェイスを備えた C スタティック ライブラリであり、次の機能を実装しています。関数: sin、cos、tan、asin、acos、atan、atan2 飽和演算: sadd、ssub、smul、sdiv その他の関数: sqrt、exp

16.16 の固定小数点データ型のみをサポートします。

これは活発に開発されているオープンソース プロジェクトです (興味のある開発者を探しています)。

于 2011-03-02T17:14:08.173 に答える
5

C++ での固定小数点表現の処理については、次の 2 つの適切な実装を確認してください (外部ライブラリは必要ありません)。

  1. Peter Schregle によるFixed-Point-Class 。また、加算乗算除算などの基本演算も効率的に実装します。

    コード例:

    #include <fixed_point.h>
    using namespace fpml;
    
    main()
    {
        fixed_point<int, 16> a = 256;
        fixed_point<int, 16> b = sqrt(a);
    }
    
  2. Khuram Ali によるC++ での固定小数点数の実装。

于 2014-01-14T10:51:33.953 に答える
3

以下は、GitHub のオープン ソースの固定小数点ライブラリです。

https://github.com/mbedded-ninja/MFixedPoint

32 ビットおよび 64 ビットの固定小数点数 (任意の商) と、高速 (すべてがテンプレート化されていますが、もう少し手動) および低速の固定小数点数 (より自動化されていますが、低速) の両方をサポートしています。

組み込みプラットフォーム向けですが、マイクロコントローラーと Linux の両方で問題なく使用できました。

于 2015-03-04T23:35:13.733 に答える
0

http://www.efgh.com/software/fixed.htm 小さなライブラリを試してみます...

于 2011-01-04T12:58:52.160 に答える
-3

GMP または MPFR ライブラリを試すことができるかもしれません。それらがあなたのパフォーマンスのニーズを満たすと確信していますが、おそらくあなたのニーズには多すぎて、もっと軽量なものが欲しいでしょう. とにかく、ここを見てください:

GMP ライブラリ

またはここ:

MPFR ライブラリ

于 2010-05-31T20:36:29.627 に答える
-4

SPUCを使用したことはありませんが、説明には固定小数点データ型といくつかの数学関数が記載されています。

于 2010-05-31T20:37:56.570 に答える