Functions on vectors and matrices. More...
Functions | |
| template<class T > | |
| int | itpp::length (const Vec< T > &v) |
| Length of vector. | |
| template<class T > | |
| int | itpp::size (const Vec< T > &v) |
| Length of vector. | |
| template<class T > | |
| T | itpp::sum (const Vec< T > &v) |
| Sum of all elements in the vector. | |
| template<class T > | |
| Vec< T > | itpp::sum (const Mat< T > &m, int dim=1) |
Sum of elements in the matrix m, either along columns or rows. | |
| template<class T > | |
| T | itpp::sumsum (const Mat< T > &X) |
| Sum of all elements in the given matrix. Fast version of sum(sum(X)) | |
| template<class T > | |
| T | itpp::sum_sqr (const Vec< T > &v) |
| Sum of square of the elements in a vector. | |
| template<class T > | |
| Vec< T > | itpp::sum_sqr (const Mat< T > &m, int dim=1) |
Sum of the square of elements in the matrix m. | |
| template<class T > | |
| Vec< T > | itpp::cumsum (const Vec< T > &v) |
| Cumulative sum of all elements in the vector. | |
| template<class T > | |
| Mat< T > | itpp::cumsum (const Mat< T > &m, int dim=1) |
Cumulative sum of elements in the matrix m. | |
| template<class T > | |
| T | itpp::prod (const Vec< T > &v) |
| The product of all elements in the vector. | |
| template<class T > | |
| Vec< T > | itpp::prod (const Mat< T > &m, int dim=1) |
Product of elements in the matrix m. | |
| template<class T > | |
| Vec< T > | itpp::cross (const Vec< T > &v1, const Vec< T > &v2) |
| Vector cross product. Vectors need to be of size 3. | |
| template<class T > | |
| Vec< T > | itpp::zero_pad (const Vec< T > &v, int n) |
| Zero-pad a vector to size n. | |
| template<class T > | |
| Vec< T > | itpp::zero_pad (const Vec< T > &v) |
| Zero-pad a vector to the nearest greater power of two. | |
| template<class T > | |
| Mat< T > | itpp::zero_pad (const Mat< T > &m, int rows, int cols) |
| Zero-pad a matrix to size rows x cols. | |
| template<class T > | |
| T | itpp::index_zero_pad (const Vec< T > &v, const int index) |
| template<class T > | |
| void | itpp::transpose (const Mat< T > &m, Mat< T > &out) |
Transposition of the matrix m returning the transposed matrix in out. | |
| template<class T > | |
| Mat< T > | itpp::transpose (const Mat< T > &m) |
Transposition of the matrix m. | |
| template<class T > | |
| void | itpp::hermitian_transpose (const Mat< T > &m, Mat< T > &out) |
| template<class T > | |
| Mat< T > | itpp::hermitian_transpose (const Mat< T > &m) |
Hermitian transpose (complex conjugate transpose) of the matrix m. | |
| template<class Num_T > | |
| bool | itpp::is_hermitian (const Mat< Num_T > &X) |
Returns true if matrix X is hermitian, false otherwise. | |
| template<class Num_T > | |
| bool | itpp::is_unitary (const Mat< Num_T > &X) |
Returns true if matrix X is unitary, false otherwise. | |
| template<class Num_T > | |
| Mat< Num_T > | itpp::kron (const Mat< Num_T > &X, const Mat< Num_T > &Y) |
| Computes the Kronecker product of two matrices. | |
| ITPP_EXPORT cmat | itpp::sqrtm (const cmat &A) |
Square root of the complex square matrix A. | |
| ITPP_EXPORT cmat | itpp::sqrtm (const mat &A) |
Square root of the real square matrix A. | |
| template<class T > | |
| int | itpp::rank (const Mat< T > &m, double tol=-1.0) |
Calculate the rank of matrix m. | |
| template<> | |
| int | itpp::rank (const imat &m, double tol) |
| Specialisation of rank() function. | |
| template<> | |
| int | itpp::rank (const smat &m, double tol) |
| Specialisation of rank() function. | |
| template<> | |
| int | itpp::rank (const bmat &, double) |
| Specialisation of rank() function. | |
| template<class T > | |
| Vec< T > | repmat (const Vec< T > &v, int n) |
Creates a vector with n copies of the vector v. | |
| template<class T > | |
| Mat< T > | repmat (const Mat< T > &data, int m, int n) |
Creates a matrix with m by n copies of the matrix data. | |
| template<class T > | |
| Mat< T > | repmat (const Vec< T > &v, int m, int n, bool transpose=false) |
Returns a matrix with m by n copies of the vector data. | |
Functions on vectors and matrices.
| int itpp::length | ( | const Vec< T > & | v | ) |
Length of vector.
Definition at line 51 of file matfunc.h.
References itpp::Vec< Num_T >::length().
Referenced by itpp::BCH::BCH(), itpp::LDPC_Parity::check_connectivity(), itpp::LDPC_Parity::check_for_cycles(), itpp::LDPC_Parity_Unstructured::compute_CR(), itpp::LDPC_Generator_Systematic::construct(), itpp::LDPC_Parity_Unstructured::cycle_removal_MGW(), itpp::Hamming_Code::decode(), itpp::LDPC_Code::decoder_parameterization(), itpp::Modulator_NCD::demodulate_soft_bits(), itpp::Modulator_NRD::demodulate_soft_bits(), itpp::LDPC_Parity::display_stats(), itpp::Hamming_Code::encode(), itpp::Rec_Syst_Conv_Code::encode(), itpp::Rec_Syst_Conv_Code::encode_tail(), itpp::fir1(), itpp::LDPC_Parity_Unstructured::generate_random_H(), itpp::Multilateration::get_crlb(), itpp::GF2mat::GF2mat(), itpp::GF2mat::GF2mat(), itpp::Rec_Syst_Conv_Code::log_decode(), itpp::Rec_Syst_Conv_Code::log_decode_n2(), itpp::Modulator_NCD::modulate_bits(), itpp::Modulator_NRD::modulate_bits(), itpp::BSC::operator()(), itpp::GF2mat::permute_cols(), itpp::GF2mat::permute_rows(), itpp::Modulator_ND::probabilities(), itpp::Convolutional_Code::reverse_int(), itpp::GF2mat::set_col(), itpp::ND_UPAM::set_M(), itpp::ND_UPSK::set_M(), itpp::ND_UQAM::set_M(), itpp::GF2mat::set_row(), itpp::Convolutional_Code::set_truncation_length(), itpp::ND_UPAM::sphere_decoding(), itpp::GF2mat::T_fact_update_addcol(), itpp::LLR_calc_unit::to_double(), itpp::LLR_calc_unit::to_qllr(), itpp::waterfilling(), itpp::Convolutional_Code::weight_int(), and itpp::zigzag_space().
| int itpp::size | ( | const Vec< T > & | v | ) |
Length of vector.
Definition at line 55 of file matfunc.h.
References itpp::Vec< Num_T >::length().
Referenced by itpp::Vec< Num_T >::alloc(), itpp::Ccvec2mxArray(), itpp::MOG_generic::check_array_uniformity(), itpp::Civec2mxArray(), itpp::Csvec2mxArray(), itpp::Cvec2mxArray(), itpp::eye(), itpp::hadamard(), itpp::impulse(), itpp::it_ifile::low_level_read(), itpp::it_ifile::low_level_read(), itpp::it_ifile::low_level_read(), itpp::it_ifile::low_level_read(), itpp::it_ifile::low_level_read(), itpp::it_ifile::low_level_read(), itpp::it_ifile::low_level_read(), itpp::it_ifile::low_level_read(), itpp::it_ifile::low_level_read(), itpp::it_ifile::low_level_read_hi(), itpp::it_ifile::low_level_read_hi(), itpp::it_ifile::low_level_read_hi(), itpp::it_ifile::low_level_read_hi(), itpp::it_ifile::low_level_read_lo(), itpp::it_ifile::low_level_read_lo(), itpp::it_ifile::low_level_read_lo(), itpp::it_ifile::low_level_read_lo(), itpp::it_file_old::low_level_write(), itpp::Vector_Quantizer::modify_codevector(), itpp::mxArray2bin(), itpp::mxArray2bvec(), itpp::mxArray2Ccvec(), itpp::mxArray2Civec(), itpp::mxArray2Csvec(), itpp::mxArray2Cvec(), itpp::mxArray2cvec(), itpp::mxArray2double(), itpp::mxArray2double_complex(), itpp::mxArray2int(), itpp::mxArray2ivec(), itpp::mxArray2short(), itpp::mxArray2svec(), itpp::mxArray2vec(), itpp::Vec< Num_T >::operator()(), itpp::Vec< Num_T >::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>>(), orth(), itpp::it_file::pack(), pcamat(), itpp::Scalar_Quantizer::Q(), itpp::randb(), itpp::randb(), itpp::randexp(), itpp::randi(), itpp::randn(), itpp::randn(), itpp::randn_c(), itpp::randn_c(), itpp::randray(), itpp::randrice(), itpp::randu(), itpp::randu(), itpp::RNG_get_state(), itpp::RNG_set_state(), itpp::Bernoulli_RNG::sample_vector(), itpp::Complex_Normal_RNG::sample_vector(), itpp::Normal_RNG::sample_vector(), itpp::Uniform_RNG::sample_vector(), selcol(), itpp::MOG_generic::set_diag_covs_internal(), itpp::MOG_generic::set_means_internal(), itpp::Array< T >::set_size(), itpp::GF::set_size(), itpp::Vec< Num_T >::set_size(), itpp::it_file::write_data_header(), itpp::it_file::write_data_header(), itpp::it_file_old::write_data_header(), and itpp::it_file_old::write_data_header().
| T itpp::sum | ( | const Vec< T > & | v | ) |
Sum of all elements in the vector.
Definition at line 59 of file matfunc.h.
References itpp::Vec< Num_T >::length().
Referenced by itpp::Channel_Specification::calc_mean_excess_delay(), itpp::Channel_Specification::calc_rms_delay_spread(), itpp::cerf_rybicki(), itpp::cerf_series(), itpp::LDPC_Parity_Unstructured::compute_CR(), itpp::Modulator_NCD::demodulate_soft_bits(), itpp::Modulator_NCD::demodulate_soft_bits(), itpp::Modulator_NRD::demodulate_soft_bits(), itpp::Modulator_NRD::demodulate_soft_bits(), itpp::LDPC_Parity::display_stats(), itpp::BERC::estimate_delay(), itpp::EXIT::extrinsic_mutual_info(), itpp::fir1(), fpica(), itpp::LDPC_Parity_Regular::generate(), itpp::Rice_Fading_Generator::generate(), itpp::LDPC_Parity_Unstructured::generate_random_H(), itpp::Multilateration::get_crlb(), itpp::house(), itpp::Modulator_NCD::init_soft_demodulator(), itpp::Modulator_NRD::init_soft_demodulator(), itpp::MOG_diag::lhood_internal(), itpp::MOG_generic::lhood_internal(), itpp::MOG_diag::log_lhood_internal(), itpp::MOG_generic::log_lhood_internal(), itpp::mean(), itpp::mean(), itpp::mean(), itpp::mean(), itpp::mean(), itpp::mean(), itpp::mean(), itpp::mean(), itpp::MOG_diag_EM_sup::ml_update_params(), itpp::Modulator_NCD::modulate_bits(), itpp::Modulator_NRD::modulate_bits(), itpp::norm(), itpp::norm(), itpp::quad(), itpp::MOG_generic::setup_weights(), itpp::ND_UPAM::sphere_decoding(), itpp::Sparse_Vec< T >::sqr(), itpp::sum(), sumcol(), itpp::trace(), itpp::variance(), itpp::variance(), and itpp::xcorr().
Sum of elements in the matrix m, either along columns or rows.
sum(m) = sum(m, 1) returns a vector where the elements are sum over each column, whereas sum(m, 2) returns a vector where the elements are sum over each row.
Definition at line 77 of file matfunc.h.
References itpp::Mat< Num_T >::cols(), itpp::Mat< Num_T >::get_col(), itpp::Mat< Num_T >::get_row(), it_assert, itpp::Mat< Num_T >::rows(), itpp::Vec< Num_T >::set_size(), and itpp::sum().
| T itpp::sumsum | ( | const Mat< T > & | X | ) |
Sum of all elements in the given matrix. Fast version of sum(sum(X))
Definition at line 101 of file matfunc.h.
References itpp::Mat< Num_T >::_data(), and itpp::Mat< Num_T >::_datasize().
| T itpp::sum_sqr | ( | const Vec< T > & | v | ) |
Sum of square of the elements in a vector.
Definition at line 116 of file matfunc.h.
References itpp::Vec< Num_T >::length().
Referenced by itpp::TDL_Channel::calc_mean_excess_delay(), itpp::TDL_Channel::calc_rms_delay_spread(), itpp::Multilateration::get_crlb(), and itpp::sum_sqr().
Sum of the square of elements in the matrix m.
sum(m) = sum(m, 1) returns a vector where the elements are sum squared over each column, whereas sum(m, 2) returns a vector where the elements are sum squared over each row
Definition at line 134 of file matfunc.h.
References itpp::Mat< Num_T >::cols(), itpp::Mat< Num_T >::get_col(), itpp::Mat< Num_T >::get_row(), it_assert, itpp::Mat< Num_T >::rows(), itpp::Vec< Num_T >::set_size(), and itpp::sum_sqr().
Cumulative sum of all elements in the vector.
Definition at line 157 of file matfunc.h.
References itpp::Vec< Num_T >::size().
Referenced by itpp::cumsum(), itpp::Histogram< Num_T >::get_cdf(), itpp::Modulator_NCD::init_soft_demodulator(), and itpp::Modulator_NRD::init_soft_demodulator().
Cumulative sum of elements in the matrix m.
cumsum(m) = cumsum(m, 1) returns a matrix where the elements are sums over each column, whereas cumsum(m, 2) returns a matrix where the elements are sums over each row
Definition at line 176 of file matfunc.h.
References itpp::Mat< Num_T >::cols(), itpp::cumsum(), itpp::Mat< Num_T >::get_col(), itpp::Mat< Num_T >::get_row(), it_assert, itpp::Mat< Num_T >::rows(), itpp::Mat< Num_T >::set_col(), and itpp::Mat< Num_T >::set_row().
| T itpp::prod | ( | const Vec< T > & | v | ) |
The product of all elements in the vector.
Definition at line 195 of file matfunc.h.
References it_assert, and itpp::Vec< Num_T >::size().
Referenced by itpp::fact(), itpp::geometric_mean(), itpp::geometric_mean(), itpp::Modulator_NCD::init_soft_demodulator(), itpp::Modulator_NRD::init_soft_demodulator(), and itpp::prod().
Product of elements in the matrix m.
prod(m) = prod(m, 1) returns a vector where the elements are products over each column, whereas prod(m, 2) returns a vector where the elements are products over each row
Definition at line 214 of file matfunc.h.
References itpp::Mat< Num_T >::cols(), itpp::Mat< Num_T >::get_col(), itpp::Mat< Num_T >::get_row(), it_assert, itpp::prod(), itpp::Mat< Num_T >::rows(), and itpp::Vec< Num_T >::set_size().
Vector cross product. Vectors need to be of size 3.
Definition at line 240 of file matfunc.h.
References it_assert, and itpp::Vec< Num_T >::size().
Zero-pad a vector to size n.
Definition at line 257 of file matfunc.h.
References it_assert, itpp::Vec< Num_T >::set_subvector(), and itpp::Vec< Num_T >::size().
Referenced by itpp::freqz(), itpp::freqz(), itpp::spectrum(), itpp::spectrum(), itpp::xcorr(), and itpp::zero_pad().
Zero-pad a vector to the nearest greater power of two.
Definition at line 270 of file matfunc.h.
References itpp::levels2bits(), itpp::pow2i(), itpp::Vec< Num_T >::size(), and itpp::zero_pad().
Zero-pad a matrix to size rows x cols.
Definition at line 279 of file matfunc.h.
References itpp::Mat< Num_T >::cols(), it_assert, itpp::Mat< Num_T >::rows(), and itpp::Mat< Num_T >::set_submatrix().
| T itpp::index_zero_pad | ( | const Vec< T > & | v, |
| const int | index ) |
Return zero if indexing outside the vector v otherwise return the element index
Definition at line 297 of file matfunc.h.
References itpp::Vec< Num_T >::size().
Referenced by itpp::xcorr_old().
Transposition of the matrix m returning the transposed matrix in out.
Definition at line 308 of file matfunc.h.
References itpp::Mat< Num_T >::T().
Referenced by itpp::LDPC_Generator_Systematic::construct(), itpp::dht2(), itpp::dwht2(), fpica(), itpp::GF2mat_sparse_alist::from_sparse(), itpp::LDPC_Parity::get_H(), mpower(), pcamat(), itpp::Mat< Num_T >::repmat(), itpp::GF2mat_sparse_alist::to_sparse(), and itpp::Sparse_Mat< T >::transpose().
Transposition of the matrix m.
Definition at line 312 of file matfunc.h.
References itpp::Mat< Num_T >::T().
Hermitian transpose (complex conjugate transpose) of the matrix m returning the transposed matrix in out
Definition at line 318 of file matfunc.h.
References itpp::Mat< Num_T >::H().
Hermitian transpose (complex conjugate transpose) of the matrix m.
Definition at line 322 of file matfunc.h.
References itpp::Mat< Num_T >::H().
| bool itpp::is_hermitian | ( | const Mat< Num_T > & | X | ) |
Returns true if matrix X is hermitian, false otherwise.
A square matrix 
![\[
\mathbf{X} = \mathbf{X}^H
\]](form_7.png)
Definition at line 336 of file matfunc.h.
References itpp::Mat< Num_T >::H().
| bool itpp::is_unitary | ( | const Mat< Num_T > & | X | ) |
Returns true if matrix X is unitary, false otherwise.
A square matrix 
![\[
\mathbf{X}^H = \mathbf{X}^{-1}
\]](form_8.png)
Definition at line 355 of file matfunc.h.
References itpp::Mat< Num_T >::H(), and itpp::inv().
Computes the Kronecker product of two matrices.
K = kron(X, Y) returns the Kronecker tensor product of X and Y. The result is a large array formed by taking all possible products between the elements of X and those of Y. If X is (m x n) and Y is (p x q), then kron(X, Y) is (m*p x n*q).
Definition at line 443 of file matfunc.h.
References itpp::Mat< Num_T >::cols(), itpp::Mat< Num_T >::rows(), and itpp::Mat< Num_T >::set_submatrix().
| ITPP_EXPORT cmat itpp::sqrtm | ( | const cmat & | A | ) |
Square root of the complex square matrix A.
This function computes the matrix square root of the complex square matrix A. The implementation is based on the Matlab/Octave sqrtm() function.
Ref: N. J. Higham, "Numerical Analysis Report No. 336", Manchester Centre for Computational Mathematics, Manchester, England, January 1999
| ITPP_EXPORT cmat itpp::sqrtm | ( | const mat & | A | ) |
Square root of the real square matrix A.
This function computes the matrix square root of the real square matrix A. Please note that the returned matrix is complex. The implementation is based on the Matlab/Octave sqrtm() function.
Ref: N. J. Higham, "Numerical Analysis Report No. 336", Manchester Centre for Computational Mathematics, Manchester, England, January 1999
| int itpp::rank | ( | const Mat< T > & | m, |
| double | tol = -1.0 ) |
Calculate the rank of matrix m.
| m | Input matrix |
| tol | Tolerance used for comparing the singular values with zero. If negative, it is automatically determined. |
Definition at line 493 of file matfunc.h.
References itpp::Mat< Num_T >::cols(), itpp::eps, itpp::Mat< Num_T >::rows(), and itpp::svd().
Referenced by itpp::GF2mat::inverse(), itpp::rank(), itpp::rank(), itpp::GF2mat::row_rank(), and itpp::GF2mat::T_fact_update_bitflip().
|
inline |
Specialisation of rank() function.
Definition at line 517 of file matfunc.h.
References itpp::rank(), and itpp::to_mat().
|
inline |
Specialisation of rank() function.
Definition at line 524 of file matfunc.h.
References itpp::rank(), and itpp::to_mat().
|
inline |
Creates a vector with n copies of the vector v.
| v | Vector to be repeated |
| n | Number of times to repeat v |
Definition at line 374 of file matfunc.h.
References it_assert, itpp::Vec< Num_T >::length(), and itpp::Vec< Num_T >::set_subvector().
Creates a matrix with m by n copies of the matrix data.
| data | Matrix to be repeated |
| m | Number of times to repeat data vertically |
| n | Number of times to repeat data horizontally |
Definition at line 397 of file matfunc.h.
References itpp::Mat< Num_T >::cols(), it_assert, itpp::Mat< Num_T >::rows(), and itpp::Mat< Num_T >::set_submatrix().
|
related |
Returns a matrix with m by n copies of the vector data.
| v | Vector to be repeated |
| m | Number of times to repeat data vertically |
| n | Number of times to repeat data horizontally |
| transpose | Specifies the input vector orientation (column vector by default) |
Definition at line 425 of file matfunc.h.
References itpp::Vec< Num_T >::T(), and itpp::transpose().
Generated on Tue Dec 10 2024 04:49:37 for IT++ by Doxygen 1.12.0