vnl_bracket_minimum.h
Go to the documentation of this file.
1 // This is core/vnl/algo/vnl_bracket_minimum.h
2 #ifndef vnl_bracket_minimum_h_
3 #define vnl_bracket_minimum_h_
4 //:
5 // \file
6 // \brief Function to bracket a minimum
7 // \author Tim Cootes
8 // \date Feb 2007
9 //
10 // \verbatim
11 // Modifications
12 // \endverbatim
13 
14 #include <vnl/vnl_cost_function.h>
15 #include <vnl/algo/vnl_algo_export.h>
16 
17 //: Given initial values a and b, find bracket a<b<c s.t. f(a)>f(b)<f(c)
18 // Final function values at a,b,c stored in fa,fb,fc.
19 //
20 // The algorithm takes increasingly large steps in a downhill direction
21 // until it starts going up again. To speed things up, it also fits
22 // a parabola to the last three points, which it uses to predict the
23 // possible minimum directly ( hopefully automatically choosing a
24 // sensible step size).
25 //
26 // Note that there's currently nothing
27 // to stop it if it is supplied with a monotonic function - it will just continue
28 // forever.
29 void VNL_ALGO_EXPORT vnl_bracket_minimum(vnl_cost_function& f,
30  double& a, double& b, double& c,
31  double& fa, double& fb, double& fc);
32 
33 #endif // vnl_bracket_minimum_h_
An object that represents a function from R^n -> R.
void VNL_ALGO_EXPORT vnl_bracket_minimum(vnl_cost_function &f, double &a, double &b, double &c, double &fa, double &fb, double &fc)
Given initial values a and b, find bracket a<b<c s.t. f(a)>f(b)<f(c).
Vector->Real function.