CBMC
Loading...
Searching...
No Matches
Typedefs | Functions
mp_arith.h File Reference
#include <iosfwd>
#include <string>
#include "big-int/bigint.hh"
+ Include dependency graph for mp_arith.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Typedefs

 

Functions

std::ostream &  operator<< (std::ostream &, const mp_integer &)
 
 
 
  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)
 
const std::string  integer2string (const mp_integer &, unsigned base=10)
 
const mp_integer  string2integer (const std::string &, unsigned base=10)
 
const std::string  integer2binary (const mp_integer &, std::size_t width)
 
  convert binary string representation to mp_integer
 

Typedef Documentation

◆  mp_integer

Definition at line 19 of file mp_arith.h.

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_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 = 10 
)

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 によって変換されたページ (->オリジナル) /