Lines Matching refs:coeffs

103 unsigned SimplexBase::addRow(ArrayRef<int64_t> coeffs, bool makeRestricted) {  in addRow()  argument
104 assert(coeffs.size() == var.size() + 1 && in addRow()
110 tableau(newRow, 1) = coeffs.back(); in addRow()
127 for (unsigned i = 0; i < coeffs.size() - 1; ++i) in addRow()
129 bigMCoeff -= coeffs[i]; in addRow()
137 if (coeffs[i] == 0) in addRow()
144 tableau(newRow, pos) += coeffs[i] * tableau(newRow, 0); in addRow()
154 int64_t idxRowCoeff = coeffs[i] * (lcm / tableau(pos, 0)); in addRow()
318 bool LexSimplex::isSeparateInequality(ArrayRef<int64_t> coeffs) { in isSeparateInequality() argument
320 addInequality(coeffs); in isSeparateInequality()
324 bool LexSimplex::isRedundantInequality(ArrayRef<int64_t> coeffs) { in isRedundantInequality() argument
325 return isSeparateInequality(getComplementIneq(coeffs)); in isRedundantInequality()
1079 void Simplex::addInequality(ArrayRef<int64_t> coeffs) { in addInequality() argument
1080 unsigned conIndex = addRow(coeffs, /*makeRestricted=*/true); in addInequality()
1092 void SimplexBase::addEquality(ArrayRef<int64_t> coeffs) { in addEquality() argument
1093 addInequality(coeffs); in addEquality()
1095 for (int64_t coeff : coeffs) in addEquality()
1271 void SimplexBase::addDivisionVariable(ArrayRef<int64_t> coeffs, int64_t denom) { in addDivisionVariable() argument
1275 SmallVector<int64_t, 8> ineq(coeffs.begin(), coeffs.end()); in addDivisionVariable()
1331 ArrayRef<int64_t> coeffs) { in computeOptimum() argument
1336 unsigned conIndex = addRow(coeffs); in computeOptimum()
1557 void LexSimplexBase::addInequality(ArrayRef<int64_t> coeffs) { in addInequality() argument
1558 addRow(coeffs, /*makeRestricted=*/true); in addInequality()
1719 SmallVector<int64_t, 8> coeffs(dir.begin(), dir.end()); in getCoeffsForDirection() local
1720 coeffs.reserve(2 * dir.size()); in getCoeffsForDirection()
1722 coeffs.push_back(-coeff); in getCoeffsForDirection()
1723 coeffs.emplace_back(0); // constant term in getCoeffsForDirection()
1724 return coeffs; in getCoeffsForDirection()
2070 Simplex::computeIntegerBounds(ArrayRef<int64_t> coeffs) { in computeIntegerBounds() argument
2072 computeOptimum(Simplex::Direction::Down, coeffs).map(ceil)); in computeIntegerBounds()
2074 computeOptimum(Simplex::Direction::Up, coeffs).map(floor)); in computeIntegerBounds()
2144 Simplex::IneqType Simplex::findIneqType(ArrayRef<int64_t> coeffs) { in findIneqType() argument
2145 MaybeOptimum<Fraction> minimum = computeOptimum(Direction::Down, coeffs); in findIneqType()
2149 MaybeOptimum<Fraction> maximum = computeOptimum(Direction::Up, coeffs); in findIneqType()
2159 bool Simplex::isRedundantInequality(ArrayRef<int64_t> coeffs) { in isRedundantInequality() argument
2162 return findIneqType(coeffs) == IneqType::Redundant; in isRedundantInequality()
2169 bool Simplex::isRedundantEquality(ArrayRef<int64_t> coeffs) { in isRedundantEquality() argument
2172 MaybeOptimum<Fraction> minimum = computeOptimum(Direction::Down, coeffs); in isRedundantEquality()
2173 MaybeOptimum<Fraction> maximum = computeOptimum(Direction::Up, coeffs); in isRedundantEquality()