Fixed-Point Data Types. More...
Classes | |
class | itpp::CFix |
Complex fixed-point data type. More... | |
class | itpp::CFixed< w, e, o, q > |
Templated complex fixed-point data type. More... | |
class | itpp::Fix |
Fixed-point data type. More... | |
class | itpp::Fix_Base |
Base class for fixed-point data types. More... | |
class | itpp::Fix_Factory |
Class factory for fixed-point data types Fix and CFix. More... | |
class | itpp::Fixed< w, e, o, q > |
Templated fixed-point data type. More... | |
Typedefs | |
typedef Vec< CFix > | itpp::cfixvec |
Typedef for complex fixed-point vector type. | |
typedef Mat< CFix > | itpp::cfixmat |
Typedef for complex fixed-point matrix type. | |
typedef Vec< Fix > | itpp::fixvec |
Typedef for fixed-point vector type. | |
typedef Mat< Fix > | itpp::fixmat |
Typedef for fixed-point matrix type. | |
typedef int64_t | itpp::fixrep |
Representation for fixed-point data types. | |
Enumerations | |
enum | itpp::e_mode { itpp::TC , itpp::US } |
Sign encoding modes (aligned with SystemC) More... | |
enum | itpp::o_mode { itpp::SAT , itpp::SAT_ZERO , itpp::SAT_SYM , itpp::WRAP , itpp::WRAP_SM } |
Overflow modes (aligned with SystemC) More... | |
enum | itpp::q_mode { itpp::RND , itpp::RND_ZERO , itpp::RND_MIN_INF , itpp::RND_INF , itpp::RND_CONV , itpp::RND_CONV_ODD , itpp::TRN , itpp::TRN_ZERO } |
Quantization modes (aligned with SystemC) More... | |
enum | itpp::output_mode { itpp::OUTPUT_FIX , itpp::OUTPUT_FIX_SHIFT , itpp::OUTPUT_FLOAT , itpp::OUTPUT_FLOAT_SHIFT } |
Output modes. More... | |
Functions | |
int | itpp::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 | itpp::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 | itpp::assert_shifts (const CFix &x, int y) |
Check that x.shift==0 OR x==0 OR y==0 and return x.shift. | |
std::istream & | itpp::operator>> (std::istream &is, CFix &x) |
Input bit representation and, optionally, the shift. | |
std::ostream & | itpp::operator<< (std::ostream &os, const CFix &x) |
Output bit representation and, optionally, the shift. | |
int | itpp::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) | |
int | itpp::assert_shifts (const Fix &x, int y) |
Check that x.shift==0 OR x==0 OR y==0 and return x.shift. | |
std::istream & | itpp::operator>> (std::istream &is, Fix &x) |
Input bit representation and, optionally, the shift. | |
std::ostream & | itpp::operator<< (std::ostream &os, const Fix &x) |
Output bit representation and, optionally, the shift. | |
std::ostream & | itpp::operator<< (std::ostream &os, const output_mode &o) |
Set output mode. | |
template<> | |
ITPP_EXPORT void | itpp::create_elements< Fix > (Fix *&ptr, const int n, const Factory &f) |
Create an n-length array of Fix using Fix_Factory f . | |
template<> | |
ITPP_EXPORT void | itpp::create_elements< CFix > (CFix *&ptr, const int n, const Factory &f) |
Create an n-length array of CFix using Fix_Factory f . | |
template<class T > | |
bool | itpp::is_fix (const T &) |
Return true only if argument is of type Fix or CFix (or an Array/Vec/Mat of Fix or CFix) | |
template<> | |
bool | itpp::is_fix (const Fix &) |
Return true only if argument is of type Fix or CFix (or an Array/Vec/Mat of Fix or CFix) | |
template<> | |
bool | itpp::is_fix (const fixvec &) |
Return true only if argument is of type Fix or CFix (or an Array/Vec/Mat of Fix or CFix) | |
template<> | |
bool | itpp::is_fix (const fixmat &) |
Return true only if argument is of type Fix or CFix (or an Array/Vec/Mat of Fix or CFix) | |
template<> | |
bool | itpp::is_fix (const CFix &) |
Return true only if argument is of type Fix or CFix (or an Array/Vec/Mat of Fix or CFix) | |
template<> | |
bool | itpp::is_fix (const cfixvec &) |
Return true only if argument is of type Fix or CFix (or an Array/Vec/Mat of Fix or CFix) | |
template<> | |
bool | itpp::is_fix (const cfixmat &) |
Return true only if argument is of type Fix or CFix (or an Array/Vec/Mat of Fix or CFix) | |
template<class T > | |
bool | itpp::is_fix (const Array< T > &) |
Return true only if argument is of type Fix or CFix (or an Array/Vec/Mat of Fix or CFix) | |
void | itpp::set_fix (Fix &y, double x, int n) |
Set y = x * pow2(n) using the quantization mode of y . | |
void | itpp::set_fix (Fix &y, double x, int n, q_mode q) |
Set y = x * pow2(n) using the specified quantization mode q . | |
void | itpp::set_fix (fixvec &y, const vec &x, int n) |
Set y = x * pow2(n) using the quantization mode of y . | |
void | itpp::set_fix (fixvec &y, const vec &x, int n, q_mode q) |
Set y = x * pow2(n) using the specified quantization mode q . | |
void | itpp::set_fix (fixmat &y, const mat &x, int n) |
Set y = x * pow2(n) using the quantization mode of y . | |
void | itpp::set_fix (fixmat &y, const mat &x, int n, q_mode q) |
Set y = x * pow2(n) using the specified quantization mode q . | |
void | itpp::set_fix (double &y, double x, int) |
Set y = x . Useful in templated code. | |
void | itpp::set_fix (double &y, double x, int, q_mode) |
Set y = x . Useful in templated code. | |
void | itpp::set_fix (vec &y, const vec &x, int) |
Set y = x . Useful in templated code. | |
void | itpp::set_fix (vec &y, const vec &x, int, q_mode) |
Set y = x . Useful in templated code. | |
void | itpp::set_fix (mat &y, const mat &x, int) |
Set y = x . Useful in templated code. | |
void | itpp::set_fix (mat &y, const mat &x, int, q_mode) |
Set y = x . Useful in templated code. | |
void | itpp::set_fix (CFix &y, std::complex< double > x, int n) |
Set y = x * pow2(n) using the quantization mode of y . | |
void | itpp::set_fix (CFix &y, double real, double imag, int n) |
Set y = (real + i*imag) * pow2(n) using the quantization mode of y . | |
void | itpp::set_fix (CFix &y, std::complex< double > x, int n, q_mode q) |
Set y = x * pow2(n) using the specified quantization mode q . | |
void | itpp::set_fix (CFix &y, double real, double imag, int n, q_mode q) |
Set y = (real + i*imag) * pow2(n) using the specified quantization mode q . | |
void | itpp::set_fix (cfixvec &y, const cvec &x, int n) |
Set y = x * pow2(n) using the quantization mode of y . | |
void | itpp::set_fix (cfixvec &y, const vec &real, const vec &imag, int n) |
Set y = (real + i*imag) * pow2(n) using the quantization mode of y . | |
void | itpp::set_fix (cfixvec &y, const cvec &x, int n, q_mode q) |
Set y = x * pow2(n) using the specified quantization mode q . | |
void | itpp::set_fix (cfixvec &y, const vec &real, const vec &imag, int n, q_mode q) |
Set y = (real + i*imag) * pow2(n) using the specified quantization mode q . | |
void | itpp::set_fix (cfixmat &y, const cmat &x, int n) |
Set y = x * pow2(n) using the quantization mode of y . | |
void | itpp::set_fix (cfixmat &y, const mat &real, const mat &imag, int n) |
Set y = (real + i*imag) * pow2(n) using the quantization mode of y . | |
void | itpp::set_fix (cfixmat &y, const cmat &x, int n, q_mode q) |
Set y = x * pow2(n) using the specified quantization mode q . | |
void | itpp::set_fix (cfixmat &y, const mat &real, const mat &imag, int n, q_mode q) |
Set y = (real + i*imag) * pow2(n) using the specified quantization mode q . | |
void | itpp::set_fix (std::complex< double > &y, const std::complex< double > &x, int) |
Set y = x . Useful in templated code. | |
void | itpp::set_fix (std::complex< double > &y, double real, double imag, int) |
Set y = real + i*imag . Useful in templated code. | |
void | itpp::set_fix (std::complex< double > &y, const std::complex< double > &x, int, q_mode) |
Set y = x . Useful in templated code. | |
void | itpp::set_fix (std::complex< double > &y, double real, double imag, int, q_mode) |
Set y = real + i*imag . Useful in templated code. | |
void | itpp::set_fix (cvec &y, const cvec &x, int) |
Set y = x . Useful in templated code. | |
void | itpp::set_fix (cvec &y, const vec &real, const vec &imag, int) |
Set y = real + i*imag . Useful in templated code. | |
void | itpp::set_fix (cvec &y, const cvec &x, int, q_mode) |
Set y = x . Useful in templated code. | |
void | itpp::set_fix (cvec &y, const vec &real, const vec &imag, int, q_mode) |
Set y = real + i*imag . Useful in templated code. | |
void | itpp::set_fix (cmat &y, const cmat &x, int) |
Set y = x . Useful in templated code. | |
void | itpp::set_fix (cmat &y, const mat &real, const mat &imag, int) |
Set y = real + i*imag . Useful in templated code. | |
void | itpp::set_fix (cmat &y, const cmat &x, int, q_mode) |
Set y = x . Useful in templated code. | |
void | itpp::set_fix (cmat &y, const mat &real, const mat &imag, int, q_mode) |
Set y = real + i*imag . Useful in templated code. | |
template<class T1 , class T2 > | |
void | itpp::set_fix (Array< T1 > &y, const Array< T2 > &x, int n) |
Call set_fix for each Array element. | |
template<class T1 , class T2 > | |
void | itpp::set_fix (Array< T1 > &y, const Array< T2 > &real, const Array< T2 > &imag, int n) |
Call set_fix for each Array element. | |
template<class T1 , class T2 > | |
void | itpp::set_fix (Array< T1 > &y, const Array< T2 > &x, int n, q_mode q) |
Call set_fix for each Array element. | |
template<class T1 , class T2 > | |
void | itpp::set_fix (Array< T1 > &y, const Array< T2 > &real, const Array< T2 > &imag, int n, q_mode q) |
Call set_fix for each Array element. | |
void | itpp::lshift_fix (Fix &y, int n) |
Left shift n bits. | |
void | itpp::rshift_fix (Fix &y, int n) |
Right shift n bits using the quantization mode of y . | |
void | itpp::rshift_fix (Fix &y, int n, q_mode q) |
Right shift n bits using the specified quantization mode q . | |
void | itpp::lshift_fix (fixvec &y, int n) |
Left shift n bits. | |
void | itpp::rshift_fix (fixvec &y, int n) |
Right shift n bits using the quantization mode of y . | |
void | itpp::rshift_fix (fixvec &y, int n, q_mode q) |
Right shift n bits using the specified quantization mode q . | |
void | itpp::lshift_fix (fixmat &y, int n) |
Left shift n bits. | |
void | itpp::rshift_fix (fixmat &y, int n) |
Right shift n bits using the quantization mode of y . | |
void | itpp::rshift_fix (fixmat &y, int n, q_mode q) |
Right shift n bits using the specified quantization mode q . | |
void | itpp::lshift_fix (double &, int) |
Dummy function useful in templated code. | |
void | itpp::rshift_fix (double &, int) |
Dummy function useful in templated code. | |
void | itpp::rshift_fix (double &, int, q_mode) |
Dummy function useful in templated code. | |
void | itpp::lshift_fix (vec &, int) |
Dummy function useful in templated code. | |
void | itpp::rshift_fix (vec &, int) |
Dummy function useful in templated code. | |
void | itpp::rshift_fix (vec &, int, q_mode) |
Dummy function useful in templated code. | |
void | itpp::lshift_fix (mat &, int) |
Dummy function useful in templated code. | |
void | itpp::rshift_fix (mat &, int) |
Dummy function useful in templated code. | |
void | itpp::rshift_fix (mat &, int, q_mode) |
Dummy function useful in templated code. | |
void | itpp::lshift_fix (CFix &y, int n) |
Left shift n bits. | |
void | itpp::rshift_fix (CFix &y, int n) |
Right shift n bits using the quantization mode of y . | |
void | itpp::rshift_fix (CFix &y, int n, q_mode q) |
Right shift n bits using the specified quantization mode q . | |
void | itpp::lshift_fix (cfixvec &y, int n) |
Left shift n bits. | |
void | itpp::rshift_fix (cfixvec &y, int n) |
Right shift n bits using the quantization mode of y . | |
void | itpp::rshift_fix (cfixvec &y, int n, q_mode q) |
Right shift n bits using the specified quantization mode q . | |
void | itpp::lshift_fix (cfixmat &y, int n) |
Left shift n bits. | |
void | itpp::rshift_fix (cfixmat &y, int n) |
Right shift n bits using the quantization mode of y . | |
void | itpp::rshift_fix (cfixmat &y, int n, q_mode q) |
Right shift n bits using the specified quantization mode q . | |
void | itpp::lshift_fix (std::complex< double > &, int) |
Dummy function useful in templated code. | |
void | itpp::rshift_fix (std::complex< double > &, int) |
Dummy function useful in templated code. | |
void | itpp::rshift_fix (std::complex< double > &, int, q_mode) |
Dummy function useful in templated code. | |
void | itpp::lshift_fix (cvec &, int) |
Dummy function useful in templated code. | |
void | itpp::rshift_fix (cvec &, int) |
Dummy function useful in templated code. | |
void | itpp::rshift_fix (cvec &, int, q_mode) |
Dummy function useful in templated code. | |
void | itpp::lshift_fix (cmat &, int) |
Dummy function useful in templated code. | |
void | itpp::rshift_fix (cmat &, int) |
Dummy function useful in templated code. | |
void | itpp::rshift_fix (cmat &, int, q_mode) |
Dummy function useful in templated code. | |
template<class T > | |
void | itpp::lshift_fix (Array< T > &y, int n) |
Call lshift_fix for each Array element. | |
template<class T > | |
void | itpp::rshift_fix (Array< T > &y, int n) |
Call rshift_fix for each Array element. | |
template<class T > | |
void | itpp::rshift_fix (Array< T > &y, int n, q_mode q) |
Call rshift_fix for each Array element. | |
void | itpp::assert_fixshift (double, int) |
If x is a fixed-point variable, assert that x has the specified shift value, otherwise do nothing. | |
void | itpp::assert_fixshift (const std::complex< double > &, int) |
If x is a fixed-point variable, assert that x has the specified shift value, otherwise do nothing. | |
void | itpp::assert_fixshift (const Fix &x, int shift) |
If x is a fixed-point variable, assert that x has the specified shift value, otherwise do nothing. | |
void | itpp::assert_fixshift (const CFix &x, int shift) |
If x is a fixed-point variable, assert that x has the specified shift value, otherwise do nothing. | |
vec | itpp::to_vec (const fixvec &v) |
Converts a fixvec to vec. | |
cvec | itpp::to_cvec (const cfixvec &v) |
Converts a cfixvec to cvec. | |
mat | itpp::to_mat (const fixmat &m) |
Converts a fixmat to mat. | |
cmat | itpp::to_cmat (const cfixmat &m) |
Converts a cfixmat to cmat. | |
template<class T > | |
T | itpp::to (double x) |
Convert double to T. | |
template<class T > | |
T | itpp::to (const Fix &x) |
Convert Fix to T. | |
template<class T > | |
T | itpp::to (const std::complex< double > &x) |
Convert std::complex<double> to T. | |
template<class T > | |
T | itpp::to (const CFix &x) |
Convert CFix to T. | |
template<class T > | |
T | itpp::to (double real, double imag) |
Convert double (real and imaginary parts) to T. | |
template<class T > | |
T | itpp::to (const Fix &real, const Fix &imag) |
Convert Fix (real and imaginary parts) to T. | |
template<class T , class U > | |
Vec< T > | itpp::to (const Vec< U > &x) |
Convert Vec to Vec<T> | |
template<> | |
vec | itpp::to< double > (const vec &x) |
Convert vec to vec. | |
template<> | |
cvec | itpp::to< std::complex< double > > (const cvec &x) |
Convert cvec to cvec. | |
template<> | |
fixvec | itpp::to< Fix > (const fixvec &x) |
Convert fixvec to fixvec. | |
template<> | |
cfixvec | itpp::to< CFix > (const cfixvec &x) |
Convert cfixvec to cfixvec. | |
template<class T , class U > | |
Vec< T > | itpp::to (const Vec< U > &real, const Vec< U > &imag) |
Convert Vec (real and imaginary parts) to Vec<T> | |
template<class T , class U > | |
Mat< T > | itpp::to (const Mat< U > &x) |
Convert Mat to Mat<T> | |
template<> | |
mat | itpp::to< double > (const mat &x) |
Convert mat to mat. | |
template<> | |
cmat | itpp::to< std::complex< double > > (const cmat &x) |
Convert cmat to cmat. | |
template<> | |
fixmat | itpp::to< Fix > (const fixmat &x) |
Convert fixmat to fixmat. | |
template<> | |
cfixmat | itpp::to< CFix > (const cfixmat &x) |
Convert cfixmat to cfixmat. | |
template<class T , class U > | |
Mat< T > | itpp::to (const Mat< U > &real, const Mat< U > &imag) |
Convert Mat (real and imaginary parts) to Mat<T> | |
template<class T , class U > | |
Array< typename ConvertU2T< T, U >::result > | itpp::to (const Array< U > &x) |
Convert Array, where U can be an Array/Vec/Mat, to a corresponding Array with T elements. | |
template<class T , class U > | |
Array< typename ConvertU2T< T, U >::result > | itpp::to (const Array< U > &real, const Array< U > &imag) |
Convert Array (real and imaginary parts), where U can be an Array/Vec/Mat, to a corresponding Array with T elements. | |
double | itpp::unfix (const Fix &x) |
Convert Fix to double by multiplying the bit representation with pow2(-shift) | |
std::complex< double > | itpp::unfix (const CFix &x) |
Convert CFix to std::complex<double> by multiplying the bit representation with pow2(-shift) | |
vec | itpp::unfix (const fixvec &x) |
Convert fixvec to vec by multiplying the bit representations with pow2(-shift) | |
cvec | itpp::unfix (const cfixvec &x) |
Convert cfixvec to cvec by multiplying the bit representations with pow2(-shift) | |
mat | itpp::unfix (const fixmat &x) |
Convert fixmat to mat by multiplying the bit representations with pow2(-shift) | |
cmat | itpp::unfix (const cfixmat &x) |
Convert cfixmat to cmat by multiplying the bit representations with pow2(-shift) | |
double | itpp::unfix (double x) |
Convert double to double i.e. do nothing. | |
std::complex< double > | itpp::unfix (const std::complex< double > &x) |
Convert std::complex<double> to std::complex<double> i.e. do nothing. | |
vec | itpp::unfix (const vec &x) |
Convert vec to vec i.e. do nothing. | |
cvec | itpp::unfix (const cvec &x) |
Convert cvec to cvec i.e. do nothing. | |
mat | itpp::unfix (const mat &x) |
Convert mat to mat i.e. do nothing. | |
cmat | itpp::unfix (const cmat &x) |
Convert cmat to cmat i.e. do nothing. | |
template<class T > | |
Array< typename Convert< T >::to_double > | itpp::unfix (const Array< T > &x) |
Convert floating- or fixed-point Array to floating-point Array. | |
Fix | itpp::abs (const Fix &x) |
Absolute value. | |
Fix | itpp::real (const CFix &x) |
Real part of complex value. | |
Fix | itpp::imag (const CFix &x) |
Imaginary part of complex value. | |
CFix | itpp::conj (const CFix &x) |
Conjugate of complex value. | |
Fix | itpp::operator+ (const Fix &x, const Fix &y) |
Fix + Fix. | |
Fix | itpp::operator- (const Fix &x, const Fix &y) |
Fix - Fix. | |
Fix | itpp::operator* (const Fix &x, const Fix &y) |
Fix * Fix. | |
Fix | itpp::operator/ (const Fix &x, const Fix &y) |
Fix / Fix using quantization mode TRN . | |
Fix | itpp::operator+ (const Fix &x, const int y) |
Fix + int. | |
Fix | itpp::operator- (const Fix &x, const int y) |
Fix - int. | |
Fix | itpp::operator* (const Fix &x, const int y) |
Fix * int. | |
Fix | itpp::operator/ (const Fix &x, const int y) |
Fix / int using quantization mode TRN . | |
Fix | itpp::operator+ (const int x, const Fix &y) |
int + Fix | |
Fix | itpp::operator- (const int x, const Fix &y) |
int - Fix | |
Fix | itpp::operator* (const int x, const Fix &y) |
int * Fix | |
Fix | itpp::operator/ (const int x, const Fix &y) |
int / Fix using quantization mode TRN | |
fixvec | itpp::operator+ (const fixvec &v, const int s) |
fixvec + int | |
fixvec | itpp::operator+ (const int s, const fixvec &v) |
int + fixvec | |
fixvec | itpp::operator- (const fixvec &v, const int s) |
fixvec - int | |
fixvec | itpp::operator- (const int s, const fixvec &v) |
int - fixvec | |
fixvec | itpp::operator* (const fixvec &v, const int s) |
fixvec * int | |
fixvec | itpp::operator* (const int s, const fixvec &v) |
int * fixvec | |
fixvec | itpp::operator/ (const fixvec &v, const int s) |
fixvec / int using quantization mode TRN | |
fixmat | itpp::operator+ (const fixmat &v, const int s) |
fixmat + int | |
fixmat | itpp::operator+ (const int s, const fixmat &v) |
int + fixmat | |
fixmat | itpp::operator- (const fixmat &v, const int s) |
fixmat - int | |
fixmat | itpp::operator- (const int s, const fixmat &v) |
int - fixmat | |
fixmat | itpp::operator* (const fixmat &v, const int s) |
fixmat * int | |
fixmat | itpp::operator* (const int s, const fixmat &v) |
int * fixmat | |
fixmat | itpp::operator/ (const fixmat &v, const int s) |
fixmat / int using quantization mode TRN | |
fixvec | itpp::operator+ (const fixvec &a, const ivec &b) |
fixvec + ivec | |
fixvec | itpp::operator+ (const ivec &a, const fixvec &b) |
ivec + fixvec | |
fixvec | itpp::operator- (const fixvec &a, const ivec &b) |
fixvec - ivec | |
fixvec | itpp::operator- (const ivec &a, const fixvec &b) |
ivec - fixvec | |
Fix | itpp::operator* (const fixvec &a, const ivec &b) |
fixvec * ivec | |
Fix | itpp::operator* (const ivec &a, const fixvec &b) |
ivec * fixvec | |
fixmat | itpp::operator+ (const fixmat &a, const imat &b) |
fixmat + imat | |
fixmat | itpp::operator+ (const imat &a, const fixmat &b) |
imat + fixmat | |
fixmat | itpp::operator- (const fixmat &a, const imat &b) |
fixmat - imat | |
fixmat | itpp::operator- (const imat &a, const fixmat &b) |
imat - fixmat | |
fixmat | itpp::operator* (const fixmat &a, const imat &b) |
fixmat * imat | |
fixmat | itpp::operator* (const imat &a, const fixmat &b) |
imat * fixmat | |
CFix | itpp::operator+ (const CFix &x, const CFix &y) |
CFix + CFix. | |
CFix | itpp::operator- (const CFix &x, const CFix &y) |
CFix - CFix. | |
CFix | itpp::operator* (const CFix &x, const CFix &y) |
CFix * CFix. | |
CFix | itpp::operator/ (const CFix &x, const CFix &y) |
CFix / CFix using quantization mode TRN . | |
CFix | itpp::operator+ (const CFix &x, const Fix &y) |
CFix + Fix. | |
CFix | itpp::operator- (const CFix &x, const Fix &y) |
CFix - Fix. | |
CFix | itpp::operator* (const CFix &x, const Fix &y) |
CFix * Fix. | |
CFix | itpp::operator/ (const CFix &x, const Fix &y) |
CFix / Fix using quantization mode TRN . | |
CFix | itpp::operator+ (const Fix &x, const CFix &y) |
Fix + CFix. | |
CFix | itpp::operator- (const Fix &x, const CFix &y) |
Fix - CFix. | |
CFix | itpp::operator* (const Fix &x, const CFix &y) |
Fix * CFix. | |
CFix | itpp::operator/ (const Fix &x, const CFix &y) |
Fix / CFix using quantization mode TRN . | |
CFix | itpp::operator+ (const CFix &x, const int y) |
CFix + int. | |
CFix | itpp::operator- (const CFix &x, const int y) |
CFix - int. | |
CFix | itpp::operator* (const CFix &x, const int y) |
CFix * int. | |
CFix | itpp::operator/ (const CFix &x, const int y) |
CFix / int using quantization mode TRN . | |
CFix | itpp::operator+ (const int x, const CFix &y) |
int + CFix | |
CFix | itpp::operator- (const int x, const CFix &y) |
int - CFix | |
CFix | itpp::operator* (const int x, const CFix &y) |
int * CFix | |
CFix | itpp::operator/ (const int x, const CFix &y) |
int / CFix using quantization mode TRN | |
cfixvec | itpp::operator+ (const fixvec &v, const CFix &s) |
fixvec + CFix | |
cfixvec | itpp::operator+ (const CFix &s, const fixvec &v) |
CFix + fixvec. | |
cfixvec | itpp::operator- (const fixvec &v, const CFix &s) |
fixvec - CFix | |
cfixvec | itpp::operator- (const CFix &s, const fixvec &v) |
CFix - fixvec. | |
cfixvec | itpp::operator* (const fixvec &v, const CFix &s) |
fixvec * CFix | |
cfixvec | itpp::operator* (const CFix &s, const fixvec &v) |
CFix * fixvec. | |
cfixvec | itpp::operator/ (const fixvec &v, const CFix &s) |
fixvec / CFix using quantization mode TRN | |
cfixmat | itpp::operator+ (const fixmat &m, const CFix &s) |
fixmat + CFix | |
cfixmat | itpp::operator+ (const CFix &s, const fixmat &m) |
CFix + fixmat. | |
cfixmat | itpp::operator- (const fixmat &m, const CFix &s) |
fixmat - CFix | |
cfixmat | itpp::operator- (const CFix &s, const fixmat &m) |
CFix - fixmat. | |
cfixmat | itpp::operator* (const fixmat &m, const CFix &s) |
fixmat * CFix | |
cfixmat | itpp::operator* (const CFix &s, const fixmat &m) |
CFix * fixmat. | |
cfixmat | itpp::operator/ (const fixmat &m, const CFix &s) |
fixmat / CFix using quantization mode TRN | |
cfixvec | itpp::operator+ (const ivec &v, const CFix &s) |
ivec + CFix | |
cfixvec | itpp::operator+ (const CFix &s, const ivec &v) |
CFix + ivec. | |
cfixvec | itpp::operator- (const ivec &v, const CFix &s) |
ivec - CFix | |
cfixvec | itpp::operator- (const CFix &s, const ivec &v) |
CFix - ivec. | |
cfixvec | itpp::operator* (const ivec &v, const CFix &s) |
ivec * CFix | |
cfixvec | itpp::operator* (const CFix &s, const ivec &v) |
CFix * ivec. | |
cfixvec | itpp::operator/ (const ivec &v, const CFix &s) |
ivec / CFix using quantization mode TRN | |
cfixmat | itpp::operator+ (const imat &m, const CFix &s) |
imat + CFix | |
cfixmat | itpp::operator+ (const CFix &s, const imat &m) |
CFix + imat. | |
cfixmat | itpp::operator- (const imat &m, const CFix &s) |
imat - CFix | |
cfixmat | itpp::operator- (const CFix &s, const imat &m) |
CFix - imat. | |
cfixmat | itpp::operator* (const imat &m, const CFix &s) |
imat * CFix | |
cfixmat | itpp::operator* (const CFix &s, const imat &m) |
CFix * imat. | |
cfixmat | itpp::operator/ (const imat &m, const CFix &s) |
imat / CFix using quantization mode TRN | |
cfixvec | itpp::operator+ (const cfixvec &v, const Fix &s) |
cfixvec + Fix | |
cfixvec | itpp::operator+ (const Fix &s, const cfixvec &v) |
Fix + cfixvec. | |
cfixvec | itpp::operator- (const cfixvec &v, const Fix &s) |
cfixvec - Fix | |
cfixvec | itpp::operator- (const Fix &s, const cfixvec &v) |
Fix - cfixvec. | |
cfixvec | itpp::operator* (const cfixvec &v, const Fix &s) |
cfixvec * Fix | |
cfixvec | itpp::operator* (const Fix &s, const cfixvec &v) |
Fix * cfixvec. | |
cfixvec | itpp::operator/ (const cfixvec &v, const Fix &s) |
cfixvec / Fix using quantization mode TRN | |
cfixmat | itpp::operator+ (const cfixmat &m, const Fix &s) |
cfixmat + Fix | |
cfixmat | itpp::operator+ (const Fix &s, const cfixmat &m) |
Fix + cfixmat. | |
cfixmat | itpp::operator- (const cfixmat &m, const Fix &s) |
cfixmat - Fix | |
cfixmat | itpp::operator- (const Fix &s, const cfixmat &m) |
Fix - cfixmat. | |
cfixmat | itpp::operator* (const cfixmat &m, const Fix &s) |
cfixmat * Fix | |
cfixmat | itpp::operator* (const Fix &s, const cfixmat &m) |
Fix * cfixmat. | |
cfixmat | itpp::operator/ (const cfixmat &m, const Fix &s) |
cfixmat / Fix using quantization mode TRN | |
cfixvec | itpp::operator+ (const cfixvec &v, const int s) |
cfixvec + int | |
cfixvec | itpp::operator+ (const int s, const cfixvec &v) |
int + cfixvec | |
cfixvec | itpp::operator- (const cfixvec &v, const int s) |
cfixvec - int | |
cfixvec | itpp::operator- (const int s, const cfixvec &v) |
int - cfixvec | |
cfixvec | itpp::operator* (const cfixvec &v, const int s) |
cfixvec * int | |
cfixvec | itpp::operator* (const int s, const cfixvec &v) |
int * cfixvec | |
cfixvec | itpp::operator/ (const cfixvec &v, const int s) |
cfixvec / int using quantization mode TRN | |
cfixmat | itpp::operator+ (const cfixmat &m, const int s) |
cfixmat + int | |
cfixmat | itpp::operator+ (const int s, const cfixmat &m) |
int + cfixmat | |
cfixmat | itpp::operator- (const cfixmat &m, const int s) |
cfixmat - int | |
cfixmat | itpp::operator- (const int s, const cfixmat &m) |
int - cfixmat | |
cfixmat | itpp::operator* (const cfixmat &m, const int s) |
cfixmat * int | |
cfixmat | itpp::operator* (const int s, const cfixmat &m) |
int * cfixmat | |
cfixmat | itpp::operator/ (const cfixmat &m, const int s) |
cfixmat / int using quantization mode TRN | |
cfixvec | itpp::operator+ (const cfixvec &a, const fixvec &b) |
cfixvec + fixvec | |
cfixvec | itpp::operator+ (const fixvec &a, const cfixvec &b) |
fixvec + cfixvec | |
cfixvec | itpp::operator- (const cfixvec &a, const fixvec &b) |
cfixvec - fixvec | |
cfixvec | itpp::operator- (const fixvec &a, const cfixvec &b) |
fixvec - cfixvec | |
CFix | itpp::operator* (const cfixvec &a, const fixvec &b) |
cfixvec * fixvec | |
CFix | itpp::operator* (const fixvec &a, const cfixvec &b) |
fixvec * cfixvec | |
cfixmat | itpp::operator+ (const cfixmat &a, const fixmat &b) |
cfixmat + fixmat | |
cfixmat | itpp::operator+ (const fixmat &a, const cfixmat &b) |
fixmat + cfixmat | |
cfixmat | itpp::operator- (const cfixmat &a, const fixmat &b) |
cfixmat - fixmat | |
cfixmat | itpp::operator- (const fixmat &a, const cfixmat &b) |
fixmat - cfixmat | |
cfixmat | itpp::operator* (const cfixmat &a, const fixmat &b) |
cfixmat * fixmat | |
cfixmat | itpp::operator* (const fixmat &a, const cfixmat &b) |
fixmat * cfixmat | |
cfixvec | itpp::operator+ (const cfixvec &a, const ivec &b) |
cfixvec + ivec | |
cfixvec | itpp::operator+ (const ivec &a, const cfixvec &b) |
ivec + cfixvec | |
cfixvec | itpp::operator- (const cfixvec &a, const ivec &b) |
cfixvec - ivec | |
cfixvec | itpp::operator- (const ivec &a, const cfixvec &b) |
ivec - cfixvec | |
CFix | itpp::operator* (const cfixvec &a, const ivec &b) |
cfixvec * ivec | |
CFix | itpp::operator* (const ivec &a, const cfixvec &b) |
ivec * cfixvec | |
cfixmat | itpp::operator+ (const cfixmat &a, const imat &b) |
cfixmat + imat | |
cfixmat | itpp::operator+ (const imat &a, const cfixmat &b) |
imat + cfixmat | |
cfixmat | itpp::operator- (const cfixmat &a, const imat &b) |
cfixmat - imat | |
cfixmat | itpp::operator- (const imat &a, const cfixmat &b) |
imat - cfixmat | |
cfixmat | itpp::operator* (const cfixmat &a, const imat &b) |
cfixmat * imat | |
cfixmat | itpp::operator* (const imat &a, const cfixmat &b) |
imat * cfixmat | |
void | itpp::Vec< Num_T >::set (const char *str) |
Set the vector equal to the values in the str string. | |
void | itpp::Mat< Num_T >::set (const char *str) |
Set matrix equal to values in the string str . | |
Variables | |
const int | itpp::MAX_WORDLEN = 64 |
Max word length. | |
const uint64_t | itpp::UINT64_POW2 [64] |
Table for fast multiplication or division by 2^n. | |
const double | itpp::DOUBLE_POW2 [128] |
Table for fast multiplication by 2^(n-64) | |
Fixed-Point Data Types.
How to include the support for fixed-point data types in your program:
Fixed-point data types in IT++:
These classes have a common base class called Fix_Base; see inheritance diagram in the itpp::Fix_Base documentation. The following data members are inherited from Fix_Base:
The term "fixed-point restrictions" refers to all these data members except for the shift factor, which is considered to be part of the "fixed-point number". The shift factor has some resemblance to a binary point. The value of the shift factor is set in initializations and assignments and it is modified by multiplications, divisions and bit-shifting operations. The shift factor is used for checking that both terms have been shifted the same amount in additions and subtractions. Also, it is used to "un-shift" the data when a fixed-point number is converted to floating point.
Names of classes and enums have been aligned with the fixed-point data types in SystemC to some extent, but the fixed-point data types in IT++ and SystemC are quite different. In fact, the fixed-point data types in IT++ probably correspond better to the variable-precision integer types in SystemC (with one important difference: the fixed-point numbers in IT++ remember the amount of bit-shifting that has been applied to them, so that they can be converted back to "floating-point magnitude" easily if this is desired). The reason for this design choice in IT++ is to make the fixed-point simulations as fast as possible. If necessary, the core parts in itbase.h (e.g. Array, Vec and Mat) should be able to use some other data type than the ones presented here, assuming that a proper itpp::Factory is created for the data type, just like itpp::Fix_Factory has been created for these data types.
Sometimes the documentation for the IT++ fixed-point data types states that a function is "useful in templated code". This means that the function facilitates writing templated code where the template argument is meant to be either a floating-point type (double or complex<double>) or a fixed-point type (Fix or CFix), i.e. code which is supposed to support both floating-point and fixed-point simulations. For example, the operator >>= is defined for Fix and CFix, but not for double and complex<double>, so it might be a better idea to use the function rshift_fix which is defined for Fix and CFix as well as double and complex<double>.
For an example program, take a look at tests/fix_test.cpp.
Supported shift factors: -64 ... +63 bit-shifts. 0 is default.
An IT++ fixed-point number consists of a bit representation and a shift factor. The shift factor is a member of Fix_Base, while the bit representation is a member of the inherited class (Fix or CFix). The shift factor indicates the number of bit-shifts that have been performed on the data. A positive shift factor means that the data has been left-shifted while a negative shift factor means that the data has been right-shifted. For information about how the shift factor is affected by different operators, see section Operators and methods.
Supported word lengths: 1 ... 64 bits. 64 is default.
Supported sign encoding modes (itpp::e_mode):
TC is default.
Supported overflow modes (itpp::o_mode):
WRAP is default.
Supported quantization modes (itpp::q_mode), with definitions borrowed from SystemC (see SystemC documentation for further details):
TRN is default. RND and TRN are usually the most implementation friendly. However, note that it is RND_INF that corresponds to "ordinary rounding" and TRN_ZERO that corresponds to "ordinary truncation".
Supported statistics object pointer values: either a pointer to an itpp::Stat object or 0. 0 is default.
The sample method in the statistics object is called during initializations and assignments. A single statistics object can collect statistics from more than one fixed-point variable.
Supported output modes (itpp::output_mode), used by the output stream operator <<:
OUTPUT_FIX_SHIFT is default. Unlike the other modes, output_mode is a static data member of Fix_Base, i.e. the output_mode is common for all fixed-point variables. Use the following commands to change output_mode:
Fix and Fixed are real-valued fixed-point data types primarily intended to replace double
when a design is refined from floating- to fixed-point implementation. The data is stored in the least significant bits of a 64-bit integer variable.
The following example shows how to declare a two's complement (i.e. a signed) 20-bit variable with wrap-around as overflow handling with the initial value 3.14 shifted up 10 bits:
Note that Fix takes the initial values as well as the fixed-point restrictions as constructor arguments. Fixed also takes the initial values as constructor arguments but it takes the fixed-point restrictions as template arguments. Choose Fix or Fixed depending on your needs. There are three main reasons why you would want to choose Fix instead of Fixed. First, if you want to change the fixed-point restrictions for a variable during run time, you have to use Fix, since the fixed-point restrictions for Fixed have been "fixed" at compile time. Second, if your code is using a lot of templating, you might end up with many more template arguments if you use Fixed than you would if you use Fix, since each set of fixed-point restrictions that you want to use will correspond to another type (based on the class template Fixed) instead of just different configurations of a single type (Fix). Third, the vector and matrix operations currently work better for Fix than for Fixed.
If you choose Fix, you should also read the section Fix_Factory. If you choose Fixed, you may find it convenient to use the following typedefs:
Declaration corresponding to the above Fixed example but using one of the typedefs:
CFix and CFixed are complex-valued fixed-point data types primarily intended to replace complex<double>
when a design is refined from floating- to fixed-point implementation. The data is stored in the least significant bits of two 64-bit integer variables: one for the real part and one for the imaginary part. The two parts have a common shift factor (the one inherited from Fix_Base), so it is not possible to shift only one of them.
The following example shows two ways to declare a two's complement (i.e. a signed) 20-bit variable with wrap-around as overflow handling with the initial value 1.11 + 2.22i shifted up 10 bits:
Choose CFix or CFixed depending on your needs; see section Fix and Fixed. If you choose CFix, you should also read the section Fix_Factory.
If you choose CFixed, you may find it convenient to use the following typedefs, which are predefined in IT++:
Declarations corresponding to the above CFixed examples but using one of the typedefs:
IF you choose to use Fix/CFix (instead of Fixed/CFixed) AND you want to declare an Array/Vec/Mat with Fix/CFix elements AND you wish to specify some non-default fixed-point restrictions for these elements (i.e. something else than 64-bit word length, two's complement as sign encoding mode, wrap-around as overflow mode, truncation as quantization mode, and no statistics object), THEN you will need to use a Fix_Factory when declaring the Array/Vec/Mat of Fix/CFix. Here is how it works, somewhat simplified: you give the fixed-point restrictions as parameters to the Fix_Factory, then you give the Fix_Factory as a parameter to the Array/Vec/Mat, and finally the Array/Vec/Mat uses the Fix_Factory to create Fix/CFix elements with those fixed-point restrictions. All constructors for Array, Vec and Mat can take a Fix_Factory (or any other Factory for that matter) as their last, optional argument. It is assumed that all elements in the Array/Vec/Mat should have the same fixed-point restrictions (and use a common statistics object, if any). Note that a Fix_Factory can create both Fix and CFix objects. For information on Factory in general and Fix_Factory in particular, see the Detailed Descriptions for itpp::Factory and itpp::Fix_Factory, respectively.
The following example shows how to declare a vector of length 7 with Fix elements that are two's complement 20-bit variables with wrap-around as overflow handling:
FIX20 is one of many predefined Fix_Factory; see the Detailed Description for itpp::Fix_Factory.
Fix/CFix should not need to know about Fix_Factory, but for the sake of uniform syntax in declarations, an exception has been made:
i.e. a Fix/CFix declaration can take a Fix_Factory as an argument, just like the Vec<Fix> declaration above did.
Fixed-point variables can be initialized with a fixed- or a floating-point value:
In this example, b
was initialized with the same value as a
but with smaller word length resulting in overflow, since round(3.14*pow2(10)) does not fit in the 7-bit variable b
.
The assignment operators =, +=, -=, *=, /=, <<= and >>= are supported. For =, +=, -=, *= and /=, the right-hand operand can be another fixed-point variable or an integer value. If it is an integer value, it is interpreted as a fixed-point value with shift factor 0. The = operator simply copies the shift factor from the right side to the left side. For information on how the other operators treat the shift factor, see sections Addition and subtraction, Multiplication and division and Bit-shifting.
If assignment to a scaled double
is desired (when initialization has already taken place), the itpp::Fix::set method can be used.
When the floating-point value is quantized, the quantization mode of the fixed-point variable (TRN in the example above, since c
has this quantization mode) will be used, unless some other quantization mode (e.g. RND) is specified as a third argument to set:
There are also methods for setting data representation and shift directly: itpp::Fix::set_re, itpp::CFix::set_im and itpp::Fix_Base::set_shift. They are mainly intended for internal use.
Addition and subtraction between two fixed-point variables as well as between a fixed-point variable and an integer variable is supported. The unary minus operator is also defined. For Fix and CFix, several vector and matrix operations are also supported.
d
had been assigned with a different shift factor than 0 in the above example (and ASSERT_LEVEL > 0), the addition d + e
would have failed, resulting in termination with the error message "assert_shifts: Different
shifts not allowed!".As hinted earlier, the fixed-point restrictions are applied during initialization, assignment and bit-shifting operations only. This means that the result of an addition or subtraction is unrestricted (64 bits).
Multiplication and division between two fixed-point variables as well as between a fixed-point variable and an integer variable is supported. For Fix and CFix, several vector and matrix operations are also supported.
As stated earlier, the fixed-point restrictions are applied during initialization, assignment and bit-shifting operations only. This means that the result of a multiplication or division is unrestricted (64 bits) in the same way as for an addition or subtraction; see section Addition and subtraction.
The resulting shift factor after a multiplication is the sum of the two shift factors, while the resulting shift factor after a division is the difference between the numerator shift factor and the denominator shift factor. The result of a division is always quantized using truncation, i.e. the quantization modes of the involved fixed-point variables do not matter. Note that sometimes divisions can be replaced with multiplications and/or bit-shifting operations; see section Bit-shifting.
The <<= and >>= operators are defined for the fixed-point data types. As an alternative, you can use the itpp::Fix::lshift and itpp::Fix::rshift methods. The appropriate fixed-point restrictions of the variable are applied, i.e. for left-shifting the overflow mode is applied and for right-shifting the quantization mode is applied. There is also a version of rshift that takes a quantization mode as the last argument (but there is no corresponding version of the >>= operator since it cannot take an extra argument).
The << and >> operators are not defined for the fixed-point data types since it is not clear what quantization mode that should be applied for the >> operator.
Fix and Fixed can be converted to double, while CFix and CFixed can be converted to complex<double>. The conversion operators "un-shift" the data by multiplying the fixed-point bit representation with pow2(-shift).
The itpp::Fix::unfix and itpp::CFix::unfix methods can always be used:
The resulting output is 3.125.
Equivalently, the double(Fix&) and complex<double>(CFix&) operators can be used, unless you define NO_IMPLICIT_FIX_CONVERSION before you include IT++ in your program.
The resulting output is 3.125.
Finally, Fix/Fixed can be converted to CFix/CFixed using the appropriate CFix/CFixed constructors.
This example shows how to get the data members of fixed-point variables:
The print() method outputs the entire state; see section Get data members.
This code example shows how to input and output fixed-point numbers:
Complex numbers can be input on both the C++ form and the IT++ form:
In the above examples, only the data representation was changed, while the shift (4) was kept. It is however possible to enter another (positive or negative) shift factor as well:
It is also possible to enter a floating-point value and a (positive or negative) shift, rather than the data representation and a shift, if a slightly different format is used:
The resulting data representation is the entered floating-point value 1+2i multiplied by 2^5.
Vectors and matrices support the same formats for fixed-point numbers. However, all old elements are assumed to have the same shift factor, and the shift factor of the first old element becomes the default shift factor for all elements of the vector or matrix. The same holds in e.g. an Array of vectors, i.e. the shift factor of the first old element in each vector becomes the default shift factor for all elements of that vector. The default shift factor in an empty vector or matrix is zero.
The function itpp::is_fix returns true only if the argument is of type Fix or CFix or an Array/Vec/Mat of Fix or CFix.
The function itpp::set_fix sets y = x * pow2(n)
if the first argument is of type Fix or CFix or an Array/Vec/Mat of Fix or CFix. If the first argument is of type double or complex<double> or an Array/Vec/Mat of double or complex<double>, the function just sets y = x
.
When the floating-point value is quantized, the quantization mode of the first argument (TRN in the example above, since fix_var has this quantization mode) will be used, unless some other quantization mode (e.g. RND) is specified as a fourth argument to set_fix:
The functions itpp::lshift_fix and itpp::rshift_fix perform left and right bit-shifts, respectively, if the first argument is of type Fix or CFix or an Array/Vec/Mat of Fix or CFix. If the first argument is of type double or complex<double> or an Array/Vec/Mat of double or complex<double>, the functions do not do anything at all.
When a fixed-point value is right-shifted using rshift_fix, the quantization mode of the first argument (TRN in the example above, since fix_var has this quantization mode) will be used, unless some other quantization mode (e.g. RND) is specified as a third argument to rshift_fix:
When a fixed-point value is left-shifted using lshift_fix, on the other hand, the overflow mode of the first argument is always used.
The itpp::assert_fixshift function can be used to verify that the shift factor has the expected value:
If the first argument is of type double or complex<double> instead, no test will be performed (since they have no shift factors).
The itpp::unfix function converts a fixed-point variable to a floating-point variable (or an Array/Vec/Mat of fixed-point variables to an Array/Vec/Mat of floating-point variables) by multiplying the fixed-point bit representation with pow2(-shift), using the unfix method mentioned above.
If the argument is a floating-point variable (or an Array/Vec/Mat of floating-point variables) instead, the function just returns the argument.
The itpp::to<T> function is a very general conversion function. It converts a floating- or fixed-point variable to a floating- or fixed-point variable (or a floating- or fixed-point Array/Vec/Mat to a floating- or fixed-point Array/Vec/Mat) depending on the types of the argument and of the specified template parameter.
typedef Vec<CFix> itpp::cfixvec |
typedef Mat<CFix> itpp::cfixmat |
typedef Vec<Fix> itpp::fixvec |
typedef Mat<Fix> itpp::fixmat |
typedef int64_t itpp::fixrep |
Representation for fixed-point data types.
Definition at line 884 of file fix_base.h.
enum itpp::e_mode |
Sign encoding modes (aligned with SystemC)
Enumerator | |
---|---|
TC | Two's complement. |
US | Unsigned. |
Definition at line 942 of file fix_base.h.
enum itpp::o_mode |
Overflow modes (aligned with SystemC)
Enumerator | |
---|---|
SAT | Saturation. |
SAT_ZERO | Saturation to zero (Not implemented) |
SAT_SYM | Symmetrical saturation (Not implemented) |
WRAP | Wrap-around. |
WRAP_SM | Sign magnitued wrap-around (Not implemented) |
Definition at line 948 of file fix_base.h.
enum itpp::q_mode |
Quantization modes (aligned with SystemC)
Definition at line 957 of file fix_base.h.
enum itpp::output_mode |
Output modes.
Definition at line 969 of file fix_base.h.
Check that x.shift==y.shift OR x==0 OR y==0 and return the shift (for the non-zero argument)
Definition at line 249 of file cfix.cpp.
Referenced by itpp::CFix::CFix(), itpp::operator+(), itpp::operator+(), itpp::operator+(), itpp::operator+(), itpp::operator+(), itpp::operator+(), itpp::operator+(), itpp::operator+(), itpp::operator-(), itpp::operator-(), itpp::operator-(), itpp::operator-(), itpp::operator-(), itpp::operator-(), itpp::operator-(), and itpp::operator-().
ITPP_EXPORT int itpp::assert_shifts | ( | const CFix & | x, |
int | y ) |
ITPP_EXPORT std::istream & itpp::operator>> | ( | std::istream & | is, |
CFix & | x ) |
Input bit representation and, optionally, the shift.
Definition at line 288 of file cfix.cpp.
References itpp::CFix::set(), itpp::CFix::set_im(), itpp::CFix::set_re(), and itpp::Fix_Base::set_shift().
ITPP_EXPORT std::ostream & itpp::operator<< | ( | std::ostream & | os, |
const CFix & | x ) |
Output bit representation and, optionally, the shift.
Definition at line 316 of file cfix.cpp.
References itpp::CFix::get_im(), itpp::Fix_Base::get_output_mode(), itpp::CFix::get_re(), itpp::Fix_Base::get_shift(), it_error, itpp::OUTPUT_FIX, itpp::OUTPUT_FIX_SHIFT, itpp::OUTPUT_FLOAT, and itpp::OUTPUT_FLOAT_SHIFT.
ITPP_EXPORT int itpp::assert_shifts | ( | const Fix & | x, |
int | y ) |
ITPP_EXPORT std::istream & itpp::operator>> | ( | std::istream & | is, |
Fix & | x ) |
Input bit representation and, optionally, the shift.
Definition at line 192 of file fix.cpp.
References itpp::Fix::set(), itpp::Fix::set_re(), and itpp::Fix_Base::set_shift().
ITPP_EXPORT std::ostream & itpp::operator<< | ( | std::ostream & | os, |
const Fix & | x ) |
Output bit representation and, optionally, the shift.
Definition at line 218 of file fix.cpp.
References itpp::Fix_Base::get_output_mode(), itpp::Fix::get_re(), itpp::Fix_Base::get_shift(), it_error, itpp::OUTPUT_FIX, itpp::OUTPUT_FIX_SHIFT, itpp::OUTPUT_FLOAT, and itpp::OUTPUT_FLOAT_SHIFT.
|
inline |
Set output mode.
Definition at line 1058 of file fix_base.h.
References itpp::Fix_Base::set_output_mode().
ITPP_EXPORT void itpp::create_elements< Fix > | ( | Fix *& | ptr, |
const int | n, | ||
const Factory & | f ) |
Create an n-length array of Fix using Fix_Factory f
.
Definition at line 58 of file fix_factory.cpp.
ITPP_EXPORT void itpp::create_elements< CFix > | ( | CFix *& | ptr, |
const int | n, | ||
const Factory & | f ) |
Create an n-length array of CFix using Fix_Factory f
.
Definition at line 76 of file fix_factory.cpp.
|
inline |
Return true only if argument is of type Fix or CFix (or an Array/Vec/Mat of Fix or CFix)
Definition at line 48 of file fix_functions.h.
Referenced by itpp::is_fix().
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Return true only if argument is of type Fix or CFix (or an Array/Vec/Mat of Fix or CFix)
Definition at line 62 of file fix_functions.h.
References itpp::is_fix().
|
inline |
Set y = x * pow2(n)
using the quantization mode of y
.
Definition at line 65 of file fix_functions.h.
References itpp::Fix::set().
Referenced by itpp::set_fix(), itpp::set_fix(), itpp::set_fix(), and itpp::set_fix().
Set y = x * pow2(n)
using the specified quantization mode q
.
Definition at line 67 of file fix_functions.h.
References itpp::Fix::set().
|
inline |
Set y = x * pow2(n)
using the quantization mode of y
.
Definition at line 69 of file fix_functions.h.
References itpp::Vec< Num_T >::set(), itpp::Vec< Num_T >::set_size(), and itpp::Vec< Num_T >::size().
Set y = x * pow2(n)
using the specified quantization mode q
.
Definition at line 75 of file fix_functions.h.
References itpp::Vec< Num_T >::set(), itpp::Vec< Num_T >::set_size(), and itpp::Vec< Num_T >::size().
|
inline |
Set y = x * pow2(n)
using the quantization mode of y
.
Definition at line 81 of file fix_functions.h.
References itpp::Mat< Num_T >::set(), itpp::Mat< Num_T >::set_size(), and itpp::Mat< Num_T >::size().
Set y = x * pow2(n)
using the specified quantization mode q
.
Definition at line 87 of file fix_functions.h.
References itpp::Mat< Num_T >::set(), itpp::Mat< Num_T >::set_size(), and itpp::Mat< Num_T >::size().
|
inline |
Set y = x
. Useful in templated code.
Definition at line 93 of file fix_functions.h.
|
inline |
Set y = x
. Useful in templated code.
Definition at line 95 of file fix_functions.h.
|
inline |
Set y = x
. Useful in templated code.
Definition at line 97 of file fix_functions.h.
|
inline |
Set y = x
. Useful in templated code.
Definition at line 99 of file fix_functions.h.
|
inline |
Set y = x
. Useful in templated code.
Definition at line 101 of file fix_functions.h.
|
inline |
Set y = x
. Useful in templated code.
Definition at line 103 of file fix_functions.h.
|
inline |
Set y = x * pow2(n)
using the quantization mode of y
.
Definition at line 106 of file fix_functions.h.
References itpp::CFix::set().
|
inline |
Set y = (real + i*imag) * pow2(n)
using the quantization mode of y
.
Definition at line 108 of file fix_functions.h.
References itpp::imag(), itpp::real(), and itpp::CFix::set().
Set y = x * pow2(n)
using the specified quantization mode q
.
Definition at line 110 of file fix_functions.h.
References itpp::CFix::set().
Set y = (real + i*imag) * pow2(n)
using the specified quantization mode q
.
Definition at line 112 of file fix_functions.h.
References itpp::imag(), itpp::real(), and itpp::CFix::set().
|
inline |
Set y = x * pow2(n)
using the quantization mode of y
.
Definition at line 114 of file fix_functions.h.
References itpp::Vec< Num_T >::set(), itpp::Vec< Num_T >::set_size(), and itpp::Vec< Num_T >::size().
|
inline |
Set y = (real + i*imag) * pow2(n)
using the quantization mode of y
.
Definition at line 120 of file fix_functions.h.
References itpp::imag(), it_assert_debug, itpp::real(), itpp::Vec< Num_T >::set(), itpp::Vec< Num_T >::set_size(), and itpp::Vec< Num_T >::size().
Set y = x * pow2(n)
using the specified quantization mode q
.
Definition at line 127 of file fix_functions.h.
References itpp::Vec< Num_T >::set(), itpp::Vec< Num_T >::set_size(), and itpp::Vec< Num_T >::size().
Set y = (real + i*imag) * pow2(n)
using the specified quantization mode q
.
Definition at line 133 of file fix_functions.h.
References itpp::imag(), it_assert_debug, itpp::real(), itpp::Vec< Num_T >::set(), itpp::Vec< Num_T >::set_size(), and itpp::Vec< Num_T >::size().
|
inline |
Set y = x * pow2(n)
using the quantization mode of y
.
Definition at line 140 of file fix_functions.h.
References itpp::Mat< Num_T >::set(), itpp::Mat< Num_T >::set_size(), and itpp::Mat< Num_T >::size().
|
inline |
Set y = (real + i*imag) * pow2(n)
using the quantization mode of y
.
Definition at line 146 of file fix_functions.h.
References itpp::imag(), it_assert_debug, itpp::real(), itpp::Mat< Num_T >::set(), itpp::Mat< Num_T >::set_size(), and itpp::Mat< Num_T >::size().
Set y = x * pow2(n)
using the specified quantization mode q
.
Definition at line 153 of file fix_functions.h.
References itpp::Mat< Num_T >::set(), itpp::Mat< Num_T >::set_size(), and itpp::Mat< Num_T >::size().
Set y = (real + i*imag) * pow2(n)
using the specified quantization mode q
.
Definition at line 159 of file fix_functions.h.
References itpp::imag(), it_assert_debug, itpp::real(), itpp::Mat< Num_T >::set(), itpp::Mat< Num_T >::set_size(), and itpp::Mat< Num_T >::size().
|
inline |
Set y = x
. Useful in templated code.
Definition at line 166 of file fix_functions.h.
|
inline |
Set y = real + i*imag
. Useful in templated code.
Definition at line 168 of file fix_functions.h.
References itpp::imag(), and itpp::real().
|
inline |
Set y = x
. Useful in templated code.
Definition at line 170 of file fix_functions.h.
|
inline |
Set y = real + i*imag
. Useful in templated code.
Definition at line 172 of file fix_functions.h.
References itpp::imag(), and itpp::real().
|
inline |
Set y = x
. Useful in templated code.
Definition at line 174 of file fix_functions.h.
|
inline |
Set y = real + i*imag
. Useful in templated code.
Definition at line 176 of file fix_functions.h.
References itpp::imag(), itpp::real(), and itpp::to_cvec().
|
inline |
Set y = x
. Useful in templated code.
Definition at line 178 of file fix_functions.h.
|
inline |
Set y = real + i*imag
. Useful in templated code.
Definition at line 180 of file fix_functions.h.
References itpp::imag(), itpp::real(), and itpp::to_cvec().
|
inline |
Set y = x
. Useful in templated code.
Definition at line 182 of file fix_functions.h.
|
inline |
Set y = real + i*imag
. Useful in templated code.
Definition at line 184 of file fix_functions.h.
References itpp::imag(), itpp::real(), and itpp::to_cmat().
|
inline |
Set y = x
. Useful in templated code.
Definition at line 186 of file fix_functions.h.
|
inline |
Set y = real + i*imag
. Useful in templated code.
Definition at line 188 of file fix_functions.h.
References itpp::imag(), itpp::real(), and itpp::to_cmat().
|
inline |
Call set_fix for each Array element.
Definition at line 191 of file fix_functions.h.
References itpp::set_fix(), itpp::Array< T >::set_size(), and itpp::Array< T >::size().
|
inline |
Call set_fix for each Array element.
Definition at line 197 of file fix_functions.h.
References itpp::imag(), it_assert_debug, itpp::real(), itpp::set_fix(), itpp::Array< T >::set_size(), and itpp::Array< T >::size().
|
inline |
Call set_fix for each Array element.
Definition at line 204 of file fix_functions.h.
References itpp::set_fix(), itpp::Array< T >::set_size(), and itpp::Array< T >::size().
|
inline |
Call set_fix for each Array element.
Definition at line 210 of file fix_functions.h.
References itpp::imag(), it_assert_debug, itpp::real(), itpp::set_fix(), itpp::Array< T >::set_size(), and itpp::Array< T >::size().
|
inline |
Left shift n
bits.
Definition at line 218 of file fix_functions.h.
References itpp::Fix::lshift().
Referenced by itpp::lshift_fix().
|
inline |
Right shift n
bits using the quantization mode of y
.
Definition at line 220 of file fix_functions.h.
References itpp::Fix::rshift().
Referenced by itpp::rshift_fix(), and itpp::rshift_fix().
Right shift n
bits using the specified quantization mode q
.
Definition at line 222 of file fix_functions.h.
References itpp::Fix::rshift().
|
inline |
Left shift n
bits.
Definition at line 224 of file fix_functions.h.
References itpp::Vec< Num_T >::size().
|
inline |
Right shift n
bits using the quantization mode of y
.
Definition at line 227 of file fix_functions.h.
References itpp::Vec< Num_T >::size().
Right shift n
bits using the specified quantization mode q
.
Definition at line 230 of file fix_functions.h.
References itpp::Vec< Num_T >::size().
|
inline |
Left shift n
bits.
Definition at line 233 of file fix_functions.h.
References itpp::Mat< Num_T >::size().
|
inline |
Right shift n
bits using the quantization mode of y
.
Definition at line 236 of file fix_functions.h.
References itpp::Mat< Num_T >::size().
Right shift n
bits using the specified quantization mode q
.
Definition at line 239 of file fix_functions.h.
References itpp::Mat< Num_T >::size().
|
inline |
Dummy function useful in templated code.
Definition at line 242 of file fix_functions.h.
|
inline |
Dummy function useful in templated code.
Definition at line 244 of file fix_functions.h.
|
inline |
Dummy function useful in templated code.
Definition at line 246 of file fix_functions.h.
|
inline |
Dummy function useful in templated code.
Definition at line 248 of file fix_functions.h.
|
inline |
Dummy function useful in templated code.
Definition at line 250 of file fix_functions.h.
|
inline |
Dummy function useful in templated code.
Definition at line 252 of file fix_functions.h.
|
inline |
Dummy function useful in templated code.
Definition at line 254 of file fix_functions.h.
|
inline |
Dummy function useful in templated code.
Definition at line 256 of file fix_functions.h.
|
inline |
Dummy function useful in templated code.
Definition at line 258 of file fix_functions.h.
|
inline |
|
inline |
Right shift n
bits using the quantization mode of y
.
Definition at line 262 of file fix_functions.h.
References itpp::CFix::rshift().
Right shift n
bits using the specified quantization mode q
.
Definition at line 264 of file fix_functions.h.
References itpp::CFix::rshift().
|
inline |
Left shift n
bits.
Definition at line 266 of file fix_functions.h.
References itpp::Vec< Num_T >::size().
|
inline |
Right shift n
bits using the quantization mode of y
.
Definition at line 269 of file fix_functions.h.
References itpp::Vec< Num_T >::size().
Right shift n
bits using the specified quantization mode q
.
Definition at line 272 of file fix_functions.h.
References itpp::Vec< Num_T >::size().
|
inline |
Left shift n
bits.
Definition at line 275 of file fix_functions.h.
References itpp::Mat< Num_T >::size().
|
inline |
Right shift n
bits using the quantization mode of y
.
Definition at line 278 of file fix_functions.h.
References itpp::Mat< Num_T >::size().
Right shift n
bits using the specified quantization mode q
.
Definition at line 281 of file fix_functions.h.
References itpp::Mat< Num_T >::size().
|
inline |
Dummy function useful in templated code.
Definition at line 284 of file fix_functions.h.
|
inline |
Dummy function useful in templated code.
Definition at line 286 of file fix_functions.h.
|
inline |
Dummy function useful in templated code.
Definition at line 288 of file fix_functions.h.
|
inline |
Dummy function useful in templated code.
Definition at line 290 of file fix_functions.h.
|
inline |
Dummy function useful in templated code.
Definition at line 292 of file fix_functions.h.
|
inline |
Dummy function useful in templated code.
Definition at line 294 of file fix_functions.h.
|
inline |
Dummy function useful in templated code.
Definition at line 296 of file fix_functions.h.
|
inline |
Dummy function useful in templated code.
Definition at line 298 of file fix_functions.h.
|
inline |
Dummy function useful in templated code.
Definition at line 300 of file fix_functions.h.
|
inline |
Call lshift_fix for each Array element.
Definition at line 302 of file fix_functions.h.
References itpp::lshift_fix(), and itpp::Array< T >::size().
|
inline |
Call rshift_fix for each Array element.
Definition at line 305 of file fix_functions.h.
References itpp::rshift_fix(), and itpp::Array< T >::size().
Call rshift_fix for each Array element.
Definition at line 308 of file fix_functions.h.
References itpp::rshift_fix(), and itpp::Array< T >::size().
|
inline |
If x is a fixed-point variable, assert that x has the specified shift value, otherwise do nothing.
Definition at line 312 of file fix_functions.h.
|
inline |
If x is a fixed-point variable, assert that x has the specified shift value, otherwise do nothing.
Definition at line 314 of file fix_functions.h.
|
inline |
If x is a fixed-point variable, assert that x has the specified shift value, otherwise do nothing.
Definition at line 316 of file fix_functions.h.
References itpp::Fix_Base::get_shift(), it_assert_debug, and itpp::to_str().
|
inline |
If x is a fixed-point variable, assert that x has the specified shift value, otherwise do nothing.
Definition at line 319 of file fix_functions.h.
References itpp::Fix_Base::get_shift(), it_assert_debug, and itpp::to_str().
ITPP_EXPORT vec itpp::to_vec | ( | const fixvec & | v | ) |
Converts a fixvec to vec.
Definition at line 36 of file fix_functions.cpp.
References itpp::Vec< Num_T >::length().
ITPP_EXPORT cvec itpp::to_cvec | ( | const cfixvec & | v | ) |
Converts a cfixvec to cvec.
Definition at line 45 of file fix_functions.cpp.
References itpp::Vec< Num_T >::length().
ITPP_EXPORT mat itpp::to_mat | ( | const fixmat & | m | ) |
Converts a fixmat to mat.
Definition at line 54 of file fix_functions.cpp.
References itpp::Mat< Num_T >::cols(), and itpp::Mat< Num_T >::rows().
ITPP_EXPORT cmat itpp::to_cmat | ( | const cfixmat & | m | ) |
Converts a cfixmat to cmat.
Definition at line 65 of file fix_functions.cpp.
References itpp::Mat< Num_T >::cols(), and itpp::Mat< Num_T >::rows().
|
inline |
Convert double to T.
Definition at line 365 of file fix_functions.h.
Referenced by itpp::Mat< Num_T >::copy_col(), itpp::Mat< Num_T >::copy_row(), itpp::Histogram< Num_T >::Histogram(), itpp::linspace(), itpp::linspace_fixed_step(), itpp::Histogram< Num_T >::setup(), itpp::to(), and itpp::to().
|
inline |
Convert Fix to T.
Definition at line 367 of file fix_functions.h.
|
inline |
Convert std::complex<double> to T.
Definition at line 369 of file fix_functions.h.
|
inline |
Convert CFix to T.
Definition at line 371 of file fix_functions.h.
|
inline |
Convert double (real and imaginary parts) to T.
Definition at line 373 of file fix_functions.h.
References itpp::imag(), and itpp::real().
Convert Fix (real and imaginary parts) to T.
Definition at line 375 of file fix_functions.h.
References itpp::imag(), and itpp::real().
Definition at line 378 of file fix_functions.h.
References itpp::Vec< Num_T >::length().
|
inline |
Convert vec to vec.
Definition at line 387 of file fix_functions.h.
|
inline |
Convert cvec to cvec.
Definition at line 389 of file fix_functions.h.
Convert fixvec to fixvec.
Definition at line 391 of file fix_functions.h.
Convert cfixvec to cfixvec.
Definition at line 393 of file fix_functions.h.
Referenced by itpp::operator*(), itpp::operator*(), itpp::operator*(), itpp::operator*(), itpp::operator*(), itpp::operator*(), itpp::operator*(), itpp::operator*(), itpp::operator+(), itpp::operator+(), itpp::operator+(), itpp::operator+(), itpp::operator+(), itpp::operator+(), itpp::operator+(), itpp::operator+(), itpp::operator-(), itpp::operator-(), itpp::operator-(), itpp::operator-(), itpp::operator-(), itpp::operator-(), itpp::operator-(), itpp::operator-(), itpp::operator/(), itpp::operator/(), itpp::operator/(), and itpp::operator/().
Convert Vec (real and imaginary parts) to Vec<T>
Definition at line 396 of file fix_functions.h.
References itpp::imag(), it_assert_debug, and itpp::real().
Definition at line 407 of file fix_functions.h.
References itpp::Mat< Num_T >::cols(), and itpp::Mat< Num_T >::rows().
|
inline |
Convert mat to mat.
Definition at line 418 of file fix_functions.h.
|
inline |
Convert cmat to cmat.
Definition at line 420 of file fix_functions.h.
Convert fixmat to fixmat.
Definition at line 422 of file fix_functions.h.
Convert cfixmat to cfixmat.
Definition at line 424 of file fix_functions.h.
Convert Mat (real and imaginary parts) to Mat<T>
Definition at line 427 of file fix_functions.h.
References itpp::imag(), it_assert_debug, and itpp::real().
Array< typename ConvertU2T< T, U >::result > itpp::to | ( | const Array< U > & | x | ) |
Convert Array, where U can be an Array/Vec/Mat, to a corresponding Array with T elements.
Definition at line 441 of file fix_functions.h.
References itpp::Array< T >::size(), and itpp::to().
Array< typename ConvertU2T< T, U >::result > itpp::to | ( | const Array< U > & | real, |
const Array< U > & | imag ) |
Convert Array (real and imaginary parts), where U can be an Array/Vec/Mat, to a corresponding Array with T elements.
Definition at line 452 of file fix_functions.h.
References itpp::imag(), it_assert_debug, itpp::real(), and itpp::to().
|
inline |
Convert Fix to double by multiplying the bit representation with pow2(-shift)
Definition at line 463 of file fix_functions.h.
References itpp::Fix::unfix().
Referenced by itpp::unfix().
|
inline |
Convert CFix to std::complex<double> by multiplying the bit representation with pow2(-shift)
Definition at line 465 of file fix_functions.h.
References itpp::CFix::unfix().
|
inline |
Convert fixvec to vec by multiplying the bit representations with pow2(-shift)
Definition at line 467 of file fix_functions.h.
References itpp::to_vec().
|
inline |
Convert cfixvec to cvec by multiplying the bit representations with pow2(-shift)
Definition at line 469 of file fix_functions.h.
References itpp::to_cvec().
|
inline |
Convert fixmat to mat by multiplying the bit representations with pow2(-shift)
Definition at line 471 of file fix_functions.h.
References itpp::to_mat().
|
inline |
Convert cfixmat to cmat by multiplying the bit representations with pow2(-shift)
Definition at line 473 of file fix_functions.h.
References itpp::to_cmat().
|
inline |
Convert double to double i.e. do nothing.
Definition at line 476 of file fix_functions.h.
|
inline |
Convert std::complex<double> to std::complex<double> i.e. do nothing.
Definition at line 478 of file fix_functions.h.
|
inline |
Convert vec to vec i.e. do nothing.
Definition at line 480 of file fix_functions.h.
|
inline |
Convert cvec to cvec i.e. do nothing.
Definition at line 482 of file fix_functions.h.
|
inline |
Convert mat to mat i.e. do nothing.
Definition at line 484 of file fix_functions.h.
|
inline |
Convert cmat to cmat i.e. do nothing.
Definition at line 486 of file fix_functions.h.
Convert floating- or fixed-point Array to floating-point Array.
Definition at line 537 of file fix_functions.h.
References itpp::Array< T >::size(), and itpp::unfix().
Absolute value.
Definition at line 76 of file fix_functions.cpp.
References itpp::Fix::get_re(), and itpp::Fix_Base::get_shift().
Real part of complex value.
Definition at line 84 of file fix_functions.cpp.
References itpp::CFix::get_re(), and itpp::Fix_Base::get_shift().
Imaginary part of complex value.
Definition at line 91 of file fix_functions.cpp.
References itpp::CFix::get_im(), and itpp::Fix_Base::get_shift().
Conjugate of complex value.
Definition at line 98 of file fix_functions.cpp.
References itpp::CFix::get_im(), itpp::CFix::get_re(), and itpp::Fix_Base::get_shift().
Definition at line 40 of file fix_operators.cpp.
References itpp::assert_shifts(), and itpp::Fix::get_re().
Definition at line 47 of file fix_operators.cpp.
References itpp::assert_shifts(), and itpp::Fix::get_re().
Definition at line 54 of file fix_operators.cpp.
References itpp::Fix::get_re(), and itpp::Fix_Base::get_shift().
Fix / Fix using quantization mode TRN
.
Definition at line 61 of file fix_operators.cpp.
References itpp::Fix::get_re(), and itpp::Fix_Base::get_shift().
Fix + int.
Definition at line 68 of file fix_operators.cpp.
References itpp::assert_shifts(), and itpp::Fix::get_re().
Fix - int.
Definition at line 75 of file fix_operators.cpp.
References itpp::assert_shifts(), and itpp::Fix::get_re().
Fix * int.
Definition at line 82 of file fix_operators.cpp.
References itpp::Fix::get_re(), and itpp::Fix_Base::get_shift().
Fix / int using quantization mode TRN
.
Definition at line 89 of file fix_operators.cpp.
References itpp::Fix::get_re(), and itpp::Fix_Base::get_shift().
int + Fix
Definition at line 96 of file fix_operators.cpp.
References itpp::assert_shifts(), and itpp::Fix::get_re().
int - Fix
Definition at line 103 of file fix_operators.cpp.
References itpp::assert_shifts(), and itpp::Fix::get_re().
int * Fix
Definition at line 110 of file fix_operators.cpp.
References itpp::Fix::get_re(), and itpp::Fix_Base::get_shift().
int / Fix using quantization mode TRN
Definition at line 117 of file fix_operators.cpp.
References itpp::Fix::get_re(), and itpp::Fix_Base::get_shift().
fixvec + int
Definition at line 75 of file fix_operators.h.
int + fixvec
Definition at line 77 of file fix_operators.h.
fixvec - int
Definition at line 79 of file fix_operators.h.
int - fixvec
Definition at line 81 of file fix_operators.h.
fixvec * int
Definition at line 83 of file fix_operators.h.
int * fixvec
Definition at line 85 of file fix_operators.h.
fixvec / int using quantization mode TRN
Definition at line 87 of file fix_operators.h.
fixmat + int
Definition at line 90 of file fix_operators.h.
int + fixmat
Definition at line 92 of file fix_operators.h.
fixmat - int
Definition at line 94 of file fix_operators.h.
int - fixmat
Definition at line 96 of file fix_operators.h.
fixmat * int
Definition at line 98 of file fix_operators.h.
int * fixmat
Definition at line 100 of file fix_operators.h.
fixmat / int using quantization mode TRN
Definition at line 102 of file fix_operators.h.
fixvec + ivec
Definition at line 125 of file fix_operators.cpp.
References it_assert_debug, and itpp::Vec< Num_T >::size().
ivec + fixvec
Definition at line 107 of file fix_operators.h.
fixvec - ivec
Definition at line 109 of file fix_operators.h.
ivec - fixvec
Definition at line 111 of file fix_operators.h.
fixvec * ivec
Definition at line 135 of file fix_operators.cpp.
References it_assert_debug, and itpp::Vec< Num_T >::size().
ivec * fixvec
Definition at line 115 of file fix_operators.h.
fixmat + imat
Definition at line 145 of file fix_operators.cpp.
References itpp::Mat< Num_T >::cols(), it_assert_debug, and itpp::Mat< Num_T >::rows().
imat + fixmat
Definition at line 120 of file fix_operators.h.
fixmat - imat
Definition at line 122 of file fix_operators.h.
imat - fixmat
Definition at line 124 of file fix_operators.h.
fixmat * imat
Definition at line 158 of file fix_operators.cpp.
References itpp::Mat< Num_T >::_data(), itpp::Mat< Num_T >::cols(), it_assert_debug, and itpp::Mat< Num_T >::rows().
imat * fixmat
Definition at line 128 of file fix_operators.h.
Definition at line 189 of file fix_operators.cpp.
References itpp::assert_shifts(), itpp::CFix::get_im(), and itpp::CFix::get_re().
Definition at line 197 of file fix_operators.cpp.
References itpp::assert_shifts(), itpp::CFix::get_im(), and itpp::CFix::get_re().
Definition at line 205 of file fix_operators.cpp.
References itpp::CFix::get_im(), itpp::CFix::get_re(), and itpp::Fix_Base::get_shift().
CFix / CFix using quantization mode TRN
.
Definition at line 213 of file fix_operators.cpp.
References itpp::CFix::get_im(), itpp::CFix::get_re(), and itpp::Fix_Base::get_shift().
Definition at line 222 of file fix_operators.cpp.
References itpp::assert_shifts(), itpp::CFix::get_im(), itpp::CFix::get_re(), and itpp::Fix::get_re().
Definition at line 230 of file fix_operators.cpp.
References itpp::assert_shifts(), itpp::CFix::get_im(), itpp::CFix::get_re(), and itpp::Fix::get_re().
Definition at line 238 of file fix_operators.cpp.
References itpp::CFix::get_im(), itpp::CFix::get_re(), itpp::Fix::get_re(), and itpp::Fix_Base::get_shift().
CFix / Fix using quantization mode TRN
.
Definition at line 246 of file fix_operators.cpp.
References itpp::CFix::get_im(), itpp::CFix::get_re(), itpp::Fix::get_re(), and itpp::Fix_Base::get_shift().
Definition at line 254 of file fix_operators.cpp.
References itpp::assert_shifts(), itpp::CFix::get_im(), itpp::CFix::get_re(), and itpp::Fix::get_re().
Definition at line 262 of file fix_operators.cpp.
References itpp::assert_shifts(), itpp::CFix::get_im(), itpp::CFix::get_re(), and itpp::Fix::get_re().
Definition at line 270 of file fix_operators.cpp.
References itpp::CFix::get_im(), itpp::CFix::get_re(), itpp::Fix::get_re(), and itpp::Fix_Base::get_shift().
Fix / CFix using quantization mode TRN
.
Definition at line 278 of file fix_operators.cpp.
References itpp::CFix::get_im(), itpp::CFix::get_re(), itpp::Fix::get_re(), and itpp::Fix_Base::get_shift().
CFix + int.
Definition at line 287 of file fix_operators.cpp.
References itpp::assert_shifts(), itpp::CFix::get_im(), and itpp::CFix::get_re().
CFix - int.
Definition at line 295 of file fix_operators.cpp.
References itpp::assert_shifts(), itpp::CFix::get_im(), and itpp::CFix::get_re().
CFix * int.
Definition at line 303 of file fix_operators.cpp.
References itpp::CFix::get_im(), itpp::CFix::get_re(), and itpp::Fix_Base::get_shift().
CFix / int using quantization mode TRN
.
Definition at line 311 of file fix_operators.cpp.
References itpp::CFix::get_im(), itpp::CFix::get_re(), and itpp::Fix_Base::get_shift().
int + CFix
Definition at line 319 of file fix_operators.cpp.
References itpp::assert_shifts(), itpp::CFix::get_im(), and itpp::CFix::get_re().
int - CFix
Definition at line 327 of file fix_operators.cpp.
References itpp::assert_shifts(), itpp::CFix::get_im(), and itpp::CFix::get_re().
int * CFix
Definition at line 335 of file fix_operators.cpp.
References itpp::CFix::get_im(), itpp::CFix::get_re(), and itpp::Fix_Base::get_shift().
int / CFix using quantization mode TRN
Definition at line 343 of file fix_operators.cpp.
References itpp::CFix::get_im(), itpp::CFix::get_re(), and itpp::Fix_Base::get_shift().
fixvec / CFix using quantization mode TRN
Definition at line 190 of file fix_operators.h.
References itpp::to< CFix >().
fixmat / CFix using quantization mode TRN
Definition at line 205 of file fix_operators.h.
References itpp::to< CFix >().
ivec + CFix
Definition at line 208 of file fix_operators.h.
References itpp::to< CFix >(), and itpp::to_vec().
CFix + ivec.
Definition at line 210 of file fix_operators.h.
References itpp::to< CFix >(), and itpp::to_vec().
ivec - CFix
Definition at line 212 of file fix_operators.h.
References itpp::to< CFix >(), and itpp::to_vec().
CFix - ivec.
Definition at line 214 of file fix_operators.h.
References itpp::to< CFix >(), and itpp::to_vec().
ivec * CFix
Definition at line 216 of file fix_operators.h.
References itpp::to< CFix >(), and itpp::to_vec().
CFix * ivec.
Definition at line 218 of file fix_operators.h.
References itpp::to< CFix >(), and itpp::to_vec().
ivec / CFix using quantization mode TRN
Definition at line 220 of file fix_operators.h.
References itpp::to< CFix >(), and itpp::to_vec().
imat + CFix
Definition at line 223 of file fix_operators.h.
References itpp::to< CFix >(), and itpp::to_mat().
CFix + imat.
Definition at line 225 of file fix_operators.h.
References itpp::to< CFix >(), and itpp::to_mat().
imat - CFix
Definition at line 227 of file fix_operators.h.
References itpp::to< CFix >(), and itpp::to_mat().
CFix - imat.
Definition at line 229 of file fix_operators.h.
References itpp::to< CFix >(), and itpp::to_mat().
imat * CFix
Definition at line 231 of file fix_operators.h.
References itpp::to< CFix >(), and itpp::to_mat().
CFix * imat.
Definition at line 233 of file fix_operators.h.
References itpp::to< CFix >(), and itpp::to_mat().
imat / CFix using quantization mode TRN
Definition at line 235 of file fix_operators.h.
References itpp::to< CFix >(), and itpp::to_mat().
cfixvec + Fix
Definition at line 238 of file fix_operators.h.
Fix + cfixvec.
Definition at line 240 of file fix_operators.h.
cfixvec - Fix
Definition at line 242 of file fix_operators.h.
Fix - cfixvec.
Definition at line 244 of file fix_operators.h.
cfixvec * Fix
Definition at line 246 of file fix_operators.h.
Fix * cfixvec.
Definition at line 248 of file fix_operators.h.
cfixvec / Fix using quantization mode TRN
Definition at line 250 of file fix_operators.h.
cfixmat + Fix
Definition at line 253 of file fix_operators.h.
Fix + cfixmat.
Definition at line 255 of file fix_operators.h.
cfixmat - Fix
Definition at line 257 of file fix_operators.h.
Fix - cfixmat.
Definition at line 259 of file fix_operators.h.
cfixmat * Fix
Definition at line 261 of file fix_operators.h.
Fix * cfixmat.
Definition at line 263 of file fix_operators.h.
cfixmat / Fix using quantization mode TRN
Definition at line 265 of file fix_operators.h.
cfixvec + int
Definition at line 268 of file fix_operators.h.
int + cfixvec
Definition at line 270 of file fix_operators.h.
cfixvec - int
Definition at line 272 of file fix_operators.h.
int - cfixvec
Definition at line 274 of file fix_operators.h.
cfixvec * int
Definition at line 276 of file fix_operators.h.
int * cfixvec
Definition at line 278 of file fix_operators.h.
cfixvec / int using quantization mode TRN
Definition at line 280 of file fix_operators.h.
cfixmat + int
Definition at line 283 of file fix_operators.h.
int + cfixmat
Definition at line 285 of file fix_operators.h.
cfixmat - int
Definition at line 287 of file fix_operators.h.
int - cfixmat
Definition at line 289 of file fix_operators.h.
cfixmat * int
Definition at line 291 of file fix_operators.h.
int * cfixmat
Definition at line 293 of file fix_operators.h.
cfixmat / int using quantization mode TRN
Definition at line 295 of file fix_operators.h.
cfixvec + fixvec
Definition at line 352 of file fix_operators.cpp.
References it_assert_debug, and itpp::Vec< Num_T >::size().
fixvec + cfixvec
Definition at line 300 of file fix_operators.h.
cfixvec - fixvec
Definition at line 302 of file fix_operators.h.
fixvec - cfixvec
Definition at line 304 of file fix_operators.h.
cfixvec * fixvec
Definition at line 362 of file fix_operators.cpp.
References it_assert_debug, and itpp::Vec< Num_T >::size().
fixvec * cfixvec
Definition at line 308 of file fix_operators.h.
cfixmat + fixmat
Definition at line 372 of file fix_operators.cpp.
References itpp::Mat< Num_T >::cols(), it_assert_debug, and itpp::Mat< Num_T >::rows().
fixmat + cfixmat
Definition at line 313 of file fix_operators.h.
cfixmat - fixmat
Definition at line 315 of file fix_operators.h.
fixmat - cfixmat
Definition at line 317 of file fix_operators.h.
cfixmat * fixmat
Definition at line 385 of file fix_operators.cpp.
References itpp::Mat< Num_T >::_data(), itpp::Mat< Num_T >::cols(), it_assert_debug, and itpp::Mat< Num_T >::rows().
fixmat * cfixmat
Definition at line 321 of file fix_operators.h.
cfixvec + ivec
Definition at line 412 of file fix_operators.cpp.
References it_assert_debug, and itpp::Vec< Num_T >::size().
ivec + cfixvec
Definition at line 326 of file fix_operators.h.
cfixvec - ivec
Definition at line 328 of file fix_operators.h.
ivec - cfixvec
Definition at line 330 of file fix_operators.h.
cfixvec * ivec
Definition at line 422 of file fix_operators.cpp.
References it_assert_debug, and itpp::Vec< Num_T >::size().
ivec * cfixvec
Definition at line 334 of file fix_operators.h.
cfixmat + imat
Definition at line 432 of file fix_operators.cpp.
References itpp::Mat< Num_T >::cols(), it_assert_debug, and itpp::Mat< Num_T >::rows().
imat + cfixmat
Definition at line 339 of file fix_operators.h.
cfixmat - imat
Definition at line 341 of file fix_operators.h.
imat - cfixmat
Definition at line 343 of file fix_operators.h.
cfixmat * imat
Definition at line 445 of file fix_operators.cpp.
References itpp::Mat< Num_T >::_data(), itpp::Mat< Num_T >::cols(), it_assert_debug, and itpp::Mat< Num_T >::rows().
imat * cfixmat
Definition at line 347 of file fix_operators.h.
|
inline |
Set the vector equal to the values in the str
string.
Definition at line 814 of file vec.h.
Referenced by itpp::set_fix(), itpp::set_fix(), itpp::set_fix(), itpp::set_fix(), itpp::set_fix(), itpp::set_fix(), itpp::Vec< Num_T >::Vec(), and itpp::Vec< Num_T >::Vec().
|
inline |
const int itpp::MAX_WORDLEN = 64 |
Max word length.
Definition at line 886 of file fix_base.h.
Referenced by itpp::Fix_Base::Fix_Base(), and itpp::Fix_Base::init().
const uint64_t itpp::UINT64_POW2[64] |
Table for fast multiplication or division by 2^n.
Definition at line 889 of file fix_base.h.
Referenced by itpp::Fix_Base::init().
const double itpp::DOUBLE_POW2[128] |
Table for fast multiplication by 2^(n-64)
Definition at line 906 of file fix_base.h.
Referenced by itpp::Fix::operator double(), itpp::CFix::operator std::complex< double >(), itpp::Fix_Base::scale_and_apply_modes(), itpp::CFix::unfix(), and itpp::Fix::unfix().
Generated on Tue Aug 17 2021 10:59:15 for IT++ by Doxygen 1.12.0