InvertAround#

InvertAround(packing, k, smallCircles=None)#

Invert so that the specified circle surrounds all the others. Searches for the inversion center that maximizes the minimum radius.

This can be expressed as a quasiconvex program, but in a related hyperbolic space, so rather than applying QCP methods it seems simpler to use a numerical hill-climbing approach, relying on the theory of QCP to tell us there are no local maxima to get stuck in.

If the smallCircles argument is given, the optimization for the minimum radius circle will look only at these circles