class_docstr: Binned univariate distribution designed as an nn.Module
  
  Arguments
  ----------
  bins_lower_bound: The lower bound of the bin edges
  bins_upper_bound: The upper bound of the bin edges
  nbins: The number of equidistance bins to allocate between `bins_lower_bound` and `bins_upper_bound`. Default value is 100.
  smoothing_indicator: The method of smoothing to perform on the bin probabilities
docstr: Inverse binned cdf of a single quantile `value`
docstr_tok: ["Inverse","binned","cdf","of","a","single","quantile","`","value","`"]
code: def inverse_binned_cdf(self, value):
      """
      Inverse binned cdf of a single quantile `value`
      """
      assert (
          value.shape.numel() == 1
      ), "inverse_binned_cdf() expects univariate"
      if value == 0.0:
          return self.bin_edges[0]
      if value == 1:
          return self.bin_edges[-1]
  
      vect_above = value - self.bins_cdf()[1:]
      vect_below = self.bins_cdf()[:-1] - value
  
      if (vect_above == 0).any():
          result = self.bin_edges[1:][vect_above == 0]
      elif (vect_below == 0).any():
          result = self.bin_edges[:-1][vect_below == 0]
      else:
          one_hot_edge_indicator = (
              vect_above * vect_below >= 0
          )  # .float()
          low = self.bin_edges[:-1][one_hot_edge_indicator]
          high = self.bin_edges[1:][one_hot_edge_indicator]
          value_relative = (
              value - self.bins_cdf()[:-1][one_hot_edge_indicator]
          )
          result = torch.distributions.uniform.Uniform(low, high).icdf(
              value_relative
          )
  
      return result
  
imports: from typing import Optional
  import numpy
  import torch
  import torch.nn
  import torch.nn.functional
  import torch.optim
  from .genpareto import GenPareto
label_desc: Use image node_id 13 for calling the Binned obj's underlying member method code with example usage: obj.inverse_binned_cdf(value) and returns: result, self, self