SystemC  2.3.2
Accellera SystemC proof-of-concept library
sc_unsigned.h File Reference

Arbitrary precision unsigned arithmetic. More...

Include dependency graph for sc_unsigned.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  sc_dt::sc_unsigned_bitref_r
 Proxy class for sc_unsigned bit selection (r-value only). More...
 
class  sc_dt::sc_unsigned_bitref
 Proxy class for sc_unsigned bit selection (r-value and l-value). More...
 
class  sc_dt::sc_unsigned_subref_r
 Proxy class for sc_unsigned part selection (r-value only). More...
 
class  sc_dt::sc_unsigned_subref
 Proxy class for sc_unsigned part selection (r-value and l-value). More...
 
class  sc_dt::sc_unsigned
 Arbitrary precision unsigned number. More...
 

Namespaces

 sc_dt
 
 sc_core
 

Functions

int sc_dt::compare_unsigned (small_type us, int unb, int und, const sc_digit *ud, small_type vs, int vnb, int vnd, const sc_digit *vd, small_type if_u_signed=0, small_type if_v_signed=0)
 
sc_unsigned sc_dt::add_unsigned_friend (small_type us, int unb, int und, const sc_digit *ud, small_type vs, int vnb, int vnd, const sc_digit *vd)
 
sc_unsigned sc_dt::sub_unsigned_friend (small_type us, int unb, int und, const sc_digit *ud, small_type vs, int vnb, int vnd, const sc_digit *vd)
 
sc_unsigned sc_dt::mul_unsigned_friend (small_type s, int unb, int und, const sc_digit *ud, int vnb, int vnd, const sc_digit *vd)
 
sc_unsigned sc_dt::div_unsigned_friend (small_type s, int unb, int und, const sc_digit *ud, int vnb, int vnd, const sc_digit *vd)
 
sc_unsigned sc_dt::mod_unsigned_friend (small_type us, int unb, int und, const sc_digit *ud, int vnb, int vnd, const sc_digit *vd)
 
sc_unsigned sc_dt::and_unsigned_friend (small_type us, int unb, int und, const sc_digit *ud, small_type vs, int vnb, int vnd, const sc_digit *vd)
 
sc_unsigned sc_dt::or_unsigned_friend (small_type us, int unb, int und, const sc_digit *ud, small_type vs, int vnb, int vnd, const sc_digit *vd)
 
sc_unsigned sc_dt::xor_unsigned_friend (small_type us, int unb, int und, const sc_digit *ud, small_type vs, int vnb, int vnd, const sc_digit *vd)
 
SC_API sc_signed sc_dt::operator+ (const sc_unsigned &u, const sc_signed &v)
 
SC_API sc_signed sc_dt::operator+ (const sc_signed &u, const sc_unsigned &v)
 
SC_API sc_unsigned sc_dt::operator+ (const sc_unsigned &u, const sc_unsigned &v)
 
SC_API sc_signed sc_dt::operator+ (const sc_unsigned &u, int64 v)
 
SC_API sc_unsigned sc_dt::operator+ (const sc_unsigned &u, uint64 v)
 
SC_API sc_signed sc_dt::operator+ (const sc_unsigned &u, long v)
 
SC_API sc_unsigned sc_dt::operator+ (const sc_unsigned &u, unsigned long v)
 
sc_signed sc_dt::operator+ (const sc_unsigned &u, int v)
 
sc_unsigned sc_dt::operator+ (const sc_unsigned &u, unsigned int v)
 
SC_API sc_signed sc_dt::operator+ (int64 u, const sc_unsigned &v)
 
SC_API sc_unsigned sc_dt::operator+ (uint64 u, const sc_unsigned &v)
 
SC_API sc_signed sc_dt::operator+ (long u, const sc_unsigned &v)
 
SC_API sc_unsigned sc_dt::operator+ (unsigned long u, const sc_unsigned &v)
 
sc_signed sc_dt::operator+ (int u, const sc_unsigned &v)
 
sc_unsigned sc_dt::operator+ (unsigned int u, const sc_unsigned &v)
 
SC_API sc_unsigned sc_dt::operator+ (const sc_unsigned &u, const sc_uint_base &v)
 
SC_API sc_signed sc_dt::operator+ (const sc_unsigned &u, const sc_int_base &v)
 
SC_API sc_unsigned sc_dt::operator+ (const sc_uint_base &u, const sc_unsigned &v)
 
SC_API sc_signed sc_dt::operator+ (const sc_int_base &u, const sc_unsigned &v)
 
SC_API sc_signed sc_dt::operator- (const sc_unsigned &u, const sc_signed &v)
 
SC_API sc_signed sc_dt::operator- (const sc_signed &u, const sc_unsigned &v)
 
SC_API sc_signed sc_dt::operator- (const sc_unsigned &u, const sc_unsigned &v)
 
SC_API sc_signed sc_dt::operator- (const sc_unsigned &u, int64 v)
 
SC_API sc_signed sc_dt::operator- (const sc_unsigned &u, uint64 v)
 
SC_API sc_signed sc_dt::operator- (const sc_unsigned &u, long v)
 
SC_API sc_signed sc_dt::operator- (const sc_unsigned &u, unsigned long v)
 
sc_signed sc_dt::operator- (const sc_unsigned &u, int v)
 
sc_signed sc_dt::operator- (const sc_unsigned &u, unsigned int v)
 
SC_API sc_signed sc_dt::operator- (int64 u, const sc_unsigned &v)
 
SC_API sc_signed sc_dt::operator- (uint64 u, const sc_unsigned &v)
 
SC_API sc_signed sc_dt::operator- (long u, const sc_unsigned &v)
 
SC_API sc_signed sc_dt::operator- (unsigned long u, const sc_unsigned &v)
 
sc_signed sc_dt::operator- (int u, const sc_unsigned &v)
 
sc_signed sc_dt::operator- (unsigned int u, const sc_unsigned &v)
 
SC_API sc_signed sc_dt::operator- (const sc_unsigned &u, const sc_uint_base &v)
 
SC_API sc_signed sc_dt::operator- (const sc_unsigned &u, const sc_int_base &v)
 
SC_API sc_signed sc_dt::operator- (const sc_uint_base &u, const sc_unsigned &v)
 
SC_API sc_signed sc_dt::operator- (const sc_int_base &u, const sc_unsigned &v)
 
SC_API sc_signed sc_dt::operator* (const sc_unsigned &u, const sc_signed &v)
 
SC_API sc_signed sc_dt::operator* (const sc_signed &u, const sc_unsigned &v)
 
SC_API sc_unsigned sc_dt::operator* (const sc_unsigned &u, const sc_unsigned &v)
 
SC_API sc_signed sc_dt::operator* (const sc_unsigned &u, int64 v)
 
SC_API sc_unsigned sc_dt::operator* (const sc_unsigned &u, uint64 v)
 
SC_API sc_signed sc_dt::operator* (const sc_unsigned &u, long v)
 
SC_API sc_unsigned sc_dt::operator* (const sc_unsigned &u, unsigned long v)
 
sc_signed sc_dt::operator* (const sc_unsigned &u, int v)
 
sc_unsigned sc_dt::operator* (const sc_unsigned &u, unsigned int v)
 
SC_API sc_signed sc_dt::operator* (int64 u, const sc_unsigned &v)
 
SC_API sc_unsigned sc_dt::operator* (uint64 u, const sc_unsigned &v)
 
SC_API sc_signed sc_dt::operator* (long u, const sc_unsigned &v)
 
SC_API sc_unsigned sc_dt::operator* (unsigned long u, const sc_unsigned &v)
 
sc_signed sc_dt::operator* (int u, const sc_unsigned &v)
 
sc_unsigned sc_dt::operator* (unsigned int u, const sc_unsigned &v)
 
SC_API sc_unsigned sc_dt::operator* (const sc_unsigned &u, const sc_uint_base &v)
 
SC_API sc_signed sc_dt::operator* (const sc_unsigned &u, const sc_int_base &v)
 
SC_API sc_unsigned sc_dt::operator* (const sc_uint_base &u, const sc_unsigned &v)
 
SC_API sc_signed sc_dt::operator* (const sc_int_base &u, const sc_unsigned &v)
 
SC_API sc_signed sc_dt::operator/ (const sc_unsigned &u, const sc_signed &v)
 
SC_API sc_signed sc_dt::operator/ (const sc_signed &u, const sc_unsigned &v)
 
SC_API sc_unsigned sc_dt::operator/ (const sc_unsigned &u, const sc_unsigned &v)
 
SC_API sc_signed sc_dt::operator/ (const sc_unsigned &u, int64 v)
 
SC_API sc_unsigned sc_dt::operator/ (const sc_unsigned &u, uint64 v)
 
SC_API sc_signed sc_dt::operator/ (const sc_unsigned &u, long v)
 
SC_API sc_unsigned sc_dt::operator/ (const sc_unsigned &u, unsigned long v)
 
sc_signed sc_dt::operator/ (const sc_unsigned &u, int v)
 
sc_unsigned sc_dt::operator/ (const sc_unsigned &u, unsigned int v)
 
SC_API sc_signed sc_dt::operator/ (int64 u, const sc_unsigned &v)
 
SC_API sc_unsigned sc_dt::operator/ (uint64 u, const sc_unsigned &v)
 
SC_API sc_signed sc_dt::operator/ (long u, const sc_unsigned &v)
 
SC_API sc_unsigned sc_dt::operator/ (unsigned long u, const sc_unsigned &v)
 
sc_signed sc_dt::operator/ (int u, const sc_unsigned &v)
 
sc_unsigned sc_dt::operator/ (unsigned int u, const sc_unsigned &v)
 
SC_API sc_unsigned sc_dt::operator/ (const sc_unsigned &u, const sc_uint_base &v)
 
SC_API sc_signed sc_dt::operator/ (const sc_unsigned &u, const sc_int_base &v)
 
SC_API sc_unsigned sc_dt::operator/ (const sc_uint_base &u, const sc_unsigned &v)
 
SC_API sc_signed sc_dt::operator/ (const sc_int_base &u, const sc_unsigned &v)
 
SC_API sc_signed sc_dt::operator% (const sc_unsigned &u, const sc_signed &v)
 
SC_API sc_signed sc_dt::operator% (const sc_signed &u, const sc_unsigned &v)
 
SC_API sc_unsigned sc_dt::operator% (const sc_unsigned &u, const sc_unsigned &v)
 
SC_API sc_signed sc_dt::operator% (const sc_unsigned &u, int64 v)
 
SC_API sc_unsigned sc_dt::operator% (const sc_unsigned &u, uint64 v)
 
SC_API sc_signed sc_dt::operator% (const sc_unsigned &u, long v)
 
SC_API sc_unsigned sc_dt::operator% (const sc_unsigned &u, unsigned long v)
 
sc_signed sc_dt::operator% (const sc_unsigned &u, int v)
 
sc_unsigned sc_dt::operator% (const sc_unsigned &u, unsigned int v)
 
SC_API sc_signed sc_dt::operator% (int64 u, const sc_unsigned &v)
 
SC_API sc_unsigned sc_dt::operator% (uint64 u, const sc_unsigned &v)
 
SC_API sc_signed sc_dt::operator% (long u, const sc_unsigned &v)
 
SC_API sc_unsigned sc_dt::operator% (unsigned long u, const sc_unsigned &v)
 
sc_signed sc_dt::operator% (int u, const sc_unsigned &v)
 
sc_unsigned sc_dt::operator% (unsigned int u, const sc_unsigned &v)
 
SC_API sc_unsigned sc_dt::operator% (const sc_unsigned &u, const sc_uint_base &v)
 
SC_API sc_signed sc_dt::operator% (const sc_unsigned &u, const sc_int_base &v)
 
SC_API sc_unsigned sc_dt::operator% (const sc_uint_base &u, const sc_unsigned &v)
 
SC_API sc_signed sc_dt::operator% (const sc_int_base &u, const sc_unsigned &v)
 
SC_API sc_signed sc_dt::operator& (const sc_unsigned &u, const sc_signed &v)
 
SC_API sc_signed sc_dt::operator& (const sc_signed &u, const sc_unsigned &v)
 
SC_API sc_unsigned sc_dt::operator& (const sc_unsigned &u, const sc_unsigned &v)
 
SC_API sc_signed sc_dt::operator& (const sc_unsigned &u, int64 v)
 
SC_API sc_unsigned sc_dt::operator& (const sc_unsigned &u, uint64 v)
 
SC_API sc_signed sc_dt::operator& (const sc_unsigned &u, long v)
 
SC_API sc_unsigned sc_dt::operator& (const sc_unsigned &u, unsigned long v)
 
SC_API sc_signed sc_dt::operator& (const sc_unsigned &u, int v)
 
sc_unsigned sc_dt::operator& (const sc_unsigned &u, unsigned int v)
 
SC_API sc_signed sc_dt::operator& (int64 u, const sc_unsigned &v)
 
SC_API sc_unsigned sc_dt::operator& (uint64 u, const sc_unsigned &v)
 
SC_API sc_signed sc_dt::operator& (long u, const sc_unsigned &v)
 
SC_API sc_unsigned sc_dt::operator& (unsigned long u, const sc_unsigned &v)
 
SC_API sc_signed sc_dt::operator& (int u, const sc_unsigned &v)
 
sc_unsigned sc_dt::operator& (unsigned int u, const sc_unsigned &v)
 
SC_API sc_unsigned sc_dt::operator& (const sc_unsigned &u, const sc_uint_base &v)
 
SC_API sc_signed sc_dt::operator& (const sc_unsigned &u, const sc_int_base &v)
 
SC_API sc_unsigned sc_dt::operator& (const sc_uint_base &u, const sc_unsigned &v)
 
SC_API sc_signed sc_dt::operator& (const sc_int_base &u, const sc_unsigned &v)
 
SC_API sc_signed sc_dt::operator| (const sc_unsigned &u, const sc_signed &v)
 
SC_API sc_signed sc_dt::operator| (const sc_signed &u, const sc_unsigned &v)
 
SC_API sc_unsigned sc_dt::operator| (const sc_unsigned &u, const sc_unsigned &v)
 
SC_API sc_signed sc_dt::operator| (const sc_unsigned &u, int64 v)
 
SC_API sc_unsigned sc_dt::operator| (const sc_unsigned &u, uint64 v)
 
SC_API sc_signed sc_dt::operator| (const sc_unsigned &u, long v)
 
SC_API sc_unsigned sc_dt::operator| (const sc_unsigned &u, unsigned long v)
 
sc_signed sc_dt::operator| (const sc_unsigned &u, int v)
 
sc_unsigned sc_dt::operator| (const sc_unsigned &u, unsigned int v)
 
SC_API sc_signed sc_dt::operator| (int64 u, const sc_unsigned &v)
 
SC_API sc_unsigned sc_dt::operator| (uint64 u, const sc_unsigned &v)
 
SC_API sc_signed sc_dt::operator| (long u, const sc_unsigned &v)
 
SC_API sc_unsigned sc_dt::operator| (unsigned long u, const sc_unsigned &v)
 
sc_signed sc_dt::operator| (int u, const sc_unsigned &v)
 
sc_unsigned sc_dt::operator| (unsigned int u, const sc_unsigned &v)
 
SC_API sc_unsigned sc_dt::operator| (const sc_unsigned &u, const sc_uint_base &v)
 
SC_API sc_signed sc_dt::operator| (const sc_unsigned &u, const sc_int_base &v)
 
SC_API sc_unsigned sc_dt::operator| (const sc_uint_base &u, const sc_unsigned &v)
 
SC_API sc_signed sc_dt::operator| (const sc_int_base &u, const sc_unsigned &v)
 
SC_API sc_signed sc_dt::operator^ (const sc_unsigned &u, const sc_signed &v)
 
SC_API sc_signed sc_dt::operator^ (const sc_signed &u, const sc_unsigned &v)
 
SC_API sc_unsigned sc_dt::operator^ (const sc_unsigned &u, const sc_unsigned &v)
 
SC_API sc_signed sc_dt::operator^ (const sc_unsigned &u, int64 v)
 
SC_API sc_unsigned sc_dt::operator^ (const sc_unsigned &u, uint64 v)
 
SC_API sc_signed sc_dt::operator^ (const sc_unsigned &u, long v)
 
SC_API sc_unsigned sc_dt::operator^ (const sc_unsigned &u, unsigned long v)
 
sc_signed sc_dt::operator^ (const sc_unsigned &u, int v)
 
sc_unsigned sc_dt::operator^ (const sc_unsigned &u, unsigned int v)
 
SC_API sc_signed sc_dt::operator^ (int64 u, const sc_unsigned &v)
 
SC_API sc_unsigned sc_dt::operator^ (uint64 u, const sc_unsigned &v)
 
SC_API sc_signed sc_dt::operator^ (long u, const sc_unsigned &v)
 
SC_API sc_unsigned sc_dt::operator^ (unsigned long u, const sc_unsigned &v)
 
sc_signed sc_dt::operator^ (int u, const sc_unsigned &v)
 
sc_unsigned sc_dt::operator^ (unsigned int u, const sc_unsigned &v)
 
SC_API sc_unsigned sc_dt::operator^ (const sc_unsigned &u, const sc_uint_base &v)
 
SC_API sc_signed sc_dt::operator^ (const sc_unsigned &u, const sc_int_base &v)
 
SC_API sc_unsigned sc_dt::operator^ (const sc_uint_base &u, const sc_unsigned &v)
 
SC_API sc_signed sc_dt::operator^ (const sc_int_base &u, const sc_unsigned &v)
 
SC_API sc_unsigned sc_dt::operator<< (const sc_unsigned &u, const sc_signed &v)
 
SC_API sc_signed sc_dt::operator<< (const sc_signed &u, const sc_unsigned &v)
 
SC_API sc_unsigned sc_dt::operator<< (const sc_unsigned &u, const sc_unsigned &v)
 
SC_API sc_unsigned sc_dt::operator<< (const sc_unsigned &u, int64 v)
 
SC_API sc_unsigned sc_dt::operator<< (const sc_unsigned &u, uint64 v)
 
SC_API sc_unsigned sc_dt::operator<< (const sc_unsigned &u, long v)
 
SC_API sc_unsigned sc_dt::operator<< (const sc_unsigned &u, unsigned long v)
 
sc_unsigned sc_dt::operator<< (const sc_unsigned &u, int v)
 
sc_unsigned sc_dt::operator<< (const sc_unsigned &u, unsigned int v)
 
SC_API sc_unsigned sc_dt::operator<< (const sc_unsigned &u, const sc_uint_base &v)
 
SC_API sc_unsigned sc_dt::operator<< (const sc_unsigned &u, const sc_int_base &v)
 
SC_API sc_unsigned sc_dt::operator>> (const sc_unsigned &u, const sc_signed &v)
 
SC_API sc_signed sc_dt::operator>> (const sc_signed &u, const sc_unsigned &v)
 
SC_API sc_unsigned sc_dt::operator>> (const sc_unsigned &u, const sc_unsigned &v)
 
SC_API sc_unsigned sc_dt::operator>> (const sc_unsigned &u, int64 v)
 
SC_API sc_unsigned sc_dt::operator>> (const sc_unsigned &u, uint64 v)
 
SC_API sc_unsigned sc_dt::operator>> (const sc_unsigned &u, long v)
 
SC_API sc_unsigned sc_dt::operator>> (const sc_unsigned &u, unsigned long v)
 
sc_unsigned sc_dt::operator>> (const sc_unsigned &u, int v)
 
sc_unsigned sc_dt::operator>> (const sc_unsigned &u, unsigned int v)
 
SC_API sc_unsigned sc_dt::operator>> (const sc_unsigned &, const sc_uint_base &)
 
SC_API sc_unsigned sc_dt::operator>> (const sc_unsigned &, const sc_int_base &)
 
SC_API sc_unsigned sc_dt::operator+ (const sc_unsigned &u)
 
SC_API sc_signed sc_dt::operator- (const sc_unsigned &u)
 
SC_API bool sc_dt::operator== (const sc_unsigned &u, const sc_signed &v)
 
SC_API bool sc_dt::operator== (const sc_signed &u, const sc_unsigned &v)
 
SC_API bool sc_dt::operator== (const sc_unsigned &u, const sc_unsigned &v)
 
SC_API bool sc_dt::operator== (const sc_unsigned &u, int64 v)
 
SC_API bool sc_dt::operator== (const sc_unsigned &u, uint64 v)
 
SC_API bool sc_dt::operator== (const sc_unsigned &u, long v)
 
SC_API bool sc_dt::operator== (const sc_unsigned &u, unsigned long v)
 
bool sc_dt::operator== (const sc_unsigned &u, int v)
 
bool sc_dt::operator== (const sc_unsigned &u, unsigned int v)
 
SC_API bool sc_dt::operator== (int64 u, const sc_unsigned &v)
 
SC_API bool sc_dt::operator== (uint64 u, const sc_unsigned &v)
 
SC_API bool sc_dt::operator== (long u, const sc_unsigned &v)
 
SC_API bool sc_dt::operator== (unsigned long u, const sc_unsigned &v)
 
bool sc_dt::operator== (int u, const sc_unsigned &v)
 
bool sc_dt::operator== (unsigned int u, const sc_unsigned &v)
 
SC_API bool sc_dt::operator== (const sc_unsigned &u, const sc_uint_base &v)
 
SC_API bool sc_dt::operator== (const sc_unsigned &u, const sc_int_base &v)
 
SC_API bool sc_dt::operator== (const sc_uint_base &u, const sc_unsigned &v)
 
SC_API bool sc_dt::operator== (const sc_int_base &u, const sc_unsigned &v)
 
SC_API bool sc_dt::operator!= (const sc_unsigned &u, const sc_signed &v)
 
SC_API bool sc_dt::operator!= (const sc_signed &u, const sc_unsigned &v)
 
SC_API bool sc_dt::operator!= (const sc_unsigned &u, const sc_unsigned &v)
 
SC_API bool sc_dt::operator!= (const sc_unsigned &u, int64 v)
 
SC_API bool sc_dt::operator!= (const sc_unsigned &u, uint64 v)
 
SC_API bool sc_dt::operator!= (const sc_unsigned &u, long v)
 
SC_API bool sc_dt::operator!= (const sc_unsigned &u, unsigned long v)
 
bool sc_dt::operator!= (const sc_unsigned &u, int v)
 
bool sc_dt::operator!= (const sc_unsigned &u, unsigned int v)
 
SC_API bool sc_dt::operator!= (int64 u, const sc_unsigned &v)
 
SC_API bool sc_dt::operator!= (uint64 u, const sc_unsigned &v)
 
SC_API bool sc_dt::operator!= (long u, const sc_unsigned &v)
 
SC_API bool sc_dt::operator!= (unsigned long u, const sc_unsigned &v)
 
bool sc_dt::operator!= (int u, const sc_unsigned &v)
 
bool sc_dt::operator!= (unsigned int u, const sc_unsigned &v)
 
SC_API bool sc_dt::operator!= (const sc_unsigned &u, const sc_uint_base &v)
 
SC_API bool sc_dt::operator!= (const sc_unsigned &u, const sc_int_base &v)
 
SC_API bool sc_dt::operator!= (const sc_uint_base &u, const sc_unsigned &v)
 
SC_API bool sc_dt::operator!= (const sc_int_base &u, const sc_unsigned &v)
 
SC_API bool sc_dt::operator< (const sc_unsigned &u, const sc_signed &v)
 
SC_API bool sc_dt::operator< (const sc_signed &u, const sc_unsigned &v)
 
SC_API bool sc_dt::operator< (const sc_unsigned &u, const sc_unsigned &v)
 
SC_API bool sc_dt::operator< (const sc_unsigned &u, int64 v)
 
SC_API bool sc_dt::operator< (const sc_unsigned &u, uint64 v)
 
SC_API bool sc_dt::operator< (const sc_unsigned &u, long v)
 
SC_API bool sc_dt::operator< (const sc_unsigned &u, unsigned long v)
 
bool sc_dt::operator< (const sc_unsigned &u, int v)
 
bool sc_dt::operator< (const sc_unsigned &u, unsigned int v)
 
SC_API bool sc_dt::operator< (int64 u, const sc_unsigned &v)
 
SC_API bool sc_dt::operator< (uint64 u, const sc_unsigned &v)
 
SC_API bool sc_dt::operator< (long u, const sc_unsigned &v)
 
SC_API bool sc_dt::operator< (unsigned long u, const sc_unsigned &v)
 
bool sc_dt::operator< (int u, const sc_unsigned &v)
 
bool sc_dt::operator< (unsigned int u, const sc_unsigned &v)
 
SC_API bool sc_dt::operator< (const sc_unsigned &u, const sc_uint_base &v)
 
SC_API bool sc_dt::operator< (const sc_unsigned &u, const sc_int_base &v)
 
SC_API bool sc_dt::operator< (const sc_uint_base &u, const sc_unsigned &v)
 
SC_API bool sc_dt::operator< (const sc_int_base &u, const sc_unsigned &v)
 
SC_API bool sc_dt::operator<= (const sc_unsigned &u, const sc_signed &v)
 
SC_API bool sc_dt::operator<= (const sc_signed &u, const sc_unsigned &v)
 
SC_API bool sc_dt::operator<= (const sc_unsigned &u, const sc_unsigned &v)
 
SC_API bool sc_dt::operator<= (const sc_unsigned &u, int64 v)
 
SC_API bool sc_dt::operator<= (const sc_unsigned &u, uint64 v)
 
SC_API bool sc_dt::operator<= (const sc_unsigned &u, long v)
 
SC_API bool sc_dt::operator<= (const sc_unsigned &u, unsigned long v)
 
bool sc_dt::operator<= (const sc_unsigned &u, int v)
 
bool sc_dt::operator<= (const sc_unsigned &u, unsigned int v)
 
SC_API bool sc_dt::operator<= (int64 u, const sc_unsigned &v)
 
SC_API bool sc_dt::operator<= (uint64 u, const sc_unsigned &v)
 
SC_API bool sc_dt::operator<= (long u, const sc_unsigned &v)
 
SC_API bool sc_dt::operator<= (unsigned long u, const sc_unsigned &v)
 
bool sc_dt::operator<= (int u, const sc_unsigned &v)
 
bool sc_dt::operator<= (unsigned int u, const sc_unsigned &v)
 
SC_API bool sc_dt::operator<= (const sc_unsigned &u, const sc_uint_base &v)
 
SC_API bool sc_dt::operator<= (const sc_unsigned &u, const sc_int_base &v)
 
SC_API bool sc_dt::operator<= (const sc_uint_base &u, const sc_unsigned &v)
 
SC_API bool sc_dt::operator<= (const sc_int_base &u, const sc_unsigned &v)
 
SC_API bool sc_dt::operator> (const sc_unsigned &u, const sc_signed &v)
 
SC_API bool sc_dt::operator> (const sc_signed &u, const sc_unsigned &v)
 
SC_API bool sc_dt::operator> (const sc_unsigned &u, const sc_unsigned &v)
 
SC_API bool sc_dt::operator> (const sc_unsigned &u, int64 v)
 
SC_API bool sc_dt::operator> (const sc_unsigned &u, uint64 v)
 
SC_API bool sc_dt::operator> (const sc_unsigned &u, long v)
 
SC_API bool sc_dt::operator> (const sc_unsigned &u, unsigned long v)
 
bool sc_dt::operator> (const sc_unsigned &u, int v)
 
bool sc_dt::operator> (const sc_unsigned &u, unsigned int v)
 
SC_API bool sc_dt::operator> (int64 u, const sc_unsigned &v)
 
SC_API bool sc_dt::operator> (uint64 u, const sc_unsigned &v)
 
SC_API bool sc_dt::operator> (long u, const sc_unsigned &v)
 
SC_API bool sc_dt::operator> (unsigned long u, const sc_unsigned &v)
 
bool sc_dt::operator> (int u, const sc_unsigned &v)
 
bool sc_dt::operator> (unsigned int u, const sc_unsigned &v)
 
SC_API bool sc_dt::operator> (const sc_unsigned &u, const sc_uint_base &v)
 
SC_API bool sc_dt::operator> (const sc_unsigned &u, const sc_int_base &v)
 
SC_API bool sc_dt::operator> (const sc_uint_base &u, const sc_unsigned &v)
 
SC_API bool sc_dt::operator> (const sc_int_base &u, const sc_unsigned &v)
 
SC_API bool sc_dt::operator>= (const sc_unsigned &u, const sc_signed &v)
 
SC_API bool sc_dt::operator>= (const sc_signed &u, const sc_unsigned &v)
 
SC_API bool sc_dt::operator>= (const sc_unsigned &u, const sc_unsigned &v)
 
SC_API bool sc_dt::operator>= (const sc_unsigned &u, int64 v)
 
SC_API bool sc_dt::operator>= (const sc_unsigned &u, uint64 v)
 
SC_API bool sc_dt::operator>= (const sc_unsigned &u, long v)
 
SC_API bool sc_dt::operator>= (const sc_unsigned &u, unsigned long v)
 
bool sc_dt::operator>= (const sc_unsigned &u, int v)
 
bool sc_dt::operator>= (const sc_unsigned &u, unsigned int v)
 
SC_API bool sc_dt::operator>= (int64 u, const sc_unsigned &v)
 
SC_API bool sc_dt::operator>= (uint64 u, const sc_unsigned &v)
 
SC_API bool sc_dt::operator>= (long u, const sc_unsigned &v)
 
SC_API bool sc_dt::operator>= (unsigned long u, const sc_unsigned &v)
 
bool sc_dt::operator>= (int u, const sc_unsigned &v)
 
bool sc_dt::operator>= (unsigned int u, const sc_unsigned &v)
 
SC_API bool sc_dt::operator>= (const sc_unsigned &u, const sc_uint_base &v)
 
SC_API bool sc_dt::operator>= (const sc_unsigned &u, const sc_int_base &v)
 
SC_API bool sc_dt::operator>= (const sc_uint_base &u, const sc_unsigned &v)
 
SC_API bool sc_dt::operator>= (const sc_int_base &u, const sc_unsigned &v)
 
SC_API sc_unsigned sc_dt::operator~ (const sc_unsigned &u)
 
inline ::std::ostream & sc_dt::operator<< (::std::ostream &, const sc_unsigned_bitref_r &)
 
inline ::std::istream & sc_dt::operator>> (::std::istream &, sc_unsigned_bitref &)
 
inline ::std::ostream & sc_dt::operator<< (::std::ostream &, const sc_unsigned_subref_r &)
 
inline ::std::istream & sc_dt::operator>> (::std::istream &, sc_unsigned_subref &)
 
inline ::std::ostream & sc_dt::operator<< (::std::ostream &, const sc_unsigned &)
 
inline ::std::istream & sc_dt::operator>> (::std::istream &, sc_unsigned &)
 

Detailed Description

Arbitrary precision unsigned arithmetic.

This file includes the definitions of sc_unsigned_bitref, sc_unsigned_subref, and sc_unsigned classes. The first two classes are proxy classes to reference one bit and a range of bits of a sc_unsigned number, respectively.

An sc_signed number has the sign-magnitude representation internally. However, its interface guarantees a 2's-complement representation. The sign-magnitude representation is chosen because of its efficiency: The sc_signed and sc_unsigned types are optimized for arithmetic rather than bitwise operations. For arithmetic operations, the sign-magnitude representation performs better.

It is also important to note that an sc_unsigned number with n bits is equivalent to an sc_signed non-negative number with n + 1 bits.

The implementations of sc_signed and sc_unsigned classes are almost identical: Most of the member and friend functions are defined in sc_nbcommon.cpp and sc_nbfriends.cpp so that they can be shared by both of these classes. These functions are chosed by defining a few macros before including them such as IF_SC_SIGNED and CLASS_TYPE. Our implementation choices are mostly dictated by performance considerations in that we tried to provide the most efficient sc_signed and sc_unsigned types without compromising their interface.

For the behavior of operators, we have two semantics: the old and new. The most important difference between these two semantics is that the old semantics is closer to C/C++ semantics in that the result type of a binary operator on unsigned and signed arguments is unsigned; the new semantics, on the other hand, requires the result type be signed. The new semantics is required by the VSIA C/C++ data types standard. We have implemented the new semantics.

Original Author: Ali Dasdan, Synopsys, Inc.

Definition in file sc_unsigned.h.