• Main Page
  • Classes
  • Files
  • File List

D:/Radagast_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 
00013 template <class T>
00014 class MinT : public Primitive
00015 {
00016 public:
00017     MinT();
00018     void execute(void* result, Tree& tree);
00019     ~MinT();
00020 };
00021 typedef MinT<double> Min;
00022 
00023 
00024 template <class T>
00025 MinT<T>::MinT()
00026 {
00027     nArguments_ = 2;
00028     name_ = "min";
00029     complementName_ = "max";
00030 }
00031 
00032 
00033 template <class T>
00034 MinT<T>::~MinT()
00035 {   }
00036 
00037 
00038 template <class T>
00039 void MinT<T>::execute(void* result, Tree& tree)
00040 {
00041     T first, second;
00042     T& min = *(T*)result;
00043     getNextArgument(&first, tree);
00044     getNextArgument(&second, tree);
00045     min = std::min(first, second);
00046 }
00047 
00048 }
00049 }
00050 
00051 #endif

Generated on Wed Sep 1 2010 14:31:21 for ECF by  doxygen 1.7.1