Lines Matching refs:Interval
23 * \brief Interval arithmetic and floating point precisions.
58 class Interval
62 Interval (void)
69 // Intentionally not explicit. Conversion from double to Interval is common
71 Interval (double val)
79 Interval(bool hasNaN_, double lo_, double hi_)
82 Interval(bool hasNaN_, double lo_, double hi_, double wlo_, double whi_)
85 Interval (const Interval& a, const Interval& b)
98 Interval nan (void) const { return m_hasNaN ? TCU_NAN : Interval(); }
112 Interval operator| (const Interval& other) const
114 return Interval(m_hasNaN || other.m_hasNaN,
121 Interval& operator|= (const Interval& other)
126 Interval operator& (const Interval& other) const
128 return Interval(m_hasNaN && other.m_hasNaN,
135 Interval& operator&= (const Interval& other)
140 bool contains (const Interval& other) const
146 bool containsWarning(const Interval& other) const
152 bool intersects (const Interval& other) const
158 Interval operator- (void) const
160 return Interval(hasNaN(), -hi(), -lo(), -warningHi(), -warningLo());
163 static Interval unbounded (bool nan = false)
165 return Interval(nan, -TCU_INFINITY, TCU_INFINITY);
198 bool operator== (const Interval& other) const
213 inline Interval operator+ (const Interval& x) { return x; }
214 Interval exp2 (const Interval& x);
215 Interval exp (const Interval& x);
216 int sign (const Interval& x);
217 Interval abs (const Interval& x);
218 Interval inverseSqrt (const Interval& x);
220 Interval operator+ (const Interval& x, const Interval& y);
221 Interval operator- (const Interval& x, const Interval& y);
222 Interval operator* (const Interval& x, const Interval& y);
223 Interval operator/ (const Interval& nom, const Interval& den);
225 inline Interval& operator+= (Interval& x, const Interval& y) { return (x = x + y); }
226 inline Interval& operator-= (Interval& x, const Interval& y) { return (x = x - y); }
227 inline Interval& operator*= (Interval& x, const Interval& y) { return (x = x * y); }
228 inline Interval& operator/= (Interval& x, const Interval& y) { return (x = x / y); }
230 std::ostream& operator<< (std::ostream& os, const Interval& interval);
236 ::tcu::Interval& VAR##_dst_ = (DST); \
237 ::tcu::Interval VAR##_lo_; \
238 ::tcu::Interval VAR##_hi_; \
241 ::tcu::Interval& VAR = VAR##_lo_; \
246 ::tcu::Interval& VAR = VAR##_hi_; \
264 const ::tcu::Interval& VAR##_arg_ = (ARG); \
265 ::tcu::Interval& VAR##_dst_ = (DST); \
266 ::tcu::Interval VAR##_lo_; \
267 ::tcu::Interval VAR##_hi_; \
269 VAR##_dst_ = Interval(); \
274 ::tcu::Interval& VAR = VAR##_lo_; \
279 ::tcu::Interval& VAR = VAR##_hi_; \
301 typedef Interval DoubleIntervalFunc1 (double);
302 typedef Interval DoubleIntervalFunc2 (double, double);
303 typedef Interval DoubleIntervalFunc3 (double, double, double);
305 Interval applyMonotone (DoubleFunc1& func,
306 const Interval& arg0);
307 Interval applyMonotone (DoubleFunc2& func,
308 const Interval& arg0,
309 const Interval& arg1);
310 Interval applyMonotone (DoubleIntervalFunc1& func,
311 const Interval& arg0);
312 Interval applyMonotone (DoubleIntervalFunc2& func,
313 const Interval& arg0,
314 const Interval& arg1);