docs: def crps_quadrature(x, cdf_or_dist, xmin=None, xmax=None, tol=1e-6):
      """
      Compute the continuously ranked probability score (CPRS) for a given
      forecast distribution (cdf) and observation (x) using numerical quadrature.
  
      This implementation allows the computation of CRPS for arbitrary forecast
      distributions. If gaussianity can be assumed ``crps_gaussian`` is faster.
  
      Parameters
      ----------
      x : np.ndarray
          Observations associated with the forecast distribution cdf_or_dist
      cdf_or_dist : callable or scipy.stats.distribution
          Function which returns the the cumulative density of the
          forecast distribution at value x.  This can also be an object with
          a callable cdf() method such as a scipy.stats.distribution object.
      xmin : np.ndarray or scalar
          The lower bounds for integration, this is required to perform
          quadrature.
      xmax : np.ndarray or scalar
          The upper bounds for integration, this is required to perform
          quadrature.
      tol : float , optional
          The desired accuracy of the CRPS, larger values will speed
          up integration. If tol is set to None, bounds errors or integration
          tolerance errors will be ignored.
  
      Returns
      -------
      crps : np.ndarray
          The continuously ranked probability score of an observation x
          given forecast distribution.
      """
      return _crps_cdf(x, cdf_or_dist, xmin, xmax, tol)