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 
26 namespace ROL {
27 
28 template<typename Real>
30 private:
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 
36 public:
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 
50 private:
51  void feasible(const Ptr<const Vector<Real>> &c);
52 
53 }; // class ReduceLinearConstraint
54 
55 } // namespace ROL
56 
58 
59 #endif
Provides the interface to evaluate objective functions.
const Ptr< Constraint< Real > > lcon_
void project(Vector< Real > &x, const Vector< Real > &y) const
const Ptr< NullSpaceOperator< Real > > nsop_
Performs null-space transformation for reducible linear equality constraints.
const Ptr< VectorController< Real > > storage_
Defines the linear algebra or vector space interface.
Definition: ROL_Vector.hpp:46
Ptr< Objective< Real > > transform(const Ptr< Objective< Real >> &obj) const
Ptr< Constraint< Real > > getLinearConstraint(void) const
void feasible(const Ptr< const Vector< Real >> &c)
ReduceLinearConstraint(const Ptr< Constraint< Real >> &lcon, const Ptr< Vector< Real >> &x, const Ptr< const Vector< Real >> &c)
Ptr< const Vector< Real > > getFeasibleVector(void) const
Defines the general constraint operator interface.