Solver1D Class Template Reference

#include <solver1d.hpp>

Inheritance diagram for Solver1D:

Inheritance graph
[legend]
List of all members.

Detailed Description

template<class Impl>
class QuantLib::Solver1D< Impl >

Base class for 1-D solvers.

The implementation of this class uses the so-called "Barton-Nackman trick", also known as "the curiously recurring template pattern". Concrete solvers will be declared as:

        class Foo : public Solver1D<Foo> {
          public:
            ...
            template <class F>
            double solveImpl(const F& f, double accuracy) const {
                ...
            }
        };
Before calling solveImpl, the base class will set its protected data members so that:
  • xMin_ and xMax_ form a valid bracket;
  • fxMin_ and fxMax_ contain the values of the function in xMin_ and xMax_;
  • root_ is a valid initial guess. The implementation of solveImpl can safely assume all of the above.


Public Member Functions

Modifiers
template<class F> double solve (const F &f, double accuracy, double guess, double step) const
template<class F> double solve (const F &f, double accuracy, double guess, double xMin, double xMax) const
void setMaxEvaluations (Size evaluations)
void setLowerBound (double lowerBound)
 sets the lower bound for the function domain

void setUpperBound (double upperBound)
 sets the upper bound for the function domain


Protected Attributes

double root_
double xMin_
double xMax_
double fxMin_
double fxMax_
Size maxEvaluations_
Size evaluationNumber_


Member Function Documentation

double solve const F &  f,
double  accuracy,
double  guess,
double  step
const
 

This method returns the zero of the function $ f $, determined with the given accuracy (i.e., $ x $ is considered a zero if $ |f(x)| < accuracy $). This method contains a bracketing routine to which an initial guess must be supplied as well as a step used to scan the range of the possible bracketing values.

double solve const F &  f,
double  accuracy,
double  guess,
double  xMin,
double  xMax
const
 

This method returns the zero of the function $ f $, determined with the given accuracy (i.e., $ x $ is considered a zero if $ |f(x)| < accuracy $). An initial guess must be supplied, as well as two values $ x_\mathrm{min} $ and $ x_\mathrm{max} $ which must bracket the zero (i.e., either $ f(x_\mathrm{min}) \leq 0 \leq f(x_\mathrm{max}) $, or $ f(x_\mathrm{max}) \leq 0 \leq f(x_\mathrm{min}) $ must be true).

void setMaxEvaluations Size  evaluations  ) 
 

This method sets the maximum number of function evaluations for the bracketing routine. An error is thrown if a bracket is not found after this number of evaluations.


The documentation for this class was generated from the following file:

QuantLib.org
QuantLib
Hosted by
SourceForge.net Logo
Documentation generated by
doxygen