PIPS-NLP
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
DoubleIterativeLinearSolver Class Referenceabstract

#include <DoubleLinearSolver.h>

Inheritance diagram for DoubleIterativeLinearSolver:
DoubleLinearSolver PetscIterativeSolver_Sparse

Public Member Functions

 DoubleIterativeLinearSolver (MatTimesVec *A, MatTimesVec *M1, MatTimesVec *M2=NULL)
 
virtual void diagonalChanged (int idiag, int extent)
 
virtual int matrixChanged ()
 
virtual void solve (OoqpVector &rhs)=0
 
virtual ~DoubleIterativeLinearSolver ()
 
- Public Member Functions inherited from DoubleLinearSolver
 DoubleLinearSolver ()
 
virtual void solveTrans (OoqpVector &x)
 
virtual void solve (GenMatrix &rhs)
 
virtual void Lsolve (OoqpVector &x)
 
virtual void Dsolve (OoqpVector &x)
 
virtual void Ltsolve (OoqpVector &x)
 
virtual ~DoubleLinearSolver ()
 

Protected Member Functions

 DoubleIterativeLinearSolver ()
 
void applyA (double beta, OoqpVector &res, double alpha, OoqpVector &x)
 
void applyM1 (double beta, OoqpVector &res, double alpha, OoqpVector &x)
 
void applyM2 (double beta, OoqpVector &res, double alpha, OoqpVector &x)
 

Protected Attributes

MatTimesVecA
 
MatTimesVecML
 
MatTimesVecMR
 

Additional Inherited Members

- Public Attributes inherited from DoubleLinearSolver
int negEigVal
 
int KryIter
 

Detailed Description

The abstract interface for a linear iterative solver for linear systems that arise in primal-dual interior-point methods for QP.

Constructor & Destructor Documentation

DoubleIterativeLinearSolver::DoubleIterativeLinearSolver ( MatTimesVec A,
MatTimesVec M1,
MatTimesVec M2 = NULL 
)
DoubleIterativeLinearSolver::~DoubleIterativeLinearSolver ( )
virtual
DoubleIterativeLinearSolver::DoubleIterativeLinearSolver ( )
protected

Member Function Documentation

void DoubleIterativeLinearSolver::applyA ( double  beta,
OoqpVector res,
double  alpha,
OoqpVector x 
)
protected

Actual mat-vec operations

void DoubleIterativeLinearSolver::applyM1 ( double  beta,
OoqpVector res,
double  alpha,
OoqpVector x 
)
protected
void DoubleIterativeLinearSolver::applyM2 ( double  beta,
OoqpVector res,
double  alpha,
OoqpVector x 
)
protected
void DoubleIterativeLinearSolver::diagonalChanged ( int  idiag,
int  extent 
)
virtual

called if the diagonal elements of the matrix have changed. Triggers a refactorization of the matrix, if necessary.

Parameters
idiagindex of the first diagonal element that changed
extentthe number of diagonal element that changed.

Implements DoubleLinearSolver.

Reimplemented in PetscIterativeSolver_Sparse.

int DoubleIterativeLinearSolver::matrixChanged ( )
virtual

called if some elements of the matrix have changed. Triggers a refactorization of the matrix, if necessary.

Implements DoubleLinearSolver.

Reimplemented in PetscIterativeSolver_Sparse.

virtual void DoubleIterativeLinearSolver::solve ( OoqpVector x)
pure virtual

solves a linear system.

Parameters
xon entry the right hand side of the system to be solved. On exit, the solution.

Implements DoubleLinearSolver.

Implemented in PetscIterativeSolver_Sparse.

Member Data Documentation

MatTimesVec* DoubleIterativeLinearSolver::A
protected

MatVec operation involving system matrix

MatTimesVec* DoubleIterativeLinearSolver::ML
protected

MatVec ops for left and right preconditioner

MatTimesVec * DoubleIterativeLinearSolver::MR
protected

The documentation for this class was generated from the following files: