Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
Primal simplex. Only for problems whose constraints are all <= with a non-negative
right-hand side after normalization (the slacks give the starting basis).
Dual simplex. Every constraint is written as <= (a >= is multiplied by -1), so
the slacks give a starting basis that may be infeasible (negative right-hand sides)
but must be dual feasible: non-negative costs when minimizing, non-positive when
maximizing, and no equality constraints. Otherwise
Error::NotDualFeasible is returned.