35 #ifndef _BLAZE_MATH_SHIMS_EQUAL_H_
36 #define _BLAZE_MATH_SHIMS_EQUAL_H_
44 #include <boost/math/special_functions/next.hpp>
73 inline bool equal(
const T1& a,
const T2& b )
98 inline bool equal(
float a,
float b )
100 using boost::math::float_advance;
102 const int distance( 6 );
104 return ( std::fabs( a - b ) <= 1E-6 ) ||
105 ( a < b && b <= float_advance( a, distance ) ) ||
106 ( b < a && a <= float_advance( b, distance ) );
130 inline bool equal(
float a,
double b )
132 return equal( a, static_cast<float>( b ) );
156 inline bool equal(
float a,
long double b )
158 return equal( a, static_cast<float>( b ) );
178 inline bool equal(
double a,
float b )
180 return equal( static_cast<float>( a ), b );
204 inline bool equal(
double a,
double b )
206 using boost::math::float_advance;
208 const int distance( 4 );
210 return ( std::fabs( a - b ) <=
accuracy ) ||
211 ( a < b && b <= float_advance( a, distance ) ) ||
212 ( b < a && a <= float_advance( b, distance ) );
236 inline bool equal(
double a,
long double b )
238 return std::fabs( a - b ) <= ( 1E-8L * std::fabs( b ) );
262 inline bool equal(
long double a,
float b )
264 return equal( static_cast<float>( a ), b );
288 inline bool equal(
long double a,
double b )
290 return equal( static_cast<double>( a ), b );
314 inline bool equal(
long double a,
long double b )
316 using boost::math::float_advance;
318 const int distance( 4 );
320 return ( std::fabs( a - b ) <=
accuracy ) ||
321 ( a < b && b <= float_advance( a, distance ) ) ||
322 ( b < a && a <= float_advance( b, distance ) );
341 template<
typename T1
343 inline bool equal( complex<T1> a, T2 b )
364 template<
typename T1
366 inline bool equal( T1 a, complex<T2> b )
387 template<
typename T1
389 inline bool equal( complex<T1> a, complex<T2> b )
Computation accuracy for floating point data types.
const ImagExprTrait< MT >::Type imag(const DenseMatrix< MT, SO > &dm)
Returns a matrix containing the imaginary part of each single element of dm.
Definition: DMatImagExpr.h:920
Namespace of the Blaze C++ math library.
Definition: Blaze.h:57
const RealExprTrait< MT >::Type real(const DenseMatrix< MT, SO > &dm)
Returns a matrix containing the real part of each single element of dm.
Definition: DMatRealExpr.h:920
bool equal(const T1 &a, const T2 &b)
Generic equality check.
Definition: Equal.h:73
const Accuracy accuracy
Global Accuracy instance.The blaze::accuracy instance can be used wherever a floating point data type...
Definition: Accuracy.h:901
Header file for the complex data type.