ROL
src
step
linesearch
ROL_LineSearchFactory.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_LINESEARCHFACTORY_H
11
#define ROL_LINESEARCHFACTORY_H
12
13
#include "
ROL_Types.hpp
"
14
15
#include "ROL_ParameterList.hpp"
16
#include "ROL_Ptr.hpp"
17
18
#include "
ROL_LineSearch.hpp
"
19
#include "
ROL_IterationScaling.hpp
"
20
#include "
ROL_PathBasedTargetLevel.hpp
"
21
#include "
ROL_BackTracking.hpp
"
22
#include "
ROL_CubicInterp.hpp
"
23
#include "
ROL_Bisection.hpp
"
24
#include "
ROL_GoldenSection.hpp
"
25
#include "
ROL_Brents.hpp
"
26
#include "
ROL_ScalarMinimizationLineSearch.hpp
"
27
28
namespace
ROL
{
29
template
<
class
Real>
30
inline
ROL::Ptr<LineSearch<Real> >
LineSearchFactory
(ROL::ParameterList &parlist) {
31
ELineSearch
els =
StringToELineSearch
(
32
parlist.sublist(
"Step"
).sublist(
"Line Search"
).sublist(
"Line-Search Method"
).get(
"Type"
,
"Cubic Interpolation"
));
33
switch
(els) {
34
case
LINESEARCH_ITERATIONSCALING
:
return
ROL::makePtr<IterationScaling<Real>>(parlist);
35
case
LINESEARCH_PATHBASEDTARGETLEVEL
:
return
ROL::makePtr<PathBasedTargetLevel<Real>>(parlist);
36
case
LINESEARCH_BACKTRACKING
:
return
ROL::makePtr<BackTracking<Real>>(parlist);
37
case
LINESEARCH_CUBICINTERP
:
return
ROL::makePtr<CubicInterp<Real>>(parlist);
38
// case LINESEARCH_BISECTION: return ROL::makePtr<Bisection<Real>>(parlist);
39
// case LINESEARCH_BRENTS: return ROL::makePtr<Brents<Real>>(parlist);
40
// case LINESEARCH_GOLDENSECTION: return ROL::makePtr<GoldenSection<Real>>(parlist);
41
case
LINESEARCH_BRENTS
:
42
case
LINESEARCH_GOLDENSECTION
:
43
case
LINESEARCH_BISECTION
:
return
ROL::makePtr<ScalarMinimizationLineSearch<Real>>(parlist);
44
default
:
return
ROL::nullPtr;
45
}
46
}
47
}
48
49
#endif
ROL_BackTracking.hpp
ROL_Bisection.hpp
ROL_Brents.hpp
ROL_CubicInterp.hpp
ROL_GoldenSection.hpp
ROL_IterationScaling.hpp
ROL_LineSearch.hpp
ROL_PathBasedTargetLevel.hpp
ROL_ScalarMinimizationLineSearch.hpp
ROL_Types.hpp
Contains definitions of custom data types in ROL.
ROL
Definition
ROL_ElementwiseVector.hpp:27
ROL::ELineSearch
ELineSearch
Definition
ROL_Types.hpp:628
ROL::LINESEARCH_BISECTION
@ LINESEARCH_BISECTION
Definition
ROL_Types.hpp:632
ROL::LINESEARCH_BACKTRACKING
@ LINESEARCH_BACKTRACKING
Definition
ROL_Types.hpp:631
ROL::LINESEARCH_CUBICINTERP
@ LINESEARCH_CUBICINTERP
Definition
ROL_Types.hpp:634
ROL::LINESEARCH_BRENTS
@ LINESEARCH_BRENTS
Definition
ROL_Types.hpp:635
ROL::LINESEARCH_GOLDENSECTION
@ LINESEARCH_GOLDENSECTION
Definition
ROL_Types.hpp:633
ROL::LINESEARCH_PATHBASEDTARGETLEVEL
@ LINESEARCH_PATHBASEDTARGETLEVEL
Definition
ROL_Types.hpp:630
ROL::LINESEARCH_ITERATIONSCALING
@ LINESEARCH_ITERATIONSCALING
Definition
ROL_Types.hpp:629
ROL::LineSearchFactory
ROL::Ptr< LineSearch< Real > > LineSearchFactory(ROL::ParameterList &parlist)
Definition
ROL_LineSearchFactory.hpp:30
ROL::StringToELineSearch
ELineSearch StringToELineSearch(std::string s)
Definition
ROL_Types.hpp:694
Generated by
1.9.8