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