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

D:/Projekt/ECF_trunk/ECF/tree/Min.h

00001 #ifndef Min_h
00002 #define Min_h
00003 #include "Primitive.h"
00004 
00005 #include <algorithm>
00006 
00007 namespace Tree {
00008 namespace Primitives {
00009 
00014 template <class T>
00015 class MinT : public Primitive
00016 {
00017 public:
00018     MinT();
00019     void execute(void* result, Tree& tree);
00020     ~MinT();
00021 };
00022 typedef MinT<double> Min;
00023 
00024 
00025 template <class T>
00026 MinT<T>::MinT()
00027 {
00028     nArguments_ = 2;
00029     name_ = "min";
00030     complementName_ = "max";
00031 }
00032 
00033 
00034 template <class T>
00035 MinT<T>::~MinT()
00036 {   }
00037 
00038 
00039 template <class T>
00040 void MinT<T>::execute(void* result, Tree& tree)
00041 {
00042     T first, second;
00043     T& min = *(T*)result;
00044     getNextArgument(&first, tree);
00045     getNextArgument(&second, tree);
00046     min = std::min(first, second);
00047 }
00048 
00049 }
00050 }
00051 
00052 #endif

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