code: def cspline2d(signal, lamb=0.0, precision=-1.0):
      """
      Coefficients for 2-D cubic (3rd order) B-spline.
  
      Return the third-order B-spline coefficients over a regularly spaced
      input grid for the two-dimensional input image.
  
      Parameters
      ----------
      input : ndarray
          The input signal.
      lamb : float
          Specifies the amount of smoothing in the transfer function.
      precision : float
          Specifies the precision for computing the infinite sum needed to apply
          mirror-symmetric boundary conditions.
  
      Returns
      -------
      output : ndarray
          The filtered signal.
      """
      if lamb <= 1 / 144.0:
          # Normal cubic spline
          r = -2 + np.sqrt(3.0)
          out = _symiirorder1_nd(
              signal, -r * 6.0, r, precision=precision, axis=-1
          )
          out = _symiirorder1_nd(
              out, -r * 6.0, r, precision=precision, axis=0
          )
          return out
  
      r, omega = compute_root_from_lambda(lamb)
      out = _symiirorder2_nd(
          signal, r, omega, precision=precision, axis=-1
      )
      out = _symiirorder2_nd(out, r, omega, precision=precision, axis=0)
      return out
  
imports: import cupy
  import cupyx.scipy.ndimage
  from cupyx.scipy.signal._iir_utils import apply_iir_sos
  from cupyx.scipy.signal._splines import _symiirorder1_nd, _symiirorder2_nd
  from cupyx.scipy.interpolate._bspline import BSpline
  import numpy
label_desc: Use image node_id 15 for calling a global function with example usage: cspline2d(signal, lamb, precision) and returns: out, out