Changeset f57182 for src/base/helper.hpp
- Timestamp:
- Mar 30, 2013, 2:44:52 PM (13 years ago)
- Children:
- 8180d8
- Parents:
- d13e27
- git-author:
- Julian Iseringhausen <isering@…> (06/11/12 14:02:16)
- git-committer:
- Julian Iseringhausen <isering@…> (03/30/13 14:44:52)
- File:
-
- 1 edited
-
src/base/helper.hpp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/base/helper.hpp
rd13e27 rf57182 80 80 * Checks a number for validity, i.e. it is neither nan nor inf. 81 81 */ 82 inline bool CheckNumber(const vmg_float& number) 82 template <class T> 83 inline bool CheckNumber(const T& number) 83 84 { 84 85 bool valid = true; 85 86 86 if (std::numeric_limits<vmg_float>::has_quiet_NaN) { 87 valid &= number != std::numeric_limits<vmg_float>::quiet_NaN(); 88 assert(number != std::numeric_limits<vmg_float>::quiet_NaN()); 89 } 87 // Check for nan 88 valid &= number == number; 89 assert(number == number); 90 90 91 if (std::numeric_limits<vmg_float>::has_signaling_NaN) { 92 valid &= number != std::numeric_limits<vmg_float>::signaling_NaN(); 93 assert(number != std::numeric_limits<vmg_float>::signaling_NaN()); 94 } 95 96 if (std::numeric_limits<vmg_float>::has_infinity) { 97 valid &= number != std::numeric_limits<vmg_float>::infinity(); 98 valid &= number != -1 * std::numeric_limits<vmg_float>::infinity(); 99 assert(number != std::numeric_limits<vmg_float>::infinity()); 100 assert(number != -1 * std::numeric_limits<vmg_float>::infinity()); 91 // Check for infinity 92 if (!std::numeric_limits<T>::is_integer && std::numeric_limits<T>::has_denorm == std::denorm_present) { 93 valid &= number >= -1 * std::numeric_limits<T>::max(); 94 valid &= number <= std::numeric_limits<T>::max(); 95 assert(number >= -1 * std::numeric_limits<T>::max()); 96 assert(number <= std::numeric_limits<T>::max()); 97 }else { 98 valid &= number >= std::numeric_limits<T>::min(); 99 valid &= number <= std::numeric_limits<T>::max(); 100 assert(number >= std::numeric_limits<T>::min()); 101 assert(number <= std::numeric_limits<T>::max()); 101 102 } 102 103 … … 179 180 } 180 181 182 bool AssertVectorsEqual(const Vector& pos_1, const Vector& pos_2); 183 181 184 vmg_float InterpolateTrilinear(const Vector& point, const Grid& grid); 182 185
Note:
See TracChangeset
for help on using the changeset viewer.
