Numbers
[Common]

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

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...

Modules

 FloatCmp

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

Detailed Description

Class implementing different number representations and helper functions.


Function Documentation

template<int k>
Dune::bigunsignedint< k >::bigunsignedint ( std::uintmax_t  x  )  [inline, inherited]

Construct from unsigned int.

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 
) [inline, inherited]

Construct from signed int.

template<int k>
Dune::bigunsignedint< k >::bigunsignedint (  )  [inline, inherited]

Construct uninitialized.

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

not equal

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

modulo

Warning:
This function is very slow and its usage should be prevented if possible
template<int k>
bigunsignedint<k> Dune::operator% ( std::uintmax_t  x,
const bigunsignedint< k > &  y 
) [inline]
template<int k>
bigunsignedint<k> Dune::operator% ( const bigunsignedint< k > &  x,
std::uintmax_t  y 
) [inline]
template<int k>
bigunsignedint< k > Dune::bigunsignedint< k >::operator& ( const bigunsignedint< k > &  x  )  const [inline, inherited]

bitwise and

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

multiply

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

add

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

prefix increment

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

subtract

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

divide

Warning:
This function is very slow and its usage should be prevented if possible
template<int k>
bigunsignedint<k> Dune::operator/ ( std::uintmax_t  x,
const bigunsignedint< k > &  y 
) [inline]
template<int k>
bigunsignedint<k> Dune::operator/ ( const bigunsignedint< k > &  x,
std::uintmax_t  y 
) [inline]
template<int k>
bool Dune::bigunsignedint< k >::operator< ( const bigunsignedint< k > &  x  )  const [inline, inherited]

less than

template<int k>
bigunsignedint< k > Dune::bigunsignedint< k >::operator<< ( int  i  )  const [inline, inherited]

left shift

template<int k>
std::ostream& Dune::operator<< ( std::ostream &  s,
const bigunsignedint< k > &  x 
) [inline]
template<int k>
bool Dune::bigunsignedint< k >::operator<= ( const bigunsignedint< k > &  x  )  const [inline, inherited]

less than or equal

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

equal

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

greater than

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

greater or equal

template<int k>
bigunsignedint< k > Dune::bigunsignedint< k >::operator>> ( int  i  )  const [inline, inherited]

right shift

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

bitwise exor

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

bitwise or

template<int k>
bigunsignedint< k > Dune::bigunsignedint< k >::operator~ (  )  const [inline, inherited]

bitwise complement

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

Print number in hex notation.

template<int k>
double Dune::bigunsignedint< k >::todouble (  )  const [inline, inherited]

Convert to a double.

Warning:
Subject to rounding errors!
template<int k>
std::uint_least32_t Dune::bigunsignedint< k >::touint (  )  const [inline, inherited]

export to other types

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 25 Mar 2018 for dune-common by  doxygen 1.6.1