MPQC
2.3.1
Main Page
Related Pages
Classes
Files
File List
src
lib
math
optimize
mcsearch.h
1
//
2
// mcsearch.h
3
//
4
// Based on line search routines found in lbfgs.f on the WWW.
5
//
6
7
#ifndef _math_optimize_mcsearch_h
8
#define _math_optimize_mcsearch_h
9
10
#ifdef __GNUC__
11
#pragma interface
12
#endif
13
14
#include <math/optimize/opt.h>
15
#include <util/misc/autovec.h>
16
17
namespace
sc {
18
24
class
MCSearch
:
public
LineOpt
{
25
protected
:
26
27
// These are originally from the lb3 common block.
28
double
gtol_, stpmin_, stpmax_;
29
30
// Local variables in mcsrch
31
double
dg, fm, fx, fy, dgm, dgx, dgy, fxm, fym, stx, sty, dgxm,
32
dgym;
33
int
infoc;
34
double
finit, width, stmin, stmax;
35
bool
stage1;
36
double
width1, ftest1;
37
bool
brackt;
38
double
dginit, dgtest;
39
40
// Local variables in mcstep
41
double
p, q, r__, s, sgnd, stpc, stpf, stpq, gamma, theta;
42
bool
bound;
43
44
// these are saved from call to call
45
int
info_;
46
auto_vec<double>
wa_;
47
48
void
49
mcstep(
double
*stx,
double
*fx,
double
*dx,
50
double
*sty,
double
*fy,
double
*dy,
double
*stp,
51
double
*fp,
double
*dp,
bool
*brackt,
double
*stpmin,
52
double
*stpmax,
int
*info);
53
54
void
55
mcsrch(
int
*n,
double
*x,
double
*f,
56
double
*g,
double
*s,
double
*stp,
double
*ftol,
57
double
*xtol,
int
*maxfev,
int
*info,
int
*nfev,
58
double
*wa);
59
60
61
void
mcinit();
62
public
:
63
67
MCSearch
(
const
Ref<KeyVal>
&);
68
~
MCSearch
();
69
int
update
();
70
71
void
init
(
RefSCVector
& direction);
72
void
init
(
RefSCVector
& direction,
Ref<Function>
function
);
73
74
};
75
76
}
77
78
#endif
79
80
// Local Variables:
81
// mode: c++
82
// c-file-style: "CLJ"
83
// End:
Generated at Wed Jan 22 2014 06:45:39 for
MPQC
2.3.1 using the documentation package
Doxygen
1.8.3.1.