←
Documentation
ADS-IDAC Engine
5.0.0
Polynomial.cpp
Go to the documentation of this file.
1
// Polynomial.cpp: implementation of the polynomial class.
2
//
4
5
#include <algorithm>
6
#include <boost/serialization/export.hpp>
7
8
#include "
Polynomial.h
"
9
#include "../Crew/OperatorDM.h"
10
#include "../Crew/OperatorAT.h"
11
#include "../Crew/MentalParameterValue.h"
12
#include "../Global/TermConversions.h"
13
#include "../Global/SimulationContext.h"
14
#include <boost/archive/binary_oarchive.hpp>
15
#include <boost/archive/binary_iarchive.hpp>
16
BOOST_CLASS_EXPORT_IMPLEMENT(
polynomial
)
17
using namespace
std;
18
19
21
// Construction/Destruction
23
24
polynomial::polynomial
()
25
{
26
// All of these are serialized into every RestartNodeInfo, so they get
27
// deterministic defaults to keep the archive bytes deterministic. The
28
// values are overwritten by readInfoFromFile/copyPolynomial.
29
C0
=
C1
=
C2
=
C3
=
C4
=
C5
= 0.0;
30
IV
= 0.0;
31
DV
= 0.0;
32
IV_LowerRange
= 0.0;
33
IV_UpperRange
= 0.0;
34
}
35
36
polynomial::~polynomial
()
37
{
38
39
}
40
41
void
polynomial::readInfoFromFile
(ifstream &fin)
42
{
43
string
str1;
44
fin >> str1 >> str1;
45
fin >> str1 >>
Curve_Name
;
46
fin >> str1 >>
IV_Name
;
47
fin >> str1 >>
IV_LowerRange
>>
IV_UpperRange
;
48
fin >>
C0
>>
C1
>>
C2
>>
C3
>>
C4
>>
C5
;
49
}
50
51
BiResult
polynomial::GetCurveValue
(
int
_operator)
52
{
53
BiResult
_BiResult;
54
MentalParameterValue
*perceived_parameter_value_pt;
55
switch
(_operator){
56
case
sim::Operator::ODM
:
57
perceived_parameter_value_pt =
g_sim
.
Decision_Maker
.
memory
.
perceived_info
.
checkExistanceOfPerceivedParameterValue
(
IV_Name
);
58
break
;
59
case
sim::Operator::OAT
:
60
perceived_parameter_value_pt =
g_sim
.
Action_Taker
.
memory
.
perceived_info
.
checkExistanceOfPerceivedParameterValue
(
IV_Name
);
61
break
;
62
default
:
63
break
;
64
}
65
if
(perceived_parameter_value_pt == 0){
66
_BiResult.
bool_result
=
false
;
67
}
68
else
69
{
70
IV
= perceived_parameter_value_pt->
getObservedParameterValue
();
71
if
(
IV
>=
IV_LowerRange
&&
IV
<=
IV_UpperRange
){
72
DV
=
C0
+
C1
*
IV
+
C2
* pow(
IV
, 2) +
C3
* pow(
IV
, 3) +
C4
* pow(
IV
, 4) +
C5
* pow(
IV
, 5);
73
_BiResult.
bool_result
=
true
;
74
_BiResult.
float_result
=
DV
;
75
}
76
else
77
_BiResult.
bool_result
=
false
;
78
}
79
return
_BiResult;
80
}
81
82
void
polynomial::copyPolynomial
(
polynomial
&_poly)
83
{
84
C0
= _poly.
C0
;
85
C1
= _poly.
C1
;
86
C2
= _poly.
C2
;
87
C3
= _poly.
C3
;
88
C4
= _poly.
C4
;
89
C5
= _poly.
C5
;
90
Curve_Name
= _poly.
GetCurveName
();
91
IV_LowerRange
=_poly.
IV_LowerRange
;
92
IV_UpperRange
= _poly.
IV_UpperRange
;
93
IV_Name
= _poly.
GetIVName
();
94
// Scratch values recomputed by GetCurveValue before use, but copied so the
95
// snapshot's serialized bytes are deterministic.
96
IV
= _poly.
IV
;
97
DV
= _poly.
DV
;
98
}
99
100
string
polynomial::GetCurveName
()
101
{
102
return
Curve_Name
;
103
104
}
105
106
string
polynomial::GetIVName
()
107
{
108
return
IV_Name
;
109
}
Polynomial.h
g_sim
SimulationContext g_sim
Global simulation context: the single instance, defined in SimulationContext.cpp.
Definition:
SimulationContext.cpp:7
BiResult
Definition:
BiResult.h:8
BiResult::float_result
float float_result
Definition:
BiResult.h:10
BiResult::bool_result
bool bool_result
Definition:
BiResult.h:11
InfoChunk::checkExistanceOfPerceivedParameterValue
MentalParameterValue * checkExistanceOfPerceivedParameterValue(std::string)
Definition:
InfoChunk.cpp:921
MentalParameterValue
Definition:
MentalParameterValue.h:22
MentalParameterValue::getObservedParameterValue
double getObservedParameterValue()
Definition:
MentalParameterValue.cpp:40
Operator::memory
ShortTermMemory memory
Definition:
Operator.h:126
ShortTermMemory::perceived_info
InfoChunk perceived_info
Definition:
ShortTermMemory.h:65
polynomial
Definition:
Polynomial.h:15
polynomial::C1
float C1
Definition:
Polynomial.h:25
polynomial::IV_UpperRange
float IV_UpperRange
Definition:
Polynomial.h:27
polynomial::C5
float C5
Definition:
Polynomial.h:25
polynomial::DV
float DV
Definition:
Polynomial.h:26
polynomial::C3
float C3
Definition:
Polynomial.h:25
polynomial::IV_Name
std::string IV_Name
Definition:
Polynomial.h:31
polynomial::C0
float C0
Definition:
Polynomial.h:25
polynomial::C4
float C4
Definition:
Polynomial.h:25
polynomial::IV
float IV
Definition:
Polynomial.h:26
polynomial::GetCurveValue
BiResult GetCurveValue(int)
Definition:
Polynomial.cpp:51
polynomial::~polynomial
virtual ~polynomial()
Definition:
Polynomial.cpp:36
polynomial::polynomial
polynomial()
Definition:
Polynomial.cpp:24
polynomial::C2
float C2
Definition:
Polynomial.h:25
polynomial::IV_LowerRange
float IV_LowerRange
Definition:
Polynomial.h:27
polynomial::GetIVName
std::string GetIVName()
Definition:
Polynomial.cpp:106
polynomial::copyPolynomial
void copyPolynomial(polynomial &)
Definition:
Polynomial.cpp:82
polynomial::GetCurveName
std::string GetCurveName()
Definition:
Polynomial.cpp:100
polynomial::Curve_Name
std::string Curve_Name
Definition:
Polynomial.h:30
polynomial::readInfoFromFile
void readInfoFromFile(std::ifstream &)
Definition:
Polynomial.cpp:41
sim::Operator::ODM
constexpr int ODM
Definition:
SimConstants.h:145
sim::Operator::OAT
constexpr int OAT
Definition:
SimConstants.h:144
SimulationContext::Action_Taker
OperatorAT Action_Taker
Crew action execution model.
Definition:
SimulationContext.h:47
SimulationContext::Decision_Maker
OperatorDM Decision_Maker
Crew decision-making model.
Definition:
SimulationContext.h:46
src
ADSIDAC
CalculationAid
Polynomial.cpp
Generated by
1.9.4