Lines Matching defs:rel

213 void PresburgerRelation::compose(const PresburgerRelation &rel) {
215 rel.getSpace().getDomainSpace()) &&
216 "Range of `this` should be compatible with domain of `rel`");
220 getNumDomainVars(), rel.getNumRangeVars(), getNumSymbolVars()));
222 for (const IntegerRelation &csB : rel.disjuncts) {
232 void PresburgerRelation::applyDomain(const PresburgerRelation &rel) {
234 rel.getSpace().getDomainSpace()) &&
235 "Domain of `this` should be compatible with domain of `rel`");
238 compose(rel);
242 void PresburgerRelation::applyRange(const PresburgerRelation &rel) {
243 compose(rel);
246 static SymbolicLexOpt findSymbolicIntegerLexOpt(const PresburgerRelation &rel,
248 SymbolicLexOpt result(rel.getSpace());
251 for (const IntegerRelation &cs : rel.getAllDisjuncts()) {
252 SymbolicLexOpt s(rel.getSpace());
273 /// Return the coefficients of the ineq in `rel` specified by `idx`.
274 /// `idx` can refer not only to an actual inequality of `rel`, but also
275 /// to either of the inequalities that make up an equality in `rel`.
277 /// When 0 <= idx < rel.getNumInequalities(), this returns the coeffs of the
278 /// idx-th inequality of `rel`.
281 /// eqs of `rel`, and it must hold that
283 /// 0 <= idx - rel.getNumInequalities() < 2*getNumEqualities().
288 getIneqCoeffsFromIdx(const IntegerRelation &rel, unsigned idx) {
289 assert(idx < rel.getNumInequalities() + 2 * rel.getNumEqualities() &&
291 if (idx < rel.getNumInequalities())
292 return llvm::to_vector<8>(rel.getInequality(idx));
294 idx -= rel.getNumInequalities();
295 ArrayRef<DynamicAPInt> eqCoeffs = rel.getEquality(idx / 2);
1030 return llvm::all_of(disjuncts, [](const IntegerRelation &rel) {
1031 return rel.hasOnlyDivLocals();