#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 > &) |
This class implements an adaptive integer type.
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 >::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 >::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().
| 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().
| 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 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 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 | ( | ) | [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 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().
| void _vint::detail::vint_big< __length, __sign >::assign | ( | const std::string & | text, | |
| int | base = 10 | |||
| ) | [inline] |
| 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 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 >::min(), _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().
| 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().
| 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().
| 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().
| 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 >::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().
| 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().
| 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.
| uintmax_t _vint::detail::vint_big< __length, __sign >::get_subint | ( | size_t | index | ) | const [inline] |
Definition at line 254 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.
| 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 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().
| 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 >::lshift | ( | size_t | steps | ) | [inline] |
| 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 >::min | ( | ) | const [inline] |
Definition at line 449 of file vint_big.hpp.
References _vint::detail::vint_big< __length, __sign >::zero().
Referenced by _vint::detail::vint_big< __length, __sign >::assign().
| 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().
| vint_big _vint::detail::vint_big< __length, __sign >::normalized | ( | ) | const [inline] |
| 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 >::rshift | ( | size_t | steps | ) | [inline] |
| 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.
| 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().
| void _vint::detail::vint_big< __length, __sign >::set_subint | ( | X & | value, | |
| size_t | index | |||
| ) | [inline] |
Definition at line 246 of file vint_big.hpp.
| void _vint::detail::vint_big< __length, __sign >::set_subint | ( | _self & | value, | |
| size_t | index | |||
| ) | [inline] |
Definition at line 241 of file vint_big.hpp.
| 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().
| 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().
| 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().
| 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().
| 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().
| 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().
| std::ostream& operator | ( | std::ostream & | , | |
| const vint_big< __length, __sign > & | ||||
| ) | [friend] |
friend class vint_big [friend] |
Definition at line 73 of file vint_big.hpp.
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().
1.6.1