class_docstr: Barrier optimization problem:
      minimize fun(x) - barrier_parameter*sum(log(s))
      subject to: constr_eq(x)     = 0
                constr_ineq(x) + s = 0
code: def _compute_jacobian(self, J_eq, J_ineq, s):
      if self.n_ineq == 0:
          return J_eq
      else:
          if sps.issparse(J_eq) or sps.issparse(J_ineq):
              # It is expected that J_eq and J_ineq
              # are already `csr_matrix` because of
              # the way ``BoxConstraint``, ``NonlinearConstraint``
              # and ``LinearConstraint`` are defined.
              J_eq = sps.csr_matrix(J_eq)
              J_ineq = sps.csr_matrix(J_ineq)
              return self._assemble_sparse_jacobian(J_eq, J_ineq, s)
          else:
              S = np.diag(s)
              zeros = np.zeros((self.n_eq, self.n_ineq))
              # Convert to matrix
              if sps.issparse(J_ineq):
                  J_ineq = J_ineq.toarray()
              if sps.issparse(J_eq):
                  J_eq = J_eq.toarray()
              # Concatenate matrices
              return np.block([[J_eq, zeros], [J_ineq, S]])
  
imports: import scipy.sparse
  import numpy
  from .equality_constrained_sqp import equality_constrained_sqp
  from scipy.sparse.linalg import LinearOperator
label_desc: Use image node_id 11 for calling the BarrierSubproblem obj's underlying member method code with example usage: obj._compute_jacobian(J_eq, J_ineq, s) and returns: J_eq, self, np