sc::MCSearch Class Reference

This performs line searches with cubic steps. More...

`#include <mcsearch.h>`

Inheritance diagram for sc::MCSearch:
[legend]
Collaboration diagram for sc::MCSearch:
[legend]

## Public Member Functions

| MCSearch (const Ref< KeyVal > &)
| The MCSearch KeyVal CTOR does not read any input. More...
int | update ()
| Take a step. More...
void | init (RefSCVector &direction)
| Initializes the line search object. More...
void | init (RefSCVector &direction, Ref< Function > function)
| Initializes the line search object. More...
Public Member Functions inherited from sc::LineOpt
| LineOpt (StateIn &)
| LineOpt (const Ref< KeyVal > &)
void | save_data_state (StateOut &)
| Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR initializes them. More...
void | apply_transform (const Ref< NonlinearTransform > &)
| Applies a nonlinear transform.
double | decrease_factor ()
| Returns factor for sufficient decrease test.
double | set_decrease_factor (double factor)
| Sets factor for sufficient decrease test.
Public Member Functions inherited from sc::Optimize
| Optimize (StateIn &)
| Restore the state of a Function object.
| Optimize (const Ref< KeyVal > &)
| The KeyVal constructor reads the following information: More...
virtual int | optimize ()
| Do the optimization. More...
void | set_checkpoint ()
| Set up for checkpointing.
void | set_checkpoint_file (const char *)
void | set_function (const Ref< Function > &)
| Set the function to be optimized.
void | set_max_iterations (int)
| Set the iteration limit.
virtual void | init ()
| Initialize the optimizer.
Ref< Function > | function () const
| Returns information about the Function being optimized.
Ref< SCMatrixKit > | matrixkit () const
RefSCDimension | dimension () const
Public Member Functions inherited from sc::SavableState
SavableState & | operator= (const SavableState &)
void | save_state (StateOut &)
| Save the state of the object as specified by the StateOut object. More...
void | save_object_state (StateOut &)
| This can be used for saving state when the exact type of the object is known for both the save and the restore. More...
virtual void | save_vbase_state (StateOut &)
| Save the virtual bases for the object. More...
Public Member Functions inherited from sc::DescribedClass
| DescribedClass (const DescribedClass &)
DescribedClass & | operator= (const DescribedClass &)
ClassDesc * | class_desc () const throw ()
| This returns the unique pointer to the ClassDesc corresponding to the given type_info object. More...
const char * | class_name () const
| Return the name of the object's exact type.
int | class_version () const
| Return the version of the class.
virtual void | print (std::ostream &=ExEnv::out0()) const
| Print the object.
Public Member Functions inherited from sc::RefCount
int | lock_ptr () const
| Lock this object.
int | unlock_ptr () const
| Unlock this object.
void | use_locks (bool inVal)
| start and stop using locks on this object
refcount_t | nreference () const
| Return the reference count.
refcount_t | reference ()
| Increment the reference count and return the new count.
refcount_t | dereference ()
| Decrement the reference count and return the new count.
int | managed () const
void | unmanage ()
| Turn off the reference counting mechanism for this object. More...
int | managed () const
| Return 1 if the object is managed. Otherwise return 0.
Public Member Functions inherited from sc::Identity
Identifier | identifier ()
| Return the Identifier for this argument. More...

## 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 Member Functions inherited from sc::LineOpt
int | sufficient_decrease (RefSCVector &step)

## 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_
Protected Attributes inherited from sc::LineOpt
double | decrease_factor_
RefSCVector | initial_x_
double | initial_value_
RefSCVector | initial_grad_
RefSCVector | search_direction_
Ref< Function > | function_
Protected Attributes inherited from sc::Optimize
int | max_iterations_
int | n_iterations_
int | ckpt_
int | print_timings_
double | max_stepsize_
char * | ckpt_file
Ref< Function > | function_
Ref< Convergence > | conv_

## Additional Inherited Members

Static Public Member Functions inherited from sc::SavableState
static void | save_state (SavableState *s, StateOut &)
static SavableState * | restore_state (StateIn &si)
| Restores objects saved with save_state. More...
static SavableState * | key_restore_state (StateIn &si, const char *keyword)
| Like restore_state, but keyword is used to override values while restoring. More...
static SavableState * | dir_restore_state (StateIn &si, const char *objectname, const char *keyword=0)

## 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 | ) |

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.

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.

int sc::MCSearch::update | ( |  | ) |

virtual

Take a step.

Returns 1 if the optimization has converged, otherwise 0.

Implements sc::Optimize.

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

- mcsearch.h