Logo ROOT   6.21/01
Reference Guide
IMinimizer1D.h
Go to the documentation of this file.
1 // @(#)root/mathcore:$Id$
2 // Author: David Gonzalez Maline 2/2008
3  /**********************************************************************
4  * *
5  * Copyright (c) 2004 Maline, CERN/PH-SFT *
6  * *
7  * This library is free software; you can redistribute it and/or *
8  * modify it under the terms of the GNU General Public License *
9  * as published by the Free Software Foundation; either version 2 *
10  * of the License, or (at your option) any later version. *
11  * *
12  * This library is distributed in the hope that it will be useful, *
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
15  * General Public License for more details. *
16  * *
17  * You should have received a copy of the GNU General Public License *
18  * along with this library (see file COPYING); if not, write *
19  * to the Free Software Foundation, Inc., 59 Temple Place, Suite *
20  * 330, Boston, MA 02111-1307 USA, or contact the author. *
21  * *
22  **********************************************************************/
23 
24 // Header file for class Minimizer1D
25 //
26 // Created by: Maline at Fri Feb 1 11:30:26 2008
27 //
28 
29 #ifndef ROOT_Math_IMinimizer1D
30 #define ROOT_Math_IMinimizer1D
31 
32 /**
33 
34  @defgroup Min1D One-dimensional Minimization
35  Classes for one-dimensional minimization
36  @ingroup NumAlgo
37  */
38 
39 namespace ROOT {
40 namespace Math {
41 
42 //___________________________________________________________________________________________
43 /**
44  Interface class for numerical methods for one-dimensional minimization
45 
46  @ingroup Min1D
47 
48  */
49 
50  class IMinimizer1D {
51 
52  public:
53 
55  virtual ~IMinimizer1D() {}
56 
57  public:
58 
59  /**
60  * Return current estimate of the position of the minimum
61  */
62  virtual double XMinimum() const = 0;
63 
64  /**
65  * Return current lower bound of the minimization interval
66  */
67  virtual double XLower() const = 0;
68 
69  /**
70  * Return current upper bound of the minimization interval
71  */
72  virtual double XUpper() const = 0;
73 
74  /**
75  * Return function value at current estimate of the minimum
76  */
77  virtual double FValMinimum() const = 0;
78 
79  /**
80  * Return function value at current lower bound of the minimization interval
81  */
82  virtual double FValLower() const = 0;
83 
84  /**
85  * Return function value at current upper bound of the minimization interval
86  */
87  virtual double FValUpper() const = 0;
88 
89  /**
90  * Find minimum position iterating until convergence specified by the absolute and relative tolerance or
91  * the maximum number of iteration is reached
92  * Return true if iterations converged successfully
93  * \@param maxIter maximum number of iteration
94  * \@param absTol desired absolute error in the minimum position
95  * \@param absTol desired relative error in the minimum position
96  */
97  virtual bool Minimize( int maxIter, double absTol, double relTol) = 0;
98 
99  /**
100  * Return number of iteration used to find minimum
101  */
102  virtual int Iterations() const = 0;
103 
104  /**
105  * Return name of minimization algorithm
106  */
107  virtual const char * Name() const = 0;
108 
109  /** Returns the status of the previous estimate */
110  virtual int Status() const = 0;
111 
112 
113  }; // end class IMinimizer1D
114 
115 } // end namespace Math
116 
117 } // end namespace ROOT
118 
119 #endif /* ROOT_Math_IMinimizer1D */
virtual double XUpper() const =0
Return current upper bound of the minimization interval.
virtual double XLower() const =0
Return current lower bound of the minimization interval.
virtual bool Minimize(int maxIter, double absTol, double relTol)=0
Find minimum position iterating until convergence specified by the absolute and relative tolerance or...
Returns the available number of logical cores.
Definition: StringConv.hxx:21
virtual double FValMinimum() const =0
Return function value at current estimate of the minimum.
virtual int Status() const =0
Returns the status of the previous estimate.
virtual int Iterations() const =0
Return number of iteration used to find minimum.
virtual double FValLower() const =0
Return function value at current lower bound of the minimization interval.
virtual const char * Name() const =0
Return name of minimization algorithm.
virtual double FValUpper() const =0
Return function value at current upper bound of the minimization interval.
Interface class for numerical methods for one-dimensional minimization.
Definition: IMinimizer1D.h:50
Namespace for new Math classes and functions.
virtual double XMinimum() const =0
Return current estimate of the position of the minimum.