IT++ Logo
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
itpp::Fixed< w, e, o, q > Class Template Reference

Templated fixed-point data type. More...

#include <itpp/fixed/fixed.h>

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

Public Member Functions

 Fixed (double x=0.0, int s=0, Stat *ptr=0)
 Default constructor. More...
 
 Fixed (Stat *ptr)
 Constructor. More...
 
 Fixed (const Fix &x, Stat *ptr=0)
 Constructor. More...
 
virtual ~Fixed ()
 Destructor. More...
 
Fixedoperator= (const Fix &x)
 Assignment from Fix. More...
 
Fixedoperator= (int x)
 Assignment from int. More...
 
Fixoperator+= (const Fix &x)
 Addition of Fix. More...
 
Fixoperator+= (const int x)
 Addition of int. More...
 
Fixoperator-= (const Fix &x)
 Subtraction of Fix. More...
 
Fixoperator-= (const int x)
 Subtraction of int. More...
 
Fixoperator*= (const Fix &x)
 Multiplication with Fix. More...
 
Fixoperator*= (const int x)
 Multiplication with int. More...
 
Fixoperator/= (const Fix &x)
 Division with Fix using quantization mode TRN. More...
 
Fixoperator/= (const int x)
 Division with int using quantization mode TRN. More...
 
Fix operator- () const
 Unary negative of Fix. More...
 
Fixoperator<<= (const int n)
 Left shift n bits. More...
 
Fixoperator>>= (const int n)
 Right shift n bits using quantization mode qmode (constructor argument) More...
 
void set (double x, int n)
 Set to x * pow2(n) using quantization mode qmode (constructor argument) More...
 
void set (double x, int n, q_mode q)
 Set to x * pow2(n) using quantization mode q (function argument) More...
 
void set_re (fixrep x)
 Set data representation (mainly for internal use since it reveals the representation type) More...
 
void lshift (int n)
 Left shift n bits. More...
 
void rshift (int n)
 Right shift n bits using quantization mode qmode (constructor argument) More...
 
void rshift (int n, q_mode q)
 Right shift n bits using quantization mode q (function argument) More...
 
virtual void print () const
 Print restrictions. More...
 
fixrep get_re () const
 Get data representation (mainly for internal use since it reveals the representation type) More...
 
double unfix () const
 Conversion to double. More...
 
 operator double () const
 Conversion to double. More...
 
void set_shift (int s)
 Set shift (without shifting) More...
 
int get_shift () const
 Get shift. More...
 
int get_wordlen () const
 Get word length. More...
 
e_mode get_e_mode () const
 Get sign encoding mode. More...
 
o_mode get_o_mode () const
 Get overflow mode. More...
 
q_mode get_q_mode () const
 Get quantization mode. More...
 
output_mode get_output_mode () const
 Get output mode. More...
 
fixrep get_max () const
 Get maximum value of data representation. More...
 
fixrep get_min () const
 Get minimum value of data representation. More...
 

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

Protected Member Functions

void init ()
 Calculate help variables min, max and n_unused_bits. More...
 
fixrep apply_o_mode (fixrep x) const
 Handle overflows using overflow mode omode and make call to statistics object (if any) More...
 
fixrep scale_and_apply_modes (double x) const
 Convert from double to fixrep using shift and quantization mode qmode, then call limit() More...
 
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() More...
 
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) More...
 
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) More...
 

Protected Attributes

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

Detailed Description

template<int w, e_mode e = TC, o_mode o = WRAP, q_mode q = TRN>
class itpp::Fixed< w, e, o, q >

Templated fixed-point data type.

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

Definition at line 48 of file fixed.h.

Constructor & Destructor Documentation

◆ Fixed() [1/3]

template<int w, e_mode e = TC, o_mode o = WRAP, q_mode q = TRN>
itpp::Fixed< w, e, o, q >::Fixed ( double  x = 0.0,
int  s = 0,
Stat ptr = 0 
)
inline

Default constructor.

Definition at line 52 of file fixed.h.

◆ Fixed() [2/3]

template<int w, e_mode e = TC, o_mode o = WRAP, q_mode q = TRN>
itpp::Fixed< w, e, o, q >::Fixed ( Stat ptr)
inlineexplicit

Constructor.

Definition at line 55 of file fixed.h.

◆ Fixed() [3/3]

template<int w, e_mode e = TC, o_mode o = WRAP, q_mode q = TRN>
itpp::Fixed< w, e, o, q >::Fixed ( const Fix x,
Stat ptr = 0 
)
inline

Constructor.

Definition at line 58 of file fixed.h.

◆ ~Fixed()

template<int w, e_mode e = TC, o_mode o = WRAP, q_mode q = TRN>
virtual itpp::Fixed< w, e, o, q >::~Fixed ( )
inlinevirtual

Destructor.

Definition at line 61 of file fixed.h.

Member Function Documentation

◆ operator=() [1/2]

template<int w, e_mode e = TC, o_mode o = WRAP, q_mode q = TRN>
Fixed & itpp::Fixed< w, e, o, q >::operator= ( const Fix x)
inline

Assignment from Fix.

Definition at line 64 of file fixed.h.

References itpp::Fix_Base::apply_o_mode(), itpp::Fix::re, and itpp::Fix_Base::shift.

◆ operator=() [2/2]

template<int w, e_mode e = TC, o_mode o = WRAP, q_mode q = TRN>
Fixed & itpp::Fixed< w, e, o, q >::operator= ( int  x)
inline

Assignment from int.

Definition at line 70 of file fixed.h.

References itpp::Fix_Base::apply_o_mode(), itpp::Fix::re, and itpp::Fix_Base::shift.

◆ operator+=() [1/2]

Fix & itpp::Fix::operator+= ( const Fix x)
inherited

Addition of Fix.

Definition at line 52 of file fix.cpp.

References itpp::Fix_Base::apply_o_mode(), itpp::Fix::assert_shifts, itpp::Fix::re, and itpp::Fix_Base::shift.

◆ operator+=() [2/2]

Fix & itpp::Fix::operator+= ( const int  x)
inherited

Addition of int.

Definition at line 59 of file fix.cpp.

References itpp::Fix_Base::apply_o_mode(), itpp::Fix::assert_shifts, and itpp::Fix::re.

◆ operator-=() [1/2]

Fix & itpp::Fix::operator-= ( const Fix x)
inherited

Subtraction of Fix.

Definition at line 66 of file fix.cpp.

References itpp::Fix_Base::apply_o_mode(), itpp::Fix::assert_shifts, itpp::Fix::re, and itpp::Fix_Base::shift.

◆ operator-=() [2/2]

Fix & itpp::Fix::operator-= ( const int  x)
inherited

Subtraction of int.

Definition at line 73 of file fix.cpp.

References itpp::Fix_Base::apply_o_mode(), itpp::Fix::assert_shifts, and itpp::Fix::re.

◆ operator*=() [1/2]

Fix & itpp::Fix::operator*= ( const Fix x)
inherited

Multiplication with Fix.

Definition at line 80 of file fix.cpp.

References itpp::Fix_Base::apply_o_mode(), itpp::Fix::re, and itpp::Fix_Base::shift.

◆ operator*=() [2/2]

Fix & itpp::Fix::operator*= ( const int  x)
inherited

Multiplication with int.

Definition at line 87 of file fix.cpp.

References itpp::Fix_Base::apply_o_mode(), and itpp::Fix::re.

◆ operator/=() [1/2]

Fix & itpp::Fix::operator/= ( const Fix x)
inherited

Division with Fix using quantization mode TRN.

Definition at line 93 of file fix.cpp.

References itpp::Fix_Base::apply_o_mode(), itpp::Fix::re, and itpp::Fix_Base::shift.

◆ operator/=() [2/2]

Fix & itpp::Fix::operator/= ( const int  x)
inherited

Division with int using quantization mode TRN.

Definition at line 100 of file fix.cpp.

References itpp::Fix_Base::apply_o_mode(), and itpp::Fix::re.

◆ operator-()

Fix itpp::Fix::operator- ( ) const
inherited

Unary negative of Fix.

Definition at line 106 of file fix.cpp.

References itpp::Fix::Fix(), itpp::Fix::re, and itpp::Fix_Base::shift.

◆ operator<<=()

Fix & itpp::Fix::operator<<= ( const int  n)
inherited

Left shift n bits.

Definition at line 111 of file fix.cpp.

References itpp::Fix_Base::apply_o_mode(), it_assert_debug, itpp::Fix::re, and itpp::Fix_Base::shift.

◆ operator>>=()

Fix & itpp::Fix::operator>>= ( const int  n)
inherited

Right shift n bits using quantization mode qmode (constructor argument)

Definition at line 119 of file fix.cpp.

References itpp::Fix::re, itpp::Fix_Base::rshift_and_apply_q_mode(), and itpp::Fix_Base::shift.

◆ set() [1/2]

void itpp::Fix::set ( double  x,
int  n 
)
inherited

Set to x * pow2(n) using quantization mode qmode (constructor argument)

Definition at line 126 of file fix.cpp.

References itpp::Fix::re, itpp::Fix_Base::scale_and_apply_modes(), and itpp::Fix_Base::shift.

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

◆ set() [2/2]

void itpp::Fix::set ( double  x,
int  n,
q_mode  q 
)
inherited

Set to x * pow2(n) using quantization mode q (function argument)

Definition at line 132 of file fix.cpp.

References itpp::Fix::re, itpp::Fix_Base::scale_and_apply_modes(), and itpp::Fix_Base::shift.

◆ set_re()

void itpp::Fix::set_re ( fixrep  x)
inlineinherited

Set data representation (mainly for internal use since it reveals the representation type)

Definition at line 104 of file fix.h.

Referenced by itpp::operator>>().

◆ lshift()

void itpp::Fix::lshift ( int  n)
inherited

Left shift n bits.

Definition at line 138 of file fix.cpp.

References itpp::Fix_Base::apply_o_mode(), it_assert_debug, itpp::Fix::re, and itpp::Fix_Base::shift.

Referenced by itpp::lshift_fix().

◆ rshift() [1/2]

void itpp::Fix::rshift ( int  n)
inherited

Right shift n bits using quantization mode qmode (constructor argument)

Definition at line 145 of file fix.cpp.

References itpp::Fix::re, itpp::Fix_Base::rshift_and_apply_q_mode(), and itpp::Fix_Base::shift.

Referenced by itpp::rshift_fix().

◆ rshift() [2/2]

void itpp::Fix::rshift ( int  n,
q_mode  q 
)
inherited

Right shift n bits using quantization mode q (function argument)

Definition at line 151 of file fix.cpp.

References itpp::Fix::re, itpp::Fix_Base::rshift_and_apply_q_mode(), and itpp::Fix_Base::shift.

◆ print()

void itpp::Fix::print ( ) const
virtualinherited

Print restrictions.

Reimplemented from itpp::Fix_Base.

Definition at line 163 of file fix.cpp.

References itpp::Fix_Base::print(), and itpp::Fix::re.

◆ get_re()

fixrep itpp::Fix::get_re ( ) const
inlineinherited

Get data representation (mainly for internal use since it reveals the representation type)

Definition at line 116 of file fix.h.

Referenced by itpp::abs(), itpp::operator*(), itpp::operator+(), itpp::operator-(), itpp::operator/(), and itpp::operator<<().

◆ unfix()

double itpp::Fix::unfix ( ) const
inherited

Conversion to double.

Definition at line 157 of file fix.cpp.

References itpp::DOUBLE_POW2, it_assert_debug, itpp::Fix::re, and itpp::Fix_Base::shift.

Referenced by itpp::unfix().

◆ operator double()

itpp::Fix::operator double ( ) const
inlineinherited

Conversion to double.

Definition at line 122 of file fix.h.

References itpp::DOUBLE_POW2, and it_assert_debug.

◆ set_shift()

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

Set shift (without shifting)

Definition at line 994 of file fix_base.h.

Referenced by itpp::operator>>().

◆ set_output_mode() [1/2]

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

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)
staticinherited

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
inlineinherited

◆ get_wordlen()

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

Get word length.

Definition at line 1003 of file fix_base.h.

◆ get_e_mode()

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

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
inlineinherited

Get overflow mode.

Definition at line 1007 of file fix_base.h.

◆ get_q_mode()

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

Get quantization mode.

Definition at line 1009 of file fix_base.h.

◆ get_output_mode()

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

Get output mode.

Definition at line 1011 of file fix_base.h.

Referenced by itpp::operator<<().

◆ get_max()

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

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
inlineinherited

Get minimum value of data representation.

Definition at line 1015 of file fix_base.h.

References itpp::min().

◆ init()

void itpp::Fix_Base::init ( )
protectedinherited

◆ apply_o_mode()

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

◆ scale_and_apply_modes() [1/2]

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

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

Definition at line 1044 of file fix_base.h.

References itpp::Fix_Base::scale_and_apply_modes().

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

◆ rshift_and_apply_q_mode() [1/2]

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

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 itpp::Fix_Base::rshift_and_apply_q_mode().

Referenced by itpp::CFix::operator>>=(), itpp::Fix::operator>>=(), itpp::CFix::rshift(), itpp::Fix::rshift(), and itpp::Fix_Base::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
protectedinherited

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(), itpp::Fix_Base::stat_ptr, itpp::TRN, and itpp::TRN_ZERO.

Member Data Documentation

◆ re

fixrep itpp::Fix::re
protectedinherited

◆ shift

int itpp::Fix_Base::shift
protectedinherited

◆ wordlen

int itpp::Fix_Base::wordlen
protectedinherited

Word length.

Definition at line 1023 of file fix_base.h.

Referenced by itpp::Fix_Base::init(), and itpp::Fix_Base::print().

◆ emode

e_mode itpp::Fix_Base::emode
protectedinherited

Sign encoding mode.

Definition at line 1025 of file fix_base.h.

Referenced by itpp::Fix_Base::init(), and itpp::Fix_Base::print().

◆ omode

o_mode itpp::Fix_Base::omode
protectedinherited

Overflow mode.

Definition at line 1027 of file fix_base.h.

Referenced by itpp::Fix_Base::apply_o_mode(), and itpp::Fix_Base::print().

◆ qmode

q_mode itpp::Fix_Base::qmode
protectedinherited

Quantization mode.

Definition at line 1029 of file fix_base.h.

Referenced by itpp::Fix_Base::print().

◆ stat_ptr

Stat* itpp::Fix_Base::stat_ptr
protectedinherited

Pointer to statistics object.

Definition at line 1031 of file fix_base.h.

Referenced by itpp::Fix_Base::apply_o_mode(), itpp::Fix_Base::print(), and itpp::Fix_Base::rshift_and_apply_q_mode().

◆ min

fixrep itpp::Fix_Base::min
protectedinherited

Minimum allowed value (help variable to speed up calculations)

Definition at line 1033 of file fix_base.h.

Referenced by itpp::Fix_Base::apply_o_mode(), itpp::Fix_Base::init(), and itpp::Fix_Base::print().

◆ max

fixrep itpp::Fix_Base::max
protectedinherited

Maximum allowed value (help variable to speed up calculations)

Definition at line 1035 of file fix_base.h.

Referenced by itpp::Fix_Base::apply_o_mode(), itpp::Fix_Base::init(), and itpp::Fix_Base::print().

◆ n_unused_bits

int itpp::Fix_Base::n_unused_bits
protectedinherited

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

Definition at line 1037 of file fix_base.h.

Referenced by itpp::Fix_Base::apply_o_mode(), itpp::Fix_Base::init(), and itpp::Fix_Base::print().


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

Generated on Tue Aug 17 2021 10:59:15 for IT++ by Doxygen 1.9.4