CBMC
Loading...
Searching...
No Matches
Typedefs | Functions
mp_arith.cpp File Reference
#include "mp_arith.h"
#include <algorithm>
#include <cctype>
#include <climits>
#include <vector>
#include "arith_tools.h"
#include "invariant.h"
+ Include dependency graph for mp_arith.cpp:

Go to the source code of this file.

Typedefs

typedef BigInt::ullong_t  ullong_t
 
typedef BigInt::llong_t  llong_t
 

Functions

 
 
std::ostream &  operator<< (std::ostream &out, const mp_integer &n)
 
const mp_integer  string2integer (const std::string &n, unsigned base)
 
const std::string  integer2binary (const mp_integer &n, std::size_t width)
 
const std::string  integer2string (const mp_integer &n, unsigned base)
 
  convert binary string representation to mp_integer
 
  bitwise binary operation over two integers, given as a functor
 
  bitwise 'or' of two nonnegative integers
 
  bitwise 'and' of two nonnegative integers
 
  bitwise 'xor' of two nonnegative integers
 
  arithmetic left shift bitwise operations only make sense on native objects, hence the largest object size should be the largest available c++ integer size (currently long long)
 
  arithmetic right shift (loads sign on MSB) bitwise operations only make sense on native objects, hence the largest object size should be the largest available c++ integer size (currently long long)
 
  logic left shift bitwise operations only make sense on native objects, hence the largest object size should be the largest available c++ integer size (currently long long)
 
  logic right shift (loads 0 on MSB) bitwise operations only make sense on native objects, hence the largest object size should be the largest available c++ integer size (currently long long)
 
  rotates right (MSB=LSB) bitwise operations only make sense on native objects, hence the largest object size should be the largest available c++ integer size (currently long long)
 
  rotate left (LSB=MSB) bitwise operations only make sense on native objects, hence the largest object size should be the largest available c++ integer size (currently long long)
 

Typedef Documentation

◆  llong_t

typedef BigInt::llong_t llong_t

Definition at line 20 of file mp_arith.cpp.

◆  ullong_t

typedef BigInt::ullong_t ullong_t

Definition at line 19 of file mp_arith.cpp.

Function Documentation

◆  arith_left_shift()

mp_integer arith_left_shift ( const mp_integera,
const mp_integerb,
std::size_t  true_size 
)

arithmetic left shift bitwise operations only make sense on native objects, hence the largest object size should be the largest available c++ integer size (currently long long)

Definition at line 253 of file mp_arith.cpp.

◆  arith_right_shift()

mp_integer arith_right_shift ( const mp_integera,
const mp_integerb,
std::size_t  true_size 
)

arithmetic right shift (loads sign on MSB) bitwise operations only make sense on native objects, hence the largest object size should be the largest available c++ integer size (currently long long)

Definition at line 272 of file mp_arith.cpp.

◆  binary2integer()

const mp_integer binary2integer ( const std::string &  n,
bool  is_signed 
)

convert binary string representation to mp_integer

parameters: string of '0'/'1', most significant bit first
Returns
mp_integer

Definition at line 117 of file mp_arith.cpp.

◆  bitwise()

mp_integer bitwise ( const mp_integera,
const mp_integerb,
std::function< bool(bool, bool)>  f 
)

bitwise binary operation over two integers, given as a functor

Parameters
a the first integer
b the second integer
f the function over two bits

Definition at line 190 of file mp_arith.cpp.

◆  bitwise_and()

mp_integer bitwise_and ( const mp_integera,
const mp_integerb 
)

bitwise 'and' of two nonnegative integers

Definition at line 227 of file mp_arith.cpp.

◆  bitwise_or()

mp_integer bitwise_or ( const mp_integera,
const mp_integerb 
)

bitwise 'or' of two nonnegative integers

Definition at line 215 of file mp_arith.cpp.

◆  bitwise_xor()

mp_integer bitwise_xor ( const mp_integera,
const mp_integerb 
)

bitwise 'xor' of two nonnegative integers

Definition at line 239 of file mp_arith.cpp.

◆  integer2binary()

const std::string integer2binary ( const mp_integern,
std::size_t  width 
)
Returns
string of '0'/'1', most significant bit first

Definition at line 64 of file mp_arith.cpp.

◆  integer2string()

const std::string integer2string ( const mp_integern,
unsigned  base 
)

Definition at line 103 of file mp_arith.cpp.

◆  logic_left_shift()

mp_integer logic_left_shift ( const mp_integera,
const mp_integerb,
std::size_t  true_size 
)

logic left shift bitwise operations only make sense on native objects, hence the largest object size should be the largest available c++ integer size (currently long long)

Definition at line 291 of file mp_arith.cpp.

◆  logic_right_shift()

mp_integer logic_right_shift ( const mp_integera,
const mp_integerb,
std::size_t  true_size 
)

logic right shift (loads 0 on MSB) bitwise operations only make sense on native objects, hence the largest object size should be the largest available c++ integer size (currently long long)

Definition at line 317 of file mp_arith.cpp.

◆  operator<<() [1/2]

const mp_integerb 
)

Definition at line 40 of file mp_arith.cpp.

◆  operator<<() [2/2]

std::ostream & operator<< ( std::ostream &  out,
const mp_integern 
)

Definition at line 45 of file mp_arith.cpp.

◆  operator>>()

const mp_integerb 
)

Definition at line 22 of file mp_arith.cpp.

◆  rotate_left()

mp_integer rotate_left ( const mp_integera,
const mp_integerb,
std::size_t  true_size 
)

rotate left (LSB=MSB) bitwise operations only make sense on native objects, hence the largest object size should be the largest available c++ integer size (currently long long)

Definition at line 353 of file mp_arith.cpp.

◆  rotate_right()

mp_integer rotate_right ( const mp_integera,
const mp_integerb,
std::size_t  true_size 
)

rotates right (MSB=LSB) bitwise operations only make sense on native objects, hence the largest object size should be the largest available c++ integer size (currently long long)

Definition at line 333 of file mp_arith.cpp.

◆  string2integer()

const mp_integer string2integer ( const std::string &  n,
unsigned  base 
)
parameters: string of '0'-'9' etc. most significant digit first
base of number representation
Returns
mp_integer

Definition at line 54 of file mp_arith.cpp.

AltStyle によって変換されたページ (->オリジナル) /