11#include <memory_resource>
13#include <nk/value/value.hpp>
26std::tuple<Value, Value>
54std::tuple<Value, Value>
60std::tuple<Value, Value>
61hess(
const Value &A, std::pmr::memory_resource *mr =
nullptr);
69std::tuple<Value, Value>
80std::tuple<Value, Value>
87 std::pmr::memory_resource *mr =
nullptr);
118std::tuple<Value, Value>
Core MATLAB-compatible multidimensional array and scalar value type.
std::tuple< Value, Value > eig_general_VD(const Value &A, std::pmr::memory_resource *mr=nullptr)
General [V, D] eig for real-eigenvalue asymmetric A.
Value ordeig(const Value &T, std::pmr::memory_resource *mr=nullptr)
Eigenvalues from a (quasi-)triangular Schur factor (e = ordeig(T)).
std::tuple< Value, Value > eig_symmetric(const Value &A, std::pmr::memory_resource *mr=nullptr)
Symmetric eigendecomposition ([V, D] = eig(A)).
std::tuple< Value, Value > schur_general(const Value &A, std::pmr::memory_resource *mr=nullptr)
Real Schur decomposition for general (nonsymmetric) A ([U, T] = schur(A)).
std::tuple< Value, Value > hess(const Value &A, std::pmr::memory_resource *mr=nullptr)
Hessenberg reduction ([P, H] = hess(A)).
Value eig_general_values(const Value &A, std::pmr::memory_resource *mr=nullptr)
General (non-symmetric) eigenvalues via characteristic polynomial.
std::tuple< Value, Value > schur_sym(const Value &A, std::pmr::memory_resource *mr=nullptr)
Schur decomposition for symmetric A ([U, T] = schur(A)).
bool isSymmetricApprox(const Value &A, double tol)
Approximate-symmetry test used to pick the symmetric (Jacobi) vs general (char-poly) eig path.
Value polyeig_values(Span< const Value > coeffs, std::pmr::memory_resource *mr=nullptr)
Polynomial eigenvalue problem (e = polyeig(A0, A1, ..., Ak), possibly [V, e]).
Value poly_of_matrix(const Value &A, std::pmr::memory_resource *mr=nullptr)
Characteristic polynomial of a matrix (p = poly(A)).
Value eig_values(const Value &A, std::pmr::memory_resource *mr=nullptr)
Eigenvalues only (e = eig(A) single-output form, symmetric).
std::tuple< Value, Value > polyeig_VE(Span< const Value > coeffs, std::pmr::memory_resource *mr=nullptr)
Polynomial eigenvalue problem, eigenvectors + eigenvalues ([V, e] = polyeig(A0, .....
Value sylvester_sym(const Value &A, const Value &B, const Value &C, std::pmr::memory_resource *mr=nullptr)
Sylvester equation for symmetric A and B (X = sylvester_sym(A, B, C)).
Value hess_H_only(const Value &A, std::pmr::memory_resource *mr=nullptr)
Hessenberg-only output (H = hess(A) single-output form).