4#include "../seq/impl.hpp"
8#if defined(NUMERICS_HAS_LAPACK)
15#if defined(NUMERICS_HAS_LAPACK)
17 throw std::invalid_argument(
"eig_sym: matrix must be square");
21 int info = LAPACKE_dsyevd(LAPACK_ROW_MAJOR,
24 static_cast<lapack_int
>(n),
26 static_cast<lapack_int
>(n),
29 throw std::runtime_error(
"eig_sym (lapack): dsyevd failed, info="
30 + std::to_string(info));
32 return {w, Aw, 0,
true};
Dense row-major matrix with optional GPU storage.
constexpr idx rows() const noexcept
constexpr idx cols() const noexcept
EigenResult eig_sym(const Matrix &A)
EigenResult eig_sym(const Matrix &A, real tol, idx max_sweeps)
std::experimental::simd butterfly for FFT.
Full eigendecomposition result: A = V * diag(values) * V^T.