sc::MCSearch(3) This performs line searches with cubic steps.

SYNOPSIS


#include <mcsearch.h>

Inherits sc::LineOpt.

Public Member Functions


MCSearch (const Ref< KeyVal > &)
The MCSearch KeyVal CTOR does not read any input.
int update ()
Take a step.
void init (RefSCVector &direction)
Initializes the line search object.
void init (RefSCVector &direction, Ref< Function > function)
Initializes the line search object.

Protected Member Functions


void mcstep (double *stx, double *fx, double *dx, double *sty, double *fy, double *dy, double *stp, double *fp, double *dp, bool *brackt, double *stpmin, double *stpmax, int *info)

void mcsrch (int *n, double *x, double *f, double *g, double *s, double *stp, double *ftol, double *xtol, int *maxfev, int *info, int *nfev, double *wa)

void mcinit ()

Protected Attributes


double gtol_

double stpmin_

double stpmax_

double dg

double fm

double fx

double fy

double dgm

double dgx

double dgy

double fxm

double fym

double stx

double sty

double dgxm

double dgym

int infoc

double finit

double width

double stmin

double stmax

bool stage1

double width1

double ftest1

bool brackt

double dginit

double dgtest

double p

double q

double r__

double s

double sgnd

double stpc

double stpf

double stpq

double gamma

double theta

bool bound

int info_

auto_vec< double > wa_

Detailed Description

This performs line searches with cubic steps.

It is based on the Fortran MCSRCH and MCSTEP routines produced by: Argonne National Laboratory. MINPACK Project. June 1983 Jorge J. More', David J. Thuente.

Constructor & Destructor Documentation

sc::MCSearch::MCSearch (const Ref< KeyVal > &)

The MCSearch KeyVal CTOR does not read any input. See the LineOpt KeyVal CTOR for parameters that it takes.

Member Function Documentation

void sc::MCSearch::init (RefSCVector & direction, Ref< Function > function) [virtual]

Initializes the line search object. First argument is a search direction, second argument is a function object to optimize. Use this method when a function must be passed to the Optimize base class.

Reimplemented from sc::LineOpt.

void sc::MCSearch::init (RefSCVector & direction) [virtual]

Initializes the line search object. Argument is a search direction. Use of this method assumes the Optimize base class already has a function object (got it from a keyval or elsewhere).

Reimplemented from sc::LineOpt.

int sc::MCSearch::update () [virtual]

Take a step. Returns 1 if the optimization has converged, otherwise 0.

Implements sc::Optimize.

Author

Generated automatically by Doxygen for MPQC from the source code.