This is a search program for edge lengths of hybrid Archimedean tilings of the hyperbolic plane. The algorithm, in which vertex configurations are checked in ascending order of edge length, was conceived by Marek, who is active on the HyperRogue Discord. I have translated it into Rust for better performance.
On the Euclidean plane, we can make tessellations by putting 6 regular triangles around each vertex, or by putting 4 squares around each vertex, or 3 regular hexagons. If we put even more regular polygons around a vertex, this may form a tiling of the hyperbolic plane. The hyperbolic plane has constant negative curvature. For a specific configuration of regular polygons to tile the hyperbolic plane, the polygons' edge length must take on a specific value.
For a tiling with 
The interior angles 
Now consider some other tiling of the hyperbolic plane, where we fit 
We allow for 
In this program, given a vertex configuration 
For convenience, we define