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
14#include "ROL_Constraint.hpp"
15#include <iostream>
16
17namespace ROL {
18
19template<typename Real>
21protected:
22 const Ptr<BoundConstraint<Real>> bnd_;
23 const Ptr<Constraint<Real>> con_;
24 Ptr<Vector<Real>> xprim_, xdual_, mul_, res_;
25
26public:
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
Provides the interface to apply upper and lower bound constraints.
Defines the general constraint operator interface.
const Ptr< BoundConstraint< Real > > getBoundConstraint(void) const
const Ptr< Constraint< Real > > con_
const Ptr< BoundConstraint< Real > > bnd_
virtual void project(Vector< Real > &x, std::ostream &stream=std::cout)
const Ptr< Vector< Real > > getResidual(void) const
const Ptr< Vector< Real > > getMultiplier(void) const
const Ptr< Constraint< Real > > getLinearConstraint(void) const
Defines the linear algebra or vector space interface.