Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
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
39namespace ROOT {
40namespace Math {
41
42//___________________________________________________________________________________________
43/**
44 Interface class for numerical methods for one-dimensional minimization
45
46 @ingroup Min1D
47
48 */
49
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 */
Interface class for numerical methods for one-dimensional minimization.
virtual const char * Name() const =0
Return name of minimization algorithm.
virtual int Iterations() const =0
Return number of iteration used to find minimum.
virtual bool Minimize(int maxIter, double absTol, double relTol)=0
Find minimum position iterating until convergence specified by the absolute and relative tolerance or...
virtual double XLower() const =0
Return current lower bound of the minimization interval.
virtual double XUpper() const =0
Return current upper bound of the minimization interval.
virtual double FValMinimum() const =0
Return function value at current estimate of the minimum.
virtual double FValLower() const =0
Return function value at current lower bound of the minimization interval.
virtual double FValUpper() const =0
Return function value at current upper bound of the minimization interval.
virtual double XMinimum() const =0
Return current estimate of the position of the minimum.
virtual int Status() const =0
Returns the status of the previous estimate.
Namespace for new Math classes and functions.
This file contains a specialised ROOT message handler to test for diagnostic in unit tests.