#pragma once #include "ThirdPartyHeadersBegin.h" #include #include #include "ThirdPartyHeadersEnd.h" #include "CodeContract.h" #include "MinMax.h" namespace tecplot { namespace ___3933 { template struct ___225 { boost::atomic m_min; boost::atomic m_max; ___225(void) { invalidate(); } ___225(double newMin, double newMax) { m_min = static_cast(newMin); m_max = static_cast(newMax); } ___225(double ___4298) { m_min = static_cast(___4298); m_max = static_cast(___4298); } ___225(___225 const &___2888) : m_min(___2888.m_min.load()), m_max(___2888.m_max.load()) {} inline double minValue(void) const { return m_min; }; inline double maxValue(void) const { return m_max; }; inline void ___3499(double newMin, double newMax) { REQUIRE(newMin <= newMax); m_min = static_cast(newMin); m_max = static_cast(newMax); }; inline void ___3499(___225 const &___2888) { m_min = ___2888.m_min.load(); m_max = ___2888.m_max.load(); }; inline void include(double ___4298) { T const tVal = static_cast(___4298); T curMin = m_min; while (tVal < curMin && !m_min.compare_exchange_weak(curMin, tVal)) ; T curMax = m_max; while (tVal > curMax && !m_max.compare_exchange_weak(curMax, tVal)) ; } inline void include(___225 const &minMax) { T testMin = minMax.m_min; T curMin = m_min; while (testMin < curMin && !m_min.compare_exchange_weak(curMin, testMin)) ; T testMax = minMax.m_max; T curMax = m_max; while (testMax > curMax && !m_max.compare_exchange_weak(curMax, testMax)) ; } inline void include(___2479 const &minMax) { T testMin = static_cast(minMax.minValue()); T curMin = m_min; while (testMin < curMin && !m_min.compare_exchange_weak(curMin, testMin)) ; T testMax = static_cast(minMax.maxValue()); T curMax = m_max; while (testMax > curMax && !m_max.compare_exchange_weak(curMax, testMax)) ; } inline bool containsValue(double ___4298) const { return (m_min <= ___4298 && ___4298 <= m_max); } inline void invalidate(void) { m_min = std::numeric_limits::max(); m_max = -std::numeric_limits::max(); } inline bool ___2067(void) const { return m_min.load() <= m_max.load(); } ___225 &operator=(___225 const &___3392) { m_min = ___3392.m_min.load(); m_max = ___3392.m_max.load(); return *this; } }; } }