class_docstr: Spliced Binned-Pareto univariate distribution.
  
  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.
  percentile_gen_pareto: The percentile of the distribution that is each tail. Default value is 0.05. NB: This symmetric percentile can still represent asymmetric upper and lower tails.
docstr: Inverse cdf of a single percentile `value`
docstr_tok: ["Inverse","cdf","of","a","single","percentile","`","value","`"]
code: def inverse_cdf(self, value):
      """
      Inverse cdf of a single percentile `value`
      """
      assert (
          value >= 0.0 and value <= 1.0
      ), "percentile value must be between 0 and 1 inclusive"
  
      if value < self.percentile_gen_pareto:
          adjusted_percentile = 1 - (value / self.percentile_gen_pareto)
          icdf_value = self.inverse_binned_cdf(
              self.percentile_gen_pareto
          ) - self.lower_gen_pareto.icdf(adjusted_percentile)
      elif value <= 1 - self.percentile_gen_pareto:
          icdf_value = self.inverse_binned_cdf(value)
      else:
          adjusted_percentile = (
              value - (1.0 - self.percentile_gen_pareto)
          ) / self.percentile_gen_pareto
          icdf_value = self.upper_gen_pareto.icdf(
              adjusted_percentile
          ) + self.inverse_binned_cdf(1 - self.percentile_gen_pareto)
  
      return icdf_value
  
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 6 for calling the SplicedBinnedPareto obj's underlying member method code with example usage: obj.inverse_cdf(value) and returns: icdf_value