Generation of Apollonian gaskets. Any three mutually tangent
circles uniquely determine exactly two others which are mutually
tangent to all three. This process can be repeated, generating a
fractal circle packing.

Descartes' Theorem

Descartes' Theorem states that if b1, b2, b3 and b4 are
the bends of four mutually tangent circles, then

b1^2 + b2^2 + b3^2 + b4^2 = 1/2 * (b1 + b2 + b3 + b4)^2.

Surprisingly, if we replace each of the bi with the product
of bi and the center of the corresponding circle (represented
as a complex number), the equation continues to hold! (See the
paper referenced at the top of the module.)

descartes [b1,b2,b3] solves for b4, returning both solutions.
Notably, descartes works for any instance of Floating, which
includes both Double (for bends), Complex Double (for
bend/center product), and Circle (for both at once).

If we have four mutually tangent circles we can choose one of
them to replace; the remaining three determine exactly one other
circle which is mutually tangent. However, in this situation
there is no need to apply descartes again, since the two
solutions b4 and b4' satisfy

b4 + b4' = 2 * (b1 + b2 + b3)

Hence, to replace b4 with its dual, we need only sum the other
three, multiply by two, and subtract b4. Again, this works for
bends as well as bend/center products.

Apollonian gasket generation

Given a threshold radius and a list of four mutually tangent
circles, generate the Apollonian gasket containing those circles.
Stop the recursion when encountering a circle with an (unsigned)
radius smaller than the threshold.