Lines Matching refs:VAR
232 #define TCU_SET_INTERVAL_BOUNDS(DST, VAR, SETLOW, SETHIGH) do \
235 ::tcu::ScopedRoundingMode VAR##_ctx_; \
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_; \
251 VAR##_dst_ = VAR##_lo_ | VAR##_hi_; \
254 #define TCU_SET_INTERVAL(DST, VAR, BODY) \
255 TCU_SET_INTERVAL_BOUNDS(DST, VAR, BODY, BODY)
261 //! the output of BODY should be stored in VAR.
262 #define TCU_INTERVAL_APPLY_MONOTONE1(DST, PARAM, ARG, VAR, BODY) do \
264 const ::tcu::Interval& VAR##_arg_ = (ARG); \
265 ::tcu::Interval& VAR##_dst_ = (DST); \
266 ::tcu::Interval VAR##_lo_; \
267 ::tcu::Interval VAR##_hi_; \
268 if (VAR##_arg_.empty()) \
269 VAR##_dst_ = Interval(); \
273 const double PARAM = VAR##_arg_.lo(); \
274 ::tcu::Interval& VAR = VAR##_lo_; \
278 const double PARAM = VAR##_arg_.hi(); \
279 ::tcu::Interval& VAR = VAR##_hi_; \
282 VAR##_dst_ = VAR##_lo_ | VAR##_hi_; \
284 if (VAR##_arg_.hasNaN()) \
285 VAR##_dst_ |= TCU_NAN; \
288 #define TCU_INTERVAL_APPLY_MONOTONE2(DST, P0, A0, P1, A1, VAR, BODY) \
291 TCU_INTERVAL_APPLY_MONOTONE1(tmp2_, P1, A1, VAR, BODY))
293 #define TCU_INTERVAL_APPLY_MONOTONE3(DST, P0, A0, P1, A1, P2, A2, VAR, BODY) \
296 TCU_INTERVAL_APPLY_MONOTONE2(tmp3_, P1, A1, P2, A2, VAR, BODY))