Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef SPOT_TGBAALGOS_WEIGHT_HH
00023 # define SPOT_TGBAALGOS_WEIGHT_HH
00024
00025 #include <iosfwd>
00026 #include <map>
00027 #include <bdd.h>
00028
00029 namespace spot
00030 {
00033
00034 class weight
00035 {
00036 public:
00041 weight(const bdd& neg_all_cond);
00043 weight& operator+=(const bdd& acc);
00045 weight& operator-=(const bdd& acc);
00051 bdd operator-(const weight& w) const;
00052 friend std::ostream& operator<<(std::ostream& os, const weight& w);
00053
00054 private:
00055 typedef std::map<int, int> weight_vector;
00056 weight_vector m;
00057 bdd neg_all_acc;
00058 static weight_vector* pm;
00059 static void inc_weight_handler(char* varset, int size);
00060 static void dec_weight_handler(char* varset, int size);
00061 };
00062 };
00063
00064 #endif // SPOT_TGBAALGOS_WEIGHT_HH