parameters: (tck, mest=10)
docstring: Find the roots of a cubic B-spline.
  
      Given the knots (>=8) and coefficients of a cubic B-spline return the
      roots of the spline.
  
      Parameters
      ----------
      tck : tuple
          A tuple (t,c,k) containing the vector of knots,
          the B-spline coefficients, and the degree of the spline.
          The number of knots must be >= 8, and the degree must be 3.
          The knots must be a montonically increasing sequence.
      mest : int, optional
          An estimate of the number of zeros (Default is 10).
  
      Returns
      -------
      zeros : ndarray
          An array giving the roots of the spline.
  
      See also
      --------
      splprep, splrep, splint, spalde, splev
      bisplrep, bisplev
      UnivariateSpline, BivariateSpline
  
  
      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.
docstring_summary: Find the roots of a cubic B-spline.
docstring_tokens: Find the roots of a cubic B - spline .
function: def sproot(tck, mest=10):
      """
      Find the roots of a cubic B-spline.
  
      Given the knots (>=8) and coefficients of a cubic B-spline return the
      roots of the spline.
  
      Parameters
      ----------
      tck : tuple
          A tuple (t,c,k) containing the vector of knots,
          the B-spline coefficients, and the degree of the spline.
          The number of knots must be >= 8, and the degree must be 3.
          The knots must be a montonically increasing sequence.
      mest : int, optional
          An estimate of the number of zeros (Default is 10).
  
      Returns
      -------
      zeros : ndarray
          An array giving the roots of the spline.
  
      See also
      --------
      splprep, splrep, splint, spalde, splev
      bisplrep, bisplev
      UnivariateSpline, BivariateSpline
  
  
      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
      if k != 3:
          raise ValueError("sproot works only for cubic (k=3) splines")
      try:
          c[0][0]
          parametric = True
      except Exception:
          parametric = False
      if parametric:
          return list(map(lambda c, t=t, k=k, mest=mest:
                          sproot([t, c, k], mest), c))
      else:
          if len(t) < 8:
              raise TypeError("The number of knots %d>=8" % len(t))
          z, ier = _fitpack._sproot(t, c, k, mest)
          if ier == 10:
              raise TypeError("Invalid input data. "
                              "t1<=..<=t4<t5<..<tn-3<=..<=tn must hold.")
          if ier == 0:
              return z
          if ier == 1:
              warnings.warn(RuntimeWarning("The number of zeros exceeds mest"))
              return z
          raise TypeError("Unknown error")
function_tokens: def sproot ( tck , mest = 10 ) : t , c , k = tck if k != 3 : raise ValueError ( "sproot works only for cubic (k=3) splines" ) try : c [ 0 ] [ 0 ] parametric = True except Exception : parametric = False if parametric : return list ( map ( lambda c , t = t , k = k , mest = mest : sproot ( [ t , c , k ] , mest ) , c ) ) else : if len ( t ) < 8 : raise TypeError ( "The number of knots %d>=8" % len ( t ) ) z , ier = _fitpack . _sproot ( t , c , k , mest ) if ier == 10 : raise TypeError ( "Invalid input data. " "t1<=..<=t4<t5<..<tn-3<=..<=tn must hold." ) if ier == 0 : return z if ier == 1 : warnings . warn ( RuntimeWarning ( "The number of zeros exceeds mest" ) ) return z raise TypeError ( "Unknown error" )