library: libQuadp #include "TQpLinSolverBase.h"

# TQpLinSolverBase

class description - source file - inheritance tree (.pdf)

## class TQpLinSolverBase : public TObject

| Inheritance Chart:
`TObject`
| <- | `TQpLinSolverBase` |
<- |
`TQpLinSolverDens` |
`TQpLinSolverSparse` |

This is an abstract class, constructors will not be documented.
Look at the header to check for available constructors.

        public:

                    virtual ~TQpLinSolverBase()
             static TClass* Class()
               virtual void ComputeDiagonals(TVectorD& dd, TVectorD& omega, TVectorD& t, TVectorD& lambda, TVectorD& u, TVectorD& pi, TVectorD& v, TVectorD& gamma, TVectorD& w, TVectorD& phi)
               virtual void Factor(TQpDataBase* prob, TQpVar* vars)
            virtual TClass* IsA() const
               virtual void JoinRHS(TVectorD& rhs, TVectorD& rhs1, TVectorD& rhs2, TVectorD& rhs3)
          TQpLinSolverBase& operator=(const TQpLinSolverBase& source)
               virtual void PutXDiagonal(TVectorD& xdiag)
               virtual void PutZDiagonal(TVectorD& zdiag)
               virtual void SeparateVars(TVectorD& vars1, TVectorD& vars2, TVectorD& vars3, TVectorD& vars)
               virtual void ShowMembers(TMemberInspector& insp, char* parent)
               virtual void Solve(TQpDataBase* prob, TQpVar* vars, TQpResidual* resids, TQpVar* step)
               virtual void SolveCompressed(TVectorD& rhs)
               virtual void SolveXYZS(TVectorD& stepx, TVectorD& stepy, TVectorD& stepz, TVectorD& steps, TVectorD& ztemp, TQpDataBase* data)
               virtual void Streamer(TBuffer& b)
                       void StreamerNVirtual(TBuffer& b)

### Data Members

        protected:

              TVectorD fNomegaInv  stores a critical diagonal matrix as a vector
              TVectorD fRhs        right-hand side of the system
                 Int_t fNx         dimensions of the vectors in the general QP formulation
                 Int_t fMy
                 Int_t fMz
              TVectorD fDd         temporary storage vectors
              TVectorD fDq
              TVectorD fXupIndex   index matrices for the upper and lower bounds on x and Cx
              TVectorD fCupIndex
              TVectorD fXloIndex
              TVectorD fCloIndex
                 Int_t fNxup       dimensions of the upper and lower bound vectors
                 Int_t fNxlo
                 Int_t fMcup
                 Int_t fMclo
          TQpProbBase* fFactory

## Class Description

     TQpLinSolverBase

     Implementation of main solver for linear systems

void Factor(TQpDataBase * /* prob */,TQpVar *vars)

void ComputeDiagonals(TVectorD &dd,TVectorD &omega, TVectorD &t, TVectorD &lambda, TVectorD &u, TVectorD &pi, TVectorD &v, TVectorD &gamma, TVectorD &w, TVectorD &phi)

void Solve(TQpDataBase *prob,TQpVar *vars,TQpResidual *res,TQpVar *step)

void SolveXYZS(TVectorD &stepx,TVectorD &stepy, TVectorD &stepz,TVectorD &steps, TVectorD & /* ztemp */, TQpDataBase * /* prob */ )

void JoinRHS(TVectorD &rhs_in, TVectorD &rhs1_in, TVectorD &rhs2_in,TVectorD &rhs3_in)

     joinRHS has to be delegated to the factory. This is true because
     the rhs may be distributed across processors, so the factory is the
     only object that knows with certainly how to scatter the elements.

void SeparateVars(TVectorD &x_in,TVectorD &y_in, TVectorD &z_in,TVectorD &vars_in)

     separateVars has to be delegated to the factory. This is true because
     the rhs may be distributed across processors, so the factory is the
     only object that knows with certainly how to scatter the elements.

### Inline Functions

                         void ~TQpLinSolverBase()
                         void SolveCompressed(TVectorD& rhs)
                         void PutXDiagonal(TVectorD& xdiag)
                         void PutZDiagonal(TVectorD& zdiag)
            TQpLinSolverBase& operator=(const TQpLinSolverBase& source)
                      TClass* Class()
                      TClass* IsA() const
                         void ShowMembers(TMemberInspector& insp, char* parent)
                         void Streamer(TBuffer& b)
                         void StreamerNVirtual(TBuffer& b)

Author: Eddy Offermann May 2004
Last update: root/quadp:$Name: $:$Id: TQpLinSolverBase.cxx,v 1.2 2004/05/24 12:45:40 brun Exp $
Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *