# scipy.optimize.LinearConstraint

class scipy.optimize.LinearConstraint(A, lb=-inf, ub=inf, keep_feasible=False)

  Linear constraint on the variables.

  The constraint has the general inequality form:

      lb <= A.dot(x) <= ub

  Here the vector of independent variables x is passed as ndarray of shape (n,) and the matrix A has shape (m, n).

  It is possible to use equal bounds to represent an equality constraint or infinite bounds to represent a one-sided constraint.

  Parameters:
    A{array_like, sparse matrix}, shape (m, n)

      Matrix defining the constraint.

    lb, ub dense array_like, optional

      Lower and upper limits on the constraint. Each array must have the shape (m,) or be a scalar, in the latter case a bound will be the same for all components of the constraint. Use `np.inf` with an appropriate sign to specify a one-sided constraint. Set components of lb and ub equal to represent an equality constraint. Note that you can mix constraints of different types: interval, one-sided or equality, by setting different components of lb and ub as necessary. Defaults to `lb = -np.inf` and `ub = np.inf` (no limits).

    keep_feasible dense array_like of bool, optional

      Whether to keep the constraint components feasible throughout iterations. A single value set this property for all components. Default is False. Has no effect for equality constraints.

  Methods

  `residual`(x) | Calculate the residual between the constraint function and the limits