本文に進む 日本−日本語
日本HPホーム 製品とサービス お客様サポート/ ダウンロード ソリューション ご購入の方法
≫ お問い合わせ
詳細検索オプション
日本HPホーム
HP-UX リファレンス: セクション 3 : ライブラリ (N~Z) > n

nextafter(3M)

HP-UX 11i Version 2: September 2004
≫ 

テクニカル ドキュメント

PDF版
フィードバック
ここから本文が始まります

 ≫ 目次

 ≫ 索引

名称

nextafter(), nextafterf(), nextafterl(), nextafterw(), nextafterq(), nexttoward(), nexttowardf(), nexttowardl(), nexttowardw(), nexttowardq() ― 次に表現可能な浮動小数点値

構文

#include <math.h>

double nextafter(double x, double y);

float nextafterf(float x, float y);

Itanium(R) ベース システムのみ

long double nextafterl(long double x, long double y);

extended nextafterw(extended x, extended y);

quad nextafterq(quad x, quad y);

double nexttoward(double x, long double y);

float nexttowardf(float x, long double y);

long double nexttowardl(long double x, long double y);

extended nexttowardw(extended x, long double y);

quad nexttowardq(quad x, long double y);

説明

関数 nextafter() は、 y の方向で x の次に表現可能な倍精度値を計算します。 したがって、 yx より小さい場合、 nextafter() は、 x より小さい表現可能な浮動小数点数のうち最大のものを返します。

xy に等しい場合、 nextafter() 関数は、 y を返します。

関数 nexttoward() は、2 番目の引き数の型が long double であることと、 xy に等しい場合、 y をこの関数の型に変換して返すことを除いて、 nextafter() と同等です。

関数 nexttoward() の結果は、関数の型によって決まります。 2 番目の浮動引き数の型は、関数の型に比べて範囲が広いこともあり、2 番目の引き数の中で範囲や精度は損なわれません。

nextafterf() は、 nextafter()float バージョンで、 float 型の引き数をとり、 float 型の結果を返します。

nextafterl() は、 nextafter()long double バージョンで、 long double 型の引き数をとり、 long double 型の結果を返します。

nextafterw() は、 nextafter()extended バージョンで、 extended 型の引き数をとり、 extended 型の結果を返します。

nextafterq() は、HP-UX システムでは nextafterl() と同等です。

nexttowardf() は、 nexttoward()float バージョンで、 float 型の (第 1) 引き数をとり、 float 型の結果を返します。

nexttowardl()nextafterl() と同等です。

nexttowardw() は、 nexttoward()extended バージョンで、 extended 型の (第 1) 引き数をとり、 extended 型の結果を返します。

nexttowardq() は、HP-UX システムでは nexttowardl() と同等です。

使用方法

これらの関数を使用するには、デフォルトの -Ae オプションを指定するか、または -Aa オプションと -D_HPUX_SOURCE オプションを指定してコンパイルしてください。

Itanium ベース システムで nextafterw()nextafterq()nexttowardw()、 または nexttowardq() を使うには、 -fpwidetypes オプションも指定してコンパイルしてください。

プログラムに <math.h> がインクルードされていることを確認した後、 コンパイラまたはリンカーのコマンド行で -lm を指定して、数学ライブラリとリンクしてください。

戻り値

xy に等しい場合、 nextafter()y 返して、 nexttoward() は、 x の型に変換された y を返します。

x または y が NaN の場合、 nextafter() および nexttoward() は NaN を返します。

x が有限で、正しい関数値がオーバーフローする場合、 nextafter() および nexttoward() は、 x の符号に応じて ±HUGE_VAL (+INFINITY に等しい) を返し、オーバーフロー例外が発生します。

戻り値がデノーマル値で、 x!=y の場合、 これらの関数で、アンダーフロー浮動小数点例外と不正確浮動小数点例外が発生します。

エラー

x が有限で、正しい関数値がオーバーフローする場合、 nextafter()errno に [ERANGE] を設定します。

Itanium ベース システムのみ

Itanium ベース システムでの HP-UX の libm 関数は、デフォルトでは errno を設定しません。 errno を設定するには、 +Olibmerrno オプションを指定してコンパイルしてください。

標準準拠

nextafter() : SVID3, XPG4.2, ISO/IEC C99 (付録 F 『IEC 60559 floating-point arithmetic』を含む)

nextafterf(), nextafterl(), nexttoward(), nexttowardf(), nexttowardl() : ISO/IEC C99 (付録 F 『IEC 60559 floating-point arithmetic』を含む)

印刷用画面へ
プライバシー 本サイト利用時の合意事項
© 1983-2004 Hewlett-Packard Development Company, L.P.