無料のC++固定小数点ライブラリを探しています(主に組み込みデバイスで使用するためのものであり、任意精度の数学用ではありません)。基本的に、要件は次のとおりです。
助言がありますか?
以下のリンクをクリックすると、オープンソースの固定小数点数学ライブラリプロジェクトが見つかります。
C++ユーザー向けのC++クラスインターフェイスを備えたC静的ライブラリであり、次の機能を実装します。関数:sin、cos、tan、asin、acos、atan、atan2飽和演算:sadd、ssub、smul、sdivその他の関数:sqrt、exp
16.16固定小数点データ型 のみをサポートします。
これは、積極的に開発されたオープンソースプロジェクトです(関心のある開発者を探しています)。
C++での固定小数点表現の処理に関する次の2つの適切な実装を確認してください(外部ライブラリは不要です)。
Fixed-Point-Class by Peter Schregle。また、addition、multiplication、division。
コード例:
#include <fixed_point.h>
using namespace fpml;
main()
{
fixed_point<int, 16> a = 256;
fixed_point<int, 16> b = sqrt(a);
}
C++での固定小数点数の実装 by Khuram ALi。
GitHubのオープンソース固定小数点ライブラリは次のとおりです。
https://github.com/mbedded-ninja/MFixedPoint
32ビットおよび64ビットの固定小数点数(任意の商)をサポートし、高速(すべてがテンプレート化されていますが、少し手作業です)と低速の固定小数点数(より自動ですが低速)の両方をサポートします。
組み込みプラットフォーム向けですが、マイクロコントローラとLinuxの両方で問題なく使用しています。
素敵な小さなc ++ヘッダーを取得しました。 sweet :: Fixed で見つけることができます。 typedef sweet :: Fixed MyFloatを定義するだけです;他のフロート値と同様に使用します。または、後で必要なfloat型に交換します。クラスには2つの64ビット値があります。整数部に1つ、小数部に1つ。
sweet.hpp calledfixed.hppに小さな固定小数点c ++ 11クラスヘッダーimplがあります。両方の部分に32ビットを使用します。
typedef float MyFloat; // This will feel the same
typedef sweet::Fixed MyFloat; // like this
http://www.efgh.com/software/fixed.htm tiny lib ...