#include <source/ariba/utility/vtypes/vint.hpp>
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 _self & | operator= (const T ©) |
template<class T> | |
finline _self & | operator+= (const T &v) |
template<class T> | |
finline _self & | operator++ () |
template<class T> | |
finline _self | operator+ (const T &v) const |
template<class T> | |
finline _self & | operator-= (const T &v) |
finline _self & | operator-- () |
template<class T> | |
finline _self | operator- (const T &v) const |
template<class T> | |
finline _self & | operator*= (const T &v) |
template<class T> | |
finline _self | operator* (const T &v) const |
finline _self | operator<< (size_t steps) |
finline _self & | operator>>= (size_t steps) |
finline _self | operator>> (size_t steps) |
finline _self & | operator<<= (size_t steps) |
finline _self & | operator &= (const _self &v) |
finline _self | operator & (const _self &v) |
finline _self & | operator|= (const _self &v) |
finline _self | operator| (const _self &v) |
finline _self & | operator^= (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 > &) |
Key features include:
... short: a real scalable integer type at compile-time cost!
Definition at line 64 of file vint.hpp.
typedef vint_small<__length, __sign> ::type vint< __length, __sign >::type |
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().
finline void vint< __length, __sign >::convert_to | ( | T & | v, | |
if_integral(T) | ||||
) | const [inline] |
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().
std::string vint< __length, __sign >::to_debug_string | ( | int | base = 10 , |
|
int | str_size = 0 , |
|||
char | str_fill = '0' | |||
) | const [inline] |
finline bool vint< __length, __sign >::get_bit | ( | size_t | index | ) | const [inline] |
finline void vint< __length, __sign >::set_bit | ( | size_t | index, | |
bool | v | |||
) | [inline] |
finline void vint< __length, __sign >::set_subint | ( | uintmax_t | v, | |
size_t | index | |||
) | [inline] |
finline uintmax_t vint< __length, __sign >::get_subint | ( | size_t | index | ) | const [inline] |
finline void vint< __length, __sign >::assign | ( | const vint< _len, _sign > & | v | ) | [inline] |
Definition at line 151 of file vint.hpp.
References vint< __length, __sign >::value.
Referenced by vint< __length, __sign >::assign(), and vint< __length, __sign >::operator=().
finline void vint< __length, __sign >::assign | ( | const T & | v, | |
if_integral(T) | ||||
) | [inline] |
finline void vint< __length, __sign >::assign | ( | const std::string & | text, | |
int | base = 10 | |||
) | [inline] |
void vint< __length, __sign >::assign | ( | const char *& | text, | |
int | base = 10 | |||
) | [inline] |
finline int vint< __length, __sign >::compare_to | ( | const _self & | v | ) | const [inline] |
Definition at line 170 of file vint.hpp.
References vint< __length, __sign >::value.
Referenced by vint< __length, __sign >::operator!=(), vint< __length, __sign >::operator<(), vint< __length, __sign >::operator<=(), vint< __length, __sign >::operator==(), vint< __length, __sign >::operator>(), and vint< __length, __sign >::operator>=().
finline int vint< __length, __sign >::compare_to | ( | const T & | v, | |
if_integral(T) | ||||
) | const [inline] |
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+().
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--().
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*().
finline void vint< __length, __sign >::div | ( | const T & | rhs, | |
if_integral(T) | ||||
) | [inline] |
finline void vint< __length, __sign >::mod | ( | const T & | rhs, | |
if_integral(T) | ||||
) | [inline] |
finline void vint< __length, __sign >::mod | ( | T & | res, | |
const T & | rhs, | |||
if_integral(T) | ||||
) | const [inline] |
finline void vint< __length, __sign >::divrem | ( | T & | res_rem, | |
const T & | rhs, | |||
if_integral(T) | ||||
) | [inline] |
finline uintmax_t vint< __length, __sign >::log2 | ( | ) | const [inline] |
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|=().
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 &=().
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^=().
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~().
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<<=().
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>>=().
finline size_t vint< __length, __sign >::length | ( | ) | const [inline] |
finline void vint< __length, __sign >::set_length | ( | size_t | length | ) | [inline] |
finline bool vint< __length, __sign >::is_unspecified | ( | ) | [inline] |
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().
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().
finline void vint< __length, __sign >::convert_to | ( | std::string & | str | ) | const [inline] |
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().
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().
finline T vint< __length, __sign >::convert | ( | ) | const [inline] |
finline vint< __length, __sign >::operator T | ( | ) | const [inline] |
finline bool vint< __length, __sign >::operator< | ( | const T & | v | ) | const [inline] |
finline bool vint< __length, __sign >::operator> | ( | const T & | v | ) | const [inline] |
finline bool vint< __length, __sign >::operator<= | ( | const T & | v | ) | const [inline] |
finline bool vint< __length, __sign >::operator>= | ( | const T & | v | ) | const [inline] |
finline bool vint< __length, __sign >::operator== | ( | const T & | v | ) | const [inline] |
finline bool vint< __length, __sign >::operator!= | ( | const T & | v | ) | const [inline] |
std::ostream& operator | ( | std::ostream & | , | |
const vint< __length, __sign > & | ||||
) | [friend] |
Definition at line 77 of file vint.hpp.
Referenced by vint< __length, __sign >::add(), vint< __length, __sign >::and_(), vint< __length, __sign >::assign(), vint< __length, __sign >::compare_to(), vint< __length, __sign >::complement(), vint< __length, __sign >::convert_to(), vint< __length, __sign >::div(), vint< __length, __sign >::divrem(), vint< __length, __sign >::get_bit(), vint< __length, __sign >::get_subint(), vint< __length, __sign >::is_unspecified(), vint< __length, __sign >::length(), vint< __length, __sign >::log2(), vint< __length, __sign >::lshift(), vint< __length, __sign >::max(), vint< __length, __sign >::min(), vint< __length, __sign >::mod(), vint< __length, __sign >::mul(), vint< __length, __sign >::normalized(), vint< __length, __sign >::operator*=(), vint< __length, __sign >::or_(), vint< __length, __sign >::rshift(), vint< __length, __sign >::set_bit(), vint< __length, __sign >::set_length(), vint< __length, __sign >::set_subint(), vint< __length, __sign >::sub(), vint< __length, __sign >::to_debug_string(), vint< __length, __sign >::to_string(), vint< __length, __sign >::vint(), vint< __length, __sign >::xor_(), and vint< __length, __sign >::zero().