Home | History | Annotate | Download | only in common

Lines Matching full:interval

23  * \brief Interval arithmetic and floating point precisions.
57 class Interval
60 // Empty interval.
61 Interval (void)
66 // Intentionally not explicit. Conversion from double to Interval is common
68 Interval (double val)
73 Interval (bool hasNaN_, double lo_, double hi_)
76 Interval (const Interval& a, const Interval& b)
85 Interval nan (void) const { return m_hasNaN ? TCU_NAN : Interval(); }
91 Interval operator| (const Interval& other) const
93 return Interval(m_hasNaN || other.m_hasNaN,
99 Interval& operator|= (const Interval& other)
104 Interval operator& (const Interval& other) const
106 return Interval(m_hasNaN && other.m_hasNaN,
111 Interval& operator&= (const Interval& other)
116 bool contains (const Interval& other) const
122 bool intersects (const Interval& other) const
128 Interval operator- (void) const
130 return Interval(hasNaN(), -hi(), -lo());
133 static Interval unbounded (bool nan = false)
135 return Interval(nan, -TCU_INFINITY, TCU_INFINITY);
143 bool operator== (const Interval& other) const
156 inline Interval operator+ (const Interval& x) { return x; }
157 Interval exp2 (const Interval& x);
158 Interval exp (const Interval& x);
159 int sign (const Interval& x);
160 Interval abs (const Interval& x);
161 Interval inverseSqrt (const Interval& x);
163 Interval operator+ (const Interval& x, const Interval& y);
164 Interval operator- (const Interval& x, const Interval& y);
165 Interval operator* (const Interval& x, const Interval& y);
166 Interval operator/ (const Interval& nom, const Interval& den);
168 inline Interval& operator+= (Interval& x, const Interval& y) { return (x = x + y); }
169 inline Interval& operator-= (Interval& x, const Interval& y) { return (x = x - y); }
170 inline Interval& operator*= (Interval& x, const Interval& y) { return (x = x * y); }
171 inline Interval& operator/= (Interval& x, const Interval& y) { return (x = x / y); }
173 std::ostream& operator<< (std::ostream& os, const Interval& interval);
178 ::tcu::Interval& VAR##_dst_ = (DST); \
179 ::tcu::Interval VAR##_lo_; \
180 ::tcu::Interval VAR##_hi_; \
183 ::tcu::Interval& (VAR) = VAR##_lo_; \
188 ::tcu::Interval& (VAR) = VAR##_hi_; \
199 //! Set the interval DST to the image of BODY on ARG, assuming that BODY on
206 const ::tcu::Interval& VAR##_arg_ = (ARG); \
207 ::tcu::Interval& VAR##_dst_ = (DST); \
208 ::tcu::Interval VAR##_lo_; \
209 ::tcu::Interval VAR##_hi_; \
211 VAR##_dst_ = Interval(); \
216 ::tcu::Interval& (VAR) = VAR##_lo_; \
221 ::tcu::Interval& (VAR) = VAR##_hi_; \
243 typedef Interval DoubleIntervalFunc1 (double);
244 typedef Interval DoubleIntervalFunc2 (double, double);
245 typedef Interval DoubleIntervalFunc3 (double, double, double);
247 Interval applyMonotone (DoubleFunc1& func,
248 const Interval& arg0);
249 Interval applyMonotone (DoubleFunc2& func,
250 const Interval& arg0,
251 const Interval& arg1);
252 Interval applyMonotone (DoubleIntervalFunc1& func,
253 const Interval& arg0);
254 Interval applyMonotone (DoubleIntervalFunc2& func,
255 const Interval& arg0,
256 const Interval& arg1);