• Main Page
  • Modules
  • Classes
  • Files
  • File List

D:/Projekt/ECF_trunk/ECF/cartesian/Cos.h

00001 #ifndef Cos_h
00002 #define Cos_h
00003 #include "Function.h"
00004 #include <cmath>
00005 
00006 namespace cart
00007 {
00008     template <class T>
00009     class Cos : public Function
00010     {
00011     public:
00012         Cos();
00013         ~Cos();
00014 
00015         void evaluate(voidP inputs, void* result);
00016     };
00017 
00018     typedef Cos<double> CosDouble;
00019     typedef Cos<int> CosInt;
00020 
00021     template <class T>
00022     Cos<T>::Cos()
00023     {
00024         name_ = "cos";
00025         numOfArgs_ = 1;
00026     }
00027 
00028     template <class T>
00029     Cos<T>::~Cos()
00030     {
00031     }
00032 
00033     template <class T>
00034     void Cos<T>::evaluate(voidP inputs, void* result)
00035     {
00036         T& data = *(T*) result;
00037         stringstream ss;
00038         ss << *((string*) inputs.get());
00039         vector<T> readInputs;
00040         T input;
00041         uint i = 0;
00042         while (ss >> input)
00043         {
00044             readInputs.push_back(input);
00045             ++i;
00046             if (i == numOfArgs_)
00047             {
00048                 break;
00049             }
00050         }
00051 
00052         data = (T)cos((double)readInputs.at(0));
00053     }
00054 
00055 }
00056 
00057 #endif /* Cos_h */

Generated on Tue Nov 4 2014 13:04:30 for ECF by  doxygen 1.7.1