00001 00004 #ifndef __KERNEL_MONT_JOLION_HH__ 00005 #define __KERNEL_MONT_JOLION_HH__ 00006 00007 #include <float.h> 00008 #include "kernel.hh" 00009 #include "equivalent_mont_jolion.hh" 00010 00012 class kernel_mont_jolion: public kernel 00013 { 00014 private: 00015 // Pointor on an equivalent_mont_jolion class 00016 equivalent_mont_jolion *equiv; 00017 00018 public: 00020 kernel_mont_jolion(equivalent_mont_jolion &equi): equiv(&equi) 00021 {} 00023 virtual ~kernel_mont_jolion() 00024 {} 00026 void compute_kernel(combi_map_priv &); 00028 bool continue_computation(); 00029 00030 private: 00031 // Compute the survivor and contracted vertices of the map 00032 void compute_survivor(combi_map_priv &,tab_sym_bool &,tab_bool &); 00033 // Compute the most appropriate father of each non survivor vertex of the map 00034 void compute_merge(combi_map_priv &,tab_sym_bool &,tab_bool &); 00035 }; 00036 00037 #endif // __KERNEL_MONT_JOLION_HH__