Uni20
Asynchronous tensor and runtime library.
Loading...
Searching...
No Matches
Namespaces | Classes | Functions
uni20::lapack Namespace Reference

Namespaces

namespace  mplapack
 
namespace  unchecked
 

Classes

class  LapackError
 Exception carrying a terminal positive LAPACK INFO result. More...
 

Functions

template<uni20::LapackReal Scalar>
void bdsdc (char uplo, char compq, blas_int n, Scalar *d, Scalar *e, Scalar *u, blas_int ldu, Scalar *vt, blas_int ldvt, Scalar *q, blas_int *iq, Scalar *work, blas_int *iwork)
 Compute the singular value decomposition of a real bidiagonal matrix.
 
template<uni20::LapackReal Scalar>
void bdsqr (char uplo, blas_int n, blas_int ncvt, blas_int nru, blas_int ncc, Scalar *d, Scalar *e, Scalar *vt, blas_int ldvt, Scalar *u, blas_int ldu, Scalar *c, blas_int ldc, Scalar *work)
 Compute singular values of a real bidiagonal matrix.
 
template<uni20::LapackReal Scalar>
void bdsvdx (char uplo, char jobz, char range, blas_int n, Scalar *d, Scalar *e, Scalar vl, Scalar vu, blas_int il, blas_int iu, blas_int &selected_count, Scalar *singular_values, Scalar *z, blas_int ldz, Scalar *work, blas_int *iwork)
 Compute selected singular values/vectors of a real bidiagonal matrix.
 
presentation::report_builder diagnostic_report (LapackError const &error)
 Build a presentation report for a terminal LAPACK provider failure.
 
template<uni20::LapackReal Scalar>
Scalar gbcon (char norm, blas_int n, blas_int kl, blas_int ku, Scalar *ab, blas_int ldab, blas_int const *ipiv, Scalar anorm, Scalar *work, blas_int *iwork)
 Estimate a real general-band reciprocal condition number.
 
template<uni20::LapackReal Scalar>
void gbequ (bool power_of_two, blas_int m, blas_int n, blas_int kl, blas_int ku, Scalar *ab, blas_int ldab, Scalar *row_scale, Scalar *column_scale, Scalar &row_condition, Scalar &column_condition, Scalar &max_abs)
 Compute real general-band row/column equilibration factors.
 
template<uni20::LapackReal Scalar>
void gbrfs (char trans, blas_int n, blas_int kl, blas_int ku, blas_int nrhs, Scalar *ab, blas_int ldab, Scalar *afb, blas_int ldafb, blas_int const *ipiv, Scalar *b, blas_int ldb, Scalar *x, blas_int ldx, Scalar *forward_error, Scalar *backward_error, Scalar *work, blas_int *iwork)
 Refine a real general-band linear-system solve and return LAPACK diagnostics.
 
template<uni20::LapackReal Scalar>
void gbsv (blas_int n, blas_int kl, blas_int ku, blas_int nrhs, Scalar *ab, blas_int ldab, blas_int *ipiv, Scalar *b, blas_int ldb)
 Solve a real general-band linear system through the configured LAPACK backend.
 
template<uni20::LapackReal Scalar>
bool gbsvx (char fact, char trans, blas_int n, blas_int kl, blas_int ku, blas_int nrhs, Scalar *ab, blas_int ldab, Scalar *afb, blas_int ldafb, blas_int *ipiv, char &equed, Scalar *row_scale, Scalar *column_scale, Scalar *b, blas_int ldb, Scalar *x, blas_int ldx, Scalar &rcond, Scalar *forward_error, Scalar *backward_error, Scalar *work, blas_int *iwork)
 Solve a real general-band linear system with LAPACK expert-driver diagnostics.
 
template<uni20::LapackReal Scalar>
void gbtrf (blas_int m, blas_int n, blas_int kl, blas_int ku, Scalar *ab, blas_int ldab, blas_int *ipiv)
 Compute a real general-band LU factorization through the configured LAPACK backend.
 
template<uni20::LapackReal Scalar>
void gbtrs (char trans, blas_int n, blas_int kl, blas_int ku, blas_int nrhs, Scalar *ab, blas_int ldab, blas_int const *ipiv, Scalar *b, blas_int ldb)
 Solve using an existing real general-band LU factorization.
 
template<uni20::LapackReal Scalar>
void gebak (char job, char side, blas_int n, blas_int first, blas_int last, Scalar *scale, blas_int vector_count, Scalar *vectors, blas_int leading_dimension)
 Back-transform real nonsymmetric eigenvectors after balancing.
 
template<uni20::LapackReal Scalar>
void gebal (char job, blas_int n, Scalar *a, blas_int lda, blas_int &first, blas_int &last, Scalar *scale)
 Balance a real nonsymmetric matrix before eigenanalysis.
 
template<uni20::LapackReal Scalar>
void gebrd (blas_int m, blas_int n, Scalar *a, blas_int lda, Scalar *d, Scalar *e, Scalar *tauq, Scalar *taup, Scalar *work, blas_int lwork)
 Reduce a real dense general matrix to bidiagonal form.
 
template<uni20::LapackReal Scalar>
Scalar gecon (char norm, blas_int n, Scalar const *a, blas_int lda, Scalar anorm, Scalar *work, blas_int *iwork)
 Estimate a real dense general reciprocal condition number.
 
template<uni20::LapackComplexReal Real>
Real gecon (char norm, blas_int n, uni20::detail::standard_complex< Real > const *a, blas_int lda, Real anorm, uni20::detail::standard_complex< Real > *work, Real *rwork)
 Estimate a complex dense general reciprocal condition number.
 
template<uni20::LapackReal Scalar>
void geequ (blas_int m, blas_int n, Scalar *a, blas_int lda, Scalar *row_scale, Scalar *column_scale, Scalar &row_condition, Scalar &column_condition, Scalar &max_abs)
 Compute real dense general row/column equilibration factors.
 
template<uni20::LapackReal Scalar>
void gees (char jobvs, char sort, blas_int n, Scalar *a, blas_int lda, blas_int &selected_dimension, Scalar *wr, Scalar *wi, Scalar *vs, blas_int ldvs, Scalar *work, blas_int lwork, blas_int *bwork)
 Compute the real Schur form of a real nonsymmetric matrix.
 
template<uni20::LapackComplexReal Real>
void gees (char jobvs, char sort, blas_int n, uni20::detail::standard_complex< Real > *a, blas_int lda, blas_int &selected_dimension, uni20::detail::standard_complex< Real > *w, uni20::detail::standard_complex< Real > *vs, blas_int ldvs, uni20::detail::standard_complex< Real > *work, blas_int lwork, Real *rwork, blas_int *bwork)
 Compute the complex Schur form of a complex nonsymmetric matrix.
 
template<uni20::LapackReal Scalar>
void geev (char jobvl, char jobvr, blas_int n, Scalar *a, blas_int lda, Scalar *wr, Scalar *wi, Scalar *vl, blas_int ldvl, Scalar *vr, blas_int ldvr, Scalar *work, blas_int lwork)
 Compute eigenvalues and optionally eigenvectors of a real nonsymmetric matrix.
 
template<uni20::LapackComplexReal Real>
void geev (char jobvl, char jobvr, blas_int n, uni20::detail::standard_complex< Real > *a, blas_int lda, uni20::detail::standard_complex< Real > *w, uni20::detail::standard_complex< Real > *vl, blas_int ldvl, uni20::detail::standard_complex< Real > *vr, blas_int ldvr, uni20::detail::standard_complex< Real > *work, blas_int lwork, Real *rwork)
 Compute eigenvalues and optionally eigenvectors of a complex nonsymmetric matrix.
 
template<uni20::LapackReal Scalar>
void geevx (char balanc, char jobvl, char jobvr, char sense, blas_int n, Scalar *a, blas_int lda, Scalar *wr, Scalar *wi, Scalar *vl, blas_int ldvl, Scalar *vr, blas_int ldvr, blas_int &ilo, blas_int &ihi, Scalar *scale, Scalar &abnrm, Scalar *rconde, Scalar *rcondv, Scalar *work, blas_int lwork, blas_int *iwork)
 Compute real nonsymmetric eigenpairs with balancing and condition estimates.
 
template<uni20::LapackReal Scalar>
void gehrd (blas_int n, blas_int first, blas_int last, Scalar *a, blas_int lda, Scalar *tau, Scalar *work, blas_int lwork)
 Reduce a real dense general matrix to upper Hessenberg form.
 
template<uni20::LapackScalar Scalar>
void gelqf (blas_int m, blas_int n, Scalar *a, blas_int lda, Scalar *tau, Scalar *work, blas_int lwork)
 Compute a real or complex dense LQ factorization through the configured LAPACK backend.
 
template<uni20::LapackReal Scalar>
void gels (char trans, blas_int m, blas_int n, blas_int nrhs, Scalar *a, blas_int lda, Scalar *b, blas_int ldb, Scalar *work, blas_int lwork)
 Solve a real dense general least-squares problem through the configured LAPACK backend.
 
template<uni20::LapackReal Scalar>
void gelsd (blas_int m, blas_int n, blas_int nrhs, Scalar *a, blas_int lda, Scalar *b, blas_int ldb, Scalar *s, Scalar rcond, blas_int &rank, Scalar *work, blas_int lwork, blas_int *iwork)
 Solve a real dense general least-squares problem by divide-and-conquer SVD.
 
template<uni20::LapackReal Scalar>
void gelss (blas_int m, blas_int n, blas_int nrhs, Scalar *a, blas_int lda, Scalar *b, blas_int ldb, Scalar *s, Scalar rcond, blas_int &rank, Scalar *work, blas_int lwork)
 Solve a real dense general least-squares problem by SVD.
 
template<uni20::LapackReal Scalar>
void gelsy (blas_int m, blas_int n, blas_int nrhs, Scalar *a, blas_int lda, Scalar *b, blas_int ldb, blas_int *jpvt, Scalar rcond, blas_int &rank, Scalar *work, blas_int lwork)
 Solve a real dense general least-squares problem by complete orthogonal factorization.
 
template<uni20::LapackReal Scalar>
void geqlf (blas_int m, blas_int n, Scalar *a, blas_int lda, Scalar *tau, Scalar *work, blas_int lwork)
 Compute a real dense QL factorization through the configured LAPACK backend.
 
template<uni20::LapackReal Scalar>
void geqp3 (blas_int m, blas_int n, Scalar *a, blas_int lda, blas_int *jpvt, Scalar *tau, Scalar *work, blas_int lwork)
 Compute a real dense pivoted QR factorization.
 
template<uni20::LapackScalar Scalar>
void geqrf (blas_int m, blas_int n, Scalar *a, blas_int lda, Scalar *tau, Scalar *work, blas_int lwork)
 Compute a real or complex dense QR factorization through the configured LAPACK backend.
 
template<uni20::LapackReal Scalar>
void gerfs (char trans, blas_int n, blas_int nrhs, Scalar *a, blas_int lda, Scalar *factors, blas_int factor_lda, blas_int const *ipiv, Scalar *b, blas_int ldb, Scalar *x, blas_int ldx, Scalar *forward_error, Scalar *backward_error, Scalar *work, blas_int *iwork)
 Refine a real dense general linear-system solve and return LAPACK diagnostics.
 
template<uni20::LapackReal Scalar>
void gerqf (blas_int m, blas_int n, Scalar *a, blas_int lda, Scalar *tau, Scalar *work, blas_int lwork)
 Compute a real dense RQ factorization through the configured LAPACK backend.
 
template<uni20::LapackReal Scalar>
void gesdd (char jobz, blas_int m, blas_int n, Scalar *a, blas_int lda, Scalar *s, Scalar *u, blas_int ldu, Scalar *vt, blas_int ldvt, Scalar *work, blas_int lwork, blas_int *iwork)
 Compute a real dense divide-and-conquer singular value decomposition.
 
template<uni20::LapackComplexReal Real>
void gesdd (char jobz, blas_int m, blas_int n, uni20::detail::standard_complex< Real > *a, blas_int lda, Real *s, uni20::detail::standard_complex< Real > *u, blas_int ldu, uni20::detail::standard_complex< Real > *vt, blas_int ldvt, uni20::detail::standard_complex< Real > *work, blas_int lwork, Real *rwork, blas_int *iwork)
 Compute a complex dense divide-and-conquer singular value decomposition.
 
template<uni20::LapackReal Scalar>
void gesv (blas_int n, blas_int nrhs, Scalar *a, blas_int lda, blas_int *ipiv, Scalar *b, blas_int ldb)
 Solve a real dense general linear system through the configured LAPACK backend.
 
template<uni20::LapackComplexReal Real>
void gesv (blas_int n, blas_int nrhs, uni20::detail::standard_complex< Real > *a, blas_int lda, blas_int *ipiv, uni20::detail::standard_complex< Real > *b, blas_int ldb)
 Solve a complex dense general linear system through the configured LAPACK backend.
 
template<uni20::LapackReal Scalar>
void gesvd (char jobu, char jobvt, blas_int m, blas_int n, Scalar *a, blas_int lda, Scalar *s, Scalar *u, blas_int ldu, Scalar *vt, blas_int ldvt, Scalar *work, blas_int lwork)
 Compute a real dense singular value decomposition.
 
template<uni20::LapackComplexReal Real>
void gesvd (char jobu, char jobvt, blas_int m, blas_int n, uni20::detail::standard_complex< Real > *a, blas_int lda, Real *s, uni20::detail::standard_complex< Real > *u, blas_int ldu, uni20::detail::standard_complex< Real > *vt, blas_int ldvt, uni20::detail::standard_complex< Real > *work, blas_int lwork, Real *rwork)
 Compute a complex dense singular value decomposition.
 
template<uni20::LapackReal Scalar>
void gesvdx (char jobu, char jobvt, char range, blas_int m, blas_int n, Scalar *a, blas_int lda, Scalar vl, Scalar vu, blas_int il, blas_int iu, blas_int &selected_count, Scalar *singular_values, Scalar *u, blas_int ldu, Scalar *vt, blas_int ldvt, Scalar *work, blas_int lwork, blas_int *iwork)
 Compute selected singular values/vectors of a real dense matrix.
 
template<uni20::LapackComplexReal Real>
void gesvdx (char jobu, char jobvt, char range, blas_int m, blas_int n, uni20::detail::standard_complex< Real > *a, blas_int lda, Real vl, Real vu, blas_int il, blas_int iu, blas_int &selected_count, Real *singular_values, uni20::detail::standard_complex< Real > *u, blas_int ldu, uni20::detail::standard_complex< Real > *vt, blas_int ldvt, uni20::detail::standard_complex< Real > *work, blas_int lwork, Real *rwork, blas_int *iwork)
 Compute selected singular values and vectors of a complex dense matrix.
 
template<uni20::LapackReal Scalar>
bool gesvx (char fact, char trans, blas_int n, blas_int nrhs, Scalar *a, blas_int lda, Scalar *af, blas_int ldaf, blas_int *ipiv, char &equed, Scalar *row_scale, Scalar *column_scale, Scalar *b, blas_int ldb, Scalar *x, blas_int ldx, Scalar &rcond, Scalar *forward_error, Scalar *backward_error, Scalar *work, blas_int *iwork)
 Solve a real dense general linear system with LAPACK expert-driver diagnostics.
 
template<uni20::LapackReal Scalar>
void getrf (blas_int m, blas_int n, Scalar *a, blas_int lda, blas_int *ipiv)
 Compute a real dense general LU factorization through the configured LAPACK backend.
 
template<uni20::LapackComplexReal Real>
void getrf (blas_int m, blas_int n, uni20::detail::standard_complex< Real > *a, blas_int lda, blas_int *ipiv)
 Compute a complex dense general LU factorization through the configured LAPACK backend.
 
template<uni20::LapackReal Scalar>
void getri (blas_int n, Scalar *a, blas_int lda, blas_int *ipiv, Scalar *work, blas_int lwork)
 Invert a real dense general matrix from an existing LU factorization.
 
template<uni20::LapackComplexReal Real>
void getri (blas_int n, uni20::detail::standard_complex< Real > *a, blas_int lda, blas_int *ipiv, uni20::detail::standard_complex< Real > *work, blas_int lwork)
 Invert a complex dense general matrix from an existing LU factorization.
 
template<uni20::LapackReal Scalar>
void getrs (char trans, blas_int n, blas_int nrhs, Scalar *a, blas_int lda, blas_int const *ipiv, Scalar *b, blas_int ldb)
 Solve using an existing real dense general LU factorization.
 
template<uni20::LapackComplexReal Real>
void getrs (char trans, blas_int n, blas_int nrhs, uni20::detail::standard_complex< Real > *a, blas_int lda, blas_int const *ipiv, uni20::detail::standard_complex< Real > *b, blas_int ldb)
 Solve using an existing complex dense general LU factorization.
 
template<uni20::LapackReal Scalar>
void ggbak (char job, char side, blas_int n, blas_int first, blas_int last, Scalar *lscale, Scalar *rscale, blas_int vector_count, Scalar *vectors, blas_int leading_dimension)
 Back-transform generalized nonsymmetric eigenvectors after pencil balancing.
 
template<uni20::LapackReal Scalar>
void ggbal (char job, blas_int n, Scalar *a, blas_int lda, Scalar *b, blas_int ldb, blas_int &first, blas_int &last, Scalar *lscale, Scalar *rscale, Scalar *work)
 Balance a real nonsymmetric matrix pencil before generalized eigenanalysis.
 
template<uni20::LapackReal Scalar>
void gges (char jobvsl, char jobvsr, char sort, blas_int n, Scalar *a, blas_int lda, Scalar *b, blas_int ldb, blas_int &selected_dimension, Scalar *alphar, Scalar *alphai, Scalar *beta, Scalar *vsl, blas_int ldvsl, Scalar *vsr, blas_int ldvsr, Scalar *work, blas_int lwork, blas_int *bwork)
 Compute a generalized real Schur form of a real nonsymmetric matrix pencil.
 
template<uni20::LapackReal Scalar>
void ggev (char jobvl, char jobvr, blas_int n, Scalar *a, blas_int lda, Scalar *b, blas_int ldb, Scalar *alphar, Scalar *alphai, Scalar *beta, Scalar *vl, blas_int ldvl, Scalar *vr, blas_int ldvr, Scalar *work, blas_int lwork)
 Compute generalized eigenvalues and optionally eigenvectors of a real nonsymmetric matrix pencil.
 
template<uni20::LapackReal Scalar>
void ggevx (char balanc, char jobvl, char jobvr, char sense, blas_int n, Scalar *a, blas_int lda, Scalar *b, blas_int ldb, Scalar *alphar, Scalar *alphai, Scalar *beta, Scalar *vl, blas_int ldvl, Scalar *vr, blas_int ldvr, blas_int &ilo, blas_int &ihi, Scalar *lscale, Scalar *rscale, Scalar &abnrm, Scalar &bbnrm, Scalar *rconde, Scalar *rcondv, Scalar *work, blas_int lwork, blas_int *iwork, blas_int *bwork)
 Compute generalized real nonsymmetric eigenpairs with balancing and condition estimates.
 
template<uni20::LapackReal Scalar>
void gghrd (char compq, char compz, blas_int n, blas_int first, blas_int last, Scalar *a, blas_int lda, Scalar *b, blas_int ldb, Scalar *q, blas_int ldq, Scalar *z, blas_int ldz)
 Reduce a real matrix pencil to generalized Hessenberg form.
 
template<uni20::LapackReal Scalar>
Scalar gtcon (char norm, blas_int n, Scalar *dl, Scalar *d, Scalar *du, Scalar *du2, blas_int const *ipiv, Scalar matrix_norm, Scalar *work, blas_int *iwork)
 Estimate a real tridiagonal reciprocal condition number.
 
template<uni20::LapackReal Scalar>
void gtrfs (char trans, blas_int n, blas_int nrhs, Scalar *dl, Scalar *d, Scalar *du, Scalar *dlf, Scalar *df, Scalar *duf, Scalar *du2, blas_int const *ipiv, Scalar *b, blas_int ldb, Scalar *x, blas_int ldx, Scalar *forward_error, Scalar *backward_error, Scalar *work, blas_int *iwork)
 Refine a real tridiagonal linear-system solve and return LAPACK diagnostics.
 
template<uni20::LapackReal Scalar>
void gtsv (blas_int n, blas_int nrhs, Scalar *dl, Scalar *d, Scalar *du, Scalar *b, blas_int ldb)
 Solve a real tridiagonal linear system through the configured LAPACK backend.
 
template<uni20::LapackReal Scalar>
bool gtsvx (char fact, char trans, blas_int n, blas_int nrhs, Scalar *dl, Scalar *d, Scalar *du, Scalar *dlf, Scalar *df, Scalar *duf, Scalar *du2, blas_int *ipiv, Scalar *b, blas_int ldb, Scalar *x, blas_int ldx, Scalar &rcond, Scalar *forward_error, Scalar *backward_error, Scalar *work, blas_int *iwork)
 Solve a real tridiagonal linear system with LAPACK expert-driver diagnostics.
 
template<uni20::LapackReal Scalar>
void gttrf (blas_int n, Scalar *dl, Scalar *d, Scalar *du, Scalar *du2, blas_int *ipiv)
 Compute a real tridiagonal LU factorization through the configured LAPACK backend.
 
template<uni20::LapackReal Scalar>
void gttrs (char trans, blas_int n, blas_int nrhs, Scalar *dl, Scalar *d, Scalar *du, Scalar *du2, blas_int const *ipiv, Scalar *b, blas_int ldb)
 Solve using an existing real tridiagonal LU factorization.
 
template<uni20::LapackComplexReal Real>
void heev (char jobz, char uplo, blas_int n, uni20::detail::standard_complex< Real > *a, blas_int lda, Real *w, uni20::detail::standard_complex< Real > *work, blas_int lwork, Real *rwork)
 Compute eigenvalues and optionally eigenvectors of a complex Hermitian matrix.
 
template<uni20::LapackComplexReal Real>
void heevd (char jobz, char uplo, blas_int n, uni20::detail::standard_complex< Real > *a, blas_int lda, Real *w, uni20::detail::standard_complex< Real > *work, blas_int lwork, Real *rwork, blas_int lrwork, blas_int *iwork, blas_int liwork)
 Compute eigenvalues and optionally eigenvectors of a complex Hermitian matrix by divide and conquer.
 
template<uni20::LapackComplexReal Real>
void heevr (char jobz, char range, char uplo, blas_int n, uni20::detail::standard_complex< Real > *a, blas_int lda, Real vl, Real vu, blas_int il, blas_int iu, Real abstol, blas_int &selected_count, Real *w, uni20::detail::standard_complex< Real > *z, blas_int ldz, blas_int *isuppz, uni20::detail::standard_complex< Real > *work, blas_int lwork, Real *rwork, blas_int lrwork, blas_int *iwork, blas_int liwork)
 Compute selected eigenvalues and optionally eigenvectors of a complex Hermitian matrix.
 
template<uni20::LapackComplexReal Real>
void hegv (blas_int itype, char jobz, char uplo, blas_int n, uni20::detail::standard_complex< Real > *a, blas_int lda, uni20::detail::standard_complex< Real > *b, blas_int ldb, Real *w, uni20::detail::standard_complex< Real > *work, blas_int lwork, Real *rwork)
 Compute eigenvalues and optionally eigenvectors of a complex generalized Hermitian-definite problem.
 
template<uni20::LapackComplexReal Real>
void hegvd (blas_int itype, char jobz, char uplo, blas_int n, uni20::detail::standard_complex< Real > *a, blas_int lda, uni20::detail::standard_complex< Real > *b, blas_int ldb, Real *w, uni20::detail::standard_complex< Real > *work, blas_int lwork, Real *rwork, blas_int lrwork, blas_int *iwork, blas_int liwork)
 Compute eigenvalues and optionally eigenvectors of a complex generalized Hermitian-definite problem by divide and conquer.
 
template<uni20::LapackComplexReal Real>
void hegvx (blas_int itype, char jobz, char range, char uplo, blas_int n, uni20::detail::standard_complex< Real > *a, blas_int lda, uni20::detail::standard_complex< Real > *b, blas_int ldb, Real vl, Real vu, blas_int il, blas_int iu, Real abstol, blas_int &selected_count, Real *w, uni20::detail::standard_complex< Real > *z, blas_int ldz, uni20::detail::standard_complex< Real > *work, blas_int lwork, Real *rwork, blas_int *iwork, blas_int *ifail)
 Compute selected eigenvalues and optionally eigenvectors of a complex generalized Hermitian-definite problem.
 
template<uni20::LapackReal Scalar>
void hgeqz (char job, char compq, char compz, blas_int n, blas_int first, blas_int last, Scalar *h, blas_int ldh, Scalar *t, blas_int ldt, Scalar *alphar, Scalar *alphai, Scalar *beta, Scalar *q, blas_int ldq, Scalar *z, blas_int ldz, Scalar *work, blas_int lwork)
 Compute a generalized Schur form from a real Hessenberg-triangular pencil.
 
template<uni20::LapackReal Scalar>
void hseqr (char job, char compz, blas_int n, blas_int first, blas_int last, Scalar *h, blas_int ldh, Scalar *wr, Scalar *wi, Scalar *z, blas_int ldz, Scalar *work, blas_int lwork)
 Compute a Schur form of a real upper Hessenberg matrix.
 
template<uni20::LapackReal Scalar>
Scalar langb (char norm, blas_int n, blas_int kl, blas_int ku, Scalar *ab, blas_int ldab, Scalar *work)
 Compute a real general-band matrix norm through the configured LAPACK backend.
 
template<uni20::LapackReal Scalar>
Scalar lange (char norm, blas_int m, blas_int n, Scalar *a, blas_int lda, Scalar *work)
 Compute a dense real matrix norm through the configured LAPACK backend.
 
template<uni20::LapackComplexReal Real>
Real lange (char norm, blas_int m, blas_int n, uni20::detail::standard_complex< Real > *a, blas_int lda, Real *work)
 Compute a dense complex matrix norm through the configured LAPACK backend.
 
template<uni20::LapackComplexReal Real>
Real lanhe (char norm, char uplo, blas_int n, uni20::detail::standard_complex< Real > *a, blas_int lda, Real *work)
 Compute a dense complex Hermitian matrix norm through the configured LAPACK backend.
 
template<uni20::LapackReal Scalar>
Scalar lansy (char norm, char uplo, blas_int n, Scalar *a, blas_int lda, Scalar *work)
 Compute a dense real symmetric matrix norm through the configured LAPACK backend.
 
template<uni20::LapackReal Scalar>
Scalar lantr (char norm, char uplo, char diag, blas_int m, blas_int n, Scalar *a, blas_int lda, Scalar *work)
 Compute a dense real triangular or trapezoidal matrix norm through the configured LAPACK backend.
 
template<uni20::LapackComplexReal Real>
Real lantr (char norm, char uplo, char diag, blas_int m, blas_int n, uni20::detail::standard_complex< Real > *a, blas_int lda, Real *work)
 Compute a dense complex triangular or trapezoidal matrix norm through the configured LAPACK backend.
 
template<uni20::LapackReal Scalar>
void orgbr (char vect, blas_int m, blas_int n, blas_int k, Scalar *a, blas_int lda, Scalar *tau, Scalar *work, blas_int lwork)
 Generate an explicit real orthogonal factor from bidiagonal reduction.
 
template<uni20::LapackReal Scalar>
void orghr (blas_int n, blas_int first, blas_int last, Scalar *a, blas_int lda, Scalar const *tau, Scalar *work, blas_int lwork)
 Generate an explicit real orthogonal factor from Hessenberg reduction.
 
template<uni20::LapackScalar Scalar>
void orglq (blas_int m, blas_int n, blas_int k, Scalar *a, blas_int lda, Scalar *tau, Scalar *work, blas_int lwork)
 Generate an explicit orthogonal or unitary Q factor from an LQ factorization.
 
template<uni20::LapackReal Scalar>
void orgql (blas_int m, blas_int n, blas_int k, Scalar *a, blas_int lda, Scalar *tau, Scalar *work, blas_int lwork)
 Generate an explicit real Q factor from a QL factorization.
 
template<uni20::LapackScalar Scalar>
void orgqr (blas_int m, blas_int n, blas_int k, Scalar *a, blas_int lda, Scalar *tau, Scalar *work, blas_int lwork)
 Generate an explicit orthogonal or unitary Q factor from a QR factorization.
 
template<uni20::LapackReal Scalar>
void orgrq (blas_int m, blas_int n, blas_int k, Scalar *a, blas_int lda, Scalar *tau, Scalar *work, blas_int lwork)
 Generate an explicit real Q factor from an RQ factorization.
 
template<uni20::LapackReal Scalar>
void orgtr (char uplo, blas_int n, Scalar *a, blas_int lda, Scalar const *tau, Scalar *work, blas_int lwork)
 Generate an explicit real orthogonal factor from symmetric tridiagonal reduction.
 
template<uni20::LapackReal Scalar>
void ormbr (char vect, char side, char trans, blas_int m, blas_int n, blas_int k, Scalar *a, blas_int lda, Scalar *tau, Scalar *c, blas_int ldc, Scalar *work, blas_int lwork)
 Multiply by an implicit real orthogonal factor from bidiagonal reduction.
 
template<uni20::LapackReal Scalar>
void ormhr (char side, char trans, blas_int m, blas_int n, blas_int first, blas_int last, Scalar *a, blas_int lda, Scalar const *tau, Scalar *c, blas_int ldc, Scalar *work, blas_int lwork)
 Multiply by an implicit real orthogonal factor from Hessenberg reduction.
 
template<uni20::LapackReal Scalar>
void ormlq (char side, char trans, blas_int m, blas_int n, blas_int k, Scalar *a, blas_int lda, Scalar *tau, Scalar *c, blas_int ldc, Scalar *work, blas_int lwork)
 Multiply by the implicit real Q factor from an LQ factorization.
 
template<uni20::LapackReal Scalar>
void ormql (char side, char trans, blas_int m, blas_int n, blas_int k, Scalar *a, blas_int lda, Scalar *tau, Scalar *c, blas_int ldc, Scalar *work, blas_int lwork)
 Multiply by the implicit real Q factor from a QL factorization.
 
template<uni20::LapackReal Scalar>
void ormqr (char side, char trans, blas_int m, blas_int n, blas_int k, Scalar *a, blas_int lda, Scalar *tau, Scalar *c, blas_int ldc, Scalar *work, blas_int lwork)
 Multiply by the implicit real Q factor from a QR factorization.
 
template<uni20::LapackReal Scalar>
void ormrq (char side, char trans, blas_int m, blas_int n, blas_int k, Scalar *a, blas_int lda, Scalar *tau, Scalar *c, blas_int ldc, Scalar *work, blas_int lwork)
 Multiply by the implicit real Q factor from an RQ factorization.
 
template<uni20::LapackReal Scalar>
void ormtr (char side, char uplo, char trans, blas_int m, blas_int n, Scalar *a, blas_int lda, Scalar const *tau, Scalar *c, blas_int ldc, Scalar *work, blas_int lwork)
 Multiply by an implicit real orthogonal factor from symmetric tridiagonal reduction.
 
template<uni20::LapackReal Scalar>
Scalar pbcon (char uplo, blas_int n, blas_int kd, Scalar *ab, blas_int ldab, Scalar anorm, Scalar *work, blas_int *iwork)
 Estimate a real symmetric positive-definite band reciprocal condition number.
 
template<uni20::LapackReal Scalar>
void pbrfs (char uplo, blas_int n, blas_int kd, blas_int nrhs, Scalar *ab, blas_int ldab, Scalar *afb, blas_int ldafb, Scalar *b, blas_int ldb, Scalar *x, blas_int ldx, Scalar *forward_error, Scalar *backward_error, Scalar *work, blas_int *iwork)
 Refine a real symmetric positive-definite band solve and return LAPACK diagnostics.
 
template<uni20::LapackReal Scalar>
void pbsv (char uplo, blas_int n, blas_int kd, blas_int nrhs, Scalar *ab, blas_int ldab, Scalar *b, blas_int ldb)
 Solve a real symmetric positive-definite band linear system.
 
template<uni20::LapackReal Scalar>
bool pbsvx (char fact, char uplo, blas_int n, blas_int kd, blas_int nrhs, Scalar *ab, blas_int ldab, Scalar *afb, blas_int ldafb, char &equed, Scalar *scale, Scalar *b, blas_int ldb, Scalar *x, blas_int ldx, Scalar &rcond, Scalar *forward_error, Scalar *backward_error, Scalar *work, blas_int *iwork)
 Solve a real symmetric positive-definite band system with LAPACK expert-driver diagnostics.
 
template<uni20::LapackReal Scalar>
void pbtrf (char uplo, blas_int n, blas_int kd, Scalar *ab, blas_int ldab)
 Compute a real symmetric positive-definite band Cholesky factorization.
 
template<uni20::LapackReal Scalar>
void pbtrs (char uplo, blas_int n, blas_int kd, blas_int nrhs, Scalar *ab, blas_int ldab, Scalar *b, blas_int ldb)
 Solve using an existing real symmetric positive-definite band Cholesky factorization.
 
template<uni20::LapackReal Scalar>
Scalar pocon (char uplo, blas_int n, Scalar *a, blas_int lda, Scalar matrix_one_norm, Scalar *work, blas_int *iwork)
 Estimate a real dense SPD reciprocal condition number.
 
template<uni20::LapackReal Scalar>
void poequ (blas_int n, Scalar *a, blas_int lda, Scalar *scale, Scalar &scale_condition, Scalar &max_abs)
 Compute real dense SPD equilibration factors.
 
template<uni20::LapackReal Scalar>
void porfs (char uplo, blas_int n, blas_int nrhs, Scalar *a, blas_int lda, Scalar *factors, blas_int factor_lda, Scalar *b, blas_int ldb, Scalar *x, blas_int ldx, Scalar *forward_error, Scalar *backward_error, Scalar *work, blas_int *iwork)
 Refine a real dense SPD linear-system solve and return LAPACK diagnostics.
 
template<uni20::LapackReal Scalar>
bool posvx (char fact, char uplo, blas_int n, blas_int nrhs, Scalar *a, blas_int lda, Scalar *af, blas_int ldaf, char &equed, Scalar *scale, Scalar *b, blas_int ldb, Scalar *x, blas_int ldx, Scalar &rcond, Scalar *forward_error, Scalar *backward_error, Scalar *work, blas_int *iwork)
 Solve a real dense SPD linear system with LAPACK expert-driver diagnostics.
 
template<uni20::LapackReal Scalar>
void potrf (char uplo, blas_int n, Scalar *a, blas_int lda)
 Compute a real dense Cholesky factorization.
 
template<uni20::LapackReal Scalar>
void potri (char uplo, blas_int n, Scalar *a, blas_int lda)
 Invert a real dense matrix from an existing Cholesky factorization.
 
template<uni20::LapackReal Scalar>
void potrs (char uplo, blas_int n, blas_int nrhs, Scalar *a, blas_int lda, Scalar *b, blas_int ldb)
 Solve using an existing real dense Cholesky factorization.
 
template<uni20::LapackReal Scalar>
bool pstrf (char uplo, blas_int n, Scalar *a, blas_int lda, blas_int *pivots, blas_int &rank, Scalar tolerance, Scalar *work)
 Compute a real dense pivoted Cholesky factorization.
 
template<uni20::LapackReal Scalar>
Scalar ptcon (blas_int n, Scalar *d, Scalar *e, Scalar matrix_norm, Scalar *work)
 Estimate a real symmetric positive-definite tridiagonal reciprocal condition number.
 
template<uni20::LapackReal Scalar>
void ptrfs (blas_int n, blas_int nrhs, Scalar *d, Scalar *e, Scalar *df, Scalar *ef, Scalar *b, blas_int ldb, Scalar *x, blas_int ldx, Scalar *forward_error, Scalar *backward_error, Scalar *work)
 Refine a real symmetric positive-definite tridiagonal solve and return LAPACK diagnostics.
 
template<uni20::LapackReal Scalar>
void ptsv (blas_int n, blas_int nrhs, Scalar *d, Scalar *e, Scalar *b, blas_int ldb)
 Solve a real symmetric positive-definite tridiagonal linear system.
 
template<uni20::LapackReal Scalar>
bool ptsvx (char fact, blas_int n, blas_int nrhs, Scalar *d, Scalar *e, Scalar *df, Scalar *ef, Scalar *b, blas_int ldb, Scalar *x, blas_int ldx, Scalar &rcond, Scalar *forward_error, Scalar *backward_error, Scalar *work)
 Solve a real symmetric positive-definite tridiagonal system with LAPACK expert-driver diagnostics.
 
template<uni20::LapackReal Scalar>
void pttrf (blas_int n, Scalar *d, Scalar *e)
 Compute a real symmetric positive-definite tridiagonal factorization.
 
template<uni20::LapackReal Scalar>
void pttrs (blas_int n, blas_int nrhs, Scalar *d, Scalar *e, Scalar *b, blas_int ldb)
 Solve using an existing real symmetric positive-definite tridiagonal factorization.
 
template<uni20::LapackReal Scalar>
void steqr (char compz, blas_int n, Scalar *d, Scalar *e, Scalar *z, blas_int ldz, Scalar *work)
 Compute a real symmetric tridiagonal eigensystem by QR iteration.
 
template<uni20::LapackReal Scalar>
void sterf (blas_int n, Scalar *d, Scalar *e)
 Compute eigenvalues of a real symmetric tridiagonal matrix.
 
template<uni20::LapackReal Scalar>
void stevd (char jobz, blas_int n, Scalar *d, Scalar *e, Scalar *z, blas_int ldz, Scalar *work, blas_int lwork, blas_int *iwork, blas_int liwork)
 Compute a real symmetric tridiagonal eigensystem by divide-and-conquer.
 
template<uni20::LapackReal Scalar>
void stevr (char jobz, char range, blas_int n, Scalar *d, Scalar *e, Scalar vl, Scalar vu, blas_int il, blas_int iu, Scalar abstol, blas_int &selected_count, Scalar *w, Scalar *z, blas_int ldz, blas_int *isuppz, Scalar *work, blas_int lwork, blas_int *iwork, blas_int liwork)
 Compute selected eigenvalues/eigenvectors of a real symmetric tridiagonal matrix.
 
template<uni20::LapackReal Scalar>
Scalar sycon (char uplo, blas_int n, Scalar *a, blas_int lda, blas_int const *ipiv, Scalar matrix_one_norm, Scalar *work, blas_int *iwork)
 Estimate a dense real symmetric-indefinite reciprocal condition number.
 
template<uni20::LapackReal Scalar>
void syev (char jobz, char uplo, blas_int n, Scalar *a, blas_int lda, Scalar *w, Scalar *work, blas_int lwork)
 Compute eigenvalues and optionally eigenvectors of a real symmetric matrix.
 
template<uni20::LapackReal Scalar>
void syevd (char jobz, char uplo, blas_int n, Scalar *a, blas_int lda, Scalar *w, Scalar *work, blas_int lwork, blas_int *iwork, blas_int liwork)
 Compute eigenvalues and optionally eigenvectors of a real symmetric matrix by divide and conquer.
 
template<uni20::LapackReal Scalar>
void syevr (char jobz, char range, char uplo, blas_int n, Scalar *a, blas_int lda, Scalar vl, Scalar vu, blas_int il, blas_int iu, Scalar abstol, blas_int &selected_count, Scalar *w, Scalar *z, blas_int ldz, blas_int *isuppz, Scalar *work, blas_int lwork, blas_int *iwork, blas_int liwork)
 Compute selected eigenvalues and optionally eigenvectors of a real symmetric matrix.
 
template<uni20::LapackReal Scalar>
void sygv (blas_int itype, char jobz, char uplo, blas_int n, Scalar *a, blas_int lda, Scalar *b, blas_int ldb, Scalar *w, Scalar *work, blas_int lwork)
 Compute eigenvalues and optionally eigenvectors of a real generalized symmetric-definite problem.
 
template<uni20::LapackReal Scalar>
void sygvd (blas_int itype, char jobz, char uplo, blas_int n, Scalar *a, blas_int lda, Scalar *b, blas_int ldb, Scalar *w, Scalar *work, blas_int lwork, blas_int *iwork, blas_int liwork)
 Compute eigenvalues and optionally eigenvectors of a real generalized symmetric-definite problem by divide and conquer.
 
template<uni20::LapackReal Scalar>
void sygvx (blas_int itype, char jobz, char range, char uplo, blas_int n, Scalar *a, blas_int lda, Scalar *b, blas_int ldb, Scalar vl, Scalar vu, blas_int il, blas_int iu, Scalar abstol, blas_int &selected_count, Scalar *w, Scalar *z, blas_int ldz, Scalar *work, blas_int lwork, blas_int *iwork, blas_int *ifail)
 Compute selected eigenvalues and optionally eigenvectors of a real generalized symmetric-definite problem.
 
template<uni20::LapackReal Scalar>
void syrfs (char uplo, blas_int n, blas_int nrhs, Scalar *a, blas_int lda, Scalar *factors, blas_int factor_lda, blas_int const *ipiv, Scalar *b, blas_int ldb, Scalar *x, blas_int ldx, Scalar *forward_error, Scalar *backward_error, Scalar *work, blas_int *iwork)
 Refine a dense real symmetric-indefinite solve and return LAPACK diagnostics.
 
template<uni20::LapackReal Scalar>
bool sysvx (char fact, char uplo, blas_int n, blas_int nrhs, Scalar *a, blas_int lda, Scalar *af, blas_int ldaf, blas_int *ipiv, Scalar *b, blas_int ldb, Scalar *x, blas_int ldx, Scalar &rcond, Scalar *forward_error, Scalar *backward_error, Scalar *work, blas_int lwork, blas_int *iwork)
 Solve a dense real symmetric-indefinite system with LAPACK expert-driver diagnostics.
 
template<uni20::LapackReal Scalar>
void sytrd (char uplo, blas_int n, Scalar *a, blas_int lda, Scalar *d, Scalar *e, Scalar *tau, Scalar *work, blas_int lwork)
 Reduce a real dense symmetric matrix to tridiagonal form.
 
template<uni20::LapackReal Scalar>
void sytrf (char uplo, blas_int n, Scalar *a, blas_int lda, blas_int *ipiv, Scalar *work, blas_int lwork)
 Compute a dense real symmetric-indefinite Bunch-Kaufman factorization.
 
template<uni20::LapackReal Scalar>
void sytri (char uplo, blas_int n, Scalar *a, blas_int lda, blas_int const *ipiv, Scalar *work)
 Invert a dense real symmetric-indefinite matrix from its factorization.
 
template<uni20::LapackReal Scalar>
void sytrs (char uplo, blas_int n, blas_int nrhs, Scalar *a, blas_int lda, blas_int const *ipiv, Scalar *b, blas_int ldb)
 Solve using an existing dense real symmetric-indefinite factorization.
 
template<uni20::LapackReal Scalar>
void tgevc (char side, char howmny, blas_int *select, blas_int n, Scalar *s, blas_int lds, Scalar *p, blas_int ldp, Scalar *vl, blas_int ldvl, Scalar *vr, blas_int ldvr, blas_int mm, blas_int &computed_vectors, Scalar *work)
 Compute eigenvectors of a generalized real Schur form.
 
template<uni20::LapackReal Scalar>
void tgexc (bool wantq, bool wantz, blas_int n, Scalar *a, blas_int lda, Scalar *b, blas_int ldb, Scalar *q, blas_int ldq, Scalar *z, blas_int ldz, blas_int &first, blas_int &last, Scalar *work, blas_int lwork)
 Reorder adjacent blocks in a generalized real Schur form.
 
template<uni20::LapackReal Scalar>
void tgsen (blas_int ijob, bool wantq, bool wantz, blas_int *select, blas_int n, Scalar *a, blas_int lda, Scalar *b, blas_int ldb, Scalar *alphar, Scalar *alphai, Scalar *beta, Scalar *q, blas_int ldq, Scalar *z, blas_int ldz, blas_int &selected_dimension, Scalar &pl, Scalar &pr, Scalar *dif, Scalar *work, blas_int lwork, blas_int *iwork, blas_int liwork)
 Reorder selected blocks in a generalized real Schur form and estimate conditioning.
 
template<uni20::LapackReal Scalar>
void tgsna (char job, char howmny, blas_int *select, blas_int n, Scalar *a, blas_int lda, Scalar *b, blas_int ldb, Scalar *vl, blas_int ldvl, Scalar *vr, blas_int ldvr, Scalar *reciprocal_eigenvalue_condition_numbers, Scalar *reciprocal_eigenvector_condition_numbers, blas_int mm, blas_int &computed_estimates, Scalar *work, blas_int lwork, blas_int *iwork)
 Estimate reciprocal condition numbers for generalized real Schur eigenpairs.
 
template<uni20::LapackReal Scalar>
Scalar trcon (char norm, char uplo, char diag, blas_int n, Scalar *a, blas_int lda, Scalar *work, blas_int *iwork)
 Estimate a dense real triangular reciprocal condition number.
 
template<uni20::LapackReal Scalar>
void trevc (char side, char howmny, blas_int *select, blas_int n, Scalar *t, blas_int ldt, Scalar *vl, blas_int ldvl, Scalar *vr, blas_int ldvr, blas_int mm, blas_int &computed_vectors, Scalar *work)
 Compute eigenvectors of a real upper quasi-triangular Schur form.
 
template<uni20::LapackReal Scalar>
void trexc (char compq, blas_int n, Scalar *t, blas_int ldt, Scalar *q, blas_int ldq, blas_int &first, blas_int &last, Scalar *work)
 Reorder adjacent blocks in a real Schur form.
 
template<uni20::LapackComplexReal Real>
void trexc (char compq, blas_int n, uni20::detail::standard_complex< Real > *t, blas_int ldt, uni20::detail::standard_complex< Real > *q, blas_int ldq, blas_int &first, blas_int &last)
 Reorder adjacent entries in a complex Schur form.
 
template<uni20::LapackReal Scalar>
void trrfs (char uplo, char trans, char diag, blas_int n, blas_int nrhs, Scalar *a, blas_int lda, Scalar *b, blas_int ldb, Scalar *x, blas_int ldx, Scalar *forward_error, Scalar *backward_error, Scalar *work, blas_int *iwork)
 Refine a dense real triangular solve and return LAPACK diagnostics.
 
template<uni20::LapackReal Scalar>
void trsen (char job, char compq, blas_int *select, blas_int n, Scalar *t, blas_int ldt, Scalar *q, blas_int ldq, Scalar *wr, Scalar *wi, blas_int &selected_dimension, Scalar &reciprocal_eigenvalue_cluster_condition, Scalar &reciprocal_invariant_subspace_condition, Scalar *work, blas_int lwork, blas_int *iwork, blas_int liwork)
 Reorder selected blocks in a real Schur form and estimate invariant subspace conditioning.
 
template<uni20::LapackReal Scalar>
void trsna (char job, char howmny, blas_int *select, blas_int n, Scalar *t, blas_int ldt, Scalar *vl, blas_int ldvl, Scalar *vr, blas_int ldvr, Scalar *reciprocal_eigenvalue_condition_numbers, Scalar *reciprocal_eigenvector_condition_numbers, blas_int mm, blas_int &computed_estimates, Scalar *work, blas_int ldwork, blas_int *iwork)
 Estimate reciprocal condition numbers for real Schur eigenpairs.
 
template<uni20::LapackReal Scalar>
bool trsyl (char trans_a, char trans_b, blas_int sign, blas_int m, blas_int n, Scalar *a, blas_int lda, Scalar *b, blas_int ldb, Scalar *c, blas_int ldc, Scalar &scale)
 Solve a dense real Sylvester equation.
 
template<uni20::LapackReal Scalar>
void trtri (char uplo, char diag, blas_int n, Scalar *a, blas_int lda)
 Invert a dense real triangular matrix.
 
template<uni20::LapackReal Scalar>
void trtrs (char uplo, char trans, char diag, blas_int n, blas_int nrhs, Scalar *a, blas_int lda, Scalar *b, blas_int ldb)
 Solve a dense real triangular system.
 

Function Documentation

◆ bdsdc()

template<uni20::LapackReal Scalar>
void uni20::lapack::bdsdc ( char  uplo,
char  compq,
blas_int  n,
Scalar *  d,
Scalar *  e,
Scalar *  u,
blas_int  ldu,
Scalar *  vt,
blas_int  ldvt,
Scalar *  q,
blas_int *  iq,
Scalar *  work,
blas_int *  iwork 
)

Compute the singular value decomposition of a real bidiagonal matrix.

◆ bdsqr()

template<uni20::LapackReal Scalar>
void uni20::lapack::bdsqr ( char  uplo,
blas_int  n,
blas_int  ncvt,
blas_int  nru,
blas_int  ncc,
Scalar *  d,
Scalar *  e,
Scalar *  vt,
blas_int  ldvt,
Scalar *  u,
blas_int  ldu,
Scalar *  c,
blas_int  ldc,
Scalar *  work 
)

Compute singular values of a real bidiagonal matrix.

◆ bdsvdx()

template<uni20::LapackReal Scalar>
void uni20::lapack::bdsvdx ( char  uplo,
char  jobz,
char  range,
blas_int  n,
Scalar *  d,
Scalar *  e,
Scalar  vl,
Scalar  vu,
blas_int  il,
blas_int  iu,
blas_int &  selected_count,
Scalar *  singular_values,
Scalar *  z,
blas_int  ldz,
Scalar *  work,
blas_int *  iwork 
)

Compute selected singular values/vectors of a real bidiagonal matrix.

◆ diagnostic_report()

presentation::report_builder uni20::lapack::diagnostic_report ( LapackError const &  error)
inline

Build a presentation report for a terminal LAPACK provider failure.

◆ gbcon()

template<uni20::LapackReal Scalar>
Scalar uni20::lapack::gbcon ( char  norm,
blas_int  n,
blas_int  kl,
blas_int  ku,
Scalar *  ab,
blas_int  ldab,
blas_int const *  ipiv,
Scalar  anorm,
Scalar *  work,
blas_int *  iwork 
)

Estimate a real general-band reciprocal condition number.

◆ gbequ()

template<uni20::LapackReal Scalar>
void uni20::lapack::gbequ ( bool  power_of_two,
blas_int  m,
blas_int  n,
blas_int  kl,
blas_int  ku,
Scalar *  ab,
blas_int  ldab,
Scalar *  row_scale,
Scalar *  column_scale,
Scalar &  row_condition,
Scalar &  column_condition,
Scalar &  max_abs 
)

Compute real general-band row/column equilibration factors.

◆ gbrfs()

template<uni20::LapackReal Scalar>
void uni20::lapack::gbrfs ( char  trans,
blas_int  n,
blas_int  kl,
blas_int  ku,
blas_int  nrhs,
Scalar *  ab,
blas_int  ldab,
Scalar *  afb,
blas_int  ldafb,
blas_int const *  ipiv,
Scalar *  b,
blas_int  ldb,
Scalar *  x,
blas_int  ldx,
Scalar *  forward_error,
Scalar *  backward_error,
Scalar *  work,
blas_int *  iwork 
)

Refine a real general-band linear-system solve and return LAPACK diagnostics.

◆ gbsv()

template<uni20::LapackReal Scalar>
void uni20::lapack::gbsv ( blas_int  n,
blas_int  kl,
blas_int  ku,
blas_int  nrhs,
Scalar *  ab,
blas_int  ldab,
blas_int *  ipiv,
Scalar *  b,
blas_int  ldb 
)

Solve a real general-band linear system through the configured LAPACK backend.

◆ gbsvx()

template<uni20::LapackReal Scalar>
bool uni20::lapack::gbsvx ( char  fact,
char  trans,
blas_int  n,
blas_int  kl,
blas_int  ku,
blas_int  nrhs,
Scalar *  ab,
blas_int  ldab,
Scalar *  afb,
blas_int  ldafb,
blas_int *  ipiv,
char &  equed,
Scalar *  row_scale,
Scalar *  column_scale,
Scalar *  b,
blas_int  ldb,
Scalar *  x,
blas_int  ldx,
Scalar &  rcond,
Scalar *  forward_error,
Scalar *  backward_error,
Scalar *  work,
blas_int *  iwork 
)

Solve a real general-band linear system with LAPACK expert-driver diagnostics.

◆ gbtrf()

template<uni20::LapackReal Scalar>
void uni20::lapack::gbtrf ( blas_int  m,
blas_int  n,
blas_int  kl,
blas_int  ku,
Scalar *  ab,
blas_int  ldab,
blas_int *  ipiv 
)

Compute a real general-band LU factorization through the configured LAPACK backend.

◆ gbtrs()

template<uni20::LapackReal Scalar>
void uni20::lapack::gbtrs ( char  trans,
blas_int  n,
blas_int  kl,
blas_int  ku,
blas_int  nrhs,
Scalar *  ab,
blas_int  ldab,
blas_int const *  ipiv,
Scalar *  b,
blas_int  ldb 
)

Solve using an existing real general-band LU factorization.

◆ gebak()

template<uni20::LapackReal Scalar>
void uni20::lapack::gebak ( char  job,
char  side,
blas_int  n,
blas_int  first,
blas_int  last,
Scalar *  scale,
blas_int  vector_count,
Scalar *  vectors,
blas_int  leading_dimension 
)

Back-transform real nonsymmetric eigenvectors after balancing.

◆ gebal()

template<uni20::LapackReal Scalar>
void uni20::lapack::gebal ( char  job,
blas_int  n,
Scalar *  a,
blas_int  lda,
blas_int &  first,
blas_int &  last,
Scalar *  scale 
)

Balance a real nonsymmetric matrix before eigenanalysis.

◆ gebrd()

template<uni20::LapackReal Scalar>
void uni20::lapack::gebrd ( blas_int  m,
blas_int  n,
Scalar *  a,
blas_int  lda,
Scalar *  d,
Scalar *  e,
Scalar *  tauq,
Scalar *  taup,
Scalar *  work,
blas_int  lwork 
)

Reduce a real dense general matrix to bidiagonal form.

◆ gecon() [1/2]

template<uni20::LapackReal Scalar>
Scalar uni20::lapack::gecon ( char  norm,
blas_int  n,
Scalar const *  a,
blas_int  lda,
Scalar  anorm,
Scalar *  work,
blas_int *  iwork 
)

Estimate a real dense general reciprocal condition number.

◆ gecon() [2/2]

template<uni20::LapackComplexReal Real>
Real uni20::lapack::gecon ( char  norm,
blas_int  n,
uni20::detail::standard_complex< Real > const *  a,
blas_int  lda,
Real  anorm,
uni20::detail::standard_complex< Real > *  work,
Real *  rwork 
)

Estimate a complex dense general reciprocal condition number.

◆ geequ()

template<uni20::LapackReal Scalar>
void uni20::lapack::geequ ( blas_int  m,
blas_int  n,
Scalar *  a,
blas_int  lda,
Scalar *  row_scale,
Scalar *  column_scale,
Scalar &  row_condition,
Scalar &  column_condition,
Scalar &  max_abs 
)

Compute real dense general row/column equilibration factors.

◆ gees() [1/2]

template<uni20::LapackReal Scalar>
void uni20::lapack::gees ( char  jobvs,
char  sort,
blas_int  n,
Scalar *  a,
blas_int  lda,
blas_int &  selected_dimension,
Scalar *  wr,
Scalar *  wi,
Scalar *  vs,
blas_int  ldvs,
Scalar *  work,
blas_int  lwork,
blas_int *  bwork 
)

Compute the real Schur form of a real nonsymmetric matrix.

◆ gees() [2/2]

template<uni20::LapackComplexReal Real>
void uni20::lapack::gees ( char  jobvs,
char  sort,
blas_int  n,
uni20::detail::standard_complex< Real > *  a,
blas_int  lda,
blas_int &  selected_dimension,
uni20::detail::standard_complex< Real > *  w,
uni20::detail::standard_complex< Real > *  vs,
blas_int  ldvs,
uni20::detail::standard_complex< Real > *  work,
blas_int  lwork,
Real *  rwork,
blas_int *  bwork 
)

Compute the complex Schur form of a complex nonsymmetric matrix.

◆ geev() [1/2]

template<uni20::LapackReal Scalar>
void uni20::lapack::geev ( char  jobvl,
char  jobvr,
blas_int  n,
Scalar *  a,
blas_int  lda,
Scalar *  wr,
Scalar *  wi,
Scalar *  vl,
blas_int  ldvl,
Scalar *  vr,
blas_int  ldvr,
Scalar *  work,
blas_int  lwork 
)

Compute eigenvalues and optionally eigenvectors of a real nonsymmetric matrix.

◆ geev() [2/2]

template<uni20::LapackComplexReal Real>
void uni20::lapack::geev ( char  jobvl,
char  jobvr,
blas_int  n,
uni20::detail::standard_complex< Real > *  a,
blas_int  lda,
uni20::detail::standard_complex< Real > *  w,
uni20::detail::standard_complex< Real > *  vl,
blas_int  ldvl,
uni20::detail::standard_complex< Real > *  vr,
blas_int  ldvr,
uni20::detail::standard_complex< Real > *  work,
blas_int  lwork,
Real *  rwork 
)

Compute eigenvalues and optionally eigenvectors of a complex nonsymmetric matrix.

◆ geevx()

template<uni20::LapackReal Scalar>
void uni20::lapack::geevx ( char  balanc,
char  jobvl,
char  jobvr,
char  sense,
blas_int  n,
Scalar *  a,
blas_int  lda,
Scalar *  wr,
Scalar *  wi,
Scalar *  vl,
blas_int  ldvl,
Scalar *  vr,
blas_int  ldvr,
blas_int &  ilo,
blas_int &  ihi,
Scalar *  scale,
Scalar &  abnrm,
Scalar *  rconde,
Scalar *  rcondv,
Scalar *  work,
blas_int  lwork,
blas_int *  iwork 
)

Compute real nonsymmetric eigenpairs with balancing and condition estimates.

◆ gehrd()

template<uni20::LapackReal Scalar>
void uni20::lapack::gehrd ( blas_int  n,
blas_int  first,
blas_int  last,
Scalar *  a,
blas_int  lda,
Scalar *  tau,
Scalar *  work,
blas_int  lwork 
)

Reduce a real dense general matrix to upper Hessenberg form.

◆ gelqf()

template<uni20::LapackScalar Scalar>
void uni20::lapack::gelqf ( blas_int  m,
blas_int  n,
Scalar *  a,
blas_int  lda,
Scalar *  tau,
Scalar *  work,
blas_int  lwork 
)

Compute a real or complex dense LQ factorization through the configured LAPACK backend.

◆ gels()

template<uni20::LapackReal Scalar>
void uni20::lapack::gels ( char  trans,
blas_int  m,
blas_int  n,
blas_int  nrhs,
Scalar *  a,
blas_int  lda,
Scalar *  b,
blas_int  ldb,
Scalar *  work,
blas_int  lwork 
)

Solve a real dense general least-squares problem through the configured LAPACK backend.

◆ gelsd()

template<uni20::LapackReal Scalar>
void uni20::lapack::gelsd ( blas_int  m,
blas_int  n,
blas_int  nrhs,
Scalar *  a,
blas_int  lda,
Scalar *  b,
blas_int  ldb,
Scalar *  s,
Scalar  rcond,
blas_int &  rank,
Scalar *  work,
blas_int  lwork,
blas_int *  iwork 
)

Solve a real dense general least-squares problem by divide-and-conquer SVD.

◆ gelss()

template<uni20::LapackReal Scalar>
void uni20::lapack::gelss ( blas_int  m,
blas_int  n,
blas_int  nrhs,
Scalar *  a,
blas_int  lda,
Scalar *  b,
blas_int  ldb,
Scalar *  s,
Scalar  rcond,
blas_int &  rank,
Scalar *  work,
blas_int  lwork 
)

Solve a real dense general least-squares problem by SVD.

◆ gelsy()

template<uni20::LapackReal Scalar>
void uni20::lapack::gelsy ( blas_int  m,
blas_int  n,
blas_int  nrhs,
Scalar *  a,
blas_int  lda,
Scalar *  b,
blas_int  ldb,
blas_int *  jpvt,
Scalar  rcond,
blas_int &  rank,
Scalar *  work,
blas_int  lwork 
)

Solve a real dense general least-squares problem by complete orthogonal factorization.

◆ geqlf()

template<uni20::LapackReal Scalar>
void uni20::lapack::geqlf ( blas_int  m,
blas_int  n,
Scalar *  a,
blas_int  lda,
Scalar *  tau,
Scalar *  work,
blas_int  lwork 
)

Compute a real dense QL factorization through the configured LAPACK backend.

◆ geqp3()

template<uni20::LapackReal Scalar>
void uni20::lapack::geqp3 ( blas_int  m,
blas_int  n,
Scalar *  a,
blas_int  lda,
blas_int *  jpvt,
Scalar *  tau,
Scalar *  work,
blas_int  lwork 
)

Compute a real dense pivoted QR factorization.

◆ geqrf()

template<uni20::LapackScalar Scalar>
void uni20::lapack::geqrf ( blas_int  m,
blas_int  n,
Scalar *  a,
blas_int  lda,
Scalar *  tau,
Scalar *  work,
blas_int  lwork 
)

Compute a real or complex dense QR factorization through the configured LAPACK backend.

◆ gerfs()

template<uni20::LapackReal Scalar>
void uni20::lapack::gerfs ( char  trans,
blas_int  n,
blas_int  nrhs,
Scalar *  a,
blas_int  lda,
Scalar *  factors,
blas_int  factor_lda,
blas_int const *  ipiv,
Scalar *  b,
blas_int  ldb,
Scalar *  x,
blas_int  ldx,
Scalar *  forward_error,
Scalar *  backward_error,
Scalar *  work,
blas_int *  iwork 
)

Refine a real dense general linear-system solve and return LAPACK diagnostics.

◆ gerqf()

template<uni20::LapackReal Scalar>
void uni20::lapack::gerqf ( blas_int  m,
blas_int  n,
Scalar *  a,
blas_int  lda,
Scalar *  tau,
Scalar *  work,
blas_int  lwork 
)

Compute a real dense RQ factorization through the configured LAPACK backend.

◆ gesdd() [1/2]

template<uni20::LapackReal Scalar>
void uni20::lapack::gesdd ( char  jobz,
blas_int  m,
blas_int  n,
Scalar *  a,
blas_int  lda,
Scalar *  s,
Scalar *  u,
blas_int  ldu,
Scalar *  vt,
blas_int  ldvt,
Scalar *  work,
blas_int  lwork,
blas_int *  iwork 
)

Compute a real dense divide-and-conquer singular value decomposition.

◆ gesdd() [2/2]

template<uni20::LapackComplexReal Real>
void uni20::lapack::gesdd ( char  jobz,
blas_int  m,
blas_int  n,
uni20::detail::standard_complex< Real > *  a,
blas_int  lda,
Real *  s,
uni20::detail::standard_complex< Real > *  u,
blas_int  ldu,
uni20::detail::standard_complex< Real > *  vt,
blas_int  ldvt,
uni20::detail::standard_complex< Real > *  work,
blas_int  lwork,
Real *  rwork,
blas_int *  iwork 
)

Compute a complex dense divide-and-conquer singular value decomposition.

◆ gesv() [1/2]

template<uni20::LapackReal Scalar>
void uni20::lapack::gesv ( blas_int  n,
blas_int  nrhs,
Scalar *  a,
blas_int  lda,
blas_int *  ipiv,
Scalar *  b,
blas_int  ldb 
)

Solve a real dense general linear system through the configured LAPACK backend.

◆ gesv() [2/2]

template<uni20::LapackComplexReal Real>
void uni20::lapack::gesv ( blas_int  n,
blas_int  nrhs,
uni20::detail::standard_complex< Real > *  a,
blas_int  lda,
blas_int *  ipiv,
uni20::detail::standard_complex< Real > *  b,
blas_int  ldb 
)

Solve a complex dense general linear system through the configured LAPACK backend.

◆ gesvd() [1/2]

template<uni20::LapackReal Scalar>
void uni20::lapack::gesvd ( char  jobu,
char  jobvt,
blas_int  m,
blas_int  n,
Scalar *  a,
blas_int  lda,
Scalar *  s,
Scalar *  u,
blas_int  ldu,
Scalar *  vt,
blas_int  ldvt,
Scalar *  work,
blas_int  lwork 
)

Compute a real dense singular value decomposition.

◆ gesvd() [2/2]

template<uni20::LapackComplexReal Real>
void uni20::lapack::gesvd ( char  jobu,
char  jobvt,
blas_int  m,
blas_int  n,
uni20::detail::standard_complex< Real > *  a,
blas_int  lda,
Real *  s,
uni20::detail::standard_complex< Real > *  u,
blas_int  ldu,
uni20::detail::standard_complex< Real > *  vt,
blas_int  ldvt,
uni20::detail::standard_complex< Real > *  work,
blas_int  lwork,
Real *  rwork 
)

Compute a complex dense singular value decomposition.

◆ gesvdx() [1/2]

template<uni20::LapackReal Scalar>
void uni20::lapack::gesvdx ( char  jobu,
char  jobvt,
char  range,
blas_int  m,
blas_int  n,
Scalar *  a,
blas_int  lda,
Scalar  vl,
Scalar  vu,
blas_int  il,
blas_int  iu,
blas_int &  selected_count,
Scalar *  singular_values,
Scalar *  u,
blas_int  ldu,
Scalar *  vt,
blas_int  ldvt,
Scalar *  work,
blas_int  lwork,
blas_int *  iwork 
)

Compute selected singular values/vectors of a real dense matrix.

◆ gesvdx() [2/2]

template<uni20::LapackComplexReal Real>
void uni20::lapack::gesvdx ( char  jobu,
char  jobvt,
char  range,
blas_int  m,
blas_int  n,
uni20::detail::standard_complex< Real > *  a,
blas_int  lda,
Real  vl,
Real  vu,
blas_int  il,
blas_int  iu,
blas_int &  selected_count,
Real *  singular_values,
uni20::detail::standard_complex< Real > *  u,
blas_int  ldu,
uni20::detail::standard_complex< Real > *  vt,
blas_int  ldvt,
uni20::detail::standard_complex< Real > *  work,
blas_int  lwork,
Real *  rwork,
blas_int *  iwork 
)

Compute selected singular values and vectors of a complex dense matrix.

◆ gesvx()

template<uni20::LapackReal Scalar>
bool uni20::lapack::gesvx ( char  fact,
char  trans,
blas_int  n,
blas_int  nrhs,
Scalar *  a,
blas_int  lda,
Scalar *  af,
blas_int  ldaf,
blas_int *  ipiv,
char &  equed,
Scalar *  row_scale,
Scalar *  column_scale,
Scalar *  b,
blas_int  ldb,
Scalar *  x,
blas_int  ldx,
Scalar &  rcond,
Scalar *  forward_error,
Scalar *  backward_error,
Scalar *  work,
blas_int *  iwork 
)

Solve a real dense general linear system with LAPACK expert-driver diagnostics.

◆ getrf() [1/2]

template<uni20::LapackReal Scalar>
void uni20::lapack::getrf ( blas_int  m,
blas_int  n,
Scalar *  a,
blas_int  lda,
blas_int *  ipiv 
)

Compute a real dense general LU factorization through the configured LAPACK backend.

◆ getrf() [2/2]

template<uni20::LapackComplexReal Real>
void uni20::lapack::getrf ( blas_int  m,
blas_int  n,
uni20::detail::standard_complex< Real > *  a,
blas_int  lda,
blas_int *  ipiv 
)

Compute a complex dense general LU factorization through the configured LAPACK backend.

◆ getri() [1/2]

template<uni20::LapackReal Scalar>
void uni20::lapack::getri ( blas_int  n,
Scalar *  a,
blas_int  lda,
blas_int *  ipiv,
Scalar *  work,
blas_int  lwork 
)

Invert a real dense general matrix from an existing LU factorization.

◆ getri() [2/2]

template<uni20::LapackComplexReal Real>
void uni20::lapack::getri ( blas_int  n,
uni20::detail::standard_complex< Real > *  a,
blas_int  lda,
blas_int *  ipiv,
uni20::detail::standard_complex< Real > *  work,
blas_int  lwork 
)

Invert a complex dense general matrix from an existing LU factorization.

◆ getrs() [1/2]

template<uni20::LapackReal Scalar>
void uni20::lapack::getrs ( char  trans,
blas_int  n,
blas_int  nrhs,
Scalar *  a,
blas_int  lda,
blas_int const *  ipiv,
Scalar *  b,
blas_int  ldb 
)

Solve using an existing real dense general LU factorization.

◆ getrs() [2/2]

template<uni20::LapackComplexReal Real>
void uni20::lapack::getrs ( char  trans,
blas_int  n,
blas_int  nrhs,
uni20::detail::standard_complex< Real > *  a,
blas_int  lda,
blas_int const *  ipiv,
uni20::detail::standard_complex< Real > *  b,
blas_int  ldb 
)

Solve using an existing complex dense general LU factorization.

◆ ggbak()

template<uni20::LapackReal Scalar>
void uni20::lapack::ggbak ( char  job,
char  side,
blas_int  n,
blas_int  first,
blas_int  last,
Scalar *  lscale,
Scalar *  rscale,
blas_int  vector_count,
Scalar *  vectors,
blas_int  leading_dimension 
)

Back-transform generalized nonsymmetric eigenvectors after pencil balancing.

◆ ggbal()

template<uni20::LapackReal Scalar>
void uni20::lapack::ggbal ( char  job,
blas_int  n,
Scalar *  a,
blas_int  lda,
Scalar *  b,
blas_int  ldb,
blas_int &  first,
blas_int &  last,
Scalar *  lscale,
Scalar *  rscale,
Scalar *  work 
)

Balance a real nonsymmetric matrix pencil before generalized eigenanalysis.

◆ gges()

template<uni20::LapackReal Scalar>
void uni20::lapack::gges ( char  jobvsl,
char  jobvsr,
char  sort,
blas_int  n,
Scalar *  a,
blas_int  lda,
Scalar *  b,
blas_int  ldb,
blas_int &  selected_dimension,
Scalar *  alphar,
Scalar *  alphai,
Scalar *  beta,
Scalar *  vsl,
blas_int  ldvsl,
Scalar *  vsr,
blas_int  ldvsr,
Scalar *  work,
blas_int  lwork,
blas_int *  bwork 
)

Compute a generalized real Schur form of a real nonsymmetric matrix pencil.

◆ ggev()

template<uni20::LapackReal Scalar>
void uni20::lapack::ggev ( char  jobvl,
char  jobvr,
blas_int  n,
Scalar *  a,
blas_int  lda,
Scalar *  b,
blas_int  ldb,
Scalar *  alphar,
Scalar *  alphai,
Scalar *  beta,
Scalar *  vl,
blas_int  ldvl,
Scalar *  vr,
blas_int  ldvr,
Scalar *  work,
blas_int  lwork 
)

Compute generalized eigenvalues and optionally eigenvectors of a real nonsymmetric matrix pencil.

◆ ggevx()

template<uni20::LapackReal Scalar>
void uni20::lapack::ggevx ( char  balanc,
char  jobvl,
char  jobvr,
char  sense,
blas_int  n,
Scalar *  a,
blas_int  lda,
Scalar *  b,
blas_int  ldb,
Scalar *  alphar,
Scalar *  alphai,
Scalar *  beta,
Scalar *  vl,
blas_int  ldvl,
Scalar *  vr,
blas_int  ldvr,
blas_int &  ilo,
blas_int &  ihi,
Scalar *  lscale,
Scalar *  rscale,
Scalar &  abnrm,
Scalar &  bbnrm,
Scalar *  rconde,
Scalar *  rcondv,
Scalar *  work,
blas_int  lwork,
blas_int *  iwork,
blas_int *  bwork 
)

Compute generalized real nonsymmetric eigenpairs with balancing and condition estimates.

◆ gghrd()

template<uni20::LapackReal Scalar>
void uni20::lapack::gghrd ( char  compq,
char  compz,
blas_int  n,
blas_int  first,
blas_int  last,
Scalar *  a,
blas_int  lda,
Scalar *  b,
blas_int  ldb,
Scalar *  q,
blas_int  ldq,
Scalar *  z,
blas_int  ldz 
)

Reduce a real matrix pencil to generalized Hessenberg form.

◆ gtcon()

template<uni20::LapackReal Scalar>
Scalar uni20::lapack::gtcon ( char  norm,
blas_int  n,
Scalar *  dl,
Scalar *  d,
Scalar *  du,
Scalar *  du2,
blas_int const *  ipiv,
Scalar  matrix_norm,
Scalar *  work,
blas_int *  iwork 
)

Estimate a real tridiagonal reciprocal condition number.

◆ gtrfs()

template<uni20::LapackReal Scalar>
void uni20::lapack::gtrfs ( char  trans,
blas_int  n,
blas_int  nrhs,
Scalar *  dl,
Scalar *  d,
Scalar *  du,
Scalar *  dlf,
Scalar *  df,
Scalar *  duf,
Scalar *  du2,
blas_int const *  ipiv,
Scalar *  b,
blas_int  ldb,
Scalar *  x,
blas_int  ldx,
Scalar *  forward_error,
Scalar *  backward_error,
Scalar *  work,
blas_int *  iwork 
)

Refine a real tridiagonal linear-system solve and return LAPACK diagnostics.

◆ gtsv()

template<uni20::LapackReal Scalar>
void uni20::lapack::gtsv ( blas_int  n,
blas_int  nrhs,
Scalar *  dl,
Scalar *  d,
Scalar *  du,
Scalar *  b,
blas_int  ldb 
)

Solve a real tridiagonal linear system through the configured LAPACK backend.

◆ gtsvx()

template<uni20::LapackReal Scalar>
bool uni20::lapack::gtsvx ( char  fact,
char  trans,
blas_int  n,
blas_int  nrhs,
Scalar *  dl,
Scalar *  d,
Scalar *  du,
Scalar *  dlf,
Scalar *  df,
Scalar *  duf,
Scalar *  du2,
blas_int *  ipiv,
Scalar *  b,
blas_int  ldb,
Scalar *  x,
blas_int  ldx,
Scalar &  rcond,
Scalar *  forward_error,
Scalar *  backward_error,
Scalar *  work,
blas_int *  iwork 
)

Solve a real tridiagonal linear system with LAPACK expert-driver diagnostics.

◆ gttrf()

template<uni20::LapackReal Scalar>
void uni20::lapack::gttrf ( blas_int  n,
Scalar *  dl,
Scalar *  d,
Scalar *  du,
Scalar *  du2,
blas_int *  ipiv 
)

Compute a real tridiagonal LU factorization through the configured LAPACK backend.

◆ gttrs()

template<uni20::LapackReal Scalar>
void uni20::lapack::gttrs ( char  trans,
blas_int  n,
blas_int  nrhs,
Scalar *  dl,
Scalar *  d,
Scalar *  du,
Scalar *  du2,
blas_int const *  ipiv,
Scalar *  b,
blas_int  ldb 
)

Solve using an existing real tridiagonal LU factorization.

◆ heev()

template<uni20::LapackComplexReal Real>
void uni20::lapack::heev ( char  jobz,
char  uplo,
blas_int  n,
uni20::detail::standard_complex< Real > *  a,
blas_int  lda,
Real *  w,
uni20::detail::standard_complex< Real > *  work,
blas_int  lwork,
Real *  rwork 
)

Compute eigenvalues and optionally eigenvectors of a complex Hermitian matrix.

◆ heevd()

template<uni20::LapackComplexReal Real>
void uni20::lapack::heevd ( char  jobz,
char  uplo,
blas_int  n,
uni20::detail::standard_complex< Real > *  a,
blas_int  lda,
Real *  w,
uni20::detail::standard_complex< Real > *  work,
blas_int  lwork,
Real *  rwork,
blas_int  lrwork,
blas_int *  iwork,
blas_int  liwork 
)

Compute eigenvalues and optionally eigenvectors of a complex Hermitian matrix by divide and conquer.

◆ heevr()

template<uni20::LapackComplexReal Real>
void uni20::lapack::heevr ( char  jobz,
char  range,
char  uplo,
blas_int  n,
uni20::detail::standard_complex< Real > *  a,
blas_int  lda,
Real  vl,
Real  vu,
blas_int  il,
blas_int  iu,
Real  abstol,
blas_int &  selected_count,
Real *  w,
uni20::detail::standard_complex< Real > *  z,
blas_int  ldz,
blas_int *  isuppz,
uni20::detail::standard_complex< Real > *  work,
blas_int  lwork,
Real *  rwork,
blas_int  lrwork,
blas_int *  iwork,
blas_int  liwork 
)

Compute selected eigenvalues and optionally eigenvectors of a complex Hermitian matrix.

◆ hegv()

template<uni20::LapackComplexReal Real>
void uni20::lapack::hegv ( blas_int  itype,
char  jobz,
char  uplo,
blas_int  n,
uni20::detail::standard_complex< Real > *  a,
blas_int  lda,
uni20::detail::standard_complex< Real > *  b,
blas_int  ldb,
Real *  w,
uni20::detail::standard_complex< Real > *  work,
blas_int  lwork,
Real *  rwork 
)

Compute eigenvalues and optionally eigenvectors of a complex generalized Hermitian-definite problem.

◆ hegvd()

template<uni20::LapackComplexReal Real>
void uni20::lapack::hegvd ( blas_int  itype,
char  jobz,
char  uplo,
blas_int  n,
uni20::detail::standard_complex< Real > *  a,
blas_int  lda,
uni20::detail::standard_complex< Real > *  b,
blas_int  ldb,
Real *  w,
uni20::detail::standard_complex< Real > *  work,
blas_int  lwork,
Real *  rwork,
blas_int  lrwork,
blas_int *  iwork,
blas_int  liwork 
)

Compute eigenvalues and optionally eigenvectors of a complex generalized Hermitian-definite problem by divide and conquer.

◆ hegvx()

template<uni20::LapackComplexReal Real>
void uni20::lapack::hegvx ( blas_int  itype,
char  jobz,
char  range,
char  uplo,
blas_int  n,
uni20::detail::standard_complex< Real > *  a,
blas_int  lda,
uni20::detail::standard_complex< Real > *  b,
blas_int  ldb,
Real  vl,
Real  vu,
blas_int  il,
blas_int  iu,
Real  abstol,
blas_int &  selected_count,
Real *  w,
uni20::detail::standard_complex< Real > *  z,
blas_int  ldz,
uni20::detail::standard_complex< Real > *  work,
blas_int  lwork,
Real *  rwork,
blas_int *  iwork,
blas_int *  ifail 
)

Compute selected eigenvalues and optionally eigenvectors of a complex generalized Hermitian-definite problem.

◆ hgeqz()

template<uni20::LapackReal Scalar>
void uni20::lapack::hgeqz ( char  job,
char  compq,
char  compz,
blas_int  n,
blas_int  first,
blas_int  last,
Scalar *  h,
blas_int  ldh,
Scalar *  t,
blas_int  ldt,
Scalar *  alphar,
Scalar *  alphai,
Scalar *  beta,
Scalar *  q,
blas_int  ldq,
Scalar *  z,
blas_int  ldz,
Scalar *  work,
blas_int  lwork 
)

Compute a generalized Schur form from a real Hessenberg-triangular pencil.

◆ hseqr()

template<uni20::LapackReal Scalar>
void uni20::lapack::hseqr ( char  job,
char  compz,
blas_int  n,
blas_int  first,
blas_int  last,
Scalar *  h,
blas_int  ldh,
Scalar *  wr,
Scalar *  wi,
Scalar *  z,
blas_int  ldz,
Scalar *  work,
blas_int  lwork 
)

Compute a Schur form of a real upper Hessenberg matrix.

◆ langb()

template<uni20::LapackReal Scalar>
Scalar uni20::lapack::langb ( char  norm,
blas_int  n,
blas_int  kl,
blas_int  ku,
Scalar *  ab,
blas_int  ldab,
Scalar *  work 
)

Compute a real general-band matrix norm through the configured LAPACK backend.

◆ lange() [1/2]

template<uni20::LapackReal Scalar>
Scalar uni20::lapack::lange ( char  norm,
blas_int  m,
blas_int  n,
Scalar *  a,
blas_int  lda,
Scalar *  work 
)

Compute a dense real matrix norm through the configured LAPACK backend.

◆ lange() [2/2]

template<uni20::LapackComplexReal Real>
Real uni20::lapack::lange ( char  norm,
blas_int  m,
blas_int  n,
uni20::detail::standard_complex< Real > *  a,
blas_int  lda,
Real *  work 
)

Compute a dense complex matrix norm through the configured LAPACK backend.

◆ lanhe()

template<uni20::LapackComplexReal Real>
Real uni20::lapack::lanhe ( char  norm,
char  uplo,
blas_int  n,
uni20::detail::standard_complex< Real > *  a,
blas_int  lda,
Real *  work 
)

Compute a dense complex Hermitian matrix norm through the configured LAPACK backend.

◆ lansy()

template<uni20::LapackReal Scalar>
Scalar uni20::lapack::lansy ( char  norm,
char  uplo,
blas_int  n,
Scalar *  a,
blas_int  lda,
Scalar *  work 
)

Compute a dense real symmetric matrix norm through the configured LAPACK backend.

◆ lantr() [1/2]

template<uni20::LapackReal Scalar>
Scalar uni20::lapack::lantr ( char  norm,
char  uplo,
char  diag,
blas_int  m,
blas_int  n,
Scalar *  a,
blas_int  lda,
Scalar *  work 
)

Compute a dense real triangular or trapezoidal matrix norm through the configured LAPACK backend.

◆ lantr() [2/2]

template<uni20::LapackComplexReal Real>
Real uni20::lapack::lantr ( char  norm,
char  uplo,
char  diag,
blas_int  m,
blas_int  n,
uni20::detail::standard_complex< Real > *  a,
blas_int  lda,
Real *  work 
)

Compute a dense complex triangular or trapezoidal matrix norm through the configured LAPACK backend.

◆ orgbr()

template<uni20::LapackReal Scalar>
void uni20::lapack::orgbr ( char  vect,
blas_int  m,
blas_int  n,
blas_int  k,
Scalar *  a,
blas_int  lda,
Scalar *  tau,
Scalar *  work,
blas_int  lwork 
)

Generate an explicit real orthogonal factor from bidiagonal reduction.

◆ orghr()

template<uni20::LapackReal Scalar>
void uni20::lapack::orghr ( blas_int  n,
blas_int  first,
blas_int  last,
Scalar *  a,
blas_int  lda,
Scalar const *  tau,
Scalar *  work,
blas_int  lwork 
)

Generate an explicit real orthogonal factor from Hessenberg reduction.

◆ orglq()

template<uni20::LapackScalar Scalar>
void uni20::lapack::orglq ( blas_int  m,
blas_int  n,
blas_int  k,
Scalar *  a,
blas_int  lda,
Scalar *  tau,
Scalar *  work,
blas_int  lwork 
)

Generate an explicit orthogonal or unitary Q factor from an LQ factorization.

◆ orgql()

template<uni20::LapackReal Scalar>
void uni20::lapack::orgql ( blas_int  m,
blas_int  n,
blas_int  k,
Scalar *  a,
blas_int  lda,
Scalar *  tau,
Scalar *  work,
blas_int  lwork 
)

Generate an explicit real Q factor from a QL factorization.

◆ orgqr()

template<uni20::LapackScalar Scalar>
void uni20::lapack::orgqr ( blas_int  m,
blas_int  n,
blas_int  k,
Scalar *  a,
blas_int  lda,
Scalar *  tau,
Scalar *  work,
blas_int  lwork 
)

Generate an explicit orthogonal or unitary Q factor from a QR factorization.

◆ orgrq()

template<uni20::LapackReal Scalar>
void uni20::lapack::orgrq ( blas_int  m,
blas_int  n,
blas_int  k,
Scalar *  a,
blas_int  lda,
Scalar *  tau,
Scalar *  work,
blas_int  lwork 
)

Generate an explicit real Q factor from an RQ factorization.

◆ orgtr()

template<uni20::LapackReal Scalar>
void uni20::lapack::orgtr ( char  uplo,
blas_int  n,
Scalar *  a,
blas_int  lda,
Scalar const *  tau,
Scalar *  work,
blas_int  lwork 
)

Generate an explicit real orthogonal factor from symmetric tridiagonal reduction.

◆ ormbr()

template<uni20::LapackReal Scalar>
void uni20::lapack::ormbr ( char  vect,
char  side,
char  trans,
blas_int  m,
blas_int  n,
blas_int  k,
Scalar *  a,
blas_int  lda,
Scalar *  tau,
Scalar *  c,
blas_int  ldc,
Scalar *  work,
blas_int  lwork 
)

Multiply by an implicit real orthogonal factor from bidiagonal reduction.

◆ ormhr()

template<uni20::LapackReal Scalar>
void uni20::lapack::ormhr ( char  side,
char  trans,
blas_int  m,
blas_int  n,
blas_int  first,
blas_int  last,
Scalar *  a,
blas_int  lda,
Scalar const *  tau,
Scalar *  c,
blas_int  ldc,
Scalar *  work,
blas_int  lwork 
)

Multiply by an implicit real orthogonal factor from Hessenberg reduction.

◆ ormlq()

template<uni20::LapackReal Scalar>
void uni20::lapack::ormlq ( char  side,
char  trans,
blas_int  m,
blas_int  n,
blas_int  k,
Scalar *  a,
blas_int  lda,
Scalar *  tau,
Scalar *  c,
blas_int  ldc,
Scalar *  work,
blas_int  lwork 
)

Multiply by the implicit real Q factor from an LQ factorization.

◆ ormql()

template<uni20::LapackReal Scalar>
void uni20::lapack::ormql ( char  side,
char  trans,
blas_int  m,
blas_int  n,
blas_int  k,
Scalar *  a,
blas_int  lda,
Scalar *  tau,
Scalar *  c,
blas_int  ldc,
Scalar *  work,
blas_int  lwork 
)

Multiply by the implicit real Q factor from a QL factorization.

◆ ormqr()

template<uni20::LapackReal Scalar>
void uni20::lapack::ormqr ( char  side,
char  trans,
blas_int  m,
blas_int  n,
blas_int  k,
Scalar *  a,
blas_int  lda,
Scalar *  tau,
Scalar *  c,
blas_int  ldc,
Scalar *  work,
blas_int  lwork 
)

Multiply by the implicit real Q factor from a QR factorization.

◆ ormrq()

template<uni20::LapackReal Scalar>
void uni20::lapack::ormrq ( char  side,
char  trans,
blas_int  m,
blas_int  n,
blas_int  k,
Scalar *  a,
blas_int  lda,
Scalar *  tau,
Scalar *  c,
blas_int  ldc,
Scalar *  work,
blas_int  lwork 
)

Multiply by the implicit real Q factor from an RQ factorization.

◆ ormtr()

template<uni20::LapackReal Scalar>
void uni20::lapack::ormtr ( char  side,
char  uplo,
char  trans,
blas_int  m,
blas_int  n,
Scalar *  a,
blas_int  lda,
Scalar const *  tau,
Scalar *  c,
blas_int  ldc,
Scalar *  work,
blas_int  lwork 
)

Multiply by an implicit real orthogonal factor from symmetric tridiagonal reduction.

◆ pbcon()

template<uni20::LapackReal Scalar>
Scalar uni20::lapack::pbcon ( char  uplo,
blas_int  n,
blas_int  kd,
Scalar *  ab,
blas_int  ldab,
Scalar  anorm,
Scalar *  work,
blas_int *  iwork 
)

Estimate a real symmetric positive-definite band reciprocal condition number.

◆ pbrfs()

template<uni20::LapackReal Scalar>
void uni20::lapack::pbrfs ( char  uplo,
blas_int  n,
blas_int  kd,
blas_int  nrhs,
Scalar *  ab,
blas_int  ldab,
Scalar *  afb,
blas_int  ldafb,
Scalar *  b,
blas_int  ldb,
Scalar *  x,
blas_int  ldx,
Scalar *  forward_error,
Scalar *  backward_error,
Scalar *  work,
blas_int *  iwork 
)

Refine a real symmetric positive-definite band solve and return LAPACK diagnostics.

◆ pbsv()

template<uni20::LapackReal Scalar>
void uni20::lapack::pbsv ( char  uplo,
blas_int  n,
blas_int  kd,
blas_int  nrhs,
Scalar *  ab,
blas_int  ldab,
Scalar *  b,
blas_int  ldb 
)

Solve a real symmetric positive-definite band linear system.

◆ pbsvx()

template<uni20::LapackReal Scalar>
bool uni20::lapack::pbsvx ( char  fact,
char  uplo,
blas_int  n,
blas_int  kd,
blas_int  nrhs,
Scalar *  ab,
blas_int  ldab,
Scalar *  afb,
blas_int  ldafb,
char &  equed,
Scalar *  scale,
Scalar *  b,
blas_int  ldb,
Scalar *  x,
blas_int  ldx,
Scalar &  rcond,
Scalar *  forward_error,
Scalar *  backward_error,
Scalar *  work,
blas_int *  iwork 
)

Solve a real symmetric positive-definite band system with LAPACK expert-driver diagnostics.

◆ pbtrf()

template<uni20::LapackReal Scalar>
void uni20::lapack::pbtrf ( char  uplo,
blas_int  n,
blas_int  kd,
Scalar *  ab,
blas_int  ldab 
)

Compute a real symmetric positive-definite band Cholesky factorization.

◆ pbtrs()

template<uni20::LapackReal Scalar>
void uni20::lapack::pbtrs ( char  uplo,
blas_int  n,
blas_int  kd,
blas_int  nrhs,
Scalar *  ab,
blas_int  ldab,
Scalar *  b,
blas_int  ldb 
)

Solve using an existing real symmetric positive-definite band Cholesky factorization.

◆ pocon()

template<uni20::LapackReal Scalar>
Scalar uni20::lapack::pocon ( char  uplo,
blas_int  n,
Scalar *  a,
blas_int  lda,
Scalar  matrix_one_norm,
Scalar *  work,
blas_int *  iwork 
)

Estimate a real dense SPD reciprocal condition number.

◆ poequ()

template<uni20::LapackReal Scalar>
void uni20::lapack::poequ ( blas_int  n,
Scalar *  a,
blas_int  lda,
Scalar *  scale,
Scalar &  scale_condition,
Scalar &  max_abs 
)

Compute real dense SPD equilibration factors.

◆ porfs()

template<uni20::LapackReal Scalar>
void uni20::lapack::porfs ( char  uplo,
blas_int  n,
blas_int  nrhs,
Scalar *  a,
blas_int  lda,
Scalar *  factors,
blas_int  factor_lda,
Scalar *  b,
blas_int  ldb,
Scalar *  x,
blas_int  ldx,
Scalar *  forward_error,
Scalar *  backward_error,
Scalar *  work,
blas_int *  iwork 
)

Refine a real dense SPD linear-system solve and return LAPACK diagnostics.

◆ posvx()

template<uni20::LapackReal Scalar>
bool uni20::lapack::posvx ( char  fact,
char  uplo,
blas_int  n,
blas_int  nrhs,
Scalar *  a,
blas_int  lda,
Scalar *  af,
blas_int  ldaf,
char &  equed,
Scalar *  scale,
Scalar *  b,
blas_int  ldb,
Scalar *  x,
blas_int  ldx,
Scalar &  rcond,
Scalar *  forward_error,
Scalar *  backward_error,
Scalar *  work,
blas_int *  iwork 
)

Solve a real dense SPD linear system with LAPACK expert-driver diagnostics.

◆ potrf()

template<uni20::LapackReal Scalar>
void uni20::lapack::potrf ( char  uplo,
blas_int  n,
Scalar *  a,
blas_int  lda 
)

Compute a real dense Cholesky factorization.

◆ potri()

template<uni20::LapackReal Scalar>
void uni20::lapack::potri ( char  uplo,
blas_int  n,
Scalar *  a,
blas_int  lda 
)

Invert a real dense matrix from an existing Cholesky factorization.

◆ potrs()

template<uni20::LapackReal Scalar>
void uni20::lapack::potrs ( char  uplo,
blas_int  n,
blas_int  nrhs,
Scalar *  a,
blas_int  lda,
Scalar *  b,
blas_int  ldb 
)

Solve using an existing real dense Cholesky factorization.

◆ pstrf()

template<uni20::LapackReal Scalar>
bool uni20::lapack::pstrf ( char  uplo,
blas_int  n,
Scalar *  a,
blas_int  lda,
blas_int *  pivots,
blas_int &  rank,
Scalar  tolerance,
Scalar *  work 
)

Compute a real dense pivoted Cholesky factorization.

◆ ptcon()

template<uni20::LapackReal Scalar>
Scalar uni20::lapack::ptcon ( blas_int  n,
Scalar *  d,
Scalar *  e,
Scalar  matrix_norm,
Scalar *  work 
)

Estimate a real symmetric positive-definite tridiagonal reciprocal condition number.

◆ ptrfs()

template<uni20::LapackReal Scalar>
void uni20::lapack::ptrfs ( blas_int  n,
blas_int  nrhs,
Scalar *  d,
Scalar *  e,
Scalar *  df,
Scalar *  ef,
Scalar *  b,
blas_int  ldb,
Scalar *  x,
blas_int  ldx,
Scalar *  forward_error,
Scalar *  backward_error,
Scalar *  work 
)

Refine a real symmetric positive-definite tridiagonal solve and return LAPACK diagnostics.

◆ ptsv()

template<uni20::LapackReal Scalar>
void uni20::lapack::ptsv ( blas_int  n,
blas_int  nrhs,
Scalar *  d,
Scalar *  e,
Scalar *  b,
blas_int  ldb 
)

Solve a real symmetric positive-definite tridiagonal linear system.

◆ ptsvx()

template<uni20::LapackReal Scalar>
bool uni20::lapack::ptsvx ( char  fact,
blas_int  n,
blas_int  nrhs,
Scalar *  d,
Scalar *  e,
Scalar *  df,
Scalar *  ef,
Scalar *  b,
blas_int  ldb,
Scalar *  x,
blas_int  ldx,
Scalar &  rcond,
Scalar *  forward_error,
Scalar *  backward_error,
Scalar *  work 
)

Solve a real symmetric positive-definite tridiagonal system with LAPACK expert-driver diagnostics.

◆ pttrf()

template<uni20::LapackReal Scalar>
void uni20::lapack::pttrf ( blas_int  n,
Scalar *  d,
Scalar *  e 
)

Compute a real symmetric positive-definite tridiagonal factorization.

◆ pttrs()

template<uni20::LapackReal Scalar>
void uni20::lapack::pttrs ( blas_int  n,
blas_int  nrhs,
Scalar *  d,
Scalar *  e,
Scalar *  b,
blas_int  ldb 
)

Solve using an existing real symmetric positive-definite tridiagonal factorization.

◆ steqr()

template<uni20::LapackReal Scalar>
void uni20::lapack::steqr ( char  compz,
blas_int  n,
Scalar *  d,
Scalar *  e,
Scalar *  z,
blas_int  ldz,
Scalar *  work 
)

Compute a real symmetric tridiagonal eigensystem by QR iteration.

◆ sterf()

template<uni20::LapackReal Scalar>
void uni20::lapack::sterf ( blas_int  n,
Scalar *  d,
Scalar *  e 
)

Compute eigenvalues of a real symmetric tridiagonal matrix.

◆ stevd()

template<uni20::LapackReal Scalar>
void uni20::lapack::stevd ( char  jobz,
blas_int  n,
Scalar *  d,
Scalar *  e,
Scalar *  z,
blas_int  ldz,
Scalar *  work,
blas_int  lwork,
blas_int *  iwork,
blas_int  liwork 
)

Compute a real symmetric tridiagonal eigensystem by divide-and-conquer.

◆ stevr()

template<uni20::LapackReal Scalar>
void uni20::lapack::stevr ( char  jobz,
char  range,
blas_int  n,
Scalar *  d,
Scalar *  e,
Scalar  vl,
Scalar  vu,
blas_int  il,
blas_int  iu,
Scalar  abstol,
blas_int &  selected_count,
Scalar *  w,
Scalar *  z,
blas_int  ldz,
blas_int *  isuppz,
Scalar *  work,
blas_int  lwork,
blas_int *  iwork,
blas_int  liwork 
)

Compute selected eigenvalues/eigenvectors of a real symmetric tridiagonal matrix.

◆ sycon()

template<uni20::LapackReal Scalar>
Scalar uni20::lapack::sycon ( char  uplo,
blas_int  n,
Scalar *  a,
blas_int  lda,
blas_int const *  ipiv,
Scalar  matrix_one_norm,
Scalar *  work,
blas_int *  iwork 
)

Estimate a dense real symmetric-indefinite reciprocal condition number.

◆ syev()

template<uni20::LapackReal Scalar>
void uni20::lapack::syev ( char  jobz,
char  uplo,
blas_int  n,
Scalar *  a,
blas_int  lda,
Scalar *  w,
Scalar *  work,
blas_int  lwork 
)

Compute eigenvalues and optionally eigenvectors of a real symmetric matrix.

◆ syevd()

template<uni20::LapackReal Scalar>
void uni20::lapack::syevd ( char  jobz,
char  uplo,
blas_int  n,
Scalar *  a,
blas_int  lda,
Scalar *  w,
Scalar *  work,
blas_int  lwork,
blas_int *  iwork,
blas_int  liwork 
)

Compute eigenvalues and optionally eigenvectors of a real symmetric matrix by divide and conquer.

◆ syevr()

template<uni20::LapackReal Scalar>
void uni20::lapack::syevr ( char  jobz,
char  range,
char  uplo,
blas_int  n,
Scalar *  a,
blas_int  lda,
Scalar  vl,
Scalar  vu,
blas_int  il,
blas_int  iu,
Scalar  abstol,
blas_int &  selected_count,
Scalar *  w,
Scalar *  z,
blas_int  ldz,
blas_int *  isuppz,
Scalar *  work,
blas_int  lwork,
blas_int *  iwork,
blas_int  liwork 
)

Compute selected eigenvalues and optionally eigenvectors of a real symmetric matrix.

◆ sygv()

template<uni20::LapackReal Scalar>
void uni20::lapack::sygv ( blas_int  itype,
char  jobz,
char  uplo,
blas_int  n,
Scalar *  a,
blas_int  lda,
Scalar *  b,
blas_int  ldb,
Scalar *  w,
Scalar *  work,
blas_int  lwork 
)

Compute eigenvalues and optionally eigenvectors of a real generalized symmetric-definite problem.

◆ sygvd()

template<uni20::LapackReal Scalar>
void uni20::lapack::sygvd ( blas_int  itype,
char  jobz,
char  uplo,
blas_int  n,
Scalar *  a,
blas_int  lda,
Scalar *  b,
blas_int  ldb,
Scalar *  w,
Scalar *  work,
blas_int  lwork,
blas_int *  iwork,
blas_int  liwork 
)

Compute eigenvalues and optionally eigenvectors of a real generalized symmetric-definite problem by divide and conquer.

◆ sygvx()

template<uni20::LapackReal Scalar>
void uni20::lapack::sygvx ( blas_int  itype,
char  jobz,
char  range,
char  uplo,
blas_int  n,
Scalar *  a,
blas_int  lda,
Scalar *  b,
blas_int  ldb,
Scalar  vl,
Scalar  vu,
blas_int  il,
blas_int  iu,
Scalar  abstol,
blas_int &  selected_count,
Scalar *  w,
Scalar *  z,
blas_int  ldz,
Scalar *  work,
blas_int  lwork,
blas_int *  iwork,
blas_int *  ifail 
)

Compute selected eigenvalues and optionally eigenvectors of a real generalized symmetric-definite problem.

◆ syrfs()

template<uni20::LapackReal Scalar>
void uni20::lapack::syrfs ( char  uplo,
blas_int  n,
blas_int  nrhs,
Scalar *  a,
blas_int  lda,
Scalar *  factors,
blas_int  factor_lda,
blas_int const *  ipiv,
Scalar *  b,
blas_int  ldb,
Scalar *  x,
blas_int  ldx,
Scalar *  forward_error,
Scalar *  backward_error,
Scalar *  work,
blas_int *  iwork 
)

Refine a dense real symmetric-indefinite solve and return LAPACK diagnostics.

◆ sysvx()

template<uni20::LapackReal Scalar>
bool uni20::lapack::sysvx ( char  fact,
char  uplo,
blas_int  n,
blas_int  nrhs,
Scalar *  a,
blas_int  lda,
Scalar *  af,
blas_int  ldaf,
blas_int *  ipiv,
Scalar *  b,
blas_int  ldb,
Scalar *  x,
blas_int  ldx,
Scalar &  rcond,
Scalar *  forward_error,
Scalar *  backward_error,
Scalar *  work,
blas_int  lwork,
blas_int *  iwork 
)

Solve a dense real symmetric-indefinite system with LAPACK expert-driver diagnostics.

◆ sytrd()

template<uni20::LapackReal Scalar>
void uni20::lapack::sytrd ( char  uplo,
blas_int  n,
Scalar *  a,
blas_int  lda,
Scalar *  d,
Scalar *  e,
Scalar *  tau,
Scalar *  work,
blas_int  lwork 
)

Reduce a real dense symmetric matrix to tridiagonal form.

◆ sytrf()

template<uni20::LapackReal Scalar>
void uni20::lapack::sytrf ( char  uplo,
blas_int  n,
Scalar *  a,
blas_int  lda,
blas_int *  ipiv,
Scalar *  work,
blas_int  lwork 
)

Compute a dense real symmetric-indefinite Bunch-Kaufman factorization.

◆ sytri()

template<uni20::LapackReal Scalar>
void uni20::lapack::sytri ( char  uplo,
blas_int  n,
Scalar *  a,
blas_int  lda,
blas_int const *  ipiv,
Scalar *  work 
)

Invert a dense real symmetric-indefinite matrix from its factorization.

◆ sytrs()

template<uni20::LapackReal Scalar>
void uni20::lapack::sytrs ( char  uplo,
blas_int  n,
blas_int  nrhs,
Scalar *  a,
blas_int  lda,
blas_int const *  ipiv,
Scalar *  b,
blas_int  ldb 
)

Solve using an existing dense real symmetric-indefinite factorization.

◆ tgevc()

template<uni20::LapackReal Scalar>
void uni20::lapack::tgevc ( char  side,
char  howmny,
blas_int *  select,
blas_int  n,
Scalar *  s,
blas_int  lds,
Scalar *  p,
blas_int  ldp,
Scalar *  vl,
blas_int  ldvl,
Scalar *  vr,
blas_int  ldvr,
blas_int  mm,
blas_int &  computed_vectors,
Scalar *  work 
)

Compute eigenvectors of a generalized real Schur form.

◆ tgexc()

template<uni20::LapackReal Scalar>
void uni20::lapack::tgexc ( bool  wantq,
bool  wantz,
blas_int  n,
Scalar *  a,
blas_int  lda,
Scalar *  b,
blas_int  ldb,
Scalar *  q,
blas_int  ldq,
Scalar *  z,
blas_int  ldz,
blas_int &  first,
blas_int &  last,
Scalar *  work,
blas_int  lwork 
)

Reorder adjacent blocks in a generalized real Schur form.

◆ tgsen()

template<uni20::LapackReal Scalar>
void uni20::lapack::tgsen ( blas_int  ijob,
bool  wantq,
bool  wantz,
blas_int *  select,
blas_int  n,
Scalar *  a,
blas_int  lda,
Scalar *  b,
blas_int  ldb,
Scalar *  alphar,
Scalar *  alphai,
Scalar *  beta,
Scalar *  q,
blas_int  ldq,
Scalar *  z,
blas_int  ldz,
blas_int &  selected_dimension,
Scalar &  pl,
Scalar &  pr,
Scalar *  dif,
Scalar *  work,
blas_int  lwork,
blas_int *  iwork,
blas_int  liwork 
)

Reorder selected blocks in a generalized real Schur form and estimate conditioning.

◆ tgsna()

template<uni20::LapackReal Scalar>
void uni20::lapack::tgsna ( char  job,
char  howmny,
blas_int *  select,
blas_int  n,
Scalar *  a,
blas_int  lda,
Scalar *  b,
blas_int  ldb,
Scalar *  vl,
blas_int  ldvl,
Scalar *  vr,
blas_int  ldvr,
Scalar *  reciprocal_eigenvalue_condition_numbers,
Scalar *  reciprocal_eigenvector_condition_numbers,
blas_int  mm,
blas_int &  computed_estimates,
Scalar *  work,
blas_int  lwork,
blas_int *  iwork 
)

Estimate reciprocal condition numbers for generalized real Schur eigenpairs.

◆ trcon()

template<uni20::LapackReal Scalar>
Scalar uni20::lapack::trcon ( char  norm,
char  uplo,
char  diag,
blas_int  n,
Scalar *  a,
blas_int  lda,
Scalar *  work,
blas_int *  iwork 
)

Estimate a dense real triangular reciprocal condition number.

◆ trevc()

template<uni20::LapackReal Scalar>
void uni20::lapack::trevc ( char  side,
char  howmny,
blas_int *  select,
blas_int  n,
Scalar *  t,
blas_int  ldt,
Scalar *  vl,
blas_int  ldvl,
Scalar *  vr,
blas_int  ldvr,
blas_int  mm,
blas_int &  computed_vectors,
Scalar *  work 
)

Compute eigenvectors of a real upper quasi-triangular Schur form.

◆ trexc() [1/2]

template<uni20::LapackReal Scalar>
void uni20::lapack::trexc ( char  compq,
blas_int  n,
Scalar *  t,
blas_int  ldt,
Scalar *  q,
blas_int  ldq,
blas_int &  first,
blas_int &  last,
Scalar *  work 
)

Reorder adjacent blocks in a real Schur form.

◆ trexc() [2/2]

template<uni20::LapackComplexReal Real>
void uni20::lapack::trexc ( char  compq,
blas_int  n,
uni20::detail::standard_complex< Real > *  t,
blas_int  ldt,
uni20::detail::standard_complex< Real > *  q,
blas_int  ldq,
blas_int &  first,
blas_int &  last 
)

Reorder adjacent entries in a complex Schur form.

◆ trrfs()

template<uni20::LapackReal Scalar>
void uni20::lapack::trrfs ( char  uplo,
char  trans,
char  diag,
blas_int  n,
blas_int  nrhs,
Scalar *  a,
blas_int  lda,
Scalar *  b,
blas_int  ldb,
Scalar *  x,
blas_int  ldx,
Scalar *  forward_error,
Scalar *  backward_error,
Scalar *  work,
blas_int *  iwork 
)

Refine a dense real triangular solve and return LAPACK diagnostics.

◆ trsen()

template<uni20::LapackReal Scalar>
void uni20::lapack::trsen ( char  job,
char  compq,
blas_int *  select,
blas_int  n,
Scalar *  t,
blas_int  ldt,
Scalar *  q,
blas_int  ldq,
Scalar *  wr,
Scalar *  wi,
blas_int &  selected_dimension,
Scalar &  reciprocal_eigenvalue_cluster_condition,
Scalar &  reciprocal_invariant_subspace_condition,
Scalar *  work,
blas_int  lwork,
blas_int *  iwork,
blas_int  liwork 
)

Reorder selected blocks in a real Schur form and estimate invariant subspace conditioning.

◆ trsna()

template<uni20::LapackReal Scalar>
void uni20::lapack::trsna ( char  job,
char  howmny,
blas_int *  select,
blas_int  n,
Scalar *  t,
blas_int  ldt,
Scalar *  vl,
blas_int  ldvl,
Scalar *  vr,
blas_int  ldvr,
Scalar *  reciprocal_eigenvalue_condition_numbers,
Scalar *  reciprocal_eigenvector_condition_numbers,
blas_int  mm,
blas_int &  computed_estimates,
Scalar *  work,
blas_int  ldwork,
blas_int *  iwork 
)

Estimate reciprocal condition numbers for real Schur eigenpairs.

◆ trsyl()

template<uni20::LapackReal Scalar>
bool uni20::lapack::trsyl ( char  trans_a,
char  trans_b,
blas_int  sign,
blas_int  m,
blas_int  n,
Scalar *  a,
blas_int  lda,
Scalar *  b,
blas_int  ldb,
Scalar *  c,
blas_int  ldc,
Scalar &  scale 
)

Solve a dense real Sylvester equation.

◆ trtri()

template<uni20::LapackReal Scalar>
void uni20::lapack::trtri ( char  uplo,
char  diag,
blas_int  n,
Scalar *  a,
blas_int  lda 
)

Invert a dense real triangular matrix.

◆ trtrs()

template<uni20::LapackReal Scalar>
void uni20::lapack::trtrs ( char  uplo,
char  trans,
char  diag,
blas_int  n,
blas_int  nrhs,
Scalar *  a,
blas_int  lda,
Scalar *  b,
blas_int  ldb 
)

Solve a dense real triangular system.