Tested with SageMath version 10.7
sage --python -m venv --system-site-packages .venv
.venv/bin/pip install --upgrade pip
.venv/bin/pip install --no-build-isolation .. .venv/bin/activatefrom sage.all import PolynomialRing, QQ, NumberField
from sage.interfaces.magma_free import magma_free
from btquotients.btquotients import BTQuotient
R = PolynomialRing(QQ, names='x'); x = R.gen()
F = NumberField(x**2 - 97 , names='a'); a = F.gen()
P = F.primes_above(3)[0]
Nminus = Nplus = F.ideal(1)
X = BTQuotient(P, Nminus, Nplus, magma=magma_free)
X.compute_fundamental_domain()
X.plot_fundamental_domain().save("example_fundamental_domain.png")
X.plot().save("example_quotient.png")X.benchmark_are_equivalent(as_edges=False)pip install tqdm
First we ennumerate all candidates for Shimura curves up to a given genus.
You will be prompted to enter a degree and a genus bound.
A table will be written in table_uniformizations_shimura_curves/data/ in the jsonl format.
cd table_uniformizations_shimura_curves
python table_up_to_genus.py
Next we compute the fundamental domains for each row:
python compute_table_up_to_genus.py degree max_genus
The results obtained for genus up to 3 is listed in the following table

