クラス sc_dt::sc_signed_subref_r

#include <sc_signed.h>

sc_dt::sc_signed_subref_rに対する継承グラフ

Inheritance graph
[凡例]

すべてのメンバ一覧

Public メソッド

virtual ~sc_signed_subref_r ()
 sc_signed_subref_r (const sc_signed_subref_r &a)
int length () const
 operator sc_unsigned () const
int to_int () const
unsigned int to_uint () const
long to_long () const
unsigned long to_ulong () const
int64 to_int64 () const
uint64 to_uint64 () const
double to_double () const
const std::string to_string (sc_numrep numrep=SC_DEC) const
const std::string to_string (sc_numrep numrep, bool w_prefix) const
virtual int concat_length (bool *xz_present_p) const
virtual uint64 concat_get_uint64 () const
virtual bool concat_get_ctrl (sc_digit *dst_p, int low_i) const
virtual bool concat_get_data (sc_digit *dst_p, int low_i) const
bool and_reduce () const
bool nand_reduce () const
bool or_reduce () const
bool nor_reduce () const
bool xor_reduce () const
bool xnor_reduce () const
void print (::std::ostream &os=::std::cout) const

Protected メソッド

 sc_signed_subref_r ()
void initialize (const sc_signed *obj_p, int left_, int right_)

Protected 変数

int m_left
sc_signedm_obj_p
int m_right

Private メソッド

const sc_signed_subref_roperator= (const sc_signed_subref_r &)

フレンド

class sc_signed
class sc_signed_signal
class sc_unsigned


説明

sc_signed.h881 行で定義されています。


コンストラクタとデストラクタ

sc_dt::sc_signed_subref_r::sc_signed_subref_r (  )  [inline, protected]

sc_signed.h891 行で定義されています。

00892         {}

virtual sc_dt::sc_signed_subref_r::~sc_signed_subref_r (  )  [inline, virtual]

sc_signed.h906 行で定義されています。

00907         {}

sc_dt::sc_signed_subref_r::sc_signed_subref_r ( const sc_signed_subref_r a  )  [inline]

sc_signed.h911 行で定義されています。

00912         : m_left( a.m_left ), m_obj_p( a.m_obj_p ), m_right( a.m_right )
00913         {}


関数

void sc_dt::sc_signed_subref_r::initialize ( const sc_signed obj_p,
int  left_,
int  right_ 
) [inline, protected]

sc_signed.h894 行で定義されています。

00895         {
00896             m_obj_p = ( CCAST<sc_signed*>( obj_p ));
00897             m_left = left_;
00898             m_right = right_;
00899         }

int sc_dt::sc_signed_subref_r::length (  )  const [inline]

sc_signed.h918 行で定義されています。

00919         { return m_left >= m_right ? (m_left-m_right+1) : (m_right-m_left+1 ); }

sc_dt::sc_signed_subref_r::operator sc_unsigned (  )  const

sc_signed.cpp8052 行で定義されています。

int sc_dt::sc_signed_subref_r::to_int (  )  const

sc_signed.cpp8061 行で定義されています。

unsigned int sc_dt::sc_signed_subref_r::to_uint (  )  const

sc_signed.cpp8068 行で定義されています。

long sc_dt::sc_signed_subref_r::to_long (  )  const

sc_signed.cpp8075 行で定義されています。

unsigned long sc_dt::sc_signed_subref_r::to_ulong (  )  const

sc_signed.cpp8082 行で定義されています。

int64 sc_dt::sc_signed_subref_r::to_int64 (  )  const

sc_signed.cpp8089 行で定義されています。

uint64 sc_dt::sc_signed_subref_r::to_uint64 (  )  const

sc_signed.cpp8096 行で定義されています。

double sc_dt::sc_signed_subref_r::to_double (  )  const

sc_signed.cpp8103 行で定義されています。

const std::string sc_dt::sc_signed_subref_r::to_string ( sc_numrep  numrep = SC_DEC  )  const

sc_signed.cpp8113 行で定義されています。

const std::string sc_dt::sc_signed_subref_r::to_string ( sc_numrep  numrep,
bool  w_prefix 
) const

sc_signed.cpp8121 行で定義されています。

virtual int sc_dt::sc_signed_subref_r::concat_length ( bool *  xz_present_p  )  const [inline, virtual]

sc_dt::sc_value_baseを再定義しています。

sc_signed.h945 行で定義されています。

00946         {
00947             if ( xz_present_p ) *xz_present_p = false;
00948             return m_left - m_right + 1;
00949         }

uint64 sc_dt::sc_signed_subref_r::concat_get_uint64 (  )  const [virtual]

sc_dt::sc_value_baseを再定義しています。

sc_signed.cpp8029 行で定義されています。

bool sc_dt::sc_signed_subref_r::concat_get_ctrl ( sc_digit dst_p,
int  low_i 
) const [virtual]

sc_dt::sc_value_baseを再定義しています。

sc_signed.cpp8036 行で定義されています。

bool sc_dt::sc_signed_subref_r::concat_get_data ( sc_digit dst_p,
int  low_i 
) const [virtual]

sc_dt::sc_value_baseを再定義しています。

sc_signed.cpp8043 行で定義されています。

bool sc_dt::sc_signed_subref_r::and_reduce (  )  const [inline]

sc_signed.h2239 行で定義されています。

02240 {
02241    const sc_signed* target_p = m_obj_p;
02242    for ( int i = m_right; i <= m_left; i++ )
02243         if ( !target_p->test(i) ) return false;
02244    return true;
02245 }

bool sc_dt::sc_signed_subref_r::nand_reduce (  )  const [inline]

sc_signed.h2247 行で定義されています。

02248 {
02249     return !and_reduce();
02250 }

bool sc_dt::sc_signed_subref_r::or_reduce (  )  const [inline]

sc_signed.h2252 行で定義されています。

02253 {
02254    const sc_signed* target_p = m_obj_p;
02255    for ( int i = m_right; i <= m_left; i++ )
02256         if ( target_p->test(i) ) return true;
02257    return false;
02258 }

bool sc_dt::sc_signed_subref_r::nor_reduce (  )  const [inline]

sc_signed.h2260 行で定義されています。

02261 {
02262     return !or_reduce();
02263 }

bool sc_dt::sc_signed_subref_r::xor_reduce (  )  const [inline]

sc_signed.h2265 行で定義されています。

02266 {
02267    int                odd;
02268    const sc_signed* target_p = m_obj_p;
02269    odd = 0;
02270    for ( int i = m_right; i <= m_left; i++ )
02271         if ( target_p->test(i) ) odd = ~odd;
02272    return odd ? true : false;
02273 }

bool sc_dt::sc_signed_subref_r::xnor_reduce (  )  const [inline]

sc_signed.h2275 行で定義されています。

02276 {
02277     return !xor_reduce();
02278 }

void sc_dt::sc_signed_subref_r::print ( ::std::ostream &  os = ::std::cout  )  const [inline]

sc_signed.h966 行で定義されています。

00967         { os << to_string(sc_io_base(os,SC_DEC),sc_io_show_base(os)); }

const sc_signed_subref_r& sc_dt::sc_signed_subref_r::operator= ( const sc_signed_subref_r  )  [private]

sc_dt::sc_signed_subrefで再定義されています。


フレンドと関連する関数

friend class sc_signed [friend]

sc_dt::sc_signed_subrefで再定義されています。

sc_signed.h883 行で定義されています。

friend class sc_signed_signal [friend]

sc_signed.h884 行で定義されています。

friend class sc_unsigned [friend]

sc_signed.h885 行で定義されています。


変数

sc_signed.h971 行で定義されています。

sc_signed.h972 行で定義されています。

sc_signed.h973 行で定義されています。


このクラスの説明は次のファイルから生成されました:

SystemCに対してFri Jun 6 20:12:54 2008に生成されました。  doxygen 1.5.6