docs: def lgrind(xvals, yvals, x):
      """
      Evaluate a Lagrange interpolating polynomial for a specified
      set of coordinate pairs, at a specified abscissa value.
      Return the value of both polynomial and derivative.
      
      https://naif.jpl.nasa.gov/pub/naif/toolkit_docs/C/cspice/lgrind_c.html
  
      :param xvals: Abscissa values.
      :type xvals: N-Element Array of floats
      :param yvals: Ordinate values.
      :type yvals: N-Element Array of floats
      :param x: Point at which to interpolate the polynomial.
      :type x: float
      :return: Polynomial value at x, Polynomial derivative at x.
      :rtype: tuple
      """
      n = ctypes.c_int(len(xvals))
      xvals = stypes.toDoubleVector(xvals)
      yvals = stypes.toDoubleVector(yvals)
      work  = stypes.emptyDoubleVector(n.value*2)
      x  = ctypes.c_double(x)
      p  = ctypes.c_double(0)
      dp = ctypes.c_double(0)
      libspice.lgrind_c(n, xvals, yvals, work, x, p, dp)
      return p.value, dp.value