Tatooine
Functions
SYSV

Computes the solution to symmetric linear systems. More...

Collaboration diagram for SYSV:

Functions

template<std::floating_point Float>
auto tatooine::lapack::sysv (uplo u, int N, int NRHS, Float *A, int LDA, int *IPIV, Float *B, int LDB, Float *WORK, int LWORK) -> int
 
template<std::floating_point Float>
auto tatooine::lapack::sysv (uplo u, int N, int NRHS, Float *A, int LDA, int *IPIV, Float *B, int LDB) -> int
 
template<std::floating_point Float, size_t N>
auto tatooine::lapack::sysv (tensor< Float, N, N > &A, tensor< Float, N > &b, uplo const u)
 
template<std::floating_point Float>
auto tatooine::lapack::sysv (tensor< Float > &A, tensor< Float > &B, uplo const u)
 

Detailed Description

Computes the solution to symmetric linear systems.

Computes the solution to a system of linear equations \(\mA\mX = \mB\), where \(\mA\) is an \(n\times n\) symmetric matrix and \(\mX\) and \(\mB\) are \(n\times m\) matrices.

The diagonal pivoting method is used to factor \(\mA\) as \(\mA = \mU \mD \mU^\top\) if uplo = Upper, or \(\mA = \mL \mD \mL^\top\) if uplo = Lower, where \(\mU\) (or \(\mL\)) is a product of permutation and unit upper (lower) triangular matrices, and \(\mD\) is symmetric and block diagonal with \(1\times 1\) and \(2\times 2\) diagonal blocks. The factored form of \(\mA\) is then used to solve the system of equations T.

Function Documentation

◆ sysv() [1/4]

template<std::floating_point Float>
auto tatooine::lapack::sysv ( tensor< Float > &  A,
tensor< Float > &  B,
uplo const  u 
)

◆ sysv() [2/4]

template<std::floating_point Float, size_t N>
auto tatooine::lapack::sysv ( tensor< Float, N, N > &  A,
tensor< Float, N > &  b,
uplo const  u 
)

◆ sysv() [3/4]

template<std::floating_point Float>
auto tatooine::lapack::sysv ( uplo  u,
int  N,
int  NRHS,
Float *  A,
int  LDA,
int *  IPIV,
Float *  B,
int  LDB 
) -> int

◆ sysv() [4/4]

template<std::floating_point Float>
auto tatooine::lapack::sysv ( uplo  u,
int  N,
int  NRHS,
Float *  A,
int  LDA,
int *  IPIV,
Float *  B,
int  LDB,
Float *  WORK,
int  LWORK 
) -> int