BELFEM 0.9.0
Berkeley Lab Finite Element Framework
Loading...
Searching...
No Matches
fn_geev.hpp File Reference

Eigenvalues and eigenvectors of a general square matrix (LAPACK ?geev). More...

#include "assert.hpp"
#include "lapacktools.hpp"
#include "cl_Vector.hpp"
Include dependency graph for fn_geev.hpp:

Go to the source code of this file.

Namespaces

namespace  belfem
 USER GUIDES:
namespace  belfem::lapack

Functions

void belfem::lapack::sgeev_ (char *jobvl, char *jobvr, int_t *n, float *a, int_t *lda, float *wr, float *wi, float *vl, int_t *ldvl, float *vr, int_t *ldvr, float *work, int_t *lwork, int_t *info, fortran_charlen_t lvl, fortran_charlen_t lvr)
void belfem::lapack::dgeev_ (char *jobvl, char *jobvr, int_t *n, double *a, int_t *lda, double *wr, double *wi, double *vl, int_t *ldvl, double *vr, int_t *ldvr, double *work, int_t *lwork, int_t *info, fortran_charlen_t lvl, fortran_charlen_t lvr)
void belfem::lapack::cgeev_ (char *jobvl, char *jobvr, int_t *n, cplx_float_t *a, int_t *lda, cplx_float_t *w, cplx_float_t *vl, int_t *ldvl, cplx_float_t *vr, int_t *ldvr, cplx_float_t *work, int_t *lwork, float *rwork, int_t *info, fortran_charlen_t lvl, fortran_charlen_t lvr)
void belfem::lapack::zgeev_ (char *jobvl, char *jobvr, int_t *n, cplx_double_t *a, int_t *lda, cplx_double_t *w, cplx_double_t *vl, int_t *ldvl, cplx_double_t *vr, int_t *ldvr, cplx_double_t *work, int_t *lwork, double *rwork, int_t *info, fortran_charlen_t lvl, fortran_charlen_t lvr)
template<typename T>
void belfem::lapack::geev (const char *jobvl, const char *jobvr, const int_t *n, T *a, const int_t *lda, cplx_t< T > *w, T *vl, const int_t *ldvl, T *vr, const int_t *ldvr, T *work, const int_t *lwork, real_t< T > *rwork, int_t *info)
template<>
void belfem::lapack::geev (const char *jobvl, const char *jobvr, const int_t *n, float *a, const int_t *lda, std::complex< float > *w, float *vl, const int_t *ldvl, float *vr, const int_t *ldvr, float *work, const int_t *lwork, float *rwork, int_t *info)
template<>
void belfem::lapack::geev (const char *jobvl, const char *jobvr, const int_t *n, double *a, const int_t *lda, std::complex< double > *w, double *vl, const int_t *ldvl, double *vr, const int_t *ldvr, double *work, const int_t *lwork, double *rwork, int_t *info)
template<>
void belfem::lapack::geev (const char *jobvl, const char *jobvr, const int_t *n, std::complex< float > *a, const int_t *lda, std::complex< float > *w, std::complex< float > *vl, const int_t *ldvl, std::complex< float > *vr, const int_t *ldvr, std::complex< float > *work, const int_t *lwork, float *rwork, int_t *info)
template<>
void belfem::lapack::geev (const char *jobvl, const char *jobvr, const int_t *n, std::complex< double > *a, const int_t *lda, std::complex< double > *w, std::complex< double > *vl, const int_t *ldvl, std::complex< double > *vr, const int_t *ldvr, std::complex< double > *work, const int_t *lwork, double *rwork, int_t *info)
template<typename T>
int_t belfem::geev (Matrix< T > &A, Vector< lapack::cplx_t< T > > &W, Matrix< T > &VL, Matrix< T > &VR, Vector< lapack::real_t< T > > &Work, const char jobvl='V', const char jobvr='V', const bool AbortOnError=true)
 eigenvalues and eigenvectors of a general square matrix, A * v = lambda * v, via LAPACK ?geev
template<typename T>
int_t belfem::geev (Matrix< T > &A, Vector< lapack::cplx_t< T > > &W, Vector< lapack::real_t< T > > &Work, const bool AbortOnError=true)
 eigenvalues only of a general square matrix, see the full version above

Detailed Description

Eigenvalues and eigenvectors of a general square matrix (LAPACK ?geev).

Thin wrapper over the Fortran routine: BELFEM containers are passed straight through after their leading dimensions are worked out. Arguments are not copied – see each parameter for what is overwritten in place.