MyraMath
Classes
psytrf.h File Reference

Thread-parallel version of dense/sytrf.h, LDL' decomposition of a symmetric indefinite Matrix. Note this algorithm has poor stability properties, recommend using backward refinement. More...

#include <myramath/MYRAMATH_EXPORT.h>
#include <myramath/utility/Number.h>
#include <myramath/jobgraph/JobGraph.h>
#include <myramath/dense/LDLSwaps.h>
#include <myramath/pdense/Options.h>
Include dependency graph for psytrf.h:

Go to the source code of this file.

Classes

class  myra::MatrixRange< Number >
 Represents a mutable MatrixRange. More...
 
class  myra::LowerMatrixRange< Number >
 Represents a mutable LowerMatrixRange. More...
 

Functions

LDLSwaps< NumberS > myra::psytrf_inplace (char uplo, const MatrixRange< NumberS > &A, pdense::Options options=pdense::Options::create())
 Factors the specified triangle of A = P'*L*R*Q*I*Q'*R'*L'*P. Overwrites A with L, returns P, Q, R and I.
 
LDLSwaps< NumberD > myra::psytrf_inplace (char uplo, const MatrixRange< NumberD > &A, pdense::Options options)
 Factors the specified triangle of A = P'*L*R*Q*I*Q'*R'*L'*P. Overwrites A with L, returns P, Q, R and I.
 
LDLSwaps< NumberC > myra::psytrf_inplace (char uplo, const MatrixRange< NumberC > &A, pdense::Options options)
 Factors the specified triangle of A = P'*L*R*Q*I*Q'*R'*L'*P. Overwrites A with L, returns P, Q, R and I.
 
LDLSwaps< NumberZ > myra::psytrf_inplace (char uplo, const MatrixRange< NumberZ > &A, pdense::Options options)
 Factors the specified triangle of A = P'*L*R*Q*I*Q'*R'*L'*P. Overwrites A with L, returns P, Q, R and I.
 
JobGraph myra::psytrf_jobgraph (char uplo, const MatrixRange< NumberS > &A, LDLSwaps< NumberS > &swaps, pdense::Options options=pdense::Options::create())
 Returns a JobGraph that fulfills psytrf_inplace(MatrixRange). When execute()'d, overwrites A with L and writes P, Q, R and I into swaps.
 
JobGraph myra::psytrf_jobgraph (char uplo, const MatrixRange< NumberD > &A, LDLSwaps< NumberD > &swaps, pdense::Options options)
 Returns a JobGraph that fulfills psytrf_inplace(MatrixRange). When execute()'d, overwrites A with L and writes P, Q, R and I into swaps.
 
JobGraph myra::psytrf_jobgraph (char uplo, const MatrixRange< NumberC > &A, LDLSwaps< NumberC > &swaps, pdense::Options options)
 Returns a JobGraph that fulfills psytrf_inplace(MatrixRange). When execute()'d, overwrites A with L and writes P, Q, R and I into swaps.
 
JobGraph myra::psytrf_jobgraph (char uplo, const MatrixRange< NumberZ > &A, LDLSwaps< NumberZ > &swaps, pdense::Options options)
 Returns a JobGraph that fulfills psytrf_inplace(MatrixRange). When execute()'d, overwrites A with L and writes P, Q, R and I into swaps.
 
LDLSwaps< NumberS > myra::psytrf_inplace (const LowerMatrixRange< NumberS > &A, pdense::Options options=pdense::Options::create())
 Factors A into P'*L*R*Q*I*Q*R'*L'*P. Overwrites A with L, returns P, Q, R and I.
 
LDLSwaps< NumberD > myra::psytrf_inplace (const LowerMatrixRange< NumberD > &A, pdense::Options options)
 Factors A into P'*L*R*Q*I*Q*R'*L'*P. Overwrites A with L, returns P, Q, R and I.
 
LDLSwaps< NumberC > myra::psytrf_inplace (const LowerMatrixRange< NumberC > &A, pdense::Options options)
 Factors A into P'*L*R*Q*I*Q*R'*L'*P. Overwrites A with L, returns P, Q, R and I.
 
LDLSwaps< NumberZ > myra::psytrf_inplace (const LowerMatrixRange< NumberZ > &A, pdense::Options options)
 Factors A into P'*L*R*Q*I*Q*R'*L'*P. Overwrites A with L, returns P, Q, R and I.
 
JobGraph myra::psytrf_jobgraph (const LowerMatrixRange< NumberS > &A, LDLSwaps< NumberS > &swaps, pdense::Options options=pdense::Options::create())
 Returns a JobGraph that fulfills psytrf_inplace(LowerMatrixRange). When execute()'d, overwrites A with L, and writes P, Q and I into swaps.
 
JobGraph myra::psytrf_jobgraph (const LowerMatrixRange< NumberD > &A, LDLSwaps< NumberD > &swaps, pdense::Options options)
 Returns a JobGraph that fulfills psytrf_inplace(LowerMatrixRange). When execute()'d, overwrites A with L, and writes P, Q and I into swaps.
 
JobGraph myra::psytrf_jobgraph (const LowerMatrixRange< NumberC > &A, LDLSwaps< NumberC > &swaps, pdense::Options options)
 Returns a JobGraph that fulfills psytrf_inplace(LowerMatrixRange). When execute()'d, overwrites A with L, and writes P, Q and I into swaps.
 
JobGraph myra::psytrf_jobgraph (const LowerMatrixRange< NumberZ > &A, LDLSwaps< NumberZ > &swaps, pdense::Options options)
 Returns a JobGraph that fulfills psytrf_inplace(LowerMatrixRange). When execute()'d, overwrites A with L, and writes P, Q and I into swaps.
 

Detailed Description

Thread-parallel version of dense/sytrf.h, LDL' decomposition of a symmetric indefinite Matrix. Note this algorithm has poor stability properties, recommend using backward refinement.