-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathParameters.cpp
More file actions
51 lines (38 loc) · 1.57 KB
/
Parameters.cpp
File metadata and controls
51 lines (38 loc) · 1.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include "Parameters.h"
// Parameter Class Method Implementations
Parameters::Parameters(const Parameters& innerObject) : InnerObjectPtr{innerObject.clone()} {}
Parameters::Parameters(const Parameters& original) : InnerObjectPtr{original.InnerObjectPtr->clone()} {}
Parameter & Parameters::operator=(const Parameters & original) {
if (this == &original) return *this;
delete InnerObjectPtr;
InnerObjectPtr = original.InnerObjectPtr->clone();
return *this;
}
inline double Parameters::Integral(double time1, double time2) const {
return InnerObjectPtr->Integral(time1, time2);
}
inline double Parameters::IntegralSquare(double time1, double time2) const {
return InnerObjectPtr->IntegralSquare(time1, time2);
}
Parameters::~Parameters() {
delete InnerObjectPtr;
}
double Parameters::Mean(double time1, double time2) const {
double total = Integral(time1, time2);
return total / (time2 - time1);
}
double Parameters::RootMeanSquare(double time1, double time2) const {
double total = IntegralSquare(time1, time2);
return total / (time2 - time1);
}
// ParametersConstant Class Method Implementations
ParametersInner* ParametersConstant::clone() const {
return new ParametersConstant(*this);
}
ParametersConstant::ParametersConstant(double constant) : Constant{constant}, ConstantSquare{Constant * Constant} {}
double ParametersConstant::Integral(double time1, double time2) const {
return (time2 - time1) * Constant;
}
double ParametersConstant::IntegralSquare(double time1, double time2) const {
return (time2 - time1) * ConstantSquare;
}