クラス sc_dt::sc_signed

#include <sc_signed.h>

sc_dt::sc_signedに対する継承グラフ

Inheritance graph
[凡例]

すべてのメンバ一覧

Public メソッド

 sc_signed (int nb=sc_length_param().len())
 sc_signed (const sc_signed &v)
 sc_signed (const sc_unsigned &v)
template<class T>
 sc_signed (const sc_generic_base< T > &v)
 sc_signed (const sc_bv_base &v)
 sc_signed (const sc_lv_base &v)
 sc_signed (const sc_int_subref_r &v)
 sc_signed (const sc_uint_subref_r &v)
 sc_signed (const sc_signed_subref_r &v)
 sc_signed (const sc_unsigned_subref_r &v)
const sc_signedoperator= (const sc_signed &v)
const sc_signedoperator= (const sc_signed_subref_r &a)
template<class T>
const sc_signedoperator= (const sc_generic_base< T > &a)
const sc_signedoperator= (const sc_unsigned &v)
const sc_signedoperator= (const sc_unsigned_subref_r &a)
const sc_signedoperator= (const char *v)
const sc_signedoperator= (int64 v)
const sc_signedoperator= (uint64 v)
const sc_signedoperator= (long v)
const sc_signedoperator= (unsigned long v)
const sc_signedoperator= (int v)
const sc_signedoperator= (unsigned int v)
const sc_signedoperator= (double v)
const sc_signedoperator= (const sc_int_base &v)
const sc_signedoperator= (const sc_uint_base &v)
const sc_signedoperator= (const sc_bv_base &)
const sc_signedoperator= (const sc_lv_base &)
virtual ~sc_signed ()
sc_digitget_raw () const
virtual int concat_length (bool *xz_present_p) const
virtual bool concat_get_ctrl (sc_digit *dst_p, int low_i) const
virtual bool concat_get_data (sc_digit *dst_p, int low_i) const
virtual uint64 concat_get_uint64 () const
virtual void concat_set (int64 src, int low_i)
virtual void concat_set (const sc_signed &src, int low_i)
virtual void concat_set (const sc_unsigned &src, int low_i)
virtual void concat_set (uint64 src, int low_i)
sc_signedoperator++ ()
const sc_signed operator++ (int)
sc_signedoperator-- ()
const sc_signed operator-- (int)
void check_index (int i) const
void invalid_index (int i) const
sc_signed_bitrefoperator[] (int i)
const sc_signed_bitref_roperator[] (int i) const
sc_signed_bitrefbit (int i)
const sc_signed_bitref_rbit (int i) const
void check_range (int l, int r) const
void invalid_range (int l, int r) const
sc_signed_subrefrange (int i, int j)
const sc_signed_subref_rrange (int i, int j) const
sc_signed_subrefoperator() (int i, int j)
const sc_signed_subref_roperator() (int i, int j) const
int to_int () const
unsigned int to_uint () const
long to_long () const
unsigned long to_ulong () const
int64 to_int64 () const
uint64 to_uint64 () const
double to_double () const
const std::string to_string (sc_numrep numrep=SC_DEC) const
const std::string to_string (sc_numrep numrep, bool w_prefix) const
void print (::std::ostream &os=::std::cout) const
void scan (::std::istream &is=::std::cin)
void dump (::std::ostream &os=::std::cout) const
int length () const
bool iszero () const
bool sign () const
bool and_reduce () const
bool nand_reduce () const
bool or_reduce () const
bool nor_reduce () const
bool xor_reduce () const
bool xnor_reduce () const
bool test (int i) const
void set (int i)
void clear (int i)
void set (int i, bool v)
void invert (int i)
void reverse ()
void get_packed_rep (sc_digit *buf) const
void set_packed_rep (sc_digit *buf)
const sc_signedoperator+= (const sc_signed &v)
const sc_signedoperator+= (const sc_unsigned &v)
const sc_signedoperator+= (int64 v)
const sc_signedoperator+= (uint64 v)
const sc_signedoperator+= (long v)
const sc_signedoperator+= (unsigned long v)
const sc_signedoperator+= (int v)
const sc_signedoperator+= (unsigned int v)
const sc_signedoperator+= (const sc_int_base &v)
const sc_signedoperator+= (const sc_uint_base &v)
const sc_signedoperator-= (const sc_signed &v)
const sc_signedoperator-= (const sc_unsigned &v)
const sc_signedoperator-= (int64 v)
const sc_signedoperator-= (uint64 v)
const sc_signedoperator-= (long v)
const sc_signedoperator-= (unsigned long v)
const sc_signedoperator-= (int v)
const sc_signedoperator-= (unsigned int v)
const sc_signedoperator-= (const sc_int_base &v)
const sc_signedoperator-= (const sc_uint_base &v)
const sc_signedoperator*= (const sc_signed &v)
const sc_signedoperator*= (const sc_unsigned &v)
const sc_signedoperator*= (int64 v)
const sc_signedoperator*= (uint64 v)
const sc_signedoperator*= (long v)
const sc_signedoperator*= (unsigned long v)
const sc_signedoperator*= (int v)
const sc_signedoperator*= (unsigned int v)
const sc_signedoperator*= (const sc_int_base &v)
const sc_signedoperator*= (const sc_uint_base &v)
const sc_signedoperator/= (const sc_signed &v)
const sc_signedoperator/= (const sc_unsigned &v)
const sc_signedoperator/= (int64 v)
const sc_signedoperator/= (uint64 v)
const sc_signedoperator/= (long v)
const sc_signedoperator/= (unsigned long v)
const sc_signedoperator/= (int v)
const sc_signedoperator/= (unsigned int v)
const sc_signedoperator/= (const sc_int_base &v)
const sc_signedoperator/= (const sc_uint_base &v)
const sc_signedoperator%= (const sc_signed &v)
const sc_signedoperator%= (const sc_unsigned &v)
const sc_signedoperator%= (int64 v)
const sc_signedoperator%= (uint64 v)
const sc_signedoperator%= (long v)
const sc_signedoperator%= (unsigned long v)
const sc_signedoperator%= (int v)
const sc_signedoperator%= (unsigned int v)
const sc_signedoperator%= (const sc_int_base &v)
const sc_signedoperator%= (const sc_uint_base &v)
const sc_signedoperator &= (const sc_signed &v)
const sc_signedoperator &= (const sc_unsigned &v)
const sc_signedoperator &= (int64 v)
const sc_signedoperator &= (uint64 v)
const sc_signedoperator &= (long v)
const sc_signedoperator &= (unsigned long v)
const sc_signedoperator &= (int v)
const sc_signedoperator &= (unsigned int v)
const sc_signedoperator &= (const sc_int_base &v)
const sc_signedoperator &= (const sc_uint_base &v)
const sc_signedoperator|= (const sc_signed &v)
const sc_signedoperator|= (const sc_unsigned &v)
const sc_signedoperator|= (int64 v)
const sc_signedoperator|= (uint64 v)
const sc_signedoperator|= (long v)
const sc_signedoperator|= (unsigned long v)
const sc_signedoperator|= (int v)
const sc_signedoperator|= (unsigned int v)
const sc_signedoperator|= (const sc_int_base &v)
const sc_signedoperator|= (const sc_uint_base &v)
const sc_signedoperator^= (const sc_signed &v)
const sc_signedoperator^= (const sc_unsigned &v)
const sc_signedoperator^= (int64 v)
const sc_signedoperator^= (uint64 v)
const sc_signedoperator^= (long v)
const sc_signedoperator^= (unsigned long v)
const sc_signedoperator^= (int v)
const sc_signedoperator^= (unsigned int v)
const sc_signedoperator^= (const sc_int_base &v)
const sc_signedoperator^= (const sc_uint_base &v)
const sc_signedoperator<<= (const sc_signed &v)
const sc_signedoperator<<= (const sc_unsigned &v)
const sc_signedoperator<<= (int64 v)
const sc_signedoperator<<= (uint64 v)
const sc_signedoperator<<= (long v)
const sc_signedoperator<<= (unsigned long v)
const sc_signedoperator<<= (int v)
const sc_signedoperator<<= (unsigned int v)
const sc_signedoperator<<= (const sc_int_base &v)
const sc_signedoperator<<= (const sc_uint_base &v)
const sc_signedoperator>>= (const sc_signed &v)
const sc_signedoperator>>= (const sc_unsigned &v)
const sc_signedoperator>>= (int64 v)
const sc_signedoperator>>= (uint64 v)
const sc_signedoperator>>= (long v)
const sc_signedoperator>>= (unsigned long v)
const sc_signedoperator>>= (int v)
const sc_signedoperator>>= (unsigned int v)
const sc_signedoperator>>= (const sc_int_base &v)
const sc_signedoperator>>= (const sc_uint_base &v)

Private 型

typedef bool elemtype

Private メソッド

 sc_signed (const sc_signed &v, small_type s)
 sc_signed (const sc_unsigned &v, small_type s)
 sc_signed (small_type s, int nb, int nd, sc_digit *d, bool alloc=true)
 sc_signed (const sc_signed *u, int l, int r)
 sc_signed (const sc_unsigned *u, int l, int r)
small_type default_sign () const
int num_bits (int nb) const
bool check_if_outside (int bit_num) const
void copy_digits (int nb, int nd, const sc_digit *d)
void makezero ()
void convert_2C_to_SM ()
void convert_SM_to_2C_to_SM ()
void convert_SM_to_2C ()

Private 変数

small_type sgn
int nbits
int ndigits
sc_digitdigit

フレンド

class sc_concatref
class sc_signed_bitref_r
class sc_signed_bitref
class sc_signed_subref_r
class sc_signed_subref
class sc_unsigned
class sc_unsigned_subref
sc_signed operator+ (const sc_unsigned &u, const sc_signed &v)
sc_signed operator+ (const sc_signed &u, const sc_unsigned &v)
sc_signed operator+ (const sc_unsigned &u, int64 v)
sc_signed operator+ (const sc_unsigned &u, long v)
sc_signed operator+ (const sc_unsigned &u, int v)
sc_signed operator+ (int64 u, const sc_unsigned &v)
sc_signed operator+ (long u, const sc_unsigned &v)
sc_signed operator+ (int u, const sc_unsigned &v)
sc_signed operator+ (const sc_signed &u, const sc_signed &v)
sc_signed operator+ (const sc_signed &u, int64 v)
sc_signed operator+ (const sc_signed &u, uint64 v)
sc_signed operator+ (const sc_signed &u, long v)
sc_signed operator+ (const sc_signed &u, unsigned long v)
sc_signed operator+ (const sc_signed &u, int v)
sc_signed operator+ (const sc_signed &u, unsigned int v)
sc_signed operator+ (int64 u, const sc_signed &v)
sc_signed operator+ (uint64 u, const sc_signed &v)
sc_signed operator+ (long u, const sc_signed &v)
sc_signed operator+ (unsigned long u, const sc_signed &v)
sc_signed operator+ (int u, const sc_signed &v)
sc_signed operator+ (unsigned int u, const sc_signed &v)
sc_signed operator+ (const sc_unsigned &u, const sc_int_base &v)
sc_signed operator+ (const sc_int_base &u, const sc_unsigned &v)
sc_signed operator+ (const sc_signed &u, const sc_int_base &v)
sc_signed operator+ (const sc_signed &u, const sc_uint_base &v)
sc_signed operator+ (const sc_int_base &u, const sc_signed &v)
sc_signed operator+ (const sc_uint_base &u, const sc_signed &v)
sc_signed operator- (const sc_unsigned &u, const sc_signed &v)
sc_signed operator- (const sc_signed &u, const sc_unsigned &v)
sc_signed operator- (const sc_unsigned &u, const sc_unsigned &v)
sc_signed operator- (const sc_unsigned &u, int64 v)
sc_signed operator- (const sc_unsigned &u, uint64 v)
sc_signed operator- (const sc_unsigned &u, long v)
sc_signed operator- (const sc_unsigned &u, unsigned long v)
sc_signed operator- (const sc_unsigned &u, int v)
sc_signed operator- (const sc_unsigned &u, unsigned int v)
sc_signed operator- (int64 u, const sc_unsigned &v)
sc_signed operator- (uint64 u, const sc_unsigned &v)
sc_signed operator- (long u, const sc_unsigned &v)
sc_signed operator- (unsigned long u, const sc_unsigned &v)
sc_signed operator- (int u, const sc_unsigned &v)
sc_signed operator- (unsigned int u, const sc_unsigned &v)
sc_signed operator- (const sc_signed &u, const sc_signed &v)
sc_signed operator- (const sc_signed &u, int64 v)
sc_signed operator- (const sc_signed &u, uint64 v)
sc_signed operator- (const sc_signed &u, long v)
sc_signed operator- (const sc_signed &u, unsigned long v)
sc_signed operator- (const sc_signed &u, int v)
sc_signed operator- (const sc_signed &u, unsigned int v)
sc_signed operator- (int64 u, const sc_signed &v)
sc_signed operator- (uint64 u, const sc_signed &v)
sc_signed operator- (long u, const sc_signed &v)
sc_signed operator- (unsigned long u, const sc_signed &v)
sc_signed operator- (int u, const sc_signed &v)
sc_signed operator- (unsigned int u, const sc_signed &v)
sc_signed operator- (const sc_unsigned &u, const sc_int_base &v)
sc_signed operator- (const sc_unsigned &u, const sc_uint_base &v)
sc_signed operator- (const sc_int_base &u, const sc_unsigned &v)
sc_signed operator- (const sc_uint_base &u, const sc_unsigned &v)
sc_signed operator- (const sc_signed &u, const sc_int_base &v)
sc_signed operator- (const sc_signed &u, const sc_uint_base &v)
sc_signed operator- (const sc_int_base &u, const sc_signed &v)
sc_signed operator- (const sc_uint_base &u, const sc_signed &v)
sc_signed operator* (const sc_unsigned &u, const sc_signed &v)
sc_signed operator* (const sc_signed &u, const sc_unsigned &v)
sc_signed operator* (const sc_unsigned &u, int64 v)
sc_signed operator* (const sc_unsigned &u, long v)
sc_signed operator* (const sc_unsigned &u, int v)
sc_signed operator* (int64 u, const sc_unsigned &v)
sc_signed operator* (long u, const sc_unsigned &v)
sc_signed operator* (int u, const sc_unsigned &v)
sc_signed operator* (const sc_signed &u, const sc_signed &v)
sc_signed operator* (const sc_signed &u, int64 v)
sc_signed operator* (const sc_signed &u, uint64 v)
sc_signed operator* (const sc_signed &u, long v)
sc_signed operator* (const sc_signed &u, unsigned long v)
sc_signed operator* (const sc_signed &u, int v)
sc_signed operator* (const sc_signed &u, unsigned int v)
sc_signed operator* (int64 u, const sc_signed &v)
sc_signed operator* (uint64 u, const sc_signed &v)
sc_signed operator* (long u, const sc_signed &v)
sc_signed operator* (unsigned long u, const sc_signed &v)
sc_signed operator* (int u, const sc_signed &v)
sc_signed operator* (unsigned int u, const sc_signed &v)
sc_signed operator* (const sc_unsigned &u, const sc_int_base &v)
sc_signed operator* (const sc_int_base &u, const sc_unsigned &v)
sc_signed operator* (const sc_signed &u, const sc_int_base &v)
sc_signed operator* (const sc_signed &u, const sc_uint_base &v)
sc_signed operator* (const sc_int_base &u, const sc_signed &v)
sc_signed operator* (const sc_uint_base &u, const sc_signed &v)
sc_signed operator/ (const sc_unsigned &u, const sc_signed &v)
sc_signed operator/ (const sc_signed &u, const sc_unsigned &v)
sc_signed operator/ (const sc_unsigned &u, int64 v)
sc_signed operator/ (const sc_unsigned &u, long v)
sc_signed operator/ (const sc_unsigned &u, int v)
sc_signed operator/ (int64 u, const sc_unsigned &v)
sc_signed operator/ (long u, const sc_unsigned &v)
sc_signed operator/ (int u, const sc_unsigned &v)
sc_signed operator/ (const sc_signed &u, const sc_signed &v)
sc_signed operator/ (const sc_signed &u, int64 v)
sc_signed operator/ (const sc_signed &u, uint64 v)
sc_signed operator/ (const sc_signed &u, long v)
sc_signed operator/ (const sc_signed &u, unsigned long v)
sc_signed operator/ (const sc_signed &u, int v)
sc_signed operator/ (const sc_signed &u, unsigned int v)
sc_signed operator/ (int64 u, const sc_signed &v)
sc_signed operator/ (uint64 u, const sc_signed &v)
sc_signed operator/ (long u, const sc_signed &v)
sc_signed operator/ (unsigned long u, const sc_signed &v)
sc_signed operator/ (int u, const sc_signed &v)
sc_signed operator/ (unsigned int u, const sc_signed &v)
sc_signed operator/ (const sc_unsigned &u, const sc_int_base &v)
sc_signed operator/ (const sc_int_base &u, const sc_unsigned &v)
sc_signed operator/ (const sc_signed &u, const sc_int_base &v)
sc_signed operator/ (const sc_signed &u, const sc_uint_base &v)
sc_signed operator/ (const sc_int_base &u, const sc_signed &v)
sc_signed operator/ (const sc_uint_base &u, const sc_signed &v)
sc_signed operator% (const sc_unsigned &u, const sc_signed &v)
sc_signed operator% (const sc_signed &u, const sc_unsigned &v)
sc_signed operator% (const sc_unsigned &u, int64 v)
sc_signed operator% (const sc_unsigned &u, long v)
sc_signed operator% (const sc_unsigned &u, int v)
sc_signed operator% (int64 u, const sc_unsigned &v)
sc_signed operator% (long u, const sc_unsigned &v)
sc_signed operator% (int u, const sc_unsigned &v)
sc_signed operator% (const sc_signed &u, const sc_signed &v)
sc_signed operator% (const sc_signed &u, int64 v)
sc_signed operator% (const sc_signed &u, uint64 v)
sc_signed operator% (const sc_signed &u, long v)
sc_signed operator% (const sc_signed &u, unsigned long v)
sc_signed operator% (const sc_signed &u, int v)
sc_signed operator% (const sc_signed &u, unsigned int v)
sc_signed operator% (int64 u, const sc_signed &v)
sc_signed operator% (uint64 u, const sc_signed &v)
sc_signed operator% (long u, const sc_signed &v)
sc_signed operator% (unsigned long u, const sc_signed &v)
sc_signed operator% (int u, const sc_signed &v)
sc_signed operator% (unsigned int u, const sc_signed &v)
sc_signed operator% (const sc_unsigned &u, const sc_int_base &v)
sc_signed operator% (const sc_int_base &u, const sc_unsigned &v)
sc_signed operator% (const sc_signed &u, const sc_int_base &v)
sc_signed operator% (const sc_signed &u, const sc_uint_base &v)
sc_signed operator% (const sc_int_base &u, const sc_signed &v)
sc_signed operator% (const sc_uint_base &u, const sc_signed &v)
sc_signed operator & (const sc_unsigned &u, const sc_signed &v)
sc_signed operator & (const sc_signed &u, const sc_unsigned &v)
sc_signed operator & (const sc_unsigned &u, int64 v)
sc_signed operator & (const sc_unsigned &u, long v)
sc_signed operator & (const sc_unsigned &u, int v)
sc_signed operator & (int64 u, const sc_unsigned &v)
sc_signed operator & (long u, const sc_unsigned &v)
sc_signed operator & (int u, const sc_unsigned &v)
sc_signed operator & (const sc_signed &u, const sc_signed &v)
sc_signed operator & (const sc_signed &u, int64 v)
sc_signed operator & (const sc_signed &u, uint64 v)
sc_signed operator & (const sc_signed &u, long v)
sc_signed operator & (const sc_signed &u, unsigned long v)
sc_signed operator & (const sc_signed &u, int v)
sc_signed operator & (const sc_signed &u, unsigned int v)
sc_signed operator & (int64 u, const sc_signed &v)
sc_signed operator & (uint64 u, const sc_signed &v)
sc_signed operator & (long u, const sc_signed &v)
sc_signed operator & (unsigned long u, const sc_signed &v)
sc_signed operator & (int u, const sc_signed &v)
sc_signed operator & (unsigned int u, const sc_signed &v)
sc_signed operator & (const sc_unsigned &u, const sc_int_base &v)
sc_signed operator & (const sc_int_base &u, const sc_unsigned &v)
sc_signed operator & (const sc_signed &u, const sc_int_base &v)
sc_signed operator & (const sc_signed &u, const sc_uint_base &v)
sc_signed operator & (const sc_int_base &u, const sc_signed &v)
sc_signed operator & (const sc_uint_base &u, const sc_signed &v)
sc_signed operator| (const sc_unsigned &u, const sc_signed &v)
sc_signed operator| (const sc_signed &u, const sc_unsigned &v)
sc_signed operator| (const sc_unsigned &u, int64 v)
sc_signed operator| (const sc_unsigned &u, long v)
sc_signed operator| (const sc_unsigned &u, int v)
sc_signed operator| (int64 u, const sc_unsigned &v)
sc_signed operator| (long u, const sc_unsigned &v)
sc_signed operator| (int u, const sc_unsigned &v)
sc_signed operator| (const sc_signed &u, const sc_signed &v)
sc_signed operator| (const sc_signed &u, int64 v)
sc_signed operator| (const sc_signed &u, uint64 v)
sc_signed operator| (const sc_signed &u, long v)
sc_signed operator| (const sc_signed &u, unsigned long v)
sc_signed operator| (const sc_signed &u, int v)
sc_signed operator| (const sc_signed &u, unsigned int v)
sc_signed operator| (int64 u, const sc_signed &v)
sc_signed operator| (uint64 u, const sc_signed &v)
sc_signed operator| (long u, const sc_signed &v)
sc_signed operator| (unsigned long u, const sc_signed &v)
sc_signed operator| (int u, const sc_signed &v)
sc_signed operator| (unsigned int u, const sc_signed &v)
sc_signed operator| (const sc_unsigned &u, const sc_int_base &v)
sc_signed operator| (const sc_int_base &u, const sc_unsigned &v)
sc_signed operator| (const sc_signed &u, const sc_int_base &v)
sc_signed operator| (const sc_signed &u, const sc_uint_base &v)
sc_signed operator| (const sc_int_base &u, const sc_signed &v)
sc_signed operator| (const sc_uint_base &u, const sc_signed &v)
sc_signed operator^ (const sc_unsigned &u, const sc_signed &v)
sc_signed operator^ (const sc_signed &u, const sc_unsigned &v)
sc_signed operator^ (const sc_unsigned &u, int64 v)
sc_signed operator^ (const sc_unsigned &u, long v)
sc_signed operator^ (const sc_unsigned &u, int v)
sc_signed operator^ (int64 u, const sc_unsigned &v)
sc_signed operator^ (long u, const sc_unsigned &v)
sc_signed operator^ (int u, const sc_unsigned &v)
sc_signed operator^ (const sc_signed &u, const sc_signed &v)
sc_signed operator^ (const sc_signed &u, int64 v)
sc_signed operator^ (const sc_signed &u, uint64 v)
sc_signed operator^ (const sc_signed &u, long v)
sc_signed operator^ (const sc_signed &u, unsigned long v)
sc_signed operator^ (const sc_signed &u, int v)
sc_signed operator^ (const sc_signed &u, unsigned int v)
sc_signed operator^ (int64 u, const sc_signed &v)
sc_signed operator^ (uint64 u, const sc_signed &v)
sc_signed operator^ (long u, const sc_signed &v)
sc_signed operator^ (unsigned long u, const sc_signed &v)
sc_signed operator^ (int u, const sc_signed &v)
sc_signed operator^ (unsigned int u, const sc_signed &v)
sc_signed operator^ (const sc_unsigned &u, const sc_int_base &v)
sc_signed operator^ (const sc_int_base &u, const sc_unsigned &v)
sc_signed operator^ (const sc_signed &u, const sc_int_base &v)
sc_signed operator^ (const sc_signed &u, const sc_uint_base &v)
sc_signed operator^ (const sc_int_base &u, const sc_signed &v)
sc_signed operator^ (const sc_uint_base &u, const sc_signed &v)
sc_unsigned operator<< (const sc_unsigned &u, const sc_signed &v)
sc_signed operator<< (const sc_signed &u, const sc_unsigned &v)
sc_signed operator<< (const sc_signed &u, const sc_signed &v)
sc_signed operator<< (const sc_signed &u, int64 v)
sc_signed operator<< (const sc_signed &u, uint64 v)
sc_signed operator<< (const sc_signed &u, long v)
sc_signed operator<< (const sc_signed &u, unsigned long v)
sc_signed operator<< (const sc_signed &u, int v)
sc_signed operator<< (const sc_signed &u, unsigned int v)
sc_signed operator<< (const sc_signed &u, const sc_int_base &v)
sc_signed operator<< (const sc_signed &u, const sc_uint_base &v)
sc_unsigned operator>> (const sc_unsigned &u, const sc_signed &v)
sc_signed operator>> (const sc_signed &u, const sc_unsigned &v)
sc_signed operator>> (const sc_signed &u, const sc_signed &v)
sc_signed operator>> (const sc_signed &u, int64 v)
sc_signed operator>> (const sc_signed &u, uint64 v)
sc_signed operator>> (const sc_signed &u, long v)
sc_signed operator>> (const sc_signed &u, unsigned long v)
sc_signed operator>> (const sc_signed &u, int v)
sc_signed operator>> (const sc_signed &u, unsigned int v)
sc_signed operator>> (const sc_signed &u, const sc_int_base &v)
sc_signed operator>> (const sc_signed &u, const sc_uint_base &v)
sc_signed operator+ (const sc_signed &u)
sc_signed operator- (const sc_signed &u)
sc_signed operator- (const sc_unsigned &u)
bool operator== (const sc_unsigned &u, const sc_signed &v)
bool operator== (const sc_signed &u, const sc_unsigned &v)
bool operator== (const sc_signed &u, const sc_signed &v)
bool operator== (const sc_signed &u, int64 v)
bool operator== (const sc_signed &u, uint64 v)
bool operator== (const sc_signed &u, long v)
bool operator== (const sc_signed &u, unsigned long v)
bool operator== (const sc_signed &u, int v)
bool operator== (const sc_signed &u, unsigned int v)
bool operator== (int64 u, const sc_signed &v)
bool operator== (uint64 u, const sc_signed &v)
bool operator== (long u, const sc_signed &v)
bool operator== (unsigned long u, const sc_signed &v)
bool operator== (int u, const sc_signed &v)
bool operator== (unsigned int u, const sc_signed &v)
bool operator== (const sc_signed &u, const sc_int_base &v)
bool operator== (const sc_signed &u, const sc_uint_base &v)
bool operator== (const sc_int_base &u, const sc_signed &v)
bool operator== (const sc_uint_base &u, const sc_signed &v)
bool operator!= (const sc_unsigned &u, const sc_signed &v)
bool operator!= (const sc_signed &u, const sc_unsigned &v)
bool operator!= (const sc_signed &u, const sc_signed &v)
bool operator!= (const sc_signed &u, int64 v)
bool operator!= (const sc_signed &u, uint64 v)
bool operator!= (const sc_signed &u, long v)
bool operator!= (const sc_signed &u, unsigned long v)
bool operator!= (const sc_signed &u, int v)
bool operator!= (const sc_signed &u, unsigned int v)
bool operator!= (int64 u, const sc_signed &v)
bool operator!= (uint64 u, const sc_signed &v)
bool operator!= (long u, const sc_signed &v)
bool operator!= (unsigned long u, const sc_signed &v)
bool operator!= (int u, const sc_signed &v)
bool operator!= (unsigned int u, const sc_signed &v)
bool operator!= (const sc_signed &u, const sc_int_base &v)
bool operator!= (const sc_signed &u, const sc_uint_base &v)
bool operator!= (const sc_int_base &u, const sc_signed &v)
bool operator!= (const sc_uint_base &u, const sc_signed &v)
bool operator< (const sc_unsigned &u, const sc_signed &v)
bool operator< (const sc_signed &u, const sc_unsigned &v)
bool operator< (const sc_signed &u, const sc_signed &v)
bool operator< (const sc_signed &u, int64 v)
bool operator< (const sc_signed &u, uint64 v)
bool operator< (const sc_signed &u, long v)
bool operator< (const sc_signed &u, unsigned long v)
bool operator< (const sc_signed &u, int v)
bool operator< (const sc_signed &u, unsigned int v)
bool operator< (int64 u, const sc_signed &v)
bool operator< (uint64 u, const sc_signed &v)
bool operator< (long u, const sc_signed &v)
bool operator< (unsigned long u, const sc_signed &v)
bool operator< (int u, const sc_signed &v)
bool operator< (unsigned int u, const sc_signed &v)
bool operator< (const sc_signed &u, const sc_int_base &v)
bool operator< (const sc_signed &u, const sc_uint_base &v)
bool operator< (const sc_int_base &u, const sc_signed &v)
bool operator< (const sc_uint_base &u, const sc_signed &v)
bool operator<= (const sc_unsigned &u, const sc_signed &v)
bool operator<= (const sc_signed &u, const sc_unsigned &v)
bool operator<= (const sc_signed &u, const sc_signed &v)
bool operator<= (const sc_signed &u, int64 v)
bool operator<= (const sc_signed &u, uint64 v)
bool operator<= (const sc_signed &u, long v)
bool operator<= (const sc_signed &u, unsigned long v)
bool operator<= (const sc_signed &u, int v)
bool operator<= (const sc_signed &u, unsigned int v)
bool operator<= (int64 u, const sc_signed &v)
bool operator<= (uint64 u, const sc_signed &v)
bool operator<= (long u, const sc_signed &v)
bool operator<= (unsigned long u, const sc_signed &v)
bool operator<= (int u, const sc_signed &v)
bool operator<= (unsigned int u, const sc_signed &v)
bool operator<= (const sc_signed &u, const sc_int_base &v)
bool operator<= (const sc_signed &u, const sc_uint_base &v)
bool operator<= (const sc_int_base &u, const sc_signed &v)
bool operator<= (const sc_uint_base &u, const sc_signed &v)
bool operator> (const sc_unsigned &u, const sc_signed &v)
bool operator> (const sc_signed &u, const sc_unsigned &v)
bool operator> (const sc_signed &u, const sc_signed &v)
bool operator> (const sc_signed &u, int64 v)
bool operator> (const sc_signed &u, uint64 v)
bool operator> (const sc_signed &u, long v)
bool operator> (const sc_signed &u, unsigned long v)
bool operator> (const sc_signed &u, int v)
bool operator> (const sc_signed &u, unsigned int v)
bool operator> (int64 u, const sc_signed &v)
bool operator> (uint64 u, const sc_signed &v)
bool operator> (long u, const sc_signed &v)
bool operator> (unsigned long u, const sc_signed &v)
bool operator> (int u, const sc_signed &v)
bool operator> (unsigned int u, const sc_signed &v)
bool operator> (const sc_signed &u, const sc_int_base &v)
bool operator> (const sc_signed &u, const sc_uint_base &v)
bool operator> (const sc_int_base &u, const sc_signed &v)
bool operator> (const sc_uint_base &u, const sc_signed &v)
bool operator>= (const sc_unsigned &u, const sc_signed &v)
bool operator>= (const sc_signed &u, const sc_unsigned &v)
bool operator>= (const sc_signed &u, const sc_signed &v)
bool operator>= (const sc_signed &u, int64 v)
bool operator>= (const sc_signed &u, uint64 v)
bool operator>= (const sc_signed &u, long v)
bool operator>= (const sc_signed &u, unsigned long v)
bool operator>= (const sc_signed &u, int v)
bool operator>= (const sc_signed &u, unsigned int v)
bool operator>= (int64 u, const sc_signed &v)
bool operator>= (uint64 u, const sc_signed &v)
bool operator>= (long u, const sc_signed &v)
bool operator>= (unsigned long u, const sc_signed &v)
bool operator>= (int u, const sc_signed &v)
bool operator>= (unsigned int u, const sc_signed &v)
bool operator>= (const sc_signed &u, const sc_int_base &v)
bool operator>= (const sc_signed &u, const sc_uint_base &v)
bool operator>= (const sc_int_base &u, const sc_signed &v)
bool operator>= (const sc_uint_base &u, const sc_signed &v)
sc_signed operator~ (const sc_signed &u)
sc_signed add_signed_friend (small_type us, int unb, int und, const sc_digit *ud, small_type vs, int vnb, int vnd, const sc_digit *vd)
sc_signed sub_signed_friend (small_type us, int unb, int und, const sc_digit *ud, small_type vs, int vnb, int vnd, const sc_digit *vd)
sc_signed mul_signed_friend (small_type s, int unb, int und, const sc_digit *ud, int vnb, int vnd, const sc_digit *vd)
sc_signed div_signed_friend (small_type s, int unb, int und, const sc_digit *ud, int vnb, int vnd, const sc_digit *vd)
sc_signed mod_signed_friend (small_type us, int unb, int und, const sc_digit *ud, int vnb, int vnd, const sc_digit *vd)
sc_signed and_signed_friend (small_type us, int unb, int und, const sc_digit *ud, small_type vs, int vnb, int vnd, const sc_digit *vd)
sc_signed or_signed_friend (small_type us, int unb, int und, const sc_digit *ud, small_type vs, int vnb, int vnd, const sc_digit *vd)
sc_signed xor_signed_friend (small_type us, int unb, int und, const sc_digit *ud, small_type vs, int vnb, int vnd, const sc_digit *vd)


説明

sc_signed.h1074 行で定義されています。


型定義

typedef bool sc_dt::sc_signed::elemtype [private]

sc_signed.h1085 行で定義されています。


コンストラクタとデストラクタ

sc_dt::sc_signed::sc_signed ( int  nb = sc_length_param().len()  )  [explicit]

sc_dt::sc_signed::sc_signed ( const sc_signed v  ) 

sc_dt::sc_signed::sc_signed ( const sc_unsigned v  ) 

template<class T>
sc_dt::sc_signed::sc_signed ( const sc_generic_base< T > &  v  )  [inline, explicit]

sc_signed.h2325 行で定義されています。

02326 {
02327     int nb = v->length();
02328     sgn = default_sign();
02329     if( nb > 0 ) {
02330         nbits = num_bits( nb );
02331     } else {
02332         char msg[BUFSIZ];
02333         std::sprintf( msg,
02334                     "sc_unsigned( sc_generic_base<T> ) : nb = %d is not valid", nb);
02335         SC_REPORT_ERROR( sc_core::SC_ID_INIT_FAILED_, msg );
02336     }
02337     ndigits = DIV_CEIL(nbits);
02338 #   ifdef SC_MAX_NBITS
02339         test_bound(nb);
02340 #    else
02341         digit = new sc_digit[ndigits];
02342 #    endif
02343     makezero();
02344     v->to_sc_signed(*this);
02345 }

sc_dt::sc_signed::sc_signed ( const sc_bv_base v  )  [explicit]

sc_dt::sc_signed::sc_signed ( const sc_lv_base v  )  [explicit]

sc_dt::sc_signed::sc_signed ( const sc_int_subref_r v  )  [explicit]

sc_dt::sc_signed::sc_signed ( const sc_uint_subref_r v  )  [explicit]

sc_dt::sc_signed::sc_signed ( const sc_signed_subref_r v  )  [explicit]

sc_dt::sc_signed::sc_signed ( const sc_unsigned_subref_r v  )  [explicit]

virtual sc_dt::sc_signed::~sc_signed (  )  [inline, virtual]

sc_signed.h1144 行で定義されています。

01145         {
01146 #ifndef SC_MAX_NBITS
01147             delete [] digit;
01148 #endif
01149         }

sc_dt::sc_signed::sc_signed ( const sc_signed v,
small_type  s 
) [private]

sc_dt::sc_signed::sc_signed ( const sc_unsigned v,
small_type  s 
) [private]

sc_dt::sc_signed::sc_signed ( small_type  s,
int  nb,
int  nd,
sc_digit d,
bool  alloc = true 
) [private]

sc_dt::sc_signed::sc_signed ( const sc_signed u,
int  l,
int  r 
) [private]

sc_dt::sc_signed::sc_signed ( const sc_unsigned u,
int  l,
int  r 
) [private]


関数

const sc_signed& sc_dt::sc_signed::operator= ( const sc_signed v  ) 

sc_dt::sc_bigint< W >で再定義されています。

const sc_signed& sc_dt::sc_signed::operator= ( const sc_signed_subref_r a  ) 

template<class T>
const sc_signed& sc_dt::sc_signed::operator= ( const sc_generic_base< T > &  a  )  [inline]

sc_dt::sc_bigint< W >で再定義されています。

sc_signed.h1109 行で定義されています。

01110         { a->to_sc_signed(*this); return *this; }

const sc_signed& sc_dt::sc_signed::operator= ( const sc_unsigned v  ) 

sc_dt::sc_bigint< W >で再定義されています。

const sc_signed& sc_dt::sc_signed::operator= ( const sc_unsigned_subref_r a  ) 

const sc_signed & sc_dt::sc_signed::operator= ( const char *  v  ) 

sc_dt::sc_bigint< W >で再定義されています。

sc_signed.cpp448 行で定義されています。

00449 {
00450     if( a == 0 ) {
00451         SC_REPORT_ERROR( sc_core::SC_ID_CONVERSION_FAILED_,
00452                          "character string is zero" );
00453     } 
00454     if( *a == 0 ) {
00455         SC_REPORT_ERROR( sc_core::SC_ID_CONVERSION_FAILED_,
00456                          "character string is empty" );
00457     }
00458     try {
00459         int len = length();
00460         sc_fix aa( a, len, len, SC_TRN, SC_WRAP, 0, SC_ON );
00461         return this->operator = ( aa );
00462     } catch( sc_core::sc_report ) {
00463         char msg[BUFSIZ];
00464         std::sprintf( msg, "character string '%s' is not valid", a );
00465         SC_REPORT_ERROR( sc_core::SC_ID_CONVERSION_FAILED_, msg );
00466         // never reached
00467     }
00468     return *this;
00469 }

const sc_signed & sc_dt::sc_signed::operator= ( int64  v  ) 

sc_dt::sc_bigint< W >で再定義されています。

sc_signed.cpp472 行で定義されています。

00473 {
00474   sgn = get_sign(v);
00475   // v >= 0 now.
00476   if (sgn == SC_ZERO)
00477     vec_zero(ndigits, digit);
00478   else {
00479     from_uint(ndigits, digit, (uint64) v);
00480     if (nbits <= (int)BITS_PER_INT64)
00481       convert_SM_to_2C_to_SM();
00482   }
00483   return *this;
00484 }

const sc_signed & sc_dt::sc_signed::operator= ( uint64  v  ) 

sc_dt::sc_bigint< W >で再定義されています。

sc_signed.cpp487 行で定義されています。

00488 {
00489   sgn = get_sign(v);
00490   if (sgn == SC_ZERO)
00491     vec_zero(ndigits, digit);
00492   else {
00493     from_uint(ndigits, digit, v);
00494     if (nbits <= (int)BITS_PER_INT64)
00495       convert_SM_to_2C_to_SM();
00496   }
00497   return *this;
00498 }

const sc_signed & sc_dt::sc_signed::operator= ( long  v  ) 

sc_dt::sc_bigint< W >で再定義されています。

sc_signed.cpp501 行で定義されています。

00502 {
00503   sgn = get_sign(v);
00504   // v >= 0 now.
00505   if (sgn == SC_ZERO)
00506     vec_zero(ndigits, digit);
00507   else {
00508     from_uint(ndigits, digit, (unsigned long) v);
00509     if (nbits <= (int)BITS_PER_LONG)
00510       convert_SM_to_2C_to_SM();
00511   }
00512   return *this;
00513 }

const sc_signed & sc_dt::sc_signed::operator= ( unsigned long  v  ) 

sc_dt::sc_bigint< W >で再定義されています。

sc_signed.cpp516 行で定義されています。

00517 {
00518   sgn = get_sign(v);
00519   if (sgn == SC_ZERO)
00520     vec_zero(ndigits, digit);
00521   else {
00522     from_uint(ndigits, digit, v);
00523     if (nbits <= (int)BITS_PER_LONG)
00524       convert_SM_to_2C_to_SM();
00525   }
00526   return *this;
00527 }

const sc_signed& sc_dt::sc_signed::operator= ( int  v  )  [inline]

sc_dt::sc_bigint< W >で再定義されています。

sc_signed.h1121 行で定義されています。

01122         { return operator=((long) v); }

const sc_signed& sc_dt::sc_signed::operator= ( unsigned int  v  )  [inline]

sc_dt::sc_bigint< W >で再定義されています。

sc_signed.h1124 行で定義されています。

01125         { return operator=((unsigned long) v); }

const sc_signed & sc_dt::sc_signed::operator= ( double  v  ) 

sc_dt::sc_bigint< W >で再定義されています。

sc_signed.cpp530 行で定義されています。

00531 {
00532   is_bad_double(v);
00533   if (v < 0) {
00534     v = -v;
00535     sgn = SC_NEG;
00536   }
00537   else
00538     sgn = SC_POS;
00539   register int i = 0;
00540   while (floor(v) && (i < ndigits)) {
00541 #ifndef WIN32
00542     digit[i++] = (sc_digit) floor(remainder(v, DIGIT_RADIX));
00543 #else
00544     digit[i++] = (sc_digit) floor(fmod(v, DIGIT_RADIX));
00545 #endif
00546     v /= DIGIT_RADIX;
00547   }
00548   vec_zero(i, ndigits, digit);
00549   convert_SM_to_2C_to_SM();
00550   return *this;  
00551 }

const sc_signed & sc_dt::sc_signed::operator= ( const sc_int_base v  ) 

sc_dt::sc_bigint< W >で再定義されています。

sc_signed.cpp611 行で定義されています。

00612 { return operator=((int64) v); }

const sc_signed & sc_dt::sc_signed::operator= ( const sc_uint_base v  ) 

sc_dt::sc_bigint< W >で再定義されています。

sc_signed.cpp860 行で定義されています。

00861 { return operator=((uint64) v); }

const sc_signed & sc_dt::sc_signed::operator= ( const sc_bv_base v  ) 

sc_dt::sc_bigint< W >で再定義されています。

sc_signed.cpp557 行で定義されています。

00558 {
00559     int minlen = sc_min( nbits, v.length() );
00560     int i = 0;
00561     for( ; i < minlen; ++ i ) {
00562         safe_set( i, v.get_bit( i ), digit );
00563     }
00564     for( ; i < nbits; ++ i ) {
00565         safe_set( i, 0, digit );  // zero-extend
00566     }
00567     convert_2C_to_SM();
00568     return *this;
00569 }

const sc_signed & sc_dt::sc_signed::operator= ( const sc_lv_base v  ) 

sc_dt::sc_bigint< W >で再定義されています。

sc_signed.cpp572 行で定義されています。

00573 {
00574     int minlen = sc_min( nbits, v.length() );
00575     int i = 0;
00576     for( ; i < minlen; ++ i ) {
00577         safe_set( i, sc_logic( v.get_bit( i ) ).to_bool(), digit );
00578     }
00579     for( ; i < nbits; ++ i ) {
00580         safe_set( i, 0, digit );  // zero-extend
00581     }
00582     convert_2C_to_SM();
00583     return *this;
00584 }

sc_digit* sc_dt::sc_signed::get_raw (  )  const [inline]

sc_signed.h1153 行で定義されています。

01154         { return digit; }

virtual int sc_dt::sc_signed::concat_length ( bool *  xz_present_p  )  const [inline, virtual]

sc_dt::sc_value_baseを再定義しています。

sc_signed.h1155 行で定義されています。

01156         { if ( xz_present_p ) *xz_present_p = false; return nbits; }

bool sc_dt::sc_signed::concat_get_ctrl ( sc_digit dst_p,
int  low_i 
) const [virtual]

sc_dt::sc_value_baseを再定義しています。

sc_signed.cpp117 行で定義されています。

00118 {
00119     int      dst_i;        // Index to next word to set in dst_p.
00120     int      end_i;        // Index of high order word to set.
00121     int      left_shift;   // Amount to shift value left.
00122     sc_digit mask;         // Mask for partial word sets.
00123 
00124 
00125     // CALCULATE METRICS FOR DATA MOVEMENT:
00126 
00127     dst_i = low_i / BITS_PER_DIGIT;
00128     end_i = (low_i + nbits - 1) / BITS_PER_DIGIT;               
00129     left_shift = low_i % BITS_PER_DIGIT;
00130 
00131 
00132     // ALL DATA TO BE MOVED IS IN A SINGLE WORD:
00133 
00134     mask = ~(-1 << left_shift);    
00135     dst_p[dst_i] = ( dst_p[dst_i] & ~mask );         
00136     dst_i++;
00137 
00138     for ( ; dst_i <= end_i; dst_i++ ) dst_p[dst_i] = 0;    
00139 
00140     return false; 
00141 }

bool sc_dt::sc_signed::concat_get_data ( sc_digit dst_p,
int  low_i 
) const [virtual]

sc_dt::sc_value_baseを再定義しています。

sc_signed.cpp143 行で定義されています。

00144 {
00145     sc_digit carry;        // Carry bit for complements.
00146     int      dst_i;        // Index to next word to set in dst_p.
00147     int      end_i;        // Index of high order word to set.
00148     int      high_i;       // Index w/in word of high order bit.
00149     int      left_shift;   // Amount to shift value left.
00150     sc_digit left_word;    // High word component for set.
00151     sc_digit mask;         // Mask for partial word sets.
00152     bool     result;     // True if inserted non-zero data.
00153     int      right_shift;  // Amount to shift value right.
00154     sc_digit right_word;   // Low word component for set.
00155     int      src_i;        // Index to next word to get from digit.
00156 
00157 
00158 
00159     // CALCULATE METRICS FOR DATA MOVEMENT:
00160 
00161     dst_i = low_i / BITS_PER_DIGIT;
00162     high_i = low_i + nbits - 1;
00163     end_i = high_i / BITS_PER_DIGIT;
00164     left_shift = low_i % BITS_PER_DIGIT;
00165 
00166     switch ( sgn )
00167     {
00168       // POSITIVE SOURCE VALUE:
00169 
00170       case SC_POS:
00171 
00172         result = true;
00173 
00174         // ALL DATA TO BE MOVED IS IN A SINGLE WORD:
00175 
00176         if ( dst_i == end_i )
00177         {
00178             mask = ~(-1 << nbits) << left_shift;
00179             dst_p[dst_i] = ( dst_p[dst_i] & ~mask ) | 
00180                 ((digit[0] << left_shift) & mask);
00181         }
00182 
00183 
00184         // DATA IS IN MORE THAN ONE WORD, BUT IS WORD ALIGNED:
00185 
00186         else if ( left_shift == 0 )
00187         {
00188             carry = 1;
00189             for ( src_i = 0; dst_i < end_i; dst_i++, src_i++ )
00190             {
00191                 dst_p[dst_i] = digit[src_i];
00192             }
00193             high_i = high_i % BITS_PER_DIGIT;
00194             mask = ~(-2 << high_i) & DIGIT_MASK;
00195             dst_p[dst_i] = digit[src_i] & mask;
00196         }
00197 
00198 
00199         // DATA IS IN MORE THAN ONE WORD, AND NOT WORD ALIGNED:
00200 
00201         else
00202         {
00203             high_i = high_i % BITS_PER_DIGIT;
00204             right_shift = BITS_PER_DIGIT - left_shift;
00205             mask = ~(-1 << left_shift);
00206             right_word = digit[0];
00207             dst_p[dst_i] = (dst_p[dst_i] & mask) | 
00208                 ((right_word << left_shift) & DIGIT_MASK);
00209             for ( src_i = 1, dst_i++; dst_i < end_i; dst_i++, src_i++ )
00210             {
00211                 left_word = digit[src_i];
00212                 dst_p[dst_i] = ((left_word << left_shift)&DIGIT_MASK) |
00213                     (right_word >> right_shift);
00214                 right_word = left_word;
00215             }
00216             left_word = digit[src_i];
00217             mask = ~(-2 << high_i) & DIGIT_MASK;
00218             dst_p[dst_i] = ((left_word << left_shift) |
00219                 (right_word >> right_shift)) & mask;
00220         }
00221         break;
00222 
00223 
00224       // SOURCE VALUE IS NEGATIVE:
00225 
00226       case SC_NEG:
00227 
00228         // ALL DATA TO BE MOVED IS IN A SINGLE WORD:
00229 
00230         result = true;
00231         if ( dst_i == end_i )
00232         {
00233             mask = ~(-1 << nbits) << left_shift;
00234             right_word = (digit[0] ^ DIGIT_MASK) + 1;
00235             dst_p[dst_i] = ( dst_p[dst_i] & ~mask ) | 
00236                 ((right_word << left_shift) & mask);
00237         }
00238 
00239 
00240         // DATA IS IN MORE THAN ONE WORD, BUT IS WORD ALIGNED:
00241 
00242         else if ( left_shift == 0 )
00243         {
00244             carry = 1;
00245             for ( src_i = 0; dst_i < end_i; dst_i++, src_i++ )
00246             {
00247                 right_word = (digit[src_i] ^ DIGIT_MASK) + carry;
00248                 dst_p[dst_i] = right_word &  DIGIT_MASK;
00249                 carry = right_word >> BITS_PER_DIGIT;
00250             }
00251             high_i = high_i % BITS_PER_DIGIT;
00252             mask = (~(-2 << high_i)) & DIGIT_MASK;
00253             right_word = (digit[src_i] ^ DIGIT_MASK) + carry;
00254             dst_p[dst_i] = right_word & mask;
00255         }
00256 
00257 
00258         // DATA IS IN MORE THAN ONE WORD, AND NOT WORD ALIGNED:
00259 
00260         else
00261         {
00262             high_i = high_i % BITS_PER_DIGIT;
00263             right_shift = BITS_PER_DIGIT - left_shift;
00264             mask = ~(-1 << left_shift);
00265             carry = 1;
00266             right_word = (digit[0] ^ DIGIT_MASK) + carry;
00267             dst_p[dst_i] = (dst_p[dst_i] & mask) | 
00268                 ((right_word << left_shift) & DIGIT_MASK);
00269             carry = right_word >> BITS_PER_DIGIT;
00270             for ( src_i = 1, dst_i++; dst_i < end_i; dst_i++, src_i++ )
00271             {
00272                 left_word = (digit[src_i] ^ DIGIT_MASK) + carry;
00273                 dst_p[dst_i] = ((left_word << left_shift)&DIGIT_MASK) |
00274                     (right_word >> right_shift);
00275                 carry = left_word >> BITS_PER_DIGIT;
00276                 right_word = left_word & DIGIT_MASK;
00277             }
00278             left_word = (digit[src_i] ^ DIGIT_MASK) + carry;
00279             mask = ~(-2 << high_i) & DIGIT_MASK;
00280             dst_p[dst_i] = ((left_word << left_shift) |
00281                 (right_word >> right_shift)) & mask;
00282         }
00283         break;
00284 
00285 
00286       // VALUE IS ZERO:
00287 
00288       default:
00289         result = false;
00290 
00291 
00292         // ALL DATA TO BE MOVED IS IN A SINGLE WORD:
00293 
00294         if ( dst_i == end_i )
00295         {
00296             mask = ~(-1 << nbits) << left_shift;
00297             dst_p[dst_i] = dst_p[dst_i] & ~mask;
00298         }
00299 
00300 
00301         // DATA IS IN MORE THAN ONE WORD, BUT IS WORD ALIGNED:
00302 
00303         else if ( left_shift == 0 )
00304         {
00305             carry = 1;
00306             for ( src_i = 0; dst_i < end_i; dst_i++, src_i++ )
00307             {
00308                 dst_p[dst_i] = 0;
00309             }
00310             high_i = high_i % BITS_PER_DIGIT;
00311             mask = ~(-2 << high_i) & DIGIT_MASK;
00312             dst_p[dst_i] = 0; // #### digit[src_i] & mask;
00313         }
00314 
00315 
00316         // DATA IS IN MORE THAN ONE WORD, AND NOT WORD ALIGNED:
00317 
00318         else
00319         {
00320             high_i = high_i % BITS_PER_DIGIT;
00321             right_shift = BITS_PER_DIGIT - left_shift;
00322             mask = ~(-1 << left_shift);
00323             dst_p[dst_i] = (dst_p[dst_i] & mask);
00324             for ( dst_i++; dst_i <= end_i; dst_i++ )
00325             {
00326                 dst_p[dst_i] = 0;
00327             }
00328         }
00329         break;
00330     }
00331     return result;
00332 }

uint64 sc_dt::sc_signed::concat_get_uint64 (  )  const [virtual]

sc_dt::sc_value_baseを再定義しています。

sc_signed.cpp336 行で定義されています。

00337 {
00338     uint64        result;
00339 
00340     switch ( sgn )
00341     {
00342       case SC_POS:
00343         result = 0;
00344         if ( ndigits > 2 )
00345             result = digit[2];
00346         if ( ndigits > 1 )
00347             result = (result << BITS_PER_DIGIT) | digit[1];
00348         result = (result << BITS_PER_DIGIT) | digit[0];
00349         break;
00350       case SC_NEG:
00351         result = 0;
00352         if ( ndigits > 2 )
00353             result = digit[2];
00354         if ( ndigits > 1 )
00355             result = (result << BITS_PER_DIGIT) | digit[1];
00356         result = (result << BITS_PER_DIGIT) | digit[0];
00357         result = -result;
00358         if ( nbits < 64 ) 
00359         {
00360             uint64 mask = ~0;
00361             result = result & ~(mask << nbits);
00362         }
00363         break;
00364       default:
00365         result = 0;
00366         break;
00367     }
00368     return result;
00369 }

void sc_dt::sc_signed::concat_set ( int64  src,
int  low_i 
) [virtual]

sc_dt::sc_value_baseを再定義しています。

sc_signed.cpp372 行で定義されています。

00373 {    
00374     *this = (low_i < 64) ? src >> low_i : src >> 63;
00375 }

void sc_dt::sc_signed::concat_set ( const sc_signed src,
int  low_i 
) [virtual]

sc_dt::sc_value_baseを再定義しています。

sc_signed.cpp377 行で定義されています。

00378 {
00379     if ( low_i < src.length() )
00380         *this = src >> low_i;
00381     else
00382         *this = (src<0) ? (int_type)-1 : 0;
00383 }       

void sc_dt::sc_signed::concat_set ( const sc_unsigned src,
int  low_i 
) [virtual]

sc_dt::sc_value_baseを再定義しています。

sc_signed.cpp385 行で定義されています。

00386 {
00387     if ( low_i < src.length() )
00388         *this = src >> low_i;
00389     else
00390         *this = 0;
00391 }

void sc_dt::sc_signed::concat_set ( uint64  src,
int  low_i 
) [virtual]

sc_dt::sc_value_baseを再定義しています。

sc_signed.cpp393 行で定義されています。

00394 {
00395     *this = (low_i < 64) ? src >> low_i : 0;
00396 }

sc_signed& sc_dt::sc_signed::operator++ (  ) 

const sc_signed sc_dt::sc_signed::operator++ ( int   ) 

sc_signed& sc_dt::sc_signed::operator-- (  ) 

const sc_signed sc_dt::sc_signed::operator-- ( int   ) 

void sc_dt::sc_signed::check_index ( int  i  )  const [inline]

sc_signed.h1178 行で定義されています。

01179         { if ( i < 0 || i >= nbits ) invalid_index(i); }

void sc_dt::sc_signed::invalid_index ( int  i  )  const

sc_signed.cpp83 行で定義されています。

00084 {
00085     char msg[BUFSIZ];
00086     std::sprintf( msg,
00087          "sc_bigint bit selection: index = %d violates "
00088          "0 <= index <= %d", i, nbits - 1 );
00089     SC_REPORT_ERROR( sc_core::SC_ID_OUT_OF_BOUNDS_, msg );
00090 }

sc_signed_bitref& sc_dt::sc_signed::operator[] ( int  i  )  [inline]

sc_signed.h1183 行で定義されています。

01184         {
01185             check_index(i);
01186             sc_signed_bitref* result_p =
01187                 sc_signed_bitref::m_pool.allocate();
01188             result_p->initialize( this, i );
01189             return *result_p;
01190         }

const sc_signed_bitref_r& sc_dt::sc_signed::operator[] ( int  i  )  const [inline]

sc_signed.h1192 行で定義されています。

01193         {
01194             check_index(i);
01195             sc_signed_bitref* result_p =
01196                 sc_signed_bitref::m_pool.allocate();
01197             result_p->initialize( this, i );
01198             return *result_p;
01199         }

sc_signed_bitref& sc_dt::sc_signed::bit ( int  i  )  [inline]

sc_signed.h1201 行で定義されています。

01202         {
01203             check_index(i);
01204             sc_signed_bitref* result_p =
01205                 sc_signed_bitref::m_pool.allocate();
01206             result_p->initialize( this, i );
01207             return *result_p;
01208         }

const sc_signed_bitref_r& sc_dt::sc_signed::bit ( int  i  )  const [inline]

sc_signed.h1210 行で定義されています。

01211         {
01212             check_index(i);
01213             sc_signed_bitref* result_p =
01214                 sc_signed_bitref::m_pool.allocate();
01215             result_p->initialize( this, i );
01216             return *result_p;
01217         }

void sc_dt::sc_signed::check_range ( int  l,
int  r 
) const [inline]

sc_signed.h1229 行で定義されています。

01230         {
01231             if ( l < r )
01232             {
01233                 if ( l < 0 || r >= nbits ) invalid_range(l,r);
01234             }
01235             else
01236             {
01237                 if ( r < 0 || l >= nbits ) invalid_range(l,r);
01238             }
01239         }

void sc_dt::sc_signed::invalid_range ( int  l,
int  r 
) const

sc_signed.cpp93 行で定義されています。

00094 {
00095     char msg[BUFSIZ];
00096     std::sprintf( msg,
00097          "sc_bigint part selection: left = %d, right = %d \n"
00098          "  violates either (0 <= left <= %d) or (0 <= right <= %d)",
00099          l, r, nbits-1, nbits-1 );
00100     SC_REPORT_ERROR( sc_core::SC_ID_OUT_OF_BOUNDS_, msg );
00101 }

sc_signed_subref& sc_dt::sc_signed::range ( int  i,
int  j 
) [inline]

sc_signed.h1243 行で定義されています。

01244         {
01245             check_range( i, j );
01246             sc_signed_subref* result_p =
01247                 sc_signed_subref::m_pool.allocate();
01248             result_p->initialize( this, i, j );
01249             return *result_p;
01250         }

const sc_signed_subref_r& sc_dt::sc_signed::range ( int  i,
int  j 
) const [inline]

sc_signed.h1252 行で定義されています。

01253         {
01254             check_range( i, j );
01255             sc_signed_subref* result_p =
01256                 sc_signed_subref::m_pool.allocate();
01257             result_p->initialize( this, i, j );
01258             return *result_p;
01259         }

sc_signed_subref& sc_dt::sc_signed::operator() ( int  i,
int  j 
) [inline]

sc_signed.h1261 行で定義されています。

01262         {
01263             check_range( i, j );
01264             sc_signed_subref* result_p =
01265                 sc_signed_subref::m_pool.allocate();
01266             result_p->initialize( this, i, j );
01267             return *result_p;
01268         }

const sc_signed_subref_r& sc_dt::sc_signed::operator() ( int  i,
int  j 
) const [inline]

sc_signed.h1270 行で定義されています。

01271         {
01272             check_range( i, j );
01273             sc_signed_subref* result_p =
01274                 sc_signed_subref::m_pool.allocate();
01275             result_p->initialize( this, i, j );
01276             return *result_p;
01277         }

int sc_dt::sc_signed::to_int (  )  const

unsigned int sc_dt::sc_signed::to_uint (  )  const

long sc_dt::sc_signed::to_long (  )  const

unsigned long sc_dt::sc_signed::to_ulong (  )  const

int64 sc_dt::sc_signed::to_int64 (  )  const

uint64 sc_dt::sc_signed::to_uint64 (  )  const

double sc_dt::sc_signed::to_double (  )  const

const std::string sc_dt::sc_signed::to_string ( sc_numrep  numrep = SC_DEC  )  const

sc_signed.cpp590 行で定義されています。

00591 {
00592     int len = length();
00593     sc_fix aa( *this, len, len, SC_TRN, SC_WRAP, 0, SC_ON );
00594     return aa.to_string( numrep );
00595 }

const std::string sc_dt::sc_signed::to_string ( sc_numrep  numrep,
bool  w_prefix 
) const

sc_signed.cpp598 行で定義されています。

00599 {
00600     int len = length();
00601     sc_fix aa( *this, len, len, SC_TRN, SC_WRAP, 0, SC_ON );
00602     return aa.to_string( numrep, w_prefix );
00603 }

void sc_dt::sc_signed::print ( ::std::ostream &  os = ::std::cout  )  const [inline]

sc_signed.h1306 行で定義されています。

01307         { os << to_string(sc_io_base(os,SC_DEC),sc_io_show_base(os)); }

void sc_dt::sc_signed::scan ( ::std::istream &  is = ::std::cin  ) 

void sc_dt::sc_signed::dump ( ::std::ostream &  os = ::std::cout  )  const

int sc_dt::sc_signed::length (  )  const [inline]

sc_signed.h1315 行で定義されています。

01315 { return nbits; }  // Bit width.

bool sc_dt::sc_signed::iszero (  )  const

sc_signed.cpp4016 行で定義されています。

04017 {
04018   if (sgn == SC_ZERO)
04019     return true;
04020   else if (sgn != SC_NOSIGN) 
04021     return false;
04022   else 
04023     return check_for_zero(ndigits, digit);
04024 }

bool sc_dt::sc_signed::sign (  )  const

sc_signed.cpp4028 行で定義されています。

04029 {
04030   if (sgn == SC_NEG)
04031     return 1;
04032   else if (sgn != SC_NOSIGN)
04033     return 0;
04034   else
04035     return ((digit[ndigits - 1] & one_and_zeros(bit_ord(nbits - 1))) != 0);
04036 }

bool sc_dt::sc_signed::and_reduce (  )  const

sc_signed.cpp402 行で定義されています。

00403 {
00404     sc_digit current; // Current digit examining.
00405     int      i;       // Index of digit examining.
00406 
00407     if ( sgn == SC_NEG )
00408     {
00409         current = (1 << BITS_PER_DIGIT);
00410         for ( i = 0; i < ndigits-1; i++ )  
00411         {
00412             current = (current >> BITS_PER_DIGIT) + (digit[i]^DIGIT_MASK);
00413             if ( (current & DIGIT_MASK) != DIGIT_MASK ) return false;
00414         }
00415         current = (current >> BITS_PER_DIGIT) + (digit[i]^DIGIT_MASK);
00416         if ( (current & ~(-1 << (nbits % BITS_PER_DIGIT))) == 
00417             (sc_digit) ~(-1 << (nbits % BITS_PER_DIGIT)) ) 
00418                 return true;
00419     }
00420     return false;
00421 }

bool sc_dt::sc_signed::nand_reduce (  )  const [inline]

sc_signed.h1323 行で定義されています。

01324         { return ( ! and_reduce() ); }

bool sc_dt::sc_signed::or_reduce (  )  const

sc_signed.cpp423 行で定義されています。

00424 {
00425     return sgn == SC_ZERO ? false : true;
00426 }

bool sc_dt::sc_signed::nor_reduce (  )  const [inline]

sc_signed.h1328 行で定義されています。

01329         { return ( ! or_reduce() ); }

bool sc_dt::sc_signed::xor_reduce (  )  const

sc_signed.cpp428 行で定義されています。

00429 {
00430     int i;   // Digit examining.
00431     int odd; // Flag for odd number of digits.
00432 
00433     odd = 0;
00434     for ( i = 0; i < nbits; i++ )    
00435         if ( test(i) ) odd = ~odd;
00436     return odd ? true : false;
00437 }

bool sc_dt::sc_signed::xnor_reduce (  )  const [inline]

sc_signed.h1333 行で定義されています。

01334         { return ( ! xor_reduce() ); }

bool sc_dt::sc_signed::test ( int  i  )  const

void sc_dt::sc_signed::set ( int  i  ) 

void sc_dt::sc_signed::clear ( int  i  ) 

void sc_dt::sc_signed::set ( int  i,
bool  v 
) [inline]

sc_signed.h1340 行で定義されています。

01341     { if (v) set(i); else clear(i);  }

void sc_dt::sc_signed::invert ( int  i  )  [inline]

sc_signed.h1342 行で定義されています。

01343     { if (test(i)) clear(i); else set(i);  }

void sc_dt::sc_signed::reverse (  ) 

void sc_dt::sc_signed::get_packed_rep ( sc_digit buf  )  const

void sc_dt::sc_signed::set_packed_rep ( sc_digit buf  ) 

const sc_signed& sc_dt::sc_signed::operator+= ( const sc_signed v  ) 

const sc_signed& sc_dt::sc_signed::operator+= ( const sc_unsigned v  ) 

const sc_signed& sc_dt::sc_signed::operator+= ( int64  v  ) 

const sc_signed& sc_dt::sc_signed::operator+= ( uint64  v  ) 

const sc_signed& sc_dt::sc_signed::operator+= ( long  v  ) 

const sc_signed& sc_dt::sc_signed::operator+= ( unsigned long  v  ) 

const sc_signed& sc_dt::sc_signed::operator+= ( int  v  )  [inline]

sc_signed.h1423 行で定義されています。

01424     { return operator+=((long) v); }

const sc_signed& sc_dt::sc_signed::operator+= ( unsigned int  v  )  [inline]

sc_signed.h1425 行で定義されています。

01426     { return operator+=((unsigned long) v); }

const sc_signed & sc_dt::sc_signed::operator+= ( const sc_int_base v  ) 

sc_signed.cpp632 行で定義されています。

00633 { return operator+=((int64) v); }

const sc_signed & sc_dt::sc_signed::operator+= ( const sc_uint_base v  ) 

sc_signed.cpp873 行で定義されています。

00874 { return operator+=((uint64) v); }

const sc_signed& sc_dt::sc_signed::operator-= ( const sc_signed v  ) 

const sc_signed& sc_dt::sc_signed::operator-= ( const sc_unsigned v  ) 

const sc_signed& sc_dt::sc_signed::operator-= ( int64  v  ) 

const sc_signed& sc_dt::sc_signed::operator-= ( uint64  v  ) 

const sc_signed& sc_dt::sc_signed::operator-= ( long  v  ) 

const sc_signed& sc_dt::sc_signed::operator-= ( unsigned long  v  ) 

const sc_signed& sc_dt::sc_signed::operator-= ( int  v  )  [inline]

sc_signed.h1486 行で定義されています。

01487     { return operator -= ((long) v); }

const sc_signed& sc_dt::sc_signed::operator-= ( unsigned int  v  )  [inline]

sc_signed.h1488 行で定義されています。

01489     { return operator -= ((unsigned long) v); }

const sc_signed & sc_dt::sc_signed::operator-= ( const sc_int_base v  ) 

sc_signed.cpp653 行で定義されています。

00654 { return operator-=((int64) v); }

const sc_signed & sc_dt::sc_signed::operator-= ( const sc_uint_base v  ) 

sc_signed.cpp894 行で定義されています。

00895 { return operator-=((uint64) v); }

const sc_signed& sc_dt::sc_signed::operator*= ( const sc_signed v  ) 

const sc_signed& sc_dt::sc_signed::operator*= ( const sc_unsigned v  ) 

const sc_signed& sc_dt::sc_signed::operator*= ( int64  v  ) 

const sc_signed& sc_dt::sc_signed::operator*= ( uint64  v  ) 

const sc_signed& sc_dt::sc_signed::operator*= ( long  v  ) 

const sc_signed& sc_dt::sc_signed::operator*= ( unsigned long  v  ) 

const sc_signed& sc_dt::sc_signed::operator*= ( int  v  )  [inline]

sc_signed.h1542 行で定義されています。

01543     { return operator*=((long) v); }

const sc_signed& sc_dt::sc_signed::operator*= ( unsigned int  v  )  [inline]

sc_signed.h1544 行で定義されています。

01545     { return operator*=((unsigned long) v); }

const sc_signed & sc_dt::sc_signed::operator*= ( const sc_int_base v  ) 

sc_signed.cpp674 行で定義されています。

00675 { return operator*=((int64) v); }

const sc_signed & sc_dt::sc_signed::operator*= ( const sc_uint_base v  ) 

sc_signed.cpp907 行で定義されています。

00908 { return operator*=((uint64) v); }

const sc_signed& sc_dt::sc_signed::operator/= ( const sc_signed v  ) 

const sc_signed& sc_dt::sc_signed::operator/= ( const sc_unsigned v  ) 

const sc_signed& sc_dt::sc_signed::operator/= ( int64  v  ) 

const sc_signed& sc_dt::sc_signed::operator/= ( uint64  v  ) 

const sc_signed& sc_dt::sc_signed::operator/= ( long  v  ) 

const sc_signed& sc_dt::sc_signed::operator/= ( unsigned long  v  ) 

const sc_signed& sc_dt::sc_signed::operator/= ( int  v  )  [inline]

sc_signed.h1596 行で定義されています。

01597     { return operator/=((long) v); }

const sc_signed& sc_dt::sc_signed::operator/= ( unsigned int  v  )  [inline]

sc_signed.h1598 行で定義されています。

01599     { return operator/=((unsigned long) v); }

const sc_signed & sc_dt::sc_signed::operator/= ( const sc_int_base v  ) 

sc_signed.cpp695 行で定義されています。

00696 { return operator/=((int64) v); }

const sc_signed & sc_dt::sc_signed::operator/= ( const sc_uint_base v  ) 

sc_signed.cpp920 行で定義されています。

00921 { return operator/=((uint64) v); }

const sc_signed& sc_dt::sc_signed::operator%= ( const sc_signed v  ) 

const sc_signed& sc_dt::sc_signed::operator%= ( const sc_unsigned v  ) 

const sc_signed& sc_dt::sc_signed::operator%= ( int64  v  ) 

const sc_signed& sc_dt::sc_signed::operator%= ( uint64  v  ) 

const sc_signed& sc_dt::sc_signed::operator%= ( long  v  ) 

const sc_signed& sc_dt::sc_signed::operator%= ( unsigned long  v  ) 

const sc_signed& sc_dt::sc_signed::operator%= ( int  v  )  [inline]

sc_signed.h1650 行で定義されています。

01651     { return operator%=((long) v); }

const sc_signed& sc_dt::sc_signed::operator%= ( unsigned int  v  )  [inline]

sc_signed.h1652 行で定義されています。

01653     { return operator%=((unsigned long) v); }

const sc_signed & sc_dt::sc_signed::operator%= ( const sc_int_base v  ) 

sc_signed.cpp716 行で定義されています。

00717 { return operator%=((int64) v); }

const sc_signed & sc_dt::sc_signed::operator%= ( const sc_uint_base v  ) 

sc_signed.cpp933 行で定義されています。

00934 { return operator%=((uint64) v); }

const sc_signed& sc_dt::sc_signed::operator &= ( const sc_signed v  ) 

const sc_signed& sc_dt::sc_signed::operator &= ( const sc_unsigned v  ) 

const sc_signed& sc_dt::sc_signed::operator &= ( int64  v  ) 

const sc_signed& sc_dt::sc_signed::operator &= ( uint64  v  ) 

const sc_signed& sc_dt::sc_signed::operator &= ( long  v  ) 

const sc_signed& sc_dt::sc_signed::operator &= ( unsigned long  v  ) 

const sc_signed& sc_dt::sc_signed::operator &= ( int  v  )  [inline]

sc_signed.h1706 行で定義されています。

01707     { return operator&=((long) v); }

const sc_signed& sc_dt::sc_signed::operator &= ( unsigned int  v  )  [inline]

sc_signed.h1708 行で定義されています。

01709     { return operator&=((unsigned long) v); }

const sc_signed & sc_dt::sc_signed::operator &= ( const sc_int_base v  ) 

sc_signed.cpp737 行で定義されています。

00738 { return operator&=((int64) v); }

const sc_signed & sc_dt::sc_signed::operator &= ( const sc_uint_base v  ) 

sc_signed.cpp946 行で定義されています。

00947 { return operator&=((uint64) v); }

const sc_signed& sc_dt::sc_signed::operator|= ( const sc_signed v  ) 

const sc_signed& sc_dt::sc_signed::operator|= ( const sc_unsigned v  ) 

const sc_signed& sc_dt::sc_signed::operator|= ( int64  v  ) 

const sc_signed& sc_dt::sc_signed::operator|= ( uint64  v  ) 

const sc_signed& sc_dt::sc_signed::operator|= ( long  v  ) 

const sc_signed& sc_dt::sc_signed::operator|= ( unsigned long  v  ) 

const sc_signed& sc_dt::sc_signed::operator|= ( int  v  )  [inline]

sc_signed.h1760 行で定義されています。

01761     { return operator|=((long) v); }

const sc_signed& sc_dt::sc_signed::operator|= ( unsigned int  v  )  [inline]

sc_signed.h1762 行で定義されています。

01763     { return operator|=((unsigned long) v); }

const sc_signed & sc_dt::sc_signed::operator|= ( const sc_int_base v  ) 

sc_signed.cpp758 行で定義されています。

00759 { return operator|=((int64) v); }

const sc_signed & sc_dt::sc_signed::operator|= ( const sc_uint_base v  ) 

sc_signed.cpp959 行で定義されています。

00960 { return operator|=((uint64) v); }

const sc_signed& sc_dt::sc_signed::operator^= ( const sc_signed v  ) 

const sc_signed& sc_dt::sc_signed::operator^= ( const sc_unsigned v  ) 

const sc_signed& sc_dt::sc_signed::operator^= ( int64  v  ) 

const sc_signed& sc_dt::sc_signed::operator^= ( uint64  v  ) 

const sc_signed& sc_dt::sc_signed::operator^= ( long  v  ) 

const sc_signed& sc_dt::sc_signed::operator^= ( unsigned long  v  ) 

const sc_signed& sc_dt::sc_signed::operator^= ( int  v  )  [inline]

sc_signed.h1814 行で定義されています。

01815     { return operator^=((long) v); }

const sc_signed& sc_dt::sc_signed::operator^= ( unsigned int  v  )  [inline]

sc_signed.h1816 行で定義されています。

01817     { return operator^=((unsigned long) v); }

const sc_signed & sc_dt::sc_signed::operator^= ( const sc_int_base v  ) 

sc_signed.cpp779 行で定義されています。

00780 { return operator^=((int64) v); }

const sc_signed & sc_dt::sc_signed::operator^= ( const sc_uint_base v  ) 

sc_signed.cpp972 行で定義されています。

00973 { return operator^=((uint64) v); }

const sc_signed& sc_dt::sc_signed::operator<<= ( const sc_signed v  ) 

const sc_signed& sc_dt::sc_signed::operator<<= ( const sc_unsigned v  ) 

const sc_signed& sc_dt::sc_signed::operator<<= ( int64  v  ) 

const sc_signed& sc_dt::sc_signed::operator<<= ( uint64  v  ) 

const sc_signed& sc_dt::sc_signed::operator<<= ( long  v  ) 

const sc_signed& sc_dt::sc_signed::operator<<= ( unsigned long  v  ) 

const sc_signed& sc_dt::sc_signed::operator<<= ( int  v  )  [inline]

sc_signed.h1851 行で定義されています。

01852     { return operator<<=((long) v); }

const sc_signed& sc_dt::sc_signed::operator<<= ( unsigned int  v  )  [inline]

sc_signed.h1853 行で定義されています。

01854     { return operator<<=((unsigned long) v); }

const sc_signed & sc_dt::sc_signed::operator<<= ( const sc_int_base v  ) 

sc_signed.cpp788 行で定義されています。

00789 { return operator<<=((int64) v); }

const sc_signed & sc_dt::sc_signed::operator<<= ( const sc_uint_base v  ) 

sc_signed.cpp981 行で定義されています。

00982 { return operator<<=((uint64) v); }

const sc_signed& sc_dt::sc_signed::operator>>= ( const sc_signed v  ) 

const sc_signed& sc_dt::sc_signed::operator>>= ( const sc_unsigned v  ) 

const sc_signed& sc_dt::sc_signed::operator>>= ( int64  v  ) 

const sc_signed& sc_dt::sc_signed::operator>>= ( uint64  v  ) 

const sc_signed& sc_dt::sc_signed::operator>>= ( long  v  ) 

const sc_signed& sc_dt::sc_signed::operator>>= ( unsigned long  v  ) 

const sc_signed& sc_dt::sc_signed::operator>>= ( int  v  )  [inline]

sc_signed.h1882 行で定義されています。

01883     { return operator>>=((long) v); }

const sc_signed& sc_dt::sc_signed::operator>>= ( unsigned int  v  )  [inline]

sc_signed.h1884 行で定義されています。

01885     { return operator>>=((unsigned long) v); }

const sc_signed & sc_dt::sc_signed::operator>>= ( const sc_int_base v  ) 

sc_signed.cpp797 行で定義されています。

00798 { return operator>>=((int64) v); }

const sc_signed & sc_dt::sc_signed::operator>>= ( const sc_uint_base v  ) 

sc_signed.cpp990 行で定義されています。

00991 { return operator>>=((uint64) v); }

small_type sc_dt::sc_signed::default_sign (  )  const [inline, private]

sc_signed.h2174 行で定義されています。

02175     { return SC_NOSIGN; }

int sc_dt::sc_signed::num_bits ( int  nb  )  const [inline, private]

sc_signed.h2177 行で定義されています。

02177 { return nb; }

bool sc_dt::sc_signed::check_if_outside ( int  bit_num  )  const [private]

void sc_dt::sc_signed::copy_digits ( int  nb,
int  nd,
const sc_digit d 
) [inline, private]

sc_signed.h2181 行で定義されています。

02182     { copy_digits_signed(sgn, nbits, ndigits, digit, nb, nd, d); }

void sc_dt::sc_signed::makezero (  )  [inline, private]

sc_signed.h2184 行で定義されています。

02185     { sgn = make_zero(ndigits, digit); }

void sc_dt::sc_signed::convert_2C_to_SM (  )  [inline, private]

sc_signed.h2189 行で定義されています。

void sc_dt::sc_signed::convert_SM_to_2C_to_SM (  )  [inline, private]

sc_signed.h2192 行で定義されています。

void sc_dt::sc_signed::convert_SM_to_2C (  )  [inline, private]

sc_signed.h2195 行で定義されています。


フレンドと関連する関数

friend class sc_concatref [friend]

sc_dt::sc_value_baseを再定義しています。

sc_signed.h1076 行で定義されています。

friend class sc_signed_bitref_r [friend]

sc_signed.h1077 行で定義されています。

friend class sc_signed_bitref [friend]

sc_signed.h1078 行で定義されています。

friend class sc_signed_subref_r [friend]

sc_signed.h1079 行で定義されています。

friend class sc_signed_subref [friend]

sc_signed.h1080 行で定義されています。

friend class sc_unsigned [friend]

sc_signed.h1081 行で定義されています。

friend class sc_unsigned_subref [friend]

sc_signed.h1082 行で定義されています。

sc_signed operator+ ( const sc_unsigned u,
const sc_signed v 
) [friend]

sc_signed.cpp1107 行で定義されています。

01108 {
01109 
01110   if (u.sgn == SC_ZERO) // case 1
01111     return sc_signed(v);
01112 
01113   if (v.sgn == SC_ZERO) // case 2
01114     return sc_signed(u);
01115 
01116   // cases 3 and 4
01117   return add_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit,
01118                            v.sgn, v.nbits, v.ndigits, v.digit);
01119 
01120 }

sc_signed operator+ ( const sc_signed u,
const sc_unsigned v 
) [friend]

sc_signed.cpp1124 行で定義されています。

01125 {
01126 
01127   if (u.sgn == SC_ZERO) // case 1
01128     return sc_signed(v);
01129 
01130   if (v.sgn == SC_ZERO) // case 2
01131     return sc_signed(u);
01132 
01133   // cases 3 and 4
01134   return add_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit,
01135                            v.sgn, v.nbits, v.ndigits, v.digit);
01136 
01137 }

sc_signed operator+ ( const sc_unsigned u,
int64  v 
) [friend]

sc_signed.cpp1197 行で定義されています。

01198 {
01199 
01200   if (v == 0)  // case 2
01201     return sc_signed(u);
01202 
01203   CONVERT_INT64(v);
01204 
01205   if (u.sgn == SC_ZERO)  // case 1
01206     return sc_signed(vs, BITS_PER_UINT64, DIGITS_PER_UINT64, vd, false);
01207 
01208   // cases 3 and 4
01209   return add_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit,
01210                            vs, BITS_PER_UINT64, DIGITS_PER_UINT64, vd);
01211 
01212 }

sc_signed operator+ ( const sc_unsigned u,
long  v 
) [friend]

sc_signed.cpp1313 行で定義されています。

01314 {
01315 
01316   if (v == 0)  // case 2
01317     return sc_signed(u);
01318 
01319   CONVERT_LONG(v);
01320 
01321   if (u.sgn == SC_ZERO)  // case 1
01322     return sc_signed(vs, BITS_PER_ULONG, DIGITS_PER_ULONG, vd, false);
01323 
01324   // cases 3 and 4
01325   return add_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit,
01326                            vs, BITS_PER_ULONG, DIGITS_PER_ULONG, vd);
01327 
01328 }

sc_signed operator+ ( const sc_unsigned u,
int  v 
) [friend]

sc_signed.h1390 行で定義されています。

01391     { return operator+(u, (long) v); }

sc_signed operator+ ( int64  u,
const sc_unsigned v 
) [friend]

sc_signed.cpp1216 行で定義されています。

01217 {
01218 
01219   if (u == 0) // case 1
01220     return sc_signed(v);
01221 
01222   CONVERT_INT64(u);
01223 
01224   if (v.sgn == SC_ZERO)  // case 2
01225     return sc_signed(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud, false);
01226 
01227   // cases 3 and 4
01228 
01229   return add_signed_friend(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud,
01230                            v.sgn, v.nbits, v.ndigits, v.digit);
01231 
01232 }

sc_signed operator+ ( long  u,
const sc_unsigned v 
) [friend]

sc_signed.cpp1332 行で定義されています。

01333 {
01334 
01335   if (u == 0) // case 1
01336     return sc_signed(v);
01337 
01338   CONVERT_LONG(u);
01339 
01340   if (v.sgn == SC_ZERO)  // case 2
01341     return sc_signed(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud, false);
01342 
01343   // cases 3 and 4
01344   return add_signed_friend(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud,
01345                            v.sgn, v.nbits, v.ndigits, v.digit);
01346 
01347 }

sc_signed operator+ ( int  u,
const sc_unsigned v 
) [friend]

sc_signed.h1395 行で定義されています。

01396     { return operator+((long) u, v); }

sc_signed operator+ ( const sc_signed u,
const sc_signed v 
) [friend]

sc_signed.cpp1141 行で定義されています。

01142 {
01143 
01144   if (u.sgn == SC_ZERO) // case 1
01145     return sc_signed(v);
01146 
01147   if (v.sgn == SC_ZERO) // case 2
01148     return sc_signed(u);
01149 
01150   // cases 3 and 4
01151   return add_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit,
01152                            v.sgn, v.nbits, v.ndigits, v.digit);
01153   
01154 }

sc_signed operator+ ( const sc_signed u,
int64  v 
) [friend]

sc_signed.cpp1158 行で定義されています。

01159 {
01160 
01161   if (v == 0)  // case 2
01162     return sc_signed(u);
01163 
01164   CONVERT_INT64(v);
01165 
01166   if (u.sgn == SC_ZERO)  // case 1
01167     return sc_signed(vs, BITS_PER_UINT64, DIGITS_PER_UINT64, vd, false);
01168 
01169   // cases 3 and 4
01170   return add_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit,
01171                            vs, BITS_PER_UINT64, DIGITS_PER_UINT64, vd);
01172 
01173 }

sc_signed operator+ ( const sc_signed u,
uint64  v 
) [friend]

sc_signed.cpp1236 行で定義されています。

01237 {
01238 
01239   if (v == 0)  // case 2
01240     return sc_signed(u);
01241 
01242   CONVERT_INT64(v);
01243 
01244   if (u.sgn == SC_ZERO)  // case 1
01245     return sc_signed(vs, BITS_PER_UINT64, DIGITS_PER_UINT64, vd, false);
01246 
01247   // cases 3 and 4
01248   return add_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit,
01249                            vs, BITS_PER_UINT64, DIGITS_PER_UINT64, vd);
01250 
01251 }

sc_signed operator+ ( const sc_signed u,
long  v 
) [friend]

sc_signed.cpp1275 行で定義されています。

01276 {
01277 
01278   if (v == 0)  // case 2
01279     return sc_signed(u);
01280 
01281   CONVERT_LONG(v);
01282 
01283   if (u.sgn == SC_ZERO)  // case 1
01284     return sc_signed(vs, BITS_PER_ULONG, DIGITS_PER_ULONG, vd, false);
01285 
01286   // cases 3 and 4
01287   return add_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit,
01288                            vs, BITS_PER_ULONG, DIGITS_PER_ULONG, vd);
01289 
01290 }

sc_signed operator+ ( const sc_signed u,
unsigned long  v 
) [friend]

sc_signed.cpp1351 行で定義されています。

01352 {
01353 
01354   if (v == 0) // case 2
01355     return sc_signed(u);
01356 
01357   CONVERT_LONG(v);
01358 
01359   if (u.sgn == SC_ZERO)  // case 1
01360     return sc_signed(vs, BITS_PER_ULONG, DIGITS_PER_ULONG, vd, false);
01361 
01362   // cases 3 and 4
01363   return add_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit,
01364                            vs, BITS_PER_ULONG, DIGITS_PER_ULONG, vd);
01365 
01366 }

sc_signed operator+ ( const sc_signed u,
int  v 
) [friend]

sc_signed.h1403 行で定義されています。

01404     { return operator+(u, (long) v); }

sc_signed operator+ ( const sc_signed u,
unsigned int  v 
) [friend]

sc_signed.h1405 行で定義されています。

01406     { return operator+(u, (unsigned long) v); }

sc_signed operator+ ( int64  u,
const sc_signed v 
) [friend]

sc_signed.cpp1177 行で定義されています。

01178 {
01179 
01180   if (u == 0) // case 1
01181     return sc_signed(v);
01182 
01183   CONVERT_INT64(u);
01184 
01185   if (v.sgn == SC_ZERO)  // case 2
01186     return sc_signed(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud, false);
01187 
01188   // cases 3 and 4
01189 
01190   return add_signed_friend(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud,
01191                            v.sgn, v.nbits, v.ndigits, v.digit);
01192 
01193 }

sc_signed operator+ ( uint64  u,
const sc_signed v 
) [friend]

sc_signed.cpp1255 行で定義されています。

01256 {
01257 
01258   if (u == 0) // case 1
01259     return sc_signed(v);
01260 
01261   CONVERT_INT64(u);
01262 
01263   if (v.sgn == SC_ZERO)  // case 2
01264     return sc_signed(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud, false);
01265 
01266   // cases 3 and 4
01267 
01268   return add_signed_friend(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud,
01269                            v.sgn, v.nbits, v.ndigits, v.digit);
01270 
01271 }

sc_signed operator+ ( long  u,
const sc_signed v 
) [friend]

sc_signed.cpp1294 行で定義されています。

01295 {
01296 
01297   if (u == 0) // case 1
01298     return sc_signed(v);
01299 
01300   CONVERT_LONG(u);
01301 
01302   if (v.sgn == SC_ZERO)  // case 2
01303     return sc_signed(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud, false);
01304 
01305   // cases 3 and 4
01306   return add_signed_friend(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud,
01307                            v.sgn, v.nbits, v.ndigits, v.digit);
01308 
01309 }

sc_signed operator+ ( unsigned long  u,
const sc_signed v 
) [friend]

sc_signed.cpp1370 行で定義されています。

01371 {
01372 
01373   if (u == 0) // case 1
01374     return sc_signed(v);
01375 
01376   CONVERT_LONG(u);
01377 
01378   if (v.sgn == SC_ZERO)  // case 2
01379     return sc_signed(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud, false);
01380 
01381   // cases 3 and 4
01382   return add_signed_friend(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud,
01383                            v.sgn, v.nbits, v.ndigits, v.digit);
01384 
01385 }

sc_signed operator+ ( int  u,
const sc_signed v 
) [friend]

sc_signed.h1412 行で定義されています。

01413     { return operator+((long) u, v); }

sc_signed operator+ ( unsigned int  u,
const sc_signed v 
) [friend]

sc_signed.h1414 行で定義されています。

01415     { return operator+((unsigned long) u, v); }

sc_signed operator+ ( const sc_unsigned u,
const sc_int_base v 
) [friend]

sc_signed.cpp616 行で定義されています。

00617 { return operator + ( u, SCAST<int64>( v ) ); }

sc_signed operator+ ( const sc_int_base u,
const sc_unsigned v 
) [friend]

sc_signed.cpp620 行で定義されています。

00621 { return operator + ( SCAST<int64>( u ), v ); }

sc_signed operator+ ( const sc_signed u,
const sc_int_base v 
) [friend]

sc_signed.cpp624 行で定義されています。

00625 { return operator+(u, (int64) v); }

sc_signed operator+ ( const sc_signed u,
const sc_uint_base v 
) [friend]

sc_signed.cpp865 行で定義されています。

00866 { return operator+(u, (uint64) v); }

sc_signed operator+ ( const sc_int_base u,
const sc_signed v 
) [friend]

sc_signed.cpp628 行で定義されています。

00629 { return operator+((int64) u, v); }

sc_signed operator+ ( const sc_uint_base u,
const sc_signed v 
) [friend]

sc_signed.cpp869 行で定義されています。

00870 { return operator+((uint64) u, v); }

sc_signed operator- ( const sc_unsigned u,
const sc_signed v 
) [friend]

sc_signed.cpp1427 行で定義されています。

01428 {
01429 
01430   if (v.sgn == SC_ZERO)  // case 1
01431     return sc_signed(u);
01432 
01433   if (u.sgn == SC_ZERO) // case 2
01434     return sc_signed(v, -v.sgn);
01435 
01436   // cases 3 and 4
01437   return add_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit,
01438                            -v.sgn, v.nbits, v.ndigits, v.digit);
01439 
01440 }

sc_signed operator- ( const sc_signed u,
const sc_unsigned v 
) [friend]

sc_signed.cpp1444 行で定義されています。

01445 {
01446 
01447   if (v.sgn == SC_ZERO)  // case 1
01448     return sc_signed(u);
01449 
01450   if (u.sgn == SC_ZERO) // case 2
01451     return sc_signed(v, -v.sgn);
01452 
01453   // cases 3 and 4
01454   return add_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit,
01455                            -v.sgn, v.nbits, v.ndigits, v.digit);
01456 
01457 }

sc_signed operator- ( const sc_unsigned u,
const sc_unsigned v 
) [friend]

sc_signed.cpp1410 行で定義されています。

01411 {
01412 
01413   if (v.sgn == SC_ZERO)  // case 1
01414     return sc_signed(u);
01415 
01416   if (u.sgn == SC_ZERO) // case 2
01417     return sc_signed(v, -v.sgn);
01418 
01419   // cases 3 and 4
01420   return add_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit,
01421                            -v.sgn, v.nbits, v.ndigits, v.digit);
01422 
01423 }

sc_signed operator- ( const sc_unsigned u,
int64  v 
) [friend]

sc_signed.cpp1517 行で定義されています。

01518 {
01519 
01520   if (v == 0) // case 1
01521     return sc_signed(u);
01522 
01523   CONVERT_INT64(v);
01524 
01525   if (u.sgn == SC_ZERO) // case 2
01526     return sc_signed(-vs, BITS_PER_UINT64, DIGITS_PER_UINT64, vd, false);
01527 
01528   // cases 3 and 4
01529   return add_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit,
01530                            -vs, BITS_PER_UINT64, DIGITS_PER_UINT64, vd);
01531 
01532 }

sc_signed operator- ( const sc_unsigned u,
uint64  v 
) [friend]

sc_signed.cpp1595 行で定義されています。

01596 {
01597 
01598   if (v == 0) // case 1
01599     return sc_signed(u);
01600 
01601   CONVERT_INT64(v);
01602 
01603   if (u.sgn == SC_ZERO) // case 2
01604     return sc_signed(-vs, BITS_PER_UINT64, DIGITS_PER_UINT64, vd, false);
01605 
01606   // cases 3 and 4
01607 
01608   return add_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit,
01609                            -vs, BITS_PER_UINT64, DIGITS_PER_UINT64, vd);
01610 
01611 }

sc_signed operator- ( const sc_unsigned u,
long  v 
) [friend]

sc_signed.cpp1672 行で定義されています。

01673 {
01674 
01675   if (v == 0) // case 1
01676     return sc_signed(u);
01677 
01678   CONVERT_LONG(v);
01679 
01680   if (u.sgn == SC_ZERO) // case 2
01681     return sc_signed(-vs, BITS_PER_ULONG, DIGITS_PER_ULONG, vd, false);
01682 
01683   // cases 3 and 4
01684   return add_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit,
01685                            -vs, BITS_PER_ULONG, DIGITS_PER_ULONG, vd);
01686 
01687 }

sc_signed operator- ( const sc_unsigned u,
unsigned long  v 
) [friend]

sc_signed.cpp1747 行で定義されています。

01748 {
01749 
01750   if (v == 0) // case 1
01751     return sc_signed(u);
01752 
01753   CONVERT_LONG(v);
01754 
01755   if (u.sgn == SC_ZERO) // case 2
01756     return sc_signed(-vs, BITS_PER_ULONG, DIGITS_PER_ULONG, vd, false);
01757 
01758   // cases 3 and 4
01759   return add_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit,
01760                            -vs, BITS_PER_ULONG, DIGITS_PER_ULONG, vd);
01761 
01762 }

sc_signed operator- ( const sc_unsigned u,
int  v 
) [friend]

sc_signed.h1447 行で定義されています。

01448     { return operator-(u, (long) v); }

sc_signed operator- ( const sc_unsigned u,
unsigned int  v 
) [friend]

sc_signed.h1449 行で定義されています。

01450     { return operator-(u, (unsigned long) v); }

sc_signed operator- ( int64  u,
const sc_unsigned v 
) [friend]

sc_signed.cpp1536 行で定義されています。

01537 {
01538 
01539   if (u == 0) // case 1
01540     return sc_signed(v, -v.sgn);
01541 
01542   CONVERT_INT64(u);
01543 
01544   if (v.sgn == SC_ZERO) // case 2
01545     return sc_signed(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud, false);
01546 
01547   // cases 3 and 4
01548 
01549   return add_signed_friend(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud,
01550                            -v.sgn, v.nbits, v.ndigits, v.digit);
01551 
01552 }

sc_signed operator- ( uint64  u,
const sc_unsigned v 
) [friend]

sc_signed.cpp1615 行で定義されています。

01616 {
01617 
01618   if (u == 0) // case 1
01619     return sc_signed(v, -v.sgn);
01620 
01621   CONVERT_INT64(u);
01622 
01623   if (v.sgn == SC_ZERO) // case 2
01624     return sc_signed(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud, false);
01625 
01626   // cases 3 and 4
01627   return add_signed_friend(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud,
01628                            -v.sgn, v.nbits, v.ndigits, v.digit);
01629 
01630 }

sc_signed operator- ( long  u,
const sc_unsigned v 
) [friend]

sc_signed.cpp1691 行で定義されています。

01692 {
01693 
01694   if (u == 0) // case 1
01695     return sc_signed(v, -v.sgn);
01696 
01697   CONVERT_LONG(u);
01698 
01699   if (v.sgn == SC_ZERO) // case 2
01700     return sc_signed(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud, false);
01701 
01702   // cases 3 and 4
01703   return add_signed_friend(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud,
01704                            -v.sgn, v.nbits, v.ndigits, v.digit);
01705 
01706 }

sc_signed operator- ( unsigned long  u,
const sc_unsigned v 
) [friend]

sc_signed.cpp1766 行で定義されています。

01767 {
01768   if (u == 0) // case 1
01769     return sc_signed(v, -v.sgn);
01770 
01771   CONVERT_LONG(u);
01772 
01773   if (v.sgn == SC_ZERO) // case 2
01774     return sc_signed(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud, false);
01775 
01776   // cases 3 and 4
01777   return add_signed_friend(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud,
01778                            -v.sgn, v.nbits, v.ndigits, v.digit);
01779 
01780 }

sc_signed operator- ( int  u,
const sc_unsigned v 
) [friend]

sc_signed.h1456 行で定義されています。

01457     { return operator-((long) u, v); }

sc_signed operator- ( unsigned int  u,
const sc_unsigned v 
) [friend]

sc_signed.h1458 行で定義されています。

01459     { return operator-((unsigned long) u, v); }

sc_signed operator- ( const sc_signed u,
const sc_signed v 
) [friend]

sc_signed.cpp1461 行で定義されています。

01462 {
01463 
01464   if (v.sgn == SC_ZERO)  // case 1
01465     return sc_signed(u);
01466 
01467   if (u.sgn == SC_ZERO) // case 2
01468     return sc_signed(v, -v.sgn);
01469 
01470   // cases 3 and 4
01471   return add_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit,
01472                            -v.sgn, v.nbits, v.ndigits, v.digit);
01473 
01474 }

sc_signed operator- ( const sc_signed u,
int64  v 
) [friend]

sc_signed.cpp1478 行で定義されています。

01479 {
01480 
01481   if (v == 0) // case 1
01482     return sc_signed(u);
01483 
01484   CONVERT_INT64(v);
01485 
01486   if (u.sgn == SC_ZERO) // case 2
01487     return sc_signed(-vs, BITS_PER_UINT64, DIGITS_PER_UINT64, vd, false);
01488 
01489   // cases 3 and 4
01490   return add_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit,
01491                            -vs, BITS_PER_UINT64, DIGITS_PER_UINT64, vd);
01492 
01493 }

sc_signed operator- ( const sc_signed u,
uint64  v 
) [friend]

sc_signed.cpp1556 行で定義されています。

01557 {
01558 
01559   if (v == 0) // case 1
01560     return sc_signed(u);
01561 
01562   CONVERT_INT64(v);
01563 
01564   if (u.sgn == SC_ZERO) // case 2
01565     return sc_signed(-vs, BITS_PER_UINT64, DIGITS_PER_UINT64, vd, false);
01566 
01567   // cases 3 and 4
01568 
01569   return add_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit,
01570                            -vs, BITS_PER_UINT64, DIGITS_PER_UINT64, vd);
01571 
01572 }

sc_signed operator- ( const sc_signed u,
long  v 
) [friend]

sc_signed.cpp1634 行で定義されています。

01635 {
01636 
01637   if (v == 0) // case 1
01638     return sc_signed(u);
01639 
01640   CONVERT_LONG(v);
01641 
01642   if (u.sgn == SC_ZERO) // case 2
01643     return sc_signed(-vs, BITS_PER_ULONG, DIGITS_PER_ULONG, vd, false);
01644 
01645   // cases 3 and 4
01646   return add_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit,
01647                            -vs, BITS_PER_ULONG, DIGITS_PER_ULONG, vd);
01648 
01649 }

sc_signed operator- ( const sc_signed u,
unsigned long  v 
) [friend]

sc_signed.cpp1710 行で定義されています。

01711 {
01712 
01713   if (v == 0) // case 1
01714     return sc_signed(u);
01715 
01716   CONVERT_LONG(v);
01717 
01718   if (u.sgn == SC_ZERO) // case 2
01719     return sc_signed(-vs, BITS_PER_ULONG, DIGITS_PER_ULONG, vd, false);
01720 
01721   // cases 3 and 4
01722   return add_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit,
01723                            -vs, BITS_PER_ULONG, DIGITS_PER_ULONG, vd);
01724 
01725 }

sc_signed operator- ( const sc_signed u,
int  v 
) [friend]

sc_signed.h1466 行で定義されています。

01467     { return operator-(u, (long) v); }

sc_signed operator- ( const sc_signed u,
unsigned int  v 
) [friend]

sc_signed.h1468 行で定義されています。

01469     { return operator-(u, (unsigned long) v); }

sc_signed operator- ( int64  u,
const sc_signed v 
) [friend]

sc_signed.cpp1497 行で定義されています。

01498 {
01499 
01500   if (u == 0) // case 1
01501     return sc_signed(v, -v.sgn);
01502 
01503   CONVERT_INT64(u);
01504 
01505   if (v.sgn == SC_ZERO) // case 2
01506     return sc_signed(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud, false);
01507 
01508   // cases 3 and 4
01509 
01510   return add_signed_friend(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud,
01511                            -v.sgn, v.nbits, v.ndigits, v.digit);
01512 
01513 }

sc_signed operator- ( uint64  u,
const sc_signed v 
) [friend]

sc_signed.cpp1576 行で定義されています。

01577 {
01578 
01579   if (u == 0) // case 1
01580     return sc_signed(v, -v.sgn);
01581 
01582   CONVERT_INT64(u);
01583 
01584   if (v.sgn == SC_ZERO) // case 2
01585     return sc_signed(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud, false);
01586 
01587   // cases 3 and 4
01588   return add_signed_friend(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud,
01589                            -v.sgn, v.nbits, v.ndigits, v.digit);
01590 
01591 }

sc_signed operator- ( long  u,
const sc_signed v 
) [friend]

sc_signed.cpp1653 行で定義されています。

01654 {
01655 
01656   if (u == 0) // case 1
01657     return sc_signed(v, -v.sgn);
01658 
01659   CONVERT_LONG(u);
01660 
01661   if (v.sgn == SC_ZERO) // case 2
01662     return sc_signed(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud, false);
01663 
01664   // cases 3 and 4
01665   return add_signed_friend(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud,
01666                            -v.sgn, v.nbits, v.ndigits, v.digit);
01667 
01668 }

sc_signed operator- ( unsigned long  u,
const sc_signed v 
) [friend]

sc_signed.cpp1729 行で定義されています。

01730 {
01731   if (u == 0) // case 1
01732     return sc_signed(v, -v.sgn);
01733 
01734   CONVERT_LONG(u);
01735 
01736   if (v.sgn == SC_ZERO) // case 2
01737     return sc_signed(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud, false);
01738 
01739   // cases 3 and 4
01740   return add_signed_friend(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud,
01741                            -v.sgn, v.nbits, v.ndigits, v.digit);
01742 
01743 }

sc_signed operator- ( int  u,
const sc_signed v 
) [friend]

sc_signed.h1475 行で定義されています。

01476     { return operator-((long) u, v); }

sc_signed operator- ( unsigned int  u,
const sc_signed v 
) [friend]

sc_signed.h1477 行で定義されています。

01478     { return operator-((unsigned long) u, v); }

sc_signed operator- ( const sc_unsigned u,
const sc_int_base v 
) [friend]

sc_signed.cpp637 行で定義されています。

00638 { return operator-(u, (int64) v); }

sc_signed operator- ( const sc_unsigned u,
const sc_uint_base v 
) [friend]

sc_signed.cpp878 行で定義されています。

00879 { return operator-(u, (uint64) v); }

sc_signed operator- ( const sc_int_base u,
const sc_unsigned v 
) [friend]

sc_signed.cpp641 行で定義されています。

00642 { return operator-((int64) u, v); }

sc_signed operator- ( const sc_uint_base u,
const sc_unsigned v 
) [friend]

sc_signed.cpp882 行で定義されています。

00883 { return operator-((uint64) u, v); }

sc_signed operator- ( const sc_signed u,
const sc_int_base v 
) [friend]

sc_signed.cpp645 行で定義されています。

00646 { return operator-(u, (int64) v); }

sc_signed operator- ( const sc_signed u,
const sc_uint_base v 
) [friend]

sc_signed.cpp886 行で定義されています。

00887 { return operator-(u, (uint64) v); }

sc_signed operator- ( const sc_int_base u,
const sc_signed v 
) [friend]

sc_signed.cpp649 行で定義されています。

00650 { return operator-((int64) u, v); }

sc_signed operator- ( const sc_uint_base u,
const sc_signed v 
) [friend]

sc_signed.cpp890 行で定義されています。

00891 { return operator-((uint64) u, v); }

sc_signed operator* ( const sc_unsigned u,
const sc_signed v 
) [friend]

sc_signed.cpp1797 行で定義されています。

01798 {
01799  
01800   small_type s = mul_signs(u.sgn, v.sgn);
01801 
01802   if (s == SC_ZERO) // case 1
01803     return sc_signed();
01804 
01805   // cases 2-4
01806   return mul_signed_friend(s, u.nbits, u.ndigits, u.digit,
01807                            v.nbits, v.ndigits, v.digit);
01808 
01809 }

sc_signed operator* ( const sc_signed u,
const sc_unsigned v 
) [friend]

sc_signed.cpp1813 行で定義されています。

01814 {
01815  
01816   small_type s = mul_signs(u.sgn, v.sgn);
01817 
01818   if (s == SC_ZERO) // case 1
01819     return sc_signed();
01820 
01821   // cases 2-4
01822   return mul_signed_friend(s, u.nbits, u.ndigits, u.digit,
01823                            v.nbits, v.ndigits, v.digit);
01824 
01825 }

sc_signed operator* ( const sc_unsigned u,
int64  v 
) [friend]

sc_signed.cpp1881 行で定義されています。

01882 {
01883 
01884   small_type s = mul_signs(u.sgn, get_sign(v));
01885 
01886   if (s == SC_ZERO) // case 1
01887     return sc_signed();
01888 
01889   CONVERT_INT64_2(v);
01890 
01891   // cases 2-4
01892   return mul_signed_friend(s, u.nbits, u.ndigits, u.digit, 
01893                            BITS_PER_UINT64, DIGITS_PER_UINT64, vd);
01894   
01895 }

sc_signed operator* ( const sc_unsigned u,
long  v 
) [friend]

sc_signed.cpp1989 行で定義されています。

01990 {
01991 
01992   small_type s = mul_signs(u.sgn, get_sign(v));
01993 
01994   if (s == SC_ZERO) // case 1
01995     return sc_signed();
01996 
01997   CONVERT_LONG_2(v);
01998 
01999   // cases 2-4
02000   return mul_signed_friend(s, u.nbits, u.ndigits, u.digit, 
02001                            BITS_PER_ULONG, DIGITS_PER_ULONG, vd);
02002   
02003 }

sc_signed operator* ( const sc_unsigned u,
int  v 
) [friend]

sc_signed.h1509 行で定義されています。

01510     { return operator*(u, (long) v); }

sc_signed operator* ( int64  u,
const sc_unsigned v 
) [friend]

sc_signed.cpp1899 行で定義されています。

01900 {
01901 
01902   small_type s = mul_signs(v.sgn, get_sign(u));
01903 
01904   if (s == SC_ZERO) // case 1
01905     return sc_signed();
01906 
01907   CONVERT_INT64_2(u);
01908 
01909   // cases 2-4
01910   return mul_signed_friend(s, BITS_PER_UINT64, DIGITS_PER_UINT64, ud, 
01911                            v.nbits, v.ndigits, v.digit);
01912   
01913 }

sc_signed operator* ( long  u,
const sc_unsigned v 
) [friend]

sc_signed.cpp2007 行で定義されています。

02008 {
02009 
02010   small_type s = mul_signs(v.sgn, get_sign(u));
02011 
02012   if (s == SC_ZERO) // case 1
02013     return sc_signed();
02014 
02015   CONVERT_LONG_2(u);
02016 
02017   // cases 2-4
02018   return mul_signed_friend(s, BITS_PER_ULONG, DIGITS_PER_ULONG, ud, 
02019                            v.nbits, v.ndigits, v.digit);
02020   
02021 }

sc_signed operator* ( int  u,
const sc_unsigned v 
) [friend]

sc_signed.h1514 行で定義されています。

01515     { return operator*((long) u, v); }

sc_signed operator* ( const sc_signed u,
const sc_signed v 
) [friend]

sc_signed.cpp1829 行で定義されています。

01830 {
01831  
01832   small_type s = mul_signs(u.sgn, v.sgn);
01833 
01834   if (s == SC_ZERO) // case 1
01835     return sc_signed();
01836 
01837   // cases 2-4
01838   return mul_signed_friend(s, u.nbits, u.ndigits, u.digit,
01839                            v.nbits, v.ndigits, v.digit);
01840 
01841 }

sc_signed operator* ( const sc_signed u,
int64  v 
) [friend]

sc_signed.cpp1845 行で定義されています。

01846 {
01847 
01848   small_type s = mul_signs(u.sgn, get_sign(v));
01849 
01850   if (s == SC_ZERO) // case 1
01851     return sc_signed();
01852 
01853   CONVERT_INT64_2(v);
01854 
01855   // cases 2-4
01856   return mul_signed_friend(s, u.nbits, u.ndigits, u.digit, 
01857                            BITS_PER_UINT64, DIGITS_PER_UINT64, vd);
01858   
01859 }

sc_signed operator* ( const sc_signed u,
uint64  v 
) [friend]

sc_signed.cpp1917 行で定義されています。

01918 {
01919 
01920   small_type s = mul_signs(u.sgn, get_sign(v));
01921 
01922   if (s == SC_ZERO) // case 1
01923     return sc_signed();
01924 
01925   CONVERT_INT64_2(v);
01926 
01927   // cases 2-4
01928   return mul_signed_friend(s, u.nbits, u.ndigits, u.digit, 
01929                            BITS_PER_UINT64, DIGITS_PER_UINT64, vd);
01930   
01931 }

sc_signed operator* ( const sc_signed u,
long  v 
) [friend]

sc_signed.cpp1953 行で定義されています。

01954 {
01955 
01956   small_type s = mul_signs(u.sgn, get_sign(v));
01957 
01958   if (s == SC_ZERO) // case 1
01959     return sc_signed();
01960 
01961   CONVERT_LONG_2(v);
01962 
01963   // cases 2-4
01964   return mul_signed_friend(s, u.nbits, u.ndigits, u.digit, 
01965                            BITS_PER_ULONG, DIGITS_PER_ULONG, vd);
01966   
01967 }

sc_signed operator* ( const sc_signed u,
unsigned long  v 
) [friend]

sc_signed.cpp2025 行で定義されています。

02026 {
02027 
02028   small_type s = mul_signs(u.sgn, get_sign(v));
02029 
02030   if (s == SC_ZERO) // case 1
02031     return sc_signed();
02032 
02033   CONVERT_LONG_2(v);
02034 
02035   // else cases 2-4
02036   return mul_signed_friend(s, u.nbits, u.ndigits, u.digit, 
02037                            BITS_PER_ULONG, DIGITS_PER_ULONG, vd);
02038   
02039 }

sc_signed operator* ( const sc_signed u,
int  v 
) [friend]

sc_signed.h1522 行で定義されています。

01523     { return operator*(u, (long) v); }

sc_signed operator* ( const sc_signed u,
unsigned int  v 
) [friend]

sc_signed.h1524 行で定義されています。

01525     { return operator*(u, (unsigned long) v); }

sc_signed operator* ( int64  u,
const sc_signed v 
) [friend]

sc_signed.cpp1863 行で定義されています。

01864 {
01865 
01866   small_type s = mul_signs(v.sgn, get_sign(u));
01867 
01868   if (s == SC_ZERO) // case 1
01869     return sc_signed();
01870 
01871   CONVERT_INT64_2(u);
01872 
01873   // cases 2-4
01874   return mul_signed_friend(s, BITS_PER_UINT64, DIGITS_PER_UINT64, ud, 
01875                            v.nbits, v.ndigits, v.digit);
01876   
01877 }

sc_signed operator* ( uint64  u,
const sc_signed v 
) [friend]

sc_signed.cpp1935 行で定義されています。

01936 {
01937 
01938   small_type s = mul_signs(v.sgn, get_sign(u));
01939 
01940   if (s == SC_ZERO) // case 1
01941     return sc_signed();
01942 
01943   CONVERT_INT64_2(u);
01944 
01945   // cases 2-4
01946   return mul_signed_friend(s, BITS_PER_UINT64, DIGITS_PER_UINT64, ud, 
01947                            v.nbits, v.ndigits, v.digit);
01948   
01949 }

sc_signed operator* ( long  u,
const sc_signed v 
) [friend]

sc_signed.cpp1971 行で定義されています。

01972 {
01973 
01974   small_type s = mul_signs(v.sgn, get_sign(u));
01975 
01976   if (s == SC_ZERO) // case 1
01977     return sc_signed();
01978 
01979   CONVERT_LONG_2(u);
01980 
01981   // cases 2-4
01982   return mul_signed_friend(s, BITS_PER_ULONG, DIGITS_PER_ULONG, ud, 
01983                            v.nbits, v.ndigits, v.digit);
01984   
01985 }

sc_signed operator* ( unsigned long  u,
const sc_signed v 
) [friend]

sc_signed.cpp2042 行で定義されています。

02043 {
02044 
02045   small_type s = mul_signs(v.sgn, get_sign(u));
02046 
02047   if (s == SC_ZERO) // case 1
02048     return sc_signed();
02049 
02050   CONVERT_LONG_2(u);
02051 
02052   // cases 2-4
02053   return mul_signed_friend(s, BITS_PER_ULONG, DIGITS_PER_ULONG, ud, 
02054                            v.nbits, v.ndigits, v.digit);
02055   
02056 }

sc_signed operator* ( int  u,
const sc_signed v 
) [friend]

sc_signed.h1531 行で定義されています。

01532     { return operator*((long) u, v); }

sc_signed operator* ( unsigned int  u,
const sc_signed v 
) [friend]

sc_signed.h1533 行で定義されています。

01534     { return operator*((unsigned long) u, v); }

sc_signed operator* ( const sc_unsigned u,
const sc_int_base v 
) [friend]

sc_signed.cpp658 行で定義されています。

00659 { return operator * ( u, SCAST<int64>( v ) ); }

sc_signed operator* ( const sc_int_base u,
const sc_unsigned v 
) [friend]

sc_signed.cpp662 行で定義されています。

00663 { return operator * ( SCAST<int64>( u ), v ); }

sc_signed operator* ( const sc_signed u,
const sc_int_base v 
) [friend]

sc_signed.cpp666 行で定義されています。

00667 { return operator*(u, (int64) v); }

sc_signed operator* ( const sc_signed u,
const sc_uint_base v 
) [friend]

sc_signed.cpp899 行で定義されています。

00900 { return operator*(u, (uint64) v); }

sc_signed operator* ( const sc_int_base u,
const sc_signed v 
) [friend]

sc_signed.cpp670 行で定義されています。

00671 { return operator*((int64) u, v); }

sc_signed operator* ( const sc_uint_base u,
const sc_signed v 
) [friend]

sc_signed.cpp903 行で定義されています。

00904 { return operator*((uint64) u, v); }

sc_signed operator/ ( const sc_unsigned u,
const sc_signed v 
) [friend]

sc_signed.cpp2075 行で定義されています。

02076 {
02077 
02078   small_type s = mul_signs(u.sgn, v.sgn);
02079 
02080   if (s == SC_ZERO) {
02081     div_by_zero(v.sgn); // case 1
02082     return sc_signed();  // case 2
02083   }
02084 
02085   // other cases
02086   return div_signed_friend(s, u.nbits, u.ndigits, u.digit,
02087                            v.nbits, v.ndigits, v.digit);
02088 
02089 }

sc_signed operator/ ( const sc_signed u,
const sc_unsigned v 
) [friend]

sc_signed.cpp2093 行で定義されています。

02094 {
02095 
02096   small_type s = mul_signs(u.sgn, v.sgn);
02097 
02098   if (s == SC_ZERO) {
02099     div_by_zero(v.sgn); // case 1
02100     return sc_signed();  // case 2
02101   }
02102 
02103   // other cases
02104   return div_signed_friend(s, u.nbits, u.ndigits, u.digit,
02105                            v.nbits, v.ndigits, v.digit);
02106 
02107 }

sc_signed operator/ ( const sc_unsigned u,
int64  v 
) [friend]

sc_signed.cpp2169 行で定義されています。

02170 {
02171 
02172   small_type s = mul_signs(u.sgn, get_sign(v));
02173 
02174   if (s == SC_ZERO) {
02175     div_by_zero(v);  // case 1
02176     return sc_signed();  // case 2
02177   }
02178 
02179   CONVERT_INT64_2(v);
02180 
02181   // other cases
02182   return div_signed_friend(s, u.nbits, u.ndigits, u.digit, 
02183                            BITS_PER_UINT64, DIGITS_PER_UINT64, vd);
02184   
02185 }

sc_signed operator/ ( const sc_unsigned u,
long  v 
) [friend]

sc_signed.cpp2290 行で定義されています。

02291 {
02292 
02293   small_type s = mul_signs(u.sgn, get_sign(v));
02294 
02295   if (s == SC_ZERO) {
02296     div_by_zero(v);  // case 1
02297     return sc_signed();  // case 2
02298   }
02299 
02300   CONVERT_LONG_2(v);
02301 
02302   // other cases
02303   return div_signed_friend(s, u.nbits, u.ndigits, u.digit, 
02304                            BITS_PER_ULONG, DIGITS_PER_ULONG, vd);
02305   
02306 }

sc_signed operator/ ( const sc_unsigned u,
int  v 
) [friend]

sc_signed.h1563 行で定義されています。

01564     { return operator/(u, (long) v); }

sc_signed operator/ ( int64  u,
const sc_unsigned v 
) [friend]

sc_signed.cpp2189 行で定義されています。

02190 {
02191 
02192   small_type s = mul_signs(v.sgn, get_sign(u));
02193 
02194   if (s == SC_ZERO) {
02195     div_by_zero(v.sgn);  // case 1
02196     return sc_signed();  // case 2
02197   }
02198 
02199   CONVERT_INT64_2(u);
02200 
02201   // other cases
02202   return div_signed_friend(s, BITS_PER_UINT64, DIGITS_PER_UINT64, ud, 
02203                            v.nbits, v.ndigits, v.digit);
02204   
02205 }

sc_signed operator/ ( long  u,
const sc_unsigned v 
) [friend]

sc_signed.cpp2310 行で定義されています。

02311 {
02312 
02313   small_type s = mul_signs(v.sgn, get_sign(u));
02314 
02315   if (s == SC_ZERO) {
02316     div_by_zero(v.sgn);  // case 1
02317     return sc_signed();  // case 2
02318   }
02319 
02320   CONVERT_LONG_2(u);
02321 
02322   // other cases
02323   return div_signed_friend(s, BITS_PER_ULONG, DIGITS_PER_ULONG, ud, 
02324                            v.nbits, v.ndigits, v.digit);
02325   
02326 }

sc_signed operator/ ( int  u,
const sc_unsigned v 
) [friend]

sc_signed.h1568 行で定義されています。

01569     { return operator/((long) u, v); }

sc_signed operator/ ( const sc_signed u,
const sc_signed v 
) [friend]

sc_signed.cpp2111 行で定義されています。

02112 {
02113 
02114   small_type s = mul_signs(u.sgn, v.sgn);
02115 
02116   if (s == SC_ZERO) {
02117     div_by_zero(v.sgn); // case 1
02118     return sc_signed();  // case 2
02119   }
02120 
02121   // other cases
02122   return div_signed_friend(s, u.nbits, u.ndigits, u.digit,
02123                            v.nbits, v.ndigits, v.digit);
02124 
02125 }

sc_signed operator/ ( const sc_signed u,
int64  v 
) [friend]

sc_signed.cpp2129 行で定義されています。

02130 {
02131 
02132   small_type s = mul_signs(u.sgn, get_sign(v));
02133 
02134   if (s == SC_ZERO) {
02135     div_by_zero(v);  // case 1
02136     return sc_signed();  // case 2
02137   }
02138 
02139   CONVERT_INT64_2(v);
02140 
02141   // other cases
02142   return div_signed_friend(s, u.nbits, u.ndigits, u.digit, 
02143                            BITS_PER_UINT64, DIGITS_PER_UINT64, vd);
02144   
02145 }

sc_signed operator/ ( const sc_signed u,
uint64  v 
) [friend]

sc_signed.cpp2209 行で定義されています。

02210 {
02211 
02212   small_type s = mul_signs(u.sgn, get_sign(v));
02213 
02214   if (s == SC_ZERO) {
02215     div_by_zero(v);  // case 1
02216     return sc_signed();  // case 2
02217   }
02218 
02219   CONVERT_INT64_2(v);
02220 
02221   // other cases
02222   return div_signed_friend(s, u.nbits, u.ndigits, u.digit, 
02223                            BITS_PER_UINT64, DIGITS_PER_UINT64, vd);
02224   
02225 }

sc_signed operator/ ( const sc_signed u,
long  v 
) [friend]

sc_signed.cpp2250 行で定義されています。

02251 {
02252 
02253   small_type s = mul_signs(u.sgn, get_sign(v));
02254 
02255   if (s == SC_ZERO) {
02256     div_by_zero(v);  // case 1
02257     return sc_signed();  // case 2
02258   }
02259 
02260   CONVERT_LONG_2(v);
02261 
02262   // other cases
02263   return div_signed_friend(s, u.nbits, u.ndigits, u.digit, 
02264                            BITS_PER_ULONG, DIGITS_PER_ULONG, vd);
02265   
02266 }

sc_signed operator/ ( const sc_signed u,
unsigned long  v 
) [friend]

sc_signed.cpp2330 行で定義されています。

02331 {
02332 
02333   small_type s = mul_signs(u.sgn, get_sign(v));
02334 
02335   if (s == SC_ZERO) {
02336     div_by_zero(v);  // case 1
02337     return sc_signed();  // case 2
02338   }
02339 
02340   CONVERT_LONG_2(v);
02341 
02342   // other cases
02343   return div_signed_friend(s, u.nbits, u.ndigits, u.digit, 
02344                            BITS_PER_ULONG, DIGITS_PER_ULONG, vd);
02345   
02346 }

sc_signed operator/ ( const sc_signed u,
int  v 
) [friend]

sc_signed.h1576 行で定義されています。

01577     { return operator/(u, (long) v); }

sc_signed operator/ ( const sc_signed u,
unsigned int  v 
) [friend]

sc_signed.h1578 行で定義されています。

01579     { return operator/(u, (unsigned long) v); }

sc_signed operator/ ( int64  u,
const sc_signed v 
) [friend]

sc_signed.cpp2149 行で定義されています。

02150 {
02151 
02152   small_type s = mul_signs(v.sgn, get_sign(u));
02153 
02154   if (s == SC_ZERO) {
02155     div_by_zero(v.sgn);  // case 1
02156     return sc_signed();  // case 2
02157   }
02158 
02159   CONVERT_INT64_2(u);
02160 
02161   // other cases
02162   return div_signed_friend(s, BITS_PER_UINT64, DIGITS_PER_UINT64, ud, 
02163                            v.nbits, v.ndigits, v.digit);
02164   
02165 }

sc_signed operator/ ( uint64  u,
const sc_signed v 
) [friend]

sc_signed.cpp2229 行で定義されています。

02230 {
02231 
02232   small_type s = mul_signs(v.sgn, get_sign(u));
02233 
02234   if (s == SC_ZERO) {
02235     div_by_zero(v.sgn);  // case 1
02236     return sc_signed();  // case 2
02237 
02238   }
02239 
02240   CONVERT_INT64_2(u);
02241 
02242   // other cases
02243   return div_signed_friend(s, BITS_PER_UINT64, DIGITS_PER_UINT64, ud, 
02244                            v.nbits, v.ndigits, v.digit);
02245   
02246 }

sc_signed operator/ ( long  u,
const sc_signed v 
) [friend]

sc_signed.cpp2270 行で定義されています。

02271 {
02272 
02273   small_type s = mul_signs(v.sgn, get_sign(u));
02274 
02275   if (s == SC_ZERO) {
02276     div_by_zero(v.sgn);  // case 1
02277     return sc_signed();  // case 2
02278   }
02279 
02280   CONVERT_LONG_2(u);
02281 
02282   // other cases
02283   return div_signed_friend(s, BITS_PER_ULONG, DIGITS_PER_ULONG, ud, 
02284                            v.nbits, v.ndigits, v.digit);
02285   
02286 }

sc_signed operator/ ( unsigned long  u,
const sc_signed v 
) [friend]

sc_signed.cpp2350 行で定義されています。

02351 {
02352 
02353   small_type s = mul_signs(v.sgn, get_sign(u));
02354 
02355   if (s == SC_ZERO) {
02356     div_by_zero(v.sgn);  // case 1
02357     return sc_signed();  // case 2
02358 
02359   }
02360 
02361   CONVERT_LONG_2(u);
02362 
02363   // other cases
02364   return div_signed_friend(s, BITS_PER_ULONG, DIGITS_PER_ULONG, ud, 
02365                            v.nbits, v.ndigits, v.digit);
02366   
02367 }

sc_signed operator/ ( int  u,
const sc_signed v 
) [friend]

sc_signed.h1585 行で定義されています。

01586     { return operator/((long) u, v); }

sc_signed operator/ ( unsigned int  u,
const sc_signed v 
) [friend]

sc_signed.h1587 行で定義されています。

01588     { return operator/((unsigned long) u, v); }

sc_signed operator/ ( const sc_unsigned u,
const sc_int_base v 
) [friend]

sc_signed.cpp679 行で定義されています。

00680 { return operator / ( u, SCAST<int64>( v ) ); }

sc_signed operator/ ( const sc_int_base u,
const sc_unsigned v 
) [friend]

sc_signed.cpp683 行で定義されています。

00684 { return operator / ( SCAST<int64>( u ), v ); }

sc_signed operator/ ( const sc_signed u,
const sc_int_base v 
) [friend]

sc_signed.cpp687 行で定義されています。

00688 { return operator/(u, (int64) v); }

sc_signed operator/ ( const sc_signed u,
const sc_uint_base v 
) [friend]

sc_signed.cpp912 行で定義されています。

00913 { return operator/(u, (uint64) v); }

sc_signed operator/ ( const sc_int_base u,
const sc_signed v 
) [friend]

sc_signed.cpp691 行で定義されています。

00692 { return operator/((int64) u, v); }

sc_signed operator/ ( const sc_uint_base u,
const sc_signed v 
) [friend]

sc_signed.cpp916 行で定義されています。

00917 { return operator/((uint64) u, v); }

sc_signed operator% ( const sc_unsigned u,
const sc_signed v 
) [friend]

sc_signed.cpp2386 行で定義されています。

02387 {
02388 
02389   if ((u.sgn == SC_ZERO) || (v.sgn == SC_ZERO)) {
02390     div_by_zero(v.sgn);  // case 1
02391     return sc_signed();  // case 2
02392   }
02393 
02394   // other cases
02395   return mod_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit,
02396                            v.nbits, v.ndigits, v.digit);
02397 }

sc_signed operator% ( const sc_signed u,
const sc_unsigned v 
) [friend]

sc_signed.cpp2401 行で定義されています。

02402 {
02403 
02404   if ((u.sgn == SC_ZERO) || (v.sgn == SC_ZERO)) {
02405     div_by_zero(v.sgn);  // case 1
02406     return sc_signed();  // case 2
02407   }
02408 
02409   // other cases
02410   return mod_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit,
02411                            v.nbits, v.ndigits, v.digit);
02412 }

sc_signed operator% ( const sc_unsigned u,
int64  v 
) [friend]

sc_signed.cpp2471 行で定義されています。

02472 {
02473 
02474   small_type vs = get_sign(v);
02475 
02476   if ((u.sgn == SC_ZERO) || (vs == SC_ZERO)) {
02477     div_by_zero(v);  // case 1
02478     return sc_signed();  // case 2
02479   }
02480 
02481   CONVERT_INT64_2(v);
02482 
02483   // other cases
02484   return mod_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit,
02485                            BITS_PER_UINT64, DIGITS_PER_UINT64, vd);
02486 
02487 }

sc_signed operator% ( const sc_unsigned u,
long  v 
) [friend]

sc_signed.cpp2586 行で定義されています。

02587 {
02588 
02589   small_type vs = get_sign(v);
02590 
02591   if ((u.sgn == SC_ZERO) || (vs == SC_ZERO)) {
02592     div_by_zero(v);  // case 1
02593     return sc_signed();  // case 2
02594   }
02595 
02596   CONVERT_LONG_2(v);
02597 
02598   // other cases
02599   return mod_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit,
02600                            BITS_PER_ULONG, DIGITS_PER_ULONG, vd);
02601 }

sc_signed operator% ( const sc_unsigned u,
int  v 
) [friend]

sc_signed.h1617 行で定義されています。

01618     { return operator%(u, (long) v); }

sc_signed operator% ( int64  u,
const sc_unsigned v 
) [friend]

sc_signed.cpp2491 行で定義されています。

02492 {
02493 
02494   small_type us = get_sign(u);
02495 
02496   if ((us == SC_ZERO) || (v.sgn == SC_ZERO)) {
02497     div_by_zero(v.sgn);  // case 1
02498     return sc_signed();  // case 2
02499   }
02500 
02501   CONVERT_INT64_2(u);
02502 
02503   // other cases
02504   return mod_signed_friend(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud,
02505                            v.nbits, v.ndigits, v.digit);
02506 
02507 }

sc_signed operator% ( long  u,
const sc_unsigned v 
) [friend]

sc_signed.cpp2605 行で定義されています。

02606 {
02607 
02608   small_type us = get_sign(u);
02609 
02610   if ((us == SC_ZERO) || (v.sgn == SC_ZERO)) {
02611     div_by_zero(v.sgn);  // case 1
02612     return sc_signed();  // case 2
02613   }
02614 
02615   CONVERT_LONG_2(u);
02616 
02617   // other cases
02618   return mod_signed_friend(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud,
02619                            v.nbits, v.ndigits, v.digit);
02620 
02621 }

sc_signed operator% ( int  u,
const sc_unsigned v 
) [friend]

sc_signed.h1622 行で定義されています。

01623     { return operator%((long) u, v); }

sc_signed operator% ( const sc_signed u,
const sc_signed v 
) [friend]

sc_signed.cpp2416 行で定義されています。

02417 {
02418 
02419   if ((u.sgn == SC_ZERO) || (v.sgn == SC_ZERO)) {
02420     div_by_zero(v.sgn);  // case 1
02421     return sc_signed();  // case 2
02422   }
02423 
02424   // other cases
02425   return mod_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit,
02426                            v.nbits, v.ndigits, v.digit);
02427 }

sc_signed operator% ( const sc_signed u,
int64  v 
) [friend]

sc_signed.cpp2431 行で定義されています。

02432 {
02433 
02434   small_type vs = get_sign(v);
02435 
02436   if ((u.sgn == SC_ZERO) || (vs == SC_ZERO)) {
02437     div_by_zero(v);  // case 1
02438     return sc_signed();  // case 2
02439   }
02440 
02441   CONVERT_INT64_2(v);
02442 
02443   // other cases
02444   return mod_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit,
02445                            BITS_PER_UINT64, DIGITS_PER_UINT64, vd);
02446 
02447 }

sc_signed operator% ( const sc_signed u,
uint64  v 
) [friend]

sc_signed.cpp2511 行で定義されています。

02512 {
02513 
02514   if ((u.sgn == SC_ZERO) || (v == 0)) {
02515     div_by_zero(v);  // case 1
02516     return sc_signed();  // case 2
02517   }
02518 
02519   CONVERT_INT64_2(v);
02520 
02521   // other cases
02522   return mod_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit,
02523                            BITS_PER_UINT64, DIGITS_PER_UINT64, vd);
02524 
02525 }

sc_signed operator% ( const sc_signed u,
long  v 
) [friend]

sc_signed.cpp2547 行で定義されています。

02548 {
02549 
02550   small_type vs = get_sign(v);
02551 
02552   if ((u.sgn == SC_ZERO) || (vs == SC_ZERO)) {
02553     div_by_zero(v);  // case 1
02554     return sc_signed();  // case 2
02555   }
02556 
02557   CONVERT_LONG_2(v);
02558 
02559   // other cases
02560   return mod_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit,
02561                            BITS_PER_ULONG, DIGITS_PER_ULONG, vd);
02562 }

sc_signed operator% ( const sc_signed u,
unsigned long  v 
) [friend]

sc_signed.cpp2625 行で定義されています。

02626 {
02627 
02628   if ((u.sgn == SC_ZERO) || (v == 0)) {
02629     div_by_zero(v);  // case 1
02630     return sc_signed();  // case 2
02631   }
02632 
02633   CONVERT_LONG_2(v);
02634 
02635   // other cases
02636   return mod_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit,
02637                            BITS_PER_ULONG, DIGITS_PER_ULONG, vd);
02638 
02639 }

sc_signed operator% ( const sc_signed u,
int  v 
) [friend]

sc_signed.h1630 行で定義されています。

01631     { return operator%(u, (long) v); }

sc_signed operator% ( const sc_signed u,
unsigned int  v 
) [friend]

sc_signed.h1632 行で定義されています。

01633     { return operator%(u, (unsigned long) v); }

sc_signed operator% ( int64  u,
const sc_signed v 
) [friend]

sc_signed.cpp2451 行で定義されています。

02452 {
02453 
02454   small_type us = get_sign(u);
02455 
02456   if ((us == SC_ZERO) || (v.sgn == SC_ZERO)) {
02457     div_by_zero(v.sgn);  // case 1
02458     return sc_signed();  // case 2
02459   }
02460 
02461   CONVERT_INT64_2(u);
02462 
02463   // other cases
02464   return mod_signed_friend(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud,
02465                            v.nbits, v.ndigits, v.digit);
02466 
02467 }

sc_signed operator% ( uint64  u,
const sc_signed v 
) [friend]

sc_signed.cpp2529 行で定義されています。

02530 {
02531 
02532   if ((u == 0) || (v.sgn == SC_ZERO)) {
02533     div_by_zero(v.sgn);  // case 1
02534     return sc_signed();  // case 2
02535   }
02536 
02537   CONVERT_INT64(u);
02538 
02539   // other cases
02540   return mod_signed_friend(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud,
02541                            v.nbits, v.ndigits, v.digit);
02542 
02543 }

sc_signed operator% ( long  u,
const sc_signed v 
) [friend]

sc_signed.cpp2566 行で定義されています。

02567 {
02568 
02569   small_type us = get_sign(u);
02570 
02571   if ((us == SC_ZERO) || (v.sgn == SC_ZERO)) {
02572     div_by_zero(v.sgn);  // case 1
02573     return sc_signed();  // case 2
02574   }
02575 
02576   CONVERT_LONG_2(u);
02577 
02578   // other cases
02579   return mod_signed_friend(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud,
02580                            v.nbits, v.ndigits, v.digit);
02581 
02582 }

sc_signed operator% ( unsigned long  u,
const sc_signed v 
) [friend]

sc_signed.cpp2643 行で定義されています。

02644 {
02645 
02646   if ((u == 0) || (v.sgn == SC_ZERO)) {
02647     div_by_zero(v.sgn);  // case 1
02648     return sc_signed();  // case 2
02649   }
02650 
02651   CONVERT_LONG(u);
02652 
02653   // other cases
02654   return mod_signed_friend(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud,
02655                            v.nbits, v.ndigits, v.digit);
02656 
02657 }

sc_signed operator% ( int  u,
const sc_signed v 
) [friend]

sc_signed.h1639 行で定義されています。

01640     { return operator%((long) u, v); }

sc_signed operator% ( unsigned int  u,
const sc_signed v 
) [friend]

sc_signed.h1641 行で定義されています。

01642     { return operator%((unsigned long) u, v); }

sc_signed operator% ( const sc_unsigned u,
const sc_int_base v 
) [friend]

sc_signed.cpp700 行で定義されています。

00701 { return operator % ( u, SCAST<int64>( v ) ); }

sc_signed operator% ( const sc_int_base u,
const sc_unsigned v 
) [friend]

sc_signed.cpp704 行で定義されています。

00705 { return operator % ( SCAST<int64>( u ), v ); }

sc_signed operator% ( const sc_signed u,
const sc_int_base v 
) [friend]

sc_signed.cpp708 行で定義されています。

00709 { return operator%(u, (int64) v); }

sc_signed operator% ( const sc_signed u,
const sc_uint_base v 
) [friend]

sc_signed.cpp925 行で定義されています。

00926 { return operator%(u, (uint64) v); }

sc_signed operator% ( const sc_int_base u,
const sc_signed v 
) [friend]

sc_signed.cpp712 行で定義されています。

00713 { return operator%((int64) u, v); }

sc_signed operator% ( const sc_uint_base u,
const sc_signed v 
) [friend]

sc_signed.cpp929 行で定義されています。

00930 { return operator%((uint64) u, v); }

sc_signed operator & ( const sc_unsigned u,
const sc_signed v 
) [friend]

sc_signed.cpp2675 行で定義されています。

02676 {
02677 
02678   if ((u.sgn == SC_ZERO) || (v.sgn == SC_ZERO)) // case 1
02679     return sc_signed();
02680 
02681   // other cases
02682   return and_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit,
02683                            v.sgn, v.nbits, v.ndigits, v.digit);
02684 
02685 }

sc_signed operator & ( const sc_signed u,
const sc_unsigned v 
) [friend]

sc_signed.cpp2689 行で定義されています。

02690 {
02691 
02692   if ((u.sgn == SC_ZERO) || (v.sgn == SC_ZERO)) // case 1
02693     return sc_signed();
02694 
02695   // other cases
02696   return and_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit,
02697                            v.sgn, v.nbits, v.ndigits, v.digit);
02698 
02699 }

sc_signed operator & ( const sc_unsigned u,
int64  v 
) [friend]

sc_signed.cpp2749 行で定義されています。

02750 {
02751 
02752   if ((u.sgn == SC_ZERO) || (v == 0)) // case 1
02753     return sc_signed();
02754 
02755   CONVERT_INT64(v);
02756 
02757   // other cases
02758   return and_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit,
02759                            vs, BITS_PER_UINT64, DIGITS_PER_UINT64, vd);
02760 
02761 }

sc_signed operator & ( const sc_unsigned u,
long  v 
) [friend]

sc_signed.cpp2845 行で定義されています。

02846 {
02847 
02848   if ((u.sgn == SC_ZERO) || (v == 0)) // case 1
02849     return sc_signed();
02850 
02851   CONVERT_LONG(v);
02852 
02853   // other cases
02854   return and_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit,
02855                            vs, BITS_PER_ULONG, DIGITS_PER_ULONG, vd);
02856 
02857 }

sc_signed operator & ( const sc_unsigned u,
int  v 
) [friend]

sc_signed.h1673 行で定義されています。

01674     { return operator&(u, (long) v); }

sc_signed operator & ( int64  u,
const sc_unsigned v 
) [friend]

sc_signed.cpp2765 行で定義されています。

02766 {
02767 
02768   if ((u == 0) || (v.sgn == SC_ZERO)) // case 1
02769     return sc_signed();
02770 
02771   CONVERT_INT64(u);
02772 
02773   // other cases
02774   return and_signed_friend(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud,
02775                            v.sgn, v.nbits, v.ndigits, v.digit);
02776 
02777 }

sc_signed operator & ( long  u,
const sc_unsigned v 
) [friend]

sc_signed.cpp2861 行で定義されています。

02862 {
02863 
02864   if ((u == 0) || (v.sgn == SC_ZERO)) // case 1
02865     return sc_signed();
02866 
02867   CONVERT_LONG(u);
02868 
02869   // other cases
02870   return and_signed_friend(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud,
02871                            v.sgn, v.nbits, v.ndigits, v.digit);
02872 
02873 }

sc_signed operator & ( int  u,
const sc_unsigned v 
) [friend]

sc_signed.h1678 行で定義されています。

01679     { return operator&((long) u, v); }

sc_signed operator & ( const sc_signed u,
const sc_signed v 
) [friend]

sc_signed.cpp2703 行で定義されています。

02704 {
02705 
02706   if ((u.sgn == SC_ZERO) || (v.sgn == SC_ZERO)) // case 1
02707     return sc_signed();
02708 
02709   // other cases
02710   return and_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit,
02711                            v.sgn, v.nbits, v.ndigits, v.digit);
02712 
02713 }

sc_signed operator & ( const sc_signed u,
int64  v 
) [friend]

sc_signed.cpp2717 行で定義されています。

02718 {
02719 
02720   if ((u.sgn == SC_ZERO) || (v == 0)) // case 1
02721     return sc_signed();
02722 
02723   CONVERT_INT64(v);
02724 
02725   // other cases
02726   return and_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit,
02727                            vs, BITS_PER_UINT64, DIGITS_PER_UINT64, vd);
02728 
02729 }

sc_signed operator & ( const sc_signed u,
uint64  v 
) [friend]

sc_signed.cpp2781 行で定義されています。

02782 {
02783 
02784   if ((u.sgn == SC_ZERO) || (v == 0)) // case 1
02785     return sc_signed();
02786 
02787   CONVERT_INT64(v);
02788 
02789   // other cases
02790   return and_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit,
02791                            vs, BITS_PER_UINT64, DIGITS_PER_UINT64, vd);
02792   
02793 }

sc_signed operator & ( const sc_signed u,
long  v 
) [friend]

sc_signed.cpp2813 行で定義されています。

02814 {
02815 
02816   if ((u.sgn == SC_ZERO) || (v == 0)) // case 1
02817     return sc_signed();
02818 
02819   CONVERT_LONG(v);
02820 
02821   // other cases
02822   return and_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit,
02823                            vs, BITS_PER_ULONG, DIGITS_PER_ULONG, vd);
02824 
02825 }

sc_signed operator & ( const sc_signed u,
unsigned long  v 
) [friend]

sc_signed.cpp2877 行で定義されています。

02878 {
02879 
02880   if ((u.sgn == SC_ZERO) || (v == 0)) // case 1
02881     return sc_signed();
02882 
02883   CONVERT_LONG(v);
02884 
02885   // other cases
02886   return and_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit,
02887                            vs, BITS_PER_ULONG, DIGITS_PER_ULONG, vd);
02888 
02889 }

sc_signed operator & ( const sc_signed u,
int  v 
) [friend]

sc_signed.h1686 行で定義されています。

01687     { return operator&(u, (long) v); }

sc_signed operator & ( const sc_signed u,
unsigned int  v 
) [friend]

sc_signed.h1688 行で定義されています。

01689     { return operator&(u, (unsigned long) v); }

sc_signed operator & ( int64  u,
const sc_signed v 
) [friend]

sc_signed.cpp2733 行で定義されています。

02734 {
02735 
02736   if ((u == 0) || (v.sgn == SC_ZERO)) // case 1
02737     return sc_signed();
02738 
02739   CONVERT_INT64(u);
02740 
02741   // other cases
02742   return and_signed_friend(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud,
02743                            v.sgn, v.nbits, v.ndigits, v.digit);
02744 
02745 }

sc_signed operator & ( uint64  u,
const sc_signed v 
) [friend]

sc_signed.cpp2797 行で定義されています。

02798 {
02799 
02800   if ((u == 0) || (v.sgn == SC_ZERO)) // case 1
02801     return sc_signed();
02802 
02803   CONVERT_INT64(u);
02804 
02805   // other cases
02806   return and_signed_friend(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud,
02807                            v.sgn, v.nbits, v.ndigits, v.digit);
02808 
02809 }

sc_signed operator & ( long  u,
const sc_signed v 
) [friend]

sc_signed.cpp2829 行で定義されています。

02830 {
02831 
02832   if ((u == 0) || (v.sgn == SC_ZERO)) // case 1
02833     return sc_signed();
02834 
02835   CONVERT_LONG(u);
02836 
02837   // other cases
02838   return and_signed_friend(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud,
02839                            v.sgn, v.nbits, v.ndigits, v.digit);
02840 
02841 }

sc_signed operator & ( unsigned long  u,
const sc_signed v 
) [friend]

sc_signed.cpp2893 行で定義されています。

02894 {
02895 
02896   if ((u == 0) || (v.sgn == SC_ZERO)) // case 1
02897     return sc_signed();
02898 
02899   CONVERT_LONG(u);
02900 
02901   // other cases
02902   return and_signed_friend(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud,
02903                            v.sgn, v.nbits, v.ndigits, v.digit);
02904 
02905 }

sc_signed operator & ( int  u,
const sc_signed v 
) [friend]

sc_signed.h1695 行で定義されています。

01696     { return operator&((long) u, v); }

sc_signed operator & ( unsigned int  u,
const sc_signed v 
) [friend]

sc_signed.h1697 行で定義されています。

01698     { return operator&((unsigned long) u, v); }

sc_signed operator & ( const sc_unsigned u,
const sc_int_base v 
) [friend]

sc_signed.cpp721 行で定義されています。

00722 { return operator & ( u, SCAST<int64>( v ) ); }

sc_signed operator & ( const sc_int_base u,
const sc_unsigned v 
) [friend]

sc_signed.cpp725 行で定義されています。

00726 { return operator & ( SCAST<int64>( u ), v ); }

sc_signed operator & ( const sc_signed u,
const sc_int_base v 
) [friend]

sc_signed.cpp729 行で定義されています。

00730 { return operator&(u, (int64) v); }

sc_signed operator & ( const sc_signed u,
const sc_uint_base v 
) [friend]

sc_signed.cpp938 行で定義されています。

00939 { return operator&(u, (uint64) v); }

sc_signed operator & ( const sc_int_base u,
const sc_signed v 
) [friend]

sc_signed.cpp733 行で定義されています。

00734 { return operator&((int64) u, v); }

sc_signed operator & ( const sc_uint_base u,
const sc_signed v 
) [friend]

sc_signed.cpp942 行で定義されています。

00943 { return operator&((uint64) u, v); }

sc_signed operator| ( const sc_unsigned u,
const sc_signed v 
) [friend]

sc_signed.cpp2924 行で定義されています。

02925 {
02926 
02927   if (v.sgn == SC_ZERO)  // case 1
02928     return sc_signed(u);
02929 
02930   if (u.sgn == SC_ZERO)  // case 2
02931     return sc_signed(v);
02932 
02933   // other cases
02934   return or_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit,
02935                           v.sgn, v.nbits, v.ndigits, v.digit);
02936 
02937 }

sc_signed operator| ( const sc_signed u,
const sc_unsigned v 
) [friend]

sc_signed.cpp2941 行で定義されています。

02942 {
02943 
02944   if (v.sgn == SC_ZERO)  // case 1
02945     return sc_signed(u);
02946 
02947   if (u.sgn == SC_ZERO)  // case 2
02948     return sc_signed(v);
02949 
02950   // other cases
02951   return or_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit,
02952                           v.sgn, v.nbits, v.ndigits, v.digit);
02953 
02954 }

sc_signed operator| ( const sc_unsigned u,
int64  v 
) [friend]

sc_signed.cpp3013 行で定義されています。

03014 {
03015 
03016   if (v == 0)  // case 1
03017     return sc_signed(u);
03018 
03019   CONVERT_INT64(v);
03020 
03021   if (u.sgn == SC_ZERO)  // case 2
03022     return sc_signed(vs, BITS_PER_UINT64, DIGITS_PER_UINT64, vd, false);
03023 
03024   // other cases
03025   return or_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit,
03026                           vs, BITS_PER_UINT64, DIGITS_PER_UINT64, vd);
03027 
03028 }

sc_signed operator| ( const sc_unsigned u,
long  v 
) [friend]

sc_signed.cpp3127 行で定義されています。

03128 {
03129 
03130   if (v == 0)  // case 1
03131     return sc_signed(u);
03132 
03133   CONVERT_LONG(v);
03134 
03135   if (u.sgn == SC_ZERO)  // case 2
03136     return sc_signed(vs, BITS_PER_ULONG, DIGITS_PER_ULONG, vd, false);
03137 
03138   // other cases
03139   return or_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit,
03140                           vs, BITS_PER_ULONG, DIGITS_PER_ULONG, vd);
03141 
03142 }

sc_signed operator| ( const sc_unsigned u,
int  v 
) [friend]

sc_signed.h1727 行で定義されています。

01728     { return operator|(u, (long) v); }

sc_signed operator| ( int64  u,
const sc_unsigned v 
) [friend]

sc_signed.cpp3032 行で定義されています。

03033 {
03034 
03035   if (u == 0)
03036     return sc_signed(v);
03037 
03038   CONVERT_INT64(u);
03039 
03040   if (v.sgn == SC_ZERO)
03041     return sc_signed(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud, false);
03042 
03043   // other cases
03044   return or_signed_friend(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud,
03045                           v.sgn, v.nbits, v.ndigits, v.digit);
03046 
03047 }

sc_signed operator| ( long  u,
const sc_unsigned v 
) [friend]

sc_signed.cpp3146 行で定義されています。

03147 {
03148 
03149   if (u == 0)
03150     return sc_signed(v);
03151 
03152   CONVERT_LONG(u);
03153 
03154   if (v.sgn == SC_ZERO)
03155     return sc_signed(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud, false);
03156 
03157   // other cases
03158   return or_signed_friend(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud,
03159                           v.sgn, v.nbits, v.ndigits, v.digit);
03160 
03161 }

sc_signed operator| ( int  u,
const sc_unsigned v 
) [friend]

sc_signed.h1732 行で定義されています。

01733     { return operator|((long) u, v); }

sc_signed operator| ( const sc_signed u,
const sc_signed v 
) [friend]

sc_signed.cpp2958 行で定義されています。

02959 {
02960 
02961   if (v.sgn == SC_ZERO)  // case 1
02962     return sc_signed(u);
02963 
02964   if (u.sgn == SC_ZERO)  // case 2
02965     return sc_signed(v);
02966 
02967   // other cases
02968   return or_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit,
02969                           v.sgn, v.nbits, v.ndigits, v.digit);
02970 
02971 }

sc_signed operator| ( const sc_signed u,
int64  v 
) [friend]

sc_signed.cpp2975 行で定義されています。

02976 {
02977 
02978   if (v == 0)  // case 1
02979     return sc_signed(u);
02980 
02981   CONVERT_INT64(v);
02982 
02983   if (u.sgn == SC_ZERO)  // case 2
02984     return sc_signed(vs, BITS_PER_UINT64, DIGITS_PER_UINT64, vd, false);
02985 
02986   // other cases
02987   return or_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit,
02988                           vs, BITS_PER_UINT64, DIGITS_PER_UINT64, vd);
02989 
02990 }

sc_signed operator| ( const sc_signed u,
uint64  v 
) [friend]

sc_signed.cpp3051 行で定義されています。

03052 {
03053 
03054   if (v == 0)  // case 1
03055     return sc_signed(u);
03056 
03057   CONVERT_INT64(v);
03058 
03059   if (u.sgn == SC_ZERO)  // case 2
03060     return sc_signed(vs, BITS_PER_UINT64, DIGITS_PER_UINT64, vd, false);
03061 
03062   // other cases
03063   return or_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit,
03064                           vs, BITS_PER_UINT64, DIGITS_PER_UINT64, vd);
03065 
03066 }

sc_signed operator| ( const sc_signed u,
long  v 
) [friend]

sc_signed.cpp3089 行で定義されています。

03090 {
03091 
03092   if (v == 0)  // case 1
03093     return sc_signed(u);
03094 
03095   CONVERT_LONG(v);
03096 
03097   if (u.sgn == SC_ZERO)  // case 2
03098     return sc_signed(vs, BITS_PER_ULONG, DIGITS_PER_ULONG, vd, false);
03099 
03100   // other cases
03101   return or_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit,
03102                           vs, BITS_PER_ULONG, DIGITS_PER_ULONG, vd);
03103 
03104 }

sc_signed operator| ( const sc_signed u,
unsigned long  v 
) [friend]

sc_signed.cpp3165 行で定義されています。

03166 {
03167 
03168   if (v == 0)  // case 1
03169     return sc_signed(u);
03170 
03171   CONVERT_LONG(v);
03172 
03173   if (u.sgn == SC_ZERO)  // case 2
03174     return sc_signed(vs, BITS_PER_ULONG, DIGITS_PER_ULONG, vd, false);
03175 
03176   // other cases
03177   return or_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit,
03178                           vs, BITS_PER_ULONG, DIGITS_PER_ULONG, vd);
03179 
03180 }

sc_signed operator| ( const sc_signed u,
int  v 
) [friend]

sc_signed.h1740 行で定義されています。

01741     { return operator|(u, (long) v); }

sc_signed operator| ( const sc_signed u,
unsigned int  v 
) [friend]

sc_signed.h1742 行で定義されています。

01743     { return operator|(u, (unsigned long) v); }

sc_signed operator| ( int64  u,
const sc_signed v 
) [friend]

sc_signed.cpp2994 行で定義されています。

02995 {
02996 
02997   if (u == 0)
02998     return sc_signed(v);
02999 
03000   CONVERT_INT64(u);
03001 
03002   if (v.sgn == SC_ZERO)
03003     return sc_signed(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud, false);
03004 
03005   // other cases
03006   return or_signed_friend(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud,
03007                           v.sgn, v.nbits, v.ndigits, v.digit);
03008 
03009 }

sc_signed operator| ( uint64  u,
const sc_signed v 
) [friend]

sc_signed.cpp3070 行で定義されています。

03071 {
03072 
03073   if (u == 0)
03074     return sc_signed(v);
03075 
03076   CONVERT_INT64(u);
03077 
03078   if (v.sgn == SC_ZERO)
03079     return sc_signed(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud, false);
03080 
03081   // other cases
03082   return or_signed_friend(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud,
03083                           v.sgn, v.nbits, v.ndigits, v.digit);
03084 
03085 }

sc_signed operator| ( long  u,
const sc_signed v 
) [friend]

sc_signed.cpp3108 行で定義されています。

03109 {
03110 
03111   if (u == 0)
03112     return sc_signed(v);
03113 
03114   CONVERT_LONG(u);
03115 
03116   if (v.sgn == SC_ZERO)
03117     return sc_signed(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud, false);
03118 
03119   // other cases
03120   return or_signed_friend(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud,
03121                           v.sgn, v.nbits, v.ndigits, v.digit);
03122 
03123 }

sc_signed operator| ( unsigned long  u,
const sc_signed v 
) [friend]

sc_signed.cpp3184 行で定義されています。

03185 {
03186 
03187   if (u == 0)
03188     return sc_signed(v);
03189 
03190   CONVERT_LONG(u);
03191 
03192   if (v.sgn == SC_ZERO)
03193     return sc_signed(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud, false);
03194 
03195   // other cases
03196   return or_signed_friend(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud,
03197                           v.sgn, v.nbits, v.ndigits, v.digit);
03198 
03199 }

sc_signed operator| ( int  u,
const sc_signed v 
) [friend]

sc_signed.h1749 行で定義されています。

01750     { return operator|((long) u, v); }

sc_signed operator| ( unsigned int  u,
const sc_signed v 
) [friend]

sc_signed.h1751 行で定義されています。

01752     { return operator|((unsigned long) u, v); }

sc_signed operator| ( const sc_unsigned u,
const sc_int_base v 
) [friend]

sc_signed.cpp742 行で定義されています。

00743 { return operator | ( u, SCAST<int64>( v ) ); }

sc_signed operator| ( const sc_int_base u,
const sc_unsigned v 
) [friend]

sc_signed.cpp746 行で定義されています。

00747 { return operator | ( SCAST<int64>( u ), v ); }

sc_signed operator| ( const sc_signed u,
const sc_int_base v 
) [friend]

sc_signed.cpp750 行で定義されています。

00751 { return operator|(u, (int64) v); }

sc_signed operator| ( const sc_signed u,
const sc_uint_base v 
) [friend]

sc_signed.cpp951 行で定義されています。

00952 { return operator|(u, (uint64) v); }

sc_signed operator| ( const sc_int_base u,
const sc_signed v 
) [friend]

sc_signed.cpp754 行で定義されています。

00755 { return operator|((int64) u, v); }

sc_signed operator| ( const sc_uint_base u,
const sc_signed v 
) [friend]

sc_signed.cpp955 行で定義されています。

00956 { return operator|((uint64) u, v); }

sc_signed operator^ ( const sc_unsigned u,
const sc_signed v 
) [friend]

sc_signed.cpp3219 行で定義されています。

03220 {
03221 
03222   if (v.sgn == SC_ZERO)  // case 1
03223     return sc_signed(u);
03224 
03225   if (u.sgn == SC_ZERO)  // case 2
03226     return sc_signed(v);
03227 
03228   // other cases
03229   return xor_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit,
03230                            v.sgn, v.nbits, v.ndigits, v.digit);
03231 
03232 }

sc_signed operator^ ( const sc_signed u,
const sc_unsigned v 
) [friend]

sc_signed.cpp3236 行で定義されています。

03237 {
03238 
03239   if (v.sgn == SC_ZERO)  // case 1
03240     return sc_signed(u);
03241 
03242   if (u.sgn == SC_ZERO)  // case 2
03243     return sc_signed(v);
03244 
03245   // other cases
03246   return xor_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit,
03247                            v.sgn, v.nbits, v.ndigits, v.digit);
03248 
03249 }

sc_signed operator^ ( const sc_unsigned u,
int64  v 
) [friend]

sc_signed.cpp3308 行で定義されています。

03309 {
03310 
03311   if (v == 0)  // case 1
03312     return sc_signed(u);
03313 
03314   CONVERT_INT64(v);
03315 
03316   if (u.sgn == SC_ZERO)  // case 2
03317     return sc_signed(vs, BITS_PER_UINT64, DIGITS_PER_UINT64, vd, false);
03318 
03319   // other cases
03320   return xor_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit,
03321                            vs, BITS_PER_UINT64, DIGITS_PER_UINT64, vd);
03322 
03323 }

sc_signed operator^ ( const sc_unsigned u,
long  v 
) [friend]

sc_signed.cpp3420 行で定義されています。

03421 {
03422 
03423   if (v == 0)  // case 1
03424     return sc_signed(u);
03425 
03426   CONVERT_LONG(v);
03427 
03428   if (u.sgn == SC_ZERO)  // case 2
03429     return sc_signed(vs, BITS_PER_ULONG, DIGITS_PER_ULONG, vd, false);
03430 
03431   // other cases
03432   return xor_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit,
03433                            vs, BITS_PER_ULONG, DIGITS_PER_ULONG, vd);
03434 
03435 }

sc_signed operator^ ( const sc_unsigned u,
int  v 
) [friend]

sc_signed.h1781 行で定義されています。

01782     { return operator^(u, (long) v); }

sc_signed operator^ ( int64  u,
const sc_unsigned v 
) [friend]

sc_signed.cpp3327 行で定義されています。

03328 {
03329 
03330   if (u == 0)
03331     return sc_signed(v);
03332 
03333   CONVERT_INT64(u);
03334 
03335   if (v.sgn == SC_ZERO)
03336     return sc_signed(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud, false);
03337 
03338   // other cases
03339   return xor_signed_friend(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud,
03340                            v.sgn, v.nbits, v.ndigits, v.digit);
03341 
03342 }

sc_signed operator^ ( long  u,
const sc_unsigned v 
) [friend]

sc_signed.cpp3439 行で定義されています。

03440 {
03441 
03442   if (u == 0)
03443     return sc_signed(v);
03444 
03445   CONVERT_LONG(u);
03446 
03447   if (v.sgn == SC_ZERO)
03448     return sc_signed(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud, false);
03449 
03450   // other cases
03451   return xor_signed_friend(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud,
03452                            v.sgn, v.nbits, v.ndigits, v.digit);
03453 
03454 }

sc_signed operator^ ( int  u,
const sc_unsigned v 
) [friend]

sc_signed.h1786 行で定義されています。

01787     { return operator^((long) u, v); }

sc_signed operator^ ( const sc_signed u,
const sc_signed v 
) [friend]

sc_signed.cpp3253 行で定義されています。

03254 {
03255 
03256   if (v.sgn == SC_ZERO)  // case 1
03257     return sc_signed(u);
03258 
03259   if (u.sgn == SC_ZERO)  // case 2
03260     return sc_signed(v);
03261 
03262   // other cases
03263   return xor_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit,
03264                            v.sgn, v.nbits, v.ndigits, v.digit);
03265 
03266 }

sc_signed operator^ ( const sc_signed u,
int64  v 
) [friend]

sc_signed.cpp3270 行で定義されています。

03271 {
03272 
03273   if (v == 0)  // case 1
03274     return sc_signed(u);
03275 
03276   CONVERT_INT64(v);
03277 
03278   if (u.sgn == SC_ZERO)  // case 2
03279     return sc_signed(vs, BITS_PER_UINT64, DIGITS_PER_UINT64, vd, false);
03280 
03281   // other cases
03282   return xor_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit,
03283                            vs, BITS_PER_UINT64, DIGITS_PER_UINT64, vd);
03284 
03285 }

sc_signed operator^ ( const sc_signed u,
uint64  v 
) [friend]

sc_signed.cpp3346 行で定義されています。

03347 {
03348 
03349   if (v == 0)  // case 1
03350     return sc_signed(u);
03351 
03352   CONVERT_INT64(v);
03353 
03354   if (u.sgn == SC_ZERO)  // case 2
03355     return sc_signed(vs, BITS_PER_UINT64, DIGITS_PER_UINT64, vd, false);
03356 
03357   // other cases
03358   return xor_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit,
03359                            vs, BITS_PER_UINT64, DIGITS_PER_UINT64, vd);
03360 
03361 }

sc_signed operator^ ( const sc_signed u,
long  v 
) [friend]

sc_signed.cpp3382 行で定義されています。

03383 {
03384 
03385   if (v == 0)  // case 1
03386     return sc_signed(u);
03387 
03388   CONVERT_LONG(v);
03389 
03390   if (u.sgn == SC_ZERO)  // case 2
03391     return sc_signed(vs, BITS_PER_ULONG, DIGITS_PER_ULONG, vd, false);
03392 
03393   // other cases
03394   return xor_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit,
03395                            vs, BITS_PER_ULONG, DIGITS_PER_ULONG, vd);
03396 
03397 }

sc_signed operator^ ( const sc_signed u,
unsigned long  v 
) [friend]

sc_signed.cpp3458 行で定義されています。

03459 {
03460 
03461   if (v == 0)  // case 1
03462     return sc_signed(u);
03463 
03464   CONVERT_LONG(v);
03465 
03466   if (u.sgn == SC_ZERO)  // case 2
03467     return sc_signed(vs, BITS_PER_ULONG, DIGITS_PER_ULONG, vd, false);
03468 
03469   // other cases
03470   return xor_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit,
03471                            vs, BITS_PER_ULONG, DIGITS_PER_ULONG, vd);
03472 
03473 }

sc_signed operator^ ( const sc_signed u,
int  v 
) [friend]

sc_signed.h1794 行で定義されています。

01795     { return operator^(u, (long) v); }

sc_signed operator^ ( const sc_signed u,
unsigned int  v 
) [friend]

sc_signed.h1796 行で定義されています。

01797     { return operator^(u, (unsigned long) v); }

sc_signed operator^ ( int64  u,
const sc_signed v 
) [friend]

sc_signed.cpp3289 行で定義されています。

03290 {
03291 
03292   if (u == 0)
03293     return sc_signed(v);
03294 
03295   CONVERT_INT64(u);
03296 
03297   if (v.sgn == SC_ZERO)
03298     return sc_signed(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud, false);
03299 
03300   // other cases
03301   return xor_signed_friend(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud,
03302                            v.sgn, v.nbits, v.ndigits, v.digit);
03303 
03304 }

sc_signed operator^ ( uint64  u,
const sc_signed v 
) [friend]

sc_signed.cpp3364 行で定義されています。

03365 {
03366   if (u == 0)
03367     return sc_signed(v);
03368 
03369   CONVERT_INT64(u);
03370 
03371   if (v.sgn == SC_ZERO)
03372     return sc_signed(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud, false);
03373 
03374   // other cases
03375   return xor_signed_friend(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud,
03376                            v.sgn, v.nbits, v.ndigits, v.digit);
03377 
03378 }

sc_signed operator^ ( long  u,
const sc_signed v 
) [friend]

sc_signed.cpp3401 行で定義されています。

03402 {
03403 
03404   if (u == 0)
03405     return sc_signed(v);
03406 
03407   CONVERT_LONG(u);
03408 
03409   if (v.sgn == SC_ZERO)
03410     return sc_signed(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud, false);
03411 
03412   // other cases
03413   return xor_signed_friend(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud,
03414                            v.sgn, v.nbits, v.ndigits, v.digit);
03415 
03416 }

sc_signed operator^ ( unsigned long  u,
const sc_signed v 
) [friend]

sc_signed.cpp3476 行で定義されています。

03477 {
03478   if (u == 0)
03479     return sc_signed(v);
03480 
03481   CONVERT_LONG(u);
03482 
03483   if (v.sgn == SC_ZERO)
03484     return sc_signed(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud, false);
03485 
03486   // other cases
03487   return xor_signed_friend(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud,
03488                            v.sgn, v.nbits, v.ndigits, v.digit);
03489 
03490 }

sc_signed operator^ ( int  u,
const sc_signed v 
) [friend]

sc_signed.h1803 行で定義されています。

01804     { return operator^((long) u, v); }

sc_signed operator^ ( unsigned int  u,
const sc_signed v 
) [friend]

sc_signed.h1805 行で定義されています。

01806     { return operator^((unsigned long) u, v); }

sc_signed operator^ ( const sc_unsigned u,
const sc_int_base v 
) [friend]

sc_signed.cpp763 行で定義されています。

00764 { return operator ^ ( u, SCAST<int64>( v ) ); }

sc_signed operator^ ( const sc_int_base u,
const sc_unsigned v 
) [friend]

sc_signed.cpp767 行で定義されています。

00768 { return operator ^ ( SCAST<int64>( u ), v ); }

sc_signed operator^ ( const sc_signed u,
const sc_int_base v 
) [friend]

sc_signed.cpp771 行で定義されています。

00772 { return operator^(u, (int64) v); }

sc_signed operator^ ( const sc_signed u,
const sc_uint_base v 
) [friend]

sc_signed.cpp964 行で定義されています。

00965 { return operator^(u, (uint64) v); }

sc_signed operator^ ( const sc_int_base u,
const sc_signed v 
) [friend]

sc_signed.cpp775 行で定義されています。

00776 { return operator^((int64) u, v); }

sc_signed operator^ ( const sc_uint_base u,
const sc_signed v 
) [friend]

sc_signed.cpp968 行で定義されています。

00969 { return operator^((uint64) u, v); }

sc_unsigned operator<< ( const sc_unsigned u,
const sc_signed v 
) [friend]

sc_signed operator<< ( const sc_signed u,
const sc_unsigned v 
) [friend]

sc_signed.cpp3508 行で定義されています。

03509 {
03510   if (v.sgn == SC_ZERO)
03511     return sc_signed(u);
03512 
03513   return operator<<(u, v.to_ulong());
03514 }

sc_signed operator<< ( const sc_signed u,
const sc_signed v 
) [friend]

sc_signed operator<< ( const sc_signed u,
int64  v 
) [friend]

sc_signed operator<< ( const sc_signed u,
uint64  v 
) [friend]

sc_signed operator<< ( const sc_signed u,
long  v 
) [friend]

sc_signed operator<< ( const sc_signed u,
unsigned long  v 
) [friend]

sc_signed operator<< ( const sc_signed u,
int  v 
) [friend]

sc_signed.h1840 行で定義されています。

01841     { return operator<<(u, (long) v); }

sc_signed operator<< ( const sc_signed u,
unsigned int  v 
) [friend]

sc_signed.h1842 行で定義されています。

01843     { return operator<<(u, (unsigned long) v); }

sc_signed operator<< ( const sc_signed u,
const sc_int_base v 
) [friend]

sc_signed.cpp784 行で定義されています。

00785 { return operator<<(u, (int64) v); }

sc_signed operator<< ( const sc_signed u,
const sc_uint_base v 
) [friend]

sc_signed.cpp977 行で定義されています。

00978 { return operator<<(u, (uint64) v); }

sc_unsigned operator>> ( const sc_unsigned u,
const sc_signed v 
) [friend]

sc_signed operator>> ( const sc_signed u,
const sc_unsigned v 
) [friend]

sc_signed.cpp3525 行で定義されています。

03526 {
03527 
03528   if (v.sgn == SC_ZERO)
03529     return sc_signed(u);
03530 
03531   return operator>>(u, v.to_ulong());
03532 
03533 }

sc_signed operator>> ( const sc_signed u,
const sc_signed v 
) [friend]

sc_signed operator>> ( const sc_signed u,
int64  v 
) [friend]

sc_signed operator>> ( const sc_signed u,
uint64  v 
) [friend]

sc_signed operator>> ( const sc_signed u,
long  v 
) [friend]

sc_signed operator>> ( const sc_signed u,
unsigned long  v 
) [friend]

sc_signed operator>> ( const sc_signed u,
int  v 
) [friend]

sc_signed.h1871 行で定義されています。

01872     { return operator>>(u, (long) v); }

sc_signed operator>> ( const sc_signed u,
unsigned int  v 
) [friend]

sc_signed.h1873 行で定義されています。

01874     { return operator>>(u, (unsigned long) v); }

sc_signed operator>> ( const sc_signed u,
const sc_int_base v 
) [friend]

sc_signed.cpp793 行で定義されています。

00794 { return operator>>(u, (int64) v); }

sc_signed operator>> ( const sc_signed u,
const sc_uint_base v 
) [friend]

sc_signed.cpp986 行で定義されています。

00987 { return operator>>(u, (uint64) v); }

sc_signed operator+ ( const sc_signed u  )  [friend]

sc_signed.cpp3544 行で定義されています。

03545 {
03546   return sc_signed(u);
03547 }

sc_signed operator- ( const sc_signed u  )  [friend]

sc_signed.cpp3550 行で定義されています。

03551 {
03552   return sc_signed(u, -u.sgn);
03553 }

sc_signed operator- ( const sc_unsigned u  )  [friend]

sc_signed.cpp3556 行で定義されています。

03557 {
03558   return sc_signed(u, -u.sgn);
03559 }

bool operator== ( const sc_unsigned u,
const sc_signed v 
) [friend]

bool operator== ( const sc_signed u,
const sc_unsigned v 
) [friend]

bool operator== ( const sc_signed u,
const sc_signed v 
) [friend]

sc_signed.cpp3567 行で定義されています。

03568 {
03569  
03570   if (u.sgn != v.sgn)
03571     return false;
03572 
03573   if (&u == &v)
03574     return true;
03575   
03576   if (vec_skip_and_cmp(u.ndigits, u.digit, v.ndigits, v.digit) != 0)
03577     return false;
03578 
03579   return true;
03580 
03581 }

bool operator== ( const sc_signed u,
int64  v 
) [friend]

sc_signed.cpp3585 行で定義されています。

03586 {
03587 
03588   CONVERT_INT64(v);
03589 
03590   if (u.sgn != vs)
03591     return false;
03592 
03593   if (vec_skip_and_cmp(u.ndigits, u.digit, DIGITS_PER_INT64, vd) != 0)
03594     return false;
03595 
03596   return true;
03597   
03598 }

bool operator== ( const sc_signed u,
uint64  v 
) [friend]

sc_signed.cpp3619 行で定義されています。

03620 {
03621 
03622   CONVERT_INT64(v);
03623 
03624   if (u.sgn != vs)
03625     return false;
03626 
03627   if (vec_skip_and_cmp(u.ndigits, u.digit, DIGITS_PER_INT64, vd) != 0)
03628     return false;
03629 
03630   return true;
03631   
03632 }

bool operator== ( const sc_signed u,
long  v 
) [friend]

sc_signed.cpp3653 行で定義されています。

03654 {
03655 
03656   CONVERT_LONG(v);
03657 
03658   if (u.sgn != vs)
03659     return false;
03660 
03661   if (vec_skip_and_cmp(u.ndigits, u.digit, DIGITS_PER_LONG, vd) != 0)
03662     return false;
03663 
03664   return true;
03665   
03666 }

bool operator== ( const sc_signed u,
unsigned long  v 
) [friend]

sc_signed.cpp3687 行で定義されています。

03688 {
03689 
03690   CONVERT_LONG(v);
03691 
03692   if (u.sgn != vs)
03693     return false;
03694 
03695   if (vec_skip_and_cmp(u.ndigits, u.digit, DIGITS_PER_LONG, vd) != 0)
03696     return false;
03697 
03698   return true;
03699   
03700 }

bool operator== ( const sc_signed u,
int  v 
) [friend]

sc_signed.h1909 行で定義されています。

01910     { return operator==(u, (long) v); }

bool operator== ( const sc_signed u,
unsigned int  v 
) [friend]

sc_signed.h1911 行で定義されています。

01912     { return operator==(u, (unsigned long) v); }

bool operator== ( int64  u,
const sc_signed v 
) [friend]

sc_signed.cpp3602 行で定義されています。

03603 {
03604 
03605   CONVERT_INT64(u);
03606 
03607   if (us != v.sgn)
03608     return false;
03609 
03610   if (vec_skip_and_cmp(DIGITS_PER_INT64, ud, v.ndigits, v.digit) != 0)
03611     return false;
03612 
03613   return true;
03614   
03615 }

bool operator== ( uint64  u,
const sc_signed v 
) [friend]

sc_signed.cpp3636 行で定義されています。

03637 {
03638 
03639   CONVERT_INT64(u);
03640 
03641   if (us != v.sgn)
03642     return false;
03643 
03644   if (vec_skip_and_cmp(DIGITS_PER_INT64, ud, v.ndigits, v.digit) != 0)
03645     return false;
03646 
03647   return true;
03648   
03649 }

bool operator== ( long  u,
const sc_signed v 
) [friend]

sc_signed.cpp3670 行で定義されています。

03671 {
03672 
03673   CONVERT_LONG(u);
03674 
03675   if (us != v.sgn)
03676     return false;
03677 
03678   if (vec_skip_and_cmp(DIGITS_PER_LONG, ud, v.ndigits, v.digit) != 0)
03679     return false;
03680 
03681   return true;
03682   
03683 }

bool operator== ( unsigned long  u,
const sc_signed v 
) [friend]

sc_signed.cpp3704 行で定義されています。

03705 {
03706 
03707   CONVERT_LONG(u);
03708 
03709   if (us != v.sgn)
03710     return false;
03711 
03712   if (vec_skip_and_cmp(DIGITS_PER_LONG, ud, v.ndigits, v.digit) != 0)
03713     return false;
03714 
03715   return true;
03716   
03717 }

bool operator== ( int  u,
const sc_signed v 
) [friend]

sc_signed.h1918 行で定義されています。

01919     { return operator==((long) u, v); }

bool operator== ( unsigned int  u,
const sc_signed v 
) [friend]

sc_signed.h1920 行で定義されています。

01921     { return operator==((unsigned long) u, v); }

bool operator== ( const sc_signed u,
const sc_int_base v 
) [friend]

sc_signed.cpp802 行で定義されています。

00803 { return operator==(u, (int64) v); }

bool operator== ( const sc_signed u,
const sc_uint_base v 
) [friend]

sc_signed.cpp995 行で定義されています。

00996 { return operator==(u, (uint64) v); }

bool operator== ( const sc_int_base u,
const sc_signed v 
) [friend]

sc_signed.cpp806 行で定義されています。

00807 { return operator==((int64) u, v); }

bool operator== ( const sc_uint_base u,
const sc_signed v 
) [friend]

sc_signed.cpp999 行で定義されています。

01000 { return operator==((uint64) u, v); }

bool operator!= ( const sc_unsigned u,
const sc_signed v 
) [friend]

bool operator!= ( const sc_signed u,
const sc_unsigned v 
) [friend]

bool operator!= ( const sc_signed u,
const sc_signed v 
) [friend]

bool operator!= ( const sc_signed u,
int64  v 
) [friend]

bool operator!= ( const sc_signed u,
uint64  v 
) [friend]

bool operator!= ( const sc_signed u,
long  v 
) [friend]

bool operator!= ( const sc_signed u,
unsigned long  v 
) [friend]

bool operator!= ( const sc_signed u,
int  v 
) [friend]

sc_signed.h1938 行で定義されています。

01939     { return operator!=(u, (long) v); }

bool operator!= ( const sc_signed u,
unsigned int  v 
) [friend]

sc_signed.h1940 行で定義されています。

01941     { return operator!=(u, (unsigned long) v); }

bool operator!= ( int64  u,
const sc_signed v 
) [friend]

bool operator!= ( uint64  u,
const sc_signed v 
) [friend]

bool operator!= ( long  u,
const sc_signed v 
) [friend]

bool operator!= ( unsigned long  u,
const sc_signed v 
) [friend]

bool operator!= ( int  u,
const sc_signed v 
) [friend]

sc_signed.h1947 行で定義されています。

01948     { return operator!=((long) u, v); }

bool operator!= ( unsigned int  u,
const sc_signed v 
) [friend]

sc_signed.h1949 行で定義されています。

01950     { return operator!=((unsigned long) u, v); }

bool operator!= ( const sc_signed u,
const sc_int_base v 
) [friend]

sc_signed.cpp811 行で定義されています。

00812 { return operator!=(u, (int64) v); }

bool operator!= ( const sc_signed u,
const sc_uint_base v 
) [friend]

sc_signed.cpp1004 行で定義されています。

01005 { return operator!=(u, (uint64) v); }

bool operator!= ( const sc_int_base u,
const sc_signed v 
) [friend]

sc_signed.cpp815 行で定義されています。

00816 { return operator!=((int64) u, v); }

bool operator!= ( const sc_uint_base u,
const sc_signed v 
) [friend]

sc_signed.cpp1008 行で定義されています。

01009 { return operator!=((uint64) u, v); }

bool operator< ( const sc_unsigned u,
const sc_signed v 
) [friend]

bool operator< ( const sc_signed u,
const sc_unsigned v 
) [friend]

bool operator< ( const sc_signed u,
const sc_signed v 
) [friend]

sc_signed.cpp3732 行で定義されています。

03733 {
03734 
03735   if (u.sgn < v.sgn)
03736     return true;
03737 
03738   if (u.sgn > v.sgn)
03739     return false;
03740 
03741   // u.sgn == v.sgn
03742 
03743   if (&u == &v)
03744     return false;
03745 
03746   if (u.sgn == SC_POS) {
03747 
03748     if (vec_skip_and_cmp(u.ndigits, u.digit, v.ndigits, v.digit) < 0)
03749       return true;
03750 
03751   }
03752   else if (u.sgn == SC_NEG) {
03753 
03754     if (vec_skip_and_cmp(u.ndigits, u.digit, v.ndigits, v.digit) > 0)
03755       return true;
03756 
03757   }
03758 
03759   return false;
03760 
03761 }

bool operator< ( const sc_signed u,
int64  v 
) [friend]

sc_signed.cpp3765 行で定義されています。

03766 {
03767 
03768   CONVERT_INT64(v);
03769 
03770   if (u.sgn < vs)
03771     return true;
03772 
03773   if (u.sgn > vs)
03774     return false;
03775 
03776   // u.sgn == vs
03777 
03778   if (vs == SC_POS) {
03779 
03780     if (vec_skip_and_cmp(u.ndigits, u.digit, DIGITS_PER_INT64, vd) < 0)
03781       return true;
03782 
03783   }
03784   else if (vs == SC_NEG) {
03785 
03786     if (vec_skip_and_cmp(u.ndigits, u.digit, DIGITS_PER_INT64, vd) > 0)
03787       return true;
03788 
03789   }
03790 
03791   return false;
03792 
03793 }

bool operator< ( const sc_signed u,
uint64  v 
) [friend]

sc_signed.cpp3829 行で定義されています。

03830 {
03831 
03832   CONVERT_INT64(v);
03833 
03834   if (u.sgn < vs)
03835     return true;
03836 
03837   if (u.sgn > vs)
03838     return false;
03839 
03840   // u.sgn == vs
03841 
03842   if (vs == SC_POS) {
03843 
03844     if (vec_skip_and_cmp(u.ndigits, u.digit, DIGITS_PER_INT64, vd) < 0)
03845       return true;
03846     
03847   }
03848 
03849   return false;
03850 
03851 }

bool operator< ( const sc_signed u,
long  v 
) [friend]

sc_signed.cpp3881 行で定義されています。

03882 {
03883 
03884   CONVERT_LONG(v);
03885 
03886   if (u.sgn < vs)
03887     return true;
03888 
03889   if (u.sgn > vs)
03890     return false;
03891 
03892   // u.sgn == vs
03893 
03894   if (vs == SC_POS) {
03895 
03896     if (vec_skip_and_cmp(u.ndigits, u.digit, DIGITS_PER_LONG, vd) < 0)
03897       return true;
03898 
03899   }
03900   else if (vs == SC_NEG) {
03901 
03902     if (vec_skip_and_cmp(u.ndigits, u.digit, DIGITS_PER_LONG, vd) > 0)
03903       return true;
03904 
03905   }
03906 
03907   return false;
03908 
03909 }

bool operator< ( const sc_signed u,
unsigned long  v 
) [friend]

sc_signed.cpp3943 行で定義されています。

03944 {
03945   CONVERT_LONG(v);
03946 
03947   if (u.sgn < vs)
03948     return true;
03949 
03950   if (u.sgn > vs)
03951     return false;
03952 
03953   // u.sgn == vs
03954 
03955   if (vs == SC_POS) {
03956 
03957     if (vec_skip_and_cmp(u.ndigits, u.digit, DIGITS_PER_LONG, vd) < 0)
03958       return true;
03959     
03960   }
03961 
03962   return false;
03963 }

bool operator< ( const sc_signed u,
int  v 
) [friend]

sc_signed.h1967 行で定義されています。

01968     { return operator<(u, (long) v); }

bool operator< ( const sc_signed u,
unsigned int  v 
) [friend]

sc_signed.h1969 行で定義されています。

01970     { return operator<(u, (unsigned long) v); }

bool operator< ( int64  u,
const sc_signed v 
) [friend]

sc_signed.cpp3797 行で定義されています。

03798 {
03799 
03800   CONVERT_INT64(u);
03801 
03802   if (us < v.sgn)
03803     return true;
03804 
03805   if (us > v.sgn)
03806     return false;
03807 
03808   // us == v.sgn
03809 
03810   if (us == SC_POS) {
03811 
03812     if (vec_skip_and_cmp(DIGITS_PER_INT64, ud, v.ndigits, v.digit) < 0)
03813       return true;
03814 
03815   }
03816   else if (us == SC_NEG) {
03817 
03818     if (vec_skip_and_cmp(DIGITS_PER_INT64, ud, v.ndigits, v.digit) > 0)
03819       return true;
03820 
03821   }
03822 
03823   return false;
03824 
03825 }

bool operator< ( uint64  u,
const sc_signed v 
) [friend]

sc_signed.cpp3855 行で定義されています。

03856 {
03857 
03858   CONVERT_INT64(u);
03859 
03860   if (us < v.sgn)
03861     return true;
03862 
03863   if (us > v.sgn)
03864     return false;
03865 
03866   // us == v.sgn
03867 
03868   if (us == SC_POS) {
03869 
03870     if (vec_skip_and_cmp(DIGITS_PER_INT64, ud, v.ndigits, v.digit) < 0)
03871       return true;
03872 
03873   }
03874 
03875   return false;    
03876 
03877 }

bool operator< ( long  u,
const sc_signed v 
) [friend]

sc_signed.cpp3913 行で定義されています。

03914 {
03915   CONVERT_LONG(u);
03916 
03917   if (us < v.sgn)
03918     return true;
03919 
03920   if (us > v.sgn)
03921     return false;
03922 
03923   // us == v.sgn
03924 
03925   if (us == SC_POS) {
03926 
03927     if (vec_skip_and_cmp(DIGITS_PER_LONG, ud, v.ndigits, v.digit) < 0)
03928       return true;
03929 
03930   }
03931   else if (us == SC_NEG) {
03932 
03933     if (vec_skip_and_cmp(DIGITS_PER_LONG, ud, v.ndigits, v.digit) > 0)
03934       return true;
03935 
03936   }
03937 
03938   return false;
03939 }

bool operator< ( unsigned long  u,
const sc_signed v 
) [friend]

sc_signed.cpp3967 行で定義されています。

03968 {
03969   CONVERT_LONG(u);
03970 
03971   if (us < v.sgn)
03972     return true;
03973 
03974   if (us > v.sgn)
03975     return false;
03976 
03977   // us == v.sgn
03978 
03979   if (us == SC_POS) {
03980 
03981     if (vec_skip_and_cmp(DIGITS_PER_LONG, ud, v.ndigits, v.digit) < 0)
03982       return true;
03983 
03984   }
03985 
03986   return false;    
03987 }

bool operator< ( int  u,
const sc_signed v 
) [friend]

sc_signed.h1976 行で定義されています。

01977     { return operator<((long) u, v); }

bool operator< ( unsigned int  u,
const sc_signed v 
) [friend]

sc_signed.h1978 行で定義されています。

01979     { return operator<((unsigned long) u, v); }

bool operator< ( const sc_signed u,
const sc_int_base v 
) [friend]

sc_signed.cpp820 行で定義されています。

00821 { return operator<(u, (int64) v); }

bool operator< ( const sc_signed u,
const sc_uint_base v 
) [friend]

sc_signed.cpp1013 行で定義されています。

01014 { return operator<(u, (uint64) v); }

bool operator< ( const sc_int_base u,
const sc_signed v 
) [friend]

sc_signed.cpp824 行で定義されています。

00825 { return operator<((int64) u, v); }

bool operator< ( const sc_uint_base u,
const sc_signed v 
) [friend]

sc_signed.cpp1017 行で定義されています。

01018 { return operator<((uint64) u, v); }

bool operator<= ( const sc_unsigned u,
const sc_signed v 
) [friend]

bool operator<= ( const sc_signed u,
const sc_unsigned v 
) [friend]

bool operator<= ( const sc_signed u,
const sc_signed v 
) [friend]

bool operator<= ( const sc_signed u,
int64  v 
) [friend]

bool operator<= ( const sc_signed u,
uint64  v 
) [friend]

bool operator<= ( const sc_signed u,
long  v 
) [friend]

bool operator<= ( const sc_signed u,
unsigned long  v 
) [friend]

bool operator<= ( const sc_signed u,
int  v 
) [friend]

sc_signed.h1996 行で定義されています。

01997     { return operator<=(u, (long) v); }

bool operator<= ( const sc_signed u,
unsigned int  v 
) [friend]

sc_signed.h1998 行で定義されています。

01999     { return operator<=(u, (unsigned long) v); }

bool operator<= ( int64  u,
const sc_signed v 
) [friend]

bool operator<= ( uint64  u,
const sc_signed v 
) [friend]

bool operator<= ( long  u,
const sc_signed v 
) [friend]

bool operator<= ( unsigned long  u,
const sc_signed v 
) [friend]

bool operator<= ( int  u,
const sc_signed v 
) [friend]

sc_signed.h2005 行で定義されています。

02006     { return operator<=((long) u, v); }

bool operator<= ( unsigned int  u,
const sc_signed v 
) [friend]

sc_signed.h2007 行で定義されています。

02008     { return operator<=((unsigned long) u, v); }

bool operator<= ( const sc_signed u,
const sc_int_base v 
) [friend]

sc_signed.cpp829 行で定義されています。

00830 { return operator<=(u, (int64) v); }

bool operator<= ( const sc_signed u,
const sc_uint_base v 
) [friend]

sc_signed.cpp1022 行で定義されています。

01023 { return operator<=(u, (uint64) v); }

bool operator<= ( const sc_int_base u,
const sc_signed v 
) [friend]

sc_signed.cpp833 行で定義されています。

00834 { return operator<=((int64) u, v); }

bool operator<= ( const sc_uint_base u,
const sc_signed v 
) [friend]

sc_signed.cpp1026 行で定義されています。

01027 { return operator<=((uint64) u, v); }

bool operator> ( const sc_unsigned u,
const sc_signed v 
) [friend]

bool operator> ( const sc_signed u,
const sc_unsigned v 
) [friend]

bool operator> ( const sc_signed u,
const sc_signed v 
) [friend]

bool operator> ( const sc_signed u,
int64  v 
) [friend]

bool operator> ( const sc_signed u,
uint64  v 
) [friend]

bool operator> ( const sc_signed u,
long  v 
) [friend]

bool operator> ( const sc_signed u,
unsigned long  v 
) [friend]

bool operator> ( const sc_signed u,
int  v 
) [friend]

sc_signed.h2025 行で定義されています。

02026     { return operator>(u, (long) v); }

bool operator> ( const sc_signed u,
unsigned int  v 
) [friend]

sc_signed.h2027 行で定義されています。

02028     { return operator>(u, (unsigned long) v); }

bool operator> ( int64  u,
const sc_signed v 
) [friend]

bool operator> ( uint64  u,
const sc_signed v 
) [friend]

bool operator> ( long  u,
const sc_signed v 
) [friend]

bool operator> ( unsigned long  u,
const sc_signed v 
) [friend]

bool operator> ( int  u,
const sc_signed v 
) [friend]

sc_signed.h2034 行で定義されています。

02035     { return operator>((long) u, v); }

bool operator> ( unsigned int  u,
const sc_signed v 
) [friend]

sc_signed.h2036 行で定義されています。

02037     { return operator>((unsigned long) u, v); }

bool operator> ( const sc_signed u,
const sc_int_base v 
) [friend]

sc_signed.cpp838 行で定義されています。

00839 { return operator>(u, (int64) v); }

bool operator> ( const sc_signed u,
const sc_uint_base v 
) [friend]

sc_signed.cpp1031 行で定義されています。

01032 { return operator>(u, (uint64) v); }

bool operator> ( const sc_int_base u,
const sc_signed v 
) [friend]

sc_signed.cpp842 行で定義されています。

00843 { return operator>((int64) u, v); }

bool operator> ( const sc_uint_base u,
const sc_signed v 
) [friend]

sc_signed.cpp1035 行で定義されています。

01036 { return operator>((uint64) u, v); }

bool operator>= ( const sc_unsigned u,
const sc_signed v 
) [friend]

bool operator>= ( const sc_signed u,
const sc_unsigned v 
) [friend]

bool operator>= ( const sc_signed u,
const sc_signed v 
) [friend]

bool operator>= ( const sc_signed u,
int64  v 
) [friend]

bool operator>= ( const sc_signed u,
uint64  v 
) [friend]

bool operator>= ( const sc_signed u,
long  v 
) [friend]

bool operator>= ( const sc_signed u,
unsigned long  v 
) [friend]

bool operator>= ( const sc_signed u,
int  v 
) [friend]

sc_signed.h2054 行で定義されています。

02055     { return operator>=(u, (long) v); }

bool operator>= ( const sc_signed u,
unsigned int  v 
) [friend]

sc_signed.h2056 行で定義されています。

02057     { return operator>=(u, (unsigned long) v); }

bool operator>= ( int64  u,
const sc_signed v 
) [friend]

bool operator>= ( uint64  u,
const sc_signed v 
) [friend]

bool operator>= ( long  u,
const sc_signed v 
) [friend]

bool operator>= ( unsigned long  u,
const sc_signed v 
) [friend]

bool operator>= ( int  u,
const sc_signed v 
) [friend]

sc_signed.h2063 行で定義されています。

02064     { return operator>=((long) u, v); }

bool operator>= ( unsigned int  u,
const sc_signed v 
) [friend]

sc_signed.h2065 行で定義されています。

02066     { return operator>=((unsigned long) u, v); }

bool operator>= ( const sc_signed u,
const sc_int_base v 
) [friend]

sc_signed.cpp847 行で定義されています。

00848 { return operator>=(u, (int64) v); }

bool operator>= ( const sc_signed u,
const sc_uint_base v 
) [friend]

sc_signed.cpp1040 行で定義されています。

01041 { return operator>=(u, (uint64) v); }

bool operator>= ( const sc_int_base u,
const sc_signed v 
) [friend]

sc_signed.cpp851 行で定義されています。

00852 { return operator>=((int64) u, v); }

bool operator>= ( const sc_uint_base u,
const sc_signed v 
) [friend]

sc_signed.cpp1044 行で定義されています。

01045 { return operator>=((uint64) u, v); }

sc_signed operator~ ( const sc_signed u  )  [friend]

sc_signed add_signed_friend ( small_type  us,
int  unb,
int  und,
const sc_digit ud,
small_type  vs,
int  vnb,
int  vnd,
const sc_digit vd 
) [friend]

sc_signed sub_signed_friend ( small_type  us,
int  unb,
int  und,
const sc_digit ud,
small_type  vs,
int  vnb,
int  vnd,
const sc_digit vd 
) [friend]

sc_signed mul_signed_friend ( small_type  s,
int  unb,
int  und,
const sc_digit ud,
int  vnb,
int  vnd,
const sc_digit vd 
) [friend]

sc_signed div_signed_friend ( small_type  s,
int  unb,
int  und,
const sc_digit ud,
int  vnb,
int  vnd,
const sc_digit vd 
) [friend]

sc_signed mod_signed_friend ( small_type  us,
int  unb,
int  und,
const sc_digit ud,
int  vnb,
int  vnd,
const sc_digit vd 
) [friend]

sc_signed and_signed_friend ( small_type  us,
int  unb,
int  und,
const sc_digit ud,
small_type  vs,
int  vnb,
int  vnd,
const sc_digit vd 
) [friend]

sc_signed or_signed_friend ( small_type  us,
int  unb,
int  und,
const sc_digit ud,
small_type  vs,
int  vnb,
int  vnd,
const sc_digit vd 
) [friend]

sc_signed xor_signed_friend ( small_type  us,
int  unb,
int  und,
const sc_digit ud,
small_type  vs,
int  vnb,
int  vnd,
const sc_digit vd 
) [friend]


変数

sc_signed.h2148 行で定義されています。

int sc_dt::sc_signed::nbits [private]

sc_signed.h2149 行で定義されています。

sc_signed.h2150 行で定義されています。

sc_signed.h2155 行で定義されています。


このクラスの説明は次のファイルから生成されました:

SystemCに対してFri Jun 6 20:12:59 2008に生成されました。  doxygen 1.5.6