def test_fields(bits_prec=200, degree=20): for census in [ snappy.OrientableCuspedCensus, snappy.OrientableClosedCensus ]: print('Fields of 100 manifolds in ', census) for manifold in census()[:100]: S = snap.tetrahedra_field_gens(manifold) Tr = snap.trace_field_gens(manifold) InvTr = snap.trace_field_gens(manifold) hol = snap.holonomy_matrix_entries(manifold) for kind, X in [('shapes', S), ('trace', Tr), ('invtrace', InvTr), ('hol', hol)]: K = X.find_field(bits_prec, degree) if K is None: print('Problem with', manifold, kind) else: if kind == 'shapes': # Field is a sage number field, shapes are polynomials field, numerical_root, shapes = K # Turn the polynomials expressing the shapes in the # root of the number field into expressions in the # number field shapes = [field(shape) for shape in shapes] if not _test_gluing_equations(manifold, shapes): print('Problem with', manifold, '(gluing equations violated)')
def test_ZHS(bits_prec=500, degree=20): for manifold in snappy.OrientableClosedCensus: if manifold.homology().order() == 1: T = snap.trace_field_gens(manifold) ans = T.find_field(bits_prec, degree, True) if ans: print(manifold, ans[0].polynomial()) else: print(manifold, ans)