Home | History | Annotate | Download | only in numerics

Lines Matching refs:DstLimits

49   typedef numeric_limits<Dst> DstLimits;
52 static_assert(DstLimits::is_specialized, "Destination must be numeric.");
53 CHECK(DstLimits::is_iec559);
55 if (SrcLimits::digits <= DstLimits::digits &&
85 typedef numeric_limits<Dst> DstLimits;
87 -CheckedNumeric<Dst>(DstLimits::min()));
89 CheckedNumeric<Dst>(DstLimits::min()).Abs());
93 CheckedNumeric<Dst>(DstLimits::max()) + -1);
95 CheckedNumeric<Dst>(DstLimits::min()) + -1);
98 CheckedNumeric<Dst>(-DstLimits::max()) + -DstLimits::max());
101 CheckedNumeric<Dst>(DstLimits::min()) - 1);
103 CheckedNumeric<Dst>(DstLimits::min()) - -1);
106 CheckedNumeric<Dst>(DstLimits::max()) - -DstLimits::max());
109 CheckedNumeric<Dst>(-DstLimits::max()) - DstLimits::max());
112 CheckedNumeric<Dst>(DstLimits::min()) * 2);
115 CheckedNumeric<Dst>(DstLimits::min()) / -1);
123 TEST_EXPECTED_VALUE(0, CheckedNumeric<Dst>(DstLimits::min()) % 2);
124 TEST_EXPECTED_VALUE(1, CheckedNumeric<Dst>(DstLimits::max()) % 2);
141 typedef numeric_limits<Dst> DstLimits;
142 TEST_EXPECTED_VALIDITY(RANGE_VALID, -CheckedNumeric<Dst>(DstLimits::min()));
144 CheckedNumeric<Dst>(DstLimits::min()).Abs());
146 CheckedNumeric<Dst>(DstLimits::min()) + -1);
148 CheckedNumeric<Dst>(DstLimits::min()) - 1);
149 TEST_EXPECTED_VALUE(0, CheckedNumeric<Dst>(DstLimits::min()) * 2);
152 CheckedNumeric<Dst>(DstLimits::min()).UnsignedAbs());
163 TEST_EXPECTED_VALUE(0, CheckedNumeric<Dst>(DstLimits::min()) % 2);
164 TEST_EXPECTED_VALUE(1, CheckedNumeric<Dst>(DstLimits::max()) % 2);
179 typedef numeric_limits<Dst> DstLimits;
180 TEST_EXPECTED_VALIDITY(RANGE_VALID, -CheckedNumeric<Dst>(DstLimits::min()));
183 CheckedNumeric<Dst>(DstLimits::min()).Abs());
187 CheckedNumeric<Dst>(DstLimits::min()) + -1);
189 CheckedNumeric<Dst>(DstLimits::max()) + 1);
192 CheckedNumeric<Dst>(-DstLimits::max()) + -DstLimits::max());
196 CheckedNumeric<Dst>(DstLimits::max()) - -DstLimits::max());
199 CheckedNumeric<Dst>(-DstLimits::max()) - DstLimits::max());
202 CheckedNumeric<Dst>(DstLimits::min()) * 2);
211 typedef numeric_limits<Dst> DstLimits;
215 CheckedNumeric<Dst>(CheckedNumeric<Dst>(DstLimits::max()) *
216 DstLimits::max()).IsValid());
220 CheckedNumeric<Dst>(CheckedNumeric<Dst>(DstLimits::max()) *
221 DstLimits::max()).ValueOrDefault(1));
249 TEST_EXPECTED_VALUE(static_cast<Dst>(DstLimits::max() * -1),
250 -CheckedNumeric<Dst>(DstLimits::max()));
255 TEST_EXPECTED_VALUE(DstLimits::max(),
256 CheckedNumeric<Dst>(DstLimits::max()).Abs());
263 CheckedNumeric<Dst>(DstLimits::min()) + 1);
265 RANGE_OVERFLOW, CheckedNumeric<Dst>(DstLimits::max()) + DstLimits::max());
272 CheckedNumeric<Dst>(DstLimits::max()) - 1);
282 RANGE_OVERFLOW, CheckedNumeric<Dst>(DstLimits::max()) * DstLimits::max());
287 TEST_EXPECTED_VALUE(DstLimits::min() / 2,
288 CheckedNumeric<Dst>(DstLimits::min()) / 2);
289 TEST_EXPECTED_VALUE(DstLimits::max() / 2,
290 CheckedNumeric<Dst>(DstLimits::max()) / 2);
340 typedef numeric_limits<Dst> DstLimits;
342 static_assert((DstLimits::is_iec559 && SrcLimits::is_integer) ||
344 (!(DstLimits::is_integer && SrcLimits::is_iec559) &&
346 ((SrcLimits::is_signed == DstLimits::is_signed &&
349 (DstLimits::is_signed && sizeof(Dst) > sizeof(Src)))),
385 typedef numeric_limits<Dst> DstLimits;
386 static_assert(SrcLimits::is_signed == DstLimits::is_signed,
389 (DstLimits::is_integer && SrcLimits::is_iec559),
405 if (DstLimits::is_integer) {
406 if (SrcLimits::digits < DstLimits::digits) {
408 static_cast<Src>(DstLimits::max()));
410 TEST_EXPECTED_RANGE(RANGE_VALID, static_cast<Src>(DstLimits::max()));
415 TEST_EXPECTED_RANGE(RANGE_VALID, static_cast<Src>(DstLimits::min()));
432 typedef numeric_limits<Dst> DstLimits;
436 static_assert(!DstLimits::is_signed, "Destination must be unsigned");
454 typedef numeric_limits<Dst> DstLimits;
455 static_assert((DstLimits::is_integer && SrcLimits::is_iec559) ||
459 static_assert(!DstLimits::is_signed, "Destination must be unsigned.");
475 if (DstLimits::is_integer) {
476 if (SrcLimits::digits < DstLimits::digits) {
478 static_cast<Src>(DstLimits::max()));
480 TEST_EXPECTED_RANGE(RANGE_VALID, static_cast<Src>(DstLimits::max()));
485 TEST_EXPECTED_RANGE(RANGE_VALID, static_cast<Src>(DstLimits::min()));
497 typedef numeric_limits<Dst> DstLimits;
501 static_assert(DstLimits::is_signed, "Destination must be signed.");