OpenLB 1.7
Loading...
Searching...
No Matches
Public Member Functions | List of all members
olb::utilities::Fraction Class Reference

Floating-point independent fraction type. More...

#include <fraction.h>

+ Collaboration diagram for olb::utilities::Fraction:

Public Member Functions

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
 

Detailed Description

Floating-point independent fraction type.

Definition at line 34 of file fraction.h.

Constructor & Destructor Documentation

◆ 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

Definition at line 48 of file fraction.h.

48 :
49 Fraction(parts[0], parts[1]) { }

◆ Fraction() [3/4]

constexpr olb::utilities::Fraction::Fraction ( int num)
inlineconstexpr

Definition at line 51 of file fraction.h.

51 :
52 Fraction(num, 1) { }

◆ Fraction() [4/4]

constexpr olb::utilities::Fraction::Fraction ( )
inlineconstexpr

Definition at line 54 of file fraction.h.

54 :
55 Fraction(0) { }

Member Function Documentation

◆ 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: