| 267 | |
| 268 | } |
| 269 | forceinline bool |
| 270 | TraceFilter::TFO::operator ()(const ViewTraceInfo& vti) const { |
| 271 | if (n == 0) |
| 272 | return true; |
| 273 | for (int i=0; i<n; i++) |
| 274 | if (f[i].what & (1 << vti.what())) { |
| 275 | // Group is of the right type |
| 276 | switch (vti.what()) { |
| 277 | case ViewTraceInfo::PROPAGATOR: |
| 278 | if (f[i].g.in(vti.propagator().group()) != f[i].neg) |
| 279 | return true; |
| 280 | break; |
| 281 | case ViewTraceInfo::BRANCHER: |
| 282 | if (f[i].g.in(vti.brancher().group()) != f[i].neg) |
| 283 | return true; |
| 284 | break; |
| 285 | case ViewTraceInfo::POST: |
| 286 | if (f[i].g.in(vti.post()) != f[i].neg) |
| 287 | return true; |
| 288 | break; |
| 289 | case ViewTraceInfo::OTHER: |
| 290 | return true; |
| 291 | default: |
| 292 | GECODE_NEVER; |
| 293 | } |
| 294 | } |
| 295 | return false; |
| 296 | } |
| 297 | |
| 298 | forceinline bool |
| 299 | TraceFilter::operator ()(const ViewTraceInfo& vti) const { |