/** * C++ version of gsl_eigen_gen(). * Computes the eigenvalues of A and stores them (unordered) in eval. * The diagonal and lower triangle of A are altered. The workspace should have size * @c n, where @c A has @c n rows and columns. * @param A A matrix (should be square) * @param B A matrix (should be square) * @param alpha This is where the eigenvalues are stored * @param beta This is where the eigenvalues are stored * @param w A workspace * @return Error code on failure */ inline int gen( gsl::matrix& A, gsl::matrix& B, gsl::vector_complex& alpha, gsl::vector& beta, gen_workspace& w ){ return gsl_eigen_gen( A.get(), B.get(), alpha.get(), beta.get(), w.get() ); }
/** * C++ version of gsl_eigen_genv_QZ(). * Computes the eigenvalues of A and stores them (unordered) in eval. * The diagonal and lower triangle of A are altered. The workspace should have size * @c n, where @c A has @c n rows and columns. * @param A A matrix (should be square) * @param B A matrix (should be square) * @param alpha This is where the eigenvalues are stored * @param beta This is where the eigenvalues are stored * @param evec This is where the eigenvectors are stored * @param Q A matrix (should be square) * @param Z A matrix (should be square) * @param w A workspace * @return Error code on failure */ inline int genv_QZ( gsl::matrix& A, gsl::matrix& B, gsl::vector_complex& alpha, gsl::vector& beta, gsl::matrix_complex& evec, gsl::matrix& Q, gsl::matrix& Z, genv_workspace& w ){ return gsl_eigen_genv_QZ( A.get(), B.get(), alpha.get(), beta.get(), evec.get(), Q.get(), Z.get(), w.get() ); }
/** * C++ version of gsl_permute_vector_inverse(). * @param p A permutation * @param v A vector * @return Error code on failure */ inline int vector_inverse( permutation const& p, gsl::vector& v ){ return gsl_permute_vector_inverse( p.get(), v.get() ); }