code: def _ppf(self, q, left, right, cache):
          
          if isinstance(left, Dist) and left in cache:
              left = cache[left]
          if isinstance(right, Dist) and right in cache:
              right = cache[right]
  
          if isinstance(left, Dist):
              if isinstance(right, Dist):
                  raise StochasticallyDependentError(
                      "under-defined distribution {} or {}".format(left, right))
          elif not isinstance(right, Dist):
              raise StochasticallyDependentError(
                  "truncated variable indirectly depends on underlying variable")
          else:
              left = (numpy.array(left).T*numpy.ones(q.shape).T).T
              uloc = evaluation.evaluate_forward(right, left)
              return evaluation.evaluate_inverse(right, q*(1-uloc)+uloc, cache=cache)
  
          right = (numpy.array(right).T*numpy.ones(q.shape).T).T
          uloc = evaluation.evaluate_forward(left, right, cache=cache.copy())
          return evaluation.evaluate_inverse(left, q*uloc, cache=cache)
docs: Point percentile function.
  
          Example:
              >>> print(chaospy.Uniform().inv([0.1, 0.2, 0.9]))
              [0.1 0.2 0.9]
              >>> print(chaospy.Trunc(chaospy.Uniform(), 0.4).inv([0.1, 0.2, 0.9]))
              [0.04 0.08 0.36]
              >>> print(chaospy.Trunc(0.6, chaospy.Uniform()).inv([0.1, 0.2, 0.9]))
              [0.64 0.68 0.96]