ROL
Public Member Functions | Private Attributes | List of all members
ROL::SecantStep< Real > Class Template Reference

Provides the interface to compute optimization steps with a secant method. More...

#include <ROL_SecantStep.hpp>

+ Inheritance diagram for ROL::SecantStep< Real >:

Public Member Functions

 SecantStep (ROL::ParameterList &parlist, const ROL::Ptr< Secant< Real > > &secant=ROL::nullPtr, const bool computeObj=true)
 Constructor.
 
void initialize (Vector< Real > &x, const Vector< Real > &s, const Vector< Real > &g, Objective< Real > &obj, BoundConstraint< Real > &con, AlgorithmState< Real > &algo_state)
 Initialize step with bound constraint.
 
void compute (Vector< Real > &s, const Vector< Real > &x, Objective< Real > &obj, BoundConstraint< Real > &bnd, AlgorithmState< Real > &algo_state)
 Compute step.
 
void update (Vector< Real > &x, const Vector< Real > &s, Objective< Real > &obj, BoundConstraint< Real > &con, AlgorithmState< Real > &algo_state)
 Update step, if successful.
 
std::string printHeader (void) const
 Print iterate header.
 
std::string printName (void) const
 Print step name.
 
std::string print (AlgorithmState< Real > &algo_state, bool print_header=false) const
 Print iterate status.
 
- Public Member Functions inherited from ROL::Step< Real >
virtual ~Step ()
 
 Step (void)
 
virtual void initialize (Vector< Real > &x, const Vector< Real > &g, Objective< Real > &obj, BoundConstraint< Real > &con, AlgorithmState< Real > &algo_state)
 Initialize step with bound constraint.
 
virtual void initialize (Vector< Real > &x, const Vector< Real > &g, Vector< Real > &l, const Vector< Real > &c, Objective< Real > &obj, Constraint< Real > &con, AlgorithmState< Real > &algo_state)
 Initialize step with equality constraint.
 
virtual void initialize (Vector< Real > &x, const Vector< Real > &g, Vector< Real > &l, const Vector< Real > &c, Objective< Real > &obj, Constraint< Real > &con, BoundConstraint< Real > &bnd, AlgorithmState< Real > &algo_state)
 Initialize step with equality constraint.
 
virtual void compute (Vector< Real > &s, const Vector< Real > &x, const Vector< Real > &l, Objective< Real > &obj, Constraint< Real > &con, AlgorithmState< Real > &algo_state)
 Compute step (equality constraints).
 
virtual void update (Vector< Real > &x, Vector< Real > &l, const Vector< Real > &s, Objective< Real > &obj, Constraint< Real > &con, AlgorithmState< Real > &algo_state)
 Update step, if successful (equality constraints).
 
virtual void compute (Vector< Real > &s, const Vector< Real > &x, const Vector< Real > &l, Objective< Real > &obj, Constraint< Real > &con, BoundConstraint< Real > &bnd, AlgorithmState< Real > &algo_state)
 Compute step (equality constraints).
 
virtual void update (Vector< Real > &x, Vector< Real > &l, const Vector< Real > &s, Objective< Real > &obj, Constraint< Real > &con, BoundConstraint< Real > &bnd, AlgorithmState< Real > &algo_state)
 Update step, if successful (equality constraints).
 
const ROL::Ptr< const StepState< Real > > getStepState (void) const
 Get state for step object.
 
void reset (const Real searchSize=1.0)
 Get state for step object.
 

Private Attributes

ROL::Ptr< Secant< Real > > secant_
 Secant object (used for quasi-Newton)
 
ESecant esec_
 
ROL::Ptr< Vector< Real > > gp_
 Additional vector storage.
 
int verbosity_
 Verbosity setting.
 
bool computeObj_
 
std::string secantName_
 

Additional Inherited Members

- Protected Member Functions inherited from ROL::Step< Real >
ROL::Ptr< StepState< Real > > getState (void)
 

Detailed Description

template<class Real>
class ROL::SecantStep< Real >

Provides the interface to compute optimization steps with a secant method.

Definition at line 60 of file ROL_SecantStep.hpp.

Constructor & Destructor Documentation

◆ SecantStep()

template<class Real >
ROL::SecantStep< Real >::SecantStep ( ROL::ParameterList & parlist,
const ROL::Ptr< Secant< Real > > & secant = ROL::nullPtr,
const bool computeObj = true )
inline

Constructor.

Constructor to build a SecantStep object with a user-defined secant object. Algorithmic specifications are passed in through a ROL::ParameterList.

Parameters
[in]parlistis a parameter list containing algorithmic specifications
[in]secantis a user-defined secant object

Definition at line 86 of file ROL_SecantStep.hpp.

References ROL::SecantStep< Real >::esec_, ROL::SecantStep< Real >::secant_, ROL::SecantStep< Real >::secantName_, ROL::StringToESecant(), and ROL::SecantStep< Real >::verbosity_.

Member Function Documentation

◆ initialize()

template<class Real >
void ROL::SecantStep< Real >::initialize ( Vector< Real > & x,
const Vector< Real > & s,
const Vector< Real > & g,
Objective< Real > & obj,
BoundConstraint< Real > & con,
AlgorithmState< Real > & algo_state )
inlinevirtual

Initialize step with bound constraint.

Reimplemented from ROL::Step< Real >.

Definition at line 105 of file ROL_SecantStep.hpp.

References ROL::Vector< Real >::clone(), ROL::SecantStep< Real >::gp_, and ROL::Step< Real >::initialize().

◆ compute()

template<class Real >
void ROL::SecantStep< Real >::compute ( Vector< Real > & s,
const Vector< Real > & x,
Objective< Real > & obj,
BoundConstraint< Real > & bnd,
AlgorithmState< Real > & algo_state )
inlinevirtual

Compute step.

Reimplemented from ROL::Step< Real >.

Definition at line 112 of file ROL_SecantStep.hpp.

References ROL::Step< Real >::getState(), ROL::Vector< Real >::scale(), and ROL::SecantStep< Real >::secant_.

◆ update()

template<class Real >
void ROL::SecantStep< Real >::update ( Vector< Real > & x,
const Vector< Real > & s,
Objective< Real > & obj,
BoundConstraint< Real > & bnd,
AlgorithmState< Real > & algo_state )
inlinevirtual

◆ printHeader()

template<class Real >
std::string ROL::SecantStep< Real >::printHeader ( void ) const
inlinevirtual

Print iterate header.

Reimplemented from ROL::Step< Real >.

Definition at line 152 of file ROL_SecantStep.hpp.

References ROL::DESCENT_SECANT, ROL::EDescentToString(), and ROL::SecantStep< Real >::verbosity_.

Referenced by ROL::SecantStep< Real >::print().

◆ printName()

template<class Real >
std::string ROL::SecantStep< Real >::printName ( void ) const
inlinevirtual

Print step name.

Reimplemented from ROL::Step< Real >.

Definition at line 178 of file ROL_SecantStep.hpp.

References ROL::DESCENT_SECANT, ROL::EDescentToString(), and ROL::SecantStep< Real >::secantName_.

Referenced by ROL::SecantStep< Real >::print().

◆ print()

template<class Real >
std::string ROL::SecantStep< Real >::print ( AlgorithmState< Real > & algo_state,
bool printHeader = false ) const
inlinevirtual

Member Data Documentation

◆ secant_

template<class Real >
ROL::Ptr<Secant<Real> > ROL::SecantStep< Real >::secant_
private

Secant object (used for quasi-Newton)

Definition at line 63 of file ROL_SecantStep.hpp.

Referenced by ROL::SecantStep< Real >::compute(), ROL::SecantStep< Real >::SecantStep(), and ROL::SecantStep< Real >::update().

◆ esec_

template<class Real >
ESecant ROL::SecantStep< Real >::esec_
private

Definition at line 64 of file ROL_SecantStep.hpp.

Referenced by ROL::SecantStep< Real >::SecantStep().

◆ gp_

template<class Real >
ROL::Ptr<Vector<Real> > ROL::SecantStep< Real >::gp_
private

Additional vector storage.

Definition at line 65 of file ROL_SecantStep.hpp.

Referenced by ROL::SecantStep< Real >::initialize(), and ROL::SecantStep< Real >::update().

◆ verbosity_

template<class Real >
int ROL::SecantStep< Real >::verbosity_
private

Verbosity setting.

Definition at line 66 of file ROL_SecantStep.hpp.

Referenced by ROL::SecantStep< Real >::printHeader(), and ROL::SecantStep< Real >::SecantStep().

◆ computeObj_

template<class Real >
bool ROL::SecantStep< Real >::computeObj_
private

Definition at line 67 of file ROL_SecantStep.hpp.

Referenced by ROL::SecantStep< Real >::update().

◆ secantName_

template<class Real >
std::string ROL::SecantStep< Real >::secantName_
private

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