gem5 v24.0.0.0
Loading...
Searching...
No Matches
sc_ufix.hh File Reference
#include "sc_fxnum.hh"

Go to the source code of this file.

Classes

class  sc_dt::sc_ufix
 
class  sc_dt::sc_ufix_fast
 

Namespaces

namespace  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_ufix &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_ufix_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_ufix &c, const sc_ufix &a)
 
void sc_dt::b_not (sc_ufix_fast &c, const sc_ufix_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 sc_fxval
Definition sc_fxnum.hh:485
#define DECL_ASN_OP_T(op, tp)
Definition sc_ufix.hh:178

Definition at line 188 of file sc_ufix.hh.

◆ 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)

Definition at line 188 of file sc_ufix.hh.

◆ DECL_ASN_OP_OTHER [1/2]

#define DECL_ASN_OP_OTHER ( op)
Value:
DECL_ASN_OP_T(op, int64) \
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 &)

Definition at line 180 of file sc_ufix.hh.

◆ DECL_ASN_OP_OTHER [2/2]

#define DECL_ASN_OP_OTHER ( op)
Value:
DECL_ASN_OP_T(op, int64) \
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 &)

Definition at line 180 of file sc_ufix.hh.

◆ DECL_ASN_OP_T [1/2]

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

Definition at line 178 of file sc_ufix.hh.

◆ DECL_ASN_OP_T [2/2]

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

Definition at line 178 of file sc_ufix.hh.

◆ DECL_CTORS_T [1/2]

#define DECL_CTORS_T ( tp)
Value:
sc_ufix(tp, int, int, sc_fxnum_observer * =0); \
sc_ufix(tp, sc_q_mode, sc_o_mode, sc_fxnum_observer * =0); \
sc_ufix(tp, sc_q_mode, sc_o_mode, int, sc_fxnum_observer * =0); \
sc_ufix(tp, int, int, sc_q_mode, sc_o_mode, sc_fxnum_observer * =0); \
sc_ufix(tp, int, int, sc_q_mode, sc_o_mode, int, sc_fxnum_observer * =0); \
sc_ufix(tp, const sc_fxcast_switch &, sc_fxnum_observer * =0); \
sc_ufix(tp, int, int, const sc_fxcast_switch &, sc_fxnum_observer * =0); \
sc_ufix(tp, sc_q_mode, sc_o_mode, const sc_fxcast_switch &, \
sc_fxnum_observer * =0); \
sc_ufix(tp, sc_q_mode, sc_o_mode, int, const sc_fxcast_switch &, \
sc_fxnum_observer * =0); \
sc_ufix(tp, int, int, sc_q_mode, sc_o_mode, const sc_fxcast_switch &, \
sc_fxnum_observer * =0); \
sc_ufix(tp, int, int, sc_q_mode, sc_o_mode, int, \
const sc_fxcast_switch &, sc_fxnum_observer * =0); \
sc_ufix(tp, const sc_fxtype_params &, sc_fxnum_observer * =0); \
sc_ufix(tp, const sc_fxtype_params &, const sc_fxcast_switch &, \
sc_fxnum_observer * =0);
#define sc_ufix

Definition at line 93 of file sc_ufix.hh.

◆ DECL_CTORS_T [2/2]

#define DECL_CTORS_T ( tp)
Value:
sc_ufix_fast(tp, int, int, sc_fxnum_fast_observer * =0); \
sc_ufix_fast(tp, sc_q_mode, sc_o_mode, sc_fxnum_fast_observer * =0); \
sc_ufix_fast(tp, sc_q_mode, sc_o_mode, int, sc_fxnum_fast_observer * =0); \
sc_ufix_fast(tp, int, int, sc_q_mode, sc_o_mode, \
sc_fxnum_fast_observer * =0); \
sc_ufix_fast(tp, int, int, sc_q_mode, sc_o_mode, int, \
sc_fxnum_fast_observer * =0); \
sc_ufix_fast(tp, const sc_fxcast_switch &, sc_fxnum_fast_observer * =0); \
sc_ufix_fast(tp, int, int, const sc_fxcast_switch &, \
sc_fxnum_fast_observer * =0); \
sc_ufix_fast(tp, sc_q_mode, sc_o_mode, const sc_fxcast_switch &, \
sc_fxnum_fast_observer * =0); \
sc_ufix_fast(tp, sc_q_mode, sc_o_mode, int, const sc_fxcast_switch &, \
sc_fxnum_fast_observer * =0); \
sc_ufix_fast(tp, int, int, sc_q_mode, sc_o_mode, \
const sc_fxcast_switch &, sc_fxnum_fast_observer * =0); \
sc_ufix_fast(tp, int, int, sc_q_mode, sc_o_mode, int, \
const sc_fxcast_switch &, sc_fxnum_fast_observer * =0); \
sc_ufix_fast(tp, const sc_fxtype_params &, sc_fxnum_fast_observer * =0); \
sc_ufix_fast(tp, const sc_fxtype_params &, const sc_fxcast_switch &, \
sc_fxnum_fast_observer * =0);

Definition at line 93 of file sc_ufix.hh.

◆ DECL_CTORS_T_A [1/2]

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

Definition at line 113 of file sc_ufix.hh.

◆ DECL_CTORS_T_A [2/2]

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

Definition at line 113 of file sc_ufix.hh.

◆ DECL_CTORS_T_B [1/2]

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

Definition at line 117 of file sc_ufix.hh.

◆ DECL_CTORS_T_B [2/2]

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

Definition at line 117 of file sc_ufix.hh.

◆ 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_ufix.hh:788

Definition at line 804 of file sc_ufix.hh.

◆ 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)

Definition at line 804 of file sc_ufix.hh.

◆ DEFN_ASN_OP_OTHER [1/2]

#define DEFN_ASN_OP_OTHER ( op)
Value:
DEFN_ASN_OP_T(op, int64) \
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 &)

Definition at line 796 of file sc_ufix.hh.

◆ DEFN_ASN_OP_OTHER [2/2]

#define DEFN_ASN_OP_OTHER ( op)
Value:
DEFN_ASN_OP_T(op, int64) \
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 &)

Definition at line 796 of file sc_ufix.hh.

◆ DEFN_ASN_OP_T [1/4]

#define DEFN_ASN_OP_T ( op,
op2,
tp )
Value:
inline sc_ufix & \
sc_ufix::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; \
}
SwitchingFiber b

Definition at line 788 of file sc_ufix.hh.

◆ DEFN_ASN_OP_T [2/4]

#define DEFN_ASN_OP_T ( op,
op2,
tp )
Value:
inline sc_ufix_fast & \
sc_ufix_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; \
}

Definition at line 788 of file sc_ufix.hh.

◆ DEFN_ASN_OP_T [3/4]

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

Definition at line 788 of file sc_ufix.hh.

◆ DEFN_ASN_OP_T [4/4]

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

Definition at line 788 of file sc_ufix.hh.

◆ DEFN_BIN_FNC_T [1/2]

#define DEFN_BIN_FNC_T ( fnc,
op2,
tp1,
tp2 )
Value:
inline void \
fnc (sc_ufix &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) \
}
SwitchingFiber c

Definition at line 753 of file sc_ufix.hh.

◆ DEFN_BIN_FNC_T [2/2]

#define DEFN_BIN_FNC_T ( fnc,
op2,
tp1,
tp2 )
Value:
inline void \
fnc (sc_ufix_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) \
}

Definition at line 753 of file sc_ufix.hh.

◆ DEFN_BIN_OP_T [1/2]

#define DEFN_BIN_OP_T ( op,
op2,
tp1,
tp2 )
Value:
inline const sc_ufix \
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_ufix 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_ufix(c, iwl_c + fwl_c, iwl_c); \
}

Definition at line 722 of file sc_ufix.hh.

◆ DEFN_BIN_OP_T [2/2]

#define DEFN_BIN_OP_T ( op,
op2,
tp1,
tp2 )
Value:
inline const sc_ufix_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_ufix_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_ufix_fast(c, iwl_c + fwl_c, iwl_c); \
}

Definition at line 722 of file sc_ufix.hh.

◆ DEFN_CTORS_T_A [1/2]

#define DEFN_CTORS_T_A ( tp)

Definition at line 497 of file sc_ufix.hh.

◆ DEFN_CTORS_T_A [2/2]

#define DEFN_CTORS_T_A ( tp)

Definition at line 497 of file sc_ufix.hh.

◆ DEFN_CTORS_T_B [1/2]

#define DEFN_CTORS_T_B ( tp)

Definition at line 581 of file sc_ufix.hh.

◆ DEFN_CTORS_T_B [2/2]

#define DEFN_CTORS_T_B ( tp)

Definition at line 581 of file sc_ufix.hh.


Generated on Tue Jun 18 2024 16:24:08 for gem5 by doxygen 1.11.0