Uni20
Asynchronous tensor and runtime library.
Loading...
Searching...
No Matches
Namespaces | Functions
tridiagonal_eigen.hpp File Reference

LAPACK backend for real symmetric tridiagonal eigensystems. More...

#include <uni20/backend/blas/blas_int.hpp>
#include <uni20/backend/lapack/lapack.hpp>
#include <uni20/common/trace.hpp>
#include <uni20/core/scalar_concepts.hpp>
#include <uni20/linalg/blas/mdspan_matrix.hpp>
#include <uni20/linalg/dispatch.hpp>
#include <uni20/linalg/operation_tags.hpp>
#include <uni20/tensor/access.hpp>
#include <uni20/tensor/concepts.hpp>
#include <algorithm>
#include <concepts>
#include <span>
#include <type_traits>
#include <vector>
Include dependency graph for backends/lapack/tridiagonal_eigen.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  uni20
 
namespace  uni20::linalg
 
namespace  uni20::linalg::lapack_detail
 

Functions

template<uni20::LapackReal Scalar, uni20::MutableRankedStridedMdspecLike< 2 > EigenvectorMdspan>
requires uni20::HostWritableMdspec<EigenvectorMdspan>
consteval auto uni20::linalg::kernel_accepts_types (LapackBackend const &, symmetric_tridiagonal_eigen_op const &, std::span< Scalar > &, std::span< Scalar > &, EigenvectorMdspan &)
 Report eligibility for a host-accessible mdspec tridiagonal eigensystem.
 
template<uni20::LapackReal Scalar, uni20::MutableRankedStridedMdspanLike< 2 > EigenvectorMdspan>
consteval auto uni20::linalg::lapack_detail::tridiagonal_eigen_acceptance ()
 Report compile-time eligibility for resolved LAPACK tridiagonal eigensystem dispatch.
 
template<uni20::LapackReal Scalar, uni20::MutableRankedStridedMdspecLike< 2 > EigenvectorMdspan>
requires uni20::HostWritableMdspec<EigenvectorMdspan>
KernelAttempt uni20::linalg::try_kernel (LapackBackend, symmetric_tridiagonal_eigen_op const &operation, std::span< Scalar > diagonal, std::span< Scalar > subdiagonal, EigenvectorMdspan &eigenvectors)
 Resolve host access and run LAPACK tridiagonal eigenanalysis.
 
template<class Scalar , uni20::MutableRankedStridedMdspanLike< 2 > EigenvectorMdspan>
KernelAttempt uni20::linalg::lapack_detail::try_tridiagonal_eigen (symmetric_tridiagonal_eigen_op const &op, std::span< Scalar > diagonal, std::span< Scalar > subdiagonal, EigenvectorMdspan &eigenvectors)
 Compute a real symmetric tridiagonal eigensystem through sterf or steqr.
 

Detailed Description

LAPACK backend for real symmetric tridiagonal eigensystems.