SystemC  2.3.2
Accellera SystemC proof-of-concept library
sc_fix.h File Reference
Include dependency graph for sc_fix.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  sc_dt::sc_fix
 "Unconstrained" signed fixed-point class; arbitrary precision. More...
 
class  sc_dt::sc_fix_fast
 "Unconstrained" signed fixed-point class; limited precision. More...
 

Namespaces

 sc_dt
 

Macros

#define DECL_CTORS_T(tp)
 
#define DECL_CTORS_T_A(tp)
 
#define DECL_CTORS_T_B(tp)
 
#define DECL_ASN_OP_T(op, tp)   sc_fix& operator op ( tp );
 
#define DECL_ASN_OP_OTHER(op)
 
#define DECL_ASN_OP(op)
 
#define DECL_CTORS_T(tp)
 
#define DECL_CTORS_T_A(tp)
 
#define DECL_CTORS_T_B(tp)
 
#define DECL_ASN_OP_T(op, tp)   sc_fix_fast& operator op ( tp );
 
#define DECL_ASN_OP_OTHER(op)
 
#define DECL_ASN_OP(op)
 
#define DEFN_CTORS_T_A(tp)
 
#define DEFN_CTORS_T_B(tp)
 
#define DEFN_BIN_OP_T(op, op2, tp1, tp2)
 
#define DEFN_BIN_FNC_T(fnc, op2, tp1, tp2)
 
#define DEFN_ASN_OP_T(op, tp)
 
#define DEFN_ASN_OP_OTHER(op)
 
#define DEFN_ASN_OP(op)
 
#define DEFN_ASN_OP_T(op, op2, tp)
 
#define DEFN_CTORS_T_A(tp)
 
#define DEFN_CTORS_T_B(tp)
 
#define DEFN_BIN_OP_T(op, op2, tp1, tp2)
 
#define DEFN_BIN_FNC_T(fnc, op2, tp1, tp2)
 
#define DEFN_ASN_OP_T(op, tp)
 
#define DEFN_ASN_OP_OTHER(op)
 
#define DEFN_ASN_OP(op)
 
#define DEFN_ASN_OP_T(op, op2, tp)
 

Functions

void sc_dt::b_not (sc_fix &c, const sc_fix &a)
 
void sc_dt::b_not (sc_fix_fast &c, const sc_fix_fast &a)
 

Macro Definition Documentation

◆ DECL_ASN_OP [1/2]

#define DECL_ASN_OP (   op)
Value:
DECL_ASN_OP_T(op,int) \
DECL_ASN_OP_T(op,unsigned int) \
DECL_ASN_OP_T(op,long) \
DECL_ASN_OP_T(op,unsigned long) \
DECL_ASN_OP_T(op,float) \
DECL_ASN_OP_T(op,double) \
DECL_ASN_OP_T(op,const char*) \
DECL_ASN_OP_T(op,const sc_fxval&) \
DECL_ASN_OP_T(op,const sc_fxval_fast&) \
DECL_ASN_OP_T(op,const sc_fxnum&) \
DECL_ASN_OP_T(op,const sc_fxnum_fast&) \
DECL_ASN_OP_OTHER(op)
#define DECL_ASN_OP_T(op, tp)
Definition: sc_fix.h:464

Definition at line 479 of file sc_fix.h.

◆ DECL_ASN_OP [2/2]

#define DECL_ASN_OP (   op)
Value:
DECL_ASN_OP_T(op,int) \
DECL_ASN_OP_T(op,unsigned int) \
DECL_ASN_OP_T(op,long) \
DECL_ASN_OP_T(op,unsigned long) \
DECL_ASN_OP_T(op,float) \
DECL_ASN_OP_T(op,double) \
DECL_ASN_OP_T(op,const char*) \
DECL_ASN_OP_T(op,const sc_fxval&) \
DECL_ASN_OP_T(op,const sc_fxval_fast&) \
DECL_ASN_OP_T(op,const sc_fxnum&) \
DECL_ASN_OP_T(op,const sc_fxnum_fast&) \
DECL_ASN_OP_OTHER(op)
#define DECL_ASN_OP_T(op, tp)
Definition: sc_fix.h:464

Definition at line 479 of file sc_fix.h.

◆ DECL_ASN_OP_OTHER [1/2]

#define DECL_ASN_OP_OTHER (   op)
Value:
DECL_ASN_OP_T(op,uint64) \
DECL_ASN_OP_T(op,const sc_int_base&) \
DECL_ASN_OP_T(op,const sc_uint_base&) \
DECL_ASN_OP_T(op,const sc_signed&) \
DECL_ASN_OP_T(op,const sc_unsigned&)
int64_t int64
Definition: sc_nbdefs.h:188
uint64_t uint64
Definition: sc_nbdefs.h:189
#define DECL_ASN_OP_T(op, tp)
Definition: sc_fix.h:464

Definition at line 468 of file sc_fix.h.

◆ DECL_ASN_OP_OTHER [2/2]

#define DECL_ASN_OP_OTHER (   op)
Value:
DECL_ASN_OP_T(op,uint64) \
DECL_ASN_OP_T(op,const sc_int_base&) \
DECL_ASN_OP_T(op,const sc_uint_base&) \
DECL_ASN_OP_T(op,const sc_signed&) \
DECL_ASN_OP_T(op,const sc_unsigned&)
int64_t int64
Definition: sc_nbdefs.h:188
uint64_t uint64
Definition: sc_nbdefs.h:189
#define DECL_ASN_OP_T(op, tp)
Definition: sc_fix.h:464

Definition at line 468 of file sc_fix.h.

◆ DECL_ASN_OP_T [1/2]

#define DECL_ASN_OP_T (   op,
  tp 
)    sc_fix& operator op ( tp );

Definition at line 464 of file sc_fix.h.

◆ DECL_ASN_OP_T [2/2]

#define DECL_ASN_OP_T (   op,
  tp 
)    sc_fix_fast& operator op ( tp );

Definition at line 464 of file sc_fix.h.

◆ DECL_CTORS_T [1/2]

#define DECL_CTORS_T (   tp)

Definition at line 347 of file sc_fix.h.

◆ DECL_CTORS_T [2/2]

#define DECL_CTORS_T (   tp)

Definition at line 347 of file sc_fix.h.

◆ DECL_CTORS_T_A [1/2]

#define DECL_CTORS_T_A (   tp)
Value:
sc_fix( tp, \
sc_fxnum_observer* = 0 ); \
DECL_CTORS_T(tp)

Definition at line 394 of file sc_fix.h.

◆ DECL_CTORS_T_A [2/2]

#define DECL_CTORS_T_A (   tp)
Value:
sc_fix_fast( tp, \
sc_fxnum_fast_observer* = 0 ); \
DECL_CTORS_T(tp)

Definition at line 394 of file sc_fix.h.

◆ DECL_CTORS_T_B [1/2]

#define DECL_CTORS_T_B (   tp)
Value:
explicit sc_fix( tp, \
sc_fxnum_observer* = 0 ); \
DECL_CTORS_T(tp)

Definition at line 399 of file sc_fix.h.

◆ DECL_CTORS_T_B [2/2]

#define DECL_CTORS_T_B (   tp)
Value:
explicit sc_fix_fast( tp, \
sc_fxnum_fast_observer* = 0 ); \
DECL_CTORS_T(tp)

Definition at line 399 of file sc_fix.h.

◆ DEFN_ASN_OP [1/2]

#define DEFN_ASN_OP (   op)
Value:
DEFN_ASN_OP_T(op,int) \
DEFN_ASN_OP_T(op,unsigned int) \
DEFN_ASN_OP_T(op,long) \
DEFN_ASN_OP_T(op,unsigned long) \
DEFN_ASN_OP_T(op,float) \
DEFN_ASN_OP_T(op,double) \
DEFN_ASN_OP_T(op,const char*) \
DEFN_ASN_OP_T(op,const sc_fxval&) \
DEFN_ASN_OP_T(op,const sc_fxval_fast&) \
DEFN_ASN_OP_T(op,const sc_fxnum&) \
DEFN_ASN_OP_T(op,const sc_fxnum_fast&) \
DEFN_ASN_OP_OTHER(op)
#define DEFN_ASN_OP_T(op, tp)
Definition: sc_fix.h:1876

Definition at line 1847 of file sc_fix.h.

◆ DEFN_ASN_OP [2/2]

#define DEFN_ASN_OP (   op)
Value:
DEFN_ASN_OP_T(op,int) \
DEFN_ASN_OP_T(op,unsigned int) \
DEFN_ASN_OP_T(op,long) \
DEFN_ASN_OP_T(op,unsigned long) \
DEFN_ASN_OP_T(op,float) \
DEFN_ASN_OP_T(op,double) \
DEFN_ASN_OP_T(op,const char*) \
DEFN_ASN_OP_T(op,const sc_fxval&) \
DEFN_ASN_OP_T(op,const sc_fxval_fast&) \
DEFN_ASN_OP_T(op,const sc_fxnum&) \
DEFN_ASN_OP_T(op,const sc_fxnum_fast&) \
DEFN_ASN_OP_OTHER(op)
#define DEFN_ASN_OP_T(op, tp)
Definition: sc_fix.h:1876

Definition at line 1847 of file sc_fix.h.

◆ DEFN_ASN_OP_OTHER [1/2]

#define DEFN_ASN_OP_OTHER (   op)
Value:
DEFN_ASN_OP_T(op,uint64) \
DEFN_ASN_OP_T(op,const sc_int_base&) \
DEFN_ASN_OP_T(op,const sc_uint_base&) \
DEFN_ASN_OP_T(op,const sc_signed&) \
DEFN_ASN_OP_T(op,const sc_unsigned&)
int64_t int64
Definition: sc_nbdefs.h:188
uint64_t uint64
Definition: sc_nbdefs.h:189
#define DEFN_ASN_OP_T(op, tp)
Definition: sc_fix.h:1876

Definition at line 1836 of file sc_fix.h.

◆ DEFN_ASN_OP_OTHER [2/2]

#define DEFN_ASN_OP_OTHER (   op)
Value:
DEFN_ASN_OP_T(op,uint64) \
DEFN_ASN_OP_T(op,const sc_int_base&) \
DEFN_ASN_OP_T(op,const sc_uint_base&) \
DEFN_ASN_OP_T(op,const sc_signed&) \
DEFN_ASN_OP_T(op,const sc_unsigned&)
int64_t int64
Definition: sc_nbdefs.h:188
uint64_t uint64
Definition: sc_nbdefs.h:189
#define DEFN_ASN_OP_T(op, tp)
Definition: sc_fix.h:1876

Definition at line 1836 of file sc_fix.h.

◆ DEFN_ASN_OP_T [1/4]

#define DEFN_ASN_OP_T (   op,
  tp 
)
Value:
inline \
sc_fix& \
sc_fix::operator op ( tp a ) \
{ \
sc_fxnum::operator op( a ); \
return *this; \
}

Definition at line 1876 of file sc_fix.h.

◆ DEFN_ASN_OP_T [2/4]

#define DEFN_ASN_OP_T (   op,
  op2,
  tp 
)
Value:
inline \
sc_fix& \
sc_fix::operator op ( const tp& b ) \
{ \
SC_FXNUM_OBSERVER_READ_( *this ) \
b.observer_read(); \
int iwl_c = iwl(); \
for( int i = iwl_c - wl(); i < iwl_c; ++ i ) \
set_bit( i, get_bit( i ) op2 b.get_bit( i ) ); \
cast(); \
SC_FXNUM_OBSERVER_WRITE_( *this ) \
return *this; \
}
uint64 const sc_uint_base int b
Definition: sc_fxval.h:1005

Definition at line 1876 of file sc_fix.h.

◆ DEFN_ASN_OP_T [3/4]

#define DEFN_ASN_OP_T (   op,
  tp 
)
Value:
inline \
sc_fix_fast& \
sc_fix_fast::operator op ( tp a ) \
{ \
sc_fxnum_fast::operator op( a ); \
return *this; \
}

Definition at line 1876 of file sc_fix.h.

◆ DEFN_ASN_OP_T [4/4]

#define DEFN_ASN_OP_T (   op,
  op2,
  tp 
)
Value:
inline \
sc_fix_fast& \
sc_fix_fast::operator op ( const tp& b ) \
{ \
SC_FXNUM_FAST_OBSERVER_READ_( *this ) \
b.observer_read(); \
int iwl_c = iwl(); \
for( int i = iwl_c - wl(); i < iwl_c; ++ i ) \
set_bit( i, get_bit( i ) op2 b.get_bit( i ) ); \
cast(); \
SC_FXNUM_FAST_OBSERVER_WRITE_( *this ) \
return *this; \
}
uint64 const sc_uint_base int b
Definition: sc_fxval.h:1005

Definition at line 1876 of file sc_fix.h.

◆ DEFN_BIN_FNC_T [1/2]

#define DEFN_BIN_FNC_T (   fnc,
  op2,
  tp1,
  tp2 
)
Value:
inline \
void \
fnc ( sc_fix& c, const tp1& a, const tp2& b ) \
{ \
a.observer_read(); \
b.observer_read(); \
int iwl_c = c.iwl(); \
for( int i = iwl_c - c.wl(); i < iwl_c; ++ i ) \
c.set_bit( i, a.get_bit( i ) op2 b.get_bit( i ) ); \
c.cast(); \
SC_FXNUM_OBSERVER_WRITE_( c ) \
}
uint64 const sc_uint_base int b
Definition: sc_fxval.h:1005

Definition at line 1795 of file sc_fix.h.

◆ DEFN_BIN_FNC_T [2/2]

#define DEFN_BIN_FNC_T (   fnc,
  op2,
  tp1,
  tp2 
)
Value:
inline \
void \
fnc ( sc_fix_fast& c, const tp1& a, const tp2& b ) \
{ \
a.observer_read(); \
b.observer_read(); \
int iwl_c = c.iwl(); \
for( int i = iwl_c - c.wl(); i < iwl_c; ++ i ) \
c.set_bit( i, a.get_bit( i ) op2 b.get_bit( i ) ); \
c.cast(); \
SC_FXNUM_FAST_OBSERVER_WRITE_( c ) \
}
uint64 const sc_uint_base int b
Definition: sc_fxval.h:1005

Definition at line 1795 of file sc_fix.h.

◆ DEFN_BIN_OP_T [1/2]

#define DEFN_BIN_OP_T (   op,
  op2,
  tp1,
  tp2 
)
Value:
inline \
const sc_fix \
operator op ( const tp1& a, const tp2& b ) \
{ \
a.observer_read(); \
b.observer_read(); \
int iwl_a = a.iwl(); \
int iwl_b = b.iwl(); \
int iwl_c = sc_max( iwl_a, iwl_b ); \
int fwl_c = sc_max( a.wl() - iwl_a, b.wl() - iwl_b ); \
sc_fix c( iwl_c + fwl_c, iwl_c ); \
for( int i = -fwl_c; i < iwl_c; ++ i ) \
c.set_bit( i, a.get_bit( i ) op2 b.get_bit( i ) ); \
return sc_fix( c, iwl_c + fwl_c, iwl_c ); \
}
const T sc_max(const T &a, const T &b)
Definition: sc_macros.h:51
uint64 const sc_uint_base int b
Definition: sc_fxval.h:1005

Definition at line 1769 of file sc_fix.h.

◆ DEFN_BIN_OP_T [2/2]

#define DEFN_BIN_OP_T (   op,
  op2,
  tp1,
  tp2 
)
Value:
inline \
const sc_fix_fast \
operator op ( const tp1& a, const tp2& b ) \
{ \
a.observer_read(); \
b.observer_read(); \
int iwl_a = a.iwl(); \
int iwl_b = b.iwl(); \
int iwl_c = sc_max( iwl_a, iwl_b ); \
int fwl_c = sc_max( a.wl() - iwl_a, b.wl() - iwl_b ); \
sc_fix_fast c( iwl_c + fwl_c, iwl_c ); \
for( int i = -fwl_c; i < iwl_c; ++ i ) \
c.set_bit( i, a.get_bit( i ) op2 b.get_bit( i ) ); \
return sc_fix_fast( c, iwl_c + fwl_c, iwl_c ); \
}
const T sc_max(const T &a, const T &b)
Definition: sc_macros.h:51
uint64 const sc_uint_base int b
Definition: sc_fxval.h:1005

Definition at line 1769 of file sc_fix.h.

◆ DEFN_CTORS_T_A [1/2]

#define DEFN_CTORS_T_A (   tp)

Definition at line 1377 of file sc_fix.h.

◆ DEFN_CTORS_T_A [2/2]

#define DEFN_CTORS_T_A (   tp)

Definition at line 1377 of file sc_fix.h.

◆ DEFN_CTORS_T_B [1/2]

#define DEFN_CTORS_T_B (   tp)

Definition at line 1539 of file sc_fix.h.

◆ DEFN_CTORS_T_B [2/2]

#define DEFN_CTORS_T_B (   tp)

Definition at line 1539 of file sc_fix.h.