ROOT  6.06/09
Reference Guide
TQpProbSparse.h
Go to the documentation of this file.
1 // @(#)root/quadp:$Id$
2 // Author: Eddy Offermann May 2004
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
6  * All rights reserved. *
7  * *
8  * For the licensing terms see $ROOTSYS/LICENSE. *
9  * For the list of contributors see $ROOTSYS/README/CREDITS. *
10  *************************************************************************/
11 
12 /*************************************************************************
13  * Parts of this file are copied from the OOQP distribution and *
14  * are subject to the following license: *
15  * *
16  * COPYRIGHT 2001 UNIVERSITY OF CHICAGO *
17  * *
18  * The copyright holder hereby grants you royalty-free rights to use, *
19  * reproduce, prepare derivative works, and to redistribute this software*
20  * to others, provided that any changes are clearly documented. This *
21  * software was authored by: *
22  * *
23  * E. MICHAEL GERTZ gertz@mcs.anl.gov *
24  * Mathematics and Computer Science Division *
25  * Argonne National Laboratory *
26  * 9700 S. Cass Avenue *
27  * Argonne, IL 60439-4844 *
28  * *
29  * STEPHEN J. WRIGHT swright@cs.wisc.edu *
30  * Computer Sciences Department *
31  * University of Wisconsin *
32  * 1210 West Dayton Street *
33  * Madison, WI 53706 FAX: (608)262-9777 *
34  * *
35  * Any questions or comments may be directed to one of the authors. *
36  * *
37  * ARGONNE NATIONAL LABORATORY (ANL), WITH FACILITIES IN THE STATES OF *
38  * ILLINOIS AND IDAHO, IS OWNED BY THE UNITED STATES GOVERNMENT, AND *
39  * OPERATED BY THE UNIVERSITY OF CHICAGO UNDER PROVISION OF A CONTRACT *
40  * WITH THE DEPARTMENT OF ENERGY. *
41  *************************************************************************/
42 
43 #ifndef ROOT_TQpProbSparse
44 #define ROOT_TQpProbSparse
45 
46 #include "TQpProbBase.h"
47 #ifndef ROOT_TQpDataSparse
48 #include "TQpDataSparse.h"
49 #endif
50 #ifndef ROOT_TQpVars
51 #include "TQpVar.h"
52 #endif
53 #ifndef ROOT_TQpLinSolverSparse
54 #include "TQpLinSolverSparse.h"
55 #endif
56 
57 //////////////////////////////////////////////////////////////////////////
58 // //
59 // TQpProbSparse //
60 // //
61 // sparse matrix problem formulation //
62 // //
63 //////////////////////////////////////////////////////////////////////////
64 
65 class TQpProbSparse : public TQpProbBase
66 {
67 
68 public:
69 
72  TQpProbSparse(const TQpProbSparse &another);
73 
74  virtual ~TQpProbSparse() {}
75 
76 #ifndef __CINT__
77  virtual TQpDataBase *MakeData (Double_t *c,
78  Int_t nnzQ,Int_t *irowQ,Int_t *icolQ,Double_t *Q,
79  Double_t *xlo,Bool_t *ixlo,
80  Double_t *xup,Bool_t *ixup,
81  Int_t nnzA,Int_t *irowA,Int_t *icolA,Double_t *A,
82  Double_t *bA,
83  Int_t nnzC,Int_t *irowC,Int_t *icolC,Double_t *C,
84  Double_t *clo,Bool_t *iclo,
85  Double_t *cup,Bool_t *icup);
86 #endif
87  virtual TQpDataBase *MakeData (TVectorD &c,
88  TMatrixDBase &Q_in,
89  TVectorD &xlo, TVectorD &ixlo,
90  TVectorD &xup, TVectorD &ixup,
91  TMatrixDBase &A_in,TVectorD &bA,
92  TMatrixDBase &C_in,
93  TVectorD &clo, TVectorD &iclo,
94  TVectorD &cup, TVectorD &icup);
95  virtual TQpResidual *MakeResiduals(const TQpDataBase *data);
96  virtual TQpVar *MakeVariables(const TQpDataBase *data);
97  virtual TQpLinSolverBase *MakeLinSys (const TQpDataBase *data);
98 
99  virtual void JoinRHS (TVectorD &rhs_in,TVectorD &rhs1_in,TVectorD &rhs2_in,TVectorD &rhs3_in);
100  virtual void SeparateVars (TVectorD &x_in,TVectorD &y_in,TVectorD &z_in,TVectorD &vars_in);
101  void MakeRandomData(TQpDataSparse *&data,TQpVar *&soln,Int_t nnzQ,Int_t nnzA,Int_t nnzC);
102 
103  TQpProbSparse &operator=(const TQpProbSparse &source);
104 
105  ClassDef(TQpProbSparse,1) // Qp sparse problem formulation class
106 };
107 #endif
const int nx
Definition: kalman.C:16
virtual TQpVar * MakeVariables(const TQpDataBase *data)
Setup the variables.
int Int_t
Definition: RtypesCore.h:41
bool Bool_t
Definition: RtypesCore.h:59
static double A[]
#define ClassDef(name, id)
Definition: Rtypes.h:254
virtual void SeparateVars(TVectorD &x_in, TVectorD &y_in, TVectorD &z_in, TVectorD &vars_in)
Extracts three component vectors from a given aggregated vector.
void MakeRandomData(TQpDataSparse *&data, TQpVar *&soln, Int_t nnzQ, Int_t nnzA, Int_t nnzC)
Create a random QP problem.
virtual TQpLinSolverBase * MakeLinSys(const TQpDataBase *data)
Setup the linear solver.
static double C[]
virtual TQpResidual * MakeResiduals(const TQpDataBase *data)
Setup the residuals.
virtual ~TQpProbSparse()
Definition: TQpProbSparse.h:74
double Double_t
Definition: RtypesCore.h:55
TQpProbSparse & operator=(const TQpProbSparse &source)
Assignment operator.
virtual TQpDataBase * MakeData(Double_t *c, Int_t nnzQ, Int_t *irowQ, Int_t *icolQ, Double_t *Q, Double_t *xlo, Bool_t *ixlo, Double_t *xup, Bool_t *ixup, Int_t nnzA, Int_t *irowA, Int_t *icolA, Double_t *A, Double_t *bA, Int_t nnzC, Int_t *irowC, Int_t *icolC, Double_t *C, Double_t *clo, Bool_t *iclo, Double_t *cup, Bool_t *icup)
Setup the data.
Definition: TQpVar.h:65
virtual void JoinRHS(TVectorD &rhs_in, TVectorD &rhs1_in, TVectorD &rhs2_in, TVectorD &rhs3_in)
Assembles a single vector object from three given vectors .
static double Q[]