IT++ Logo
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
itpp::CFix Class Reference

Complex fixed-point data type. More...

#include <itpp/fixed/cfix.h>

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

Public Member Functions

 CFix (double r=0.0, double i=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.
 CFix (std::complex< double > x, double, int s=0, int w=MAX_WORDLEN, e_mode e=TC, o_mode o=WRAP, q_mode q=TRN, Stat *ptr=0)
 Constructor.
 CFix (const Fix_Factory &f)
 Constructor.
 CFix (fixrep r, fixrep i, int s, int, int)
 Constructor for internal use. No restrictions are applied. The dummies help to avoid ambiguities.
 CFix (const Fix &r, const Fix &i=0.0, int w=MAX_WORDLEN, e_mode e=TC, o_mode o=WRAP, q_mode q=TRN, Stat *ptr=0)
 Constructor.
 CFix (const CFix &x, double, int w=MAX_WORDLEN, e_mode e=TC, o_mode o=WRAP, q_mode q=TRN, Stat *ptr=0)
 Copy constructor.
virtual ~CFix ()
 Destructor.
CFixoperator= (const CFix &x)
 Assignment from CFix.
CFixoperator= (const Fix &x)
 Assignment from Fix.
CFixoperator= (const std::complex< double > &x)
 Assignment from std::complex<double>. Fractional part is truncated.
CFixoperator= (const int x)
 Assignment from int.
CFixoperator+= (const CFix &x)
 Addition of CFix.
CFixoperator+= (const Fix &x)
 Addition of Fix.
CFixoperator+= (const int x)
 Addition of int.
CFixoperator-= (const CFix &x)
 Subtraction of CFix.
CFixoperator-= (const Fix &x)
 Subtraction of Fix.
CFixoperator-= (const int x)
 Subtraction of int.
CFixoperator*= (const CFix &x)
 Multiplication with CFix. Temporary variables use the maximum word length (64 bits)
CFixoperator*= (const Fix &x)
 Multiplication with Fix. Temporary variables use the maximum word length (64 bits)
CFixoperator*= (const int x)
 Multiplication with int. Temporary variables use the maximum word length (64 bits)
CFixoperator/= (const CFix &x)
 Division with CFix using quantization mode TRN. Temporary variables use the maximum word length (64 bits)
CFixoperator/= (const Fix &x)
 Division with Fix using quantization mode TRN. Temporary variables use the maximum word length (64 bits)
CFixoperator/= (const int x)
 Division with int using quantization mode TRN. Temporary variables use the maximum word length (64 bits)
CFix operator- () const
 Unary negative of CFix.
CFixoperator<<= (const int n)
 Left shift n bits.
CFixoperator>>= (const int n)
 Right shift n bits using quantization mode qmode (constructor argument)
void set (double real, double imag, int n)
 Set to (real + i*imag) * pow2(n) using quantization mode qmode (constructor argument)
void set (double real, double imag, int n, q_mode q)
 Set to (real + i*imag) * pow2(n) using quantization mode q (function argument)
void set (const std::complex< double > &x, int n)
 Set to x * pow2(n) using quantization mode qmode (constructor argument)
void set (const std::complex< 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 for real part (mainly for internal use since it reveals the representation type)
void set_im (fixrep x)
 Set data representation for imaginary part (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 for real part (mainly for internal use since it reveals the representation type)
fixrep get_im () const
 Get data representation for imaginary part (mainly for internal use since it reveals the representation type)
std::complex< double > unfix () const
 Conversion to std::complex<double>
 operator std::complex< double > () const
 Conversion to std::complex<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
 Real data part.
fixrep im
 Imaginary data part.
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 CFixed
int assert_shifts (const CFix &x, const CFix &y)
 Check that x.shift==y.shift OR x==0 OR y==0 and return the shift (for the non-zero argument)
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)
int assert_shifts (const CFix &x, int y)
 Check that x.shift==0 OR x==0 OR y==0 and return x.shift.

Detailed Description

Complex fixed-point data type.

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

Definition at line 50 of file cfix.h.


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

Generated on Fri Mar 21 2014 17:14:16 for IT++ by Doxygen 1.8.1.2