00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00029 #ifndef __type_base_h
00030 #define __type_base_h 1
00031
00032 #include <string>
00033 #include <list>
00034 #include <set>
00035 #include <fstream>
00036 #include <sstream>
00037 #include <iomanip>
00038 #include <iostream>
00039 #include <algorithm>
00040 #include <utility>
00041 #include <vector>
00042
00043
00044
00047 #ifndef NIVEAU_DEBUG
00048 #define NIVEAU_DEBUG 0
00049 #endif
00050
00051 #define _DEBUG3 (NIVEAU_DEBUG>2)
00052 #define _DEBUG2 (NIVEAU_DEBUG>1)
00053 #define _DEBUG1 (NIVEAU_DEBUG>0)
00054 #define _DEBUG0 (NIVEAU_DEBUG==0)
00055
00056 #if (!_DEBUG0)
00057
00058 #undef DEBUG
00059 #define DEBUG 1
00060
00061 #undef NDEBUG
00062
00063
00064 #else
00065
00066 #undef NDEBUG
00067 #define NDEBUG 1
00068
00069 #undef DEBUG
00070
00071
00072 #endif
00073
00074 #include <cassert>
00075
00076
00077
00078
00079
00080
00081
00082 #define _debog "\033[1;35m>>>\033[0m "
00083 #define _ligne "\033[1;32m+++\033[0m "
00084 #define _resul "\033[1;36m<<<\033[0m "
00085 #define _rien "-"
00086 //#endif
00087
00088
00089
00092 #define _ok "\033[1;34m===\033[0;m "
00093 #define _erreur "\033[1;31m!!!\033[0;m "
00094 #define _attention "\033[1;33mxxx\033[0;m "
00095
00098 //namespace ublas = boost::numeric::ublas;
00099
00102 typedef unsigned entier_type;
00103 typedef int relatif_type;
00104
00105 typedef std::string etiquette ;
00106 typedef std::ostringstream journal ;
00107
00108 typedef std::set< relatif_type > relatif_set;
00109 typedef std::set< entier_type > entier_set;
00110
00111 typedef std::list< relatif_type > relatif_list;
00112 typedef std::list< entier_type > entier_list;
00113
00114
00115
00116
00117
00118 typedef std::vector<relatif_type > relatif_vect;
00119 typedef std::vector<entier_type > entier_vect;
00120 typedef std::vector<relatif_list > vect_relatif_list;
00121 typedef std::vector<relatif_vect > relatif_matrix ;
00122
00123
00124 typedef std::vector<etiquette > noms_type;
00125 typedef std::list<etiquette > noms_list;
00126 typedef std::vector<bool > evolution_vect;
00127
00128 typedef std::pair<bool, bool > res_regle ;
00129
00130 typedef std::pair<entier_type, entier_type > entier_pair ;
00131
00134
00135
00137
00140 #define MAX_NOEUDS 1024
00141