NEXTAFTER

Section: Linux Programmer's Manual (3)
Updated: 2020-12-21
Index JM Home Page
 

名前

nextafter, nextafterf, nextafterl, nexttoward, nexttowardf, nexttowardl - 浮動小数点数の操作  

書式

#include <math.h>

double nextafter(double x, double y);
float nextafterf(float x, float y);
long double nextafterl(long double x, long double y);

double nexttoward(double x, long double y);
float nexttowardf(float x, long double y);
long double nexttowardl(long double x, long double y);

-lm でリンクする。

glibc 向けの機能検査マクロの要件 (feature_test_macros(7) 参照):

nextafter():

_ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L
    || _XOPEN_SOURCE >= 500
    || /* Since glibc 2.19: */ _DEFAULT_SOURCE
    || /* Glibc versions <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE

nextafterf(), nextafterl():
_ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L
    || /* Since glibc 2.19: */ _DEFAULT_SOURCE
    || /* Glibc versions <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE

nexttoward(), nexttowardf(), nexttowardl():
_XOPEN_SOURCE >= 600 || _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L
 

説明

関数 nextafter(), nextafterf(), nextafterl() は、y に向かう方向で x のすぐ次の浮動小数点数表現を返す。 y が x より小さい場合、 x より小さい最大の浮動小数点表現の値を返す。

x が y と等しい場合、y が返される。

関数 nexttoward(), nexttowardf(), nexttowardl() は、2 番目の引数が long double 型である点以外、 対応する nextafter() 関数と同じはたらきをする。  

返り値

成功すると、これらの関数は y に向かう方向で x の すぐ次の浮動小数点数表現を返す。

x が y と等しい場合、 (x と同じ型にキャストされた) y が返される。

x か y が NaN の場合、NaN が返される。

x が有限値で 結果がオーバーフローする場合、 範囲エラー (range error) が発生し、 各関数はそれぞれ HUGE_VAL, HUGE_VALF, HUGE_VALL を返す。返り値には数学的に正しい符号が付与される。

x が y と同じではなく、正しい関数の結果が非正規化数かゼロかアンダーフローの場合、 範囲エラーが発生し、 (表現可能な場合には) 正しい値が、(そうでない場合には) 0.0 が返される。  

エラー

これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は math_error(7) を参照のこと。

以下のエラーが発生する可能性がある。

範囲エラー (range error): 結果のオーバーフロー
errno に ERANGE が設定される。 オーバーフロー浮動小数点例外 (FE_OVERFLOW) が上がる。
範囲エラー: 結果が非正規化数かアンダーフロー
errno に ERANGE が設定される。 アンダーフロー浮動小数点例外 (FE_UNDERFLOW) が上がる。
 

属性

この節で使用されている用語の説明については、 attributes(7) を参照。
インターフェース 属性 値
nextafter(), nextafterf(),
nextafterl(), nexttoward(),
nexttowardf(), nexttowardl()
Thread safety MT-Safe
 

準拠

C99, POSIX.1-2001, POSIX.1-2008. この関数は IEC 559 で定義されている (また IEEE 754/IEEE 854 では付録で推奨関数として定義されている)。  

バグ

glibc バージョン 2.5 以前では、アンダーフローが発生した際に、 これらの関数はアンダーフロー浮動小数点例外 (FE_UNDERFLOW) を上がない。

glibc の 2.23 より前のバージョンでは、これらの関数は errno を設定しない。  

関連項目

nearbyint(3)  

この文書について

この man ページは Linux man-pages プロジェクトのリリース 5.10 の一部である。プロジェクトの説明とバグ報告に関する情報は https://www.kernel.org/doc/man-pages/ に書かれている。

関連キーワード

double   浮動   long   アンダー   フロー   表現   小数点   範囲   小数   点数   float   オーバーフロー   nextafter   nextafterf   nextafterl   nexttoward   nexttowardf   nexttowardl   Since   versions   方向   range   正規化   操作   math

Linux マニュアル 一覧

関連するコマンド・関数

nextafter.3   nextafterf.3   nextafterl.3   nexttoward.3   nexttowardf.3   scalbln.3
 

Index

名前
書式
説明
返り値
エラー
属性
準拠
バグ
関連項目
この文書について

This document was created by man2html, using the manual pages.
Time: 04:39:36 GMT, October 11, 2026