# Linear Programming

- [Introduction](introduction.md)

- [Explicit LP Solving Functions](instant-lp.md)

  - [`MaximalSolution(LHS, relations, RHS, objective): Mtrx, Mtrx, Mtrx, Mtrx → Mtrx, RngIntElt`](instant-lp.md#function-maximalsolution-mtrx-mtrx-mtrx-mtrx)

  - [`MinimalSolution(LHS, relations, RHS, objective): Mtrx, Mtrx, Mtrx, Mtrx → Mtrx, RngIntElt`](instant-lp.md#function-minimalsolution-mtrx-mtrx-mtrx-mtrx)

  - [`MaximalIntegerSolution(LHS, relations, RHS, objective): Mtrx, Mtrx, Mtrx, Mtrx → Mtrx, RngIntElt`](instant-lp.md#function-maximalintegersolution-mtrx-mtrx-mtrx-mtrx)

  - [`MinimalIntegerSolution(LHS, relations, RHS, objective): Mtrx, Mtrx, Mtrx, Mtrx → Mtrx, RngIntElt`](instant-lp.md#function-minimalintegersolution-mtrx-mtrx-mtrx-mtrx)

  - [`MaximalZeroOneSolution(LHS, relations, RHS, objective): Mtrx, Mtrx, Mtrx, Mtrx → Mtrx, RngIntElt`](instant-lp.md#function-maximalzeroonesolution-mtrx-mtrx-mtrx-mtrx)

  - [`MinimalZeroOneSolution(LHS, relations, RHS, objective): Mtrx, Mtrx, Mtrx, Mtrx → Mtrx, RngIntElt`](instant-lp.md#function-minimalzeroonesolution-mtrx-mtrx-mtrx-mtrx)

  - [`Example: Explicit LP Solutions One`](instant-lp.md#example-ex-807d41)

  - [`Example: Explicit LP Solutions Two`](instant-lp.md#example-ex-33e772)

- [Creation of LP objects](creation.md)

  - [`LPProcess(R, n): Rng, RngIntElt → LP`](creation.md#function-lpprocess-rng-rngintelt)

  - [`Example: LP Creation`](creation.md#example-ex-a6b954)

- [Operations on LP objects](operations.md)

  - [`AddConstraints(L, lhs, rhs): LP, Mtrx, Mtrx`](operations.md#function-addconstraints-lp-mtrx-mtrx)

  - [`NumberOfConstraints(L): LP → RngIntElt`](operations.md#function-numberofconstraints-lp)

  - [`NumberOfVariables(L): LP → RngIntElt`](operations.md#function-numberofvariables-lp)

  - [`EvaluateAt(L, p): LP, Mtrx → RngIntElt`](operations.md#function-evaluateat-lp-mtrx)

  - [`Constraint(L, n): LP, RngIntElt → Mtrx, Mtrx, RngIntElt`](operations.md#function-constraint-lp-rngintelt)

  - [`IntegerSolutionVariables(L): LP → SeqEnum`](operations.md#function-integersolutionvariables-lp)

  - [`ObjectiveFunction(L): LP → Mtrx`](operations.md#function-objectivefunction-lp)

  - [`IsMaximisingFunction(L): LP → BoolElt`](operations.md#function-ismaximisingfunction-lp)

  - [`RemoveConstraint(L, n): LP, RngIntElt`](operations.md#function-removeconstraint-lp-rngintelt)

  - [`SetIntegerSolutionVariables(L, I, m): LP, SeqEnum[RngIntElt], BoolElt`](operations.md#function-setintegersolutionvariables-lp-seqenum-rngintelt-boolelt)

  - [`SetLowerBound(L, n, b): LP, RngIntElt, RngElt`](operations.md#function-setlowerbound-lp-rngintelt-rngelt)

  - [`SetMaximiseFunction(L, m): LP, BoolElt`](operations.md#function-setmaximisefunction-lp-boolelt)

  - [`SetObjectiveFunction(L, F): LP, Mtrx`](operations.md#function-setobjectivefunction-lp-mtrx)

  - [`SetUpperBound(L, n, b): LP, RngIntElt, RngElt`](operations.md#function-setupperbound-lp-rngintelt-rngelt)

  - [`Solution(L): LP → Mtrx, RngIntElt`](operations.md#function-solution-lp)

  - [`UnsetBounds(L): LP`](operations.md#function-unsetbounds-lp)

  - [`Example: Filling LP Object`](operations.md#example-ex-b5bf57)
