ROL
Toggle main menu visibility
Loading...
Searching...
No Matches
src
sol
function
randvarfunctional
deviation
ROL_DeviationMeasureInfo.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_DEVIATIONMEASUREINFO_HPP
11
#define ROL_DEVIATIONMEASUREINFO_HPP
12
13
#include "ROL_ParameterList.hpp"
14
#include "
ROL_Types.hpp
"
15
16
namespace
ROL
{
17
18
template
<
class
Real>
19
inline
void
DeviationMeasureInfo
(ROL::ParameterList &parlist, std::string &name,
20
int
&nStatistic, std::vector<Real> &lower,
21
std::vector<Real> &upper,
bool
&isBoundActivated,
22
const
bool
printToStream =
false
,
23
std::ostream &outStream = std::cout) {
24
name = parlist.sublist(
"SOL"
).sublist(
"Deviation Measure"
).get<std::string>(
"Name"
);
25
lower.clear(); upper.clear();
26
nStatistic = 0; isBoundActivated =
false
;
27
if
( name ==
"CVaR"
||
28
name ==
"Moreau-Yosida CVaR"
||
29
name ==
"Generalized Moreau-Yosida CVaR"
||
30
name ==
"Variance"
||
31
name ==
"Entropic"
||
32
name ==
"Log Quantile"
||
33
name ==
"Smoothed Upper Range"
||
34
name ==
"Truncated Mean"
) {
35
nStatistic = 1;
36
lower.resize(nStatistic,
ROL_NINF<Real>
());
37
upper.resize(nStatistic,
ROL_INF<Real>
());
38
}
39
else
{
40
ROL_TEST_FOR_EXCEPTION(
true
,std::invalid_argument,
41
">>> (ROL::DeviationMeasureInfo): Invalid deviation measure "
<< name <<
"!"
);
42
}
43
44
// Print Information
45
if
( printToStream ) {
46
ROL::nullstream
oldFormatState;
47
oldFormatState.copyfmt(outStream);
48
49
outStream << std::endl;
50
outStream << std::scientific << std::setprecision(6);
51
outStream << std::setfill(
'-'
) << std::setw(80) <<
"-"
<< std::endl;
52
outStream <<
" DEVIATION MEASURE INFORMATION"
<< std::endl;
53
outStream << std::setfill(
'-'
) << std::setw(80) <<
"-"
<< std::endl;
54
outStream <<
" NAME"
<< std::endl;
55
outStream <<
" "
<< name << std::endl;
56
outStream <<
" NUMBER OF STATISTICS"
<< std::endl;
57
outStream <<
" "
<< nStatistic << std::endl;
58
outStream <<
" ARE BOUNDS ACTIVATED"
<< std::endl;
59
outStream <<
" "
<< (isBoundActivated ?
"TRUE"
:
"FALSE"
) << std::endl;
60
if
( isBoundActivated ) {
61
outStream <<
" STATISTIC LOWER BOUNDS"
<< std::endl;
62
for
(
int
i = 0; i < nStatistic-1; ++i) {
63
outStream <<
" "
<< lower[i] << std::endl;
64
}
65
outStream <<
" "
<< lower[nStatistic-1] << std::endl;
66
outStream <<
" STATISTIC UPPER BOUNDS"
<< std::endl;
67
for
(
int
i = 0; i < nStatistic-1; ++i) {
68
outStream <<
" "
<< upper[i] << std::endl;
69
}
70
outStream <<
" "
<< upper[nStatistic-1] << std::endl;
71
}
72
outStream << std::setfill(
'-'
) << std::setw(80) <<
"-"
<< std::endl;
73
outStream << std::endl;
74
75
outStream.copyfmt(oldFormatState);
76
}
77
}
78
79
}
80
#endif
ROL_Types.hpp
Contains definitions of custom data types in ROL.
ROL::ROL::details::nullstream
basic_nullstream< char, std::char_traits< char > > nullstream
Definition
ROL_Constraint_SerialSimOpt.hpp:37
ROL
Definition
ROL_ElementwiseVector.hpp:27
ROL::ROL_NINF
Real ROL_NINF(void)
Definition
ROL_Types.hpp:74
ROL::ROL_INF
Real ROL_INF(void)
Definition
ROL_Types.hpp:71
ROL::DeviationMeasureInfo
void DeviationMeasureInfo(ROL::ParameterList &parlist, std::string &name, int &nStatistic, std::vector< Real > &lower, std::vector< Real > &upper, bool &isBoundActivated, const bool printToStream=false, std::ostream &outStream=std::cout)
Definition
ROL_DeviationMeasureInfo.hpp:19
Generated by
1.17.0