When I was writing my post on lemniscate functions yesterday, a line from the Wikipedia article seemed familiar for reasons I cannot place.

Defining a tangent-sum operator as *a* ⊕ *b* := tan(arctan *a* + arctan *b*) gives cl² *z* ⊕ sl² *z* = 1.

I feel like I’ve seen this tangent-sum used before, but I can’t remember where. Two near misses come to mind, but I don’t think either is the application I’m trying to remember.

The first near miss is the function

*f*(*t*) = arctan(*k* tan(*t*)).

I’ve written about this function here and here. This is a sort of inversion of the tangent-sum, swapping the roles of tangent and inverse tangent, and adding something to itself *k* times rather than adding *k* different things together.

The second near miss is a chapter in the book Inequalities by Hardy, Littlewood, and Pólya that looks at means of the form

φ^{−1}( Σ *p* φ(*a*) )

Here *a* is a list of non-negative numbers, *p* is a set of positive weights summing to 1. Various kinds of means have this form. For example, the *p*-means correspond to φ(*x*) = *x*^{p} and the geometric mean corresponds to φ(*x*) = log *x*. The same chapter also looks at sums where the weights are removed.

The tangent sum has the form above if we set φ(*x*) = arctan(*x*), but Hardy, Littlewood, and Pólya are primarily interested in functions φ that have properties that arctan doesn’t have, such as convexity or φ(*x*) tending to ∞ as *x* goes to 0 or as *x* goes to ∞.

Because of the sum angle identity for tangent, we could write the tangent-sum as simply

*a* ⊕ *b* = (*a* + *b*) / (1 − *ab*)

though this hides the φ^{−1}(φ(*a*) + φ(*b*)) structure.

The tangent-sum has some awkward features. For one thing, the sum of two finite numbers can be infinite. For example, 1 ⊕ 1 = ∞. Also, the sum of two positive numbers can be negative, such as 1 ⊕ 2 = −1. Hardy, Littlewood, and Pólya put the conditions on φ that they do in order to eliminate this kind of behavior.

The tangent-sum does have some nice properties however. It’s clearly commutative, and we can show it’s associative too by showing

(*a* ⊕ *b*) ⊕ *c* = tan(arctan *a* + arctan *b* + arctan *c*) = *a* ⊕ (*b* ⊕ *c*).

The general pattern when we apply ⊕ many times takes a while to become clear. If we add three terms we get

*a* ⊕ *b* ⊕ *c *= (*a* + *b* + *c* − *abc*) / (1 − *ab* − *bc* − *ac*).

If we add four terms, the numerator of *a* ⊕ *b* ⊕ *c* ⊕ *d* is

*a* + *b* + *c* + *d* − (*abc* + *abd* + *acd* + *bcd*)

and the denominator is

1 − (*ab* + *ac* + *ad* + *bc* + *bd* + *cd*) + *abcd*.

The general pattern is that numerator and denominator are both alternating sums. The numerator is the sum of all the terms, minus the sum of all distinct products of three of terms, plus the sum of all distinct products of five terms, etc. The denominator is the empty sum, 1, minus the sum of all distinct products of pairs of terms, plus the sum of all distinct products of four terms, etc.

To put it another way, the numerator is

*e*_{1} − *e*_{3} + *e*_{5} − …

and the denominator is

*e*_{0} − *e*_{2} + *e*_{4} − …

where *e*_{i} is the sum of all distinct products of *i* variables. A name for *e*_{i} is the *i*th elementary symmetric polynomial.

You could think of the numerator and denominator as infinite sums, even if you’re taking the tangent-sum of a finite number of arguments. Just pad your argument list with zeros and only the needed terms in the numerator and denominator will be non-zero. If you only have *n* non-zero arguments then *e*_{i} = 0 for *i* > *n* because every product in the definition of *e*_{i} will contain a zero term.

I don’t suppose you’re thinking of the velocity addition formula in special relativity? It can be written as tanh(arctanh(u) + arctanh(v)), when u and v are relative to the speed of light. This is another way of saying that rapidities are additive while velocities themselves are not.

The place you’ve seen it before might be the hyperbolic tangent sum as the velocity addition formula in special relativity: https://en.wikipedia.org/wiki/Velocity-addition_formula.

Machin’s formula for computing digits of pi comes to mind.