Namensräume
Varianten
Aktionen

std::fmin, std::fminf, std::fminl

Von cppreference.com
< cpp‎ | numeric‎ | math
 
 
 
 
Definiert in der Header-Datei <cmath>
(1)
float       fmin ( float x, float y );

double      fmin ( double x, double y );

long double fmin ( long double x, long double y );
(bis C++23)
constexpr /*Gleitkommazahl-Typ*/

            fmin ( /*Gleitkommazahltyp*/ x,

                   /* Gleitkommazahl-Typ */ y );
(seit C++23)
float       fminf( float x, float y );
(2) (seit C++11)
(constexpr seit C++23)
long double fminl( long double x, long double y );
(3) (seit C++11)
(constexpr seit C++23)
SIMD-Überladung (seit C++26)
Definiert im Header <simd>
template< class V0, class V1 >

constexpr /*math-common-simd-t*/<V0, V1>

            fmin ( const V0& v_x, const V1& v_y );
(S) (seit C++26)
Definiert in der Header-Datei <cmath>
template< class Integer >
double      fmin ( Integer x, Integer y );
(A) (constexpr seit C++23)
1-3) Gibt das kleinere von zwei Gleitkommaargumenten zurück, wobei NaNs als fehlende Daten behandelt werden (zwischen einer NaN und einem numerischen Wert wird der numerische Wert gewählt). Die Bibliothek stellt Überladungen von std::fmin für alle cv-unqualifizierten Gleitkommatypen als Parametertypen bereit.(seit C++23)
S) Die SIMD-Überladung führt ein elementweises std::fmin für v_xund v_ydurch.
(Siehe math-common-simd-t für dessen Definition.)
(seit C++26)
A) Zusätzliche Überladungen werden für alle ganzzahligen Typen bereitgestellt, die als double behandelt werden.
(seit C++11)

Inhalt

[edit] Parameter

x, y - Gleitkomma- oder Ganzzahlwerte

[edit] Rückgabewert

Bei Erfolg wird der kleinere der beiden Gleitkommawerte zurückgegeben. Der zurückgegebene Wert ist exakt und hängt nicht von Rundungsmodi ab.

[edit] Fehlerbehandlung

Diese Funktion unterliegt keinen der in math_errhandling spezifizierten Fehlerbedingungen.

Wenn die Implementierung IEEE-Gleitkomma-Arithmetik (IEC 60559) unterstützt,

  • Wenn eines der beiden Argumente NaN ist, wird der Wert des anderen Arguments zurückgegeben.
  • Nur wenn beide Argumente NaN sind, wird NaN zurückgegeben.

[edit] Anmerkungen

Diese Funktion muss nicht empfindlich auf das Vorzeichen von Null reagieren, obwohl einige Implementierungen zusätzlich sicherstellen, dass, wenn ein Argument +0 und das andere -0 ist, dann -0 zurückgegeben wird.

Die zusätzlichen Überladungen müssen nicht exakt wie (A) angegeben werden. Sie müssen nur ausreichen, um sicherzustellen, dass für ihr erstes Argument num1 und ihr zweites Argument num2

  • Wenn num1 oder num2 vom Typ long double ist, dann hat std::fmin(num1, num2) die gleiche Wirkung wie std::fmin(static_cast<long double>(num1),
              static_cast<long double>(num2))
    .
  • Andernfalls, wenn num1 und/oder num2 vom Typ double oder einem ganzzahligen Typ ist, dann hat std::fmin(num1, num2) die gleiche Wirkung wie std::fmin(static_cast<double>(num1),
              static_cast<double>(num2))
    .
  • Andernfalls, wenn num1 oder num2 vom Typ float ist, dann hat std::fmin(num1, num2) die gleiche Wirkung wie std::fmin(static_cast<float>(num1),
              static_cast<float>(num2))
    .
(bis C++23)

Wenn num1 und num2 arithmetische Typen haben, dann hat std::fmin(num1, num2) die gleiche Wirkung wie std::fmin(static_cast</*gemeinsamer Gleitkommatyp*/>(num1),
          static_cast</*gemeinsamer Gleitkommatyp*/>(num2))
, wobei /*gemeinsamer Gleitkommatyp*/ der Gleitkommatyp mit dem höchsten Gleitkommakonversionsrang und dem höchsten Gleitkommakonversions-Subrang zwischen den Typen von num1 und num2 ist. Argumente vom ganzzahligen Typ werden so behandelt, als hätten sie denselben Gleitkommakonversionsrang wie double.

Wenn kein solcher Gleitkommazahltyp mit dem höchsten Rang und Subrang existiert, dann führt die Überladungsauflösung nicht zu einem nutzbaren Kandidaten aus den bereitgestellten Überladungen.

(seit C++23)

[edit] Beispiel

#include <cmath>
#include <iostream>
 
int main()
{
    std::cout << "fmin(2,1)    = " << std::fmin(2, 1) << '\n'
              << "fmin(-Inf,0) = " << std::fmin(-INFINITY, 0) << '\n'
              << "fmin(NaN,-1) = " << std::fmin(NAN, -1) << '\n';
}

Mögliche Ausgabe

fmin(2,1)    = 1
fmin(-Inf,0) = -inf
fmin(NaN,-1) = -1

[edit] Siehe auch

(C++11)
prüft, ob das erste Gleitkommaargument kleiner ist als das zweite
(Funktion) [bearbeiten]
(C++11)(C++11)(C++11)
größerer von zwei Gleitkommawerten
(Funktion) [bearbeiten]
Gibt den kleineren der beiden Werte zurück
(Funktionstemplate) [edit]
gibt das kleinste Element in einem Bereich zurück
(Funktionsvorlage) [editieren]
(C++11)
gibt die kleinere und größere von zwei Elementen zurück
(Funktionsvorlage) [editieren]
gibt das kleinste und das größte Element in einem Bereich zurück
(Funktionsvorlage) [editieren]
C-Dokumentation für fmin