MPQC  3.0.0-alpha
sc::MCSearch Class Reference

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

#include <math/optimize/mcsearch.h>

Inheritance diagram for sc::MCSearch:
sc::LineOpt sc::Optimize sc::SavableState sc::DescribedClass sc::RefCount

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...
 
void print (std::ostream &=ExEnv::out0()) const
 Print the object.
 
- 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.
 
void print (std::ostream &=ExEnv::out0()) const
 Print the object.
 
- 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.
 
Ref< Functionfunction () const
 Returns information about the Function being optimized.
 
Ref< Convergenceconvergence () const
 Return information about the Convergence object being used.
 
Ref< SCMatrixKitmatrixkit () const
 
RefSCDimension dimension () const
 
- Public Member Functions inherited from sc::SavableState
SavableStateoperator= (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 &)
 
DescribedClassoperator= (const DescribedClass &)
 
ClassDescclass_desc () const MPQC__NOEXCEPT
 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.
 
Ref< DescribedClassref ()
 Return this object wrapped up in a Ref smart pointer. More...
 
- Public Member Functions inherited from sc::RefCount
size_t identifier () const
 Return the unique identifier for this object that can be compared for different objects of different types. More...
 
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...
 

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::Optimize
void init ()
 Initialize the optimizer.
 
- Protected Member Functions inherited from sc::SavableState
 SavableState (const SavableState &)
 
 SavableState (StateIn &)
 Each derived class StateIn CTOR handles the restore corresponding to calling save_object_state, save_vbase_state, and save_data_state listed above. More...
 
- Protected Member Functions inherited from sc::RefCount
 RefCount (const RefCount &)
 
RefCountoperator= (const RefCount &)
 

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
RefSCVector initial_x_
 
double initial_value_
 
RefSCVector initial_grad_
 
RefSCVector search_direction_
 
Ref< Functionfunction_
 
- Protected Attributes inherited from sc::Optimize
int max_iterations_
 
int n_iterations_
 
int ckpt_
 
int print_timings_
 
double max_stepsize_
 
std::string ckpt_file_
 
Ref< Functionfunction_
 
Ref< Convergenceconv_
 
Ref< MessageGrpmsg_
 

Additional Inherited Members

- Static Public Member Functions inherited from sc::SavableState
static void save_state (SavableState *s, StateOut &)
 
static SavableStaterestore_state (StateIn &si)
 Restores objects saved with save_state. More...
 
static SavableStatekey_restore_state (StateIn &si, const char *keyword)
 Like restore_state, but keyword is used to override values while restoring.
 
static SavableStatedir_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

◆ MCSearch()

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

◆ init() [1/2]

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.

◆ init() [2/2]

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.

◆ update()

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:

Generated at Sun Jan 26 2020 23:24:07 for MPQC 3.0.0-alpha using the documentation package Doxygen 1.8.16.