VTK
9.3.20240419
|
Functions | |
template<class A > | |
bool | FuzzyCompare (A a, A b, A epsilon=std::numeric_limits< A >::epsilon()) |
Perform a fuzzy compare of floats/doubles, specify the allowed tolerance. More... | |
template<class A > | |
A | SafeDivision (A a, A b) |
Performs safe division that catches overflow and underflow. More... | |
template<class A > | |
bool | NearlyEqual (A a, A b, A tol=std::numeric_limits< A >::epsilon()) |
A slightly different fuzzy comparator that checks if two values are "nearly" equal based on Knuth, "The Art of Computer Programming (vol II)". More... | |
template<class A > | |
void | UpdateRangeImpl (A &min0, A &max0, const A &value) |
Update an existing min - max range with a new prospective value. More... | |
template<class A > | |
void | UpdateRange (A &min0, A &max0, const A &value, typename std::enable_if<!std::is_floating_point< A >::value >::type *=nullptr) |
template<class A > | |
void | UpdateRange (A &min0, A &max0, const A &value, typename std::enable_if< std::is_floating_point< A >::value >::type *=nullptr) |
bool vtkMathUtilities::FuzzyCompare | ( | A | a, |
A | b, | ||
A | epsilon = std::numeric_limits<A>::epsilon() |
||
) |
Perform a fuzzy compare of floats/doubles, specify the allowed tolerance.
Definition at line 36 of file vtkMathUtilities.h.
A vtkMathUtilities::SafeDivision | ( | A | a, |
A | b | ||
) |
Performs safe division that catches overflow and underflow.
Definition at line 45 of file vtkMathUtilities.h.
bool vtkMathUtilities::NearlyEqual | ( | A | a, |
A | b, | ||
A | tol = std::numeric_limits<A>::epsilon() |
||
) |
A slightly different fuzzy comparator that checks if two values are "nearly" equal based on Knuth, "The Art of Computer Programming (vol II)".
Definition at line 69 of file vtkMathUtilities.h.
void vtkMathUtilities::UpdateRangeImpl | ( | A & | min0, |
A & | max0, | ||
const A & | value | ||
) |
Update an existing min - max range with a new prospective value.
If the value is non NaN then the appropriate range comparisons are made and updated, otherwise the original min - max values are set.
Examples:
No change: UpdateRange(-100, 100, 20) -> (-100, 100)
Update min: UpdateRange(-100, 100, -200) -> (-200, 100)
Update max: UpdateRange(-100, 100, 200) -> (-100, 200)
Input min and max are inverted creating an invalid range so a new range with the specified value is set: UpdateRange(100, -100, 20) -> (20, 20)
Input value is NaN so the original range is set UpdateRange(-100, 100, NaN) -> (-100, 100)
Definition at line 102 of file vtkMathUtilities.h.
void vtkMathUtilities::UpdateRange | ( | A & | min0, |
A & | max0, | ||
const A & | value, | ||
typename std::enable_if<!std::is_floating_point< A >::value >::type * | = nullptr |
||
) |
Definition at line 118 of file vtkMathUtilities.h.
void vtkMathUtilities::UpdateRange | ( | A & | min0, |
A & | max0, | ||
const A & | value, | ||
typename std::enable_if< std::is_floating_point< A >::value >::type * | = nullptr |
||
) |
Definition at line 125 of file vtkMathUtilities.h.