ROL
Toggle main menu visibility
Loading...
Searching...
No Matches
src
function
objective
ROL_AffineTransformObjective.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_AFFINE_TRANSFORM_OBJECTIVE_H
11
#define ROL_AFFINE_TRANSFORM_OBJECTIVE_H
12
13
#include "
ROL_Objective.hpp
"
14
#include "
ROL_LinearConstraint.hpp
"
15
#include "
ROL_VectorController.hpp
"
16
24
25
namespace
ROL
{
26
27
template
<
typename
Real>
28
class
AffineTransformObjective
:
public
Objective
<Real> {
29
private
:
30
const
Ptr<Objective<Real>>
obj_
;
31
const
Ptr<Constraint<Real>>
acon_
;
32
33
Ptr<VectorController<Real>>
storage_
;
34
Ptr<Vector<Real>>
primal_
,
dual_
,
Av_
;
35
36
public
:
37
virtual
~AffineTransformObjective
() {}
38
AffineTransformObjective
(
const
Ptr<
Objective<Real>
> &obj,
39
const
Ptr<
Constraint<Real>
> &acon,
40
const
Vector<Real>
&range,
41
const
Ptr<
VectorController<Real>
> &storage = nullPtr);
42
AffineTransformObjective
(
const
Ptr<
Objective<Real>
> &obj,
43
const
Ptr<
LinearConstraint<Real>
> &acon,
44
const
Ptr<
VectorController<Real>
> &storage = nullPtr);
45
AffineTransformObjective
(
const
Ptr<
Objective<Real>
> &obj,
46
const
Ptr<
const
LinearOperator<Real>
> &A,
47
const
Ptr<
const
Vector<Real>
> &b,
48
const
Ptr<
VectorController<Real>
> &storage = nullPtr);
49
50
void
update
(
const
Vector<Real>
&x,
UpdateType
type,
int
iter = -1 )
override
;
51
void
update
(
const
Vector<Real>
&x,
bool
flag =
true
,
int
iter = -1 )
override
;
52
Real
value
(
const
Vector<Real>
&x, Real &tol )
override
;
53
void
gradient
(
Vector<Real>
&g,
const
Vector<Real>
&x, Real &tol )
override
;
54
void
hessVec
(
Vector<Real>
&hv,
const
Vector<Real>
&v,
const
Vector<Real>
&x, Real &tol )
override
;
55
const
Ptr<Objective<Real>>
getObjective
()
const
{
return
obj_
;}
56
57
public
:
58
void
setParameter
(
const
std::vector<Real> ¶m)
override
;
59
60
private
:
61
Ptr<const Vector<Real>>
transform
(
const
Vector<Real>
&x);
62
63
};
// class AffineTransformObjective
64
65
}
// namespace ROL
66
67
#include "
ROL_AffineTransformObjective_Def.hpp
"
68
69
#endif
// ROL_AFFINE_TRANSFORM_OBJECTIVE_H
ROL_AffineTransformObjective_Def.hpp
ROL_LinearConstraint.hpp
ROL_Objective.hpp
ROL_VectorController.hpp
ROL::AffineTransformObjective::acon_
const Ptr< Constraint< Real > > acon_
Definition
ROL_AffineTransformObjective.hpp:31
ROL::AffineTransformObjective::dual_
Ptr< Vector< Real > > dual_
Definition
ROL_AffineTransformObjective.hpp:34
ROL::AffineTransformObjective::transform
Ptr< const Vector< Real > > transform(const Vector< Real > &x)
ROL::AffineTransformObjective::getObjective
const Ptr< Objective< Real > > getObjective() const
Definition
ROL_AffineTransformObjective.hpp:55
ROL::AffineTransformObjective::AffineTransformObjective
AffineTransformObjective(const Ptr< Objective< Real > > &obj, const Ptr< Constraint< Real > > &acon, const Vector< Real > &range, const Ptr< VectorController< Real > > &storage=nullPtr)
ROL::AffineTransformObjective::update
void update(const Vector< Real > &x, UpdateType type, int iter=-1) override
ROL::AffineTransformObjective::obj_
const Ptr< Objective< Real > > obj_
Definition
ROL_AffineTransformObjective.hpp:30
ROL::AffineTransformObjective::setParameter
void setParameter(const std::vector< Real > ¶m) override
ROL::AffineTransformObjective::AffineTransformObjective
AffineTransformObjective(const Ptr< Objective< Real > > &obj, const Ptr< const LinearOperator< Real > > &A, const Ptr< const Vector< Real > > &b, const Ptr< VectorController< Real > > &storage=nullPtr)
ROL::AffineTransformObjective::Av_
Ptr< Vector< Real > > Av_
Definition
ROL_AffineTransformObjective.hpp:34
ROL::AffineTransformObjective::update
void update(const Vector< Real > &x, bool flag=true, int iter=-1) override
ROL::AffineTransformObjective::storage_
Ptr< VectorController< Real > > storage_
Definition
ROL_AffineTransformObjective.hpp:33
ROL::AffineTransformObjective::~AffineTransformObjective
virtual ~AffineTransformObjective()
Definition
ROL_AffineTransformObjective.hpp:37
ROL::AffineTransformObjective::value
Real value(const Vector< Real > &x, Real &tol) override
ROL::AffineTransformObjective::AffineTransformObjective
AffineTransformObjective(const Ptr< Objective< Real > > &obj, const Ptr< LinearConstraint< Real > > &acon, const Ptr< VectorController< Real > > &storage=nullPtr)
ROL::AffineTransformObjective::hessVec
void hessVec(Vector< Real > &hv, const Vector< Real > &v, const Vector< Real > &x, Real &tol) override
ROL::AffineTransformObjective::gradient
void gradient(Vector< Real > &g, const Vector< Real > &x, Real &tol) override
ROL::AffineTransformObjective::primal_
Ptr< Vector< Real > > primal_
Definition
ROL_AffineTransformObjective.hpp:34
ROL::Constraint
Defines the general constraint operator interface.
Definition
ROL_Constraint.hpp:52
ROL::LinearConstraint
Defines the general affine constraint with the form .
Definition
ROL_LinearConstraint.hpp:26
ROL::LinearOperator
Provides the interface to apply a linear operator.
Definition
ROL_LinearOperator.hpp:37
ROL::ROL::Objective::Objective
Objective()
Definition
ROL_Constraint_SerialSimOpt.hpp:53
ROL::VectorController
Definition
ROL_VectorController.hpp:21
ROL::Vector
Defines the linear algebra or vector space interface.
Definition
ROL_Vector.hpp:51
ROL
Definition
ROL_ElementwiseVector.hpp:27
ROL::UpdateType
UpdateType
Definition
ROL_UpdateType.hpp:18
Generated by
1.17.0