ECF 1.7
Div.h
1#ifndef CGPDiv_h
2#define CGPDiv_h
3#include "Function.h"
4
5namespace Cartesian
6{
7 const double MIN = 0.000000001; // protected division parameter
8
9 template <class T>
10 class DivT : public Function
11 {
12 public:
13 DivT();
14 ~DivT();
15
16 void evaluate(std::vector<T>& inputs, T& result);
17 };
18
19 typedef DivT<double> Div;
20
21 template <class T>
22 DivT<T>::DivT()
23 {
24 name_ = "/";
25 nArguments_ = 2;
26 }
27
28 template <class T>
29 DivT<T>::~DivT()
30 {}
31
32 template <class T>
33 void DivT<T>::evaluate(std::vector<T> &inputs, T &result)
34 {
35 result = fabs(inputs[1]) > MIN ? inputs[0] / inputs[1] : inputs[0];
36 }
37
38}
39
40#endif //Div_h