3#ifndef TETL_RATIO_RATIO_HPP
4#define TETL_RATIO_RATIO_HPP
20template <
intmax_t Num,
intmax_t Denom = 1>
22 static constexpr intmax_t num = detail::sign(Num) * detail::sign(Denom) *
abs(Num) /
gcd(Num, Denom);
43using exa =
ratio<1'000'000'000'000'000'000, 1>;
constexpr auto abs(complex< T > const &z) -> T
Definition abs.hpp:13
constexpr auto gcd(M m, N n) noexcept -> etl::common_type_t< M, N >
Computes the greatest common divisor of the integers m and n.
Definition gcd.hpp:16
Definition adjacent_find.hpp:8
ratio< 1, 100 > centi
Definition ratio.hpp:34
ratio< 1 '000, 1 > kilo
Definition ratio.hpp:38
ratio< 1, 1 '000 '000 '000 > nano
Definition ratio.hpp:31
ratio< 1, 1 '000 '000 '000 '000 > pico
Definition ratio.hpp:30
ratio< 1, 10 > deci
Definition ratio.hpp:35
ratio< 1, 1 '000 '000 '000 '000 '000 > femto
Definition ratio.hpp:29
TETL_BUILTIN_INTMAX intmax_t
Maximum-width signed integer type.
Definition intmax_t.hpp:11
ratio< 1 '000 '000, 1 > mega
Definition ratio.hpp:39
ratio< 1 '000 '000 '000 '000 '000, 1 > peta
Definition ratio.hpp:42
ratio< 1 '000 '000 '000, 1 > giga
Definition ratio.hpp:40
ratio< 1 '000 '000 '000 '000 '000 '000, 1 > exa
Definition ratio.hpp:43
ratio< 1, 1 '000 > milli
Definition ratio.hpp:33
ratio< 1 '000 '000 '000 '000, 1 > tera
Definition ratio.hpp:41
ratio< 1, 1 '000 '000 '000 '000 '000 '000 > atto
Definition ratio.hpp:28
ratio< 10, 1 > deca
Definition ratio.hpp:36
ratio< 100, 1 > hecto
Definition ratio.hpp:37
ratio< 1, 1 '000 '000 > micro
Definition ratio.hpp:32
The typename template provides compile-time rational arithmetic support. Each instantiation of this t...
Definition ratio.hpp:21
static constexpr intmax_t den
Definition ratio.hpp:23
static constexpr intmax_t num
Definition ratio.hpp:22
ratio< num, den > type
Definition ratio.hpp:25