code: def partial_derivative(self, X, y=0):
          
          self.check_fit()
  
          U, V = self.split_matrix(X)
  
          if self.theta == 0:
              return V
  
          else:
              num = np.multiply(self._g(U), self._g(V)) + self._g(U)
              den = np.multiply(self._g(U), self._g(V)) + self._g(1)
              return (num / den) - y
docs: Compute partial derivative :math:`C(u|v)` of cumulative distribution.
  
          Args:
              X: `np.ndarray`
              y: `float`
  
          Returns:
              np.ndarray