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 >
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$.

References itpp::Mat< Num_T >::cols(), it_assert, itpp::Mat< Num_T >::rows(), and itpp::Vec< Num_T >::set_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$.

References it_assert, itpp::Mat< Num_T >::set_size(), 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$.

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

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

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.

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

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.

References itpp::abs(), 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$.

References itpp::Mat< Num_T >::cols(), it_assert, itpp::Mat< Num_T >::rows(), and itpp::Vec< Num_T >::set_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$.

References it_assert, itpp::Mat< Num_T >::set_size(), and itpp::Vec< Num_T >::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$.

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


Generated on Tue Jun 2 10:02:14 2009 for mixpp by  doxygen 1.5.8