docstr: Incomplete LU factorization of a sparse matrix.
  
  Args:
      a (cupyx.scipy.sparse.csr_matrix): Incomplete LU factorization of a
          sparse matrix, computed by `cusparse.csrilu02`.
docstr_tok: ["Incomplete","LU","factorization","of","a","sparse","matrix",".","Args",":","a","(","cupyx.scipy.sparse.csr_matrix",")",":","Incomplete","LU","factorization","of","a","sparse","matrix",",","computed","by","`","cusparse.csrilu02","`","."]
code: def __init__(self, a):
      """Incomplete LU factorization of a sparse matrix.
  
      Args:
          a (cupyx.scipy.sparse.csr_matrix): Incomplete LU factorization of a
              sparse matrix, computed by `cusparse.csrilu02`.
      """
      if not scipy_available:
          raise RuntimeError("scipy is not available")
      if not sparse.isspmatrix_csr(a):
          raise TypeError("a must be cupyx.scipy.sparse.csr_matrix")
  
      self.shape = a.shape
      self.nnz = a.nnz
      self.perm_r = None
      self.perm_c = None
      # TODO(anaruse): Computes tril and triu on GPU
      a = a.get()
      al = scipy.sparse.tril(a)
      al.setdiag(1.0)
      au = scipy.sparse.triu(a)
      self.L = sparse.csr_matrix(al.tocsr())
      self.U = sparse.csr_matrix(au.tocsr())
  
imports: import numpy
  import cupy
  from cupy import cublas
  from cupy.cuda import device
  from cupy.cuda import runtime
  from cupy.linalg import _util
  from cupyx.scipy import sparse
  from cupyx.scipy.sparse.linalg import _interface
  from cupyx.scipy.sparse.linalg._iterative import _make_system
  import warnings
label_desc: Use image node_id 1 to create a new CusparseLU object from inherited base classes: SuperLU with example: obj = CusparseLU(a)