SystemC  2.3.2
Accellera SystemC proof-of-concept library
sc_fxval.h File Reference
Include dependency graph for sc_fxval.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_fxval
 Fixed-point value type; arbitrary precision. More...
 
class  sc_dt::sc_fxval_fast
 Fixed-point value types; limited precision. More...
 

Namespaces

 sc_dt
 

Macros

#define SCFX_EXPLICIT_   explicit
 
#define SCFX_EXPLICIT_OTHER_   explicit
 
#define DECL_BIN_OP_T(op, tp)
 
#define DECL_BIN_OP_OTHER(op)
 
#define DECL_BIN_OP(op, dummy)
 
#define DECL_BIN_FNC_T(fnc, tp)
 
#define DECL_BIN_FNC_OTHER(fnc)
 
#define DECL_BIN_FNC(fnc)
 
#define DECL_REL_OP_T(op, tp)
 
#define DECL_REL_OP_OTHER(op)
 
#define DECL_REL_OP(op)
 
#define DECL_ASN_OP_T(op, tp)   sc_fxval& operator op( tp );
 
#define DECL_ASN_OP_OTHER(op)
 
#define DECL_ASN_OP(op)
 
#define DECL_BIN_OP_T(op, tp)
 
#define DECL_BIN_OP_OTHER(op)
 
#define DECL_BIN_OP(op, dummy)
 
#define DECL_BIN_FNC_T(fnc, tp)
 
#define DECL_BIN_FNC_OTHER(fnc)
 
#define DECL_BIN_FNC(fnc)
 
#define DECL_REL_OP_T(op, tp)
 
#define DECL_REL_OP_OTHER(op)
 
#define DECL_REL_OP(op)
 
#define DECL_ASN_OP_T(op, tp)   sc_fxval_fast& operator op( tp );
 
#define DECL_ASN_OP_OTHER(op)
 
#define DECL_ASN_OP(op)
 
#define DEFN_CTOR_T(tp, arg)
 
#define DEFN_CTOR_T_A(tp)   DEFN_CTOR_T(tp,a)
 
#define DEFN_CTOR_T_B(tp)   DEFN_CTOR_T(tp,a.to_double())
 
#define DEFN_CTOR_T_C(tp)   DEFN_CTOR_T(tp,a.value())
 
#define DEFN_BIN_OP_T(op, fnc, tp)
 
#define DEFN_BIN_OP_OTHER(op, fnc)
 
#define DEFN_BIN_OP(op, fnc)
 
#define DEFN_BIN_FNC_T(fnc, tp)
 
#define DEFN_BIN_FNC_OTHER(fnc)
 
#define DEFN_BIN_FNC(fnc)
 
#define DEFN_REL_OP_T(op, ret, tp)
 
#define DEFN_REL_OP_OTHER(op, ret)
 
#define DEFN_REL_OP(op, ret)
 
#define DEFN_ASN_OP_T(tp)
 
#define DEFN_ASN_OP_T(op, fnc, tp)
 
#define DEFN_ASN_OP_OTHER(op, fnc)
 
#define DEFN_ASN_OP(op, fnc)
 
#define DEFN_CTOR_T(tp, arg)
 
#define DEFN_CTOR_T_A(tp)   DEFN_CTOR_T(tp,static_cast<double>( a ))
 
#define DEFN_CTOR_T_B(tp)   DEFN_CTOR_T(tp,from_string( a ))
 
#define DEFN_CTOR_T_C(tp)   DEFN_CTOR_T(tp,a.to_double())
 
#define DEFN_BIN_OP_T(op, tp)
 
#define DEFN_BIN_OP_OTHER(op)
 
#define DEFN_BIN_OP(op, dummy)
 
#define DEFN_BIN_FNC_T(fnc, op, tp)
 
#define DEFN_BIN_FNC_OTHER(fnc, op)
 
#define DEFN_BIN_FNC(fnc, op)
 
#define DEFN_REL_OP_T(op, tp)
 
#define DEFN_REL_OP_OTHER(op)
 
#define DEFN_REL_OP(op)
 
#define DEFN_ASN_OP_T(tp)
 
#define DEFN_ASN_OP_T(op, tp)
 
#define DEFN_ASN_OP_OTHER(op)
 
#define DEFN_ASN_OP(op)
 

Functions

void sc_dt::neg (sc_fxval &c, const sc_fxval &a)
 
const sc_fxval sc_dt::operator/ (const sc_fxval &a, const sc_fxval &b)
 
 sc_dt::DEFN_BIN_OP_T (/, div, int64) DEFN_BIN_OP_T(/
 
uint64 sc_dt::DEFN_BIN_OP_T (/, div, const sc_int_base &) DEFN_BIN_OP_T(/
 
uint64 const sc_uint_base & sc_dt::DEFN_BIN_OP_T (/, div, const sc_signed &) inline const sc_fxval operator<<(const sc_fxval &a
 
const sc_fxval sc_dt::operator>> (const sc_fxval &a, int b)
 
void sc_dt::lshift (sc_fxval &c, const sc_fxval &a, int b)
 
void sc_dt::rshift (sc_fxval &c, const sc_fxval &a, int b)
 
inline ::std::ostream & sc_dt::operator<< (::std::ostream &os, const sc_fxval &a)
 
inline ::std::istream & sc_dt::operator>> (::std::istream &is, sc_fxval &a)
 
void sc_dt::neg (sc_fxval_fast &c, const sc_fxval_fast &a)
 
const sc_fxval_fast sc_dt::operator/ (const sc_fxval_fast &a, const sc_fxval_fast &b)
 
const sc_fxval_fast sc_dt::operator<< (const sc_fxval_fast &a, int b)
 
const sc_fxval_fast sc_dt::operator>> (const sc_fxval_fast &a, int b)
 
void sc_dt::lshift (sc_fxval_fast &c, const sc_fxval_fast &a, int b)
 
void sc_dt::rshift (sc_fxval_fast &c, const sc_fxval_fast &a, int b)
 
inline ::std::ostream & sc_dt::operator<< (::std::ostream &os, const sc_fxval_fast &a)
 
inline ::std::istream & sc_dt::operator>> (::std::istream &is, sc_fxval_fast &a)
 

Variables

 sc_dt::div
 
uint64 const sc_uint_base int sc_dt::b
 

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_fxval.h:639

Definition at line 654 of file sc_fxval.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_fxval.h:639

Definition at line 654 of file sc_fxval.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_fxval.h:639

Definition at line 643 of file sc_fxval.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_fxval.h:639

Definition at line 643 of file sc_fxval.h.

◆ DECL_ASN_OP_T [1/2]

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

Definition at line 639 of file sc_fxval.h.

◆ DECL_ASN_OP_T [2/2]

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

Definition at line 639 of file sc_fxval.h.

◆ DECL_BIN_FNC [1/2]

#define DECL_BIN_FNC (   fnc)
Value:
friend void fnc ( sc_fxval&, const sc_fxval&, const sc_fxval& ); \
DECL_BIN_FNC_T(fnc,int) \
DECL_BIN_FNC_T(fnc,unsigned int) \
DECL_BIN_FNC_T(fnc,long) \
DECL_BIN_FNC_T(fnc,unsigned long) \
DECL_BIN_FNC_T(fnc,float) \
DECL_BIN_FNC_T(fnc,double) \
DECL_BIN_FNC_T(fnc,const char*) \
DECL_BIN_FNC_T(fnc,const sc_fxval_fast&) \
DECL_BIN_FNC_T(fnc,const sc_fxnum_fast&) \
DECL_BIN_FNC_OTHER(fnc)

Definition at line 569 of file sc_fxval.h.

◆ DECL_BIN_FNC [2/2]

#define DECL_BIN_FNC (   fnc)
Value:
friend void fnc ( sc_fxval_fast&, const sc_fxval_fast&, \
const sc_fxval_fast& ); \
DECL_BIN_FNC_T(fnc,int) \
DECL_BIN_FNC_T(fnc,unsigned int) \
DECL_BIN_FNC_T(fnc,long) \
DECL_BIN_FNC_T(fnc,unsigned long) \
DECL_BIN_FNC_T(fnc,float) \
DECL_BIN_FNC_T(fnc,double) \
DECL_BIN_FNC_T(fnc,const char*) \
DECL_BIN_FNC_T(fnc,const sc_fxval&) \
DECL_BIN_FNC_T(fnc,const sc_fxnum&) \
DECL_BIN_FNC_OTHER(fnc)

Definition at line 569 of file sc_fxval.h.

◆ DECL_BIN_FNC_OTHER [1/2]

#define DECL_BIN_FNC_OTHER (   fnc)
Value:
DECL_BIN_FNC_T(fnc,uint64) \
DECL_BIN_FNC_T(fnc,const sc_int_base&) \
DECL_BIN_FNC_T(fnc,const sc_uint_base&) \
DECL_BIN_FNC_T(fnc,const sc_signed&) \
DECL_BIN_FNC_T(fnc,const sc_unsigned&)
int64_t int64
Definition: sc_nbdefs.h:188
uint64_t uint64
Definition: sc_nbdefs.h:189
#define DECL_BIN_FNC_T(fnc, tp)
Definition: sc_fxval.h:553

Definition at line 558 of file sc_fxval.h.

◆ DECL_BIN_FNC_OTHER [2/2]

#define DECL_BIN_FNC_OTHER (   fnc)
Value:
DECL_BIN_FNC_T(fnc,uint64) \
DECL_BIN_FNC_T(fnc,const sc_int_base&) \
DECL_BIN_FNC_T(fnc,const sc_uint_base&) \
DECL_BIN_FNC_T(fnc,const sc_signed&) \
DECL_BIN_FNC_T(fnc,const sc_unsigned&)
int64_t int64
Definition: sc_nbdefs.h:188
uint64_t uint64
Definition: sc_nbdefs.h:189
#define DECL_BIN_FNC_T(fnc, tp)
Definition: sc_fxval.h:553

Definition at line 558 of file sc_fxval.h.

◆ DECL_BIN_FNC_T [1/2]

#define DECL_BIN_FNC_T (   fnc,
  tp 
)
Value:
friend void fnc ( sc_fxval&, const sc_fxval&, tp ); \
friend void fnc ( sc_fxval&, tp, const sc_fxval& );

Definition at line 553 of file sc_fxval.h.

◆ DECL_BIN_FNC_T [2/2]

#define DECL_BIN_FNC_T (   fnc,
  tp 
)
Value:
friend void fnc ( sc_fxval_fast&, const sc_fxval_fast&, tp ); \
friend void fnc ( sc_fxval_fast&, tp, const sc_fxval_fast& );

Definition at line 553 of file sc_fxval.h.

◆ DECL_BIN_OP [1/2]

#define DECL_BIN_OP (   op,
  dummy 
)
Value:
friend const sc_fxval operator op ( const sc_fxval&, const sc_fxval& ); \
DECL_BIN_OP_T(op,int) \
DECL_BIN_OP_T(op,unsigned int) \
DECL_BIN_OP_T(op,long) \
DECL_BIN_OP_T(op,unsigned long) \
DECL_BIN_OP_T(op,float) \
DECL_BIN_OP_T(op,double) \
DECL_BIN_OP_T(op,const char*) \
DECL_BIN_OP_T(op,const sc_fxval_fast&) \
DECL_BIN_OP_T(op,const sc_fxnum_fast&) \
DECL_BIN_OP_OTHER(op)

Definition at line 507 of file sc_fxval.h.

◆ DECL_BIN_OP [2/2]

#define DECL_BIN_OP (   op,
  dummy 
)
Value:
friend const sc_fxval_fast operator op ( const sc_fxval_fast&, \
const sc_fxval_fast& ); \
DECL_BIN_OP_T(op,int) \
DECL_BIN_OP_T(op,unsigned int) \
DECL_BIN_OP_T(op,long) \
DECL_BIN_OP_T(op,unsigned long) \
DECL_BIN_OP_T(op,float) \
DECL_BIN_OP_T(op,double) \
DECL_BIN_OP_T(op,const char*) \
DECL_BIN_OP_OTHER(op)

Definition at line 507 of file sc_fxval.h.

◆ DECL_BIN_OP_OTHER [1/2]

#define DECL_BIN_OP_OTHER (   op)
Value:
DECL_BIN_OP_T(op,uint64) \
DECL_BIN_OP_T(op,const sc_int_base&) \
DECL_BIN_OP_T(op,const sc_uint_base&) \
DECL_BIN_OP_T(op,const sc_signed&) \
DECL_BIN_OP_T(op,const sc_unsigned&)
int64_t int64
Definition: sc_nbdefs.h:188
#define DECL_BIN_OP_T(op, tp)
Definition: sc_fxval.h:491
uint64_t uint64
Definition: sc_nbdefs.h:189

Definition at line 496 of file sc_fxval.h.

◆ DECL_BIN_OP_OTHER [2/2]

#define DECL_BIN_OP_OTHER (   op)
Value:
DECL_BIN_OP_T(op,uint64) \
DECL_BIN_OP_T(op,const sc_int_base&) \
DECL_BIN_OP_T(op,const sc_uint_base&) \
DECL_BIN_OP_T(op,const sc_signed&) \
DECL_BIN_OP_T(op,const sc_unsigned&)
int64_t int64
Definition: sc_nbdefs.h:188
#define DECL_BIN_OP_T(op, tp)
Definition: sc_fxval.h:491
uint64_t uint64
Definition: sc_nbdefs.h:189

Definition at line 496 of file sc_fxval.h.

◆ DECL_BIN_OP_T [1/2]

#define DECL_BIN_OP_T (   op,
  tp 
)
Value:
friend const sc_fxval operator op ( const sc_fxval&, tp ); \
friend const sc_fxval operator op ( tp, const sc_fxval& );

Definition at line 491 of file sc_fxval.h.

◆ DECL_BIN_OP_T [2/2]

#define DECL_BIN_OP_T (   op,
  tp 
)
Value:
friend const sc_fxval_fast operator op ( const sc_fxval_fast&, tp ); \
friend const sc_fxval_fast operator op ( tp, const sc_fxval_fast& );

Definition at line 491 of file sc_fxval.h.

◆ DECL_REL_OP [1/2]

#define DECL_REL_OP (   op)
Value:
friend bool operator op ( const sc_fxval&, const sc_fxval& ); \
DECL_REL_OP_T(op,int) \
DECL_REL_OP_T(op,unsigned int) \
DECL_REL_OP_T(op,long) \
DECL_REL_OP_T(op,unsigned long) \
DECL_REL_OP_T(op,float) \
DECL_REL_OP_T(op,double) \
DECL_REL_OP_T(op,const char*) \
DECL_REL_OP_T(op,const sc_fxval_fast&) \
DECL_REL_OP_T(op,const sc_fxnum_fast&) \
DECL_REL_OP_OTHER(op)

Definition at line 614 of file sc_fxval.h.

◆ DECL_REL_OP [2/2]

#define DECL_REL_OP (   op)
Value:
friend bool operator op ( const sc_fxval_fast&, const sc_fxval_fast& ); \
DECL_REL_OP_T(op,int) \
DECL_REL_OP_T(op,unsigned int) \
DECL_REL_OP_T(op,long) \
DECL_REL_OP_T(op,unsigned long) \
DECL_REL_OP_T(op,float) \
DECL_REL_OP_T(op,double) \
DECL_REL_OP_T(op,const char*) \
DECL_REL_OP_OTHER(op)

Definition at line 614 of file sc_fxval.h.

◆ DECL_REL_OP_OTHER [1/2]

#define DECL_REL_OP_OTHER (   op)
Value:
DECL_REL_OP_T(op,uint64) \
DECL_REL_OP_T(op,const sc_int_base&) \
DECL_REL_OP_T(op,const sc_uint_base&) \
DECL_REL_OP_T(op,const sc_signed&) \
DECL_REL_OP_T(op,const sc_unsigned&)
int64_t int64
Definition: sc_nbdefs.h:188
#define DECL_REL_OP_T(op, tp)
Definition: sc_fxval.h:598
uint64_t uint64
Definition: sc_nbdefs.h:189

Definition at line 603 of file sc_fxval.h.

◆ DECL_REL_OP_OTHER [2/2]

#define DECL_REL_OP_OTHER (   op)
Value:
DECL_REL_OP_T(op,uint64) \
DECL_REL_OP_T(op,const sc_int_base&) \
DECL_REL_OP_T(op,const sc_uint_base&) \
DECL_REL_OP_T(op,const sc_signed&) \
DECL_REL_OP_T(op,const sc_unsigned&)
int64_t int64
Definition: sc_nbdefs.h:188
#define DECL_REL_OP_T(op, tp)
Definition: sc_fxval.h:598
uint64_t uint64
Definition: sc_nbdefs.h:189

Definition at line 603 of file sc_fxval.h.

◆ DECL_REL_OP_T [1/2]

#define DECL_REL_OP_T (   op,
  tp 
)
Value:
friend bool operator op ( const sc_fxval&, tp ); \
friend bool operator op ( tp, const sc_fxval& );

Definition at line 598 of file sc_fxval.h.

◆ DECL_REL_OP_T [2/2]

#define DECL_REL_OP_T (   op,
  tp 
)
Value:
friend bool operator op ( const sc_fxval_fast&, tp ); \
friend bool operator op ( tp, const sc_fxval_fast& );

Definition at line 598 of file sc_fxval.h.

◆ DEFN_ASN_OP [1/2]

#define DEFN_ASN_OP (   op,
  fnc 
)
Value:
inline \
sc_fxval& \
sc_fxval::operator op ( const sc_fxval& b ) \
{ \
SC_FXVAL_OBSERVER_READ_( *this ) \
SC_FXVAL_OBSERVER_READ_( b ) \
scfx_rep* new_rep = sc_dt::fnc ## _scfx_rep( *m_rep, *b.m_rep ); \
delete m_rep; \
m_rep = new_rep; \
SC_FXVAL_OBSERVER_WRITE_( *this ) \
return *this; \
} \
DEFN_ASN_OP_T(op,fnc,int) \
DEFN_ASN_OP_T(op,fnc,unsigned int) \
DEFN_ASN_OP_T(op,fnc,long) \
DEFN_ASN_OP_T(op,fnc,unsigned long) \
DEFN_ASN_OP_T(op,fnc,float) \
DEFN_ASN_OP_T(op,fnc,double) \
DEFN_ASN_OP_T(op,fnc,const char*) \
DEFN_ASN_OP_T(op,fnc,const sc_fxval_fast&) \
DEFN_ASN_OP_OTHER(op,fnc)
uint64 const sc_uint_base int b
Definition: sc_fxval.h:1005
#define DEFN_ASN_OP_T(tp)
Definition: sc_fxval.h:1972

Definition at line 1996 of file sc_fxval.h.

◆ DEFN_ASN_OP [2/2]

#define DEFN_ASN_OP (   op)
Value:
inline \
sc_fxval_fast& \
sc_fxval_fast::operator op ( const sc_fxval_fast& b ) \
{ \
SC_FXVAL_FAST_OBSERVER_READ_( *this ) \
SC_FXVAL_FAST_OBSERVER_READ_( b ) \
m_val op b.m_val; \
SC_FXVAL_FAST_OBSERVER_WRITE_( *this ) \
return *this; \
} \
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_OTHER(op)
uint64 const sc_uint_base int b
Definition: sc_fxval.h:1005
#define DEFN_ASN_OP_T(tp)
Definition: sc_fxval.h:1972

Definition at line 1996 of file sc_fxval.h.

◆ DEFN_ASN_OP_OTHER [1/2]

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

Definition at line 1985 of file sc_fxval.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(tp)
Definition: sc_fxval.h:1972

Definition at line 1985 of file sc_fxval.h.

◆ DEFN_ASN_OP_T [1/4]

#define DEFN_ASN_OP_T (   tp)
Value:
inline \
sc_fxval& \
sc_fxval::operator = ( tp b ) \
{ \
sc_fxval tmp( b ); \
*m_rep = *tmp.m_rep; \
SC_FXVAL_OBSERVER_WRITE_( *this ) \
return *this; \
}
uint64 const sc_uint_base int b
Definition: sc_fxval.h:1005

Definition at line 1972 of file sc_fxval.h.

◆ DEFN_ASN_OP_T [2/4]

#define DEFN_ASN_OP_T (   op,
  fnc,
  tp 
)
Value:
inline \
sc_fxval& \
sc_fxval::operator op ( tp b ) \
{ \
SC_FXVAL_OBSERVER_READ_( *this ) \
sc_fxval tmp( b ); \
scfx_rep* new_rep = sc_dt::fnc ## _scfx_rep( *m_rep, *tmp.m_rep ); \
delete m_rep; \
m_rep = new_rep; \
SC_FXVAL_OBSERVER_WRITE_( *this ) \
return *this; \
}
uint64 const sc_uint_base int b
Definition: sc_fxval.h:1005

Definition at line 1972 of file sc_fxval.h.

◆ DEFN_ASN_OP_T [3/4]

#define DEFN_ASN_OP_T (   tp)
Value:
inline \
sc_fxval_fast& \
sc_fxval_fast::operator = ( tp a ) \
{ \
sc_fxval_fast tmp( a ); \
m_val = tmp.m_val; \
SC_FXVAL_FAST_OBSERVER_WRITE_( *this ) \
return *this; \
}

Definition at line 1972 of file sc_fxval.h.

◆ DEFN_ASN_OP_T [4/4]

#define DEFN_ASN_OP_T (   op,
  tp 
)
Value:
inline \
sc_fxval_fast& \
sc_fxval_fast::operator op ( tp b ) \
{ \
SC_FXVAL_FAST_OBSERVER_READ_( *this ) \
sc_fxval_fast tmp( b ); \
m_val op tmp.m_val; \
SC_FXVAL_FAST_OBSERVER_WRITE_( *this ) \
return *this; \
}
uint64 const sc_uint_base int b
Definition: sc_fxval.h:1005

Definition at line 1972 of file sc_fxval.h.

◆ DEFN_BIN_FNC [1/2]

#define DEFN_BIN_FNC (   fnc)
Value:
inline \
void \
fnc( sc_fxval& c, const sc_fxval& a, const sc_fxval& b ) \
{ \
SC_FXVAL_OBSERVER_READ_( a ) \
SC_FXVAL_OBSERVER_READ_( b ) \
delete c.m_rep; \
c.m_rep = sc_dt::fnc ## _scfx_rep( *a.m_rep, *b.m_rep ); \
SC_FXVAL_OBSERVER_WRITE_( c ) \
} \
DEFN_BIN_FNC_T(fnc,int) \
DEFN_BIN_FNC_T(fnc,unsigned int) \
DEFN_BIN_FNC_T(fnc,long) \
DEFN_BIN_FNC_T(fnc,unsigned long) \
DEFN_BIN_FNC_T(fnc,float) \
DEFN_BIN_FNC_T(fnc,double) \
DEFN_BIN_FNC_T(fnc,const char*) \
DEFN_BIN_FNC_T(fnc,const sc_fxval_fast&) \
DEFN_BIN_FNC_OTHER(fnc)
uint64 const sc_uint_base int b
Definition: sc_fxval.h:1005
#define DEFN_BIN_FNC_T(fnc, tp)
Definition: sc_fxval.h:1780

Definition at line 1813 of file sc_fxval.h.

◆ DEFN_BIN_FNC [2/2]

#define DEFN_BIN_FNC (   fnc,
  op 
)
Value:
inline \
void \
fnc ( sc_fxval_fast& c, const sc_fxval_fast& a, const sc_fxval_fast& b ) \
{ \
SC_FXVAL_FAST_OBSERVER_READ_( a ) \
SC_FXVAL_FAST_OBSERVER_READ_( b ) \
c.m_val = a.m_val op b.m_val; \
SC_FXVAL_FAST_OBSERVER_WRITE_( c ) \
} \
DEFN_BIN_FNC_T(fnc,op,int) \
DEFN_BIN_FNC_T(fnc,op,unsigned int) \
DEFN_BIN_FNC_T(fnc,op,long) \
DEFN_BIN_FNC_T(fnc,op,unsigned long) \
DEFN_BIN_FNC_T(fnc,op,float) \
DEFN_BIN_FNC_T(fnc,op,double) \
DEFN_BIN_FNC_T(fnc,op,const char*) \
DEFN_BIN_FNC_OTHER(fnc,op)
uint64 const sc_uint_base int b
Definition: sc_fxval.h:1005
#define DEFN_BIN_FNC_T(fnc, tp)
Definition: sc_fxval.h:1780

Definition at line 1813 of file sc_fxval.h.

◆ DEFN_BIN_FNC_OTHER [1/2]

#define DEFN_BIN_FNC_OTHER (   fnc)
Value:
DEFN_BIN_FNC_T(fnc,uint64) \
DEFN_BIN_FNC_T(fnc,const sc_int_base&) \
DEFN_BIN_FNC_T(fnc,const sc_uint_base&) \
DEFN_BIN_FNC_T(fnc,const sc_signed&) \
DEFN_BIN_FNC_T(fnc,const sc_unsigned&)
int64_t int64
Definition: sc_nbdefs.h:188
uint64_t uint64
Definition: sc_nbdefs.h:189
#define DEFN_BIN_FNC_T(fnc, tp)
Definition: sc_fxval.h:1780

Definition at line 1802 of file sc_fxval.h.

◆ DEFN_BIN_FNC_OTHER [2/2]

#define DEFN_BIN_FNC_OTHER (   fnc,
  op 
)
Value:
DEFN_BIN_FNC_T(fnc,op,uint64) \
DEFN_BIN_FNC_T(fnc,op,const sc_int_base&) \
DEFN_BIN_FNC_T(fnc,op,const sc_uint_base&) \
DEFN_BIN_FNC_T(fnc,op,const sc_signed&) \
DEFN_BIN_FNC_T(fnc,op,const sc_unsigned&)
int64_t int64
Definition: sc_nbdefs.h:188
uint64_t uint64
Definition: sc_nbdefs.h:189
#define DEFN_BIN_FNC_T(fnc, tp)
Definition: sc_fxval.h:1780

Definition at line 1802 of file sc_fxval.h.

◆ DEFN_BIN_FNC_T [1/2]

#define DEFN_BIN_FNC_T (   fnc,
  tp 
)
Value:
inline \
void \
fnc ( sc_fxval& c, const sc_fxval& a, tp b ) \
{ \
SC_FXVAL_OBSERVER_READ_( a ) \
sc_fxval tmp( b ); \
delete c.m_rep; \
c.m_rep = sc_dt::fnc ## _scfx_rep( *a.m_rep, *tmp.m_rep ); \
SC_FXVAL_OBSERVER_WRITE_( c ) \
} \
\
inline \
void \
fnc ( sc_fxval& c, tp a, const sc_fxval& b ) \
{ \
SC_FXVAL_OBSERVER_READ_( b ) \
sc_fxval tmp( a ); \
delete c.m_rep; \
c.m_rep = sc_dt::fnc ## _scfx_rep( *tmp.m_rep, *b.m_rep ); \
SC_FXVAL_OBSERVER_WRITE_( c ) \
}
uint64 const sc_uint_base int b
Definition: sc_fxval.h:1005

Definition at line 1780 of file sc_fxval.h.

◆ DEFN_BIN_FNC_T [2/2]

#define DEFN_BIN_FNC_T (   fnc,
  op,
  tp 
)
Value:
inline \
void \
fnc ( sc_fxval_fast& c, const sc_fxval_fast& a, tp b ) \
{ \
SC_FXVAL_FAST_OBSERVER_READ_( a ) \
sc_fxval_fast tmp( b ); \
c.m_val = a.m_val op tmp.m_val; \
SC_FXVAL_FAST_OBSERVER_WRITE_( c ) \
} \
\
inline \
void \
fnc ( sc_fxval_fast& c, tp a, const sc_fxval_fast& b ) \
{ \
SC_FXVAL_FAST_OBSERVER_READ_( b ) \
sc_fxval_fast tmp( a ); \
c.m_val = tmp.m_val op b.m_val; \
SC_FXVAL_FAST_OBSERVER_WRITE_( c ) \
}
uint64 const sc_uint_base int b
Definition: sc_fxval.h:1005

Definition at line 1780 of file sc_fxval.h.

◆ DEFN_BIN_OP [1/2]

#define DEFN_BIN_OP (   op,
  fnc 
)
Value:
inline \
const sc_fxval \
operator op ( const sc_fxval& a, const sc_fxval& b ) \
{ \
SC_FXVAL_OBSERVER_READ_( a ) \
SC_FXVAL_OBSERVER_READ_( b ) \
return sc_fxval( sc_dt::fnc ## _scfx_rep( *a.m_rep, *b.m_rep ) ); \
} \
DEFN_BIN_OP_T(op,fnc,int) \
DEFN_BIN_OP_T(op,fnc,unsigned int) \
DEFN_BIN_OP_T(op,fnc,long) \
DEFN_BIN_OP_T(op,fnc,unsigned long) \
DEFN_BIN_OP_T(op,fnc,float) \
DEFN_BIN_OP_T(op,fnc,double) \
DEFN_BIN_OP_T(op,fnc,const char*) \
DEFN_BIN_OP_T(op,fnc,const sc_fxval_fast&) \
DEFN_BIN_OP_OTHER(op,fnc)
uint64 const sc_uint_base int b
Definition: sc_fxval.h:1005
#define DEFN_BIN_OP_T(op, fnc, tp)
Definition: sc_fxval.h:1675

Definition at line 1706 of file sc_fxval.h.

◆ DEFN_BIN_OP [2/2]

#define DEFN_BIN_OP (   op,
  dummy 
)
Value:
inline \
const sc_fxval_fast \
operator op ( const sc_fxval_fast& a, const sc_fxval_fast& b ) \
{ \
SC_FXVAL_FAST_OBSERVER_READ_( a ) \
SC_FXVAL_FAST_OBSERVER_READ_( b ) \
return sc_fxval_fast( a.m_val op b.m_val ); \
} \
DEFN_BIN_OP_T(op,int) \
DEFN_BIN_OP_T(op,unsigned int) \
DEFN_BIN_OP_T(op,long) \
DEFN_BIN_OP_T(op,unsigned long) \
DEFN_BIN_OP_T(op,float) \
DEFN_BIN_OP_T(op,double) \
DEFN_BIN_OP_T(op,const char*) \
DEFN_BIN_OP_OTHER(op)
uint64 const sc_uint_base int b
Definition: sc_fxval.h:1005
#define DEFN_BIN_OP_T(op, fnc, tp)
Definition: sc_fxval.h:1675

Definition at line 1706 of file sc_fxval.h.

◆ DEFN_BIN_OP_OTHER [1/2]

#define DEFN_BIN_OP_OTHER (   op,
  fnc 
)
Value:
DEFN_BIN_OP_T(op,fnc,uint64) \
DEFN_BIN_OP_T(op,fnc,const sc_int_base&) \
DEFN_BIN_OP_T(op,fnc,const sc_uint_base&) \
DEFN_BIN_OP_T(op,fnc,const sc_signed&) \
DEFN_BIN_OP_T(op,fnc,const sc_unsigned&)
int64_t int64
Definition: sc_nbdefs.h:188
uint64_t uint64
Definition: sc_nbdefs.h:189
#define DEFN_BIN_OP_T(op, fnc, tp)
Definition: sc_fxval.h:1675

Definition at line 1695 of file sc_fxval.h.

◆ DEFN_BIN_OP_OTHER [2/2]

#define DEFN_BIN_OP_OTHER (   op)
Value:
DEFN_BIN_OP_T(op,uint64) \
DEFN_BIN_OP_T(op,const sc_int_base&) \
DEFN_BIN_OP_T(op,const sc_uint_base&) \
DEFN_BIN_OP_T(op,const sc_signed&) \
DEFN_BIN_OP_T(op,const sc_unsigned&)
int64_t int64
Definition: sc_nbdefs.h:188
uint64_t uint64
Definition: sc_nbdefs.h:189
#define DEFN_BIN_OP_T(op, fnc, tp)
Definition: sc_fxval.h:1675

Definition at line 1695 of file sc_fxval.h.

◆ DEFN_BIN_OP_T [1/2]

#define DEFN_BIN_OP_T (   op,
  fnc,
  tp 
)
Value:
inline \
const sc_fxval \
operator op ( const sc_fxval& a, tp b ) \
{ \
SC_FXVAL_OBSERVER_READ_( a ) \
sc_fxval tmp( b ); \
return sc_fxval( sc_dt::fnc ## _scfx_rep( *a.m_rep, *tmp.m_rep ) ); \
} \
\
inline \
const sc_fxval \
operator op ( tp a, const sc_fxval& b ) \
{ \
SC_FXVAL_OBSERVER_READ_( b ) \
sc_fxval tmp( a ); \
return sc_fxval( sc_dt::fnc ## _scfx_rep( *tmp.m_rep, *b.m_rep ) ); \
}
uint64 const sc_uint_base int b
Definition: sc_fxval.h:1005

Definition at line 1675 of file sc_fxval.h.

◆ DEFN_BIN_OP_T [2/2]

#define DEFN_BIN_OP_T (   op,
  tp 
)
Value:
inline \
const sc_fxval_fast \
operator op ( const sc_fxval_fast& a, tp b ) \
{ \
SC_FXVAL_FAST_OBSERVER_READ_( a ) \
sc_fxval_fast tmp( b ); \
return sc_fxval_fast( a.m_val op tmp.m_val ); \
} \
\
inline \
const sc_fxval_fast \
operator op ( tp a, const sc_fxval_fast& b ) \
{ \
SC_FXVAL_FAST_OBSERVER_READ_( b ) \
sc_fxval_fast tmp( a ); \
return sc_fxval_fast( tmp.m_val op b.m_val ); \
}
uint64 const sc_uint_base int b
Definition: sc_fxval.h:1005

Definition at line 1675 of file sc_fxval.h.

◆ DEFN_CTOR_T [1/2]

#define DEFN_CTOR_T (   tp,
  arg 
)
Value:
inline \
sc_fxval::sc_fxval( tp a, \
sc_fxval_observer* observer_ ) \
: m_rep( new scfx_rep( arg ) ), \
m_observer( observer_ ) \
{ \
SC_FXVAL_OBSERVER_WRITE_( *this ) \
}
#define SC_FXVAL_OBSERVER_CONSTRUCT_(object)

Definition at line 1575 of file sc_fxval.h.

◆ DEFN_CTOR_T [2/2]

#define DEFN_CTOR_T (   tp,
  arg 
)
Value:
inline \
sc_fxval_fast::sc_fxval_fast( tp a, \
sc_fxval_fast_observer* observer_ ) \
: m_val( arg ), \
m_observer( observer_ ) \
{ \
SC_FXVAL_FAST_OBSERVER_WRITE_( *this ) \
}
#define SC_FXVAL_FAST_OBSERVER_CONSTRUCT_(object)

Definition at line 1575 of file sc_fxval.h.

◆ DEFN_CTOR_T_A [1/2]

#define DEFN_CTOR_T_A (   tp)    DEFN_CTOR_T(tp,a)

Definition at line 1587 of file sc_fxval.h.

◆ DEFN_CTOR_T_A [2/2]

#define DEFN_CTOR_T_A (   tp)    DEFN_CTOR_T(tp,static_cast<double>( a ))

Definition at line 1587 of file sc_fxval.h.

◆ DEFN_CTOR_T_B [1/2]

#define DEFN_CTOR_T_B (   tp)    DEFN_CTOR_T(tp,a.to_double())

Definition at line 1588 of file sc_fxval.h.

◆ DEFN_CTOR_T_B [2/2]

#define DEFN_CTOR_T_B (   tp)    DEFN_CTOR_T(tp,from_string( a ))

Definition at line 1588 of file sc_fxval.h.

◆ DEFN_CTOR_T_C [1/2]

#define DEFN_CTOR_T_C (   tp)    DEFN_CTOR_T(tp,a.value())

Definition at line 1589 of file sc_fxval.h.

◆ DEFN_CTOR_T_C [2/2]

#define DEFN_CTOR_T_C (   tp)    DEFN_CTOR_T(tp,a.to_double())

Definition at line 1589 of file sc_fxval.h.

◆ DEFN_REL_OP [1/2]

#define DEFN_REL_OP (   op,
  ret 
)
Value:
inline \
bool \
operator op ( const sc_fxval& a, const sc_fxval& b) \
{ \
SC_FXVAL_OBSERVER_READ_( a ) \
SC_FXVAL_OBSERVER_READ_( b ) \
int result = sc_dt::cmp_scfx_rep( *a.m_rep, *b.m_rep ); \
return ( ret ); \
} \
DEFN_REL_OP_T(op,ret,int) \
DEFN_REL_OP_T(op,ret,unsigned int) \
DEFN_REL_OP_T(op,ret,long) \
DEFN_REL_OP_T(op,ret,unsigned long) \
DEFN_REL_OP_T(op,ret,float) \
DEFN_REL_OP_T(op,ret,double) \
DEFN_REL_OP_T(op,ret,const char*) \
DEFN_REL_OP_T(op,ret,const sc_fxval_fast&) \
DEFN_REL_OP_OTHER(op,ret)
uint64 const sc_uint_base int b
Definition: sc_fxval.h:1005
#define DEFN_REL_OP_T(op, ret, tp)
Definition: sc_fxval.h:1864
SC_API int cmp_scfx_rep(const scfx_rep &, const scfx_rep &)

Definition at line 1895 of file sc_fxval.h.

◆ DEFN_REL_OP [2/2]

#define DEFN_REL_OP (   op)
Value:
inline \
bool \
operator op ( const sc_fxval_fast& a, const sc_fxval_fast& b ) \
{ \
SC_FXVAL_FAST_OBSERVER_READ_( a ) \
SC_FXVAL_FAST_OBSERVER_READ_( b ) \
return ( a.m_val op b.m_val ); \
} \
DEFN_REL_OP_T(op,int) \
DEFN_REL_OP_T(op,unsigned int) \
DEFN_REL_OP_T(op,long) \
DEFN_REL_OP_T(op,unsigned long) \
DEFN_REL_OP_T(op,float) \
DEFN_REL_OP_T(op,double) \
DEFN_REL_OP_T(op,const char*) \
DEFN_REL_OP_OTHER(op)
uint64 const sc_uint_base int b
Definition: sc_fxval.h:1005
#define DEFN_REL_OP_T(op, ret, tp)
Definition: sc_fxval.h:1864

Definition at line 1895 of file sc_fxval.h.

◆ DEFN_REL_OP_OTHER [1/2]

#define DEFN_REL_OP_OTHER (   op,
  ret 
)
Value:
DEFN_REL_OP_T(op,ret,uint64) \
DEFN_REL_OP_T(op,ret,const sc_int_base&) \
DEFN_REL_OP_T(op,ret,const sc_uint_base&) \
DEFN_REL_OP_T(op,ret,const sc_signed&) \
DEFN_REL_OP_T(op,ret,const sc_unsigned&)
int64_t int64
Definition: sc_nbdefs.h:188
uint64_t uint64
Definition: sc_nbdefs.h:189
#define DEFN_REL_OP_T(op, ret, tp)
Definition: sc_fxval.h:1864

Definition at line 1884 of file sc_fxval.h.

◆ DEFN_REL_OP_OTHER [2/2]

#define DEFN_REL_OP_OTHER (   op)
Value:
DEFN_REL_OP_T(op,uint64) \
DEFN_REL_OP_T(op,const sc_int_base&) \
DEFN_REL_OP_T(op,const sc_uint_base&) \
DEFN_REL_OP_T(op,const sc_signed&) \
DEFN_REL_OP_T(op,const sc_unsigned&)
int64_t int64
Definition: sc_nbdefs.h:188
uint64_t uint64
Definition: sc_nbdefs.h:189
#define DEFN_REL_OP_T(op, ret, tp)
Definition: sc_fxval.h:1864

Definition at line 1884 of file sc_fxval.h.

◆ DEFN_REL_OP_T [1/2]

#define DEFN_REL_OP_T (   op,
  ret,
  tp 
)
Value:
inline \
bool \
operator op ( const sc_fxval& a, tp b ) \
{ \
SC_FXVAL_OBSERVER_READ_( a ) \
sc_fxval tmp( b ); \
int result = sc_dt::cmp_scfx_rep( *a.m_rep, *tmp.m_rep ); \
return ( ret ); \
} \
\
inline \
bool \
operator op ( tp a, const sc_fxval& b ) \
{ \
SC_FXVAL_OBSERVER_READ_( b ) \
sc_fxval tmp( a ); \
int result = sc_dt::cmp_scfx_rep( *tmp.m_rep, *b.m_rep ); \
return ( ret ); \
}
uint64 const sc_uint_base int b
Definition: sc_fxval.h:1005
SC_API int cmp_scfx_rep(const scfx_rep &, const scfx_rep &)

Definition at line 1864 of file sc_fxval.h.

◆ DEFN_REL_OP_T [2/2]

#define DEFN_REL_OP_T (   op,
  tp 
)
Value:
inline \
bool \
operator op ( const sc_fxval_fast& a, tp b ) \
{ \
SC_FXVAL_FAST_OBSERVER_READ_( a ) \
sc_fxval_fast tmp( b ); \
return ( a.m_val op tmp.m_val ); \
} \
\
inline \
bool \
operator op ( tp a, const sc_fxval_fast& b ) \
{ \
SC_FXVAL_FAST_OBSERVER_READ_( b ) \
sc_fxval_fast tmp( a ); \
return ( tmp.m_val op b.m_val ); \
}
uint64 const sc_uint_base int b
Definition: sc_fxval.h:1005

Definition at line 1864 of file sc_fxval.h.

◆ SCFX_EXPLICIT_

#define SCFX_EXPLICIT_   explicit

Definition at line 69 of file sc_fxval.h.

◆ SCFX_EXPLICIT_OTHER_

#define SCFX_EXPLICIT_OTHER_   explicit

Definition at line 74 of file sc_fxval.h.