Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
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#include "TQpDataSparse.h"
48#include "TQpVar.h"
49
50//////////////////////////////////////////////////////////////////////////
51// //
52// TQpProbSparse //
53// //
54// sparse matrix problem formulation //
55// //
56//////////////////////////////////////////////////////////////////////////
57
59{
60
61public:
62
65 TQpProbSparse(const TQpProbSparse &another);
66
67 ~TQpProbSparse() override {}
68
69 virtual TQpDataBase *MakeData (Double_t *c,
70 Int_t nnzQ,Int_t *irowQ,Int_t *icolQ,Double_t *Q,
71 Double_t *xlo,Bool_t *ixlo,
72 Double_t *xup,Bool_t *ixup,
73 Int_t nnzA,Int_t *irowA,Int_t *icolA,Double_t *A,
74 Double_t *bA,
75 Int_t nnzC,Int_t *irowC,Int_t *icolC,Double_t *C,
76 Double_t *clo,Bool_t *iclo,
77 Double_t *cup,Bool_t *icup);
79 TMatrixDBase &Q_in,
80 TVectorD &xlo, TVectorD &ixlo,
81 TVectorD &xup, TVectorD &ixup,
82 TMatrixDBase &A_in,TVectorD &bA,
83 TMatrixDBase &C_in,
84 TVectorD &clo, TVectorD &iclo,
85 TVectorD &cup, TVectorD &icup) override;
86 TQpResidual *MakeResiduals(const TQpDataBase *data) override;
87 TQpVar *MakeVariables(const TQpDataBase *data) override;
89
90 void JoinRHS (TVectorD &rhs_in,TVectorD &rhs1_in,TVectorD &rhs2_in,TVectorD &rhs3_in) override;
91 void SeparateVars (TVectorD &x_in,TVectorD &y_in,TVectorD &z_in,TVectorD &vars_in) override;
92 void MakeRandomData(TQpDataSparse *&data,TQpVar *&soln,Int_t nnzQ,Int_t nnzA,Int_t nnzC);
93
95
96 ClassDefOverride(TQpProbSparse,1) // Qp sparse problem formulation class
97};
98#endif
#define c(i)
Definition RSha256.hxx:101
bool Bool_t
Definition RtypesCore.h:63
int Int_t
Definition RtypesCore.h:45
double Double_t
Definition RtypesCore.h:59
#define ClassDefOverride(name, id)
Definition Rtypes.h:346
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void data
Data for the general QP formulation.
Definition TQpDataBase.h:61
Data for the sparse QP formulation.
Implementation of main solver for linear systems.
default general problem formulation:
Definition TQpProbBase.h:89
dense matrix problem formulation
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, 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.
TQpProbSparse & operator=(const TQpProbSparse &source)
Assignment operator.
~TQpProbSparse() override
TQpVar * MakeVariables(const TQpDataBase *data) override
Setup the variables.
void MakeRandomData(TQpDataSparse *&data, TQpVar *&soln, Int_t nnzQ, Int_t nnzA, Int_t nnzC)
Create a random QP problem.
TQpResidual * MakeResiduals(const TQpDataBase *data) override
Setup the residuals.
void SeparateVars(TVectorD &x_in, TVectorD &y_in, TVectorD &z_in, TVectorD &vars_in) override
Extracts three component vectors from a given aggregated vector.
TQpLinSolverBase * MakeLinSys(const TQpDataBase *data) override
Setup the linear solver.
The Residuals class calculates and stores the quantities that appear on the right-hand side of the li...
Definition TQpResidual.h:62
Class containing the variables for the general QP formulation.
Definition TQpVar.h:60