41#ifndef ROL_CONSTRAINT_PARTITIONED_DEF_H
42#define ROL_CONSTRAINT_PARTITIONED_DEF_H
46template<
typename Real>
55template<
typename Real>
57 std::vector<bool> isInequality,
62template<
typename Real>
67template<
typename Real>
69 if (ind < 0 || ind >
static_cast<int>(
cvec_.size())) {
75template<
typename Real>
77 const int ncon =
static_cast<int>(
cvec_.size());
78 for (
int i = 0; i < ncon; ++i) {
83template<
typename Real>
85 const int ncon =
static_cast<int>(
cvec_.size());
86 for (
int i = 0; i < ncon; ++i) {
91template<
typename Real>
96 const int ncon =
static_cast<int>(
cvec_.size());
98 for (
int i = 0; i < ncon; ++i) {
101 cpv.
get(i)->axpy(
static_cast<Real
>(-1),
getSlack(x,cnt));
108template<
typename Real>
116 const int ncon =
static_cast<int>(
cvec_.size());
118 for (
int i = 0; i < ncon; ++i) {
121 jvpv.
get(i)->axpy(
static_cast<Real
>(-1),
getSlack(v,cnt));
127template<
typename Real>
140 const int ncon =
static_cast<int>(
cvec_.size());
143 for (
int i = 0; i < ncon; ++i) {
149 getSlack(ajv,cnt).scale(
static_cast<Real
>(-1));
155template<
typename Real>
169 const int ncon =
static_cast<int>(
cvec_.size());
172 for (
int i = 0; i < ncon; ++i) {
173 Ptr<const Vector<Real>> ui = upv.
get(i);
184template<
typename Real>
195 const int ncon =
static_cast<int>(
cvec_.size());
196 for (
int i = 0; i < ncon; ++i) {
201template<
typename Real>
204 const int ncon =
static_cast<int>(
cvec_.size());
205 for (
int i = 0; i < ncon; ++i) {
206 cvec_[i]->setParameter(param);
210template<
typename Real>
215 catch (std::exception &e) {
220template<
typename Real>
225 catch (std::exception &e) {
230template<
typename Real>
235template<
typename Real>
void setParameter(const std::vector< Real > ¶m) override
void applyAdjointJacobian(Vector< Real > &ajv, const Vector< Real > &v, const Vector< Real > &x, Real &tol) override
Vector< Real > & getSlack(Vector< Real > &xs, int ind) const
Vector< Real > & getOpt(Vector< Real > &xs) const
Constraint_Partitioned(const std::vector< Ptr< Constraint< Real > > > &cvec, bool isInequality=false, int offset=0)
void value(Vector< Real > &c, const Vector< Real > &x, Real &tol) override
Ptr< Constraint< Real > > get(int ind=0) const
int getNumberConstraintEvaluations(void) const
std::vector< Ptr< Constraint< Real > > > cvec_
void applyAdjointHessian(Vector< Real > &ahuv, const Vector< Real > &u, const Vector< Real > &v, const Vector< Real > &x, Real &tol) override
void applyJacobian(Vector< Real > &jv, const Vector< Real > &v, const Vector< Real > &x, Real &tol) override
std::vector< bool > isInequality_
virtual void applyPreconditioner(Vector< Real > &pv, const Vector< Real > &v, const Vector< Real > &x, const Vector< Real > &g, Real &tol) override
Ptr< Vector< Real > > scratch_
void update(const Vector< Real > &x, UpdateType type, int iter=-1) override
virtual void setParameter(const std::vector< Real > ¶m)
Defines the linear algebra of vector space on a generic partitioned vector.
ROL::Ptr< const Vector< Real > > get(size_type i) const
Defines the linear algebra or vector space interface.