src/smp/components/samplers/halton.h

Go to the documentation of this file.
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