11 #ifndef LARCORE_COREUTILS_REALCOMPARISONS_H 12 #define LARCORE_COREUTILS_REALCOMPARISONS_H 63 template <
typename RealType>
115 return (lower < upper) ?
within(value, lower, upper) :
within(value, upper, lower);
124 template <
typename RealType>
142 template <
typename Vect>
143 constexpr
bool zero(Vect
const& v)
const 145 return comp().zero(v.X()) && comp().zero(v.Y());
149 template <
typename Vect>
156 template <
typename VectA,
typename VectB>
157 constexpr
bool equal(VectA
const& a, VectB
const& b)
const 159 return comp().equal(a.X(), b.X()) && comp().equal(a.Y(), b.Y());
163 template <
typename VectA,
typename VectB>
164 constexpr
bool nonEqual(VectA
const& a, VectB
const& b)
const 176 template <
typename RealType>
183 template <
typename RealType>
191 template <
typename RealType>
216 template <
typename Vect>
217 constexpr
bool zero(Vect
const& v)
const 219 return comp2D().zero(v) && comp().zero(v.Z());
223 template <
typename Vect>
230 template <
typename VectA,
typename VectB>
231 constexpr
bool equal(VectA
const& a, VectB
const& b)
const 233 return comp2D().equal(a, b) && comp().equal(a.Z(), b.Z());
237 template <
typename VectA,
typename VectB>
238 constexpr
bool nonEqual(VectA
const& a, VectB
const& b)
const 250 template <
typename RealType>
257 template <
typename RealType>
267 #endif // LARCORE_COREUTILS_REALCOMPARISONS_H constexpr Vector3DComparison(Comp_t const &comparer)
Copy the specified comparison.
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.
LArSoft utility namespace.
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.
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).