|
TRIQS/nda 2.0.0
Multi-dimensional array library for C++
|
#include "./utils.hpp"#include "../basic_array.hpp"#include "../blas/tools.hpp"#include "../concepts.hpp"#include "../declarations.hpp"#include "../exceptions.hpp"#include "../lapack/geev.hpp"#include "../layout/policies.hpp"#include "../macros.hpp"#include "../matrix_functions.hpp"#include "../mem/address_space.hpp"#include "../traits.hpp"#include <array>#include <cmath>#include <complex>#include <concepts>#include <tuple>#include <type_traits>#include <utility>Provides functions to solve eigenvalue problems for general (non-symmetric) matrices.
Definition in file eig.hpp.
Go to the source code of this file.
Functions | |
| template<Matrix A> requires (mem::have_host_compatible_addr_space<A> and is_blas_lapack_v<get_value_t<A>>) | |
| auto | nda::linalg::eig (A const &a) |
| Compute the eigenvalues and right eigenvectors of a general matrix. | |
| template<blas_lapack::BlasArray< 2 > A> requires (mem::have_host_compatible_addr_space<A> and blas_lapack::has_F_layout<A>) | |
| auto | nda::linalg::eig_in_place (A &&a) |
| Compute the eigenvalues and right eigenvectors of a general matrix in place. | |
| template<Matrix A> requires (mem::have_host_compatible_addr_space<A> and is_blas_lapack_v<get_value_t<A>>) | |
| auto | nda::linalg::eigvals (A const &a) |
| Compute the eigenvalues of a general matrix. | |
| template<blas_lapack::BlasArray< 2 > A> requires (mem::have_host_compatible_addr_space<A> and blas_lapack::has_F_layout<A>) | |
| auto | nda::linalg::eigvals_in_place (A &&a) |
| Compute the eigenvalues of a general matrix in place. | |
| template<Vector WR, Vector WI> requires (mem::have_host_compatible_addr_space<WR, WI> and AnyOf<get_value_t<WR>, float, double> and have_same_value_type_v<WR, WI>) | |
| auto | nda::linalg::get_geev_eigenvalues (const WR &wr, const WI &wi) |
| Get the complex eigenvalues from nda::lapack::geev output for real matrices. | |
| template<Vector A, Vector B> requires (mem::have_host_compatible_addr_space<A, B> and AnyOf<get_value_t<A>, std::complex<float>, std::complex<double>> and have_same_value_type_v<A, B>) | |
| auto | nda::linalg::get_ggev_eigenvalues (const A &alpha, const B &beta) |
| Get the complex eigenvalues from nda::lapack::ggev output for complex matrices. | |
| template<Vector AR, Vector AI, Vector B> requires (mem::have_host_compatible_addr_space<AR, AI, B> and FloatOrDouble<get_value_t<AR>> and have_same_value_type_v<AR, AI, B>) | |
| auto | nda::linalg::get_ggev_eigenvalues (const AR &alphar, const AI &alphai, const B &beta) |
| Get the complex eigenvalues from nda::lapack::ggev output for real matrices. | |
| template<Vector WI, Matrix VA> requires (mem::have_host_compatible_addr_space<WI, VA> and FloatOrDouble<get_value_t<WI>> and have_same_value_type_v<WI, VA>) | |
| auto | nda::linalg::unpack_eigenvectors (const WI &wi, const VA &va) |
| Unpack eigenvectors of real matrices from nda::lapack::geev or nda::lapack::ggev output. | |