npstat is hosted by Hepforge, IPPP Durham
NPStat  5.10.0
lapack_interface.hh File Reference

Template interface to LAPACK (in its original F77 implementation) More...

#include "npstat/nm/GeneralizedComplex.hh"
#include "npstat/nm/lapack_interface.icc"

Go to the source code of this file.

Namespaces

 npstat
 

Functions

template<typename Numeric >
void npstat::invert_posdef_sym_matrix (const Numeric *in, unsigned dim, Numeric *out)
 
template<typename Numeric >
void npstat::invert_sym_matrix (const Numeric *in, unsigned dim, Numeric *out)
 
template<typename Numeric >
void npstat::invert_td_matrix (const Numeric *in, unsigned dim, Numeric *out)
 
template<typename Numeric >
void npstat::invert_general_matrix (const Numeric *in, unsigned dim, Numeric *out)
 
template<typename Numeric >
void npstat::gen_matrix_eigenvalues (const Numeric *in, unsigned dim, typename GeneralizedComplex< Numeric >::type *eigenvalues)
 
template<typename Numeric >
void npstat::sym_matrix_eigenvalues (const Numeric *in, unsigned dim, Numeric *eigenvalues)
 
template<typename Numeric >
void npstat::td_sym_matrix_eigenvalues (const Numeric *in, unsigned dim, Numeric *eigenvalues)
 
template<typename Numeric >
void npstat::sym_matrix_eigenvalues_dc (const Numeric *in, unsigned dim, Numeric *eigenvalues)
 
template<typename Numeric >
void npstat::td_sym_matrix_eigenvalues_dc (const Numeric *in, unsigned dim, Numeric *eigenvalues)
 
template<typename Numeric >
void npstat::sym_matrix_eigenvalues_rrr (const Numeric *in, unsigned dim, Numeric *eigenvalues)
 
template<typename Numeric >
void npstat::td_sym_matrix_eigenvalues_rrr (const Numeric *in, unsigned dim, Numeric *eigenvalues)
 
template<typename Numeric >
void npstat::gen_matrix_eigensystem (const Numeric *in, unsigned dim, typename GeneralizedComplex< Numeric >::type *ev, Numeric *rightEigenvectors, Numeric *leftEigenvectors)
 
template<typename Numeric >
void npstat::sym_matrix_eigensystem (const Numeric *in, unsigned dim, Numeric *eigenvalues, Numeric *eigenvectors)
 
template<typename Numeric >
void npstat::td_sym_matrix_eigensystem (const Numeric *in, unsigned dim, Numeric *eigenvalues, Numeric *eigenvectors)
 
template<typename Numeric >
void npstat::sym_matrix_eigensystem_dc (const Numeric *in, unsigned dim, Numeric *eigenvalues, Numeric *eigenvectors)
 
template<typename Numeric >
void npstat::td_sym_matrix_eigensystem_dc (const Numeric *in, unsigned dim, Numeric *eigenvalues, Numeric *eigenvectors)
 
template<typename Numeric >
void npstat::sym_matrix_eigensystem_rrr (const Numeric *in, unsigned dim, Numeric *eigenvalues, Numeric *eigenvectors)
 
template<typename Numeric >
void npstat::td_sym_matrix_eigensystem_rrr (const Numeric *in, unsigned dim, Numeric *eigenvalues, Numeric *eigenvectors)
 
template<typename Numeric >
bool npstat::solve_linear_system (const Numeric *in, unsigned dim, const Numeric *rhs, Numeric *solution)
 
template<typename Numeric >
bool npstat::solve_linear_systems (const Numeric *in, unsigned nrows, unsigned ncols, const Numeric *rhs, Numeric *solution)
 
template<typename Numeric >
bool npstat::linear_least_squares (const Numeric *mat, unsigned nrows, unsigned ncols, const Numeric *rhs, Numeric *solution)
 
template<typename Numeric >
bool npstat::constrained_least_squares (const Numeric *mat, unsigned nrows, unsigned ncols, const Numeric *rhs, const Numeric *constraintMatrix, unsigned constrRows, unsigned constrCols, const Numeric *constrRhs, Numeric *solution)
 
template<typename Numeric >
bool npstat::gen_matrix_svd (const Numeric *in, unsigned M, unsigned N, Numeric *U, Numeric *singularValues, Numeric *VT)
 
template<typename Numeric >
bool npstat::gen_matrix_svd_dc (const Numeric *in, unsigned M, unsigned N, Numeric *U, Numeric *singularValues, Numeric *VT)
 
int npstat::Private::lapack_nlvl_dgelsd (int dim)
 
int npstat::Private::lapack_nlvl_sgelsd (int dim)
 

Detailed Description

Template interface to LAPACK (in its original F77 implementation)

Typically, generic templates will throw an appropriate exception, while templates specialized for float, double, etc. will perform the requested calculations via corresponding LAPACK routines.

This code is rather low-level. It may be more convenient to use the API provided by the Matrix class which will eventually call appropriate LAPACK interface functions from here.

Author: I. Volobouev

September 2010