Lines Matching defs:disjunct
29 PresburgerRelation::PresburgerRelation(const IntegerRelation &disjunct)
30 : space(disjunct.getSpaceWithoutLocals()) {
31 unionInPlace(disjunct);
37 for (IntegerRelation &disjunct : disjuncts)
38 disjunct.setSpaceExceptLocals(space);
61 for (IntegerRelation &disjunct : disjuncts)
62 disjunct.convertVarKind(srcKind, srcPos, srcPos + num, dstKind, dstPos);
80 void PresburgerRelation::unionInPlace(const IntegerRelation &disjunct) {
81 assert(space.isCompatible(disjunct.getSpace()) && "Spaces should match");
82 disjuncts.emplace_back(disjunct);
109 for (const IntegerRelation &disjunct : set.disjuncts)
110 unionInPlace(disjunct);
124 return llvm::any_of(disjuncts, [&point](const IntegerRelation &disjunct) {
125 return disjunct.containsPointNoLocal(point);
308 for (const IntegerRelation &disjunct : disjuncts)
309 result.unionInPlace(disjunct.computeReprWithOnlyDivLocals());
615 for (const IntegerRelation &disjunct : disjuncts)
616 result.unionInPlace(getSetDifference(disjunct, set));
640 // Compare each disjunct in this PresburgerRelation with the corresponding
641 // disjunct in the other PresburgerRelation.
651 /// one unconstrained disjunct, indicating the absence of constraints or
654 for (const IntegerRelation &disjunct : getAllDisjuncts()) {
655 if (disjunct.getNumConstraints() == 0)
665 /// Return true if there is no disjunct, false otherwise.
680 for (const IntegerRelation &disjunct : disjuncts) {
682 disjunct.findIntegerSample()) {
695 for (const IntegerRelation &disjunct : disjuncts) {
696 std::optional<DynamicAPInt> volume = disjunct.computeVolume();
746 /// Removes redundant constraints from `disjunct`, adds it to `disjuncts` and
750 const IntegerRelation &disjunct);
842 for (const IntegerRelation &disjunct : disjuncts)
843 newSet.unionInPlace(disjunct);
861 const IntegerRelation &disjunct) {
870 disjuncts[n - 2] = disjunct;
886 disjuncts[n - 2] = disjunct;
916 IntegerRelation &disjunct = disjuncts[i];
921 IntegerRelation newSet(disjunct.getSpace());
1038 for (IntegerRelation &disjunct : origin.disjuncts) {
1039 disjunct.simplify();
1040 if (!disjunct.isObviouslyEmpty())
1041 result.unionInPlace(disjunct);
1047 return llvm::any_of(getAllDisjuncts(), [](IntegerRelation disjunct) {
1048 return disjunct.isFullDim();
1054 for (const IntegerRelation &disjunct : disjuncts) {
1055 disjunct.print(os);
1072 PresburgerSet::PresburgerSet(const IntegerPolyhedron &disjunct)
1073 : PresburgerRelation(disjunct) {}