10#ifndef ROL_SEPARABLEOBJECTIVE_H
11#define ROL_SEPARABLEOBJECTIVE_H
20template<
typename Real>
23 const std::vector<Ptr<Objective<Real>>>
obj_;
28 const Ptr<Objective<Real>>
get(
unsigned i)
const;
36 void setParameter(
const std::vector<Real> ¶m)
override;
Provides the interface to evaluate objective functions.
void update(const Vector< Real > &x, UpdateType type, int iter=-1) override
Update objective function.
Real value(const Vector< Real > &x, Real &tol) override
Compute value.
void gradient(Vector< Real > &g, const Vector< Real > &x, Real &tol) override
Compute gradient.
const std::vector< Ptr< Objective< Real > > > obj_
void precond(Vector< Real > &hv, const Vector< Real > &v, const Vector< Real > &x, Real &tol) override
Apply preconditioner to vector.
void setParameter(const std::vector< Real > ¶m) override
void hessVec(Vector< Real > &hv, const Vector< Real > &v, const Vector< Real > &x, Real &tol) override
Apply Hessian approximation to vector.
void invHessVec(Vector< Real > &hv, const Vector< Real > &v, const Vector< Real > &x, Real &tol) override
Apply inverse Hessian approximation to vector.
const Ptr< Objective< Real > > get(unsigned i) const
Defines the linear algebra or vector space interface.