mCRL2
Loading...
Searching...
No Matches
mcrl2::utilities::big_natural_number Class Reference

#include <big_numbers.h>

Public Member Functions

 big_natural_number ()
 
 big_natural_number (const std::size_t n)
 
 big_natural_number (const std::string &s)
 
bool is_zero () const
 Returns whether this number equals zero.
 
bool is_number (std::size_t n) const
 Returns whether this number equals a number of std::size_t.
 
void clear ()
 Sets the number to zero.
 
 operator std::size_t () const
 Transforms this number to a std::size_t, provided it is sufficiently small. If not an mcrl2::runtime_error is thrown.
 
bool operator== (const big_natural_number &other) const
 
bool operator!= (const big_natural_number &other) const
 
bool operator< (const big_natural_number &other) const
 
bool operator<= (const big_natural_number &other) const
 
bool operator> (const big_natural_number &other) const
 
bool operator>= (const big_natural_number &other) const
 
std::size_t divide_by (std::size_t n)
 
void add (const big_natural_number &other)
 
big_natural_number operator+ (const big_natural_number &other) const
 
void subtract (const big_natural_number &other)
 
big_natural_number operator- (const big_natural_number &other) const
 
void multiply (const big_natural_number &other, big_natural_number &result, big_natural_number &calculation_buffer_for_multiplicand) const
 
big_natural_number operator* (const big_natural_number &other) const
 
void div_mod (const big_natural_number &other, big_natural_number &result, big_natural_number &remainder, big_natural_number &calculation_buffer_divisor) const
 
big_natural_number operator/ (const big_natural_number &other) const
 
big_natural_number operator% (const big_natural_number &other) const
 

Protected Member Functions

void multiply_by (std::size_t n, std::size_t carry)
 
void remove_significant_digits_that_are_zero ()
 
void is_well_defined () const
 
void print_number (const std::string &s) const
 

Protected Attributes

std::vector< std::size_t > m_number
 

Friends

void swap (big_natural_number &x, big_natural_number &y)
 Standard overload of swap.
 

Detailed Description

Definition at line 157 of file big_numbers.h.

Constructor & Destructor Documentation

◆ big_natural_number() [1/3]

mcrl2::utilities::big_natural_number::big_natural_number ( )
inlineexplicit

Definition at line 214 of file big_numbers.h.

◆ big_natural_number() [2/3]

mcrl2::utilities::big_natural_number::big_natural_number ( const std::size_t  n)
inlineexplicit

Definition at line 219 of file big_numbers.h.

◆ big_natural_number() [3/3]

mcrl2::utilities::big_natural_number::big_natural_number ( const std::string &  s)
inline

Definition at line 229 of file big_numbers.h.

Member Function Documentation

◆ add()

void mcrl2::utilities::big_natural_number::add ( const big_natural_number other)
inline

Definition at line 376 of file big_numbers.h.

◆ clear()

void mcrl2::utilities::big_natural_number::clear ( )
inline

Sets the number to zero.

This is more efficient than using an assignment x=0.

Definition at line 270 of file big_numbers.h.

◆ div_mod()

void mcrl2::utilities::big_natural_number::div_mod ( const big_natural_number other,
big_natural_number result,
big_natural_number remainder,
big_natural_number calculation_buffer_divisor 
) const
inline

Definition at line 527 of file big_numbers.h.

◆ divide_by()

std::size_t mcrl2::utilities::big_natural_number::divide_by ( std::size_t  n)
inline

Definition at line 363 of file big_numbers.h.

◆ is_number()

bool mcrl2::utilities::big_natural_number::is_number ( std::size_t  n) const
inline

Returns whether this number equals a number of std::size_t.

This is more efficient than checking x==big_natural_number(1).

Definition at line 257 of file big_numbers.h.

◆ is_well_defined()

void mcrl2::utilities::big_natural_number::is_well_defined ( ) const
inlineprotected

Definition at line 196 of file big_numbers.h.

◆ is_zero()

bool mcrl2::utilities::big_natural_number::is_zero ( ) const
inline

Returns whether this number equals zero.

This is more efficient than checking x==big_natural_number(0).

Definition at line 248 of file big_numbers.h.

◆ multiply()

void mcrl2::utilities::big_natural_number::multiply ( const big_natural_number other,
big_natural_number result,
big_natural_number calculation_buffer_for_multiplicand 
) const
inline

Definition at line 472 of file big_numbers.h.

◆ multiply_by()

void mcrl2::utilities::big_natural_number::multiply_by ( std::size_t  n,
std::size_t  carry 
)
inlineprotected

Definition at line 169 of file big_numbers.h.

◆ operator std::size_t()

mcrl2::utilities::big_natural_number::operator std::size_t ( ) const
inlineexplicit

Transforms this number to a std::size_t, provided it is sufficiently small. If not an mcrl2::runtime_error is thrown.

Definition at line 279 of file big_numbers.h.

◆ operator!=()

bool mcrl2::utilities::big_natural_number::operator!= ( const big_natural_number other) const
inline

Definition at line 304 of file big_numbers.h.

◆ operator%()

big_natural_number mcrl2::utilities::big_natural_number::operator% ( const big_natural_number other) const
inline

Definition at line 721 of file big_numbers.h.

◆ operator*()

big_natural_number mcrl2::utilities::big_natural_number::operator* ( const big_natural_number other) const
inline

Definition at line 500 of file big_numbers.h.

◆ operator+()

big_natural_number mcrl2::utilities::big_natural_number::operator+ ( const big_natural_number other) const
inline

Definition at line 409 of file big_numbers.h.

◆ operator-()

big_natural_number mcrl2::utilities::big_natural_number::operator- ( const big_natural_number other) const
inline

Definition at line 457 of file big_numbers.h.

◆ operator/()

big_natural_number mcrl2::utilities::big_natural_number::operator/ ( const big_natural_number other) const
inline

Definition at line 693 of file big_numbers.h.

◆ operator<()

bool mcrl2::utilities::big_natural_number::operator< ( const big_natural_number other) const
inline

Definition at line 311 of file big_numbers.h.

◆ operator<=()

bool mcrl2::utilities::big_natural_number::operator<= ( const big_natural_number other) const
inline

Definition at line 343 of file big_numbers.h.

◆ operator==()

bool mcrl2::utilities::big_natural_number::operator== ( const big_natural_number other) const
inline

Definition at line 295 of file big_numbers.h.

◆ operator>()

bool mcrl2::utilities::big_natural_number::operator> ( const big_natural_number other) const
inline

Definition at line 350 of file big_numbers.h.

◆ operator>=()

bool mcrl2::utilities::big_natural_number::operator>= ( const big_natural_number other) const
inline

Definition at line 357 of file big_numbers.h.

◆ print_number()

void mcrl2::utilities::big_natural_number::print_number ( const std::string &  s) const
inlineprotected

Definition at line 202 of file big_numbers.h.

◆ remove_significant_digits_that_are_zero()

void mcrl2::utilities::big_natural_number::remove_significant_digits_that_are_zero ( )
inlineprotected

Definition at line 186 of file big_numbers.h.

◆ subtract()

void mcrl2::utilities::big_natural_number::subtract ( const big_natural_number other)
inline

Definition at line 423 of file big_numbers.h.

Friends And Related Symbol Documentation

◆ swap

void swap ( big_natural_number x,
big_natural_number y 
)
friend

Standard overload of swap.

Definition at line 770 of file big_numbers.h.

Member Data Documentation

◆ m_number

std::vector<std::size_t> mcrl2::utilities::big_natural_number::m_number
protected

Definition at line 166 of file big_numbers.h.


The documentation for this class was generated from the following file: