_vint::detail::vint_big< __length, __sign > Class Template Reference

#include <source/ariba/utility/vtypes/detail/vint_big.hpp>

Collaboration diagram for _vint::detail::vint_big< __length, __sign >:

Collaboration graph
[legend]

List of all members.

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 > &)


Detailed Description

template<size_t __length = 0, bool __sign = false>
class _vint::detail::vint_big< __length, __sign >

This class implements an adaptive integer type.

SIGNED values are currently unsupported!!!

Author:
Sebastian Mies

Definition at line 72 of file vint_big.hpp.


Member Typedef Documentation

template<size_t __length = 0, bool __sign = false>
typedef vint_big<__length> _vint::detail::vint_big< __length, __sign >::_self [private]

Definition at line 79 of file vint_big.hpp.


Constructor & Destructor Documentation

template<size_t __length = 0, bool __sign = false>
_vint::detail::vint_big< __length, __sign >::vint_big (  )  [inline]

template<size_t __length = 0, bool __sign = false>
template<typename T>
_vint::detail::vint_big< __length, __sign >::vint_big ( const T  value,
if_integral(T)   
) [inline]

template<size_t __length = 0, bool __sign = false>
_vint::detail::vint_big< __length, __sign >::vint_big ( const char *  text,
int  base = 10 
) [inline]


Member Function Documentation

template<size_t __length = 0, bool __sign = false>
finline void _vint::detail::vint_big< __length, __sign >::trim (  )  [inline, private]

template<size_t __length = 0, bool __sign = false>
finline size_t _vint::detail::vint_big< __length, __sign >::array_length (  )  const [inline]

template<size_t __length = 0, bool __sign = false>
finline mp_limb_t* _vint::detail::vint_big< __length, __sign >::array (  )  [inline]

template<size_t __length = 0, bool __sign = false>
finline const mp_limb_t* _vint::detail::vint_big< __length, __sign >::array (  )  const [inline]

template<size_t __length = 0, bool __sign = false>
finline mp_limb_t& _vint::detail::vint_big< __length, __sign >::array ( int  index  )  [inline]

template<size_t __length = 0, bool __sign = false>
finline mp_limb_t _vint::detail::vint_big< __length, __sign >::array ( int  index  )  const [inline]

template<size_t __length = 0, bool __sign = false>
finline void _vint::detail::vint_big< __length, __sign >::clear (  )  [inline]

template<size_t __length = 0, bool __sign = false>
std::string _vint::detail::vint_big< __length, __sign >::to_string ( int  base = 10,
int  str_size = 0,
char  str_fill = '0' 
) const [inline]

template<size_t __length = 0, bool __sign = false>
std::string _vint::detail::vint_big< __length, __sign >::to_debug_string ( int  base = 10,
int  str_size = 0,
char  str_fill = '0' 
) const [inline]

template<size_t __length = 0, bool __sign = false>
template<typename T>
void _vint::detail::vint_big< __length, __sign >::convert_to ( T &  value,
if_integral(T)   
) const [inline]

template<size_t __length = 0, bool __sign = false>
template<size_t _l, bool _s>
void _vint::detail::vint_big< __length, __sign >::convert_to ( vint_big< _l, _s > &  value  )  const [inline]

template<size_t __length = 0, bool __sign = false>
bool _vint::detail::vint_big< __length, __sign >::get_bit ( size_t  index  )  const [inline]

template<size_t __length = 0, bool __sign = false>
void _vint::detail::vint_big< __length, __sign >::set_bit ( size_t  index,
bool  value 
) [inline]

template<size_t __length = 0, bool __sign = false>
void _vint::detail::vint_big< __length, __sign >::set_subint ( _self value,
size_t  index 
) [inline]

Definition at line 241 of file vint_big.hpp.

template<size_t __length = 0, bool __sign = false>
template<typename X>
void _vint::detail::vint_big< __length, __sign >::set_subint ( X &  value,
size_t  index 
) [inline]

Definition at line 246 of file vint_big.hpp.

template<size_t __length = 0, bool __sign = false>
_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.

template<size_t __length = 0, bool __sign = false>
uintmax_t _vint::detail::vint_big< __length, __sign >::get_subint ( size_t  index  )  const [inline]

Definition at line 254 of file vint_big.hpp.

template<size_t __length = 0, bool __sign = false>
template<size_t _len, bool _sign>
void _vint::detail::vint_big< __length, __sign >::assign ( const vint_big< _len, _sign > &  cpy  )  [inline]

template<size_t __length = 0, bool __sign = false>
template<typename T>
void _vint::detail::vint_big< __length, __sign >::assign ( const T &  value,
if_integral(T)   
) [inline]

template<size_t __length = 0, bool __sign = false>
void _vint::detail::vint_big< __length, __sign >::assign ( const std::string &  text,
int  base = 10 
) [inline]

template<size_t __length = 0, bool __sign = false>
int _vint::detail::vint_big< __length, __sign >::compare_to ( const _self v  )  const [inline]

template<size_t __length = 0, bool __sign = false>
template<class T>
int _vint::detail::vint_big< __length, __sign >::compare_to ( const T &  v,
if_integral(T)   
) const [inline]

template<size_t __length = 0, bool __sign = false>
finline void _vint::detail::vint_big< __length, __sign >::add ( const _self v  )  [inline]

template<size_t __length = 0, bool __sign = false>
template<class T>
finline void _vint::detail::vint_big< __length, __sign >::add ( const T &  v,
if_uint(T)   
) [inline]

template<size_t __length = 0, bool __sign = false>
finline void _vint::detail::vint_big< __length, __sign >::sub ( const _self v  )  [inline]

template<size_t __length = 0, bool __sign = false>
template<class T>
finline T _vint::detail::vint_big< __length, __sign >::mod ( const T &  v,
if_uint(T)   
) [inline]

template<size_t __length = 0, bool __sign = false>
finline vint_big<__length*2> _vint::detail::vint_big< __length, __sign >::mul ( const _self v  )  const [inline, private]

template<size_t __length = 0, bool __sign = false>
uintmax_t _vint::detail::vint_big< __length, __sign >::log2 (  )  const [inline]

template<size_t __length = 0, bool __sign = false>
void _vint::detail::vint_big< __length, __sign >::or_ ( const _self v  )  [inline]

template<size_t __length = 0, bool __sign = false>
void _vint::detail::vint_big< __length, __sign >::and_ ( const _self v  )  [inline]

template<size_t __length = 0, bool __sign = false>
void _vint::detail::vint_big< __length, __sign >::xor_ ( const _self v  )  [inline]

template<size_t __length = 0, bool __sign = false>
void _vint::detail::vint_big< __length, __sign >::complement (  )  [inline]

template<size_t __length = 0, bool __sign = false>
void _vint::detail::vint_big< __length, __sign >::lshift ( size_t  steps  )  [inline]

template<size_t __length = 0, bool __sign = false>
void _vint::detail::vint_big< __length, __sign >::rshift ( size_t  steps  )  [inline]

template<size_t __length = 0, bool __sign = false>
vint_big _vint::detail::vint_big< __length, __sign >::normalized (  )  const [inline]

template<size_t __length = 0, bool __sign = false>
finline size_t _vint::detail::vint_big< __length, __sign >::length (  )  const [inline]

template<size_t __length = 0, bool __sign = false>
finline void _vint::detail::vint_big< __length, __sign >::set_length ( size_t  length  )  [inline]

template<size_t __length = 0, bool __sign = false>
finline bool _vint::detail::vint_big< __length, __sign >::is_unspecified (  )  [inline]

template<size_t __length = 0, bool __sign = false>
finline _self _vint::detail::vint_big< __length, __sign >::max (  )  const [inline]

template<size_t __length = 0, bool __sign = false>
finline _self _vint::detail::vint_big< __length, __sign >::zero (  )  const [inline]

template<size_t __length = 0, bool __sign = false>
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().


Friends And Related Function Documentation

template<size_t __length = 0, bool __sign = false>
friend class vint_big [friend]

Definition at line 73 of file vint_big.hpp.

template<size_t __length = 0, bool __sign = false>
std::ostream& operator ( std::ostream &  ,
const vint_big< __length, __sign > &   
) [friend]


Member Data Documentation

template<size_t __length = 0, bool __sign = false>
const size_t _vint::detail::vint_big< __length, __sign >::limb_size = sizeof(mp_limb_t) * 8 [static, private]

template<size_t __length = 0, bool __sign = false>
varray<mp_limb_t, __length> _vint::detail::vint_big< __length, __sign >::mp [private]


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

Generated on Wed May 27 18:23:54 2009 for Ariba by  doxygen 1.5.6