36
void restrictDiagonal(std::vector<std::unordered_map<const Colored::Variable *, Colored::intervalTuple_t>>& variableMap,
37
std::unordered_map<const Colored::Variable *,std::vector<std::unordered_map<uint32_t, int32_t>>> *varModifierMapL,
38
std::unordered_map<const Colored::Variable *,std::vector<std::unordered_map<uint32_t, int32_t>>> *varModifierMapR,
39
std::unordered_map<uint32_t, const Colored::Variable *> *varPositionsL,
40
std::unordered_map<uint32_t, const Colored::Variable *> *varPositionsR,
41
std::unordered_map<uint32_t, const Color*> *constantMapL,
42
std::unordered_map<uint32_t, const Color*> *constantMapR,
36
void restrictDiagonal(std::vector<VariableIntervalMap>& variableMap,
37
const VariableModifierMap &varModifierMapL,
38
const VariableModifierMap &varModifierMapR,
39
const PositionVariableMap &varPositionsL,
40
const PositionVariableMap &varPositionsR,
41
const std::unordered_map<uint32_t, const Color*> &constantMapL,
42
const std::unordered_map<uint32_t, const Color*> &constantMapR,
43
43
std::set<const Colored::Variable*> &diagonalVars,
44
44
const Colored::Variable *var,
45
uint32_t index, bool lessthan, bool strict);
45
uint32_t index, bool lessthan, bool strict) const;
49
void restrictEquality(std::vector<std::unordered_map<const Colored::Variable *, Colored::intervalTuple_t>>& variableMap,
50
std::unordered_map<const Colored::Variable *,std::vector<std::unordered_map<uint32_t, int32_t>>> *varModifierMapL,
51
std::unordered_map<const Colored::Variable *,std::vector<std::unordered_map<uint32_t, int32_t>>> *varModifierMapR,
52
std::unordered_map<uint32_t, const Colored::Variable *> *varPositionsL,
53
std::unordered_map<uint32_t, const Colored::Variable *> *varPositionsR,
54
std::unordered_map<uint32_t, const Color*> *constantMapL,
55
std::unordered_map<uint32_t, const Color*> *constantMapR,
56
std::set<const Colored::Variable*> &diagonalVars);
58
void restrictVars(std::vector<std::unordered_map<const Colored::Variable *, Colored::intervalTuple_t>>& variableMap,
59
std::unordered_map<const Colored::Variable *,std::vector<std::unordered_map<uint32_t, int32_t>>> *varModifierMapL,
60
std::unordered_map<const Colored::Variable *,std::vector<std::unordered_map<uint32_t, int32_t>>> *varModifierMapR,
61
std::unordered_map<uint32_t, const Colored::Variable *> *varPositionsL,
62
std::unordered_map<uint32_t, const Colored::Variable *> *varPositionsR,
63
std::unordered_map<uint32_t, const Color*> *constantMapL,
64
std::unordered_map<uint32_t, const Color*> *constantMapR,
49
void restrictEquality(std::vector<VariableIntervalMap>& variableMap,
50
const VariableModifierMap &varModifierMapL,
51
const VariableModifierMap &varModifierMapR,
52
const PositionVariableMap &varPositionsL,
53
const PositionVariableMap &varPositionsR,
54
const std::unordered_map<uint32_t, const Color*> &constantMapL,
55
const std::unordered_map<uint32_t, const Color*> &constantMapR,
56
std::set<const Colored::Variable*> &diagonalVars) const;
58
void restrictInEquality(std::vector<VariableIntervalMap>& variableMap,
59
const VariableModifierMap &varModifierMapL,
60
const VariableModifierMap &varModifierMapR,
61
const PositionVariableMap &varPositionsL,
62
const PositionVariableMap &varPositionsR,
63
const std::unordered_map<uint32_t, const Color*> &constantMapL,
64
const std::unordered_map<uint32_t, const Color*> &constantMapR,
65
std::set<const Colored::Variable*> &diagonalVars) const;
67
void restrictVars(std::vector<VariableIntervalMap>& variableMap,
68
const VariableModifierMap &varModifierMapL,
69
const VariableModifierMap &varModifierMapR,
70
const PositionVariableMap &varPositionsL,
71
const PositionVariableMap &varPositionsR,
72
const std::unordered_map<uint32_t, const Color*> &constantMapL,
73
const std::unordered_map<uint32_t, const Color*> &constantMapR,
65
74
std::set<const Colored::Variable*> &diagonalVars,
66
bool lessthan, bool strict);
75
bool lessthan, bool strict) const;
68
intervalTuple_t shiftIntervals(std::unordered_map<const Variable *, intervalTuple_t>& varMap,
69
std::vector<const ColorType *> *colortypes, intervalTuple_t *intervals,
77
interval_vector_t shiftIntervals(const VariableIntervalMap& varMap,
78
const std::vector<const ColorType *> &colortypes, interval_vector_t &intervals,
70
79
int32_t modifier, uint32_t ctSizeBefore) const;
73
int32_t getVarModifier(std::unordered_map<uint32_t, int32_t> *modPairMap, uint32_t index);
74
interval_t getIntervalFromIds(std::vector<uint32_t> *idVec, uint32_t ctSize, int32_t modifier);
75
intervalTuple_t getIntervalOverlap(std::vector<Colored::interval_t> *intervals1, std::vector<Colored::interval_t> *intervals2);
77
void expandIdVec(std::unordered_map<const Variable *, intervalTuple_t> *varMap,
78
std::unordered_map<const Variable *,std::vector<std::unordered_map<uint32_t, int32_t>>> *mainVarModifierMap,
79
std::unordered_map<const Variable *,std::vector<std::unordered_map<uint32_t, int32_t>>> *otherVarModifierMap,
80
std::unordered_map<uint32_t, const Variable *> *varPositions,
81
std::unordered_map<uint32_t, const Color*> *constantMap,
82
const Variable *otherVar,
83
std::vector<uint32_t> &idVec, size_t targetSize, uint32_t index);
85
void expandIntervalVec(std::unordered_map<const Variable *, intervalTuple_t> varMap,
86
std::unordered_map<const Variable *,std::vector<std::unordered_map<uint32_t, int32_t>>> *mainVarModifierMap,
87
std::unordered_map<const Variable *,std::vector<std::unordered_map<uint32_t, int32_t>>> *otherVarModifierMap,
88
std::unordered_map<uint32_t, const Variable *> *varPositions,
89
std::unordered_map<uint32_t, const Color*> *constantMap,
90
const Variable *otherVar,
91
std::vector<interval_t> &intervalVec, size_t targetSize, uint32_t index);
93
void restrictByConstant(std::vector<std::unordered_map<const Colored::Variable *, Colored::intervalTuple_t>>& variableMap,
94
std::unordered_map<const Colored::Variable *,std::vector<std::unordered_map<uint32_t, int32_t>>> *mainVarModifierMap,
95
std::unordered_map<const Colored::Variable *,std::vector<std::unordered_map<uint32_t, int32_t>>> *otherVarModifierMap,
96
std::unordered_map<uint32_t, const Colored::Variable *> *varPositions,
97
std::unordered_map<uint32_t, const Color*> *constantMap,
82
int32_t getVarModifier(const std::unordered_map<uint32_t, int32_t> &modPairMap, uint32_t index) const;
83
interval_t getIntervalFromIds(const std::vector<uint32_t> &idVec, uint32_t ctSize, int32_t modifier) const;
84
interval_vector_t getIntervalOverlap(const Colored::interval_vector_t &intervals1, const Colored::interval_vector_t &intervals2) const;
85
void invertIntervals(interval_vector_t &intervals, const interval_vector_t &oldIntervals, const ColorType *colorType) const;
88
void handleInequalityConstants(const std::vector<VariableIntervalMap> &variableMapCopy,
89
std::vector<VariableIntervalMap> &variableMap,
90
const Variable *var, uint32_t varMapIndex) const;
92
void handleInequalityVars(const std::vector<VariableIntervalMap> &variableMapCopy,
93
std::vector<VariableIntervalMap> &variableMap,
94
const Variable *var1, const Variable *var2, uint32_t varMapIndex) const;
96
void expandIdVec(const VariableIntervalMap &varMap,
97
const VariableModifierMap &mainVarModifierMap,
98
const VariableModifierMap &otherVarModifierMap,
99
const std::unordered_map<uint32_t, const Variable *> &varPositions,
100
const std::unordered_map<uint32_t, const Color*> &constantMap,
101
const Variable *otherVar,
102
std::vector<uint32_t> &idVec, size_t targetSize, uint32_t index) const;
104
void expandIntervalVec(const VariableIntervalMap &varMap,
105
const VariableModifierMap &mainVarModifierMap,
106
const VariableModifierMap &otherVarModifierMap,
107
const std::unordered_map<uint32_t, const Variable *> &varPositions,
108
const std::unordered_map<uint32_t, const Color*> &constantMap,
109
const Variable *otherVar,
110
interval_vector_t &intervalVec, size_t targetSize, uint32_t index) const;
112
void restrictByConstant(std::vector<VariableIntervalMap>& variableMap,
113
const VariableModifierMap &mainVarModifierMap,
114
const VariableModifierMap &otherVarModifierMap,
115
const PositionVariableMap &varPositions,
116
const std::unordered_map<uint32_t, const Color*> &constantMap,
98
117
const Colored::Variable *var,
99
118
const Colored::Variable *otherVar,
100
uint32_t index, bool lessthan, bool strict);
119
uint32_t index, bool lessthan, bool strict) const;
102
void restrictEqByConstant(std::vector<std::unordered_map<const Colored::Variable *, Colored::intervalTuple_t>>& variableMap,
103
std::unordered_map<const Colored::Variable *,std::vector<std::unordered_map<uint32_t, int32_t>>> *mainVarModifierMap,
104
std::unordered_map<const Colored::Variable *,std::vector<std::unordered_map<uint32_t, int32_t>>> *otherVarModifierMap,
105
std::unordered_map<uint32_t, const Colored::Variable *> *varPositions,
106
std::unordered_map<uint32_t, const Color*> *constantMap,
121
void restrictEqByConstant(std::vector<VariableIntervalMap>& variableMap,
122
const VariableModifierMap &mainVarModifierMap,
123
const VariableModifierMap &otherVarModifierMap,
124
const PositionVariableMap &varPositions,
125
const std::unordered_map<uint32_t, const Color*> &constantMap,
107
126
const Colored::Variable *var,
127
uint32_t index) const;
110
void restrictEqDiagonal(std::vector<std::unordered_map<const Colored::Variable *, Colored::intervalTuple_t>>& variableMap,
111
std::unordered_map<const Colored::Variable *,std::vector<std::unordered_map<uint32_t, int32_t>>> *varModifierMapL,
112
std::unordered_map<const Colored::Variable *,std::vector<std::unordered_map<uint32_t, int32_t>>> *varModifierMapR,
113
std::unordered_map<uint32_t, const Colored::Variable *> *varPositionsL,
114
std::unordered_map<uint32_t, const Colored::Variable *> *varPositionsR,
115
std::unordered_map<uint32_t, const Color*> *constantMapL,
116
std::unordered_map<uint32_t, const Color*> *constantMapR,
129
void restrictEqDiagonal(std::vector<VariableIntervalMap>& variableMap,
130
const VariableModifierMap &varModifierMapL,
131
const VariableModifierMap &varModifierMapR,
132
const PositionVariableMap &varPositionsL,
133
const PositionVariableMap &varPositionsR,
134
const std::unordered_map<uint32_t, const Color*> &constantMapL,
135
const std::unordered_map<uint32_t, const Color*> &constantMapR,
117
136
std::set<const Colored::Variable*> &diagonalVars,
118
137
const Colored::Variable *var,
138
uint32_t index) const;