code: def insert(x, tck, m=1, per=0):
      """
      Insert knots into a B-spline.
  
      Given the knots and coefficients of a B-spline representation, create a
      new B-spline with a knot inserted `m` times at point `x`.
      This is a wrapper around the FORTRAN routine insert of FITPACK.
  
      Parameters
      ----------
      x (u) : array_like
          A 1-D point at which to insert a new knot(s).  If `tck` was returned
          from ``splprep``, then the parameter values, u should be given.
      tck : tuple
          A tuple (t,c,k) returned by ``splrep`` or ``splprep`` containing
          the vector of knots, the B-spline coefficients,
          and the degree of the spline.
      m : int, optional
          The number of times to insert the given knot (its multiplicity).
          Default is 1.
      per : int, optional
          If non-zero, the input spline is considered periodic.
  
      Returns
      -------
      tck : tuple
          A tuple (t,c,k) containing the vector of knots, the B-spline
          coefficients, and the degree of the new spline.
          ``t(k+1) <= x <= t(n-k)``, where k is the degree of the spline.
          In case of a periodic spline (``per != 0``) there must be
          either at least k interior knots t(j) satisfying ``t(k+1)<t(j)<=x``
          or at least k interior knots t(j) satisfying ``x<=t(j)<t(n-k)``.
  
      Notes
      -----
      Based on algorithms from [1]_ and [2]_.
  
      References
      ----------
      .. [1] W. Boehm, "Inserting new knots into b-spline curves.",
          Computer Aided Design, 12, p.199-201, 1980.
      .. [2] 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:
          cc = []
          for c_vals in c:
              tt, cc_val, kk = insert(x, [t, c_vals, k], m)
              cc.append(cc_val)
          return (tt, cc, kk)
      else:
          tt, cc, ier = _fitpack._insert(per, t, c, k, x, m)
          if ier == 10:
              raise ValueError("Invalid input data")
          if ier:
              raise TypeError("An error occurred")
          return (tt, cc, k)
  
file_path: catboost/contrib/python/scipy/py3/scipy/interpolate/_fitpack_impl.py
imports: import warnings
  import numpy
  from .None import _fitpack
  from numpy import atleast_1d, array, ones, zeros, sqrt, ravel, transpose, empty, iinfo, asarray
  from .None import dfitpack
label_desc: Use image node_id 11 for calling a global function with example usage: insert(x, tck, m, per) and returns: tt,  cc,  kk, tt,  cc,  k