名称
scalbn(), scalbnf(), scalbnl(), scalbnw(), scalbnq() ― 基数に依存しない浮動小数点数の指数のスケーリング
構文
#include <math.h>
double scalbn(double x, int n);
Itanium(R) ベース
システムのみ
float scalbnf(float x, int n);
long double scalbnl(long double y, int n);
extended scalbnw(extended x, int n);
quad scalbnq(quad x, int n);
説明
scalbn() 関数は、 x * rn を返します。ここで、 r は、マシンの浮動小数点演算の基数です。 r が 2 の場合 (すべての PA-RISC および Itanium ベース
システムで このように指定されています)、 scalbn() は ldexp() と同じ値を計算します。
Itanium ベース
システムのみ
scalbnf() は、 scalbn() の float バージョンで、 float 型の
(第 1) 引き数をとり、 float 型の結果を返します。
scalbnl() は、 scalbn() の long double バージョンで、 long double 型の
(第 1) 引き数をとり、 long double 型の結果を返します。
scalbnw() は、 scalbn() の extended バージョンで、 extended 型の
(第 1) 引き数をとり、 extended 型の結果を返します。
scalbnq() は、HP-UX システムでは scalbnl() と同等です。
使用方法
これらの関数を使うには、デフォルトの -Ae オプションを指定するか、または -Aa オプションと -D_HPUX_SOURCE オプションを指定してコンパイルしてください。
Itanium ベース システムで、 scalbnw() または scalbnq() を使うには、 -fpwidetypes オプションも指定してコンパイルしてください。
プログラムに、 <math.h> がインクルードされていることを確認した後、
コンパイラまたはリンカーのコマンド行で -lm を指定して、数学ライブラリとリンクしてください。
詳細については、 『『HP-UX フローティング・ポイント・ガイド』』 を参照してください。
戻り値
scalbn(-x, n) と -scalbn(x, n) は同等です。
x が ±INFINITY、 ゼロ、または NaN の場合、 scalbn() は x を返します。
scalbn() は、値が大きすぎる場合これに代えて、適切な符号が付いた無限大を返し、オーバーフロー例外と不正確例外を発生させます。
scalbn() では、結果が非常に小さく (本質的にはデノーマル値やゼロ)
正確な値でなくなるときには必ず、アンダーフロー例外と不正確例外が発生します。
また、結果が非常に小さいというだけで、これらの例外が発生することがあります。
標準準拠
scalbn(), scalbnf(), scalbnl() :
ISO/IEC C99 (付録 F 『IEC 60559 floating-point arithmetic』を含む)