Schur decomposition of a general square matrix (LAPACK ?gees). More...
Go to the source code of this file.
Classes | |
| struct | belfem::lapack::gees_select< T > |
| struct | belfem::lapack::gees_select< std::complex< R > > |
Namespaces | |
| namespace | belfem |
| USER GUIDES: | |
| namespace | belfem::lapack |
Typedefs | |
| typedef int_t(*) | belfem::lapack::sgees_select_t(const float *, const float *) |
| typedef int_t(*) | belfem::lapack::dgees_select_t(const double *, const double *) |
| typedef int_t(*) | belfem::lapack::cgees_select_t(const cplx_float_t *) |
| typedef int_t(*) | belfem::lapack::zgees_select_t(const cplx_double_t *) |
| template<typename T> | |
| using | belfem::lapack::gees_select_t = typename gees_select< T >::type |
Functions | |
| void | belfem::lapack::sgees_ (char *jobvs, char *sort, sgees_select_t select, int_t *n, float *a, int_t *lda, int_t *sdim, float *wr, float *wi, float *vs, int_t *ldvs, float *work, int_t *lwork, int_t *bwork, int_t *info, fortran_charlen_t lj, fortran_charlen_t ls) |
| void | belfem::lapack::dgees_ (char *jobvs, char *sort, dgees_select_t select, int_t *n, double *a, int_t *lda, int_t *sdim, double *wr, double *wi, double *vs, int_t *ldvs, double *work, int_t *lwork, int_t *bwork, int_t *info, fortran_charlen_t lj, fortran_charlen_t ls) |
| void | belfem::lapack::cgees_ (char *jobvs, char *sort, cgees_select_t select, int_t *n, cplx_float_t *a, int_t *lda, int_t *sdim, cplx_float_t *w, cplx_float_t *vs, int_t *ldvs, cplx_float_t *work, int_t *lwork, float *rwork, int_t *bwork, int_t *info, fortran_charlen_t lj, fortran_charlen_t ls) |
| void | belfem::lapack::zgees_ (char *jobvs, char *sort, zgees_select_t select, int_t *n, cplx_double_t *a, int_t *lda, int_t *sdim, cplx_double_t *w, cplx_double_t *vs, int_t *ldvs, cplx_double_t *work, int_t *lwork, double *rwork, int_t *bwork, int_t *info, fortran_charlen_t lj, fortran_charlen_t ls) |
| template<typename T> | |
| void | belfem::lapack::gees (const char *jobvs, const char *sort, gees_select_t< T > select, const int_t *n, T *a, const int_t *lda, int_t *sdim, cplx_t< T > *w, T *vs, const int_t *ldvs, T *work, const int_t *lwork, real_t< T > *rwork, int_t *bwork, int_t *info) |
| template<> | |
| void | belfem::lapack::gees (const char *jobvs, const char *sort, sgees_select_t select, const int_t *n, float *a, const int_t *lda, int_t *sdim, std::complex< float > *w, float *vs, const int_t *ldvs, float *work, const int_t *lwork, float *rwork, int_t *bwork, int_t *info) |
| template<> | |
| void | belfem::lapack::gees (const char *jobvs, const char *sort, dgees_select_t select, const int_t *n, double *a, const int_t *lda, int_t *sdim, std::complex< double > *w, double *vs, const int_t *ldvs, double *work, const int_t *lwork, double *rwork, int_t *bwork, int_t *info) |
| template<> | |
| void | belfem::lapack::gees (const char *jobvs, const char *sort, gees_select_t< std::complex< float > > select, const int_t *n, std::complex< float > *a, const int_t *lda, int_t *sdim, std::complex< float > *w, std::complex< float > *vs, const int_t *ldvs, std::complex< float > *work, const int_t *lwork, float *rwork, int_t *bwork, int_t *info) |
| template<> | |
| void | belfem::lapack::gees (const char *jobvs, const char *sort, gees_select_t< std::complex< double > > select, const int_t *n, std::complex< double > *a, const int_t *lda, int_t *sdim, std::complex< double > *w, std::complex< double > *vs, const int_t *ldvs, std::complex< double > *work, const int_t *lwork, double *rwork, int_t *bwork, int_t *info) |
| template<typename T> | |
| int_t | belfem::gees (Matrix< T > &A, Vector< lapack::cplx_t< T > > &W, Matrix< T > &VS, Vector< lapack::real_t< T > > &Work, Vector< int_t > &BWork, lapack::gees_select_t< T > select=nullptr, const char jobvs='V', const char sort='N', int_t *aSdim=nullptr, const bool AbortOnError=true) |
| Schur decomposition of a general square matrix via LAPACK ?gees: A = Z * T * Z^T for the real flavors, A = Z * T * Z^H for the complex ones. | |
Schur decomposition of a general square matrix (LAPACK ?gees).
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.