code: def splev(x, tck, der=0, ext=0):
      """
      Evaluate a B-spline or its derivatives.
  
      Given the knots and coefficients of a B-spline representation, evaluate
      the value of the smoothing polynomial and its derivatives.  This is a
      wrapper around the FORTRAN routines splev and splder of FITPACK.
  
      Parameters
      ----------
      x : array_like
          An array of points at which to return the value of the smoothed
          spline or its derivatives.  If `tck` was returned from `splprep`,
          then the parameter values, u should be given.
      tck : tuple
          A sequence of length 3 returned by `splrep` or `splprep` containing
          the knots, coefficients, and degree of the spline.
      der : int, optional
          The order of derivative of the spline to compute (must be less than
          or equal to k).
      ext : int, optional
          Controls the value returned for elements of ``x`` not in the
          interval defined by the knot sequence.
  
          * if ext=0, return the extrapolated value.
          * if ext=1, return 0
          * if ext=2, raise a ValueError
          * if ext=3, return the boundary value.
  
          The default value is 0.
  
      Returns
      -------
      y : ndarray or list of ndarrays
          An array of values representing the spline function evaluated at
          the points in ``x``.  If `tck` was returned from `splprep`, then this
          is a list of arrays representing the curve in N-dimensional space.
  
      See Also
      --------
      splprep, splrep, sproot, spalde, splint
      bisplrep, bisplev
  
      References
      ----------
      .. [1] C. de Boor, "On calculating with b-splines", J. Approximation
          Theory, 6, p.50-62, 1972.
      .. [2] M.G. Cox, "The numerical evaluation of b-splines", J. Inst. Maths
          Applics, 10, p.134-149, 1972.
      .. [3] P. Dierckx, "Curve and surface fitting with splines", Monographs
          on Numerical Analysis, Oxford University Press, 1993.
  
      """
      t, c, k = tck
      try:
          c[0][0]
          parametric = True
      except Exception:
          parametric = False
      if parametric:
          return list(
              map(
                  lambda c, x=x, t=t, k=k, der=der: splev(
                      x, [t, c, k], der, ext
                  ),
                  c,
              )
          )
      else:
          if not (0 <= der <= k):
              raise ValueError("0<=der=%d<=k=%d must hold" % (der, k))
          if ext not in (0, 1, 2, 3):
              raise ValueError("ext = %s not in (0, 1, 2, 3) " % ext)
  
          x = asarray(x)
          shape = x.shape
          x = atleast_1d(x).ravel()
          y, ier = _fitpack._spl_(x, der, t, c, k, ext)
  
          if ier == 10:
              raise ValueError("Invalid input data")
          if ier == 1:
              raise ValueError("Found x value not in the domain")
          if ier:
              raise TypeError("An error occurred")
  
          return y.reshape(shape)
  
file_path: catboost/contrib/python/scipy/py2/scipy/interpolate/_fitpack_impl.py
imports: from __future__ import division, print_function, absolute_import
  import warnings
  import numpy
  from .None import _fitpack
  from numpy import atleast_1d, array, ones, zeros, sqrt, ravel, transpose, empty, iinfo, intc, asarray
  from .None import dfitpack
label_desc: Use image node_id 4 for calling a global function with example usage: splev(x, tck, der, ext) and returns: list, y