Gaussian Elimination algorithm #
The first step of Linarith.SimplexAlgorithm.findPositiveVector
is finding initial feasible
solution which is done by standard Gaussian Elimination algorithm implemented in this file.
@[reducible, inline]
The monad for the Gaussian Elimination algorithm.
Equations
Instances For
Finds the first row starting from the current row with nonzero element in current column.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Swaps two rows.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Divides row by coef
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Implementation of getTable
in GaussM
monad.
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Linarith.SimplexAlgorithm.Gauss.getTable
{n : Nat}
{m : Nat}
(A : Linarith.SimplexAlgorithm.Matrix n m)
:
Given matrix A
, solves the linear equation A x = 0
and returns the solution as a table where
some variables are free and others (basic) variable are expressed as linear combinations of the free
ones.
Equations
- Linarith.SimplexAlgorithm.Gauss.getTable A = (do let __do_lift ← StateT.run Linarith.SimplexAlgorithm.Gauss.getTableImp A pure __do_lift.fst).run