TGondzioSolver.h

Go to the documentation of this file.
00001 // @(#)root/quadp:$Id: TGondzioSolver.h 20882 2007-11-19 11:31:26Z rdm $
00002 // Author: Eddy Offermann   May 2004
00003 
00004 /*************************************************************************
00005  * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers.               *
00006  * All rights reserved.                                                  *
00007  *                                                                       *
00008  * For the licensing terms see $ROOTSYS/LICENSE.                         *
00009  * For the list of contributors see $ROOTSYS/README/CREDITS.             *
00010  *************************************************************************/
00011 
00012 /*************************************************************************
00013  * Parts of this file are copied from the OOQP distribution and          *
00014  * are subject to the following license:                                 *
00015  *                                                                       *
00016  * COPYRIGHT 2001 UNIVERSITY OF CHICAGO                                  *
00017  *                                                                       *
00018  * The copyright holder hereby grants you royalty-free rights to use,    *
00019  * reproduce, prepare derivative works, and to redistribute this software*
00020  * to others, provided that any changes are clearly documented. This     *
00021  * software was authored by:                                             *
00022  *                                                                       *
00023  *   E. MICHAEL GERTZ      gertz@mcs.anl.gov                             *
00024  *   Mathematics and Computer Science Division                           *
00025  *   Argonne National Laboratory                                         *
00026  *   9700 S. Cass Avenue                                                 *
00027  *   Argonne, IL 60439-4844                                              *
00028  *                                                                       *
00029  *   STEPHEN J. WRIGHT     swright@cs.wisc.edu                           *
00030  *   Computer Sciences Department                                        *
00031  *   University of Wisconsin                                             *
00032  *   1210 West Dayton Street                                             *
00033  *   Madison, WI 53706   FAX: (608)262-9777                              *
00034  *                                                                       *
00035  * Any questions or comments may be directed to one of the authors.      *
00036  *                                                                       *
00037  * ARGONNE NATIONAL LABORATORY (ANL), WITH FACILITIES IN THE STATES OF   *
00038  * ILLINOIS AND IDAHO, IS OWNED BY THE UNITED STATES GOVERNMENT, AND     *
00039  * OPERATED BY THE UNIVERSITY OF CHICAGO UNDER PROVISION OF A CONTRACT   *
00040  * WITH THE DEPARTMENT OF ENERGY.                                        *
00041  *************************************************************************/
00042 
00043 #ifndef ROOT_TGondzioSolver
00044 #define ROOT_TGondzioSolver
00045 
00046 #include "TQpSolverBase.h"
00047 
00048 ///////////////////////////////////////////////////////////////////////////
00049 //                                                                       //
00050 // Derived class of TQpSolverBase implementing Gondzio-correction        //
00051 // version of Mehrotra's original predictor-corrector algorithm.         //
00052 //                                                                       //
00053 ///////////////////////////////////////////////////////////////////////////
00054 
00055 class TGondzioSolver : public TQpSolverBase
00056 {
00057 
00058 protected:
00059 
00060    Int_t        fPrintlevel;                   // parameter in range [0,100] determines verbosity. (Higher value
00061                                                //  => more verbose.)
00062    Double_t     fTsig;                         // exponent in Mehrotra's centering parameter, which is usually
00063                                                // chosen to me (muaff/mu)^tsig, where muaff is the predicted
00064                                                // complementarity gap obtained from an affine-scaling step, while
00065                                                // mu is the current complementarity gap
00066 
00067    Int_t        fMaximum_correctors;           // maximum number of Gondzio corrector steps
00068 
00069    Int_t        fNumberGondzioCorrections;     // actual number of Gondzio corrections needed
00070 
00071    Double_t     fStepFactor0;                  // various parameters associated with Gondzio correction
00072    Double_t     fStepFactor1;
00073    Double_t     fAcceptTol;
00074    Double_t     fBeta_min;
00075    Double_t     fBeta_max;
00076 
00077    TQpVar      *fCorrector_step;               // storage for step vectors
00078    TQpVar      *fStep;
00079 
00080    TQpResidual *fCorrector_resid;              // storage for residual vectors
00081 
00082    TQpProbBase *fFactory;
00083 
00084 public:
00085 
00086    TGondzioSolver();
00087    TGondzioSolver(TQpProbBase *of,TQpDataBase *prob,Int_t verbose=0);
00088    TGondzioSolver(const TGondzioSolver &another);
00089 
00090    virtual ~TGondzioSolver();
00091 
00092    virtual Int_t Solve           (TQpDataBase *prob,TQpVar *iterate,TQpResidual *resid);
00093 
00094    virtual void  Reset_parameters() {}         // reset parameters to their default values
00095 
00096    virtual void  DefMonitor      (TQpDataBase *data,TQpVar *vars,TQpResidual *resids,
00097                                   Double_t alpha,Double_t sigma,Int_t i,Double_t mu,
00098                                   Int_t status_code,Int_t level);
00099 
00100    TGondzioSolver &operator=(const TGondzioSolver &source);
00101 
00102    ClassDef(TGondzioSolver,1)                  // Gondzio Qp Solver class
00103 };
00104 #endif

Generated on Tue Jul 5 14:26:57 2011 for ROOT_528-00b_version by  doxygen 1.5.1