/usr/include/root/TQpDataDens.h is in libroot-math-quadp-dev 5.34.14-1build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 | // @(#)root/quadp:$Id$
// Author: Eddy Offermann May 2004
/*************************************************************************
* Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
* All rights reserved. *
* *
* For the licensing terms see $ROOTSYS/LICENSE. *
* For the list of contributors see $ROOTSYS/README/CREDITS. *
*************************************************************************/
/*************************************************************************
* Parts of this file are copied from the OOQP distribution and *
* are subject to the following license: *
* *
* COPYRIGHT 2001 UNIVERSITY OF CHICAGO *
* *
* The copyright holder hereby grants you royalty-free rights to use, *
* reproduce, prepare derivative works, and to redistribute this software*
* to others, provided that any changes are clearly documented. This *
* software was authored by: *
* *
* E. MICHAEL GERTZ gertz@mcs.anl.gov *
* Mathematics and Computer Science Division *
* Argonne National Laboratory *
* 9700 S. Cass Avenue *
* Argonne, IL 60439-4844 *
* *
* STEPHEN J. WRIGHT swright@cs.wisc.edu *
* Computer Sciences Department *
* University of Wisconsin *
* 1210 West Dayton Street *
* Madison, WI 53706 FAX: (608)262-9777 *
* *
* Any questions or comments may be directed to one of the authors. *
* *
* ARGONNE NATIONAL LABORATORY (ANL), WITH FACILITIES IN THE STATES OF *
* ILLINOIS AND IDAHO, IS OWNED BY THE UNITED STATES GOVERNMENT, AND *
* OPERATED BY THE UNIVERSITY OF CHICAGO UNDER PROVISION OF A CONTRACT *
* WITH THE DEPARTMENT OF ENERGY. *
*************************************************************************/
#ifndef ROOT_TQpDataDens
#define ROOT_TQpDataDens
#ifndef ROOT_TError
#include "TError.h"
#endif
#ifndef ROOT_TQpDataBase
#include "TQpDataBase.h"
#endif
#ifndef ROOT_TQpVar
#include "TQpVar.h"
#endif
#ifndef ROOT_TMatrixD
#include "TMatrixD.h"
#endif
#ifndef ROOT_TMatrixDSym
#include "TMatrixDSym.h"
#endif
//////////////////////////////////////////////////////////////////////////
// //
// TQpDataDens //
// //
// Data for the dense QP formulation //
// //
//////////////////////////////////////////////////////////////////////////
class TQpDataDens : public TQpDataBase
{
protected:
// these variables will be "Used" not copied
TMatrixDSym fQ; // Quadratic part of Objective function
TMatrixD fA; // Equality constraints
TMatrixD fC; // Inequality constraints
public:
TQpDataDens() {}
// data objects of the specified dimensions
TQpDataDens(Int_t nx,Int_t my,Int_t mz);
// sets up pointers to the data objects that are passed as arguments
TQpDataDens(TVectorD &c,TMatrixDSym &Q,TVectorD &xlow,TVectorD &ixlow,TVectorD &xupp,
TVectorD &ixupp,TMatrixD &A,TVectorD &bA,TMatrixD &C,TVectorD &clow,
TVectorD &iclow,TVectorD &cupp,TVectorD &icupp);
TQpDataDens(const TQpDataDens &another);
virtual ~TQpDataDens() {}
virtual void PutQIntoAt(TMatrixDBase &M,Int_t row,Int_t col);
// insert the Hessian Q into the matrix M for the fundamental
// linear system, where M is stored as a TMatrixD
virtual void PutAIntoAt(TMatrixDBase &M,Int_t row,Int_t col);
// insert the constraint matrix A into the matrix M for the
// fundamental linear system, where M is stored as a TMatrixD
virtual void PutCIntoAt(TMatrixDBase &M,Int_t row,Int_t col);
// insert the constraint matrix C into the matrix M for the
// fundamental linear system, where M is stored as a TMatrixD
virtual void Qmult (Double_t beta,TVectorD& y,Double_t alpha,const TVectorD& x);
// y = beta * y + alpha * Q * x
virtual void Amult (Double_t beta,TVectorD& y,Double_t alpha,const TVectorD& x);
// y = beta * y + alpha * A * x
virtual void Cmult (Double_t beta,TVectorD& y,Double_t alpha,const TVectorD& x);
// y = beta * y + alpha * C * x
virtual void ATransmult(Double_t beta,TVectorD& y,Double_t alpha,const TVectorD& x);
// y = beta * y + alpha * A^T * x
virtual void CTransmult(Double_t beta,TVectorD& y,Double_t alpha,const TVectorD& x);
// y = beta * y + alpha * C^T * x
virtual void GetDiagonalOfQ(TVectorD &dQ); // extract the diagonal of Q and put it in the vector dQ
virtual Double_t DataNorm();
virtual void DataRandom(TVectorD &x,TVectorD &y,TVectorD &z,TVectorD &s);
// Create a random problem (x,y,z,s)
// the solution to the random problem
virtual void Print(Option_t *opt="") const;
virtual Double_t ObjectiveValue(TQpVar *vars);
TQpDataDens &operator= (const TQpDataDens &source);
ClassDef(TQpDataDens,1) // Qp Data class for Dens formulation
};
#endif
|