/// additional processing using Simplex for unbounded sets.
///
/// Returns an integer sample point if one exists, or an empty Optional
- /// otherwise.
+ /// otherwise. The returned value also includes values of local ids.
Optional<SmallVector<int64_t, 8>> findIntegerSample() const;
/// Compute an overapproximation of the number of integer points in the
EXPECT_TRUE(Simplex(poly).isUnbounded());
}
if (maybeLexMin.isBounded()) {
- EXPECT_TRUE(poly.containsPoint(*maybeLexMin));
+ EXPECT_TRUE(poly.containsPointNoLocal(*maybeLexMin));
}
}
break;
checkSample(true, parsePoly("(x, y, z) : (2 * x - 1 >= 0, x - y - 1 == 0, "
"y - z == 0)"));
+ // Test with a local id.
+ checkSample(true, parsePoly("(x) : (x == 5*(x floordiv 2))"));
+
// Regression tests for the computation of dual coefficients.
checkSample(false, parsePoly("(x, y, z) : ("
"6*x - 4*y + 9*z + 2 >= 0,"