GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
std::fdim,std::fdimf,std::fdiml(3) C++ Standard Libary std::fdim,std::fdimf,std::fdiml(3)

std::fdim,std::fdimf,std::fdiml - std::fdim,std::fdimf,std::fdiml


Defined in header <cmath>
float fdim ( float x, float y ); (1) (since C++11)
(constexpr since C++23)
float fdimf( float x, float y ); (2) (since C++11)
(constexpr since C++23)
double fdim ( double x, double y ); (3) (since C++11)
(constexpr since C++23)
long double fdim ( long double x, long double y ); (4) (since C++11)
(constexpr since C++23)
long double fdiml( long double x, long double y ); (5) (since C++11)
(constexpr since C++23)
Promoted fdim ( Arithmetic1 x, Arithmetic2 y ); (6) (since C++11)
(constexpr since C++23)


1-5) Returns the positive difference between x and y, that is, if x>y, returns x-y,
otherwise (if x≤y), returns +0.
6) A set of overloads or a function template for all combinations of arguments of
arithmetic type not covered by (1-5). If any argument has integral type, it is cast
to double. If any argument is long double, then the return type Promoted is also
long double, otherwise the return type is always double.


x, y - values of floating-point or integral types


If successful, returns the positive difference between x and y.


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.


Errors are reported as specified in math_errhandling.


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


* If either argument is NaN, NaN is returned


Equivalent to std::fmax(x-y, 0), except for the NaN handling requirements.

// Run this code


#include <iostream>
#include <cmath>
#include <cerrno>
#include <cstring>
#include <cfenv>
#ifndef __GNUC__
#pragma STDC FENV_ACCESS ON
#endif
int main()
{
std::cout << "fdim(4, 1) = " << std::fdim(4, 1)
<< " fdim(1, 4) = " << std::fdim(1, 4) << '\n'
<< "fdim(4,-1) = " << std::fdim(4, -1)
<< " fdim(1,-4) = " << std::fdim(1, -4) << '\n';
// error handling
errno = 0;
std::feclearexcept(FE_ALL_EXCEPT);
std::cout << "fdim(1e308, -1e308) = " << std::fdim(1e308, -1e308) << '\n';
if (errno == ERANGE)
std::cout << " errno == ERANGE: " << std::strerror(errno) << '\n';
if (std::fetestexcept(FE_OVERFLOW))
std::cout << " FE_OVERFLOW raised\n";
}


fdim(4, 1) = 3 fdim(1, 4) = 0
fdim(4,-1) = 5 fdim(1,-4) = 5
fdim(1e308, -1e308) = inf
errno == ERANGE: Numerical result out of range
FE_OVERFLOW raised


abs(int)
labs computes absolute value of an integral value (\(\small{|x|}\)|x|)
llabs (function)
(C++11)
fmax
fmaxf
fmaxl larger of two floating-point values
(C++11) (function)
(C++11)
(C++11)

2022.07.31 http://cppreference.com

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.