QR factorization. More...

#include <sparseqr.hh>

Public Member Functions

void BackSolve (int rank, double *x)
 Performes backsolve. More...
 
int givens (int, int, int)
 Performs Given's rotations. More...
 
 QR (Packed *qrpmatrix, int qrnr, int qrnc, double *qrb=NULL, Qmatrix *qrq=NULL, int *qrprow=NULL, int *qrpcol=NULL, double qrztol=DBL_EPSILON, double qrrtol=0.0)
 Constructor. More...
 
void RemoveEntry (int, int)
 
SmatrixRemoveEntry (int, int, Smatrix *, Smatrix *)
 
int RemoveMarkedEntries (int)
 
int sparseqr ()
 Performs QR factorization. More...
 
 ~QR ()
 

Public Attributes

double * b
 
bool del_pcol
 
bool del_prow
 Stores if delete[] of prow and pcol is allowed. More...
 
int nc
 
int nr
 
unsigned * nrow
 
int * pcol
 
Packedpmatrix
 
int * prow
 
Qmatrixq
 
double rtol
 
Smatrix ** scol
 
Smatrix ** srow
 
double ztol
 

Detailed Description

QR factorization.

Author
Thomas H. Robey, 1996, 1997, 1998
See also
Homepage of SparseQR
Thomas H. Robey and Deborah L. Sulsky, Row Ordering for Sparse QR Decomposition, SIAM J. Matrix Anal. and Appl., Vol. 15, No. 4, pp. 1208-1225, October 1994.

Definition at line 128 of file sparseqr.hh.

Constructor & Destructor Documentation

◆ QR()

sparseqr::QR::QR ( Packed qrpmatrix,
int  qrnr,
int  qrnc,
double *  qrb = NULL,
Qmatrix qrq = NULL,
int *  qrprow = NULL,
int *  qrpcol = NULL,
double  qrztol = DBL_EPSILON,
double  qrrtol = 0.0 
)

Constructor.

Parameters
qrpmatrixMatrix which should be factorized in sparse format
qrnrNumber of rows of the matrix
qrncNumber of columns of the matrix
qrbRight hand side
qrqSpace to store the Given's rotations. Does not need to be given, if they should not be stored (ie. solving for just 1 right hand side).
qrprowPermutation vector for row indices. If not given, is allocated by the class.
qrpcolPermutation vector for column indices. If not given, is allocated by the class.
qrztolTolerance for use in determining zero entries when using Given's rotations. If zero or negative, only zero entries are deleted.
rtolTolerance for use in determining rank tolerance by testing the diagonal entry in the final R matrix.

◆ ~QR()

sparseqr::QR::~QR ( )

Member Function Documentation

◆ BackSolve()

void sparseqr::QR::BackSolve ( int  rank,
double *  x 
)

Performes backsolve.

Parameters
rankRank of the matrix
xPreallocated space to store solution

◆ givens()

int sparseqr::QR::givens ( int  ,
int  ,
int   
)

Performs Given's rotations.

◆ RemoveEntry() [1/2]

void sparseqr::QR::RemoveEntry ( int  ,
int   
)

◆ RemoveEntry() [2/2]

Smatrix* sparseqr::QR::RemoveEntry ( int  ,
int  ,
Smatrix ,
Smatrix  
)

◆ RemoveMarkedEntries()

int sparseqr::QR::RemoveMarkedEntries ( int  )

◆ sparseqr()

int sparseqr::QR::sparseqr ( )

Performs QR factorization.

Returns
Rank of factorized matrix

Member Data Documentation

◆ b

double * sparseqr::QR::b

Definition at line 137 of file sparseqr.hh.

◆ del_pcol

bool sparseqr::QR::del_pcol

Definition at line 132 of file sparseqr.hh.

◆ del_prow

bool sparseqr::QR::del_prow

Stores if delete[] of prow and pcol is allowed.

Definition at line 132 of file sparseqr.hh.

◆ nc

int sparseqr::QR::nc

Definition at line 130 of file sparseqr.hh.

◆ nr

int sparseqr::QR::nr

Definition at line 130 of file sparseqr.hh.

◆ nrow

unsigned* sparseqr::QR::nrow

Definition at line 133 of file sparseqr.hh.

◆ pcol

int * sparseqr::QR::pcol

Definition at line 130 of file sparseqr.hh.

◆ pmatrix

Packed* sparseqr::QR::pmatrix

Definition at line 138 of file sparseqr.hh.

◆ prow

int * sparseqr::QR::prow

Definition at line 130 of file sparseqr.hh.

◆ q

Qmatrix* sparseqr::QR::q

Definition at line 140 of file sparseqr.hh.

◆ rtol

double sparseqr::QR::rtol

Definition at line 137 of file sparseqr.hh.

◆ scol

Smatrix ** sparseqr::QR::scol

Definition at line 139 of file sparseqr.hh.

◆ srow

Smatrix** sparseqr::QR::srow

Definition at line 139 of file sparseqr.hh.

◆ ztol

double sparseqr::QR::ztol

Definition at line 137 of file sparseqr.hh.


The documentation for this class was generated from the following file:
Page URL: http://wiki.math.ethz.ch/bin/view/Concepts/WebHome
21 August 2020
© 2020 Eidgenössische Technische Hochschule Zürich