59 class TQpVar :
public TObject
77 static Double_t StepBound (TVectorD &v,TVectorD &dir,Double_t maxStep);
78 static Double_t FindBlocking (TVectorD &w,TVectorD &wstep,TVectorD &u,TVectorD &ustep,
79 Double_t maxStep,Double_t &w_elt,Double_t &wstep_elt,Double_t &u_elt,
80 Double_t &ustep_elt,
int& first_or_second);
81 static Double_t FindBlockingSub(Int_t n,Double_t *w,Int_t incw,Double_t *wstep,Int_t incwstep,
82 Double_t *u,Int_t incu,Double_t *ustep,Int_t incustep,
83 Double_t maxStep,Double_t &w_elt,Double_t &wstep_elt,
84 Double_t &u_elt,Double_t &ustep_elt,Int_t &first_or_second);
88 Int_t fNComplementaryVariables;
110 TQpVar(TVectorD &x_in,TVectorD &s_in,TVectorD &y_in,TVectorD &z_in,
111 TVectorD &v_in,TVectorD &gamma_in,TVectorD &w_in,TVectorD &phi_in,
112 TVectorD &t_in,TVectorD &lambda_in,TVectorD &u_in,TVectorD &pi_in,
113 TVectorD &ixlow_in,TVectorD &ixupp_in,TVectorD &iclow_in,TVectorD &icupp_in);
116 TQpVar(Int_t nx,Int_t my,Int_t mz,
117 TVectorD &ixlow,TVectorD &ixupp,TVectorD &iclow,TVectorD &icupp);
118 TQpVar(
const TQpVar &another);
127 enum EVarBlock { kno_block,kt_block,klambda_block,ku_block,kpi_block,
128 kv_block,kgamma_block,kw_block,kphi_block };
130 virtual Double_t GetMu ();
135 virtual Double_t MuStep (TQpVar *step,Double_t alpha);
138 virtual void Saxpy (TQpVar *b,Double_t alpha);
142 virtual void Negate ();
144 virtual Double_t StepBound (TQpVar *b);
151 virtual Double_t FindBlocking(TQpVar *step,Double_t &primalValue,Double_t &primalStep,Double_t &dualValue,
152 Double_t &dualStep,Int_t &firstOrSecond);
172 virtual void InteriorPoint(Double_t alpha,Double_t beta);
175 virtual void ShiftBoundVariables
176 (Double_t alpha,Double_t beta);
179 virtual Bool_t IsInteriorPoint();
181 virtual Double_t Violation ();
183 virtual void Print (Option_t *option=
"")
const;
184 virtual Double_t Norm1 ();
185 virtual Double_t NormInf ();
186 virtual Bool_t ValidNonZeroPattern();
188 TQpVar &operator= (
const TQpVar &source);