code: def cumulative_distribution(self, X):
          
          self.check_fit()
  
          U, V = self.split_matrix(X)
  
          num = np.multiply(
              np.exp(np.multiply(-self.theta, U)) - 1,
              np.exp(np.multiply(-self.theta, V)) - 1
          )
          den = np.exp(-self.theta) - 1
  
          return -1.0 / self.theta * np.log(1 + num / den)
docs: Computes the cumulative distribution function for the copula, :math:`C(u, v)`
  
          Args:
              X: `np.ndarray`
  
          Returns:
              np.array: cumulative distribution