sc_fix.h

来自「基于4个mips核的noc设计」· C头文件 代码 · 共 1,445 行 · 第 1/5 页

H
1,445
字号
#define DEFN_ASN_OP_T(op,op2,tp)                                              \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;                                                             \}DEFN_ASN_OP_T(&=,&&,sc_fix)DEFN_ASN_OP_T(&=,&&,sc_fix_fast)DEFN_ASN_OP_T(|=,||,sc_fix)DEFN_ASN_OP_T(|=,||,sc_fix_fast)DEFN_ASN_OP_T(^=,!=,sc_fix)DEFN_ASN_OP_T(^=,!=,sc_fix_fast)#undef DEFN_ASN_OP_T// auto-increment and auto-decrementinlineconst sc_fxvalsc_fix::operator ++ ( int ){    return sc_fxval( sc_fxnum::operator ++ ( 0 ) );}inlineconst sc_fxvalsc_fix::operator -- ( int ){    return sc_fxval( sc_fxnum::operator -- ( 0 ) );}inlinesc_fix&sc_fix::operator ++ (){    sc_fxnum::operator ++ ();    return *this;}inlinesc_fix&sc_fix::operator -- (){    sc_fxnum::operator -- ();    return *this;}// ----------------------------------------------------------------------------//  CLASS : sc_fix_fast////  "Unconstrained" signed fixed-point class; limited precision.// ----------------------------------------------------------------------------// constructorsinlinesc_fix_fast::sc_fix_fast( sc_fxnum_fast_observer* observer_ ): sc_fxnum_fast( sc_fxtype_params(),		 SC_TC_,		 sc_fxcast_switch(),		 observer_ ){}inlinesc_fix_fast::sc_fix_fast( int wl_, int iwl_,			  sc_fxnum_fast_observer* observer_ ): sc_fxnum_fast( sc_fxtype_params( wl_, iwl_ ),		 SC_TC_,		 sc_fxcast_switch(),		 observer_ ){}inlinesc_fix_fast::sc_fix_fast( sc_q_mode qm, sc_o_mode om,			  sc_fxnum_fast_observer* observer_ ): sc_fxnum_fast( sc_fxtype_params( qm, om ),		 SC_TC_,		 sc_fxcast_switch(),		 observer_ ){}inlinesc_fix_fast::sc_fix_fast( sc_q_mode qm, sc_o_mode om, int nb,			  sc_fxnum_fast_observer* observer_ ): sc_fxnum_fast( sc_fxtype_params( qm, om, nb ),		 SC_TC_,		 sc_fxcast_switch(),		 observer_ ){}inlinesc_fix_fast::sc_fix_fast( int wl_, int iwl_, sc_q_mode qm, sc_o_mode om,			  sc_fxnum_fast_observer* observer_ ): sc_fxnum_fast( sc_fxtype_params( wl_, iwl_, qm, om ),		 SC_TC_,		 sc_fxcast_switch(),		 observer_ ){}inlinesc_fix_fast::sc_fix_fast( int wl_, int iwl_,			  sc_q_mode qm, sc_o_mode om, int nb,			  sc_fxnum_fast_observer* observer_ ): sc_fxnum_fast( sc_fxtype_params( wl_, iwl_, qm, om, nb ),		 SC_TC_,		 sc_fxcast_switch(),		 observer_ ){}inlinesc_fix_fast::sc_fix_fast( const sc_fxcast_switch& cast_sw,			  sc_fxnum_fast_observer* observer_ ): sc_fxnum_fast( sc_fxtype_params(),		 SC_TC_,		 cast_sw,		 observer_ ){}inlinesc_fix_fast::sc_fix_fast( int wl_, int iwl_,			  const sc_fxcast_switch& cast_sw,			  sc_fxnum_fast_observer* observer_ ): sc_fxnum_fast( sc_fxtype_params( wl_, iwl_ ),		 SC_TC_,		 cast_sw,		 observer_ ){}inlinesc_fix_fast::sc_fix_fast( sc_q_mode qm, sc_o_mode om,			  const sc_fxcast_switch& cast_sw,			  sc_fxnum_fast_observer* observer_ ): sc_fxnum_fast( sc_fxtype_params( qm, om ),		 SC_TC_,		 cast_sw,		 observer_ ){}inlinesc_fix_fast::sc_fix_fast( sc_q_mode qm, sc_o_mode om, int nb,			  const sc_fxcast_switch& cast_sw,			  sc_fxnum_fast_observer* observer_ ): sc_fxnum_fast( sc_fxtype_params( qm, om, nb ),		 SC_TC_,		 cast_sw,		 observer_ ){}inlinesc_fix_fast::sc_fix_fast( int wl_, int iwl_, sc_q_mode qm, sc_o_mode om,			  const sc_fxcast_switch& cast_sw,			  sc_fxnum_fast_observer* observer_ ): sc_fxnum_fast( sc_fxtype_params( wl_, iwl_, qm, om ),		 SC_TC_,		 cast_sw,		 observer_ ){}inlinesc_fix_fast::sc_fix_fast( int wl_, int iwl_,			  sc_q_mode qm, sc_o_mode om, int nb,			  const sc_fxcast_switch& cast_sw,			  sc_fxnum_fast_observer* observer_ ): sc_fxnum_fast( sc_fxtype_params( wl_, iwl_, qm, om, nb ),		 SC_TC_,		 cast_sw,		 observer_ ){}inlinesc_fix_fast::sc_fix_fast( const sc_fxtype_params& type_params,			  sc_fxnum_fast_observer* observer_ ): sc_fxnum_fast( type_params,		 SC_TC_,		 sc_fxcast_switch(),		 observer_ ){}inlinesc_fix_fast::sc_fix_fast( const sc_fxtype_params& type_params,			  const sc_fxcast_switch& cast_sw,			  sc_fxnum_fast_observer* observer_ ): sc_fxnum_fast( type_params,		 SC_TC_,		 cast_sw,		 observer_ ){}#define DEFN_CTORS_T_A(tp)                                                    \inline                                                                        \sc_fix_fast::sc_fix_fast( tp a,                                               \			  sc_fxnum_fast_observer* observer_ )                 \: sc_fxnum_fast( a,                                                           \		 sc_fxtype_params(),                                          \		 SC_TC_,                                                      \		 sc_fxcast_switch(),                                          \		 observer_ )                                                  \{}                                                                            \                                                                              \inline                                                                        \sc_fix_fast::sc_fix_fast( tp a,                                               \			  int wl_, int iwl_,                                  \			  sc_fxnum_fast_observer* observer_ )                 \: sc_fxnum_fast( a,                                                           \		 sc_fxtype_params( wl_, iwl_ ),                               \		 SC_TC_,                                                      \		 sc_fxcast_switch(),                                          \		 observer_ )                                                  \{}                                                                            \                                                                              \inline                                                                        \sc_fix_fast::sc_fix_fast( tp a,                                               \			  sc_q_mode qm, sc_o_mode om,                         \			  sc_fxnum_fast_observer* observer_ )                 \: sc_fxnum_fast( a,                                                           \		 sc_fxtype_params( qm, om ),                                  \		 SC_TC_,                                                      \		 sc_fxcast_switch(),                                          \		 observer_ )                                                  \{}                                                                            \                                                                              \inline                                                                        \sc_fix_fast::sc_fix_fast( tp a,                                               \			  sc_q_mode qm, sc_o_mode om, int nb,                 \			  sc_fxnum_fast_observer* observer_ )                 \: sc_fxnum_fast( a,                                                           \		 sc_fxtype_params( qm, om, nb ),                              \		 SC_TC_,                                                      \		 sc_fxcast_switch(),                                          \		 observer_ )                                                  \{}                                                                            \                                                                              \inline                                                                        \sc_fix_fast::sc_fix_fast( tp a,                                               \			  int wl_, int iwl_, sc_q_mode qm, sc_o_mode om,      \			  sc_fxnum_fast_observer* observer_ )                 \: sc_fxnum_fast( a,                                                           \		 sc_fxtype_params( wl_, iwl_, qm, om ),                       \		 SC_TC_,                                                      \		 sc_fxcast_switch(),                                          \		 observer_ )                                                  \{}                                                                            \                                                                              \inline                                                                        \sc_fix_fast::sc_fix_fast( tp a,                                               \			  int wl_, int iwl_,                                  \			  sc_q_mode qm, sc_o_mode om, int nb,                 \			  sc_fxnum_fast_observer* observer_ )                 \: sc_fxnum_fast( a,                                                           \		 sc_fxtype_params( wl_, iwl_, qm, om, nb ),                   \		 SC_TC_,                                                      \		 sc_fxcast_switch(),                                          \		 observer_ )                                                  \{}                                                                            \                                                                              \inline                                                                        \sc_fix_fast::sc_fix_fast( tp a,                                               \			  const sc_fxcast_switch& cast_sw,                    \			  sc_fxnum_fast_observer* observer_ )                 \: sc_fxnum_fast( a,                                                           \		 sc_fxtype_params(),                                          \		 SC_TC_,                                                      \		 cast_sw,                                                     \		 observer_ )                                                  \{}                                                                            \                                                                              \inline                                                                        \sc_fix_fast::sc_fix_fast( tp a,                                               \			  int wl_, int iwl_,                                  \			  const sc_fxcast_switch& cast_sw,                    \			  sc_fxnum_fast_observer* observer_ )                 \: sc_fxnum_fast( a,                                                           \		 sc_fxtype_params( wl_, iwl_ ),                               \		 SC_TC_,                                                      \		 cast_sw,                                                     \		 observer_ )                                                  \{}                                     

⌨️ 快捷键说明

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