#include <itpp/fixedpoint/cfix.h>
Inheritance diagram for itpp::CFix:
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 dummy=0.0, 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 dummy1, int dummy2) | |
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 dummy=0.0, 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 () 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 |
Data representation. | |
fixrep | im |
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 | |
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. |
See the Detailed Description in the Fixed-Point Data Types module.
Definition at line 53 of file cfix.h.
|
Default constructor.
Definition at line 57 of file cfix.h. Referenced by operator-(). |
|
Constructor.
|
|
Constructor.
|
|
Constructor for internal use. No restrictions are applied. The dummies help to avoid ambiguities.
|
|
Constructor.
|
|
Copy constructor.
|
|
Destructor.
|
|
Assignment from CFix.
Reimplemented in itpp::CFixed< w, e, o, q >. Definition at line 40 of file cfix.cpp. References itpp::Fix_Base::apply_o_mode(), im, re, and itpp::Fix_Base::shift. |
|
Assignment from Fix.
Reimplemented in itpp::CFixed< w, e, o, q >. Definition at line 48 of file cfix.cpp. References itpp::Fix_Base::apply_o_mode(), im, itpp::Fix::re, re, and itpp::Fix_Base::shift. |
|
Assignment from std::complex<double>. Fractional part is truncated.
Reimplemented in itpp::CFixed< w, e, o, q >. Definition at line 56 of file cfix.cpp. References itpp::Fix_Base::apply_o_mode(), im, itpp::imag(), re, itpp::real(), and itpp::Fix_Base::shift. |
|
Assignment from int.
Reimplemented in itpp::CFixed< w, e, o, q >. Definition at line 64 of file cfix.cpp. References itpp::Fix_Base::apply_o_mode(), im, re, and itpp::Fix_Base::shift. |
|
Addition of CFix.
Definition at line 72 of file cfix.cpp. References itpp::Fix_Base::apply_o_mode(), assert_shifts, im, re, and itpp::Fix_Base::shift. |
|
Addition of Fix.
Definition at line 80 of file cfix.cpp. References itpp::Fix_Base::apply_o_mode(), assert_shifts, itpp::Fix::re, re, and itpp::Fix_Base::shift. |
|
Addition of int.
Definition at line 87 of file cfix.cpp. References itpp::Fix_Base::apply_o_mode(), assert_shifts, and re. |
|
Subtraction of CFix.
Definition at line 94 of file cfix.cpp. References itpp::Fix_Base::apply_o_mode(), assert_shifts, im, re, and itpp::Fix_Base::shift. |
|
Subtraction of Fix.
Definition at line 102 of file cfix.cpp. References itpp::Fix_Base::apply_o_mode(), assert_shifts, itpp::Fix::re, re, and itpp::Fix_Base::shift. |
|
Subtraction of int.
Definition at line 109 of file cfix.cpp. References itpp::Fix_Base::apply_o_mode(), assert_shifts, and re. |
|
Multiplication with CFix. Temporary variables use the maximum word length (64 bits).
Definition at line 116 of file cfix.cpp. References itpp::Fix_Base::apply_o_mode(), im, re, and itpp::Fix_Base::shift. |
|
Multiplication with Fix. Temporary variables use the maximum word length (64 bits).
Definition at line 125 of file cfix.cpp. References itpp::Fix_Base::apply_o_mode(), im, itpp::Fix::re, re, and itpp::Fix_Base::shift. |
|
Multiplication with int. Temporary variables use the maximum word length (64 bits).
Definition at line 133 of file cfix.cpp. References itpp::Fix_Base::apply_o_mode(), im, and re. |
|
Division with CFix using quantization mode
Definition at line 140 of file cfix.cpp. References itpp::Fix_Base::apply_o_mode(), im, re, and itpp::Fix_Base::shift. |
|
Division with Fix using quantization mode
Definition at line 150 of file cfix.cpp. References itpp::Fix_Base::apply_o_mode(), im, itpp::Fix::re, re, and itpp::Fix_Base::shift. |
|
Division with int using quantization mode
Definition at line 158 of file cfix.cpp. References itpp::Fix_Base::apply_o_mode(), im, and re. |
|
Unary negative of CFix.
Definition at line 165 of file cfix.cpp. References CFix(), im, re, and itpp::Fix_Base::shift. |
|
Left shift
Definition at line 170 of file cfix.cpp. References itpp::Fix_Base::apply_o_mode(), im, it_assert1, re, and itpp::Fix_Base::shift. |
|
Right shift
Definition at line 179 of file cfix.cpp. References im, re, itpp::Fix_Base::rshift_and_apply_q_mode(), and itpp::Fix_Base::shift. |
|
Set to
Definition at line 187 of file cfix.cpp. References im, re, itpp::Fix_Base::scale_and_apply_modes(), and itpp::Fix_Base::shift. Referenced by itpp::operator>>(), and itpp::set_fix(). |
|
Set to
Definition at line 194 of file cfix.cpp. References im, re, itpp::Fix_Base::scale_and_apply_modes(), and itpp::Fix_Base::shift. |
|
Set to
Definition at line 201 of file cfix.cpp. References im, itpp::imag(), re, itpp::real(), itpp::Fix_Base::scale_and_apply_modes(), and itpp::Fix_Base::shift. |
|
Set to
Definition at line 208 of file cfix.cpp. References im, itpp::imag(), re, itpp::real(), itpp::Fix_Base::scale_and_apply_modes(), and itpp::Fix_Base::shift. |
|
Set data representation for real part (mainly for internal use since it reveals the representation type).
Definition at line 125 of file cfix.h. References itpp::Fix_Base::apply_o_mode(), and re. Referenced by itpp::operator>>(). |
|
Set data representation for imaginary part (mainly for internal use since it reveals the representation type).
Definition at line 127 of file cfix.h. References itpp::Fix_Base::apply_o_mode(), and im. Referenced by itpp::operator>>(). |
|
Left shift
Definition at line 215 of file cfix.cpp. References itpp::Fix_Base::apply_o_mode(), im, it_assert1, re, and itpp::Fix_Base::shift. Referenced by itpp::lshift_fix(). |
|
Right shift
Definition at line 223 of file cfix.cpp. References im, re, itpp::Fix_Base::rshift_and_apply_q_mode(), and itpp::Fix_Base::shift. Referenced by itpp::rshift_fix(). |
|
Right shift
Definition at line 230 of file cfix.cpp. References im, re, itpp::Fix_Base::rshift_and_apply_q_mode(), and itpp::Fix_Base::shift. |
|
Print restrictions.
Reimplemented from itpp::Fix_Base. Definition at line 244 of file cfix.cpp. References im, itpp::Fix_Base::print(), and re. |
|
Get data representation for real part (mainly for internal use since it reveals the representation type).
Definition at line 139 of file cfix.h. References re. Referenced by itpp::conj(), itpp::operator *(), itpp::operator+(), itpp::operator-(), itpp::operator/(), itpp::operator<<(), and itpp::real(). |
|
Get data representation for imaginary part (mainly for internal use since it reveals the representation type).
Definition at line 141 of file cfix.h. References im. Referenced by itpp::conj(), itpp::imag(), itpp::operator *(), itpp::operator+(), itpp::operator-(), itpp::operator/(), and itpp::operator<<(). |
|
Conversion to std::complex<double>.
Definition at line 237 of file cfix.cpp. References itpp::DOUBLE_POW2, im, it_assert1, re, and itpp::Fix_Base::shift. Referenced by itpp::unfix(). |
|
Conversion to std::complex<double>.
Definition at line 147 of file cfix.h. References itpp::DOUBLE_POW2, im, it_assert1, re, and itpp::Fix_Base::shift. |
|
Set shift (without shifting).
Definition at line 1005 of file fix_base.h. References itpp::Fix_Base::shift. Referenced by itpp::operator>>(). |
|
Set output mode to OUTPUT_FIX, OUTPUT_FIX_SHIFT, OUTPUT_FLOAT or OUTPUT_FLOAT_SHIFT. Static member function.
Definition at line 1007 of file fix_base.h. Referenced by itpp::operator<<(). |
|
Set output mode to "OUTPUT_FIX", "OUTPUT_FIX_SHIFT", "OUTPUT_FLOAT" or "OUTPUT_FLOAT_SHIFT". Static member function.
Definition at line 43 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.
Definition at line 1012 of file fix_base.h. References itpp::Fix_Base::shift. Referenced by itpp::abs(), itpp::assert_fixshift(), itpp::conj(), itpp::imag(), itpp::operator *(), itpp::operator/(), itpp::operator<<(), and itpp::real(). |
|
Get word length.
Definition at line 1014 of file fix_base.h. References itpp::Fix_Base::wordlen. |
|
Get sign encoding mode.
Definition at line 1016 of file fix_base.h. References itpp::Fix_Base::emode. |
|
Get overflow mode.
Definition at line 1018 of file fix_base.h. References itpp::Fix_Base::omode. |
|
Get quantization mode.
Definition at line 1020 of file fix_base.h. References itpp::Fix_Base::qmode. |
|
Get output mode.
Definition at line 1022 of file fix_base.h. Referenced by itpp::operator<<(). |
|
Get maximum value of data representation.
Definition at line 1024 of file fix_base.h. References itpp::Fix_Base::max. |
|
Get minimum value of data representation.
Definition at line 1026 of file fix_base.h. References itpp::Fix_Base::min. |
|
Calculate help variables min, max and n_unused_bits.
Definition at line 70 of file fix_base.cpp. References itpp::Fix_Base::emode, it_assert1, it_error, itpp::Fix_Base::max, itpp::MAX_WORDLEN, itpp::Fix_Base::min, itpp::Fix_Base::n_unused_bits, itpp::TC, itpp::UINT64_POW2, itpp::US, and itpp::Fix_Base::wordlen. Referenced by itpp::Fix_Base::Fix_Base(). |
|
Handle overflows using overflow mode
Definition at line 91 of file fix_base.cpp. References it_error, itpp::Fix_Base::max, itpp::Fix_Base::min, itpp::Fix_Base::n_unused_bits, itpp::Fix_Base::omode, itpp::Stat::sample(), itpp::SAT, itpp::Fix_Base::stat_ptr, and itpp::WRAP. Referenced by itpp::Fix::lshift(), lshift(), itpp::Fix::operator *=(), operator *=(), itpp::Fix::operator+=(), operator+=(), itpp::Fix::operator-=(), operator-=(), itpp::Fix::operator/=(), operator/=(), itpp::Fix::operator<<=(), operator<<=(), itpp::Fixed< w, e, o, q >::operator=(), itpp::Fix::operator=(), itpp::CFixed< w, e, o, q >::operator=(), operator=(), itpp::Fix_Base::scale_and_apply_modes(), set_im(), itpp::Fix::set_re(), and set_re(). |
|
Convert from
Definition at line 1055 of file fix_base.h. References itpp::Fix_Base::qmode. Referenced by itpp::Fix::set(), and set(). |
|
Convert from
Definition at line 131 of file fix_base.cpp. References itpp::Fix_Base::apply_o_mode(), itpp::ceil(), itpp::DOUBLE_POW2, itpp::floor(), it_assert1, it_error, itpp::RND, itpp::RND_CONV, itpp::RND_CONV_ODD, itpp::RND_INF, itpp::RND_MIN_INF, itpp::RND_ZERO, itpp::round(), itpp::Fix_Base::shift, itpp::TRN, and itpp::TRN_ZERO. |
|
Right shift
Definition at line 1059 of file fix_base.h. References itpp::Fix_Base::qmode. Referenced by itpp::Fix::operator>>=(), operator>>=(), itpp::Fix::rshift(), and rshift(). |
|
Right shift
Definition at line 185 of file fix_base.cpp. References it_assert1, 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. |
|
Check that x.shift==y.shift OR x==0 OR y==0 and return the shift (for the non-zero argument).
Definition at line 251 of file cfix.cpp. Referenced by operator+=(), and operator-=(). |
|
Check that x.shift==y.shift OR x==0 OR y==0 and return the shift (for the non-zero argument).
|
|
Check that x.shift==0 OR x==0 OR y==0 and return x.shift.
|
|
Data representation.
Definition at line 164 of file cfix.h. Referenced by itpp::assert_shifts(), get_re(), lshift(), operator *=(), operator std::complex(), operator+=(), operator-(), operator-=(), operator/=(), operator<<=(), itpp::CFixed< w, e, o, q >::operator=(), operator=(), operator>>=(), print(), rshift(), set(), set_re(), and unfix(). |
|
Accumulated bitshift (positive means left-shifted, negative means right-shifted).
Definition at line 1032 of file fix_base.h. Referenced by itpp::assert_shifts(), itpp::Fix_Base::get_shift(), itpp::Fix::lshift(), lshift(), itpp::Fix::operator *=(), operator *=(), itpp::Fix::operator double(), operator std::complex(), itpp::Fix::operator+=(), operator+=(), itpp::Fix::operator-(), operator-(), itpp::Fix::operator-=(), operator-=(), itpp::Fix::operator/=(), operator/=(), itpp::Fix::operator<<=(), operator<<=(), itpp::Fixed< w, e, o, q >::operator=(), itpp::Fix::operator=(), itpp::CFixed< w, e, o, q >::operator=(), operator=(), itpp::Fix::operator>>=(), operator>>=(), itpp::Fix_Base::print(), itpp::Fix::rshift(), rshift(), itpp::Fix_Base::scale_and_apply_modes(), itpp::Fix::set(), set(), itpp::Fix_Base::set_shift(), itpp::Fix::unfix(), and unfix(). |
|
Word length.
Definition at line 1034 of file fix_base.h. Referenced by itpp::Fix_Base::get_wordlen(), itpp::Fix_Base::init(), and itpp::Fix_Base::print(). |
|
Sign encoding mode.
Definition at line 1036 of file fix_base.h. Referenced by itpp::Fix_Base::get_e_mode(), itpp::Fix_Base::init(), and itpp::Fix_Base::print(). |
|
Overflow mode.
Definition at line 1038 of file fix_base.h. Referenced by itpp::Fix_Base::apply_o_mode(), itpp::Fix_Base::get_o_mode(), and itpp::Fix_Base::print(). |
|
Quantization mode.
Definition at line 1040 of file fix_base.h. Referenced by itpp::Fix_Base::get_q_mode(), itpp::Fix_Base::print(), itpp::Fix_Base::rshift_and_apply_q_mode(), and itpp::Fix_Base::scale_and_apply_modes(). |
|
Pointer to statistics object.
Definition at line 1042 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(). |
|
Minimum allowed value (help variable to speed up calculations).
Definition at line 1044 of file fix_base.h. Referenced by itpp::Fix_Base::apply_o_mode(), itpp::Fix_Base::get_min(), itpp::Fix_Base::init(), and itpp::Fix_Base::print(). |
|
Maximum allowed value (help variable to speed up calculations).
Definition at line 1046 of file fix_base.h. Referenced by itpp::Fix_Base::apply_o_mode(), itpp::Fix_Base::get_max(), itpp::Fix_Base::init(), and itpp::Fix_Base::print(). |
|
Number of unused (MSB) bits (help variable to speed up calculations).
Definition at line 1048 of file fix_base.h. Referenced by itpp::Fix_Base::apply_o_mode(), itpp::Fix_Base::init(), and itpp::Fix_Base::print(). |
Generated on Thu Apr 19 14:24:04 2007 for IT++ by Doxygen 1.4.6