Lines Matching refs:_R1

289 template <class _R1, class _R2>
293 static const intmax_t __gcd_n1_d2 = __static_gcd<_R1::num, _R2::den>::value;
294 static const intmax_t __gcd_d1_n2 = __static_gcd<_R1::den, _R2::num>::value;
298 __ll_mul<_R1::num / __gcd_n1_d2, _R2::num / __gcd_d1_n2>::value,
299 __ll_mul<_R2::den / __gcd_n1_d2, _R1::den / __gcd_d1_n2>::value
305 template <class _R1, class _R2> using ratio_multiply
306 = typename __ratio_multiply<_R1, _R2>::type;
310 template <class _R1, class _R2>
312 : public __ratio_multiply<_R1, _R2>::type {};
316 template <class _R1, class _R2>
320 static const intmax_t __gcd_n1_n2 = __static_gcd<_R1::num, _R2::num>::value;
321 static const intmax_t __gcd_d1_d2 = __static_gcd<_R1::den, _R2::den>::value;
325 __ll_mul<_R1::num / __gcd_n1_n2, _R2::den / __gcd_d1_d2>::value,
326 __ll_mul<_R2::num / __gcd_n1_n2, _R1::den / __gcd_d1_d2>::value
332 template <class _R1, class _R2> using ratio_divide
333 = typename __ratio_divide<_R1, _R2>::type;
337 template <class _R1, class _R2>
339 : public __ratio_divide<_R1, _R2>::type {};
343 template <class _R1, class _R2>
347 static const intmax_t __gcd_n1_n2 = __static_gcd<_R1::num, _R2::num>::value;
348 static const intmax_t __gcd_d1_d2 = __static_gcd<_R1::den, _R2::den>::value;
352 ratio<__gcd_n1_n2, _R1::den / __gcd_d1_d2>,
357 __ll_mul<_R1::num / __gcd_n1_n2, _R2::den / __gcd_d1_d2>::value,
358 __ll_mul<_R2::num / __gcd_n1_n2, _R1::den / __gcd_d1_d2>::value
367 template <class _R1, class _R2> using ratio_add
368 = typename __ratio_add<_R1, _R2>::type;
372 template <class _R1, class _R2>
374 : public __ratio_add<_R1, _R2>::type {};
378 template <class _R1, class _R2>
382 static const intmax_t __gcd_n1_n2 = __static_gcd<_R1::num, _R2::num>::value;
383 static const intmax_t __gcd_d1_d2 = __static_gcd<_R1::den, _R2::den>::value;
387 ratio<__gcd_n1_n2, _R1::den / __gcd_d1_d2>,
392 __ll_mul<_R1::num / __gcd_n1_n2, _R2::den / __gcd_d1_d2>::value,
393 __ll_mul<_R2::num / __gcd_n1_n2, _R1::den / __gcd_d1_d2>::value
402 template <class _R1, class _R2> using ratio_subtract
403 = typename __ratio_subtract<_R1, _R2>::type;
407 template <class _R1, class _R2>
409 : public __ratio_subtract<_R1, _R2>::type {};
415 template <class _R1, class _R2>
417 : public _LIBCPP_BOOL_CONSTANT((_R1::num == _R2::num && _R1::den == _R2::den)) {};
419 template <class _R1, class _R2>
421 : public _LIBCPP_BOOL_CONSTANT((!ratio_equal<_R1, _R2>::value)) {};
425 template <class _R1, class _R2, bool _Odd = false,
426 intmax_t _Q1 = _R1::num / _R1::den, intmax_t _M1 = _R1::num % _R1::den,
433 template <class _R1, class _R2, bool _Odd, intmax_t _Qp>
434 struct __ratio_less1<_R1, _R2, _Odd, _Qp, 0, _Qp, 0>
439 template <class _R1, class _R2, bool _Odd, intmax_t _Qp, intmax_t _M2>
440 struct __ratio_less1<_R1, _R2, _Odd, _Qp, 0, _Qp, _M2>
445 template <class _R1, class _R2, bool _Odd, intmax_t _Qp, intmax_t _M1>
446 struct __ratio_less1<_R1, _R2, _Odd, _Qp, _M1, _Qp, 0>
451 template <class _R1, class _R2, bool _Odd, intmax_t _Qp, intmax_t _M1,
453 struct __ratio_less1<_R1, _R2, _Odd, _Qp, _M1, _Qp, _M2>
455 static const bool value = __ratio_less1<ratio<_R1::den, _M1>,
459 template <class _R1, class _R2, intmax_t _S1 = __static_sign<_R1::num>::value,
466 template <class _R1, class _R2>
467 struct __ratio_less<_R1, _R2, 1LL, 1LL>
469 static const bool value = __ratio_less1<_R1, _R2>::value;
472 template <class _R1, class _R2>
473 struct __ratio_less<_R1, _R2, -1LL, -1LL>
475 …static const bool value = __ratio_less1<ratio<-_R2::num, _R2::den>, ratio<-_R1::num, _R1::den> >::…
478 template <class _R1, class _R2>
480 : public _LIBCPP_BOOL_CONSTANT((__ratio_less<_R1, _R2>::value)) {};
482 template <class _R1, class _R2>
484 : public _LIBCPP_BOOL_CONSTANT((!ratio_less<_R2, _R1>::value)) {};
486 template <class _R1, class _R2>
488 : public _LIBCPP_BOOL_CONSTANT((ratio_less<_R2, _R1>::value)) {};
490 template <class _R1, class _R2>
492 : public _LIBCPP_BOOL_CONSTANT((!ratio_less<_R1, _R2>::value)) {};
494 template <class _R1, class _R2>
497 typedef ratio<__static_gcd<_R1::num, _R2::num>::value,
498 __static_lcm<_R1::den, _R2::den>::value> type;
502 template <class _R1, class _R2> _LIBCPP_CONSTEXPR bool ratio_equal_v
503 = ratio_equal<_R1, _R2>::value;
505 template <class _R1, class _R2> _LIBCPP_CONSTEXPR bool ratio_not_equal_v
506 = ratio_not_equal<_R1, _R2>::value;
508 template <class _R1, class _R2> _LIBCPP_CONSTEXPR bool ratio_less_v
509 = ratio_less<_R1, _R2>::value;
511 template <class _R1, class _R2> _LIBCPP_CONSTEXPR bool ratio_less_equal_v
512 = ratio_less_equal<_R1, _R2>::value;
514 template <class _R1, class _R2> _LIBCPP_CONSTEXPR bool ratio_greater_v
515 = ratio_greater<_R1, _R2>::value;
517 template <class _R1, class _R2> _LIBCPP_CONSTEXPR bool ratio_greater_equal_v
518 = ratio_greater_equal<_R1, _R2>::value;