The following code produces an error: std::numeric_limits<double>::epsilon() undefined error. 
Using numeric_limits<double>::epsilon also produces this error.
#ifndef _USE_MATH_DEFINES
#define _USE_MATH_DEFINES
#endif // !_USE_MATH_DEFINES
#include <math.h>
#include <limits.h>
class plusCartesianPoly {
public:
    static bool isClose(double a, double b)
    {
        if (fabs(a-b) <= std::numeric_limits::epsilon())
            return true;
        return(false);
    }
};
                The preferred way in C++ is to use std::numeric_limits::epsilon( ) – specified in the standard header . In Java, it is referred to as ULP (unit in last place). You can find it by using the java. lang.
std::numeric_limits::epsilon(): This function returns the difference between one and the smallest value greater than one that is representable.
std::numeric_limits ::digits in C++ with Example The std::numeric_limits ::digits function is used to find the number of radix digits that the data type can represent without loss of precision. Header File: #include<limits>
Data types that supports std::numeric_limits() in C++ std::numeric_limits<int>::max() gives the maximum possible value we can store in type int. std::numeric_limits<unsigned int>::max()) gives the maximum possible value we can store in type unsigned int.
numeric_limits is declared in limits, not limits.h which is the C version of climits (by the way, math.h is the C version of cmath):
#ifndef _USE_MATH_DEFINES
#define _USE_MATH_DEFINES
#endif // !_USE_MATH_DEFINES
#include <cmath>
#include <limits>
class plusCartesianPoly {
public:
    static bool isClose(double a, double b)
    {
        if (std::fabs(a-b) <= std::numeric_limits<double>::epsilon())
            return true;
        return(false);
    }
};
                        <limits.h> contains the macro-type limits from the C standard library
You need <limits> to use the C++ standard library functions.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With