 # C++ fdim()

The fdim() function in C++ takes two arguments and returns the positive difference between first and second argument.

## fdim() prototype [As of C++ 11 standard]

```double fdim(double x, double y);
float fdim(float x, float y);
long double fdim(long double x, long double y);
Promoted fdim(Type1 x, Type2 y); // For other combinations of arithmetic types.
```

Since C++11, if any argument passed to fdim() is `long double`, the return type Promoted is `long double`. If not, the return type Promoted is `double`.

This function is defined in <cmath> header file.

## fdim() Parameters

The fdim() function take two parameters of either floating-point or integral type:

• x - first argument to fdim()
• y - second argument to fdim()

## fdim() Return Value

The fdim() function returns:

• `x-y` if x > y
• 0 if x ≤ y

## Example: How fdim() works?

``````#include <iostream>
#include <cmath>
using namespace std;

int main()
{
double x = 22.31, y = 13.17, result;
result = fdim(x, y);
cout << "fdim(x, y) = " << result << endl;

long double xLD = -22.31, resultLD;
y = 13.14;
resultLD = fdim(xLD, y);
cout << "fdim(xLD, y) = " << resultLD << endl;

return 0;
}``````

When you run the program, the output will be:

```fdim(x, y) = 9.14
fdim(xLD, yLD) = 0```