, m_lo (m_hasNaN ? TCU_INFINITY : val)
, m_hi (m_hasNaN ? -TCU_INFINITY : val) {}
+ Interval (bool hasNaN_, double lo_, double hi_)
+ : m_hasNaN(hasNaN_), m_lo(lo_), m_hi(hi_) {}
+
Interval (const Interval& a, const Interval& b)
: m_hasNaN (a.m_hasNaN || b.m_hasNaN)
, m_lo (de::min(a.lo(), b.lo()))
}
private:
- Interval (bool hasNaN_, double lo_, double hi_)
- : m_hasNaN(hasNaN_), m_lo(lo_), m_hi(hi_) {}
bool m_hasNaN;
double m_lo;
double m_hi;
::tcu::Interval VAR##_hi_; \
\
{ \
- ::tcu::Interval& VAR = VAR##_lo_; \
+ ::tcu::Interval& (VAR) = VAR##_lo_; \
::deSetRoundingMode(DE_ROUNDINGMODE_TO_NEGATIVE_INF); \
SETLOW; \
} \
{ \
- ::tcu::Interval& VAR = VAR##_hi_; \
+ ::tcu::Interval& (VAR) = VAR##_hi_; \
::deSetRoundingMode(DE_ROUNDINGMODE_TO_POSITIVE_INF); \
SETHIGH; \
} \
else \
{ \
{ \
- const double PARAM = VAR##_arg_.lo(); \
- ::tcu::Interval& VAR = VAR##_lo_; \
+ const double (PARAM) = VAR##_arg_.lo(); \
+ ::tcu::Interval& (VAR) = VAR##_lo_; \
BODY; \
} \
{ \
- const double PARAM = VAR##_arg_.hi(); \
- ::tcu::Interval& VAR = VAR##_hi_; \
+ const double (PARAM) = VAR##_arg_.hi(); \
+ ::tcu::Interval& (VAR) = VAR##_hi_; \
BODY; \
} \
VAR##_dst_ = VAR##_lo_ | VAR##_hi_; \