ROL
Toggle main menu visibility
Loading...
Searching...
No Matches
src
sol
function
randvarfunctional
probability
ROL_ProbabilityFactory.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_PROBABILITYFACTORY_HPP
11
#define ROL_PROBABILITYFACTORY_HPP
12
13
#include "ROL_ParameterList.hpp"
14
15
#include "
ROL_Types.hpp
"
16
#include "
ROL_BPOE.hpp
"
17
#include "
ROL_SmoothedPOE.hpp
"
18
19
namespace
ROL
{
20
21
enum
EProbability
{
22
PROBABILITY_BPOE
= 0,
23
PROBABILITY_SMOOTHEDPOE
,
24
PROBABILITY_LAST
25
};
26
27
inline
std::string
EProbabilityToString
(
EProbability
ed) {
28
std::string retString;
29
switch
(ed) {
30
case
PROBABILITY_BPOE
:
31
retString =
"bPOE"
;
break
;
32
case
PROBABILITY_SMOOTHEDPOE
:
33
retString =
"Smoothed POE"
;
break
;
34
case
PROBABILITY_LAST
:
35
retString =
"Last Type (Dummy)"
;
break
;
36
default
:
37
retString =
"INVALID EProbability"
;
break
;
38
}
39
return
retString;
40
}
41
42
inline
int
isValidProbability
(
EProbability
ed) {
43
return
( (ed ==
PROBABILITY_BPOE
) ||
44
(ed ==
PROBABILITY_SMOOTHEDPOE
));
45
}
46
47
inline
EProbability
&
operator++
(
EProbability
&type) {
48
return
type =
static_cast<
EProbability
>
(type+1);
49
}
50
51
inline
EProbability
operator++
(
EProbability
&type,
int
) {
52
EProbability
oldval = type;
53
++type;
54
return
oldval;
55
}
56
57
inline
EProbability
&
operator--
(
EProbability
&type) {
58
return
type =
static_cast<
EProbability
>
(type-1);
59
}
60
61
inline
EProbability
operator--
(
EProbability
&type,
int
) {
62
EProbability
oldval = type;
63
--type;
64
return
oldval;
65
}
66
67
inline
EProbability
StringToEProbability
(std::string s) {
68
s =
removeStringFormat
(s);
69
for
(
EProbability
tr =
PROBABILITY_BPOE
; tr <
PROBABILITY_LAST
; tr++ ) {
70
if
( !s.compare(
removeStringFormat
(
EProbabilityToString
(tr))) ) {
71
return
tr;
72
}
73
}
74
return
PROBABILITY_LAST
;
75
}
76
77
template
<
class
Real>
78
inline
Ptr<RandVarFunctional<Real>>
ProbabilityFactory
(ParameterList &parlist) {
79
std::string prob = parlist.sublist(
"SOL"
).sublist(
"Probability"
).get(
"Name"
,
"bPOE"
);
80
EProbability
ed =
StringToEProbability
(prob);
81
switch
(ed) {
82
case
PROBABILITY_BPOE
:
83
return
makePtr<BPOE<Real>>(parlist);
84
case
PROBABILITY_SMOOTHEDPOE
:
85
return
makePtr<SmoothedPOE<Real>>(parlist);
86
default
:
87
ROL_TEST_FOR_EXCEPTION(
true
,std::invalid_argument,
88
"Invalid probability type "
<< prob <<
"!"
);
89
}
90
}
91
}
92
#endif
ROL_BPOE.hpp
ROL_SmoothedPOE.hpp
ROL_Types.hpp
Contains definitions of custom data types in ROL.
ROL
Definition
ROL_ElementwiseVector.hpp:27
ROL::removeStringFormat
std::string removeStringFormat(std::string s)
Definition
ROL_Types.hpp:215
ROL::ProbabilityFactory
Ptr< RandVarFunctional< Real > > ProbabilityFactory(ParameterList &parlist)
Definition
ROL_ProbabilityFactory.hpp:78
ROL::EProbabilityToString
std::string EProbabilityToString(EProbability ed)
Definition
ROL_ProbabilityFactory.hpp:27
ROL::EProbability
EProbability
Definition
ROL_ProbabilityFactory.hpp:21
ROL::PROBABILITY_SMOOTHEDPOE
@ PROBABILITY_SMOOTHEDPOE
Definition
ROL_ProbabilityFactory.hpp:23
ROL::PROBABILITY_LAST
@ PROBABILITY_LAST
Definition
ROL_ProbabilityFactory.hpp:24
ROL::PROBABILITY_BPOE
@ PROBABILITY_BPOE
Definition
ROL_ProbabilityFactory.hpp:22
ROL::operator--
EPolyProjAlgo & operator--(EPolyProjAlgo &type)
Definition
ROL_PolyhedralProjectionFactory.hpp:81
ROL::operator++
EPolyProjAlgo & operator++(EPolyProjAlgo &type)
Definition
ROL_PolyhedralProjectionFactory.hpp:71
ROL::isValidProbability
int isValidProbability(EProbability ed)
Definition
ROL_ProbabilityFactory.hpp:42
ROL::StringToEProbability
EProbability StringToEProbability(std::string s)
Definition
ROL_ProbabilityFactory.hpp:67
Generated by
1.17.0