itpp::Fix_Base Class Reference
Fixed-point Module

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

`#include <itpp/fixed/fix_base.h>`

Inheritance diagram for itpp::Fix_Base:

## 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.
Stat * | stat_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 )

inline explicit

Default constructor.

Definition at line 985 of file fix_base.h.

References emode, init(), itpp::MAX_WORDLEN, omode, qmode, shift, stat_ptr, itpp::TC, itpp::TRN, wordlen, and itpp::WRAP.

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

## 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.

References emode, Fix_Base(), init(), itpp::MAX_WORDLEN, omode, qmode, shift, stat_ptr, itpp::TC, itpp::TRN, wordlen, and itpp::WRAP.

## ~Fix_Base()

virtual itpp::Fix_Base::~Fix_Base | ( |  | ) |

inline virtual

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.

References shift.

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

## set_output_mode() [1/2]

void itpp::Fix_Base::set_output_mode | ( | output_mode | o | ) |

inline static

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 shift.

Definition at line 1001 of file fix_base.h.

References shift.

Referenced by itpp::abs(), itpp::assert_fixshift(), itpp::assert_fixshift(), itpp::conj(), itpp::imag(), itpp::operator*(), itpp::operator*(), itpp::operator*(), itpp::operator*(), itpp::operator*(), itpp::operator*(), itpp::operator*(), itpp::operator*(), itpp::operator/(), itpp::operator/(), itpp::operator/(), itpp::operator/(), itpp::operator/(), itpp::operator/(), itpp::operator/(), itpp::operator/(), itpp::operator<<(), itpp::operator<<(), and itpp::real().

## get_wordlen()

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

inline

Get word length.

Definition at line 1003 of file fix_base.h.

References wordlen.

## 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.

References emode.

## 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.

References omode.

## 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.

References qmode.

## 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 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 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.

Referenced by Fix_Base(), and Fix_Base().

## apply_o_mode()

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

protected

Handle overflows using overflow mode `omode` and make call to statistics object (if any).

Definition at line 88 of file fix_base.cpp.

References it_error, max, min, n_unused_bits, omode, itpp::SAT, stat_ptr, and itpp::WRAP.

Referenced by itpp::CFix::lshift(), itpp::Fix::lshift(), itpp::CFix::operator*=(), itpp::CFix::operator+=(), itpp::CFix::operator+=(), itpp::Fix::operator+=(), itpp::Fix::operator+=(), itpp::Fix::operator-=(), itpp::Fix::operator-=(), itpp::CFix::operator/=(), itpp::CFix::operator/=(), itpp::CFix::operator<<=(), itpp::CFix::operator=(), itpp::CFix::operator=(), itpp::CFix::operator=(), itpp::CFix::operator=(), itpp::CFixed< 1, TC, WRAP >::operator=(), itpp::CFixed< 1, TC, WRAP >::operator=(), itpp::CFixed< 1, TC, WRAP >::operator=(), itpp::CFixed< 1, TC, WRAP >::operator=(), itpp::Fix::operator=(), itpp::Fix::operator=(), itpp::Fixed< 1, TC, WRAP >::operator=(), itpp::Fixed< 1, TC, WRAP >::operator=(), scale_and_apply_modes(), itpp::CFix::set_im(), itpp::CFix::set_re(), and itpp::Fix::set_re().

## scale_and_apply_modes() [1/2]

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

inline protected

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

Definition at line 1044 of file fix_base.h.

References qmode, and scale_and_apply_modes().

Referenced by itpp::CFix::CFix(), itpp::CFix::CFix(), itpp::Fix::Fix(), 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

inline protected

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 qmode, and rshift_and_apply_q_mode().

Referenced by itpp::CFix::operator>>=(), itpp::Fix::operator>>=(), itpp::CFix::rshift(), itpp::CFix::rshift(), itpp::Fix::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, stat_ptr, itpp::TRN, and itpp::TRN_ZERO.

## Member Data Documentation

## shift

int itpp::Fix_Base::shift

protected

Accumulated bitshift (positive means left-shifted, negative means right-shifted).

Definition at line 1021 of file fix_base.h.

Referenced by itpp::CFix::assert_shifts, itpp::CFix::assert_shifts, itpp::CFix::assert_shifts, itpp::Fix::assert_shifts, itpp::Fix::assert_shifts, itpp::CFix::CFix(), itpp::Fix::Fix(), Fix_Base(), Fix_Base(), get_shift(), itpp::CFix::lshift(), itpp::Fix::lshift(), itpp::Fix::operator double(), itpp::CFix::operator std::complex< double >(), itpp::CFix::operator*=(), itpp::CFix::operator+=(), itpp::CFix::operator+=(), itpp::Fix::operator+=(), itpp::CFix::operator-(), itpp::Fix::operator-=(), itpp::Fixed< 1, TC, WRAP >::operator-=(), itpp::CFix::operator/=(), itpp::CFix::operator/=(), itpp::CFix::operator<<=(), itpp::CFix::operator=(), itpp::CFix::operator=(), itpp::CFix::operator=(), itpp::CFix::operator=(), itpp::CFixed< 1, TC, WRAP >::operator=(), itpp::CFixed< 1, TC, WRAP >::operator=(), itpp::Fix::operator=(), itpp::Fix::operator=(), itpp::Fixed< 1, TC, WRAP >::operator=(), itpp::CFix::operator>>=(), itpp::Fix::operator>>=(), print(), itpp::CFix::rshift(), itpp::CFix::rshift(), itpp::Fix::rshift(), itpp::Fix::rshift(), scale_and_apply_modes(), itpp::CFix::set(), itpp::CFix::set(), itpp::CFix::set(), itpp::CFix::set(), itpp::Fix::set(), itpp::Fix::set(), set_shift(), itpp::CFix::unfix(), and itpp::Fix::unfix().

## wordlen

int itpp::Fix_Base::wordlen

protected

Word length.

Definition at line 1023 of file fix_base.h.

Referenced by itpp::CFix::CFix(), itpp::Fix::Fix(), Fix_Base(), Fix_Base(), get_wordlen(), 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 itpp::CFix::CFix(), itpp::Fix::Fix(), Fix_Base(), Fix_Base(), get_e_mode(), 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(), itpp::CFix::CFix(), itpp::Fix::Fix(), Fix_Base(), Fix_Base(), get_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 itpp::CFix::CFix(), itpp::Fix::Fix(), Fix_Base(), Fix_Base(), get_q_mode(), print(), rshift_and_apply_q_mode(), and scale_and_apply_modes().

## 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(), itpp::CFix::CFix(), itpp::Fix::Fix(), Fix_Base(), Fix_Base(), 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(), get_min(), 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(), get_max(), 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:

- itpp/fixed/fix_base.h
- itpp/fixed/fix_base.cpp

Generated on for IT++ by Doxygen 1.15.0