IT++ Logo
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
itpp::Fix_Base Class Reference

Base class for fixed-point data types. More...

#include <itpp/fixed/fix_base.h>

Inheritance diagram for itpp::Fix_Base:
itpp::CFix itpp::Fix itpp::CFixed< w, e, o, q > itpp::Fixed< w, e, o, q >

Public Member Functions

 Fix_Base (int s=0, int w=MAX_WORDLEN, e_mode e=TC, o_mode o=WRAP, q_mode q=TRN, Stat *ptr=0)
 Default constructor.
 
 Fix_Base (const Fix_Base &x)
 Copy constructor.
 
virtual ~Fix_Base ()
 Destructor.
 
void set_shift (int s)
 Set shift (without shifting)
 
int get_shift () const
 Get shift.
 
int get_wordlen () const
 Get word length.
 
e_mode get_e_mode () const
 Get sign encoding mode.
 
o_mode get_o_mode () const
 Get overflow mode.
 
q_mode get_q_mode () const
 Get quantization mode.
 
output_mode get_output_mode () const
 Get output mode.
 
fixrep get_max () const
 Get maximum value of data representation.
 
fixrep get_min () const
 Get minimum value of data representation.
 
virtual void print () const
 Print restrictions.
 

Static Public Member Functions

static void set_output_mode (output_mode o)
 Set output mode to OUTPUT_FIX, OUTPUT_FIX_SHIFT, OUTPUT_FLOAT or OUTPUT_FLOAT_SHIFT. Static member function.
 
static void set_output_mode (std::string o)
 Set output mode to "OUTPUT_FIX", "OUTPUT_FIX_SHIFT", "OUTPUT_FLOAT" or "OUTPUT_FLOAT_SHIFT". Static member function.
 

Protected Member Functions

void init ()
 Calculate help variables min, max and n_unused_bits.
 
fixrep apply_o_mode (fixrep x) const
 Handle overflows using overflow mode omode and make call to statistics object (if any)
 
fixrep scale_and_apply_modes (double x) const
 Convert from double to fixrep using shift and quantization mode qmode, then call limit()
 
fixrep scale_and_apply_modes (double x, q_mode q) const
 Convert from double to fixrep using shift and quantization mode q, then call limit()
 
fixrep rshift_and_apply_q_mode (fixrep x, int n) const
 Right shift n bits using quantization mode qmode and make call to statistics object (if any)
 
fixrep rshift_and_apply_q_mode (fixrep x, int n, q_mode q) const
 Right shift n bits using quantization mode q and make call to statistics object (if any)
 

Protected Attributes

int shift
 Accumulated bitshift (positive means left-shifted, negative means right-shifted)
 
int wordlen
 Word length.
 
e_mode emode
 Sign encoding mode.
 
o_mode omode
 Overflow mode.
 
q_mode qmode
 Quantization mode.
 
Statstat_ptr
 Pointer to statistics object.
 
fixrep min
 Minimum allowed value (help variable to speed up calculations)
 
fixrep max
 Maximum allowed value (help variable to speed up calculations)
 
int n_unused_bits
 Number of unused (MSB) bits (help variable to speed up calculations)
 

Detailed Description

Base class for fixed-point data types.

See the Detailed Description in the Fixed-point Module module.

Definition at line 981 of file fix_base.h.

Constructor & Destructor Documentation

◆ Fix_Base() [1/2]

itpp::Fix_Base::Fix_Base ( int  s = 0,
int  w = MAX_WORDLEN,
e_mode  e = TC,
o_mode  o = WRAP,
q_mode  q = TRN,
Stat ptr = 0 
)
inlineexplicit

Default constructor.

Definition at line 985 of file fix_base.h.

◆ Fix_Base() [2/2]

itpp::Fix_Base::Fix_Base ( const Fix_Base x)
inline

Copy constructor.

Definition at line 988 of file fix_base.h.

◆ ~Fix_Base()

virtual itpp::Fix_Base::~Fix_Base ( )
inlinevirtual

Destructor.

Definition at line 991 of file fix_base.h.

Member Function Documentation

◆ set_shift()

void itpp::Fix_Base::set_shift ( int  s)
inline

Set shift (without shifting)

Definition at line 994 of file fix_base.h.

Referenced by itpp::operator>>(), and itpp::operator>>().

◆ set_output_mode() [1/2]

static void itpp::Fix_Base::set_output_mode ( output_mode  o)
inlinestatic

Set output mode to OUTPUT_FIX, OUTPUT_FIX_SHIFT, OUTPUT_FLOAT or OUTPUT_FLOAT_SHIFT. Static member function.

Definition at line 996 of file fix_base.h.

Referenced by itpp::operator<<().

◆ set_output_mode() [2/2]

void itpp::Fix_Base::set_output_mode ( std::string  o)
static

Set output mode to "OUTPUT_FIX", "OUTPUT_FIX_SHIFT", "OUTPUT_FLOAT" or "OUTPUT_FLOAT_SHIFT". Static member function.

Definition at line 40 of file fix_base.cpp.

References it_error, itpp::OUTPUT_FIX, itpp::OUTPUT_FIX_SHIFT, itpp::OUTPUT_FLOAT, and itpp::OUTPUT_FLOAT_SHIFT.

◆ get_shift()

int itpp::Fix_Base::get_shift ( ) const
inline

◆ get_wordlen()

int itpp::Fix_Base::get_wordlen ( ) const
inline

Get word length.

Definition at line 1003 of file fix_base.h.

◆ get_e_mode()

e_mode itpp::Fix_Base::get_e_mode ( ) const
inline

Get sign encoding mode.

Definition at line 1005 of file fix_base.h.

◆ get_o_mode()

o_mode itpp::Fix_Base::get_o_mode ( ) const
inline

Get overflow mode.

Definition at line 1007 of file fix_base.h.

◆ get_q_mode()

q_mode itpp::Fix_Base::get_q_mode ( ) const
inline

Get quantization mode.

Definition at line 1009 of file fix_base.h.

◆ get_output_mode()

output_mode itpp::Fix_Base::get_output_mode ( ) const
inline

Get output mode.

Definition at line 1011 of file fix_base.h.

Referenced by itpp::operator<<(), and itpp::operator<<().

◆ get_max()

fixrep itpp::Fix_Base::get_max ( ) const
inline

Get maximum value of data representation.

Definition at line 1013 of file fix_base.h.

References itpp::max().

◆ get_min()

fixrep itpp::Fix_Base::get_min ( ) const
inline

Get minimum value of data representation.

Definition at line 1015 of file fix_base.h.

References itpp::min().

◆ print()

void itpp::Fix_Base::print ( ) const
virtual

Print restrictions.

Reimplemented in itpp::CFix, and itpp::Fix.

Definition at line 54 of file fix_base.cpp.

References emode, max, min, n_unused_bits, omode, qmode, shift, stat_ptr, and wordlen.

Referenced by itpp::CFix::print(), and itpp::Fix::print().

◆ init()

void itpp::Fix_Base::init ( )
protected

Calculate help variables min, max and n_unused_bits.

Definition at line 67 of file fix_base.cpp.

References emode, it_assert_debug, it_error, max, itpp::MAX_WORDLEN, min, n_unused_bits, itpp::TC, itpp::UINT64_POW2, itpp::US, and wordlen.

◆ apply_o_mode()

fixrep itpp::Fix_Base::apply_o_mode ( fixrep  x) const
protected

◆ scale_and_apply_modes() [1/2]

fixrep itpp::Fix_Base::scale_and_apply_modes ( double  x) const
inlineprotected

Convert from double to fixrep using shift and quantization mode qmode, then call limit()

Definition at line 1044 of file fix_base.h.

References scale_and_apply_modes().

Referenced by scale_and_apply_modes(), itpp::CFix::set(), itpp::CFix::set(), itpp::CFix::set(), itpp::CFix::set(), itpp::Fix::set(), and itpp::Fix::set().

◆ scale_and_apply_modes() [2/2]

fixrep itpp::Fix_Base::scale_and_apply_modes ( double  x,
q_mode  q 
) const
protected

Convert from double to fixrep using shift and quantization mode q, then call limit()

Definition at line 128 of file fix_base.cpp.

References apply_o_mode(), itpp::DOUBLE_POW2, it_assert_debug, it_error, itpp::RND, itpp::RND_CONV, itpp::RND_CONV_ODD, itpp::RND_INF, itpp::RND_MIN_INF, itpp::RND_ZERO, itpp::round(), shift, itpp::TRN, and itpp::TRN_ZERO.

◆ rshift_and_apply_q_mode() [1/2]

fixrep itpp::Fix_Base::rshift_and_apply_q_mode ( fixrep  x,
int  n 
) const
inlineprotected

Right shift n bits using quantization mode qmode and make call to statistics object (if any)

Definition at line 1048 of file fix_base.h.

References rshift_and_apply_q_mode().

Referenced by itpp::CFix::operator>>=(), itpp::Fix::operator>>=(), itpp::CFix::rshift(), itpp::Fix::rshift(), itpp::CFix::rshift(), itpp::Fix::rshift(), and rshift_and_apply_q_mode().

◆ rshift_and_apply_q_mode() [2/2]

fixrep itpp::Fix_Base::rshift_and_apply_q_mode ( fixrep  x,
int  n,
q_mode  q 
) const
protected

Right shift n bits using quantization mode q and make call to statistics object (if any)

Definition at line 182 of file fix_base.cpp.

References it_assert_debug, it_error, itpp::RND, itpp::RND_CONV, itpp::RND_CONV_ODD, itpp::RND_INF, itpp::RND_MIN_INF, itpp::RND_ZERO, itpp::Stat::sample(), stat_ptr, itpp::TRN, and itpp::TRN_ZERO.

Member Data Documentation

◆ shift

int itpp::Fix_Base::shift
protected

◆ wordlen

int itpp::Fix_Base::wordlen
protected

Word length.

Definition at line 1023 of file fix_base.h.

Referenced by init(), and print().

◆ emode

e_mode itpp::Fix_Base::emode
protected

Sign encoding mode.

Definition at line 1025 of file fix_base.h.

Referenced by init(), and print().

◆ omode

o_mode itpp::Fix_Base::omode
protected

Overflow mode.

Definition at line 1027 of file fix_base.h.

Referenced by apply_o_mode(), and print().

◆ qmode

q_mode itpp::Fix_Base::qmode
protected

Quantization mode.

Definition at line 1029 of file fix_base.h.

Referenced by print().

◆ stat_ptr

Stat* itpp::Fix_Base::stat_ptr
protected

Pointer to statistics object.

Definition at line 1031 of file fix_base.h.

Referenced by apply_o_mode(), print(), and rshift_and_apply_q_mode().

◆ min

fixrep itpp::Fix_Base::min
protected

Minimum allowed value (help variable to speed up calculations)

Definition at line 1033 of file fix_base.h.

Referenced by apply_o_mode(), init(), and print().

◆ max

fixrep itpp::Fix_Base::max
protected

Maximum allowed value (help variable to speed up calculations)

Definition at line 1035 of file fix_base.h.

Referenced by apply_o_mode(), init(), and print().

◆ n_unused_bits

int itpp::Fix_Base::n_unused_bits
protected

Number of unused (MSB) bits (help variable to speed up calculations)

Definition at line 1037 of file fix_base.h.

Referenced by apply_o_mode(), init(), and print().


The documentation for this class was generated from the following files:

Generated on Tue Mar 26 2024 19:08:31 for IT++ by Doxygen 1.9.8