ically well-behaved.
pc : bool
    Leave ``True`` if the predictor-corrector method of Mehrota is to be
    used. This is almost always (if not always) beneficial.
ip : bool
    Set to ``True`` if the improved initial point suggestion due to [4]_
    Section 4.3 is desired. It's unclear whether this is beneficial.
permc_spec : str (default = 'MMD_AT_PLUS_A')
    (Has effect only with ``sparse = True``, ``lstsq = False``, ``sym_pos =
    True``.) A matrix is factorized in each iteration of the algorithm.
    This option specifies how to permute the columns of the matrix for
    sparsity preservation. Acceptable values are:

    - ``NATURAL``: natural ordering.
    - ``MMD_ATA``: minimum degree ordering on the structure of A^T A.
    - ``MMD_AT_PLUS_A``: minimum degree ordering on the structure of A^T+A.
    - ``COLAMD``: approximate minimum degree column ordering.

    This option can impact the convergence of the
    interior point algorithm; test different values to determine which
    performs best for your problem. For more information, refer to
    ``scipy.sparse.linalg.splu``.
callback : callable, optional
    If a callback function is provided, it will be called within each
    iteration of the algorithm. The callback function must accept a single
    `scipy.optimize.OptimizeResult` consisting of the following fields:

        x : 1-D array
            Current solution vector
        fun : float
            Current value of the objective function
        success : bool
            True only when an algorithm has completed successfully,
            so this is always False as the callback function is called
            only while the algorithm is still iterating.
        slack : 1-D array
            The values of the slack variables. Each slack variable
            corresponds to an inequality constraint. If the slack is zero,
            the corresponding constraint is active.
        con : 1-D array
            The (nominally zero) residuals of the equality constraints,
            that is, ``b - A_eq @ x``
        phase : int
            The phase of the algorithm being executed. This is always
            1 for the interior-point method because it has only one phase.
        status : int
            For revised simplex, this is always 0 because if a different
            status is detected, the algorithm terminates.
        nit : int
            The number of iterations performed.
        message : str
            A string descriptor of the exit status of the optimization.
postsolve_args : tuple
    Data needed by _postsolve to convert the solution to the standard-form
    problem into the solution to the original problem.

Returns
-------
x_hat : float
    Solution vector (for standard form problem).
status : int
    An integer representing the exit status of the optimization::

     0 : Optimization terminated successfully
     1 : Iteration limit reached
     2 : Problem appears to be infeasible
     3 : Problem appears to be unbounded
     4 : Serious numerical difficulties encountered

message : str
    A string descriptor of the exit status of the optimization.
iteration : int
    The number of iterations taken to solve the problem

References
----------
.. [4] Andersen, Erling D., and Knud D. Andersen. "The MOSEK interior point
       optimizer for linear programming: an implementation of the
       homogeneous algorithm." High performance optimization. Springer US,
       2000. 197-232.
.. [6] Freund, Robert M. "Primal-Dual Interior-Point Methods for Linear
       Programming based on Newton's Method." Unpublished Course Notes,
       March 2004. Available 2/25/2017 at:
       https://ocw.mit.edu/courses/sloan-school-of-management/15-084j-nonlinear-programming-spring-2004/lecture-notes/lec14_int_pt_mthd.pdf

r