Merge branch 'master' of gitlab.2:f1x1t/myxlib
This commit is contained in:
42
src/myx/math/almost_equal_relative.cpp
Normal file
42
src/myx/math/almost_equal_relative.cpp
Normal file
@ -0,0 +1,42 @@
|
||||
#include <myx/math/almost_equal_relative.hpp>
|
||||
|
||||
#include <cmath>
|
||||
|
||||
namespace myx {
|
||||
|
||||
namespace math {
|
||||
|
||||
bool almost_equal_relative( const float a, const float b,
|
||||
const float maxRelDiff )
|
||||
{
|
||||
float diff = fabsf( a - b );
|
||||
float aN = fabsf( a );
|
||||
float bN = fabsf( b );
|
||||
float largest = ( bN > aN ) ? bN : aN;
|
||||
|
||||
if ( diff <= largest * maxRelDiff )
|
||||
{
|
||||
return( true );
|
||||
}
|
||||
return( false );
|
||||
}
|
||||
|
||||
|
||||
bool almost_equal_relative( const double a, const double b,
|
||||
const double maxRelDiff )
|
||||
{
|
||||
double diff = fabs( a - b );
|
||||
double aN = fabs( a );
|
||||
double bN = fabs( b );
|
||||
double largest = ( bN > aN ) ? bN : aN;
|
||||
|
||||
if ( diff <= largest * maxRelDiff )
|
||||
{
|
||||
return( true );
|
||||
}
|
||||
return( false );
|
||||
}
|
||||
|
||||
} // namespace math
|
||||
|
||||
} // namespace myx
|
Reference in New Issue
Block a user