Complex fixed-point data type. More...
#include <itpp/fixed/cfix.h>
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. | |
CFix & | operator= (const CFix &x) |
Assignment from CFix. | |
CFix & | operator= (const Fix &x) |
Assignment from Fix. | |
CFix & | operator= (const std::complex< double > &x) |
Assignment from std::complex<double>. Fractional part is truncated. | |
CFix & | operator= (const int x) |
Assignment from int. | |
CFix & | operator+= (const CFix &x) |
Addition of CFix. | |
CFix & | operator+= (const Fix &x) |
Addition of Fix. | |
CFix & | operator+= (const int x) |
Addition of int. | |
CFix & | operator-= (const CFix &x) |
Subtraction of CFix. | |
CFix & | operator-= (const Fix &x) |
Subtraction of Fix. | |
CFix & | operator-= (const int x) |
Subtraction of int. | |
CFix & | operator*= (const CFix &x) |
Multiplication with CFix. Temporary variables use the maximum word length (64 bits) | |
CFix & | operator*= (const Fix &x) |
Multiplication with Fix. Temporary variables use the maximum word length (64 bits) | |
CFix & | operator*= (const int x) |
Multiplication with int. Temporary variables use the maximum word length (64 bits) | |
CFix & | operator/= (const CFix &x) |
Division with CFix using quantization mode TRN . Temporary variables use the maximum word length (64 bits) | |
CFix & | operator/= (const Fix &x) |
Division with Fix using quantization mode TRN . Temporary variables use the maximum word length (64 bits) | |
CFix & | operator/= (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. | |
CFix & | operator<<= (const int n) |
Left shift n bits. | |
CFix & | operator>>= (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. | |
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) | |
Friends | |
template<int , e_mode , o_mode , q_mode > | |
class | CFixed |
ITPP_EXPORT 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) | |
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 CFix &x, int y) |
Check that x.shift==0 OR x==0 OR y==0 and return x.shift. | |
Complex fixed-point data type.
See the Detailed Description in the Fixed-point Module module.
Generated on Sat Jul 6 2013 10:54:33 for IT++ by Doxygen 1.8.2