tfp.substrates.numpy.math.atan_difference

Difference of arctan(x) and arctan(y).

Computes arctan(x) - arctan(y) avoiding catastrophic cancellation. This is by resorting to the identity:

arctan(x) - arctan(y) = arctan((x - y) / (1 + x * y)) +
                        pi * sign(x) * 1_{x * y < -1)

where 1_A is the indicator function on the set A.

For a derivation of this fact, see [1].

References

[1] De Stefano, Sum of Arctangents https://sites.google.com/site/micdestefano/mathematics/trigonometry/sum-of-arctangents

x Floating-point Tensor. Should be broadcastable with y.
y Floating-point Tensor. Should be broadcastable with x.
name Optional Python str naming the operation.

z Tensor of same shape and dtype as x and y.