ROL
ROL::InteriorPoint::MeritFunction< Real > Class Template Reference

#include <ROL_MeritFunction.hpp>

Inheritance diagram for ROL::InteriorPoint::MeritFunction< Real >:

Public Member Functions

 MeritFunction (ROL::Ptr< OBJ > &obj, ROL::Ptr< EQCON > &eqcon, ROL::Ptr< INCON > &incon, const V &x, const V &eqmult, const V &inmult, PLIST &parlist)
Real value (const V &x, Real &tol)
Real dirDeriv (const V &x, const V &d, Real tol)
void updateBarrier (Real mu)
Public Member Functions inherited from ROL::ROL::Objective< Real >
virtual ~Objective ()
 Objective ()
virtual void update (const Vector< Real > &x, UpdateType type, int iter=-1)
 Update objective function.
virtual void update (const Vector< Real > &x, bool flag=true, int iter=-1)
 Update objective function.
virtual Real value (const Vector< Real > &x, Real &tol)=0
 Compute value.
virtual void gradient (Vector< Real > &g, const Vector< Real > &x, Real &tol)
 Compute gradient.
virtual Real dirDeriv (const Vector< Real > &x, const Vector< Real > &d, Real &tol)
 Compute directional derivative.
virtual void hessVec (Vector< Real > &hv, const Vector< Real > &v, const Vector< Real > &x, Real &tol)
 Apply Hessian approximation to vector.
virtual void invHessVec (Vector< Real > &hv, const Vector< Real > &v, const Vector< Real > &x, Real &tol)
 Apply inverse Hessian approximation to vector.
virtual void precond (Vector< Real > &Pv, const Vector< Real > &v, const Vector< Real > &x, Real &tol)
 Apply preconditioner to vector.
virtual void prox (Vector< Real > &Pv, const Vector< Real > &v, Real t, Real &tol)
 Compute the proximity operator.
virtual void proxJacVec (Vector< Real > &Jv, const Vector< Real > &v, const Vector< Real > &x, Real t, Real &tol)
 Apply the Jacobian of the proximity operator.
virtual std::vector< std::vector< Real > > checkGradient (const Vector< Real > &x, const Vector< Real > &d, const bool printToStream=true, std::ostream &outStream=std::cout, const int numSteps=ROL_NUM_CHECKDERIV_STEPS, const int order=1)
 Finite-difference gradient check.
virtual std::vector< std::vector< Real > > checkGradient (const Vector< Real > &x, const Vector< Real > &g, const Vector< Real > &d, const bool printToStream=true, std::ostream &outStream=std::cout, const int numSteps=ROL_NUM_CHECKDERIV_STEPS, const int order=1)
 Finite-difference gradient check.
virtual std::vector< std::vector< Real > > checkGradient (const Vector< Real > &x, const Vector< Real > &d, const std::vector< Real > &steps, const bool printToStream=true, std::ostream &outStream=std::cout, const int order=1)
 Finite-difference gradient check with specified step sizes.
virtual std::vector< std::vector< Real > > checkGradient (const Vector< Real > &x, const Vector< Real > &g, const Vector< Real > &d, const std::vector< Real > &steps, const bool printToStream=true, std::ostream &outStream=std::cout, const int order=1)
 Finite-difference gradient check with specified step sizes.
virtual std::vector< std::vector< Real > > checkHessVec (const Vector< Real > &x, const Vector< Real > &v, const bool printToStream=true, std::ostream &outStream=std::cout, const int numSteps=ROL_NUM_CHECKDERIV_STEPS, const int order=1)
 Finite-difference Hessian-applied-to-vector check.
virtual std::vector< std::vector< Real > > checkHessVec (const Vector< Real > &x, const Vector< Real > &hv, const Vector< Real > &v, const bool printToStream=true, std::ostream &outStream=std::cout, const int numSteps=ROL_NUM_CHECKDERIV_STEPS, const int order=1)
 Finite-difference Hessian-applied-to-vector check.
virtual std::vector< std::vector< Real > > checkHessVec (const Vector< Real > &x, const Vector< Real > &v, const std::vector< Real > &steps, const bool printToStream=true, std::ostream &outStream=std::cout, const int order=1)
 Finite-difference Hessian-applied-to-vector check with specified step sizes.
virtual std::vector< std::vector< Real > > checkHessVec (const Vector< Real > &x, const Vector< Real > &hv, const Vector< Real > &v, const std::vector< Real > &steps, const bool printToStream=true, std::ostream &outStream=std::cout, const int order=1)
 Finite-difference Hessian-applied-to-vector check with specified step sizes.
virtual std::vector< Real > checkHessSym (const Vector< Real > &x, const Vector< Real > &v, const Vector< Real > &w, const bool printToStream=true, std::ostream &outStream=std::cout)
 Hessian symmetry check.
virtual std::vector< Real > checkHessSym (const Vector< Real > &x, const Vector< Real > &hv, const Vector< Real > &v, const Vector< Real > &w, const bool printToStream=true, std::ostream &outStream=std::cout)
 Hessian symmetry check.
virtual std::vector< std::vector< Real > > checkProxJacVec (const Vector< Real > &x, const Vector< Real > &v, Real t=Real(1), bool printToStream=true, std::ostream &outStream=std::cout, int numSteps=ROL_NUM_CHECKDERIV_STEPS)
 Finite-difference proximity operator Jacobian-applied-to-vector check.
virtual void setParameter (const std::vector< Real > &param)

Private Types

typedef Vector< Real > V
typedef PartitionedVector< Real > PV
typedef Objective< Real > OBJ
typedef Constraint< Real > EQCON
typedef InequalityConstraint< Real > INCON
typedef ROL::ParameterList PLIST
typedef PV::size_type uint

Private Attributes

ROL::Ptr< OBJobj_
ROL::Ptr< EQCONeqcon_
ROL::Ptr< INCONincon_
ROL::Ptr< BND > bnd_
Real mu_
Real nu_
ROL::Ptr< Vxopt_
ROL::Ptr< Vslack_
ROL::Ptr< Vgopt_
ROL::Ptr< Vsfun_
ROL::Ptr< Veqmult_
ROL::Ptr< Vinmult_
ROL::Ptr< Vce_
ROL::Ptr< Vci_
ROL::Ptr< Vjced_
ROL::Ptr< Vjcid_
Real cenorm_
Real cinorm_

Static Private Attributes

static const uint OPT = 0
static const uint SLACK = 1
static const Elementwise::Logarithm< Real > LOG_
static const Elementwise::Reciprocal< Real > RECIP_
static const Elementwise::ReductionSum< Real > SUM_

Additional Inherited Members

Protected Member Functions inherited from ROL::ROL::Objective< Real >
const std::vector< Real > getParameter (void) const

Detailed Description

template<class Real>
class ROL::InteriorPoint::MeritFunction< Real >

Definition at line 32 of file ROL_MeritFunction.hpp.

Member Typedef Documentation

◆ V

template<class Real>
typedef Vector<Real> ROL::InteriorPoint::MeritFunction< Real >::V
private

Definition at line 34 of file ROL_MeritFunction.hpp.

◆ PV

template<class Real>
typedef PartitionedVector<Real> ROL::InteriorPoint::MeritFunction< Real >::PV
private

Definition at line 35 of file ROL_MeritFunction.hpp.

◆ OBJ

template<class Real>
typedef Objective<Real> ROL::InteriorPoint::MeritFunction< Real >::OBJ
private

Definition at line 36 of file ROL_MeritFunction.hpp.

◆ EQCON

template<class Real>
typedef Constraint<Real> ROL::InteriorPoint::MeritFunction< Real >::EQCON
private

Definition at line 37 of file ROL_MeritFunction.hpp.

◆ INCON

template<class Real>
typedef InequalityConstraint<Real> ROL::InteriorPoint::MeritFunction< Real >::INCON
private

Definition at line 38 of file ROL_MeritFunction.hpp.

◆ PLIST

template<class Real>
typedef ROL::ParameterList ROL::InteriorPoint::MeritFunction< Real >::PLIST
private

Definition at line 40 of file ROL_MeritFunction.hpp.

◆ uint

template<class Real>
typedef PV::size_type ROL::InteriorPoint::MeritFunction< Real >::uint
private

Definition at line 43 of file ROL_MeritFunction.hpp.

Constructor & Destructor Documentation

◆ MeritFunction()

template<class Real>
ROL::InteriorPoint::MeritFunction< Real >::MeritFunction ( ROL::Ptr< OBJ > & obj,
ROL::Ptr< EQCON > & eqcon,
ROL::Ptr< INCON > & incon,
const V & x,
const V & eqmult,
const V & inmult,
PLIST & parlist )
inline

Member Function Documentation

◆ value()

template<class Real>
Real ROL::InteriorPoint::MeritFunction< Real >::value ( const V & x,
Real & tol )
inline

◆ dirDeriv()

template<class Real>
Real ROL::InteriorPoint::MeritFunction< Real >::dirDeriv ( const V & x,
const V & d,
Real tol )
inline

◆ updateBarrier()

template<class Real>
void ROL::InteriorPoint::MeritFunction< Real >::updateBarrier ( Real mu)
inline

Definition at line 175 of file ROL_MeritFunction.hpp.

References mu_.

Member Data Documentation

◆ OPT

template<class Real>
const uint ROL::InteriorPoint::MeritFunction< Real >::OPT = 0
staticprivate

Definition at line 45 of file ROL_MeritFunction.hpp.

Referenced by dirDeriv(), MeritFunction(), and value().

◆ SLACK

template<class Real>
const uint ROL::InteriorPoint::MeritFunction< Real >::SLACK = 1
staticprivate

Definition at line 46 of file ROL_MeritFunction.hpp.

Referenced by dirDeriv(), MeritFunction(), and value().

◆ obj_

template<class Real>
ROL::Ptr< OBJ > ROL::InteriorPoint::MeritFunction< Real >::obj_
private

Definition at line 51 of file ROL_MeritFunction.hpp.

Referenced by dirDeriv(), MeritFunction(), and value().

◆ eqcon_

template<class Real>
ROL::Ptr< EQCON > ROL::InteriorPoint::MeritFunction< Real >::eqcon_
private

Definition at line 52 of file ROL_MeritFunction.hpp.

Referenced by MeritFunction(), and value().

◆ incon_

template<class Real>
ROL::Ptr< INCON > ROL::InteriorPoint::MeritFunction< Real >::incon_
private

Definition at line 53 of file ROL_MeritFunction.hpp.

Referenced by MeritFunction(), and value().

◆ bnd_

template<class Real>
ROL::Ptr<BND> ROL::InteriorPoint::MeritFunction< Real >::bnd_
private

Definition at line 54 of file ROL_MeritFunction.hpp.

◆ mu_

template<class Real>
Real ROL::InteriorPoint::MeritFunction< Real >::mu_
private

Definition at line 56 of file ROL_MeritFunction.hpp.

Referenced by dirDeriv(), MeritFunction(), updateBarrier(), and value().

◆ nu_

template<class Real>
Real ROL::InteriorPoint::MeritFunction< Real >::nu_
private

Definition at line 57 of file ROL_MeritFunction.hpp.

Referenced by dirDeriv(), MeritFunction(), and value().

◆ xopt_

template<class Real>
ROL::Ptr<V> ROL::InteriorPoint::MeritFunction< Real >::xopt_
private

Definition at line 63 of file ROL_MeritFunction.hpp.

Referenced by dirDeriv(), MeritFunction(), and value().

◆ slack_

template<class Real>
ROL::Ptr<V> ROL::InteriorPoint::MeritFunction< Real >::slack_
private

Definition at line 64 of file ROL_MeritFunction.hpp.

Referenced by dirDeriv(), MeritFunction(), and value().

◆ gopt_

template<class Real>
ROL::Ptr<V> ROL::InteriorPoint::MeritFunction< Real >::gopt_
private

Definition at line 66 of file ROL_MeritFunction.hpp.

Referenced by dirDeriv(), and MeritFunction().

◆ sfun_

template<class Real>
ROL::Ptr<V> ROL::InteriorPoint::MeritFunction< Real >::sfun_
private

Definition at line 68 of file ROL_MeritFunction.hpp.

Referenced by dirDeriv(), MeritFunction(), and value().

◆ eqmult_

template<class Real>
ROL::Ptr<V> ROL::InteriorPoint::MeritFunction< Real >::eqmult_
private

Definition at line 71 of file ROL_MeritFunction.hpp.

◆ inmult_

template<class Real>
ROL::Ptr<V> ROL::InteriorPoint::MeritFunction< Real >::inmult_
private

Definition at line 72 of file ROL_MeritFunction.hpp.

◆ ce_

template<class Real>
ROL::Ptr<V> ROL::InteriorPoint::MeritFunction< Real >::ce_
private

Definition at line 74 of file ROL_MeritFunction.hpp.

Referenced by dirDeriv(), and value().

◆ ci_

template<class Real>
ROL::Ptr<V> ROL::InteriorPoint::MeritFunction< Real >::ci_
private

Definition at line 75 of file ROL_MeritFunction.hpp.

Referenced by dirDeriv(), and value().

◆ jced_

template<class Real>
ROL::Ptr<V> ROL::InteriorPoint::MeritFunction< Real >::jced_
private

Definition at line 77 of file ROL_MeritFunction.hpp.

Referenced by dirDeriv().

◆ jcid_

template<class Real>
ROL::Ptr<V> ROL::InteriorPoint::MeritFunction< Real >::jcid_
private

Definition at line 78 of file ROL_MeritFunction.hpp.

Referenced by dirDeriv().

◆ cenorm_

template<class Real>
Real ROL::InteriorPoint::MeritFunction< Real >::cenorm_
private

Definition at line 80 of file ROL_MeritFunction.hpp.

Referenced by dirDeriv(), and value().

◆ cinorm_

template<class Real>
Real ROL::InteriorPoint::MeritFunction< Real >::cinorm_
private

Definition at line 81 of file ROL_MeritFunction.hpp.

Referenced by dirDeriv(), and value().

◆ LOG_

template<class Real>
const Elementwise::Logarithm<Real> ROL::InteriorPoint::MeritFunction< Real >::LOG_
staticprivate

Definition at line 84 of file ROL_MeritFunction.hpp.

Referenced by value().

◆ RECIP_

template<class Real>
const Elementwise::Reciprocal<Real> ROL::InteriorPoint::MeritFunction< Real >::RECIP_
staticprivate

Definition at line 85 of file ROL_MeritFunction.hpp.

Referenced by dirDeriv().

◆ SUM_

template<class Real>
const Elementwise::ReductionSum<Real> ROL::InteriorPoint::MeritFunction< Real >::SUM_
staticprivate

Definition at line 86 of file ROL_MeritFunction.hpp.

Referenced by value().


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