auxlib Class Reference
[Auxlib]

wrapper for accessing external functions defined in ATLAS, LAPACK or BLAS libraries More...

#include <auxlib_proto.hpp>

List of all members.

Public Member Functions

template<typename T >
void eig_gen (Col< std::complex< T > > &eigval, Mat< T > &l_eigvec, Mat< T > &r_eigvec, const Mat< T > &A, const char side)
 Eigenvalues and eigenvectors of a general square real matrix using LAPACK. The argument 'side' specifies which eigenvectors should be calculated (see code for mode details).

Static Public Member Functions

template<typename eT >
static const eT & tmp_real (const eT &X)
template<typename T >
static const T & tmp_real (const std::complex< T > &X)
template<typename eT >
static void inv_noalias (Mat< eT > &out, const Mat< eT > &X)
 immediate matrix inverse
template<typename eT >
static void inv_inplace (Mat< eT > &X)
 immediate inplace matrix inverse
template<typename eT >
static eT det (const Mat< eT > &X)
 immediate determinant of a matrix using ATLAS or LAPACK
template<typename eT >
static void lu (Mat< eT > &L, Mat< eT > &U, podarray< int > &ipiv, const Mat< eT > &X_orig)
 immediate LU decomposition of a matrix using ATLAS or LAPACK
template<typename eT >
static void lu (Mat< eT > &L, Mat< eT > &U, Mat< eT > &P, const Mat< eT > &X)
template<typename eT >
static void lu (Mat< eT > &L, Mat< eT > &U, const Mat< eT > &X)
template<typename eT >
static void eig_sym (Col< eT > &eigval, const Mat< eT > &A)
 immediate eigenvalues of a symmetric real matrix using LAPACK
template<typename T >
static void eig_sym (Col< T > &eigval, const Mat< std::complex< T > > &A)
 immediate eigenvalues of a hermitian complex matrix using LAPACK
template<typename eT >
static void eig_sym (Col< eT > &eigval, Mat< eT > &eigvec, const Mat< eT > &A)
 immediate eigenvalues and eigenvectors of a symmetric real matrix using LAPACK
template<typename T >
static void eig_sym (Col< T > &eigval, Mat< std::complex< T > > &eigvec, const Mat< std::complex< T > > &A)
 immediate eigenvalues and eigenvectors of a hermitian complex matrix using LAPACK
template<typename eT >
static void eig_gen (Col< std::complex< eT > > &eigval, Mat< eT > &l_eigvec, Mat< eT > &r_eigvec, const Mat< eT > &A, const char side)
template<typename T >
static void eig_gen (Col< std::complex< T > > &eigval, Mat< std::complex< T > > &l_eigvec, Mat< std::complex< T > > &r_eigvec, const Mat< std::complex< T > > &A, const char side)
 Eigenvalues and eigenvectors of a general square complex matrix using LAPACK The argument 'side' specifies which eigenvectors should be calculated (see code for mode details).
template<typename eT >
static bool chol (Mat< eT > &out, const Mat< eT > &X)
template<typename eT >
static bool qr (Mat< eT > &Q, Mat< eT > &R, const Mat< eT > &X)
template<typename eT >
static bool svd (Col< eT > &S, const Mat< eT > &X)
template<typename T >
static bool svd (Col< T > &S, const Mat< std::complex< T > > &X)
template<typename eT >
static bool svd (Mat< eT > &U, Col< eT > &S, Mat< eT > &V, const Mat< eT > &X)
template<typename T >
static bool svd (Mat< std::complex< T > > &U, Col< T > &S, Mat< std::complex< T > > &V, const Mat< std::complex< T > > &X)
template<typename eT >
static bool solve (Mat< eT > &out, const Mat< eT > &A, const Mat< eT > &B)
 Solve a system of linear equations Assumes that A.n_rows = A.n_cols and B.n_rows = A.n_rows.
template<typename eT >
static bool solve_od (Mat< eT > &out, const Mat< eT > &A, const Mat< eT > &B)
 Solve an over-determined system. Assumes that A.n_rows > A.n_cols and B.n_rows = A.n_rows.
template<typename eT >
static bool solve_ud (Mat< eT > &out, const Mat< eT > &A, const Mat< eT > &B)
 Solve an under-determined system. Assumes that A.n_rows < A.n_cols and B.n_rows = A.n_rows.


Detailed Description

wrapper for accessing external functions defined in ATLAS, LAPACK or BLAS libraries

Definition at line 22 of file auxlib_proto.hpp.


Member Function Documentation

template<typename eT >
static const eT& auxlib::tmp_real ( const eT &  X  )  [inline, static]

Definition at line 27 of file auxlib_proto.hpp.

Referenced by inv_inplace(), inv_noalias(), and qr().

00027 { return X; }

template<typename T >
static const T& auxlib::tmp_real ( const std::complex< T > &  X  )  [inline, static]

Definition at line 30 of file auxlib_proto.hpp.

00030 { return X.real(); }

template<typename eT >
static void auxlib::eig_gen ( Col< std::complex< eT > > &  eigval,
Mat< eT > &  l_eigvec,
Mat< eT > &  r_eigvec,
const Mat< eT > &  A,
const char  side 
) [inline, static]

Referenced by eig_gen().