数学関数
このセクションの内容:
一部のC/C++標準ライブラリ数学関数は、異なるバージョンが用意されています。
デフォルトのバージョン
より小さいバージョン(精度は低下します)
より正確なバージョン(サイズはより大きくなります)
より小さいバージョン
ライブラリには、小さいバージョンのcos、exp、log、log2、log10、pow、sin、およびtan関数が存在します。これらはデフォルトのバージョンより約20% 小さく、約20% 高速です。これらの関数はINF およびNaN の値を処理します。欠点は、ほとんどの場合において精度が失われることと、デフォルトのバージョンと同じ入力範囲を持っていない点です。
関数の名前は以下のように構成されます。
__iar_ xxx _small<f|l>
fはfloatの派生型に、lはlong doubleの派生型に使用され、doubleの派生型にサフィックスは使用されません。
コマンドライン上により小さい数学関数を指定するには、以下の手順に従います。コマンドラインオプション
--small_mathをリンカに指定します。アプリケーションをリンクして完全なセットが使用されます。
より正確なバージョン
関数cos、pow、sin、およびtan がより正確なバージョンがライブラリにあり、これらはより大きい引数の範囲を処理できます。 デフォルトのバージョンよりサイズが大きく、低速なのが欠点です。
関数の名前は以下のように構成されます。
__iar_ xxx _accurate<f|l>
fはfloatの派生型に、lはlong doubleの派生型に使用され、doubleの派生型にサフィックスは使用されません。
コマンドライン上でより正確な数学関数を指定するには、以下の手順に従います。コマンドラインオプション
--accurate_mathをリンカに指定します。アプリケーションをリンクして完全なセットが使用されます。