Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      fdim, fdimf, fdiml

      From cppreference.com
      <c‎ |numeric‎ |math
       
       
       
      Common mathematical functions
      Functions
      Basic operations
      (C99)
      (C99)
      fdim
      (C99)
      (C99)(C99)(C99)(C23)
      Maximum/minimum operations
      (C99)
      (C99)
      Exponential functions
      (C23)
      (C99)
      (C99)
      (C23)
      (C23)

      (C99)
      (C99)(C23)
      (C23)
      (C23)
      Power functions
      (C99)
      (C23)
      (C23)

      (C99)
      (C23)
      (C23)
      Trigonometric and hyperbolic functions
      (C23)
      (C23)
      (C23)
      (C23)
      (C99)
      (C99)
      (C99)
      Nearest integer floating-point
      (C99)(C99)(C99)
      (C23)(C23)(C23)(C23)
      Floating-point manipulation
      (C99)(C99)
      (C99)(C23)
      (C99)
      Narrowing operations
      (C23)
      (C23)
      (C23)
      (C23)
      (C23)
      (C23)
      Quantum and quantum exponent
      Decimal re-encoding functions
      Total order and payload functions
      Classification
      Error and gamma functions
      (C99)
      (C99)
      (C99)
      (C99)
      Types
      Macro constants
      Special floating-point values
      (C99)(C23)
      Arguments and return values
      Error handling
      Fast operation indicators
       
      Defined in header<math.h>
      float       fdimf(float x,float y);
      (1)(since C99)
      double      fdim(double x,double y);
      (2)(since C99)
      longdouble fdiml(longdouble x,longdouble y);
      (3)(since C99)
      Defined in header<tgmath.h>
      #define fdim( x, y )
      (4)(since C99)
      1-3) Returns the positive difference betweenx andy, that is, ifx>y, returnsx-y, otherwise (ifx≤y), returns +0.
      4) Type-generic macro: If any argument has typelongdouble,fdiml is called. Otherwise, if any argument has integer type or has typedouble,fdim is called. Otherwise,fdimf is called.

      Contents

      [edit]Parameters

      x, y - floating-point value

      [edit]Return value

      If successful, returns the positive difference betweenx andy.

      If a range error due to overflow occurs,+HUGE_VAL,+HUGE_VALF, or+HUGE_VALL is returned.

      If a range error due to underflow occurs, the correct value (after rounding) is returned.

      [edit]Error handling

      Errors are reported as specified inTemplate:rllpt.

      If the implementation supports IEEE floating-point arithmetic (IEC 60559),

      • If either argument is NaN, NaN is returned.

      [edit]Notes

      Equivalent tofmax(x-y,0) except for the NaN handling requirements.

      [edit]Example

      Run this code
      #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 handlingerrno=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");}

      Possible output:

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

      [edit]References

      • C23 standard (ISO/IEC 9899:2024):
      • 7.12.12.1 The fdim functions (p: TBD)
      • 7.25 Type-generic math <tgmath.h> (p: 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 Type-generic math <tgmath.h> (p: 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 Type-generic math <tgmath.h> (p: 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 Type-generic math <tgmath.h> (p: 335-337)
      • F.9.9.1 The fdim functions (p: 466)

      [edit]See also

      computes absolute value of an integral value (\(\small{|x|}\)|x|)
      (function)[edit]
      (C99)(C99)(C99)
      determines larger of two floating-point values
      (function)[edit]
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=c/numeric/math/fdim&oldid=172012"

      [8]ページ先頭

      ©2009-2025 Movatter.jp