109 for (
Int_t ix = 0; ix <
fNx; ix++) {
110 vixlo[ix] = (ixlo[ix]) ? 1.0 : 0.0;
111 vixup[ix] = (ixup[ix]) ? 1.0 : 0.0;
116 for (
Int_t ic = 0; ic <
fMz; ic++) {
117 viclo[ic] = (iclo[ic]) ? 1.0 : 0.0;
118 vicup[ic] = (icup[ic]) ? 1.0 : 0.0;
121 TQpDataDens *data =
new TQpDataDens(vc,mQ,vxlo,vixlo,vxup,vixup,mA,vbA,mC,vclo,
162 TQpDataDens *data =
new TQpDataDens(
c,mQ,xlo,ixlo,xup,ixup,mA,bA,mC,clo,iclo,cup,icup);
174 return new TQpResidual(
fNx,
fMy,
fMz,data->fXloIndex,data->fXupIndex,data->fCloIndex,data->fCupIndex);
185 return new TQpVar(
fNx,
fMy,
fMz,data->fXloIndex,data->fXupIndex,data->fCloIndex,data->fCupIndex);
236 data->DataRandom(soln->
fX,soln->
fY,soln->
fZ,soln->
fS);
245 if (
this != &source) {
int Int_t
Signed integer 4 bytes (int).
bool Bool_t
Boolean (0=false, 1=true) (bool).
double Double_t
Double 8 bytes.
#define R__ASSERT(e)
Checks condition e and reports a fatal error if it's false.
TMatrixTBase< Double_t > TMatrixDBase
TMatrixTSym< Double_t > TMatrixDSym
TMatrixT< Double_t > TMatrixD
TVectorT< Double_t > TVectorD
TMatrixTSym< Element > & Use(Int_t row_lwb, Int_t row_upb, Element *data)
TMatrixT< Element > & Use(Int_t row_lwb, Int_t row_upb, Int_t col_lwb, Int_t col_upb, Element *data)
Use the array data to fill the matrix ([row_lwb..row_upb] x [col_lwb..col_upb]).
Data for the general QP formulation.
Data for the dense QP formulation.
Implementation of main solver for linear systems.
Implements the aspects of the solvers for dense general QP formulation that are specific to the dense...
TQpProbBase()
Default constructor.
TQpProbBase & operator=(const TQpProbBase &source)
Assignment operator.
TQpVar * MakeVariables(const TQpDataBase *data) override
Setup the variables.
void JoinRHS(TVectorD &rhs_in, TVectorD &rhs1_in, TVectorD &rhs2_in, TVectorD &rhs3_in) override
Assembles a single vector object from three given vectors .
virtual TQpDataBase * MakeData(Double_t *c, Double_t *Q, Double_t *xlo, Bool_t *ixlo, Double_t *xup, Bool_t *ixup, Double_t *A, Double_t *bA, Double_t *C, Double_t *clo, Bool_t *iclo, Double_t *cup, Bool_t *icup)
Setup the data.
TQpProbDens & operator=(const TQpProbDens &source)
Assignment operator.
void MakeRandomData(TQpDataDens *&data, TQpVar *&soln, Int_t nnzQ, Int_t nnzA, Int_t nnzC)
Create a random QP problem.
TQpLinSolverBase * MakeLinSys(const TQpDataBase *data) override
Setup the linear solver.
void SeparateVars(TVectorD &x_in, TVectorD &y_in, TVectorD &z_in, TVectorD &vars_in) override
Extracts three component vectors from a given aggregated vector.
TQpResidual * MakeResiduals(const TQpDataBase *data) override
Setup the residuals.
The Residuals class calculates and stores the quantities that appear on the right-hand side of the li...
Class containing the variables for the general QP formulation.
TVectorT< Element > & GetSub(Int_t row_lwb, Int_t row_upb, TVectorT< Element > &target, Option_t *option="S") const
Get subvector [row_lwb..row_upb]; The indexing range of the returned vector depends on the argument o...
TVectorT< Element > & SetSub(Int_t row_lwb, const TVectorT< Element > &source)
Insert vector source starting at [row_lwb], thereby overwriting the part [row_lwb....
TVectorT< Element > & Use(Int_t lwb, Int_t upb, Element *data)
Use the array data to fill the vector lwb..upb].