46 double diff = std::fmod(
static_cast<double>( aValue - aNominal ),
static_cast<double>( aWrap ) );
48 if( diff > aWrap / 2.0 )
50 else if( diff < -aWrap / 2.0 )
61template <
typename T>
bool IsWithin(
T aValue,
T aNominal,
T aError )
63 return ( aValue >= aNominal - aError ) && ( aValue <= aNominal + aError );
74 return ( aValue >= aNominal - aErrorBelow ) && ( aValue <= aNominal + aErrorAbove );
bool IsWithinWrapped(T aValue, T aNominal, T aWrap, T aError)
Check if a value is within a tolerance of a nominal value, wrapping to a given val.
bool IsWithin(T aValue, T aNominal, T aError)
Check if a value is within a tolerance of a nominal value.
bool IsWithinAndAbove(T aValue, T aNominal, T aErrorAbove)
value is in range [aNominal, aNominal + aErrorAbove]
bool IsWithinAndBelow(T aValue, T aNominal, T aErrorBelow)
value is in range [aNominal - aErrorBelow, aNominal]
bool IsWithinBounds(T aValue, T aNominal, T aErrorAbove, T aErrorBelow)
Check if a value is within a tolerance of a nominal value, with different allowances for errors above...
EDA_ANGLE abs(const EDA_ANGLE &aAngle)