⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sc_ufixed.h

📁 system C源码 一种替代verilog的语言
💻 H
📖 第 1 页 / 共 2 页
字号:
sc_ufixed<W,I,Q,O,N>::sc_ufixed( tp a,                                        \				 sc_fxnum_observer* observer_ )               \: sc_ufix( a, W, I, Q, O, N, observer_ )                                      \{}                                                                            \                                                                              \template<int W, int I, sc_q_mode Q, sc_o_mode O, int N>                       \inline                                                                        \sc_ufixed<W,I,Q,O,N>::sc_ufixed( tp a,                                        \				 const sc_fxcast_switch& cast_sw,             \				 sc_fxnum_observer* observer_ )               \: sc_ufix( a, W, I, Q, O, N, cast_sw, observer_ )                             \{}DEFN_CTORS_T(int)DEFN_CTORS_T(unsigned int)DEFN_CTORS_T(long)DEFN_CTORS_T(unsigned long)DEFN_CTORS_T(double)DEFN_CTORS_T(const char*)DEFN_CTORS_T(const sc_fxval&)DEFN_CTORS_T(const sc_fxval_fast&)DEFN_CTORS_T(const sc_fxnum&)DEFN_CTORS_T(const sc_fxnum_fast&)#ifndef SC_FX_EXCLUDE_OTHERDEFN_CTORS_T(int64)DEFN_CTORS_T(uint64)DEFN_CTORS_T(const sc_int_base&)DEFN_CTORS_T(const sc_uint_base&)DEFN_CTORS_T(const sc_signed&)DEFN_CTORS_T(const sc_unsigned&)#endif#undef DEFN_CTORS_T// copy constructortemplate<int W, int I, sc_q_mode Q, sc_o_mode O, int N>inlinesc_ufixed<W,I,Q,O,N>::sc_ufixed( const sc_ufixed<W,I,Q,O,N>& a ): sc_ufix( a, W, I, Q, O, N ){}// assignment operatorstemplate<int W, int I, sc_q_mode Q, sc_o_mode O, int N>inlinesc_ufixed<W,I,Q,O,N>&sc_ufixed<W,I,Q,O,N>::operator = ( const sc_ufixed<W,I,Q,O,N>& a ){    sc_ufix::operator = ( a );    return *this;}#define DEFN_ASN_OP_T(op,tp)                                                  \template<int W, int I, sc_q_mode Q, sc_o_mode O, int N>                       \inline                                                                        \sc_ufixed<W,I,Q,O,N>&                                                         \sc_ufixed<W,I,Q,O,N>::operator op ( tp a )                                    \{                                                                             \    sc_ufix::operator op ( a );                                               \    return *this;                                                             \}#ifndef SC_FX_EXCLUDE_OTHER#define DEFN_ASN_OP_OTHER(op)                                                 \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&)#else#define DEFN_ASN_OP_OTHER(op)#endif#define DEFN_ASN_OP(op)                                                       \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,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)DEFN_ASN_OP(=)DEFN_ASN_OP(*=)DEFN_ASN_OP(/=)DEFN_ASN_OP(+=)DEFN_ASN_OP(-=)DEFN_ASN_OP_T(<<=,int)DEFN_ASN_OP_T(>>=,int)DEFN_ASN_OP_T(&=,const sc_ufix&)DEFN_ASN_OP_T(&=,const sc_ufix_fast&)DEFN_ASN_OP_T(|=,const sc_ufix&)DEFN_ASN_OP_T(|=,const sc_ufix_fast&)DEFN_ASN_OP_T(^=,const sc_ufix&)DEFN_ASN_OP_T(^=,const sc_ufix_fast&)#undef DEFN_ASN_OP_T#undef DEFN_ASN_OP_OTHER#undef DEFN_ASN_OP// auto-increment and auto-decrementtemplate<int W, int I, sc_q_mode Q, sc_o_mode O, int N>inlineconst sc_fxvalsc_ufixed<W,I,Q,O,N>::operator ++ ( int ){    return sc_fxval( sc_ufix::operator ++ ( 0 ) );}template<int W, int I, sc_q_mode Q, sc_o_mode O, int N>inlineconst sc_fxvalsc_ufixed<W,I,Q,O,N>::operator -- ( int ){    return sc_fxval( sc_ufix::operator -- ( 0 ) );}template<int W, int I, sc_q_mode Q, sc_o_mode O, int N>inlinesc_ufixed<W,I,Q,O,N>&sc_ufixed<W,I,Q,O,N>::operator ++ (){    sc_ufix::operator ++ ();    return *this;}template<int W, int I, sc_q_mode Q, sc_o_mode O, int N>inlinesc_ufixed<W,I,Q,O,N>&sc_ufixed<W,I,Q,O,N>::operator -- (){    sc_ufix::operator -- ();    return *this;}// ----------------------------------------------------------------------------//  TEMPLATE CLASS : sc_ufixed_fast////  "Constrained" unsigned fixed-point class; limited precision.// ----------------------------------------------------------------------------template<int W, int I, sc_q_mode Q, sc_o_mode O, int N>inlinesc_ufixed_fast<W,I,Q,O,N>::sc_ufixed_fast( sc_fxnum_fast_observer* observer_ ): sc_ufix_fast( W, I, Q, O, N, observer_ ){}template<int W, int I, sc_q_mode Q, sc_o_mode O, int N>inlinesc_ufixed_fast<W,I,Q,O,N>::sc_ufixed_fast( const sc_fxcast_switch& cast_sw,					   sc_fxnum_fast_observer* observer_ ): sc_ufix_fast( W, I, Q, O, N, cast_sw, observer_ ){}#define DEFN_CTORS_T(tp)                                                      \template<int W, int I, sc_q_mode Q, sc_o_mode O, int N>                       \inline                                                                        \sc_ufixed_fast<W,I,Q,O,N>::sc_ufixed_fast( tp a,                              \					   sc_fxnum_fast_observer* observer_ )\: sc_ufix_fast( a, W, I, Q, O, N, observer_ )                                 \{}                                                                            \                                                                              \template<int W, int I, sc_q_mode Q, sc_o_mode O, int N>                       \inline                                                                        \sc_ufixed_fast<W,I,Q,O,N>::sc_ufixed_fast( tp a,                              \					   const sc_fxcast_switch& cast_sw,   \					   sc_fxnum_fast_observer* observer_ )\: sc_ufix_fast( a, W, I, Q, O, N, cast_sw, observer_ )                        \{}DEFN_CTORS_T(int)DEFN_CTORS_T(unsigned int)DEFN_CTORS_T(long)DEFN_CTORS_T(unsigned long)DEFN_CTORS_T(double)DEFN_CTORS_T(const char*)DEFN_CTORS_T(const sc_fxval&)DEFN_CTORS_T(const sc_fxval_fast&)DEFN_CTORS_T(const sc_fxnum&)DEFN_CTORS_T(const sc_fxnum_fast&)#ifndef SC_FX_EXCLUDE_OTHERDEFN_CTORS_T(int64)DEFN_CTORS_T(uint64)DEFN_CTORS_T(const sc_int_base&)DEFN_CTORS_T(const sc_uint_base&)DEFN_CTORS_T(const sc_signed&)DEFN_CTORS_T(const sc_unsigned&)#endif#undef DEFN_CTORS_T// copy constructortemplate<int W, int I, sc_q_mode Q, sc_o_mode O, int N>inlinesc_ufixed_fast<W,I,Q,O,N>::sc_ufixed_fast( const sc_ufixed_fast<W,I,Q,O,N>& a ): sc_ufix_fast( a, W, I, Q, O, N ){}// assignment operatorstemplate<int W, int I, sc_q_mode Q, sc_o_mode O, int N>inlinesc_ufixed_fast<W,I,Q,O,N>&sc_ufixed_fast<W,I,Q,O,N>::operator = ( const sc_ufixed_fast<W,I,Q,O,N>& a ){    sc_ufix_fast::operator = ( a );    return *this;}#define DEFN_ASN_OP_T(op,tp)                                                  \template<int W, int I, sc_q_mode Q, sc_o_mode O, int N>                       \inline                                                                        \sc_ufixed_fast<W,I,Q,O,N>&                                                    \sc_ufixed_fast<W,I,Q,O,N>::operator op ( tp a )                               \{                                                                             \    sc_ufix_fast::operator op ( a );                                          \    return *this;                                                             \}#ifndef SC_FX_EXCLUDE_OTHER#define DEFN_ASN_OP_OTHER(op)                                                 \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&)#else#define DEFN_ASN_OP_OTHER(op)#endif#define DEFN_ASN_OP(op)                                                       \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,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)DEFN_ASN_OP(=)DEFN_ASN_OP(*=)DEFN_ASN_OP(/=)DEFN_ASN_OP(+=)DEFN_ASN_OP(-=)DEFN_ASN_OP_T(<<=,int)DEFN_ASN_OP_T(>>=,int)DEFN_ASN_OP_T(&=,const sc_ufix&)DEFN_ASN_OP_T(&=,const sc_ufix_fast&)DEFN_ASN_OP_T(|=,const sc_ufix&)DEFN_ASN_OP_T(|=,const sc_ufix_fast&)DEFN_ASN_OP_T(^=,const sc_ufix&)DEFN_ASN_OP_T(^=,const sc_ufix_fast&)#undef DEFN_ASN_OP_T#undef DEFN_ASN_OP_OTHER#undef DEFN_ASN_OP// auto-increment and auto-decrementtemplate<int W, int I, sc_q_mode Q, sc_o_mode O, int N>inlineconst sc_fxval_fastsc_ufixed_fast<W,I,Q,O,N>::operator ++ ( int ){    return sc_fxval_fast( sc_ufix_fast::operator ++ ( 0 ) );}template<int W, int I, sc_q_mode Q, sc_o_mode O, int N>inlineconst sc_fxval_fastsc_ufixed_fast<W,I,Q,O,N>::operator -- ( int ){    return sc_fxval_fast( sc_ufix_fast::operator -- ( 0 ) );}template<int W, int I, sc_q_mode Q, sc_o_mode O, int N>inlinesc_ufixed_fast<W,I,Q,O,N>&sc_ufixed_fast<W,I,Q,O,N>::operator ++ (){    sc_ufix_fast::operator ++ ();    return *this;}template<int W, int I, sc_q_mode Q, sc_o_mode O, int N>inlinesc_ufixed_fast<W,I,Q,O,N>&sc_ufixed_fast<W,I,Q,O,N>::operator -- (){    sc_ufix_fast::operator -- ();    return *this;}} // namespace sc_dt#endif// Taf!

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -