← 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>
16BOOST_CLASS_EXPORT_IMPLEMENT(polynomial)
17using namespace std;
18
19
21// Construction/Destruction
23
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
37{
38
39}
40
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
52{
53 BiResult _BiResult;
54 MentalParameterValue *perceived_parameter_value_pt;
55 switch (_operator){
58 break;
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
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();
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
101{
102 return Curve_Name;
103
104}
105
107{
108 return IV_Name;
109}
SimulationContext g_sim
Global simulation context: the single instance, defined in SimulationContext.cpp.
float float_result
Definition: BiResult.h:10
bool bool_result
Definition: BiResult.h:11
MentalParameterValue * checkExistanceOfPerceivedParameterValue(std::string)
Definition: InfoChunk.cpp:921
ShortTermMemory memory
Definition: Operator.h:126
InfoChunk perceived_info
float C1
Definition: Polynomial.h:25
float IV_UpperRange
Definition: Polynomial.h:27
float C5
Definition: Polynomial.h:25
float DV
Definition: Polynomial.h:26
float C3
Definition: Polynomial.h:25
std::string IV_Name
Definition: Polynomial.h:31
float C0
Definition: Polynomial.h:25
float C4
Definition: Polynomial.h:25
float IV
Definition: Polynomial.h:26
BiResult GetCurveValue(int)
Definition: Polynomial.cpp:51
virtual ~polynomial()
Definition: Polynomial.cpp:36
float C2
Definition: Polynomial.h:25
float IV_LowerRange
Definition: Polynomial.h:27
std::string GetIVName()
Definition: Polynomial.cpp:106
void copyPolynomial(polynomial &)
Definition: Polynomial.cpp:82
std::string GetCurveName()
Definition: Polynomial.cpp:100
std::string Curve_Name
Definition: Polynomial.h:30
void readInfoFromFile(std::ifstream &)
Definition: Polynomial.cpp:41
constexpr int ODM
Definition: SimConstants.h:145
constexpr int OAT
Definition: SimConstants.h:144
OperatorAT Action_Taker
Crew action execution model.
OperatorDM Decision_Maker
Crew decision-making model.