Iros
 
Loading...
Searching...
No Matches
ratio.h File Reference

Go to the source code of this file.

Classes

struct  di::math::Ratio< numerator, denominator >
 
struct  di::Ratio< numerator, denominator >
 

Namespaces

namespace  di
 
namespace  di::math
 
namespace  di::math::detail
 

Concepts

concept  di::math::detail::IsRatio
 

Typedefs

using di::math::ratio_intmax_t = i64
 
template<Rational< ratio_intmax_t > rational>
using di::math::RatioFromRational = Ratio<rational.numerator(), rational.denominator()>
 
template<detail::IsRatio A, detail::IsRatio B>
using di::math::RatioAdd = RatioFromRational<A::rational + B::rational>
 
template<detail::IsRatio A, detail::IsRatio B>
using di::math::RatioSubtract = RatioFromRational<A::rational - B::rational>
 
template<detail::IsRatio A, detail::IsRatio B>
using di::math::RatioMultiply = RatioFromRational<A::rational * B::rational>
 
template<detail::IsRatio A, detail::IsRatio B>
using di::math::RatioDivide = RatioFromRational<A::rational / B::rational>
 
template<detail::IsRatio A, detail::IsRatio B>
using di::math::RatioEqual = Constexpr<A::rational == B::rational>
 
template<detail::IsRatio A, detail::IsRatio B>
using di::math::RatioNotEqual = Constexpr<A::rational != B::rational>
 
template<detail::IsRatio A, detail::IsRatio B>
using di::math::RatioLess = Constexpr<(A::rational < B::rational)>
 
template<detail::IsRatio A, detail::IsRatio B>
using di::math::RatioLessEqual = Constexpr<(A::rational <= B::rational)>
 
template<detail::IsRatio A, detail::IsRatio B>
using di::math::RatioGreater = Constexpr<(A::rational > B::rational)>
 
template<detail::IsRatio A, detail::IsRatio B>
using di::math::RatioGreaterEqual = Constexpr<(A::rational >= B::rational)>
 
using di::math::Atto = Ratio<1, 1000000000000000000>
 
using di::math::Femto = Ratio<1, 1000000000000000>
 
using di::math::Pico = Ratio<1, 1000000000000>
 
using di::math::Nano = Ratio<1, 1000000000>
 
using di::math::Micro = Ratio<1, 1000000>
 
using di::math::Milli = Ratio<1, 1000>
 
using di::math::Centi = Ratio<1, 100>
 
using di::math::Deci = Ratio<1, 10>
 
using di::math::Deca = Ratio<10>
 
using di::math::Hecto = Ratio<100>
 
using di::math::Kilo = Ratio<1000>
 
using di::math::Mega = Ratio<1000000>
 
using di::math::Giga = Ratio<1000000000>
 
using di::math::Tera = Ratio<1000000000000>
 
using di::math::Peta = Ratio<1000000000000000>
 
using di::math::Exa = Ratio<1000000000000000000>
 
template<detail::IsRatio A, detail::IsRatio B>
using di::RatioAdd
 
template<detail::IsRatio A, detail::IsRatio B>
using di::RatioDivide
 
template<detail::IsRatio A, detail::IsRatio B>
using di::RatioMultiply
 
template<detail::IsRatio A, detail::IsRatio B>
using di::RatioSubtract
 
template<detail::IsRatio A, detail::IsRatio B>
using di::RatioEqual
 
template<detail::IsRatio A, detail::IsRatio B>
using di::RatioGreater
 
template<detail::IsRatio A, detail::IsRatio B>
using di::RatioGreaterEqual
 
template<detail::IsRatio A, detail::IsRatio B>
using di::RatioLess
 
template<detail::IsRatio A, detail::IsRatio B>
using di::RatioLessEqual
 
template<detail::IsRatio A, detail::IsRatio B>
using di::RatioNotEqual
 

Variables

template<typename T>
constexpr bool di::math::detail::is_ratio = false
 
template<ratio_intmax_t x, ratio_intmax_t y>
constexpr bool di::math::detail::is_ratio< Ratio< x, y > > = true