VTK
9.2.20220811
|
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 45 of file vtkMathUtilities.h.
A vtkMathUtilities::SafeDivision | ( | A | a, |
A | b | ||
) |
Performs safe division that catches overflow and underflow.
Definition at line 54 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 78 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 111 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 127 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 134 of file vtkMathUtilities.h.