ROL
ROL_PolyhedralProjection.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_POLYHEDRALPROJECTION_H
11 #define ROL_POLYHEDRALPROJECTION_H
12 
13 #include "ROL_BoundConstraint.hpp"
14 #include "ROL_Constraint.hpp"
15 #include <iostream>
16 
17 namespace ROL {
18 
19 template<typename Real>
21 protected:
22  const Ptr<BoundConstraint<Real>> bnd_;
23  const Ptr<Constraint<Real>> con_;
24  Ptr<Vector<Real>> xprim_, xdual_, mul_, res_;
25 
26 public:
27  virtual ~PolyhedralProjection() {}
28 
30 
32  const Vector<Real> &xdual,
33  const Ptr<BoundConstraint<Real>> &bnd,
34  const Ptr<Constraint<Real>> &con,
35  const Vector<Real> &mul,
36  const Vector<Real> &res);
37 
38  virtual void project(Vector<Real> &x, std::ostream &stream = std::cout);
39 
40  const Ptr<Constraint<Real>> getLinearConstraint(void) const;
41 
42  const Ptr<BoundConstraint<Real>> getBoundConstraint(void) const;
43 
44  const Ptr<Vector<Real>> getMultiplier(void) const;
45 
46  const Ptr<Vector<Real>> getResidual(void) const;
47 
48 }; // class PolyhedralProjection
49 
50 } // namespace ROL
51 
53 
54 #endif
PolyhedralProjection(const Ptr< BoundConstraint< Real >> &bnd)
virtual void project(Vector< Real > &x, std::ostream &stream=std::cout)
const Ptr< Constraint< Real > > getLinearConstraint(void) const
const Ptr< BoundConstraint< Real > > bnd_
const Ptr< Vector< Real > > getResidual(void) const
Defines the linear algebra or vector space interface.
Definition: ROL_Vector.hpp:46
const Ptr< Constraint< Real > > con_
const Ptr< Vector< Real > > getMultiplier(void) const
Provides the interface to apply upper and lower bound constraints.
const Ptr< BoundConstraint< Real > > getBoundConstraint(void) const
Defines the general constraint operator interface.