ROL
ROL::NonlinearLeastSquaresObjective< Real > Class Template Reference

Provides the interface to evaluate nonlinear least squares objective functions. More...

#include <ROL_NonlinearLeastSquaresObjective.hpp>

Inheritance diagram for ROL::NonlinearLeastSquaresObjective< Real >:

Public Member Functions

 NonlinearLeastSquaresObjective (const Ptr< Constraint< Real > > &con, const Vector< Real > &optvec, const Vector< Real > &convec, const bool GNH=false)
 Constructor.
void update (const Vector< Real > &x, UpdateType type, int iter=-1) override
void update (const Vector< Real > &x, bool flag=true, int iter=-1) override
Real value (const Vector< Real > &x, Real &tol) override
void gradient (Vector< Real > &g, const Vector< Real > &x, Real &tol) override
void hessVec (Vector< Real > &hv, const Vector< Real > &v, const Vector< Real > &x, Real &tol) override
void precond (Vector< Real > &Pv, const Vector< Real > &v, const Vector< Real > &x, Real &tol) override
void setParameter (const std::vector< Real > &param) override
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.

Private Attributes

const Ptr< Constraint< Real > > con_
const bool GaussNewtonHessian_
Ptr< Vector< Real > > c1_
Ptr< Vector< Real > > c2_
Ptr< Vector< Real > > c1dual_
Ptr< Vector< Real > > x_

Additional Inherited Members

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

Detailed Description

template<typename Real>
class ROL::NonlinearLeastSquaresObjective< Real >

Provides the interface to evaluate nonlinear least squares objective functions.

ROL's nonlinear least squares objective function interface constructs the the nonlinear least squares objective function associated with the equality constraint \(c(x)=0\). That is,

\[ J(x) = \langle \mathfrak{R} c(x),c(x) \rangle_{\mathcal{C}^*,\mathcal{C}} \]

where \(c:\mathcal{X}\to\mathcal{C}\) and \(\mathfrak{R}\in\mathcal{L}( \mathcal{C},\mathcal{C}^*)\) denotes the Riesz map from \(\mathcal{C}\) into \(\mathcal{C}^*\).


Definition at line 39 of file ROL_NonlinearLeastSquaresObjective.hpp.

Constructor & Destructor Documentation

◆ NonlinearLeastSquaresObjective()

template<typename Real>
ROL::NonlinearLeastSquaresObjective< Real >::NonlinearLeastSquaresObjective ( const Ptr< Constraint< Real > > & con,
const Vector< Real > & optvec,
const Vector< Real > & convec,
const bool GNH = false )

Constructor.

This function constructs a nonlinear least squares objective function.

Parameters
[in]conis the nonlinear equation to be solved.
[in]vecis a constraint space vector used for cloning.
[in]GHNis a flag dictating whether or not to use the Gauss-Newton Hessian.

Member Function Documentation

◆ update() [1/2]

template<typename Real>
void ROL::NonlinearLeastSquaresObjective< Real >::update ( const Vector< Real > & x,
UpdateType type,
int iter = -1 )
override

◆ update() [2/2]

template<typename Real>
void ROL::NonlinearLeastSquaresObjective< Real >::update ( const Vector< Real > & x,
bool flag = true,
int iter = -1 )
override

◆ value()

template<typename Real>
Real ROL::NonlinearLeastSquaresObjective< Real >::value ( const Vector< Real > & x,
Real & tol )
override

◆ gradient()

template<typename Real>
void ROL::NonlinearLeastSquaresObjective< Real >::gradient ( Vector< Real > & g,
const Vector< Real > & x,
Real & tol )
override

◆ hessVec()

template<typename Real>
void ROL::NonlinearLeastSquaresObjective< Real >::hessVec ( Vector< Real > & hv,
const Vector< Real > & v,
const Vector< Real > & x,
Real & tol )
override

◆ precond()

template<typename Real>
void ROL::NonlinearLeastSquaresObjective< Real >::precond ( Vector< Real > & Pv,
const Vector< Real > & v,
const Vector< Real > & x,
Real & tol )
override

◆ setParameter()

template<typename Real>
void ROL::NonlinearLeastSquaresObjective< Real >::setParameter ( const std::vector< Real > & param)
overridevirtual

Reimplemented from ROL::ROL::Objective< Real >.

Member Data Documentation

◆ con_

template<typename Real>
const Ptr<Constraint<Real> > ROL::NonlinearLeastSquaresObjective< Real >::con_
private

Definition at line 41 of file ROL_NonlinearLeastSquaresObjective.hpp.

◆ GaussNewtonHessian_

template<typename Real>
const bool ROL::NonlinearLeastSquaresObjective< Real >::GaussNewtonHessian_
private

Definition at line 42 of file ROL_NonlinearLeastSquaresObjective.hpp.

◆ c1_

template<typename Real>
Ptr<Vector<Real> > ROL::NonlinearLeastSquaresObjective< Real >::c1_
private

Definition at line 44 of file ROL_NonlinearLeastSquaresObjective.hpp.

◆ c2_

template<typename Real>
Ptr<Vector<Real> > ROL::NonlinearLeastSquaresObjective< Real >::c2_
private

Definition at line 44 of file ROL_NonlinearLeastSquaresObjective.hpp.

◆ c1dual_

template<typename Real>
Ptr<Vector<Real> > ROL::NonlinearLeastSquaresObjective< Real >::c1dual_
private

Definition at line 44 of file ROL_NonlinearLeastSquaresObjective.hpp.

◆ x_

template<typename Real>
Ptr<Vector<Real> > ROL::NonlinearLeastSquaresObjective< Real >::x_
private

Definition at line 44 of file ROL_NonlinearLeastSquaresObjective.hpp.


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