Namensräume
Varianten
Aktionen

fdim, fdimf, fdiml

Von cppreference.com
< c‎ | numerik‎ | math
 
 
 
Allgemeine mathematische Funktionen
Funktionen
Grundlegende Operationen
(C99)
(C99)
fdim
(C99)
(C99)(C99)(C99)(C23)
Maximum/Minimum-Operationen
(C99)
(C99)
Exponentialfunktionen
(C23)
(C99)
(C99)
(C23)
(C23)

(C99)
(C99)(C23)
(C23)
(C23)
Potenzfunktionen
(C99)
(C23)
(C23)

(C99)
(C23)
(C23)
Trigonometrische und hyperbolische Funktionen
(C23)
(C23)
(C23)
(C23)
(C99)
(C99)
(C99)
Nächste ganze Gleitkommazahlen
(C99)(C99)(C99)
(C99)

(C99)(C99)(C99)
(C23)(C23)(C23)(C23)
Gleitkomma-Manipulation
(C99)(C99)
(C99)(C23)
(C99)
Verengende Operationen
(C23)
(C23)
(C23)
(C23)
(C23)
(C23)
Quanten- und Quantenexponent-Funktionen
Dezimal-Neu-Kodierungsfunktionen
Gesamtordnung und Payload-Funktionen
Klassifizierung
(C99)
(C99)
(C99)
(C23)
Fehler- und Gammafunktionen
(C99)
(C99)
(C99)
(C99)
Typen
Makrokonstanten
Spezielle Gleitkommawerte
(C99)(C23)
Argumente und Rückgabewerte
Fehlerbehandlung
Schnelle Operationsanzeigen
 
Definiert in Header <math.h>
float       fdimf( float x, float y );
(1) (seit C99)
double      fdim( double x, double y );
(2) (seit C99)
long double fdiml( long double x, long double y );
(3) (seit C99)
Definiert in Header <tgmath.h>
#define fdim( x, y )
(4) (seit C99)
1-3) Gibt die positive Differenz zwischen x und y zurück, d.h. wenn x>y, wird x-y zurückgegeben, andernfalls (wenn x≤y) wird +0 zurückgegeben.
4) Typ-generischer Makro: Wenn ein Argument den Typ long double hat, wird fdiml aufgerufen. Andernfalls, wenn ein Argument einen Ganzzahltyp oder den Typ double hat, wird fdim aufgerufen. Andernfalls wird fdimf aufgerufen.

Inhalt

[bearbeiten] Parameter

x, y - Gleitkommawert

[bearbeiten] Rückgabewert

Bei Erfolg wird die positive Differenz zwischen x und y zurückgegeben.

Wenn ein Bereichsfehler aufgrund von Überlauf auftritt, wird +HUGE_VAL, +HUGE_VALF oder +HUGE_VALL zurückgegeben.

Wenn ein Bereichsfehler aufgrund von Unterlauf auftritt, wird der korrekte Wert (nach Rundung) zurückgegeben.

[bearbeiten] Fehlerbehandlung

Fehler werden wie in Template:rllpt angegeben gemeldet.

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

  • Wenn eines der Argumente NaN ist, wird NaN zurückgegeben.

[bearbeiten] Hinweise

Äquivalent zu fmax(x-y, 0), mit Ausnahme der NaN-Handlungsanforderungen.

[bearbeiten] Beispiel

#include <errno.h>
#include <fenv.h>
#include <math.h>
#include <stdio.h>
// #pragma STDC FENV_ACCESS ON
 
int main(void)
{
    printf("fdim(4, 1) = %f, fdim(1, 4)=%f\n", fdim(4,1), fdim(1,4));
    printf("fdim(4,-1) = %f, fdim(1,-4)=%f\n", fdim(4,-1), fdim(1,-4));
    //error handling
    errno = 0; feclearexcept(FE_ALL_EXCEPT);
    printf("fdim(1e308, -1e308) = %f\n", fdim(1e308, -1e308));
    if (errno == ERANGE)
        perror("    errno == ERANGE");
    if (fetestexcept(FE_OVERFLOW))
        puts("    FE_OVERFLOW raised");
}

Mögliche Ausgabe

fdim(4, 1) = 3.000000, fdim(1, 4)=0.000000
fdim(4,-1) = 5.000000, fdim(1,-4)=5.000000
fdim(1e308, -1e308) = inf
    errno == ERANGE: Numerical result out of range
    FE_OVERFLOW raised

[bearbeiten] Referenzen

  • C23-Standard (ISO/IEC 9899:2024)
  • 7.12.12.1 The fdim functions (p: TBD)
  • 7.25 Typ-generische Mathematik <tgmath.h> (S. TBD)
  • F.10.9.1 The fdim functions (p: TBD)
  • C17-Standard (ISO/IEC 9899:2018)
  • 7.12.12.1 The fdim functions (p: 187-188)
  • 7.25 Typ-generische Mathematik <tgmath.h> (S. 272-273)
  • F.10.9.1 The fdim functions (p: 386)
  • C11-Standard (ISO/IEC 9899:2011)
  • 7.12.12.1 The fdim functions (p: 257)
  • 7.25 Typ-generische Mathematik <tgmath.h> (S. 373-375)
  • F.10.9.1 The fdim functions (p: 530)
  • C99-Standard (ISO/IEC 9899:1999)
  • 7.12.12.1 The fdim functions (p: 238)
  • 7.22 Typ-generische Mathematik <tgmath.h> (S. 335-337)
  • F.9.9.1 The fdim functions (p: 466)

[bearbeiten] Siehe auch

berechnet den Absolutwert eines ganzzahligen Wertes (|x|)
(Funktion) [bearbeiten]
(C99)(C99)(C99)
ermittelt den größeren von zwei Gleitkommawerten
(Funktion) [bearbeiten]