ECF 1.7
Nlog.h
1#ifndef CGPNLog_h
2#define CGPNLog_h
3#include "Function.h"
4namespace Cartesian {
5
6 template <class T>
7 class NlogT : public Function
8 {
9 public:
10 NlogT();
11 ~NlogT();
12
13 void evaluate(std::vector<T>& inputs, T& result);
14 };
15
16 typedef NlogT<double> Ln;
17
18 template <class T>
19 NlogT<T>::NlogT()
20 {
21 name_ = "ln";
22 nArguments_ = 1;
23 }
24
25 template <class T>
26 NlogT<T>::~NlogT()
27 {}
28
29 template <class T>
30 void NlogT<T>::evaluate(std::vector<T> &inputs, T &result)
31 {
32 result = inputs[0];
33 if(inputs[0] > 0)
34 result = log(inputs[0]);
35 }
36}
37#endif //NLog_h