Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
RootFinderAlgorithms.h
Go to the documentation of this file.
1// @(#)root/mathmore:$Id$
2// Author: L. Moneta, A. Zsenei 08/2005
3
4 /**********************************************************************
5 * *
6 * Copyright (c) 2004 ROOT Foundation, CERN/PH-SFT *
7 * *
8 * This library is free software; you can redistribute it and/or *
9 * modify it under the terms of the GNU General Public License *
10 * as published by the Free Software Foundation; either version 2 *
11 * of the License, or (at your option) any later version. *
12 * *
13 * This library is distributed in the hope that it will be useful, *
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
16 * General Public License for more details. *
17 * *
18 * You should have received a copy of the GNU General Public License *
19 * along with this library (see file COPYING); if not, write *
20 * to the Free Software Foundation, Inc., 59 Temple Place, Suite *
21 * 330, Boston, MA 02111-1307 USA, or contact the author. *
22 * *
23 **********************************************************************/
24
25// Header file for GSL ROOT Finder Algorithms
26//
27// Created by: moneta at Sun Nov 14 14:07:50 2004
28//
29// Last update: Sun Nov 14 14:07:50 2004
30//
31#ifndef ROOT_Math_GSLRootFinderAlgorithms
32#define ROOT_Math_GSLRootFinderAlgorithms
33
34
35#include "Math/GSLRootFinder.h"
36
38
39namespace ROOT {
40namespace Math {
41
42 /**
43 Root-Finding Algorithms
44
45 */
46
47namespace Roots {
48
49//________________________________________________________________________________________________________
50 /**
51 Roots::Bisection
52 Bisection algorithm, simplest algorithm for bracketing the roots of a function, but slowest one.
53 See the <A HREF="http://www.gnu.org/software/gsl/manual/html_node/Root-Bracketing-Algorithms.html">GSL manual</A> for more information
54 @ingroup RootFinders
55 */
56
57 class Bisection : public GSLRootFinder {
58
59 public:
60
61 Bisection();
62 ~Bisection() override;
63 };
64
65//________________________________________________________________________________________________________
66 /**
67 False Position algorithm based on linear interpolation.
68 See the <A HREF="http://www.gnu.org/software/gsl/manual/html_node/Root-Bracketing-Algorithms.html">GSL manual</A> for more information
69 @ingroup RootFinders
70 */
71
72 class FalsePos : public GSLRootFinder {
73
74 public:
75
76 FalsePos();
77 ~FalsePos() override;
78 };
79
80
81
82//________________________________________________________________________________________________________
83 /**
84 Brent-Dekker algorithm which combines an interpolation strategy with the bisection algorithm
85 See the <A HREF="http://www.gnu.org/software/gsl/manual/html_node/Root-Bracketing-Algorithms.html">
86 GSL manual</A> for more information
87
88 @ingroup RootFinders
89 */
90
91 class Brent : public GSLRootFinder {
92
93 public:
94
95 Brent();
96 ~Brent() override;
97 };
98
99
100 //----------------------------------------------------------------------
101 // algorithm with derivatives
102 //----------------------------------------------------------------------
103
104//________________________________________________________________________________________________________
105 /**
106 a Newton algorithm, which computes the derivative at each iteration
107 See the <A HREF="http://www.gnu.org/software/gsl/manual/html_node/Root-Finding-Algorithms-using-Derivatives.html">
108 GSL manual</A> for more information
109
110 @ingroup RootFinders
111 */
112
113 class Newton : public GSLRootFinderDeriv {
114
115 public:
116
117 Newton();
118 ~Newton() override;
119 };
120
121
122//________________________________________________________________________________________________________
123 /**
124 \a Secant algorithm, simplified version of Newton method, which does not require the derivative at every step.
125 See the <A HREF="http://www.gnu.org/software/gsl/manual/html_node/Root-Finding-Algorithms-using-Derivatives.html">
126 GSL manual</A> for more information
127 @ingroup RootFinders
128 */
129
130 class Secant : public GSLRootFinderDeriv {
131
132 public:
133
134 Secant();
135 ~Secant() override;
136 };
137
138//________________________________________________________________________________________________________
139 /**
140 \a Steffenson method, providing the fastes convergence.
141 See the <A HREF="http://www.gnu.org/software/gsl/manual/html_node/Root-Finding-Algorithms-using-Derivatives.html">
142 GSL manual</A> for more information
143
144 @ingroup RootFinders
145 */
146
148
149 public:
150
151 Steffenson();
152 ~Steffenson() override;
153 };
154
155
156}
157
158} // namespace Math
159} // namespace ROOT
160
161
162#endif /* ROOT_Math_GSLRootFinderAlgorithms */
Base class for GSL Root-Finding algorithms for one dimensional functions which use function derivativ...
Base class for GSL Root-Finding algorithms for one dimensional functions which do not use function de...
Roots::Bisection Bisection algorithm, simplest algorithm for bracketing the roots of a function,...
Brent-Dekker algorithm which combines an interpolation strategy with the bisection algorithm See the ...
False Position algorithm based on linear interpolation.
a Newton algorithm, which computes the derivative at each iteration See the GSL manual for more infor...
Secant algorithm, simplified version of Newton method, which does not require the derivative at every...
Steffenson method, providing the fastes convergence.
Namespace for new Math classes and functions.
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...