Ratio
#include <xo/ratio/ratio.hpp>
A ratio represents an exact fraction of two integers.
-
template<typename Int>
class ratio represent a ratio of two Int values.
Instance Variables
- group Ratio-instance-variables
Types
- group Ratio-types
Typedefs
-
using component_type = Int
representation for (numerator, denominator)
-
using component_type = Int
Constructors
- group Ratio-ctor
Static Methods
- group Ratio-static-methods
Functions
-
static inline ratio add(const ratio &x, const ratio &y)
add ratios
xandy- Post:
result ratio is normalized
-
static inline ratio subtract(const ratio &x, const ratio &y)
subtract ratio
yfrom ratiox- Post:
result ratio is normalized
-
static inline ratio multiply(const ratio &x, const ratio &y)
multiply ratios
xandy- Post:
result ratio is normalized
-
static inline ratio add(const ratio &x, const ratio &y)
Access Methods
- group Ratio-access
Functions
-
inline Int num() const noexcept
fetch ratio’s numerator
-
inline Int den() const noexcept
fetch ratio’s denominator
-
inline bool is_zero() const noexcept
true if and only if ratio is equal to zero
-
inline bool is_unity() const noexcept
true if and only if ratio is equal to one
-
inline bool is_integer() const noexcept
true if and only if ratio represents an integer
(denominator is +/- 1)
-
inline Int num() const noexcept
General Methods
- group Ratio-methods
Functions
-
inline Int floor() const
r.floor() is the largest integer x : x <= r
-
inline Int ceil() const
r.ceil() is the smallest integer x : r < x.
-
inline ratio maybe_reduce() const
reduce to lowest terms, if Int representation admits
Otherwise fallback to identity function
-
inline ratio frac() const
return fractional part of this ratio
- Pre:
Inttype must be totally ordered
-
inline Int floor() const
Conversion
- group Ratio-conversion
Functions
-
template<typename Repr>
inline Repr convert_to() const noexcept convert to non-ratio representation
For example: to int or double
-
template<typename Repr>