code: def lu_sparse_matrix(a):
      a = naked(a)
      a = a.tocsc()
      super_lu = splinalg.splu(
          a,
          permc_spec="NATURAL",
          diag_pivot_thresh=0,
          options={"SymmetricMode": True},
      )
      l_ = super_lu.L
      u = super_lu.U
      p = sps.lil_matrix(a.shape)
      p[super_lu.perm_r.copy(), np.arange(a.shape[1])] = 1
      return (
          SparseMatrix(p),
          SparseMatrix(l_),
          SparseMatrix(u),
      )
  
imports: import numpy
  from collections.abc import Iterable
  from typing import List
  from .core import issparse, get_array_module, cp, cps, get_sparse_module, naked, sps, splinalg
  from .array import SparseNDArray, SparseArray
label_desc: Use image node_id 7 for calling a global function with example usage: lu_sparse_matrix(a) and returns: SparseMatrix,  SparseMatrix,  SparseMatrix