IT++ Logo

Diagonal Matrices and Functions
[Base Module]

Functions

template<class T >
Mat< T > itpp::diag (const Vec< T > &v, const int K=0)
 Create a diagonal matrix using vector v as its diagonal.
template<class T >
void itpp::diag (const Vec< T > &v, Mat< T > &m)
 Create a diagonal matrix using vector v as its diagonal.
template<class T >
Vec< T > itpp::diag (const Mat< T > &m)
 Get the diagonal elements of the input matrix m.
template<class T >
Mat< T > itpp::bidiag (const Vec< T > &main, const Vec< T > &sup)
 Returns a matrix with the elements of the input vector main on the diagonal and the elements of the input vector sup on the diagonal row above.
template<class T >
void itpp::bidiag (const Vec< T > &main, const Vec< T > &sup, Mat< T > &m)
 Returns in the output variable m a matrix with the elements of the input vector main on the diagonal and the elements of the input vector sup on the diagonal row above.
template<class T >
void itpp::bidiag (const Mat< T > &m, Vec< T > &main, Vec< T > &sup)
 Returns the main diagonal and the diagonal row above in the two output vectors main and sup.
template<class T >
Mat< T > itpp::tridiag (const Vec< T > &main, const Vec< T > &sup, const Vec< T > &sub)
 Returns a matrix with the elements of main on the diagonal, the elements of sup on the diagonal row above, and the elements of sub on the diagonal row below.
template<class T >
void itpp::tridiag (const Vec< T > &main, const Vec< T > &sup, const Vec< T > &sub, Mat< T > &m)
 Returns in the output matrix m a matrix with the elements of main on the diagonal, the elements of sup on the diagonal row above, and the elements of sub on the diagonal row below.
template<class T >
void itpp::tridiag (const Mat< T > &m, Vec< T > &main, Vec< T > &sup, Vec< T > &sub)
 Returns the main diagonal, the diagonal row above, and the diagonal row below int the output vectors main, sup, and sub.
template<class T >
itpp::trace (const Mat< T > &m)
 The trace of the matrix m, i.e. the sum of the diagonal elements.

Function Documentation

template<class T >
Mat<T> itpp::diag ( const Vec< T > &  v,
const int  K = 0 
) [inline]

Create a diagonal matrix using vector v as its diagonal.

All other matrix elements except the ones on its diagonal are set to zero. An optional parameter K can be used to shift the diagonal in the resulting matrix. By default K is equal to zero.

The size of the diagonal matrix will be $n+|K| \times n+|K|$, where $n$ is the length of the input vector v.

Definition at line 502 of file matfunc.h.

References itpp::abs(), and itpp::Vec< Num_T >::size().

Referenced by itpp::MOG_generic::convert_to_diag_internal(), itpp::MOG_generic::convert_to_full_internal(), fpica(), mpower(), itpp::Fast_ICA::separate(), and itpp::trace().

template<class T >
void itpp::diag ( const Vec< T > &  v,
Mat< T > &  m 
) [inline]

Create a diagonal matrix using vector v as its diagonal.

All other matrix elements except the ones on its diagonal are set to zero.

The size of the diagonal matrix will be $n \times n$, where $n$ is the length of the input vector v.

Definition at line 526 of file matfunc.h.

References itpp::Mat< Num_T >::set_size(), and itpp::Vec< Num_T >::size().

template<class T >
Vec<T> itpp::diag ( const Mat< T > &  m  )  [inline]

Get the diagonal elements of the input matrix m.

The size of the output vector with diagonal elements will be $n = min(r, c)$, where $r \times c$ are the dimensions of matrix m.

Definition at line 542 of file matfunc.h.

References itpp::Mat< Num_T >::cols(), itpp::min(), itpp::Mat< Num_T >::rows(), and itpp::Vec< Num_T >::size().

template<class T >
Mat<T> itpp::bidiag ( const Vec< T > &  main,
const Vec< T > &  sup 
) [inline]

Returns a matrix with the elements of the input vector main on the diagonal and the elements of the input vector sup on the diagonal row above.

If the number of elements in the vector main is $n$, then the number of elements in the input vector sup must be $n-1$. The size of the return matrix will be $n \times n$.

Definition at line 562 of file matfunc.h.

References it_assert, and itpp::Vec< Num_T >::size().

template<class T >
void itpp::bidiag ( const Vec< T > &  main,
const Vec< T > &  sup,
Mat< T > &  m 
) [inline]

Returns in the output variable m a matrix with the elements of the input vector main on the diagonal and the elements of the input vector sup on the diagonal row above.

If the number of elements in the vector main is $n$, then the number of elements in the input vector sup must be $n-1$. The size of the output matrix m will be $n \times n$.

Definition at line 588 of file matfunc.h.

References it_assert, itpp::Mat< Num_T >::set_size(), and itpp::Vec< Num_T >::size().

template<class T >
void itpp::bidiag ( const Mat< T > &  m,
Vec< T > &  main,
Vec< T > &  sup 
) [inline]

Returns the main diagonal and the diagonal row above in the two output vectors main and sup.

The input matrix in must be a square $n \times n$ matrix. The length of the output vector main will be $n$ and the length of the output vector sup will be $n-1$.

Definition at line 611 of file matfunc.h.

References itpp::Mat< Num_T >::cols(), it_assert, itpp::Mat< Num_T >::rows(), and itpp::Vec< Num_T >::set_size().

template<class T >
Mat<T> itpp::tridiag ( const Vec< T > &  main,
const Vec< T > &  sup,
const Vec< T > &  sub 
) [inline]

Returns a matrix with the elements of main on the diagonal, the elements of sup on the diagonal row above, and the elements of sub on the diagonal row below.

If the length of the input vector main is $n$ then the lengths of the vectors sup and sub must equal $n-1$. The size of the return matrix will be $n \times n$.

Definition at line 635 of file matfunc.h.

References it_assert, and itpp::Vec< Num_T >::size().

template<class T >
void itpp::tridiag ( const Vec< T > &  main,
const Vec< T > &  sup,
const Vec< T > &  sub,
Mat< T > &  m 
) [inline]

Returns in the output matrix m a matrix with the elements of main on the diagonal, the elements of sup on the diagonal row above, and the elements of sub on the diagonal row below.

If the length of the input vector main is $n$ then the lengths of the vectors sup and sub must equal $n-1$. The size of the output matrix m will be $n \times n$.

Definition at line 662 of file matfunc.h.

References it_assert, itpp::Mat< Num_T >::set_size(), and itpp::Vec< Num_T >::size().

template<class T >
void itpp::tridiag ( const Mat< T > &  m,
Vec< T > &  main,
Vec< T > &  sup,
Vec< T > &  sub 
) [inline]

Returns the main diagonal, the diagonal row above, and the diagonal row below int the output vectors main, sup, and sub.

The input matrix m must be a square $n \times n$ matrix. The length of the output vector main will be $n$ and the length of the output vectors sup and sup will be $n-1$.

Definition at line 686 of file matfunc.h.

References itpp::Mat< Num_T >::cols(), it_assert, itpp::Mat< Num_T >::rows(), and itpp::Vec< Num_T >::set_size().

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
SourceForge Logo

Generated on Sun Dec 20 07:06:11 2009 for IT++ by Doxygen 1.6.1