ROL
ROL_ReduceLinearConstraint.hpp
Go to the documentation of this file.
1// @HEADER
2// *****************************************************************************
3// Rapid Optimization Library (ROL) Package
4//
5// Copyright 2014 NTESS and the ROL contributors.
6// SPDX-License-Identifier: BSD-3-Clause
7// *****************************************************************************
8// @HEADER
9
10#ifndef ROL_REDUCE_LINEAR_CONSTRAINT_H
11#define ROL_REDUCE_LINEAR_CONSTRAINT_H
12
17
26namespace ROL {
27
28template<typename Real>
30private:
31 const Ptr<Constraint<Real>> lcon_;
32 const Ptr<Vector<Real>> x_;
33 const Ptr<VectorController<Real>> storage_;
34 const Ptr<NullSpaceOperator<Real>> nsop_;
35
36public:
37 virtual ~ReduceLinearConstraint(void) {}
38
40 const Ptr<Vector<Real>> &x,
41 const Ptr<const Vector<Real>> &c);
42
43 Ptr<Objective<Real>> transform(const Ptr<Objective<Real>> &obj) const;
44 Ptr<Constraint<Real>> transform(const Ptr<Constraint<Real>> &con) const;
45 Ptr<Constraint<Real>> getLinearConstraint(void) const;
46 Ptr<const Vector<Real>> getFeasibleVector(void) const;
47 void project(Vector<Real> &x, const Vector<Real> &y) const;
48 void project(const Ptr<Vector<Real>> &x, const Ptr<const Vector<Real>> &y) const;
49
50private:
51 void feasible(const Ptr<const Vector<Real>> &c);
52
53}; // class ReduceLinearConstraint
54
55} // namespace ROL
56
58
59#endif
Defines the general constraint operator interface.
Provides the interface to evaluate objective functions.
Performs null-space transformation for reducible linear equality constraints.
Ptr< const Vector< Real > > getFeasibleVector(void) const
Ptr< Objective< Real > > transform(const Ptr< Objective< Real > > &obj) const
const Ptr< Constraint< Real > > lcon_
void feasible(const Ptr< const Vector< Real > > &c)
void project(Vector< Real > &x, const Vector< Real > &y) const
const Ptr< VectorController< Real > > storage_
const Ptr< NullSpaceOperator< Real > > nsop_
Ptr< Constraint< Real > > getLinearConstraint(void) const
Defines the linear algebra or vector space interface.