00001 00004 #ifndef _reservoir_h_ 00005 #define _reservoir_h_ 00006 #include "vectors.h" 00007 #include "globals.h" 00008 00012 template <class T> 00013 class Reservoir { 00014 private: 00016 int reservoir_size; 00018 int current_size; 00020 int *exampleClasses; 00022 T *pFeatures; 00029 void swapClassesOfLabels(int i, int j); 00036 void swapVectors(int i, int j); 00044 void copyExample(int index, int classOfExample, T featureArray); 00048 void shuffle(); 00049 00055 void init(int res_size, long seed); 00056 public: 00058 00062 Reservoir(int res_size); 00068 Reservoir(int res_size, long seed); 00073 void addExample(std::string newEx); 00074 00080 void addExample(int y, T ex); 00087 int getExampleClass(int index); 00094 const T getExampleFeatureVector(int index); 00099 int getCurrentSize(); 00104 bool isFull() { return getCurrentSize() == reservoir_size; } 00105 }; 00106 #include "reservoir.hxx" 00107 #endif