TMehrotraSolver.h

Go to the documentation of this file.
00001 // @(#)root/quadp:$Id: TMehrotraSolver.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_TMehrotraSolver
00044 #define ROOT_TMehrotraSolver
00045 
00046 #include "TQpSolverBase.h"
00047 
00048 ///////////////////////////////////////////////////////////////////////////
00049 //                                                                       //
00050 // Derived class of TQpSolverBase implementing the original Mehrotra     //
00051 // predictor-corrector algorithm                                         //
00052 //                                                                       //
00053 ///////////////////////////////////////////////////////////////////////////
00054 
00055 class TMehrotraSolver : public TQpSolverBase
00056 {
00057 protected:
00058 
00059    Int_t        fPrintlevel;                   // parameter in range [0,100] determines verbosity. (Higher value
00060                                                //  => more verbose.)
00061    Double_t     fTsig;                         // exponent in Mehrotra's centering parameter, which is usually
00062                                                // chosen to me (muaff/mu)^tsig, where muaff is the predicted
00063                                                // complementarity gap obtained from an affine-scaling step, while
00064                                                // mu is the current complementarity gap
00065 
00066    TQpVar      *fStep;                         // storage for step vectors
00067 
00068    TQpProbBase *fFactory;
00069 
00070 public:
00071 
00072    TMehrotraSolver();
00073    TMehrotraSolver(TQpProbBase *of,TQpDataBase *prob,Int_t verbose=0);
00074    TMehrotraSolver(const TMehrotraSolver &another);
00075 
00076    virtual ~TMehrotraSolver();
00077 
00078    virtual Int_t Solve           (TQpDataBase *prob,TQpVar *iterate,TQpResidual *resid);
00079    virtual void  DefMonitor      (TQpDataBase *data,TQpVar *vars,TQpResidual *resids,
00080                                   Double_t alpha,Double_t sigma,Int_t i,Double_t mu,
00081                                   Int_t status_code,Int_t level);
00082 
00083    TMehrotraSolver &operator=(const TMehrotraSolver &source);
00084 
00085    ClassDef(TMehrotraSolver,1)                 // Mehrotra Qp Solver class
00086 };
00087 #endif

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