Lines Matching refs:tableau
36 tableau(0, getNumFixedCols() + nVar), empty(false) { in SimplexBase()
91 unsigned newRow = tableau.appendExtraRow(); in addZeroRow()
96 tableau(newRow, 0) = 1; in addZeroRow()
110 tableau(newRow, 1) = coeffs.back(); in addRow()
131 tableau(newRow, 2) = bigMCoeff; in addRow()
144 tableau(newRow, pos) += coeffs[i] * tableau(newRow, 0); in addRow()
152 int64_t lcm = mlir::lcm(tableau(newRow, 0), tableau(pos, 0)); in addRow()
153 int64_t nRowCoeff = lcm / tableau(newRow, 0); in addRow()
154 int64_t idxRowCoeff = coeffs[i] * (lcm / tableau(pos, 0)); in addRow()
155 tableau(newRow, 0) = lcm; in addRow()
157 tableau(newRow, col) = in addRow()
158 nRowCoeff * tableau(newRow, col) + idxRowCoeff * tableau(pos, col); in addRow()
161 tableau.normalizeRow(newRow); in addRow()
263 int64_t d = tableau(row, 0); in addCut()
265 tableau(cutRow, 0) = d; in addCut()
266 tableau(cutRow, 1) = -mod(-tableau(row, 1), d); // -c%d. in addCut()
267 tableau(cutRow, 2) = 0; in addCut()
269 tableau(cutRow, col) = mod(tableau(row, col), d); // b_i%d. in addCut()
281 if (tableau(row, 1) % tableau(row, 0) != 0) in maybeGetNonIntegralVarRow()
333 sample.push_back(tableau(row, col)); in getSymbolicSampleNumerator()
334 sample.push_back(tableau(row, 1)); in getSymbolicSampleNumerator()
359 int64_t denom = tableau(row, 0); in isSymbolicSampleIntegral()
360 return tableau(row, 1) % denom == 0 && in isSymbolicSampleIntegral()
361 isRangeDivisibleBy(tableau.getRow(row).slice(3, nSymbol), denom); in isSymbolicSampleIntegral()
398 int64_t d = tableau(row, 0); in addSymbolicCut()
399 if (isRangeDivisibleBy(tableau.getRow(row).slice(3, nSymbol), d)) { in addSymbolicCut()
411 divCoeffs.push_back(mod(-tableau(row, col), divDenom)); // (-a_i%d)s_i in addSymbolicCut()
412 divCoeffs.push_back(mod(-tableau(row, 1), divDenom)); // -c%d. in addSymbolicCut()
423 tableau(cutRow, 0) = d; in addSymbolicCut()
424 tableau(cutRow, 2) = 0; in addSymbolicCut()
426 tableau(cutRow, 1) = -mod(-tableau(row, 1), d); // -(-c%d). in addSymbolicCut()
428 tableau(cutRow, col) = -mod(-tableau(row, col), d); // -(-a_i%d)s_i. in addSymbolicCut()
429 tableau(cutRow, 3 + nSymbol - 1) = d; // q*d. in addSymbolicCut()
432 tableau(cutRow, col) = mod(tableau(row, col), d); // (b_i%d)y_i. in addSymbolicCut()
450 int64_t denom = tableau(u.pos, 0); in recordOutput()
451 if (tableau(u.pos, 2) < denom) { in recordOutput()
458 assert(tableau(u.pos, 2) == denom && in recordOutput()
475 if (tableau(row, 2) < 0) in maybeGetAlwaysViolatedRow()
479 if (tableau(row, 2) > 0) in maybeGetAlwaysViolatedRow()
552 if (tableau(splitRow, 2) > 0) in computeSymbolicIntegerLexMin()
554 assert(tableau(splitRow, 2) == 0 && in computeSymbolicIntegerLexMin()
658 if (tableau(row, 2) < 0) in rowIsViolated()
660 if (tableau(row, 2) == 0 && tableau(row, 1) < 0) in rowIsViolated()
749 if (tableau(row, col) <= 0) in moveRowUnknownToColumn()
810 int64_t a = tableau(row, col); in getLexMinPivotColumn()
825 int64_t c = tableau(u.pos, col); in getLexMinPivotColumn()
859 int64_t elem = tableau(row, j); in findPivot()
874 tableau(row, *col) < 0 ? flippedDirection(direction) : direction; in findPivot()
925 std::swap(tableau(pivotRow, 0), tableau(pivotRow, pivotCol)); in pivot()
927 if (tableau(pivotRow, 0) < 0) { in pivot()
930 tableau(pivotRow, 0) = -tableau(pivotRow, 0); in pivot()
931 tableau(pivotRow, pivotCol) = -tableau(pivotRow, pivotCol); in pivot()
936 tableau(pivotRow, col) = -tableau(pivotRow, col); in pivot()
939 tableau.normalizeRow(pivotRow); in pivot()
944 if (tableau(row, pivotCol) == 0) // Nothing to do. in pivot()
946 tableau(row, 0) *= tableau(pivotRow, 0); in pivot()
951 tableau(row, col) = tableau(row, col) * tableau(pivotRow, 0) + in pivot()
952 tableau(row, pivotCol) * tableau(pivotRow, col); in pivot()
954 tableau(row, pivotCol) *= tableau(pivotRow, pivotCol); in pivot()
955 tableau.normalizeRow(row); in pivot()
966 while (tableau(u.pos, 1) < 0) { in restoreRow()
975 return success(tableau(u.pos, 1) >= 0); in restoreRow()
1012 int64_t elem = tableau(row, col); in findPivotRow()
1019 int64_t constTerm = tableau(row, 1); in findPivotRow()
1044 tableau.swapRows(i, j); in swapRows()
1055 tableau.swapColumns(i, j); in swapColumns()
1128 tableau.resizeVertically(getNumRows() - 1); in removeLastConstraintRowOrientation()
1144 if (tableau(row, col) != 0) in findAnyPivotRow()
1219 tableau.resizeHorizontally(getNumColumns() - 1); in undo()
1243 if (tableau(u.pos, col) == 0) in undo()
1297 tableau.resizeHorizontally(getNumColumns() + count); in appendVariable()
1325 return Fraction(tableau(row, 1), tableau(row, 0)); in computeRowOptimum()
1469 result.tableau.reserveRows(numCon); in makeProduct()
1500 unsigned resultRow = result.tableau.appendExtraRow(); in makeProduct()
1502 result.tableau(resultRow, col) = a.tableau(row, col); in makeProduct()
1511 unsigned resultRow = result.tableau.appendExtraRow(); in makeProduct()
1512 result.tableau(resultRow, 0) = b.tableau(row, 0); in makeProduct()
1513 result.tableau(resultRow, 1) = b.tableau(row, 1); in makeProduct()
1517 result.tableau(resultRow, offset + col) = b.tableau(row, col); in makeProduct()
1550 int64_t denom = tableau(u.pos, 0); in getRationalSample()
1551 sample.emplace_back(tableau(u.pos, 1), denom); in getRationalSample()
1582 int64_t denom = tableau(u.pos, 0); in getRationalSample()
1584 if (tableau(u.pos, 2) != denom) in getRationalSample()
1586 sample.emplace_back(tableau(u.pos, 1), denom); in getRationalSample()
1661 dualDenom = simplex.tableau(row, 0); in computeWidthAndDuals()
1692 dual.push_back(-simplex.tableau(row, simplex.con[i].pos)); in computeWidthAndDuals()
1694 dual.push_back(simplex.tableau(row, simplex.con[i + 1].pos)); in computeWidthAndDuals()
2107 os << tableau(row, col) << '\t'; in print()