-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathFunctionSum.cpp
More file actions
25 lines (19 loc) · 839 Bytes
/
FunctionSum.cpp
File metadata and controls
25 lines (19 loc) · 839 Bytes
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
#include "FunctionSum.h"
#include "FunctionId.h"
#include "Function.h"
#include <typeinfo>
FunctionSum::FunctionSum(SharedPtr<Function> left, SharedPtr<Function> rigth):leftFunction(left),rigthFunction(rigth) {
Function::MargeVatiable(rigth->Variables(), left->Variables());
}
double FunctionSum::Evaluate(const std::map<std::string, double> &variables) const
{
double sumRigth=this->rigthFunction->Evaluate(variables);
double sumLeft=this->leftFunction->Evaluate(variables);
return sumRigth+sumLeft;
}
SharedPtr<Function> FunctionSum::DeriveBy(const std::string &variable) const
{
SharedPtr<Function> rigthDerive = this->rigthFunction->DeriveBy(variable);
SharedPtr<Function> leftDerive = this->leftFunction->DeriveBy(variable);
return new FunctionSum(leftDerive,rigthDerive);
}