最終更新日時(UTC):
が更新

履歴 編集

function
<cmath>

std::fminimum(C++26)

namespace std {
  constexpr floating-point-type
    fminimum(floating-point-type x,
             floating-point-type y); // (1) C++26

  constexpr Promoted
    fminimum(Arithmetic1 x,
             Arithmetic2 y);         // (2) C++26
}

概要

浮動小数点数型の最小値を求める。

同じ目的のほかの関数との比較は以下。

関数名 -0.0 と +0.0 の比較 NaN を含む場合の挙動 備考
fmin 未規定 NaN でない方を返す
fminimum -0.0 を返す NaN を返す エラー伝播を優先
fminimum_num -0.0 を返す NaN でない方を返す 数値を優先

戻り値

引数の最小値を返す。

備考

  • 戻り値は正確で、現在の丸めモードに依存しない。
  • 処理系が IEC 60559 に準拠している場合(std::numeric_limits<T>::is_iec559() != false)、以下の規定が追加される。
    • 引数のいずれかが NaN の場合、 NaN を返す。
  • -0.0+0.0の比較では、-0.0を返す。

#include <print>
#include <cmath>

int main() {
  std::println("fminimum( 0.0, -1.0) = {:+}", std::fminimum(0.0, -1.0));
  std::println("fminimum(-0.0, +0.0) = {:+}", std::fminimum(-0.0, +0.0));
  std::println("fminimum( 0.0, +1.0) = {:+}", std::fminimum(0.0, +1.0));
  std::println("fminimum( 0.0, nan)  = {:+}", std::fminimum(0.0, std::nan("")));
  std::println("fminimum( nan, nan)  = {:+}", std::fminimum(std::nan(""), std::nan("")));
}

出力例

fminimum( 0.0, -1.0) = -1
fminimum(-0.0, +0.0) = -0
fminimum( 0.0, +1.0) = +0
fminimum( 0.0, nan)  = +nan
fminimum( nan, nan)  = +nan

バージョン

言語

  • C++26

処理系

関連項目

参照