19#include "RConfigure.h"
21#ifndef MATH_NO_PLUGIN_MANAGER
47 throw std::runtime_error(
"ROOT::Math::RootFinder: ROOT was built without the requested algorithm");
67#ifdef MATH_NO_PLUGIN_MANAGER
91 MATH_ERROR_MSG(
"RootFinder::SetMethod",
"RootFinderMethod type is not available in MathCore");
98 MATH_ERROR_MSG(
"RootFinder::SetMethod",
"RootFinderMethod type is not available in MathCore");
124 stype =
"Steffenson";
127 MATH_ERROR_MSG(
"RootFinder::SetMethod",
"RootFinderMethod type is not available in MathCore");
133 if ((
h =
gROOT->GetPluginManager()->FindHandler(
"ROOT::Math::IRootFinderMethod", stype.c_str() ))) {
134 if (
h->LoadPlugin() == -1) {
135 MATH_ERROR_MSG(
"RootFinder::SetMethod",
"Error loading RootFinderMethod");
145 MATH_ERROR_MSG(
"RootFinder::SetMethod",
"Error loading RootFinderMethod");
#define MATH_ERROR_MSG(loc, str)
Class for finding the root of a one dimensional function using the Brent algorithm.
Interface for finding function roots of one-dimensional functions.
Class for finding the root of a one dimensional function using the ModAB algorithm.
bool SetMethod(RootFinder::EType type=RootFinder::kBRENT)
RootFinder(RootFinder::EType type=RootFinder::kBRENT)
Construct a Root-Finder algorithm.
IRootFinderMethod * fSolver
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.