vint< __length, __sign > Class Template Reference

#include <source/ariba/utility/vtypes/vint.hpp>

List of all members.

Public Types

typedef vint_small< __length,
__sign >::type 
type
typedef vint< __length, __sign > _self

Public Member Functions

finline vint ()
template<typename T>
finline vint (const T v, if_integral(T))
finline vint (const char *text, int base=10)
finline vint (const type &v)
finline vint (const _self &v)
template<size_t ___length, bool ___sign>
finline void convert_to (vint< ___length, ___sign > &v) const
template<class T>
finline void convert_to (T &v, if_integral(T)) const
finline 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
finline bool get_bit (size_t index) const
finline void set_bit (size_t index, bool v)
finline void set_subint (_self &v, size_t index)
finline void set_subint (uintmax_t v, size_t index)
finline _self get_subint (size_t index, size_t length) const
finline uintmax_t get_subint (size_t index) const
template<size_t _len, bool _sign>
finline void assign (const vint< _len, _sign > &v)
template<typename T>
finline void assign (const T &v, if_integral(T))
finline void assign (const std::string &text, int base=10)
void assign (const char *&text, int base=10)
finline int compare_to (const _self &v) const
template<class T>
finline int compare_to (const T &v, if_integral(T)) const
template<class T>
finline void add (const T &rhs, if_integral(T))
finline void add (const _self &rhs)
template<class T>
finline void sub (const T &rhs, if_integral(T))
finline void sub (const _self &rhs)
template<class T>
finline void mul (const T &rhs, if_integral(T))
finline void mul (_self &rhs)
finline void mul (_self &res, const _self &rhs) const
template<class T>
finline void div (const T &rhs, if_integral(T))
finline void div (_self &rhs)
finline void div (_self &res, const _self &rhs) const
template<class T>
finline void mod (const T &rhs, if_integral(T))
finline void mod (_self &rhs)
finline void mod (_self &res, const _self &rhs) const
template<class T>
finline void mod (T &res, const T &rhs, if_integral(T)) const
template<class T>
finline void divrem (_self &res_div, T &res_rem, const T &rhs, if_integral(T)) const
finline void divrem (_self &res_div, _self &res_rem, const _self &rhs) const
template<class T>
finline void divrem (T &res_rem, const T &rhs, if_integral(T))
finline void divrem (_self &res_rem, const _self &rhs)
finline uintmax_t log2 () const
finline void or_ (const _self &v)
finline void and_ (const _self &v)
finline void xor_ (const _self &v)
finline void complement ()
finline void lshift (size_t steps)
finline void rshift (size_t steps)
_self normalized () const
finline size_t length () const
finline void set_length (size_t length)
finline bool is_unspecified ()
finline _self max () const
finline _self min () const
finline _self zero () const
finline void convert_to (std::string &str) const
finline bool is_between (const _self &a, const _self &b) const
finline bool is_between_ring (const _self &a, const _self &b) const
template<typename T>
finline T convert () const
template<typename T>
finline operator T () const
template<class T>
finline _selfoperator= (const T &copy)
template<class T>
finline _selfoperator+= (const T &v)
template<class T>
finline _selfoperator++ ()
template<class T>
finline _self operator+ (const T &v) const
template<class T>
finline _selfoperator-= (const T &v)
finline _selfoperator-- ()
template<class T>
finline _self operator- (const T &v) const
template<class T>
finline _selfoperator*= (const T &v)
template<class T>
finline _self operator* (const T &v) const
finline _self operator<< (size_t steps)
finline _selfoperator>>= (size_t steps)
finline _self operator>> (size_t steps)
finline _selfoperator<<= (size_t steps)
finline _selfoperator &= (const _self &v)
finline _self operator & (const _self &v)
finline _selfoperator|= (const _self &v)
finline _self operator| (const _self &v)
finline _selfoperator^= (const _self &v)
finline _self operator^ (const _self &v)
finline _self operator~ ()
template<class T>
finline bool operator< (const T &v) const
template<class T>
finline bool operator> (const T &v) const
template<class T>
finline bool operator<= (const T &v) const
template<class T>
finline bool operator>= (const T &v) const
template<class T>
finline bool operator== (const T &v) const
template<class T>
finline bool operator!= (const T &v) const

Public Attributes

typedef vint_big< __length, __sign >
type value

Friends

std::ostream & operator (std::ostream &, const vint< __length, __sign > &)


Detailed Description

template<size_t __length = 0, bool __sign = false>
class vint< __length, __sign >

This class implements an adaptive, scalable integer type.

Key features include:

... short: a real scalable integer type at compile-time cost!

Author:
Sebastian Mies <mies@tm.uka.de>

Definition at line 64 of file vint.hpp.


Member Typedef Documentation

template<size_t __length = 0, bool __sign = false>
typedef vint_small<__length, __sign> ::type vint< __length, __sign >::type

Definition at line 72 of file vint.hpp.

template<size_t __length = 0, bool __sign = false>
typedef vint<__length, __sign> vint< __length, __sign >::_self

Definition at line 80 of file vint.hpp.


Constructor & Destructor Documentation

template<size_t __length = 0, bool __sign = false>
finline vint< __length, __sign >::vint (  )  [inline]

Definition at line 84 of file vint.hpp.

template<size_t __length = 0, bool __sign = false>
template<typename T>
finline vint< __length, __sign >::vint ( const T  v,
if_integral(T)   
) [inline]

Definition at line 87 of file vint.hpp.

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

Definition at line 90 of file vint.hpp.

template<size_t __length = 0, bool __sign = false>
finline vint< __length, __sign >::vint ( const type v  )  [inline]

Definition at line 93 of file vint.hpp.

References vint< __length, __sign >::value.

template<size_t __length = 0, bool __sign = false>
finline vint< __length, __sign >::vint ( const _self v  )  [inline]

Definition at line 96 of file vint.hpp.

References vint< __length, __sign >::value.


Member Function Documentation

template<size_t __length = 0, bool __sign = false>
template<size_t ___length, bool ___sign>
finline void vint< __length, __sign >::convert_to ( vint< ___length, ___sign > &  v  )  const [inline]

Definition at line 101 of file vint.hpp.

References vint< __length, __sign >::value.

Referenced by vint< __length, __sign >::convert().

template<size_t __length = 0, bool __sign = false>
template<class T>
finline void vint< __length, __sign >::convert_to ( T &  v,
if_integral(T)   
) const [inline]

Definition at line 106 of file vint.hpp.

References vint< __length, __sign >::value.

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

Definition at line 110 of file vint.hpp.

References vint< __length, __sign >::value.

Referenced by vint< __length, __sign >::convert_to().

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

Definition at line 115 of file vint.hpp.

References vint< __length, __sign >::value.

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

Definition at line 122 of file vint.hpp.

References vint< __length, __sign >::value.

template<size_t __length = 0, bool __sign = false>
finline void vint< __length, __sign >::set_bit ( size_t  index,
bool  v 
) [inline]

Definition at line 126 of file vint.hpp.

References vint< __length, __sign >::value.

template<size_t __length = 0, bool __sign = false>
finline void vint< __length, __sign >::set_subint ( _self v,
size_t  index 
) [inline]

Definition at line 130 of file vint.hpp.

References vint< __length, __sign >::value.

template<size_t __length = 0, bool __sign = false>
finline void vint< __length, __sign >::set_subint ( uintmax_t  v,
size_t  index 
) [inline]

Definition at line 134 of file vint.hpp.

References vint< __length, __sign >::value.

template<size_t __length = 0, bool __sign = false>
finline _self vint< __length, __sign >::get_subint ( size_t  index,
size_t  length 
) const [inline]

Definition at line 138 of file vint.hpp.

References vint< __length, __sign >::value.

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

Definition at line 142 of file vint.hpp.

References vint< __length, __sign >::value.

template<size_t __length = 0, bool __sign = false>
template<size_t _len, bool _sign>
finline void vint< __length, __sign >::assign ( const vint< _len, _sign > &  v  )  [inline]

template<size_t __length = 0, bool __sign = false>
template<typename T>
finline void vint< __length, __sign >::assign ( const T &  v,
if_integral(T)   
) [inline]

Definition at line 156 of file vint.hpp.

References vint< __length, __sign >::value.

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

Definition at line 160 of file vint.hpp.

References vint< __length, __sign >::value.

template<size_t __length = 0, bool __sign = false>
void vint< __length, __sign >::assign ( const char *&  text,
int  base = 10 
) [inline]

Definition at line 164 of file vint.hpp.

References vint< __length, __sign >::assign().

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

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

Definition at line 175 of file vint.hpp.

References vint< __length, __sign >::value.

template<size_t __length = 0, bool __sign = false>
template<class T>
finline void vint< __length, __sign >::add ( const T &  rhs,
if_integral(T)   
) [inline]

Definition at line 183 of file vint.hpp.

References vint< __length, __sign >::value.

Referenced by vint< __length, __sign >::operator+().

template<size_t __length = 0, bool __sign = false>
finline void vint< __length, __sign >::add ( const _self rhs  )  [inline]

Definition at line 184 of file vint.hpp.

References vint< __length, __sign >::value.

template<size_t __length = 0, bool __sign = false>
template<class T>
finline void vint< __length, __sign >::sub ( const T &  rhs,
if_integral(T)   
) [inline]

Definition at line 188 of file vint.hpp.

References vint< __length, __sign >::value.

Referenced by vint< __length, __sign >::operator--().

template<size_t __length = 0, bool __sign = false>
finline void vint< __length, __sign >::sub ( const _self rhs  )  [inline]

Definition at line 189 of file vint.hpp.

References vint< __length, __sign >::value.

template<size_t __length = 0, bool __sign = false>
template<class T>
finline void vint< __length, __sign >::mul ( const T &  rhs,
if_integral(T)   
) [inline]

Definition at line 193 of file vint.hpp.

References vint< __length, __sign >::value.

Referenced by vint< __length, __sign >::operator*().

template<size_t __length = 0, bool __sign = false>
finline void vint< __length, __sign >::mul ( _self rhs  )  [inline]

Definition at line 194 of file vint.hpp.

References vint< __length, __sign >::value.

template<size_t __length = 0, bool __sign = false>
finline void vint< __length, __sign >::mul ( _self res,
const _self rhs 
) const [inline]

Definition at line 195 of file vint.hpp.

References vint< __length, __sign >::value.

template<size_t __length = 0, bool __sign = false>
template<class T>
finline void vint< __length, __sign >::div ( const T &  rhs,
if_integral(T)   
) [inline]

Definition at line 199 of file vint.hpp.

References vint< __length, __sign >::value.

template<size_t __length = 0, bool __sign = false>
finline void vint< __length, __sign >::div ( _self rhs  )  [inline]

Definition at line 200 of file vint.hpp.

References vint< __length, __sign >::value.

template<size_t __length = 0, bool __sign = false>
finline void vint< __length, __sign >::div ( _self res,
const _self rhs 
) const [inline]

Definition at line 201 of file vint.hpp.

References vint< __length, __sign >::value.

template<size_t __length = 0, bool __sign = false>
template<class T>
finline void vint< __length, __sign >::mod ( const T &  rhs,
if_integral(T)   
) [inline]

Definition at line 205 of file vint.hpp.

References vint< __length, __sign >::value.

template<size_t __length = 0, bool __sign = false>
finline void vint< __length, __sign >::mod ( _self rhs  )  [inline]

Definition at line 206 of file vint.hpp.

References vint< __length, __sign >::value.

template<size_t __length = 0, bool __sign = false>
finline void vint< __length, __sign >::mod ( _self res,
const _self rhs 
) const [inline]

Definition at line 207 of file vint.hpp.

References vint< __length, __sign >::value.

template<size_t __length = 0, bool __sign = false>
template<class T>
finline void vint< __length, __sign >::mod ( T &  res,
const T &  rhs,
if_integral(T)   
) const [inline]

Definition at line 211 of file vint.hpp.

References vint< __length, __sign >::value.

template<size_t __length = 0, bool __sign = false>
template<class T>
finline void vint< __length, __sign >::divrem ( _self res_div,
T &  res_rem,
const T &  rhs,
if_integral(T)   
) const [inline]

Definition at line 215 of file vint.hpp.

References vint< __length, __sign >::value.

template<size_t __length = 0, bool __sign = false>
finline void vint< __length, __sign >::divrem ( _self res_div,
_self res_rem,
const _self rhs 
) const [inline]

Definition at line 218 of file vint.hpp.

References vint< __length, __sign >::value.

template<size_t __length = 0, bool __sign = false>
template<class T>
finline void vint< __length, __sign >::divrem ( T &  res_rem,
const T &  rhs,
if_integral(T)   
) [inline]

Definition at line 222 of file vint.hpp.

References vint< __length, __sign >::value.

template<size_t __length = 0, bool __sign = false>
finline void vint< __length, __sign >::divrem ( _self res_rem,
const _self rhs 
) [inline]

Definition at line 225 of file vint.hpp.

References vint< __length, __sign >::value.

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

Definition at line 230 of file vint.hpp.

References vint< __length, __sign >::value.

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

Definition at line 234 of file vint.hpp.

References vint< __length, __sign >::value.

Referenced by vint< __length, __sign >::operator|=().

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

Definition at line 235 of file vint.hpp.

References vint< __length, __sign >::value.

Referenced by vint< __length, __sign >::operator &=().

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

Definition at line 236 of file vint.hpp.

References vint< __length, __sign >::value.

Referenced by vint< __length, __sign >::operator^=().

template<size_t __length = 0, bool __sign = false>
finline void vint< __length, __sign >::complement (  )  [inline]

Definition at line 237 of file vint.hpp.

References vint< __length, __sign >::value.

Referenced by vint< __length, __sign >::operator~().

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

Definition at line 238 of file vint.hpp.

References vint< __length, __sign >::value.

Referenced by vint< __length, __sign >::operator<<=().

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

Definition at line 239 of file vint.hpp.

References vint< __length, __sign >::value.

Referenced by vint< __length, __sign >::operator>>=().

template<size_t __length = 0, bool __sign = false>
_self vint< __length, __sign >::normalized (  )  const [inline]

Definition at line 243 of file vint.hpp.

References vint< __length, __sign >::value.

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

Definition at line 247 of file vint.hpp.

References vint< __length, __sign >::value.

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

Definition at line 248 of file vint.hpp.

References vint< __length, __sign >::value.

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

Definition at line 249 of file vint.hpp.

References vint< __length, __sign >::value.

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

Definition at line 251 of file vint.hpp.

References vint< __length, __sign >::value.

Referenced by vint< __length, __sign >::is_between_ring().

template<size_t __length = 0, bool __sign = false>
finline _self vint< __length, __sign >::min (  )  const [inline]

Definition at line 252 of file vint.hpp.

References vint< __length, __sign >::value.

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

Definition at line 253 of file vint.hpp.

References vint< __length, __sign >::value.

Referenced by vint< __length, __sign >::is_between_ring().

template<size_t __length = 0, bool __sign = false>
finline void vint< __length, __sign >::convert_to ( std::string &  str  )  const [inline]

Definition at line 257 of file vint.hpp.

References vint< __length, __sign >::to_string().

template<size_t __length = 0, bool __sign = false>
finline bool vint< __length, __sign >::is_between ( const _self a,
const _self b 
) const [inline]

Returns true, if the integer is inside the interval [a,b]

Definition at line 264 of file vint.hpp.

Referenced by vint< __length, __sign >::is_between_ring().

template<size_t __length = 0, bool __sign = false>
finline bool vint< __length, __sign >::is_between_ring ( const _self a,
const _self b 
) const [inline]

Returns true, if the integer is inside the interval [a,b] on a ring.

Definition at line 276 of file vint.hpp.

References vint< __length, __sign >::is_between(), vint< __length, __sign >::max(), and vint< __length, __sign >::zero().

template<size_t __length = 0, bool __sign = false>
template<typename T>
finline T vint< __length, __sign >::convert (  )  const [inline]

Definition at line 287 of file vint.hpp.

References vint< __length, __sign >::convert_to().

template<size_t __length = 0, bool __sign = false>
template<typename T>
finline vint< __length, __sign >::operator T (  )  const [inline]

Definition at line 288 of file vint.hpp.

template<size_t __length = 0, bool __sign = false>
template<class T>
finline _self& vint< __length, __sign >::operator= ( const T &  copy  )  [inline]

Definition at line 292 of file vint.hpp.

References vint< __length, __sign >::assign().

template<size_t __length = 0, bool __sign = false>
template<class T>
finline _self& vint< __length, __sign >::operator+= ( const T &  v  )  [inline]

Definition at line 296 of file vint.hpp.

template<size_t __length = 0, bool __sign = false>
template<class T>
finline _self& vint< __length, __sign >::operator++ (  )  [inline]

Definition at line 298 of file vint.hpp.

template<size_t __length = 0, bool __sign = false>
template<class T>
finline _self vint< __length, __sign >::operator+ ( const T &  v  )  const [inline]

Definition at line 300 of file vint.hpp.

References vint< __length, __sign >::add().

template<size_t __length = 0, bool __sign = false>
template<class T>
finline _self& vint< __length, __sign >::operator-= ( const T &  v  )  [inline]

Definition at line 304 of file vint.hpp.

template<size_t __length = 0, bool __sign = false>
finline _self& vint< __length, __sign >::operator-- (  )  [inline]

Definition at line 305 of file vint.hpp.

References vint< __length, __sign >::sub().

template<size_t __length = 0, bool __sign = false>
template<class T>
finline _self vint< __length, __sign >::operator- ( const T &  v  )  const [inline]

Definition at line 307 of file vint.hpp.

template<size_t __length = 0, bool __sign = false>
template<class T>
finline _self& vint< __length, __sign >::operator*= ( const T &  v  )  [inline]

Definition at line 312 of file vint.hpp.

References vint< __length, __sign >::value.

template<size_t __length = 0, bool __sign = false>
template<class T>
finline _self vint< __length, __sign >::operator* ( const T &  v  )  const [inline]

Definition at line 316 of file vint.hpp.

References vint< __length, __sign >::mul().

template<size_t __length = 0, bool __sign = false>
finline _self vint< __length, __sign >::operator<< ( size_t  steps  )  [inline]

Definition at line 321 of file vint.hpp.

template<size_t __length = 0, bool __sign = false>
finline _self& vint< __length, __sign >::operator>>= ( size_t  steps  )  [inline]

Definition at line 322 of file vint.hpp.

References vint< __length, __sign >::rshift().

template<size_t __length = 0, bool __sign = false>
finline _self vint< __length, __sign >::operator>> ( size_t  steps  )  [inline]

Definition at line 323 of file vint.hpp.

template<size_t __length = 0, bool __sign = false>
finline _self& vint< __length, __sign >::operator<<= ( size_t  steps  )  [inline]

Definition at line 324 of file vint.hpp.

References vint< __length, __sign >::lshift().

template<size_t __length = 0, bool __sign = false>
finline _self& vint< __length, __sign >::operator &= ( const _self v  )  [inline]

Definition at line 327 of file vint.hpp.

References vint< __length, __sign >::and_().

template<size_t __length = 0, bool __sign = false>
finline _self vint< __length, __sign >::operator & ( const _self v  )  [inline]

Definition at line 328 of file vint.hpp.

template<size_t __length = 0, bool __sign = false>
finline _self& vint< __length, __sign >::operator|= ( const _self v  )  [inline]

Definition at line 329 of file vint.hpp.

References vint< __length, __sign >::or_().

template<size_t __length = 0, bool __sign = false>
finline _self vint< __length, __sign >::operator| ( const _self v  )  [inline]

Definition at line 330 of file vint.hpp.

template<size_t __length = 0, bool __sign = false>
finline _self& vint< __length, __sign >::operator^= ( const _self v  )  [inline]

Definition at line 331 of file vint.hpp.

References vint< __length, __sign >::xor_().

template<size_t __length = 0, bool __sign = false>
finline _self vint< __length, __sign >::operator^ ( const _self v  )  [inline]

Definition at line 332 of file vint.hpp.

template<size_t __length = 0, bool __sign = false>
finline _self vint< __length, __sign >::operator~ (  )  [inline]

Definition at line 333 of file vint.hpp.

References vint< __length, __sign >::complement().

template<size_t __length = 0, bool __sign = false>
template<class T>
finline bool vint< __length, __sign >::operator< ( const T &  v  )  const [inline]

Definition at line 337 of file vint.hpp.

References vint< __length, __sign >::compare_to().

template<size_t __length = 0, bool __sign = false>
template<class T>
finline bool vint< __length, __sign >::operator> ( const T &  v  )  const [inline]

Definition at line 339 of file vint.hpp.

References vint< __length, __sign >::compare_to().

template<size_t __length = 0, bool __sign = false>
template<class T>
finline bool vint< __length, __sign >::operator<= ( const T &  v  )  const [inline]

Definition at line 341 of file vint.hpp.

References vint< __length, __sign >::compare_to().

template<size_t __length = 0, bool __sign = false>
template<class T>
finline bool vint< __length, __sign >::operator>= ( const T &  v  )  const [inline]

Definition at line 343 of file vint.hpp.

References vint< __length, __sign >::compare_to().

template<size_t __length = 0, bool __sign = false>
template<class T>
finline bool vint< __length, __sign >::operator== ( const T &  v  )  const [inline]

Definition at line 345 of file vint.hpp.

References vint< __length, __sign >::compare_to().

template<size_t __length = 0, bool __sign = false>
template<class T>
finline bool vint< __length, __sign >::operator!= ( const T &  v  )  const [inline]

Definition at line 347 of file vint.hpp.

References vint< __length, __sign >::compare_to().


Friends And Related Function Documentation

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


Member Data Documentation

template<size_t __length = 0, bool __sign = false>
typedef vint< __length, __sign >::vint_big< __length, __sign >

Definition at line 72 of file vint.hpp.

template<size_t __length = 0, bool __sign = false>
type vint< __length, __sign >::value


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

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