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

Fixed-point data type. More...

#include <itpp/fixed/fix.h>

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

Public Member Functions

 Fix (double x=0.0, 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 (const Fix_Factory &f)
 Constructor.
 
 Fix (fixrep r, int s, int, int)
 Constructor for internal use. No restrictions are applied. The dummies help to avoid ambiguities.
 
 Fix (const Fix &x, int w=MAX_WORDLEN, e_mode e=TC, o_mode o=WRAP, q_mode q=TRN, Stat *ptr=0)
 Copy constructor.
 
virtual ~Fix ()
 Destructor.
 
Fixoperator= (const Fix &x)
 Assignment from Fix.
 
Fixoperator= (const int x)
 Assignment from int.
 
Fixoperator+= (const Fix &x)
 Addition of Fix.
 
Fixoperator+= (const int x)
 Addition of int.
 
Fixoperator-= (const Fix &x)
 Subtraction of Fix.
 
Fixoperator-= (const int x)
 Subtraction of int.
 
Fixoperator*= (const Fix &x)
 Multiplication with Fix.
 
Fixoperator*= (const int x)
 Multiplication with int.
 
Fixoperator/= (const Fix &x)
 Division with Fix using quantization mode TRN.
 
Fixoperator/= (const int x)
 Division with int using quantization mode TRN.
 
Fix operator- () const
 Unary negative of Fix.
 
Fixoperator<<= (const int n)
 Left shift n bits.
 
Fixoperator>>= (const int n)
 Right shift n bits using quantization mode qmode (constructor argument)
 
void set (double x, int n)
 Set to x * pow2(n) using quantization mode qmode (constructor argument)
 
void set (double x, int n, q_mode q)
 Set to x * pow2(n) using quantization mode q (function argument)
 
void set_re (fixrep x)
 Set data representation (mainly for internal use since it reveals the representation type)
 
void lshift (int n)
 Left shift n bits.
 
void rshift (int n)
 Right shift n bits using quantization mode qmode (constructor argument)
 
void rshift (int n, q_mode q)
 Right shift n bits using quantization mode q (function argument)
 
virtual void print () const
 Print restrictions.
 
fixrep get_re () const
 Get data representation (mainly for internal use since it reveals the representation type)
 
double unfix () const
 Conversion to double.
 
 operator double () const
 Conversion to double.
 
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.
 

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

fixrep re
 Data representation.
 
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)
 

Friends

class CFix
 
template<int , e_mode , o_mode , q_mode >
class Fixed
 
template<int , e_mode , o_mode , q_mode >
class CFixed
 
ITPP_EXPORT int assert_shifts (const CFix &x, const Fix &y)
 Check that x.shift==y.shift OR x==0 OR y==0 and return the shift (for the non-zero argument)
 
ITPP_EXPORT int assert_shifts (const Fix &x, const Fix &y)
 Check that x.shift==y.shift OR x==0 OR y==0 and return the shift (for the non-zero argument)
 
ITPP_EXPORT int assert_shifts (const Fix &x, int y)
 Check that x.shift==0 OR x==0 OR y==0 and return x.shift.
 

Detailed Description

Fixed-point data type.

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

Definition at line 51 of file fix.h.


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

Generated on Sat Jul 6 2013 10:54:34 for IT++ by Doxygen 1.8.2