ROL
Loading...
Searching...
No Matches
ROL_Projection.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_PROJECTION_H
11#define ROL_PROJECTION_H
12
13#include <iostream>
14#include "ROL_Vector.hpp"
15
16namespace ROL {
17
18template<typename Real>
20public:
21
22 virtual ~Projection() {}
23
24 virtual void project(Vector<Real> &x, std::ostream &stream = std::cout) = 0;
25
26 virtual void applyJacobian(Vector<Real> &v, const Vector<Real> &x) {
27 throw Exception::NotImplemented(">>> ROL::Projection::applyJacobian: Not Implemented!");
28 }
29
30}; // class Projection
31
32} // namespace ROL
33
34#endif
virtual void project(Vector< Real > &x, std::ostream &stream=std::cout)=0
virtual void applyJacobian(Vector< Real > &v, const Vector< Real > &x)
Defines the linear algebra or vector space interface.