10#ifndef ROL_ELASTICLINEARCONSTRAINT_DEF_H
11#define ROL_ELASTICLINEARCONSTRAINT_DEF_H
15template<
typename Real>
19 :
con_(con),
x_(x->clone()),
c_(c->clone()),
tmp_(x->clone()) {
23template<
typename Real>
26template<
typename Real>
29template<
typename Real>
34 tmp_->set(*xs);
tmp_->axpy(
static_cast<Real
>(-1),*
x_);
38 c.
axpy(
static_cast<Real
>(-1),*xv);
41template<
typename Real>
46 con_->applyJacobian(jv,*vs,*
x_,tol);
48 jv.
axpy(
static_cast<Real
>(-1),*vv);
51template<
typename Real>
56 con_->applyAdjointJacobian(*as,v,*
x_,tol);
58 av->set(v.
dual()); av->scale(
static_cast<Real
>(-1));
61template<
typename Real>
66 con_->applyAdjointJacobian(*as,v,*
x_,tol);
68 av->set(dualv); av->scale(
static_cast<Real
>(-1));
71template<
typename Real>
76template<
typename Real>
void applyAdjointJacobian(Vector< Real > &ajv, const Vector< Real > &v, const Vector< Real > &x, Real &tol) override
ElasticLinearConstraint(const Ptr< const Vector< Real > > &x, const Ptr< Constraint< Real > > &con, const Ptr< const Vector< Real > > &c)
const Ptr< Constraint< Real > > con_
void setAnchor(const Ptr< const Vector< Real > > &x)
void applyAdjointHessian(Vector< Real > &ahuv, const Vector< Real > &u, const Vector< Real > &v, const Vector< Real > &x, Real &tol) override
void value(Vector< Real > &c, const Vector< Real > &x, Real &tol) override
const Ptr< Vector< Real > > tmp_
const Ptr< Vector< Real > > x_
const Ptr< Vector< Real > > c_
void update(const Vector< Real > &x, UpdateType type, int iter=-1) override
void applyJacobian(Vector< Real > &jv, const Vector< Real > &v, const Vector< Real > &x, Real &tol) override
Defines the linear algebra of vector space on a generic partitioned vector.
Defines the linear algebra or vector space interface.
virtual const Vector & dual() const
Return dual representation of , for example, the result of applying a Riesz map, or change of basis,...
virtual void plus(const Vector &x)=0
Compute , where .
virtual void zero()
Set to zero vector.
virtual void axpy(const Real alpha, const Vector &x)
Compute where .
Real ROL_EPSILON(void)
Platform-dependent machine epsilon.