Floating-point independent fraction type.
More...
#include <fraction.h>
|
constexpr | Fraction (int num, int denum) |
|
constexpr | Fraction (int parts[2]) |
|
constexpr | Fraction (int num) |
|
constexpr | Fraction () |
|
template<typename T > |
constexpr T | as () const |
|
template<typename T > |
constexpr T | inverseAs () const |
|
Floating-point independent fraction type.
Definition at line 34 of file fraction.h.
◆ Fraction() [1/4]
constexpr olb::utilities::Fraction::Fraction |
( |
int | num, |
|
|
int | denum ) |
|
inlineconstexpr |
Definition at line 40 of file fraction.h.
40 :
41 _numerator(num), _denominator(denum)
42 {
43 if (_denominator == 0) {
44 throw std::invalid_argument("denominator must not be zero");
45 }
46 }
◆ Fraction() [2/4]
constexpr olb::utilities::Fraction::Fraction |
( |
int | parts[2] | ) |
|
|
inlineconstexpr |
◆ Fraction() [3/4]
constexpr olb::utilities::Fraction::Fraction |
( |
int | num | ) |
|
|
inlineconstexpr |
◆ Fraction() [4/4]
constexpr olb::utilities::Fraction::Fraction |
( |
| ) |
|
|
inlineconstexpr |
◆ as()
template<typename T >
constexpr T olb::utilities::Fraction::as |
( |
| ) |
const |
|
inlineconstexpr |
Definition at line 58 of file fraction.h.
59 {
60 return T(_numerator) / T(_denominator);
61 }
◆ inverseAs()
template<typename T >
constexpr T olb::utilities::Fraction::inverseAs |
( |
| ) |
const |
|
inlineconstexpr |
Definition at line 64 of file fraction.h.
65 {
66 return _numerator != 0 ? T(_denominator) / T(_numerator) : throw std::invalid_argument("inverse of zero is undefined");
67 }
The documentation for this class was generated from the following file: