code: def _ttr(self, kloc, left, right, cache):
          
          if isinstance(left, Dist):
              if isinstance(right, Dist):
                  raise StochasticallyDependentError(
                      "sum of distributions not feasible: "
                      "{} and {}".format(left, right)
                  )
          else:
              if not isinstance(right, Dist):
                  raise StochasticallyDependentError(
                      "recurrence coefficients for constants not feasible: "
                      "{}".format(left+right)
                  )
              left, right = right, left
  
          coeff0, coeff1 = evaluation.evaluate_recurrence_coefficients(
              left, kloc, cache=cache)
          return coeff0 + numpy.asarray(right), coeff1
docs: Three terms recursion coefficients.
  
          Example:
              >>> print(numpy.around(chaospy.Uniform().ttr([0, 1, 2, 3]), 4))
              [[ 0.5     0.5     0.5     0.5   ]
               [-0.      0.0833  0.0667  0.0643]]
              >>> print(numpy.around(chaospy.Add(chaospy.Uniform(), 2).ttr([0, 1, 2, 3]), 4))
              [[ 2.5     2.5     2.5     2.5   ]
               [-0.      0.0833  0.0667  0.0643]]
              >>> print(numpy.around(chaospy.Add(2, chaospy.Uniform()).ttr([0, 1, 2, 3]), 4))
              [[ 2.5     2.5     2.5     2.5   ]
               [-0.      0.0833  0.0667  0.0643]]
              >>> print(numpy.around(chaospy.Add(1, 1).ttr([0, 1, 2, 3]), 4)) # doctest: +IGNORE_EXCEPTION_DETAIL
              Traceback (most recent call last):
                  ...
              chaospy.distributions.baseclass.StochasticallyDependentError: recurrence ...