MnLineSearch.h

Go to the documentation of this file.
00001 // @(#)root/minuit2:$Id: MnLineSearch.h 20880 2007-11-19 11:23:41Z rdm $
00002 // Authors: M. Winkler, F. James, L. Moneta, A. Zsenei   2003-2005  
00003 
00004 /**********************************************************************
00005  *                                                                    *
00006  * Copyright (c) 2005 LCG ROOT Math team,  CERN/PH-SFT                *
00007  *                                                                    *
00008  **********************************************************************/
00009 
00010 #ifndef ROOT_Minuit2_MnLineSearch
00011 #define ROOT_Minuit2_MnLineSearch
00012 
00013 #include "Minuit2/MnMatrix.h"
00014 
00015 namespace ROOT {
00016 
00017    namespace Minuit2 {
00018 
00019 
00020 class MnFcn;
00021 class MinimumParameters;
00022 class MnMachinePrecision;
00023 class MnParabolaPoint;
00024 
00025 
00026 
00027 
00028 /** 
00029 
00030 Implements a 1-dimensional minimization along a given direction 
00031 (i.e. quadratic interpolation) It is independent of the algorithm 
00032 that generates the direction vector. It brackets the 1-dimensional 
00033 Minimum and iterates to approach the real Minimum of the n-dimensional
00034 function.
00035 
00036 
00037 @author Fred James and Matthias Winkler; comments added by Andras Zsenei
00038 and Lorenzo Moneta
00039 
00040 @ingroup Minuit
00041 
00042 */
00043 
00044 
00045 
00046 
00047 class MnLineSearch  {
00048 
00049 public:
00050 
00051   MnLineSearch() {}
00052 
00053   ~MnLineSearch() {}
00054 
00055   MnParabolaPoint operator()(const MnFcn&, const MinimumParameters&, const MnAlgebraicVector&, double, const MnMachinePrecision&, bool debug = false) const;
00056 
00057 #ifdef USE_OTHER_LS
00058   MnParabolaPoint CubicSearch(const MnFcn&, const MinimumParameters&, const MnAlgebraicVector&, double, double, const MnMachinePrecision&, bool debug = false) const;
00059 
00060   MnParabolaPoint BrentSearch(const MnFcn&, const MinimumParameters&, const MnAlgebraicVector&, double, double, const MnMachinePrecision&, bool debug = false) const;
00061 #endif
00062 
00063 private:
00064 
00065 };
00066 
00067   }  // namespace Minuit2
00068 
00069 }  // namespace ROOT
00070 
00071 #endif  // ROOT_Minuit2_MnLineSearch

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