00001 00008 #ifndef _SMP_SAMPLER_HALTON_H_ 00009 #define _SMP_SAMPLER_HALTON_H_ 00010 00011 #include <smp/components/samplers/base.h> 00012 #include <smp/common/region.h> 00013 #include <smp/external_libraries/halton/halton.h> 00014 00015 namespace smp { 00016 00018 00023 template < class typeparams, int NUM_DIMENSIONS > 00024 class sampler_halton : public sampler_base< typeparams > { 00025 00026 typedef typename typeparams::state state_t; 00027 typedef typename typeparams::vertex_data vertex_data_t; 00028 typedef typename typeparams::edge_data edge_data_t; 00029 00030 typedef vertex<typeparams> vertex_t; 00031 typedef edge<typeparams> edge_t; 00032 00033 typedef region<NUM_DIMENSIONS> region_t; 00034 00035 region_t support; 00036 00037 public: 00038 sampler_halton (); 00039 ~sampler_halton (); 00040 00041 00042 int sm_update_insert_vertex (vertex_t *vertex_in); 00043 00044 00045 int sm_update_insert_edge (edge_t *edge_in); 00046 00047 00048 int sm_update_delete_vertex (vertex_t *vertex_in); 00049 00050 00051 int sm_update_delete_edge (edge_t *edge_in); 00052 00053 00054 int sample (state_t **state_sample_out); 00055 00071 int set_support (const region_t support_in); 00072 00073 00074 }; 00075 00076 00077 } 00078 00079 #endif