C言語/標準ライブラリ/math.h

出典: フリー教科書『ウィキブックス(Wikibooks)』
このページ「C言語/標準ライブラリ/math.h」は、まだ書きかけです。加筆・訂正など、協力いただける皆様の編集を心からお待ちしております。また、ご意見などがありましたら、お気軽にトークページへどうぞ。


Mathematics <math.h>[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12 Mathematics <math.h>:数学[1].

ISO/IEC 9899:2018(通称 C18)の §7.12 Mathematics <math.h> の冒頭を抄訳/引用します[1][2][3]

  1. ヘッダー <math.h> は、2つの型と多くの数学関数を宣言し、いくつかのマクロを定義しています。ほとんどのシノプシスでは、1つ以上のdoubleのパラメータ、doubleの戻り値、またはその両方を持つ主関数と、同じ名前でfとlの接尾辞を持つ他の関数からなる関数群を指定している。これらの関数は、floatとlong doubleのパラメータ,戻り値,またはその両方を持つ対応する関数である。整数演算関数と変換関数については後述する。
  2. float_t double_t はそれぞれ float と double と同等の幅を持つ浮動小数点型で、double_t は float_t と同等の幅を持つようになっています。FLT_EVAL_METHOD が 0 の場合、float_t と double_t はそれぞれ float と double になり、FLT_EVAL_METHOD が 1 の場合、両方とも double になり、FLT_EVAL_METHOD が 2 の場合、両方とも long double になり、FLT_EVAL_METHOD が他の値の場合、それらは実装で定義されたものになります。
  3. マクロ HUGE_VAL は正の倍数の定数式に展開しますが、必ずしも float として表現できるわけではありません。マクロ HUGE_VALF HUGE_VALL は、それぞれ HUGE_VAL の float および long double のアナログです。
  4. マクロ INFINITY は、正または符号なしの無限大を表す float 型の定数式があれば、それに展開します。
  5. マクロ NAN は、実装が float 型の 静かなNaN(quiet NaNs) をサポートする場合にのみ定義されます。このマクロは、静かな NaN を表す float 型の定数式に展開されます。
  6. 数値分類マクロ FP_INFINITE FP_NAN FP_NORMAL FP_SUBNORMAL FP_ZERO。特に式の評価範囲が広いシステムでは、<math.h>関数があらすじのプロトタイプが示すよりも広い形式の引数や戻り値を渡すことがある。float_t と double_t という型は、それぞれ少なくとも float と double と同じ幅を持つ、実装上最も効率的な型であることを意図しています。FLT_EVAL_METHOD が 0、1、または 2 の場合、 float_t 型は浮動式を評価するために実装が使用する最も狭い型です。HUGE_VAL、HUGE_VALF、および HUGE_VALL は、無限大をサポートする実装では正の無限大になります。HUGE_VAL、HUGE_VALF、HUGE_VALLは、無限大をサポートする実装では、正の無限大になることがあります。この場合、INFINITYを使用すると、6.4.4の制約に違反するため、診断が必要になります。これらは、異なる値を持つ整数定数式に展開されます。FP_ と大文字で始まるマクロ定義を持つ、実装で定義された追加の浮動小数点分類も、実装で指定することができます。
  7. マクロFP_FAST_FMAはオプションで定義されます。定義されていると、fma関数は一般的にダブルオペランドの乗算や加算と同程度かそれ以上の速度で実行されることを示します。マクロ FP_FAST_FMAF FP_FAST_FMAL は、それぞれ FP_FAST_FMA の float および long double の類似品です。定義されている場合、これらのマクロは整数定数1に展開されます。
  8. マクロFP_ILOGB0 FP_ILOGBNANは整数の定数式に展開され、xがゼロまたはNaNの場合はそれぞれilogb(x)によって値が返されます。FP_ILOGB0の値はINT_MINまたは-INT_MAXのいずれかです。FP_ILOGBNANの値は、INT_MAXまたはINT_MINのいずれかです。
  9. 9 マクロMATH_ERRNO MATH_ERREXCEPTは、それぞれ整数定数の1と2に展開され、マクロMATH_ERRANDLINGは、int型と値MATH_ERRNO、MATH_ERREXCEPT、または両者のビット和を持つ式に展開されます。math_errhandlingの値は、プログラムの期間中、一定です。math_errhandlingがマクロであるか、外部リンクを持つ識別子であるかは不詳である。マクロの定義が抑制されている場合や、プログラムがmath_errhandlingという名前の識別子を定義している場合、その動作は未定義です。式math_errhandling & MATH_ERREXCEPTが0でないことがある場合、実装では<fenv.h>にマクロFE_DIVBYZERO、FE_INVALID、FE_OVERFLOWを定義しなければならない。

  1. The header <math.h> declares two types and many mathematical functions and defines several macros. Most synopses specify a family of functions consisting of a principal function with one or more double parameters, a double return value, or both; and other functions with the same name but with f and l suffixes, which are corresponding functions with float and long double parameters, return values, or both.. Integer arithmetic functions and conversion functions are discussed later.
  2. The types float_t double_t are floating types at least as wide as float and double, respectively, and such that double_t is at least as wide as float_t. If FLT_EVAL_METHOD equals 0, float_t and double_t are float and double, respectively; if FLT_EVAL_METHOD equals 1, they are both double; if FLT_EVAL_METHOD equals 2, they are both long double; and for other values of FLT_EVAL_METHOD, they are otherwise implementation-defined..
  3. The macro HUGE_VAL expands to a positive double constant expression, not necessarily representable as a float. The macros HUGE_VALF HUGE_VALL are respectively float and long double analogs of HUGE_VAL. .
  4. The macro INFINITY expands to a constant expression of type float representing positive or unsigned infinity, if available; else to a positive constant of type float that overflows at translation time..
  5. The macro NAN is defined if and only if the implementation supports quiet NaNs for the float type. It expands to a constant expression of type float representing a quiet NaN.
  6. The number classification macros FP_INFINITE FP_NAN FP_NORMAL FP_SUBNORMAL FP_ZERO .Particularly on systems with wide expression evaluation, a <math.h> function might pass arguments and return values in wider format than the synopsis prototype indicates. .The types float_t and double_t are intended to be the implementation’s most efficient types at least as wide as float and double, respectively. For FLT_EVAL_METHOD equal 0, 1, or 2, the type float_t is the narrowest type used by the implementation to evaluate floating expressions. .HUGE_VAL, HUGE_VALF, and HUGE_VALL can be positive infinities in an implementation that supports infinities. .In this case, using INFINITY will violate the constraint in 6.4.4 and thus require a diagnostic. represent the mutually exclusive kinds of floating-point values. They expand to integer constant expressions with distinct values. Additional implementation-defined floating-point classifications, with macro definitions beginning with FP_ and an uppercase letter, may also be specified by the implementation.
  7. The macro FP_FAST_FMA is optionally defined. If defined, it indicates that the fma function generally executes about as fast as, or faster than, a multiply and an add of double operands.. The macros FP_FAST_FMAF FP_FAST_FMAL are, respectively, float and long double analogs of FP_FAST_FMA. If defined, these macros expand to the integer constant 1.
  8. The macros FP_ILOGB0 FP_ILOGBNAN expand to integer constant expressions whose values are returned by ilogb(x) if x is zero or NaN, respectively. The value of FP_ILOGB0 shall be either INT_MIN or-INT_MAX . The value of FP_ILOGBNAN shall be either INT_MAX or INT_MIN.
  9. The macros MATH_ERRNO MATH_ERREXCEPT expand to the integer constants 1 and 2, respectively; the macro math_errhandling expands to an expression that has type int and the value MATH_ERRNO, MATH_ERREXCEPT, or the bitwise OR of both. The value of math_errhandling is constant for the duration of the program. It is unspecified whether math_errhandling is a macro or an identifier with external linkage. If a macro definition is suppressed or a program defines an identifier with the name math_errhandling, the behavior is undefined. If the expression math_errhandling & MATH_ERREXCEPT can be nonzero, the implementation shall define the macros FE_DIVBYZERO, FE_INVALID, and FE_OVERFLOW in <fenv.h>.

最初に言及されていシノプシス( synopses )の存在が、<tgmath.h>を用意する動機づけになっています。 また、§7.12の頁註の「特に、広い範囲で式を評価するシステムでは、<math.h>関数は、シノプシス・プロトタイプが示すよりも広いフォーマットで引数と戻り値を渡すかもしれません。」とあり、float, double, long double 以外の大きさと精度の実浮動小数点数型の実装を暗示させています。

エラー状態の扱い[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.1 Treatment of error conditions:エラー状態の扱い[4].

エラー状態の扱い( Treatment of error conditions )について、ISO/IEC 9899:2018(通称 C18)の §7.12.1 Treatment of error conditions の冒頭を抄訳/引用します[4]

7.12.1 エラー条件の扱い

  1. <math.h>の各関数の動作は、他に記述されている場合を除き、その入力引数のすべての表現可能な値に対して指定される。各関数は、SIGFPEを上げることなく、また、関数の結果を反映させる以外の浮動小数点例外である "invalid"(無効演算)、"divide-by-zero"(セロ除算)、"overflow "(オーバーフロー)を発生させることなく、1つの操作であるかのように実行される。
  2. すべての関数において、入力引数が数学関数が定義されている領域の外にある場合に限り、定義域エラー( domain error )が発生します。各関数の説明には、必要な定義域エラーが記載されています。実装では、関数の数学的定義と矛盾しない範囲で、追加の定義域エラーを定義することができます。定義域エラーが発生した場合、この関数は実装で定義された値を返します。通常、FP_FAST_FMAマクロは、fma関数がハードウェアの乗算加算命令で直接実装されている場合にのみ定義されます。ソフトウェアでの実装は大幅に遅くなることが予想されます。無限大をサポートしている実装では、関数の数学的定義域に無限大が含まれていない場合、引数としての無限大を定義域エラーとすることができます。 math_errhandling & MATH_ERRNO がゼロでない場合、整数式 errno は値 EDOM を取得します。整数式 math_errhandling & MATH_ERREXCEPT がゼロでない場合、浮動小数点例外「無効演算」が発生します。
  3. 同様に、ポール・エラー(pole errors; 特異点 singularity、無限{的,性} infinitary とも呼ばれる)は、数学関数が有限の入力引数を極限に近づけたときに正確な無限大の結果を持つ場合にのみ発生します(例えば、log(0...))。各関数の説明( description )には、必要なポール・エラーが記載されている。実装では、関数の数学的定義と矛盾しない範囲で、追加のポール・エラーを定義することができる。ポール・エラーが発生すると、この関数は実装で定義された値を返します。整数式 math_errhandling & MATH_ERRNO がゼロでない場合、整数式 errno は値 ERANGE を獲得します。整数式 math_errhandling & MATH_ERREXCEPT がゼロでない場合、浮動小数点例外「ゼロ除算」が発生します。
  4. 同様に、関数の数学的結果が極端に大きいために、指定された型のオブジェクトで表現できない場合に限り、値域エラー(range error)が発生します。各関数の説明には、必要な値域エラーが記載されています。実装では、追加の値域エラーを定義することができますが、そのようなエラーは関数の数学的定義と一致しており、オーバーフローまたはアンダーフローの結果となります。
  5. 浮動小数点の結果がオーバーフローするのは、数学的な結果の大きさが有限であるが、非常に大きいため、指定された型のオブジェクトで異常な丸め誤差なしに数学的な結果を表現できない場合です。浮動小数点数の結果がオーバーフローし、デフォルトの丸め処理が有効な場合、この関数は戻り値の型に応じてマクロ HUGE_VAL、HUGE_VALF、または HUGE_VALL の値を、関数の正しい値と同じ符号で返します。整数式 math_errhandling & MATH_ERRNO が 0 以外の場合、整数式 errno は値 ERANGE を取得します。整数式 math_errhandling & MATH_ERREXCEPT が 0 以外の場合、浮動小数点例外「オーバーフロー」が発生します。
  6. 結果がアンダーフローするのは、数学的な結果の大きさが非常に小さく、異常な丸め誤差なしに、指定された型のオブジェクトで数学的な結果を表すことができない場合です。整数式 math_errhandling & MATH_ERRNO が 0 以外の場合、errno が ERANGE を取得するかどうかは実装で定義されています。整数式 math_errhandling & MATH_ERREXCEPT が 0 以外の場合、浮動小数点例外「アンダーフロー」が発生するかどうかは実装で定義されています。
  7. 定義域、ポール、または値域エラーが発生し、整数式 math_errhandling & MATH_ERRNO がゼロの場合、errno はエラーに対応する値に設定されるか、または変更されないままになります。そのようなエラーが発生しなかった場合は、math_errhandlingの設定にかかわらず、errnoは変更されないままになります。

7.12.1 Treatment of error conditions

  1. The behavior of each of the functions in <math.h> is specified for all representable values of its input arguments, except where stated otherwise. Each function shall execute as if it were a single operation without raising SIGFPE and without generating any of the floating-point exceptions “invalid”, “divide-by-zero”, or “overflow” except to reflect the result of the function.
  2. For all functions, a domain error occurs if and only if an input argument is outside the domain over which the mathematical function is defined. The description of each function lists any required domain errors; an implementation may define additional domain errors, provided that such errors are consistent with the mathematical definition of the function.. On a domain error, the function returns an implementation-defined value; if the integer expression .Typically, the FP_FAST_FMA macro is defined if and only if the fma function is implemented directly with a hardware multiply-add instruction. Software implementations are expected to be substantially slower. .In an implementation that supports infinities, this allows an infinity as an argument to be a domain error if the mathematical domain of the function does not include the infinity. math_errhandling & MATH_ERRNO is nonzero, the integer expression errno acquires the value EDOM; if the integer expression math_errhandling & MATH_ERREXCEPT is nonzero, the “invalid” floating-point exception is raised.
  3. Similarly, a pole error (also known as a singularity or infinitary) occurs if and only if the mathematical function has an exact infinite result as the finite input argument(s) are approached in the limit (for example, log(0..). The description of each function lists any required pole errors; an implementation may define additional pole errors, provided that such errors are consistent with the mathematical definition of the function. On a pole error, the function returns an implementation-defined value; if the integer expression math_errhandling & MATH_ERRNO is nonzero, the integer expression errno acquires the value ERANGE; if the integer expression math_errhandling & MATH_ERREXCEPT is nonzero, the “divide-by-zero” floating-point exception is raised.
  4. Likewise, a range error occurs if and only if the mathematical result of the function cannot be represented in an object of the specified type, due to extreme magnitude. The description of each function lists any required range errors; an implementation may define additional range errors, provided that such errors are consistent with the mathematical definition of the function and are the result of either overflow or underflow.
  5. A floating result overflows if the magnitude of the mathematical result is finite but so large that the mathematical result cannot be represented without extraordinary roundoff error in an object of the specified type. If a floating result overflows and default rounding is in effect, then the function returns the value of the macro HUGE_VAL, HUGE_VALF, or HUGE_VALL according to the return type, with the same sign as the correct value of the function; if the integer expression math_errhandling & MATH_ERRNO is nonzero, the integer expression errno acquires the value ERANGE; if the integer expression math_errhandling & MATH_ERREXCEPT is nonzero, the “overflow” floating-point exception is raised.
  6. The result underflows if the magnitude of the mathematical result is so small that the mathematical result cannot be represented, without extraordinary roundoff error, in an object of the specified type.. If the result underflows, the function returns an implementation-defined value whose magnitude is no greater than the smallest normalized positive number in the specified type; if the integer expression math_errhandling & MATH_ERRNO is nonzero, whether errno acquires the value ERANGE is implementation-defined; if the integer expression math_errhandling & MATH_ERREXCEPT is nonzero, whether the “underflow” floating-point exception is raised is implementation-defined.
  7. If a domain, pole, or range error occurs and the integer expression math_errhandling & MATH_ERRNO is zero,. then errno shall either be set to the value corresponding to the error or left unmodified. If no such error occurs, errno shall be left unmodified regardless of the setting of math_errhandling.

C99にはなかった、ポール・エラー(pole errors)への言及が追加されました。

FP_CONTRACT プラグマ[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.2 The FP_CONTRACT pragma:FP_CONTRACT プラグマ[5].
形式
#include <math.h>
#pragma STDC FP_CONTRACT on-off-switch
説明
FP_CONTRACTプラグマを使用すると、縮約式( contract expressions; JISでは訳を式と短縮に分けているが contract expressions で成句 [6])の実装を許可(状態が「オン」の場合)または不許可(状態が「オフ」の場合)することができます。状態がoffの場合)を許可したり、禁止したりすることができます(§6.5 Expressions)。各プラグマは、外部宣言の外側、または複合文の中のすべての明示的な宣言と文の前に置くことができます。外部宣言の外側にある場合、プラグマはその発生から他のFP_CONTRACTプラグマに出会うまで、または翻訳単位が終了するまで効力を発揮します。複合文の中では、そのプラグマは発生してから他のFP_CONTRACTプラグマが発生するまで(入れ子の複合文の中も含む)、または複合文が終了するまで有効になります。このプラグマを他の文脈で使用した場合、その動作は未定義です。プラグマのデフォルトの状態(onまたはoff)は、実装で定義されます。

分類用マクロ[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.3 Classification macros:分類用マクロ[7].

本節の形式では、実浮動小数点型( real-floating )は、引数が実浮動小数点型の式( an expression of real floating type )でなければならないことを示す。

fpclassify マクロ[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.3.1 The fpclassify macro[8].
形式
#include <math.h>
int fpclassify(real-floating x);
説明
fpclassifyマクロは、引数の値を、NaN、infinite、normal、subnormal、zero、その他の実装で定義されたカテゴリに分類します。まず、意味上の型よりも広い形式で表現された引数は、その意味上の型に変換されます。その後、引数のタイプに基づいて分類されます。
返却値
fpclassifyマクロは、引数の値に応じた数値分類マクロの値を返します。

isfinite マクロ[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.3.2 The isfinite macro[9].
形式
#include <math.h>
int isfinite(real-floating x);
説明
isfinite マクロは、引数が有限の値(ゼロ、サブノーマル、ノーマル、そして無限ではない、NaN)であるかどうかを判定します。まず、意味上の型よりも広い形式で表現された引数は、その意味上の型に変換される。その後、引数の型に基づいて判定を行う。
返却値
isfiniteマクロは、その引数が有限の値を持つ場合に限り、0でない値を返します。

isinf マクロ[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.3.3 The isinf macro[10].
形式
#include <math.h>
int isinf(real-floating x);
説明
isinf マクロは、引数の値が無限大かどうか(正か負か)を判定します。まず、意味上の型よりも広い形式で表現されている引数は、その意味上の型に変換されます。その後、引数の型に基づいて判定を行う。
返却値
isinfマクロは、その引数が無限大の値を持つ場合に限り、0ではない値を返します。

isnan マクロ[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.3.4 The isnan macro[11].
形式
#include <math.h>
int isnan(real-floating x);
238)Since an expression can be evaluated with more range and precision than its type has, it is important to know the type
that classification is based on. For example, a normal long double value might become subnormal when converted to
double, and zero when converted to float.
説明
isnanマクロは、引数の値がNaNであるかどうかを判定します。まず、意味上の型よりも広い形式で表現された引数は、意味上の型に変換されます。その後、引数の型に基づいて判定します
返却値
isnanマクロは、引数にNaN値がある場合に限り、0以外の値を返します。

isnormal マクロ[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.3.5 The isnormal macro[12].
形式
#include <math.h>
int isnormal(real-floating x);
説明
isnormal マクロは、引数の値が正常であるかどうか(0、subnormal、infinite、NaN のいずれでもないか)を判定します。まず、意味上の型よりも広い形式で表現された引数は、その意味上の型に変換される。その後、引数の型に基づいて判定を行う。
返却値
isnormal マクロは、その引数が正常値である場合に限り、非ゼロの値を返します。

signbit マクロ[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.3.6 The signbit macro[13].
形式
#include <math.h>
int signbit(real-floating x);
説明
signbitマクロは、引数の値の符号が負であるかどうかを判定します。
返却値
signbitマクロは、引数の値の符号が負の場合に限り、0以外の値を返します。

三角関数[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.4 Trigonometric functions:三角関数[14].

acos 関数群[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.4.1 The acos functions[15].
形式
#include <math.h>
double acos(double x);
float acosf(float x);
long double acosl(long double x);
説明
acos関数は、xのアークコサインの主値を計算します。引数が区間[-1, +1]にない場合、定義域エラーが発生します。
返却値
acos関数は、区間[0, π]ラジアンにおけるarccos xを返します。isnanマクロでは、実装が評価型ではなく意味型でNaNをサポートしない限り、判定のための型は重要ではありません。signbitマクロは、無限大、ゼロ、NaNを含むすべての値の符号を報告する。ゼロが符号なしの場合、それは正として扱われる。


asin 関数群[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.4.2 The asin functions[16].
形式
#include <math.h>
double asin(double x);
float asinf(float x);
long double asinl(long double x);
説明
asin関数は、xのアークサインの主値を計算します。引数が区間[-1, +1]にない場合、定義域エラーが発生します。
返却値
asin関数は,区間[-π/2, +π/2]ラジアンのarcsin xを返す.

atan 関数群[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.4.3 The atan functions[17].
形式
#include <math.h>
double atan(double x);
float atanf(float x);
long double atanl(long double x);
説明
atan関数は、xのアークタンジェントの主値を計算します。
返却値
atan関数は,区間[-π/2, +π/2]ラジアンのarctan xを返す.

atan2 関数群[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.4.4 The atan2 functions[18].
形式
#include <math.h>
double atan2(double y, double x);
float atan2f(float y, float x);
long double atan2l(long double y, long double x);
説明
atan2関数は、y/xのアークタンジェントの値を計算し、両方の引数の符号を使用して戻り値の象限を決定します。両方の引数がゼロの場合、定義域エラーが発生することがあります。
返却値
atan2関数は,区間[-π, +π]ラジアンのarctan y/xを返します。

cos 関数群[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.4.5 The cos functions[19].
形式
#include <math.h>
double cos(double x);
float cosf(float x);
long double cosl(long double x);
説明
cos関数は、xの余弦(ラジアン単位)を計算します。
返却値
cos関数はcos xを返します。

sin 関数群[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.4.6 The sin functions[20].
形式
#include <math.h>
double sin(double x);
float sinf(float x);
long double sinl(long double x);
説明
sin関数は、xのサイン(ラジアン単位)を計算します。
返却値
sin関数はsin xを返します。

tan 関数群[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.4.7 The tan functions[21].
形式
#include <math.h>
double tan(double x);
float tanf(float x);
long double tanl(long double x);
説明
tan関数は、xのタンジェント(ラジアン単位)を返します。
返却値
tan関数はtan xを返します。

双曲線関数[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.5 Hyperbolic functions:双曲線関数[22].

acosh 関数群[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.5.1 The acosh functions[23].
形式
#include <math.h>
double acosh(double x);
float acoshf(float x);
long double acoshl(long double x);
説明
返却値

asinh 関数群[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.5.2 The asinh functions[24].
形式
#include <math.h>
double asinh(double x);
float asinhf(float x);
long double asinhl(long double x);
説明
返却値


atanh 関数群[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.5.3 The atanh functions[25].
形式
#include <math.h>
double atanh(double x);
float atanhf(float x);
long double atanhl(long double x);
説明
返却値

cosh 関数群[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.5.4 The cosh functions[26].
形式
#include <math.h>
double cosh(double x);
float coshf(float x);
long double coshl(long double x);
説明
返却値

sinh 関数群[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.5.5 The sinh functions[27].
形式
#include <math.h>
double sinh(double x);
float sinhf(float x);
long double sinhl(long double x);
説明
返却値

tanh 関数群[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.5.6 The tanh functions[28].
形式
#include <math.h>
double tanh(double x);
float tanhf(float x);
long double tanhl(long double x);
説明
返却値

指数関数及び対数関数[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.6 Exponential and logarithmic functions:指数関数及び対数関数[29].

exp 関数群[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.6.1 The exp functions[30].
形式
#include <math.h>
double exp(double x);
float expf(float x);
long double expl(long double x);
説明
返却値

.

exp2 関数群[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.6.2 The exp2 functions[31].
形式
#include <math.h>
double exp2(double x);
float exp2f(float x);
long double exp2l(long double x);
説明
返却値

.

expm1 関数群[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.6.3 The expm1 functions[32].
形式
#include <math.h>
double expm1(double x);
float expm1f(float x);
long double expm1l(long double x);
説明
返却値

frexp 関数群[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.6.4 The frexp functions[33].
形式
#include <math.h>
double frexp(double value, int *exp);
float frexpf(float value, int *exp);
long double frexpl(long double value, int *exp);
241)For small magnitude x, expm1(x) is expected to be more accurate than exp(x)-1.
説明
返却値

ilogb 関数群[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.6.5 The ilogb functions[34].
形式
#include <math.h>
int ilogb(double x);
int ilogbf(float x);
int ilogbl(long double x);
説明
返却値

Forward references: the logb functions (7.12.6.11).

ldexp 関数群[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.6.6 The ldexp functions[35].
形式
#include <math.h>
double ldexp(double x, int exp);
float ldexpf(float x, int exp);
long double ldexpl(long double x, int exp);
説明
返却値

log 関数群[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.6.7 The log functions[36].
形式
#include <math.h>
double log(double x);
float logf(float x);
long double logl(long double x);
説明
返却値

log10 関数群[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.6.8 The log10 functions[37].
形式
#include <math.h>
double log10(double x);
float log10f(float x);
long double log10l(long double x);
説明
返却値

log1p 関数群[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.6.9 The log1p functions[38].
形式
#include <math.h>
double log1p(double x);
float log1pf(float x);
long double log1pl(long double x);
説明
返却値

log2 関数群[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.6.10 The log2 functions[39].
形式
#include <math.h>
double log2(double x);
float log2f(float x);
long double log2l(long double x);
説明
返却値

logb 関数群[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.6.11 The logb functions[40].
形式
#include <math.h>
double logb(double x);
float logbf(float x);
long double logbl(long double x);
242)For small magnitude x, log1p(x) is expected to be more accurate than log(1 + x).
説明
返却値

modf 関数群[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.6.12 The modf functions[41].
形式
#include <math.h>
double modf(double value, double *iptr);
float modff(float value, float *iptr);
long double modfl(long double value, long double *iptr);
説明
返却値

The scalbn and scalbln functions[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.6.13 The scalbn and scalbln functions[42].
形式
#include <math.h>
double scalbn(double x, int n);
float scalbnf(float x, int n);
long double scalbnl(long double x, int n);
double scalbln(double x, long int n);
float scalblnf(float x, long int n);
long double scalblnl(long double x, long int n);
説明
返却値

べき乗関数及び絶対値関数[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.7 Power and absolute-value functions:べき乗関数及び絶対値関数[43].

cbrt 関数群[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.7.1 The cbrt functions[44].
形式
#include <math.h>
double cbrt(double x);
float cbrtf(float x);
long double cbrtl(long double x);
説明
返却値

fabs 関数群[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.7.2 The fabs functions[45].
形式
#include <math.h>
double fabs(double x);
float fabsf(float x);
long double fabsl(long double x);
説明
返却値

hypot 関数群[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.7.3 The hypot functions[46].
形式
#include <math.h>
double hypot(double x, double y);
float hypotf(float x, float y);
long double hypotl(long double x, long double y);
説明
返却値

pow 関数群[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.7.4 The pow functions[47].
形式
#include <math.h>
double pow(double x, double y);
float powf(float x, float y);
long double powl(long double x, long double y);
説明
返却値

sqrt 関数群[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.7.5 The sqrt functions[48].
形式
#include <math.h>
double sqrt(double x);
float sqrtf(float x);
long double sqrtl(long double x);
説明
返却値

誤差関数及びガンマ関数[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.8 Error and gamma functions:誤差関数及びガンマ関数[49].

erf 関数群[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.8.1 The erf functions[50].
形式
#include <math.h>
double erf(double x);
float erff(float x);
long double erfl(long double x);
説明
返却値

erfc 関数群[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.8.2 The erfc functions[51].
形式
#include <math.h>
double erfc(double x);
float erfcf(float x);
long double erfcl(long double x);
説明
返却値

lgamma 関数群[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.8.3 The lgamma functions[52].
形式
#include <math.h>
double lgamma(double x);
float lgammaf(float x);
long double lgammal(long double x);
説明
返却値

tgamma 関数群[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.8.4 The tgamma functions[53].
形式
#include <math.h>
double tgamma(double x);
float tgammaf(float x);
long double tgammal(long double x);
説明
返却値

最近接整数関数[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.9 Nearest integer functions:最近接整数関数[54].

ceil 関数群[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.9.1 The ceil functions[55].
形式
#include <math.h>
double ceil(double x);
float ceilf(float x);
long double ceill(long double x);
説明
返却値

floor 関数群[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.9.2 The floor functions[56].
形式
#include <math.h>
double floor(double x);
float floorf(float x);
long double floorl(long double x);
説明
返却値

nearbyint 関数群[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.9.3 The nearbyint functions[57].
形式
#include <math.h>
double nearbyint(double x);
float nearbyintf(float x);
long double nearbyintl(long double x);
説明
返却値

rint 関数群[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.9.4 The rint functions[58].
形式
#include <math.h>
double rint(double x);
float rintf(float x);
long double rintl(long double x);
説明
返却値

[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.9.5 The lrint and llrint functions[59].
形式
#include <math.h>
long int lrint(double x);
long int lrintf(float x);
long int lrintl(long double x);
long long int llrint(double x);
long long int llrintf(float x);
long long int llrintl(long double x);
説明
返却値

round 関数群[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.9.6 The round functions[60].
形式
#include <math.h>
double round(double x);
float roundf(float x);
long double roundl(long double x);
説明
返却値

[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.9.7 The lround and llround functions[61].
形式
#include <math.h>
long int lround(double x);
long int lroundf(float x);
long int lroundl(long double x);
long long int llround(double x);
long long int llroundf(float x);
long long int llroundl(long double x);
説明
返却値

trunc 関数群[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.9.8 The trunc functions[62].
形式
#include <math.h>
double trunc(double x);
float truncf(float x);
long double truncl(long double x);
説明
返却値

剰余関数[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.10 Remainder functions:剰余関数[63].

fmod 関数群[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.10.1 The fmod functions[64].
形式
#include <math.h>
double fmod(double x, double y);
float fmodf(float x, float y);
long double fmodl(long double x, long double y);
説明
返却値

remainder 関数群[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.10.2 The remainder functions[65].
形式
#include <math.h>
double remainder(double x, double y);
float remainderf(float x, float y);
long double remainderl(long double x, long double y);
説明
返却値

remquo 関数群[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.10.3 The remquo functions[66].
形式
#include <math.h>
double remquo(double x, double y, int *quo);
float remquof(float x, float y, int *quo);
long double remquol(long double x, long double y,
int *quo);
説明
返却値

実数操作関数[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.11 Manipulation functions:実数操作関数[67].

copysign 関数群[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.11.1 The copysign functions[68].
形式
#include <math.h>
double copysign(double x, double y);
float copysignf(float x, float y);
long double copysignl(long double x, long double y);
説明
返却値

nan 関数群[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.11.2 The nan functions[69].
形式
#include <math.h>
double nan(const char *tagp);
float nanf(const char *tagp);
long double nanl(const char *tagp);
説明
返却値

Forward references: the strtod, strtof, and strtold functions (7.22.1.3).

nextafter 関数群[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.11.3 The nextafter functions[70].
形式
#include <math.h>
double nextafter(double x, double y);
float nextafterf(float x, float y);
long double nextafterl(long double x, long double y);
説明
返却値

nexttoward 関数群[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.11.4 The nexttoward functions[71].
形式
#include <math.h>
double nexttoward(double x, long double y);
float nexttowardf(float x, long double y);
long double nexttowardl(long double x, long double y);
説明

最大, 最小及び正の差関数[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.12 Maximum, minimum, and positive difference functions:最大, 最小及び正の差関数[72].

fdim 関数群[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.12.1 The fdim functions[73].
形式
#include <math.h>
double fdim(double x, double y);
float fdimf(float x, float y);
long double fdiml(long double x, long double y);
説明
返却値

fmax 関数群[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.12.2 The fmax functions[74].
形式
#include <math.h>
double fmax(double x, double y);
float fmaxf(float x, float y);
long double fmaxl(long double x, long double y);
説明
返却値

fmin 関数群[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.12.3 The fmin functions[75].
形式
#include <math.h>
double fmin(double x, double y);
float fminf(float x, float y);
long double fminl(long double x, long double y);
説明
返却値

浮動小数点乗算加算[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.13 Floating multiply-add:浮動小数点乗算加算[76].

fma 関数群[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.13.1 The fma functions[77].
形式
#include <math.h>
double fma(double x, double y, double z);
float fmaf(float x, float y, float z);
long double fmal(long double x, long double y, long double z);
説明
返却値

比較マクロ[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.14 Comparison macros:比較マクロ[78].

関係演算子と等式演算子は、数値の間の通常の数学的関係をサポートします。数値の順序付けられたペアでは、less、greater、equalのいずれかの関係が正確に真となります。関係演算子は、引数の値がNaNの場合、「invalid」という浮動小数点例外を発生させることがあります。以下のサブクラウ スでは、関係演算子の静かな(浮動小数点例外を発生させない)バージョンのマクロや、 「invalid」浮動小数点例外を発生させずに NaN を考慮する効率的なコードを書きやすくする他の比較マクロを提供します。本節の概要では、real-floating は、引数が実数浮動小数点型の式でなければならないことを示している。両方の引数が同じ型である必要はない。

isgreater マクロ[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.14.1 The isgreater macro[79].
形式
#include <math.h>
int isgreater(real-floating x, real-floating y);
説明
返却値

isgreaterequal マクロ[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.14.2 The isgreaterequal macro[80].
形式
#include <math.h>
int isgreaterequal(real-floating x, real-floating y);
説明
返却値

isless マクロ[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.14.3 The isless macro[81].
形式
#include <math.h>
int isless(real-floating x, real-floating y);
説明

raise the “invalid” floating-point exception when x and y are unordered. -->

返却値

islessequal マクロ[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.14.4 The islessequal macro[82].
形式
#include <math.h>
int islessequal(real-floating x, real-floating y);
説明
返却値

islessgreater マクロ[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.14.5 The islessgreater macro[83].
形式
#include <math.h>
int islessgreater(real-floating x, real-floating y);
説明
返却値

isunordered マクロ[編集]

  • N2176 C17 ballot ISO/IEC 9899:2017 §7.12.14.6 The isunordered macro[84].
形式
#include <math.h>
int isunordered(real-floating x, real-floating y);
説明
返却値

脚註[編集]

  1. ^ 1.0 1.1 N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 169, §7.12 Mathematics <math.h>. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  2. ^ 尚、JISX3010:2003(通称 JISC)の翻訳元であるISO/IEC 9899:1999(通称 C99)とC18の間で <math.h> に関する部分は大幅に改訂・加筆されているのでJISCを出典とはしない。
  3. ^ この点に於いて、JISCは浮動小数点演算について OBSOLETE である。
  4. ^ 4.0 4.1 N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 170, §7.12.1 Treatment of error conditions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  5. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 171, §7.12.2 The FP_CONTRACT pragma. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  6. ^ N1570 Committee Draft — April 12, 2011 ISO/IEC 9899:201x. ISO/IEC. p. 511, §F.7 Contracted expressions. http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf. "F.7 Contracted expressions. --1 A contracted expression is correctly rounded (once) and treats infinities, NaNs, signed zeros, subnormals, and the rounding directions in a manner consistent with the basic arithmetic operations covered by IEC 60559. // F.7 縮約式。 -- 1 縮約式は,正しく丸められ(1回),無限大,NaN,符号付きゼロ,サブノルマル,丸め方向を扱う。符号付きゼロ,サブノーマル,および丸めの方向を,IEC 60559 でカバーする基本的な算術演算と一致する方法で扱う。" 
  7. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 172, §7.12.3 Classification macros. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  8. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 172, §7.12.3.1 The fpclassify macro. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  9. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 172, §7.12.3.2 The isfinite macro. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  10. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 172, §7.12.3.3 The isinf macro. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  11. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 172, §7.12.3.4 The isnan macro. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  12. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 173, §7.12.3.5 The isnormal macro. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  13. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 173, §7.12.3.6 The signbit macro. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  14. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 173, §7.12.4 Trigonometric functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  15. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 173, §7.12.4.1 The acos functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  16. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 174, §7.12.4.2 The asin functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  17. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 174, §7.12.4.3 The atan functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  18. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 174, §7.12.4.4 The atan2 functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  19. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 174, §7.12.4.5 The cos functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  20. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 175, §7.12.4.6 The sin functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  21. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 175, §7.12.4.7 The tan functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  22. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 175, §7.12.5 Hyperbolic functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  23. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 175, §7.12.5.1 The acosh functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  24. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 175, §7.12.5.2 The asinh functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  25. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 176, §7.12.5.3 The atanh functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  26. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 176, §7.12.5.4 The cosh functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  27. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 176, §7.12.5.5 The sinh functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  28. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 176, §7.12.5.6 The tanh functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  29. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 177, §7.12.6 Exponential and logarithmic functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  30. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 177, §7.12.6.1 The exp functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  31. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 1, §7.12.6.2 The exp2 functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  32. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 1, §7.12.6.3 The expm1 functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  33. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 1, §7.12.6.4 The frexp functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  34. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 178, §7.12.6.5 The ilogb functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  35. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 178, §7.12.6.6 The ldexp functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  36. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 178, §7.12.6.7 The log functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  37. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 179, §7.12.6.8 The log10 functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  38. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 179, §7.12.6.9 The log1p functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  39. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 179, §7.12.6.10 The log2 functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  40. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 179, §7.12.6.11 The logb functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  41. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 180, §7.12.6.12 The modf functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  42. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 180, §7.12.6.13 The scalbn and scalbln functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  43. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 180, §7.12.7 Power and absolute-value functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  44. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 180, §7.12.7.1 The cbrt functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  45. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 181, §7.12.7.2 The fabs functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  46. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 181, §7.12.7.3 The hypot functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  47. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 1, §7.12.7.4 The pow functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  48. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 1, §7.12.7.5 The sqrt functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  49. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 182, §7.12.8 Error and gamma functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  50. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 182, §7.12.8.1 The erf functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  51. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 182, §7.12.8.2 The erfc functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  52. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 1, §7.12.8.3 The lgamma functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  53. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 183, §7.12.8.4 The tgamma functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  54. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 183, §7.12.9 Nearest integer functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  55. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 183, §7.12.9.1 The ceil functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  56. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 183, §7.12.9.2 The floor functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  57. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 183, §7.12.9.3 The nearbyint functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  58. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 184, §7.12.9.4 The rint functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  59. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 184, §7.12.9.5 The lrint and llrint functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  60. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 184, §7.12.9.6 The round functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  61. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 184, §7.12.9.7 The lround and llround functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  62. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 185, §7.12.9.8 The trunc functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  63. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 185, §7.12.10 Remainder functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  64. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 185, §7.12.10.1 The fmod functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  65. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 185, §7.12.10.2 The remainder functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  66. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 186, §7.12.10.3 The remquo functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  67. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 186, §7.12.11 Manipulation functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  68. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 186, §7.12.11.1 The copysign functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  69. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 186, §7.12.11.2 The nan functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  70. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 187, §7.12.11.3 The nextafter functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  71. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 187, §7.12.11.4 The nexttoward functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  72. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 187, §7.12.12 Maximum, minimum, and positive difference functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  73. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 187, §7.12.12.1 The fdim functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  74. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 188, §7.12.12.2 The fmax functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  75. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 188, §7.12.12.3 The fmin functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  76. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 188, §7.12.13 Floating multiply-add. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  77. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 188, §7.12.13.1 The fma functions. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  78. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 189, §7.12.14 Comparison macros. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  79. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 189, §7.12.14.1 The isgreater macro. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  80. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 189, §7.12.14.2 The isgreaterequal macro. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  81. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 189, §7.12.14.3 The isless macro. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  82. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 190, §7.12.14.4 The islessequal macro. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  83. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 190, §7.12.14.5 The islessgreater macro. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  84. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 190, §7.12.14.6 The isunordered macro. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 

参考文献[編集]