BALL
1.5.0
include
BALL
MOLMEC
MINIMIZATION
lineSearch.h
Go to the documentation of this file.
1
// -*- Mode: C++; tab-width: 2; -*-
2
// vi: set ts=2:
3
//
4
// $Id: lineSearch.h,v 1.20.18.3 2007/08/07 09:12:34 aleru Exp $
5
//
6
7
// Line Search Minimizer: A special class for the line search minimization algorithm
8
9
#ifndef BALL_MOLMEC_MINIMIZATION_LINESEARCH_H
10
#define BALL_MOLMEC_MINIMIZATION_LINESEARCH_H
11
12
#ifndef BALL_COMMON_H
13
# include <
BALL/common.h
>
14
#endif
15
16
namespace
BALL
17
{
18
class
EnergyMinimizer;
19
32
class
BALL_EXPORT
LineSearch
33
{
34
public
:
35
39
40
BALL_CREATE
(
LineSearch
)
41
42
44
LineSearch
();
45
48
LineSearch
(
EnergyMinimizer
& minimizer);
49
52
LineSearch
(const
LineSearch
& line_search);
53
56
virtual ~
LineSearch
() ;
57
59
62
65
const
LineSearch
& operator=(const
LineSearch
&
LineSearch
);
66
68
71
75
void
setAlpha(
double
alpha);
76
80
void
setBeta(
double
beta);
81
85
double
getAlpha() const;
86
90
double
getBeta() const;
91
94
Size
getMaxSteps() const;
95
98
void
setMaxSteps(
Size
steps);
99
103
void
setLowerBound(
double
lbound);
104
107
double
getLowerBound() const;
108
111
void
setXTol(
double
xtol);
112
115
double
getXTol() const;
116
124
void
setBracketedFlag(
bool
bracktd);
125
130
bool
isBracketed() const;
131
135
void
setMinimizer(
EnergyMinimizer
& minimizer);
136
158
virtual
void
takeStep(
double
&st_a,
double
&f_a,
double
&g_a,
double
&st_b,
double
&f_b,
159
double
&g_b,
double
&stp,
double
f,
double
g,
double
minstp,
double
maxstp);
160
162
165
195
virtual
bool
minimize(
double
& stp,
bool
keep_gradient = false);
197
198
protected:
199
200
/*_ Parameter alpha for line search criterion.
201
*/
202
double
alpha_;
203
204
/*_ Parameter beta for line search criterion.
205
*/
206
double
beta_;
207
208
/*_ Parameter for the number of interpolation steps
209
*/
210
Size
max_steps_;
211
212
/*_ Lower bound for energy values.
213
*/
214
double
lower_energy_bound_;
215
216
/*_ Nonnegative relative tolerance for an acceptable step.
217
*/
218
double
stptol_;
219
220
/*_ Specifies whether a minimizer has already been bracketed or not.
221
*/
222
bool
is_bracketed_;
223
224
/*_ Calling minimizer class which provides the search direction among other things.
225
*/
226
EnergyMinimizer
* minimizer_;
227
228
};
229
230
}
// namespace BALL
231
232
#endif // BALL_MOLMEC_MINIMIZATION/LINESEARCH_H
BALL_EXPORT
#define BALL_EXPORT
Definition:
COMMON/global.h:50
BALL::LineSearch
Definition:
lineSearch.h:33
BALL
Definition:
constants.h:13
BALL_SIZE_TYPE
common.h
BALL::EnergyMinimizer
Definition:
energyMinimizer.h:30
BALL_CREATE
#define BALL_CREATE(name)
Definition:
create.h:62
Generated by
1.8.20