#include <source/ariba/utility/vtypes/detail/vint_big.hpp>
Public Member Functions | |
finline size_t | array_length () const |
finline mp_limb_t * | array () |
finline const mp_limb_t * | array () const |
finline mp_limb_t & | array (int index) |
finline mp_limb_t | array (int index) const |
finline void | clear () |
vint_big () | |
template<typename T> | |
vint_big (const T value, if_integral(T)) | |
vint_big (const char *text, int base=10) | |
std::string | to_string (int base=10, int str_size=0, char str_fill= '0') const |
std::string | to_debug_string (int base=10, int str_size=0, char str_fill= '0') const |
template<typename T> | |
void | convert_to (T &value, if_integral(T)) const |
template<size_t _l, bool _s> | |
void | convert_to (vint_big< _l, _s > &value) const |
bool | get_bit (size_t index) const |
void | set_bit (size_t index, bool value) |
void | set_subint (_self &value, size_t index) |
template<typename X> | |
void | set_subint (X &value, size_t index) |
_self | get_subint (size_t index, size_t length) const |
uintmax_t | get_subint (size_t index) const |
template<size_t _len, bool _sign> | |
void | assign (const vint_big< _len, _sign > &cpy) |
template<typename T> | |
void | assign (const T &value, if_integral(T)) |
void | assign (const std::string &text, int base=10) |
int | compare_to (const _self &v) const |
template<class T> | |
int | compare_to (const T &v, if_integral(T)) const |
finline void | add (const _self &v) |
template<class T> | |
finline void | add (const T &v, if_uint(T)) |
finline void | sub (const _self &v) |
template<class T> | |
finline T | mod (const T &v, if_uint(T)) |
uintmax_t | log2 () const |
void | or_ (const _self &v) |
void | and_ (const _self &v) |
void | xor_ (const _self &v) |
void | complement () |
void | lshift (size_t steps) |
void | rshift (size_t steps) |
vint_big | normalized () const |
finline size_t | length () const |
finline void | set_length (size_t length) |
finline bool | is_unspecified () |
finline _self | max () const |
finline _self | zero () const |
finline _self | min () const |
Private Types | |
typedef vint_big< __length > | _self |
Private Member Functions | |
finline void | trim () |
finline vint_big< __length *2 > | mul (const _self &v) const |
Private Attributes | |
varray< mp_limb_t, __length > | mp |
Static Private Attributes | |
static const size_t | limb_size = sizeof(mp_limb_t) * 8 |
Friends | |
class | vint_big |
std::ostream & | operator (std::ostream &, const vint_big< __length, __sign > &) |
SIGNED values are currently unsupported!!!
Definition at line 72 of file vint_big.hpp.
typedef vint_big<__length> _vint::detail::vint_big< __length, __sign >::_self [private] |
Definition at line 79 of file vint_big.hpp.
_vint::detail::vint_big< __length, __sign >::vint_big | ( | ) | [inline] |
Definition at line 127 of file vint_big.hpp.
References _vint::detail::vint_big< __length, __sign >::clear().
_vint::detail::vint_big< __length, __sign >::vint_big | ( | const T | value, | |
if_integral(T) | ||||
) | [inline] |
Definition at line 132 of file vint_big.hpp.
References _vint::detail::vint_big< __length, __sign >::array(), _vint::detail::vint_big< __length, __sign >::clear(), and _vint::detail::vint_big< __length, __sign >::set_length().
_vint::detail::vint_big< __length, __sign >::vint_big | ( | const char * | text, | |
int | base = 10 | |||
) | [inline] |
Definition at line 139 of file vint_big.hpp.
References _vint::detail::vint_big< __length, __sign >::assign().
finline void _vint::detail::vint_big< __length, __sign >::trim | ( | ) | [inline, private] |
Definition at line 86 of file vint_big.hpp.
References _vint::detail::vint_big< __length, __sign >::array(), and _vint::detail::vint_big< __length, __sign >::length().
Referenced by _vint::detail::vint_big< __length, __sign >::add(), _vint::detail::vint_big< __length, __sign >::assign(), _vint::detail::vint_big< __length, __sign >::complement(), _vint::detail::vint_big< __length, __sign >::lshift(), _vint::detail::vint_big< __length, __sign >::max(), _vint::detail::vint_big< __length, __sign >::rshift(), _vint::detail::vint_big< __length, __sign >::sub(), and _vint::detail::vint_big< __length, __sign >::zero().
finline size_t _vint::detail::vint_big< __length, __sign >::array_length | ( | ) | const [inline] |
Definition at line 96 of file vint_big.hpp.
References varray< item_type, _size, size_type >::array_size(), and _vint::detail::vint_big< __length, __sign >::mp.
Referenced by _vint::detail::vint_big< __length, __sign >::add(), _vint::detail::vint_big< __length, __sign >::and_(), _vint::detail::vint_big< __length, __sign >::assign(), _vint::detail::vint_big< __length, __sign >::clear(), _vint::detail::vint_big< __length, __sign >::compare_to(), _vint::detail::vint_big< __length, __sign >::complement(), _vint::detail::vint_big< __length, __sign >::log2(), _vint::detail::vint_big< __length, __sign >::lshift(), _vint::detail::vint_big< __length, __sign >::max(), _vint::detail::vint_big< __length, __sign >::mod(), _vint::detail::vint_big< __length, __sign >::mul(), _vint::detail::vint_big< __length, __sign >::normalized(), _vint::detail::vint_big< __length, __sign >::or_(), _vint::detail::vint_big< __length, __sign >::rshift(), _vint::detail::vint_big< __length, __sign >::sub(), _vint::detail::vint_big< __length, __sign >::xor_(), and _vint::detail::vint_big< __length, __sign >::zero().
finline mp_limb_t* _vint::detail::vint_big< __length, __sign >::array | ( | ) | [inline] |
Definition at line 101 of file vint_big.hpp.
References varray< item_type, _size, size_type >::array(), and _vint::detail::vint_big< __length, __sign >::mp.
Referenced by _vint::detail::vint_big< __length, __sign >::add(), _vint::detail::vint_big< __length, __sign >::and_(), _vint::detail::vint_big< __length, __sign >::assign(), _vint::detail::vint_big< __length, __sign >::clear(), _vint::detail::vint_big< __length, __sign >::compare_to(), _vint::detail::vint_big< __length, __sign >::complement(), _vint::detail::vint_big< __length, __sign >::convert_to(), _vint::detail::vint_big< __length, __sign >::get_bit(), _vint::detail::vint_big< __length, __sign >::log2(), _vint::detail::vint_big< __length, __sign >::lshift(), _vint::detail::vint_big< __length, __sign >::max(), _vint::detail::vint_big< __length, __sign >::mod(), _vint::detail::vint_big< __length, __sign >::mul(), _vint::detail::vint_big< __length, __sign >::normalized(), _vint::detail::vint_big< __length, __sign >::or_(), _vint::detail::vint_big< __length, __sign >::rshift(), _vint::detail::vint_big< __length, __sign >::set_bit(), _vint::detail::vint_big< __length, __sign >::sub(), _vint::detail::vint_big< __length, __sign >::trim(), _vint::detail::vint_big< __length, __sign >::vint_big(), _vint::detail::vint_big< __length, __sign >::xor_(), and _vint::detail::vint_big< __length, __sign >::zero().
finline const mp_limb_t* _vint::detail::vint_big< __length, __sign >::array | ( | ) | const [inline] |
Definition at line 106 of file vint_big.hpp.
References varray< item_type, _size, size_type >::array_const(), and _vint::detail::vint_big< __length, __sign >::mp.
finline mp_limb_t& _vint::detail::vint_big< __length, __sign >::array | ( | int | index | ) | [inline] |
Definition at line 110 of file vint_big.hpp.
References varray< item_type, _size, size_type >::array(), and _vint::detail::vint_big< __length, __sign >::mp.
finline mp_limb_t _vint::detail::vint_big< __length, __sign >::array | ( | int | index | ) | const [inline] |
Definition at line 115 of file vint_big.hpp.
References varray< item_type, _size, size_type >::array_const(), and _vint::detail::vint_big< __length, __sign >::mp.
finline void _vint::detail::vint_big< __length, __sign >::clear | ( | ) | [inline] |
Definition at line 120 of file vint_big.hpp.
References _vint::detail::vint_big< __length, __sign >::array(), and _vint::detail::vint_big< __length, __sign >::array_length().
Referenced by _vint::detail::vint_big< __length, __sign >::assign(), _vint::detail::vint_big< __length, __sign >::lshift(), _vint::detail::vint_big< __length, __sign >::rshift(), and _vint::detail::vint_big< __length, __sign >::vint_big().
std::string _vint::detail::vint_big< __length, __sign >::to_string | ( | int | base = 10 , |
|
int | str_size = 0 , |
|||
char | str_fill = '0' | |||
) | const [inline] |
Definition at line 145 of file vint_big.hpp.
References varray< item_type, _size, size_type >::array_const(), varray< item_type, _size, size_type >::array_size(), and _vint::detail::vint_big< __length, __sign >::mp.
Referenced by _vint::detail::vint_big< __length, __sign >::to_debug_string().
std::string _vint::detail::vint_big< __length, __sign >::to_debug_string | ( | int | base = 10 , |
|
int | str_size = 0 , |
|||
char | str_fill = '0' | |||
) | const [inline] |
Definition at line 205 of file vint_big.hpp.
References varray< item_type, _size, size_type >::get_memory_consumption(), varray< item_type, _size, size_type >::is_dynamic(), _vint::detail::vint_big< __length, __sign >::length(), _vint::detail::vint_big< __length, __sign >::mp, and _vint::detail::vint_big< __length, __sign >::to_string().
void _vint::detail::vint_big< __length, __sign >::convert_to | ( | T & | value, | |
if_integral(T) | ||||
) | const [inline] |
Definition at line 216 of file vint_big.hpp.
References _vint::detail::vint_big< __length, __sign >::array().
void _vint::detail::vint_big< __length, __sign >::convert_to | ( | vint_big< _l, _s > & | value | ) | const [inline] |
Definition at line 221 of file vint_big.hpp.
References _vint::detail::vint_big< __length, __sign >::assign().
bool _vint::detail::vint_big< __length, __sign >::get_bit | ( | size_t | index | ) | const [inline] |
Definition at line 228 of file vint_big.hpp.
References _vint::detail::vint_big< __length, __sign >::array(), and _vint::detail::vint_big< __length, __sign >::limb_size.
void _vint::detail::vint_big< __length, __sign >::set_bit | ( | size_t | index, | |
bool | value | |||
) | [inline] |
Definition at line 234 of file vint_big.hpp.
References _vint::detail::vint_big< __length, __sign >::array(), and _vint::detail::vint_big< __length, __sign >::limb_size.
void _vint::detail::vint_big< __length, __sign >::set_subint | ( | _self & | value, | |
size_t | index | |||
) | [inline] |
Definition at line 241 of file vint_big.hpp.
void _vint::detail::vint_big< __length, __sign >::set_subint | ( | X & | value, | |
size_t | index | |||
) | [inline] |
Definition at line 246 of file vint_big.hpp.
_self _vint::detail::vint_big< __length, __sign >::get_subint | ( | size_t | index, | |
size_t | length | |||
) | const [inline] |
Definition at line 250 of file vint_big.hpp.
uintmax_t _vint::detail::vint_big< __length, __sign >::get_subint | ( | size_t | index | ) | const [inline] |
Definition at line 254 of file vint_big.hpp.
void _vint::detail::vint_big< __length, __sign >::assign | ( | const vint_big< _len, _sign > & | cpy | ) | [inline] |
Definition at line 263 of file vint_big.hpp.
References _vint::detail::vint_big< __length, __sign >::array(), _vint::detail::vint_big< __length, __sign >::array_length(), _vint::detail::vint_big< __length, __sign >::clear(), _vint::detail::vint_big< __length, __sign >::length(), _vint::detail::vint_big< __length, __sign >::mp, varray< item_type, _size, size_type >::resize(), and _vint::detail::vint_big< __length, __sign >::trim().
Referenced by _vint::detail::vint_big< __length, __sign >::convert_to(), and _vint::detail::vint_big< __length, __sign >::vint_big().
void _vint::detail::vint_big< __length, __sign >::assign | ( | const T & | value, | |
if_integral(T) | ||||
) | [inline] |
Definition at line 274 of file vint_big.hpp.
References _vint::detail::vint_big< __length, __sign >::array(), bitcpy(), _vint::detail::vint_big< __length, __sign >::clear(), and _vint::detail::vint_big< __length, __sign >::set_length().
void _vint::detail::vint_big< __length, __sign >::assign | ( | const std::string & | text, | |
int | base = 10 | |||
) | [inline] |
int _vint::detail::vint_big< __length, __sign >::compare_to | ( | const _self & | v | ) | const [inline] |
Definition at line 296 of file vint_big.hpp.
References _vint::detail::vint_big< __length, __sign >::array(), and _vint::detail::vint_big< __length, __sign >::array_length().
int _vint::detail::vint_big< __length, __sign >::compare_to | ( | const T & | v, | |
if_integral(T) | ||||
) | const [inline] |
Definition at line 301 of file vint_big.hpp.
References _vint::detail::vint_big< __length, __sign >::array(), and _vint::detail::vint_big< __length, __sign >::array_length().
finline void _vint::detail::vint_big< __length, __sign >::add | ( | const _self & | v | ) | [inline] |
Definition at line 312 of file vint_big.hpp.
References _vint::detail::vint_big< __length, __sign >::array(), _vint::detail::vint_big< __length, __sign >::array_length(), and _vint::detail::vint_big< __length, __sign >::trim().
finline void _vint::detail::vint_big< __length, __sign >::add | ( | const T & | v, | |
if_uint(T) | ||||
) | [inline] |
Definition at line 319 of file vint_big.hpp.
References _vint::detail::vint_big< __length, __sign >::array(), _vint::detail::vint_big< __length, __sign >::array_length(), and _vint::detail::vint_big< __length, __sign >::trim().
finline void _vint::detail::vint_big< __length, __sign >::sub | ( | const _self & | v | ) | [inline] |
Definition at line 324 of file vint_big.hpp.
References _vint::detail::vint_big< __length, __sign >::array(), _vint::detail::vint_big< __length, __sign >::array_length(), and _vint::detail::vint_big< __length, __sign >::trim().
finline T _vint::detail::vint_big< __length, __sign >::mod | ( | const T & | v, | |
if_uint(T) | ||||
) | [inline] |
Definition at line 332 of file vint_big.hpp.
References _vint::detail::vint_big< __length, __sign >::array(), and _vint::detail::vint_big< __length, __sign >::array_length().
finline vint_big<__length*2> _vint::detail::vint_big< __length, __sign >::mul | ( | const _self & | v | ) | const [inline, private] |
Definition at line 338 of file vint_big.hpp.
References _vint::detail::vint_big< __length, __sign >::array(), varray< item_type, _size, size_type >::array_const(), _vint::detail::vint_big< __length, __sign >::array_length(), _vint::detail::vint_big< __length, __sign >::length(), _vint::detail::vint_big< __length, __sign >::mp, and _vint::detail::vint_big< __length, __sign >::set_length().
uintmax_t _vint::detail::vint_big< __length, __sign >::log2 | ( | ) | const [inline] |
Definition at line 348 of file vint_big.hpp.
References _vint::detail::vint_big< __length, __sign >::array(), and _vint::detail::vint_big< __length, __sign >::array_length().
Referenced by _vint::detail::vint_big< __length, __sign >::assign(), and _vint::detail::vint_big< __length, __sign >::normalized().
void _vint::detail::vint_big< __length, __sign >::or_ | ( | const _self & | v | ) | [inline] |
Definition at line 357 of file vint_big.hpp.
References _vint::detail::vint_big< __length, __sign >::array(), and _vint::detail::vint_big< __length, __sign >::array_length().
void _vint::detail::vint_big< __length, __sign >::and_ | ( | const _self & | v | ) | [inline] |
Definition at line 362 of file vint_big.hpp.
References _vint::detail::vint_big< __length, __sign >::array(), and _vint::detail::vint_big< __length, __sign >::array_length().
void _vint::detail::vint_big< __length, __sign >::xor_ | ( | const _self & | v | ) | [inline] |
Definition at line 367 of file vint_big.hpp.
References _vint::detail::vint_big< __length, __sign >::array(), and _vint::detail::vint_big< __length, __sign >::array_length().
void _vint::detail::vint_big< __length, __sign >::complement | ( | ) | [inline] |
Definition at line 372 of file vint_big.hpp.
References _vint::detail::vint_big< __length, __sign >::array(), _vint::detail::vint_big< __length, __sign >::array_length(), and _vint::detail::vint_big< __length, __sign >::trim().
void _vint::detail::vint_big< __length, __sign >::lshift | ( | size_t | steps | ) | [inline] |
void _vint::detail::vint_big< __length, __sign >::rshift | ( | size_t | steps | ) | [inline] |
vint_big _vint::detail::vint_big< __length, __sign >::normalized | ( | ) | const [inline] |
finline size_t _vint::detail::vint_big< __length, __sign >::length | ( | ) | const [inline] |
Definition at line 416 of file vint_big.hpp.
References _vint::detail::vint_big< __length, __sign >::mp, and varray< item_type, _size, size_type >::size().
Referenced by _vint::detail::vint_big< __length, __sign >::assign(), _vint::detail::vint_big< __length, __sign >::is_unspecified(), _vint::detail::vint_big< __length, __sign >::max(), _vint::detail::vint_big< __length, __sign >::mul(), _vint::detail::vint_big< __length, __sign >::to_debug_string(), _vint::detail::vint_big< __length, __sign >::trim(), and _vint::detail::vint_big< __length, __sign >::zero().
finline void _vint::detail::vint_big< __length, __sign >::set_length | ( | size_t | length | ) | [inline] |
Definition at line 420 of file vint_big.hpp.
References _vint::detail::vint_big< __length, __sign >::mp, and varray< item_type, _size, size_type >::resize().
Referenced by _vint::detail::vint_big< __length, __sign >::assign(), _vint::detail::vint_big< __length, __sign >::max(), _vint::detail::vint_big< __length, __sign >::mul(), _vint::detail::vint_big< __length, __sign >::normalized(), _vint::detail::vint_big< __length, __sign >::vint_big(), and _vint::detail::vint_big< __length, __sign >::zero().
finline bool _vint::detail::vint_big< __length, __sign >::is_unspecified | ( | ) | [inline] |
Definition at line 424 of file vint_big.hpp.
References _vint::detail::vint_big< __length, __sign >::length().
finline _self _vint::detail::vint_big< __length, __sign >::max | ( | ) | const [inline] |
This method returns the maximum number according to its size in bits.
Definition at line 433 of file vint_big.hpp.
References _vint::detail::vint_big< __length, __sign >::array(), _vint::detail::vint_big< __length, __sign >::array_length(), _vint::detail::vint_big< __length, __sign >::length(), _vint::detail::vint_big< __length, __sign >::set_length(), and _vint::detail::vint_big< __length, __sign >::trim().
finline _self _vint::detail::vint_big< __length, __sign >::zero | ( | ) | const [inline] |
Definition at line 441 of file vint_big.hpp.
References _vint::detail::vint_big< __length, __sign >::array(), _vint::detail::vint_big< __length, __sign >::array_length(), _vint::detail::vint_big< __length, __sign >::length(), _vint::detail::vint_big< __length, __sign >::set_length(), and _vint::detail::vint_big< __length, __sign >::trim().
Referenced by _vint::detail::vint_big< __length, __sign >::min().
finline _self _vint::detail::vint_big< __length, __sign >::min | ( | ) | const [inline] |
Definition at line 449 of file vint_big.hpp.
References _vint::detail::vint_big< __length, __sign >::zero().
friend class vint_big [friend] |
Definition at line 73 of file vint_big.hpp.
std::ostream& operator | ( | std::ostream & | , | |
const vint_big< __length, __sign > & | ||||
) | [friend] |
const size_t _vint::detail::vint_big< __length, __sign >::limb_size = sizeof(mp_limb_t) * 8 [static, private] |
Definition at line 80 of file vint_big.hpp.
Referenced by _vint::detail::vint_big< __length, __sign >::get_bit(), and _vint::detail::vint_big< __length, __sign >::set_bit().
varray<mp_limb_t, __length> _vint::detail::vint_big< __length, __sign >::mp [private] |
Definition at line 83 of file vint_big.hpp.
Referenced by _vint::detail::vint_big< __length, __sign >::array(), _vint::detail::vint_big< __length, __sign >::array_length(), _vint::detail::vint_big< __length, __sign >::assign(), _vint::detail::vint_big< __length, __sign >::length(), _vint::detail::vint_big< __length, __sign >::mul(), _vint::detail::vint_big< __length, __sign >::set_length(), _vint::detail::vint_big< __length, __sign >::to_debug_string(), and _vint::detail::vint_big< __length, __sign >::to_string().