43 #ifndef ROOT_TQpDataSparse
44 #define ROOT_TQpDataSparse
59 class TQpDataSparse :
public TQpDataBase
73 TQpDataSparse(Int_t nx,Int_t my,Int_t mz);
76 TQpDataSparse(TVectorD &c,TMatrixDSparse &Q,TVectorD &xlow,TVectorD &ixlow,TVectorD &xupp,
77 TVectorD &ixupp,TMatrixDSparse &A,TVectorD &bA,TMatrixDSparse &C,TVectorD &clow,
78 TVectorD &iclow,TVectorD &cupp,TVectorD &icupp);
79 TQpDataSparse(
const TQpDataSparse &another);
81 virtual ~TQpDataSparse() {}
83 void SetNonZeros(Int_t nnzQ,Int_t nnzA,Int_t nnzC);
85 virtual void PutQIntoAt(TMatrixDBase &M,Int_t row,Int_t col);
88 virtual void PutAIntoAt(TMatrixDBase &M,Int_t row,Int_t col);
91 virtual void PutCIntoAt(TMatrixDBase &M,Int_t row,Int_t col);
96 virtual void Qmult (Double_t beta,TVectorD& y,Double_t alpha,
const TVectorD& x);
98 virtual void Amult (Double_t beta,TVectorD& y,Double_t alpha,
const TVectorD& x);
100 virtual void Cmult (Double_t beta,TVectorD& y,Double_t alpha,
const TVectorD& x);
102 virtual void ATransmult(Double_t beta,TVectorD& y,Double_t alpha,
const TVectorD& x);
104 virtual void CTransmult(Double_t beta,TVectorD& y,Double_t alpha,
const TVectorD& x);
107 virtual void GetDiagonalOfQ(TVectorD &dQ);
109 virtual Double_t DataNorm();
110 virtual void DataRandom(TVectorD &x,TVectorD &y,TVectorD &z,TVectorD &s);
113 virtual void Print(Option_t *opt=
"")
const;
115 virtual Double_t ObjectiveValue(TQpVar *vars);
117 TQpDataSparse &operator= (
const TQpDataSparse &source);
119 ClassDef(TQpDataSparse,1)