SystemC
2.3.2
Accellera SystemC proof-of-concept library
|
Arbitrary precision unsigned arithmetic. More...
#include "sysc/kernel/sc_object.h"
#include "sysc/datatypes/misc/sc_value_base.h"
#include "sysc/utils/sc_temporary.h"
#include "sysc/datatypes/int/sc_length_param.h"
#include "sysc/datatypes/int/sc_nbdefs.h"
#include "sysc/datatypes/int/sc_nbutils.h"
#include "sysc/datatypes/int/sc_nbexterns.h"
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 &) |
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.