code: def _spsolve_cpu_lowering(
      ctx, data, indices, indptr, b, tol, reorder
  ):
      del tol, reorder
      args = [data, indices, indptr, b]
  
      def _callback(data, indices, indptr, b, **kwargs):
          A = csr_matrix(
              (data, indices, indptr), shape=(b.size, b.size)
          )
          return (linalg.spsolve(A, b).astype(b.dtype),)
  
      result, _, _ = mlir.emit_python_callback(
          ctx,
          _callback,
          None,
          args,
          ctx.avals_in,
          ctx.avals_out,
          has_side_effect=False,
      )
      return result
  
imports: from __future__ import annotations
  from typing import Union, Callable
  import functools
  import jax
  import jax.numpy
  from jax.experimental import sparse
  from jax.interpreters import mlir
  from jax.interpreters import xla
  from jax._src import core
  from jax._src.interpreters import ad
  from jax._src.lib import gpu_solver
  import numpy
  from scipy.sparse import csr_matrix, linalg
label_desc: Use image node_id 15 for calling a global function with example usage: _spsolve_cpu_lowering(ctx, data, indices, indptr, b, tol, reorder) and returns: result, linalg