-
Sven Verdoolaege authored
The computation in compute_chambers assumes that the projection of the entire parametric polytope onto the parameter space is full-dimensional. The function can_intersect already checks that the activity domains of the vertices are full-dimensional, but if the entire projection is not full-dimensional, then no vertices get added in the first place because their activity domains are not full-dimensional. Note that even though isl_basic_set_compute_vertices already handles equality constraints that are explicitly available, it fails to handle implicit equality constraints. This means that the sanity check may fail in some cases, but this is already an improvement over running into an infinite loop. The failure itself will be handled in upcoming commits. Signed-off-by:
Sven Verdoolaege <sven.verdoolaege@gmail.com>
Sven Verdoolaege authoredThe computation in compute_chambers assumes that the projection of the entire parametric polytope onto the parameter space is full-dimensional. The function can_intersect already checks that the activity domains of the vertices are full-dimensional, but if the entire projection is not full-dimensional, then no vertices get added in the first place because their activity domains are not full-dimensional. Note that even though isl_basic_set_compute_vertices already handles equality constraints that are explicitly available, it fails to handle implicit equality constraints. This means that the sanity check may fail in some cases, but this is already an improvement over running into an infinite loop. The failure itself will be handled in upcoming commits. Signed-off-by:
Sven Verdoolaege <sven.verdoolaege@gmail.com>
Loading