dune-common  2.5.0
Modules | Classes | Functions
Numbers

Class implementing different number representations and helper functions. More...

Collaboration diagram for Numbers:

Modules

 FloatCmp
 

Classes

class  Dune::bigunsignedint< k >
 Portable very large unsigned integers. More...
 
class  Dune::GMPField< precision >
 Number class for high precision floating point number using the GMP library mpf_class implementation. More...
 

Functions

template<int k>
std::ostream & Dune::operator<< (std::ostream &s, const bigunsignedint< k > &x)
 
template<int k>
bigunsignedint< k > Dune::operator+ (const bigunsignedint< k > &x, std::uintmax_t y)
 
template<int k>
bigunsignedint< k > Dune::operator- (const bigunsignedint< k > &x, std::uintmax_t y)
 
template<int k>
bigunsignedint< k > Dune::operator* (const bigunsignedint< k > &x, std::uintmax_t y)
 
template<int k>
bigunsignedint< k > Dune::operator/ (const bigunsignedint< k > &x, std::uintmax_t y)
 
template<int k>
bigunsignedint< k > Dune::operator% (const bigunsignedint< k > &x, std::uintmax_t y)
 
template<int k>
bigunsignedint< k > Dune::operator+ (std::uintmax_t x, const bigunsignedint< k > &y)
 
template<int k>
bigunsignedint< k > Dune::operator- (std::uintmax_t x, const bigunsignedint< k > &y)
 
template<int k>
bigunsignedint< k > Dune::operator* (std::uintmax_t x, const bigunsignedint< k > &y)
 
template<int k>
bigunsignedint< k > Dune::operator/ (std::uintmax_t x, const bigunsignedint< k > &y)
 
template<int k>
bigunsignedint< k > Dune::operator% (std::uintmax_t x, const bigunsignedint< k > &y)
 
 Dune::bigunsignedint< k >::bigunsignedint ()
 Construct uninitialized. More...
 
template<typename Signed >
 Dune::bigunsignedint< k >::bigunsignedint (Signed x, typename std::enable_if< std::is_integral< Signed >::value &&std::is_signed< Signed >::value >::type *=0)
 Construct from signed int. More...
 
 Dune::bigunsignedint< k >::bigunsignedint (std::uintmax_t x)
 Construct from unsigned int. More...
 
std::uint_least32_t Dune::bigunsignedint< k >::touint () const
 export to other types More...
 
double Dune::bigunsignedint< k >::todouble () const
 Convert to a double. More...
 
void Dune::bigunsignedint< k >::print (std::ostream &s) const
 Print number in hex notation. More...
 
bigunsignedint< k > Dune::bigunsignedint< k >::operator+ (const bigunsignedint< k > &x) const
 add More...
 
bigunsignedint< k > Dune::bigunsignedint< k >::operator- (const bigunsignedint< k > &x) const
 subtract More...
 
bigunsignedint< k > Dune::bigunsignedint< k >::operator* (const bigunsignedint< k > &x) const
 multiply More...
 
bigunsignedint< k > & Dune::bigunsignedint< k >::operator++ ()
 prefix increment More...
 
bigunsignedint< k > Dune::bigunsignedint< k >::operator/ (const bigunsignedint< k > &x) const
 
bigunsignedint< k > Dune::bigunsignedint< k >::operator% (const bigunsignedint< k > &x) const
 
bigunsignedint< k > Dune::bigunsignedint< k >::operator^ (const bigunsignedint< k > &x) const
 bitwise exor More...
 
bigunsignedint< k > Dune::bigunsignedint< k >::operator| (const bigunsignedint< k > &x) const
 bitwise or More...
 
bigunsignedint< k > Dune::bigunsignedint< k >::operator~ () const
 bitwise complement More...
 
bigunsignedint< k > Dune::bigunsignedint< k >::operator<< (int i) const
 left shift More...
 
bigunsignedint< k > Dune::bigunsignedint< k >::operator>> (int i) const
 right shift More...
 
bool Dune::bigunsignedint< k >::operator!= (const bigunsignedint< k > &x) const
 not equal More...
 
bool Dune::bigunsignedint< k >::operator== (const bigunsignedint< k > &x) const
 equal More...
 
bool Dune::bigunsignedint< k >::operator< (const bigunsignedint< k > &x) const
 less than More...
 
bool Dune::bigunsignedint< k >::operator<= (const bigunsignedint< k > &x) const
 less than or equal More...
 
bool Dune::bigunsignedint< k >::operator> (const bigunsignedint< k > &x) const
 greater than More...
 
bool Dune::bigunsignedint< k >::operator>= (const bigunsignedint< k > &x) const
 greater or equal More...
 

Detailed Description

Class implementing different number representations and helper functions.

Function Documentation

§ bigunsignedint() [1/3]

template<int k>
Dune::bigunsignedint< k >::bigunsignedint ( )

Construct uninitialized.

§ bigunsignedint() [2/3]

template<int k>
template<typename Signed >
Dune::bigunsignedint< k >::bigunsignedint ( Signed  x,
typename std::enable_if< std::is_integral< Signed >::value &&std::is_signed< Signed >::value >::type *  = 0 
)

Construct from signed int.

§ bigunsignedint() [3/3]

template<int k>
Dune::bigunsignedint< k >::bigunsignedint ( std::uintmax_t  x)

Construct from unsigned int.

§ operator!=()

template<int k>
bool Dune::bigunsignedint< k >::operator!= ( const bigunsignedint< k > &  x) const
inline

not equal

§ operator%() [1/3]

template<int k>
bigunsignedint< k > Dune::bigunsignedint< k >::operator% ( const bigunsignedint< k > &  x) const
inline

modulo

Warning
This function is very slow and its usage should be prevented if possible

§ operator%() [2/3]

template<int k>
bigunsignedint<k> Dune::operator% ( const bigunsignedint< k > &  x,
std::uintmax_t  y 
)
inline

§ operator%() [3/3]

template<int k>
bigunsignedint<k> Dune::operator% ( std::uintmax_t  x,
const bigunsignedint< k > &  y 
)
inline

§ operator*() [1/3]

template<int k>
bigunsignedint< k > Dune::bigunsignedint< k >::operator* ( const bigunsignedint< k > &  x) const
inline

multiply

§ operator*() [2/3]

template<int k>
bigunsignedint<k> Dune::operator* ( const bigunsignedint< k > &  x,
std::uintmax_t  y 
)
inline

§ operator*() [3/3]

template<int k>
bigunsignedint<k> Dune::operator* ( std::uintmax_t  x,
const bigunsignedint< k > &  y 
)
inline

§ operator+() [1/3]

template<int k>
bigunsignedint< k > Dune::bigunsignedint< k >::operator+ ( const bigunsignedint< k > &  x) const
inline

add

§ operator+() [2/3]

template<int k>
bigunsignedint<k> Dune::operator+ ( const bigunsignedint< k > &  x,
std::uintmax_t  y 
)
inline

§ operator+() [3/3]

template<int k>
bigunsignedint<k> Dune::operator+ ( std::uintmax_t  x,
const bigunsignedint< k > &  y 
)
inline

§ operator++()

template<int k>
bigunsignedint< k > & Dune::bigunsignedint< k >::operator++ ( )
inline

prefix increment

§ operator-() [1/3]

template<int k>
bigunsignedint< k > Dune::bigunsignedint< k >::operator- ( const bigunsignedint< k > &  x) const
inline

subtract

§ operator-() [2/3]

template<int k>
bigunsignedint<k> Dune::operator- ( const bigunsignedint< k > &  x,
std::uintmax_t  y 
)
inline

§ operator-() [3/3]

template<int k>
bigunsignedint<k> Dune::operator- ( std::uintmax_t  x,
const bigunsignedint< k > &  y 
)
inline

§ operator/() [1/3]

template<int k>
bigunsignedint< k > Dune::bigunsignedint< k >::operator/ ( const bigunsignedint< k > &  x) const
inline

divide

Warning
This function is very slow and its usage should be prevented if possible

§ operator/() [2/3]

template<int k>
bigunsignedint<k> Dune::operator/ ( const bigunsignedint< k > &  x,
std::uintmax_t  y 
)
inline

§ operator/() [3/3]

template<int k>
bigunsignedint<k> Dune::operator/ ( std::uintmax_t  x,
const bigunsignedint< k > &  y 
)
inline

§ operator<()

template<int k>
bool Dune::bigunsignedint< k >::operator< ( const bigunsignedint< k > &  x) const
inline

less than

§ operator<<() [1/2]

template<int k>
bigunsignedint< k > Dune::bigunsignedint< k >::operator<< ( int  i) const
inline

left shift

§ operator<<() [2/2]

template<int k>
std::ostream& Dune::operator<< ( std::ostream &  s,
const bigunsignedint< k > &  x 
)
inline

§ operator<=()

template<int k>
bool Dune::bigunsignedint< k >::operator<= ( const bigunsignedint< k > &  x) const
inline

less than or equal

§ operator==()

template<int k>
bool Dune::bigunsignedint< k >::operator== ( const bigunsignedint< k > &  x) const
inline

equal

§ operator>()

template<int k>
bool Dune::bigunsignedint< k >::operator> ( const bigunsignedint< k > &  x) const
inline

greater than

§ operator>=()

template<int k>
bool Dune::bigunsignedint< k >::operator>= ( const bigunsignedint< k > &  x) const
inline

greater or equal

§ operator>>()

template<int k>
bigunsignedint< k > Dune::bigunsignedint< k >::operator>> ( int  i) const
inline

right shift

§ operator^()

template<int k>
bigunsignedint< k > Dune::bigunsignedint< k >::operator^ ( const bigunsignedint< k > &  x) const
inline

bitwise exor

§ operator|()

template<int k>
bigunsignedint< k > Dune::bigunsignedint< k >::operator| ( const bigunsignedint< k > &  x) const
inline

bitwise or

§ operator~()

template<int k>
bigunsignedint< k > Dune::bigunsignedint< k >::operator~ ( ) const
inline

bitwise complement

§ print()

template<int k>
void Dune::bigunsignedint< k >::print ( std::ostream &  s) const
inline

Print number in hex notation.

§ todouble()

template<int k>
double Dune::bigunsignedint< k >::todouble ( ) const
inline

Convert to a double.

Warning
Subject to rounding errors!

§ touint()

template<int k>
std::uint_least32_t Dune::bigunsignedint< k >::touint ( ) const
inline

export to other types