63 const Int_t n = factory->fNx+factory->fMy+factory->fMz;
66 if (fMy > 0) data->PutAIntoAt(fKkt,fNx, 0);
67 if (fMz > 0) data->PutCIntoAt(fKkt,fNx+fMy,0);
70 if (fMy > 0 || fMz > 0) {
75 data->PutQIntoAt(fKkt,0,0);
117 diag[i+
fNx+
fMy] = zdiag[i];
137 if (
this != &source) {
virtual void SetMatrix(const TMatrixDSparse &a)
Set matrix to be decomposed .
virtual void PutXDiagonal(TVectorD &xdiag)
Places the diagonal resulting from the bounds on x into the augmented system matrix.
TQpLinSolverSparse & operator=(const TQpLinSolverSparse &source)
Assignment operator.
virtual void SolveCompressed(TVectorD &rhs)
Perform the actual solve using the factors produced in factor.
static void Solve(const Int_t n, TArrayD &Aa, TArrayI &Aiw, TArrayD &Aw, const Int_t maxfrt, TVectorD &b, TArrayI &Aiw1, const Int_t nsteps, Int_t *icntl, Int_t *info)
Main routine for solving Ax=b.
virtual void Factor(TQpDataBase *prob, TQpVar *vars)
Sets up the matrix for the main linear system in "augmented system" form.
TDecompSparse fSolveSparse
virtual void PutZDiagonal(TVectorD &zdiag)
Places the diagonal resulting from the bounds on Cx into the augmented system matrix.
virtual void Factor(TQpDataBase *prob, TQpVar *vars)
Sets up the matrix for the main linear system in "augmented system" form.
virtual TMatrixTBase< Element > & ResizeTo(Int_t nrows, Int_t ncols, Int_t nr_nonzeros=-1)
Set size of the matrix to nrows x ncols with nr_nonzeros non-zero entries if nr_nonzeros > 0 ...
TQpLinSolverBase & operator=(const TQpLinSolverBase &source)
Assignment opeartor.
ClassImp(TQpLinSolverSparse) TQpLinSolverSparse
Constructor.