11 #ifndef LARCORE_COREUTILS_REALCOMPARISONS_H 12 #define LARCORE_COREUTILS_REALCOMPARISONS_H 64 template <
typename RealType>
116 return (lower < upper) ?
within(value, lower, upper) :
within(value, upper, lower);
125 template <
typename RealType>
143 template <
typename Vect>
144 constexpr
bool zero(Vect
const& v)
const 146 return comp().zero(v.X()) && comp().zero(v.Y());
150 template <
typename Vect>
157 template <
typename VectA,
typename VectB>
158 constexpr
bool equal(VectA
const& a, VectB
const& b)
const 160 return comp().equal(a.X(), b.X()) && comp().equal(a.Y(), b.Y());
164 template <
typename VectA,
typename VectB>
165 constexpr
bool nonEqual(VectA
const& a, VectB
const& b)
const 177 template <
typename RealType>
184 template <
typename RealType>
192 template <
typename RealType>
217 template <
typename Vect>
218 constexpr
bool zero(Vect
const& v)
const 220 return comp2D().zero(v) && comp().zero(v.Z());
224 template <
typename Vect>
231 template <
typename VectA,
typename VectB>
232 constexpr
bool equal(VectA
const& a, VectB
const& b)
const 234 return comp2D().equal(a, b) && comp().equal(a.Z(), b.Z());
238 template <
typename VectA,
typename VectB>
239 constexpr
bool nonEqual(VectA
const& a, VectB
const& b)
const 251 template <
typename RealType>
258 template <
typename RealType>
269 #endif // LARCORE_COREUTILS_REALCOMPARISONS_H constexpr Vector3DComparison(Comp_t const &comparer)
Copy the specified comparison.
Namespace for general, non-LArSoft-specific utilities.
constexpr bool nonEqual(Value_t a, Value_t b) const
Returns whether a and b are farther than the threshold.
constexpr bool zero(Vect const &v) const
Returns whether the specified vector is null (within tolerance).
Class comparing 2D vectors.
Provides simple real number checks.
constexpr Comp_t comp() const
Returns the basic value comparer.
constexpr bool zero(Value_t value) const
Returns whether the value is no farther from 0 than the threshold.
auto makeVector2DComparison(RealType threshold)
Creates a Vector2DComparison from a RealComparisons object.
constexpr auto abs(T v)
Returns the absolute value of the argument.
Comp_t const comparer
Comparison object.
constexpr Vector3DComparison(RealType threshold)
Use the specified threshold.
constexpr bool equal(VectA const &a, VectB const &b) const
Returns whether the specified vectors match (within tolerance).
constexpr bool withinSorted(Value_t value, Value_t lower, Value_t upper) const
Returns whether value is between bounds (included); bounds are sorted.
constexpr bool nonEqual(VectA const &a, VectB const &b) const
Returns whether the specified vectors do not match (within tolerance).
constexpr RealComparisons(Value_t threshold)
type of values being compered
constexpr bool strictlySmaller(Value_t a, Value_t b) const
Returns whether a is strictly smaller than b.
constexpr bool strictlyGreater(Value_t a, Value_t b) const
Returns whether a is strictly greater than b.
auto makeVector3DComparison(RealType threshold)
Creates a Vector3DComparison from a RealComparisons object.
constexpr Vector2DComparison(Comp_t const &comparer)
Copy the specified comparison.
Vector2DComparison(Comp_t &&comparer)
Steal the specified comparison.
Class comparing 2D vectors.
constexpr bool strictlyNegative(Value_t value) const
Returns whether value is larger than zero beyond tolerance.
constexpr bool nonGreater(Value_t a, Value_t b) const
Returns whether a is smaller than (or equal to) b.
constexpr Comp_t comp() const
Returns the base value comparer.
constexpr bool strictlyPositive(Value_t value) const
Returns whether value is smaller than zero beyond tolerance.
Vector3DComparison(Comp_t &&comparer)
Steal the specified comparison.
constexpr Vector2DComparison(RealType threshold)
Use the specified threshold.
LArSoft-specific namespace.
constexpr bool nonEqual(VectA const &a, VectB const &b) const
Returns whether the specified vectors do not match (within tolerance).
constexpr bool nonNegative(Value_t value) const
Returns whether value is larger than or equal() to zero.
constexpr bool nonZero(Value_t value) const
Returns whether the value is farther from 0 than the threshold.
constexpr bool zero(Vect const &v) const
Returns whether the specified vector is null (within tolerance).
constexpr bool nonZero(Vect const &v) const
Returns whether the specified vector is not null (within tolerance).
constexpr bool nonSmaller(Value_t a, Value_t b) const
Returns whether a is greater than (or equal to) b.
constexpr Comp2D_t comp2D() const
Returns the 2D vector comparer.
constexpr bool equal(Value_t a, Value_t b) const
Returns whether a and b are no farther than the threshold.
constexpr bool nonPositive(Value_t value) const
Returns whether value is smaller than or equal() to zero.
constexpr bool within(Value_t value, Value_t lower, Value_t upper) const
Returns whether value is between the bounds (included)
constexpr bool equal(VectA const &a, VectB const &b) const
Returns whether the specified vectors match (within tolerance).
constexpr bool nonZero(Vect const &v) const
Returns whether the specified vector is not null (within tolerance).