code: def uddc(udfunc, x, dx):
      
      x = ctypes.c_double(x)
      dx = ctypes.c_double(dx)
      isdescr = ctypes.c_int()
      libspice.uddc_c(udfunc, x, dx, ctypes.byref(isdescr))
      return bool(isdescr.value)
docs: SPICE private routine intended solely for the support of SPICE
      routines. Users should not call this routine directly due to the
      volatile nature of this routine.
  
      This routine calculates the derivative of 'udfunc' with respect
      to time for 'et', then determines if the derivative has a
      negative value.
  
      Use the @spiceypy.utils.callbacks.SpiceUDFUNS dectorator to wrap
      a given python function that takes one parameter (float) and
      returns a float. For example::
  
          @spiceypy.utils.callbacks.SpiceUDFUNS
          def udfunc(et_in):
              pos, new_et = spice.spkpos("MERCURY", et_in, "J2000", "LT+S", "MOON")
              return new_et
  
          deriv = spice.uddf(udfunc, et, 1.0)
  
      https://naif.jpl.nasa.gov/pub/naif/toolkit_docs/C/cspice/uddc_c.html
  
      :param udfunc: Name of the routine that computes the scalar value of interest.
      :type udfunc: ctypes.CFunctionType
      :param x: Independent variable of 'udfunc'.
      :type x: float
      :param dx: Interval from 'x' for derivative calculation.
      :type dx: float
      :return: Boolean indicating if the derivative is negative.
      :rtype: bool