Darmon Points¶
For installation and basic usage instructions please see the main Github repository (https://github.com/mmasdeu/darmonpoints).
The darmonpoints package can compute many different types of what is known as Darmon points. These are known as Stark-Heegner points in some literature, and originated in [Darmon]. Subsequent generalizations were introduced by [Greenberg] and [Trifkovic]. This has been generalized by [GMS1] to elliptic curves defined over number fields of arbitrary signature. Darmon points are attached to triples (F,E,K), where F is a number field, E/F is an elliptic curve defined over F, and K/F is a quadratic extension. These triples must satisfy certain conditions for Darmon points to be attached to them. The article [GMS1] contains an overview of all of this. We include also a variation used in [KP].
The darmonpoints package can also compute equations for some elliptic curves E/F defined over number fields F, as long as certain conditions are satisfied. Namely:
- F has narrow class number 1. 
- if N is the conductor of the elliptic curve, it must admit a factorization of the form N = PDM, where: - P, D and M are relative coprime. 
- P is a prime ideal of F of prime norm. 
- D is the discriminant of a quaternion algebra over F which is split at only one infinite place. 
 
Finally, we include the module padicperiods, which allows for the computation of p-adic periods attached to two-dimensional components of the cohomology of the same arithmetic groups, and which has allowed us to find the corresponding abelian surfaces in some cases (see [GM]).
H.Darmon. Integration on Hp x H and arithmetic applications. Annals of Math.
M.Greenberg. Stark-Heegner points and the cohomology of quaternionic Shimura varieties. Duke Math.
X.Guitart, M.Masdeu. Periods of modular GL2-type abelian varieties and p-adic integration. Experimental Mathematics.
X.Guitart, M.Masdeu, M.H.Sengun. Darmon points on elliptic curves over number fields of arbitrary signature. Proc. LMS.
X.Guitart, M.Masdeu, M.H.Sengun. Uniformization of modular elliptic curves via p-adic methods. Journal of Algebra.
A.Pacetti, D.Kohen (with an appendix by M.Masdeu) On Heegner points for primes of additive reduction ramifying in the base field. Transactions of the AMS.
M.Trifkovic. Stark-Heegner points on elliptic curves defined over imaginary quadratic fields. Duke Math.
This work is licensed under a Creative Commons Attribution-Share Alike 3.0 License.
High level functionality¶
- Darmon points
- Darmon-Vonk points
- Curve finding
- p-adic periods- HalfPeriodsInTermsOfLambdas()
- I2_inv_from_xvec()
- I2_inv_padic_from_half_periods()
- I2_inv_padic_from_xvec()
- Theta()
- Thetas()
- absolute_igusa_padic_from_half_periods()
- absolute_igusa_padic_from_xvec()
- all_possible_ordmats()
- all_possible_qords()
- build_Lambdalist_from_AB()
- change_period_logs()
- check_absoluteinvs()
- check_cheatjs()
- check_generic()
- check_listI10()
- compare_AB_periods()
- compute_lvec_and_Mlist()
- compute_twisted_jacobian_data()
- euler_factor_twodim()
- euler_factor_twodim_tn()
- evaluate_twisted_jacobian_matrix()
- find_igusa_invariants()
- find_igusa_invariants_from_AB()
- find_initial_approx()
- find_kadziela_matrices()
- frobenius_polynomial()
- generate_listI10()
- generate_matlists()
- get_pseudo_orthonormal_homology()
- guess_equation()
- igusa_clebsch_absolute_from_half_periods()
- igusa_clebsch_absolute_from_xvec()
- igusa_clebsch_from_half_periods()
- igusa_clebsch_from_xvec()
- j1_inv_from_xvec()
- j1_inv_padic_from_half_periods()
- j1_inv_padic_from_xvec()
- jacobian_matrix()
- lambdavec()
- lambdavec_padic()
- left_multiply_multiplicative()
- load_lvec_and_Mlist()
- multiplicative_scalar_product()
- normalize_periods()
- p_adic_l_invariant()
- p_adic_l_invariant_additive()
- precompute_powers()
- qlogs_from_Lp_and_ords()
- recognize_invariant()
- right_multiply_multiplicative()
- take_to_Qp()
- teichmuller_system()
- xvec()
- xvec_padic()
 
- Plectic points- PlecticGroup()
- PlecticGroup_class- PlecticGroup_class.base_field()
- PlecticGroup_class.compute_presentation_GG()
- PlecticGroup_class.compute_presentation_GS()
- PlecticGroup_class.construct_EV_dict()
- PlecticGroup_class.construct_VE_dict()
- PlecticGroup_class.construct_edge_reps()
- PlecticGroup_class.edge_from_quaternion()
- PlecticGroup_class.embeddings()
- PlecticGroup_class.get_BT_reps()
- PlecticGroup_class.get_Up_reps_bianchi()
- PlecticGroup_class.get_covering()
- PlecticGroup_class.get_degeneration()
- PlecticGroup_class.get_edge_rep()
- PlecticGroup_class.prime()
- PlecticGroup_class.quaternion_algebra()
- PlecticGroup_class.reduce_in_amalgam()
- PlecticGroup_class.small_group()
- PlecticGroup_class.use_shapiro()
- PlecticGroup_class.vert_depth()
 
- additive_integral()
- check_is_cycle()
- compute_edge_to_eqs()
- compute_indeps_parallel()
- compute_large_system_sparse_parallel()
- compute_plectic_point()
- do_twist()
- evaluate_HC()
- find_coboundaries()
- get_cycle()
- get_edge_list()
- get_nu0()
- get_nu1()
- get_vertex_list()
- lift_to_HC()
- op_edge_adj()
- riemann_sum()
- riemann_sum_parallel()
- sample_point()
 
- Schottky groups- Ball
- Balls
- NeighborJoiningTree
- PreSchottkyGroup
- SchottkyGroup- SchottkyGroup.a_point()
- SchottkyGroup.balls()
- SchottkyGroup.find_equivalent_divisor()
- SchottkyGroup.find_point()
- SchottkyGroup.gens_extended()
- SchottkyGroup.in_fundamental_domain()
- SchottkyGroup.in_which_ball()
- SchottkyGroup.matrix_to_element()
- SchottkyGroup.parameters()
- SchottkyGroup.period()
- SchottkyGroup.period_matrix()
- SchottkyGroup.period_naive()
- SchottkyGroup.test_fundamental_domain()
- SchottkyGroup.theta()
- SchottkyGroup.to_fundamental_domain()
- SchottkyGroup.u_function()
- SchottkyGroup.word_problem()
 
- SchottkyGroup_abstract- SchottkyGroup_abstract.all_elements_up_to_length()
- SchottkyGroup_abstract.base_field()
- SchottkyGroup_abstract.base_ring()
- SchottkyGroup_abstract.element_to_matrix()
- SchottkyGroup_abstract.enumerate_group_elements()
- SchottkyGroup_abstract.generators()
- SchottkyGroup_abstract.genus()
- SchottkyGroup_abstract.group()
- SchottkyGroup_abstract.inverse_generators()
- SchottkyGroup_abstract.theta_derivative_naive()
- SchottkyGroup_abstract.theta_naive()
- SchottkyGroup_abstract.uniformizer()
 
- all_elements_up_to_length()
- choose_leaf()
- cross_ratio()
- enumerate_group_elements()
- find_eigenvector_matrix()
- find_parameter()
- find_parameter_new()
- four_point_configuration()
- four_point_configuration_works()
- hash_vertex()
- invert_word()
- leaf()
- reduce_word()
- test_fundamental_domain()
- uniq()
 
Arithmetic Groups¶
- Arithmetic group elements- ArithGroupElement- ArithGroupElement.acton()
- ArithGroupElement.check_consistency()
- ArithGroupElement.conjugate_by()
- ArithGroupElement.embed()
- ArithGroupElement.find_bounding_cycle()
- ArithGroupElement.is_one()
- ArithGroupElement.is_scalar()
- ArithGroupElement.is_trivial_in_abelianization()
- ArithGroupElement.matrix()
- ArithGroupElement.quaternion_rep()
- ArithGroupElement.size()
- ArithGroupElement.word_rep()
 
 
- Non-split Cartan
- Arithmetic group- ArithGroup_fuchsian_generic- ArithGroup_fuchsian_generic.draw_mat_list()
- ArithGroup_fuchsian_generic.find_fundom_rep()
- ArithGroup_fuchsian_generic.fundamental_domain()
- ArithGroup_fuchsian_generic.fundamental_domain_data()
- ArithGroup_fuchsian_generic.fundamental_domain_interior_data()
- ArithGroup_fuchsian_generic.get_archimedean_embedding()
- ArithGroup_fuchsian_generic.get_embgquats_twisted()
- ArithGroup_fuchsian_generic.get_word_rep()
- ArithGroup_fuchsian_generic.is_in_fundom()
- ArithGroup_fuchsian_generic.is_in_fundom_boundary()
- ArithGroup_fuchsian_generic.is_in_fundom_exterior()
- ArithGroup_fuchsian_generic.is_in_fundom_interior()
- ArithGroup_fuchsian_generic.magma_word_problem()
- ArithGroup_fuchsian_generic.mat_list()
- ArithGroup_fuchsian_generic.plot_fundamental_domain()
 
- ArithGroup_nf_fuchsian
- ArithGroup_nf_generic
- ArithGroup_nf_kleinian
- ArithGroup_nf_matrix
- ArithGroup_nf_matrix_new
- ArithGroup_rationalmatrix- ArithGroup_rationalmatrix.element_of_norm()
- ArithGroup_rationalmatrix.embed_order()
- ArithGroup_rationalmatrix.embed_order_legacy()
- ArithGroup_rationalmatrix.find_fundom_rep()
- ArithGroup_rationalmatrix.fundamental_domain()
- ArithGroup_rationalmatrix.fundamental_domain_data()
- ArithGroup_rationalmatrix.generate_wp_candidates()
- ArithGroup_rationalmatrix.get_archimedean_embedding()
- ArithGroup_rationalmatrix.get_word_rep()
- ArithGroup_rationalmatrix.is_in_fundom()
- ArithGroup_rationalmatrix.mat_list()
- ArithGroup_rationalmatrix.non_positive_unit()
 
- ArithGroup_rationalquaternion
- angle_sign()
- geodesic_circle()
- hyperbolic_distance()
- intersect_geodesic_arcs()
- is_in_open_interval()
- moebius_transform()
- perturb_point_on_arc()
- sorted_ideal_endpoints()
 
- S-arithmetic group- ArithGroup()
- BTEdge
- BigArithGroup()
- BigArithGroup_class- BigArithGroup_class.Gpn_Obasis()
- BigArithGroup_class.Gpn_denominator()
- BigArithGroup_class.base_field()
- BigArithGroup_class.base_ring_local_embedding()
- BigArithGroup_class.clear_cache()
- BigArithGroup_class.clear_local_splitting()
- BigArithGroup_class.construct_edge_reps()
- BigArithGroup_class.coset_reps()
- BigArithGroup_class.do_tilde()
- BigArithGroup_class.edge_from_quaternion()
- BigArithGroup_class.edges_entering_odd_vertex()
- BigArithGroup_class.edges_leaving_even_vertex()
- BigArithGroup_class.embed()
- BigArithGroup_class.embed_wp()
- BigArithGroup_class.get_BT_reps()
- BigArithGroup_class.get_BT_reps_twisted()
- BigArithGroup_class.get_Up_reps()
- BigArithGroup_class.get_Up_reps_bianchi()
- BigArithGroup_class.get_Zp_covering()
- BigArithGroup_class.get_amalgam_reps()
- BigArithGroup_class.get_coset_ti()
- BigArithGroup_class.get_covering()
- BigArithGroup_class.get_edges_upto()
- BigArithGroup_class.get_embedding()
- BigArithGroup_class.get_gis()
- BigArithGroup_class.get_gis_local()
- BigArithGroup_class.get_gitildes()
- BigArithGroup_class.get_gitildes_local()
- BigArithGroup_class.is_in_Gpn_order()
- BigArithGroup_class.large_group()
- BigArithGroup_class.local_splitting()
- BigArithGroup_class.prime()
- BigArithGroup_class.quaternion_algebra()
- BigArithGroup_class.reduce_in_amalgam()
- BigArithGroup_class.save_to_db()
- BigArithGroup_class.set_wp()
- BigArithGroup_class.small_group()
- BigArithGroup_class.subdivide()
- BigArithGroup_class.use_shapiro()
- BigArithGroup_class.wp()
 
- MatrixArithGroup()
- attach_kleinian_code()
- is_page_initialized()
 
Cohomology and Homology¶
- Abstract cohomology class- CohomologyElement
- CohomologyGroup- CohomologyGroup.Element
- CohomologyGroup.GA_to_local()
- CohomologyGroup.coefficient_module()
- CohomologyGroup.dimension()
- CohomologyGroup.eval_at_genpow()
- CohomologyGroup.fox_gradient()
- CohomologyGroup.gen()
- CohomologyGroup.generator_acting_matrix()
- CohomologyGroup.gens()
- CohomologyGroup.get_fox_term()
- CohomologyGroup.get_gen_pow()
- CohomologyGroup.group()
- CohomologyGroup.hecke_matrix()
- CohomologyGroup.space()
- CohomologyGroup.zero()
 
 
- Arithmetic cohomology- ArithAction
- ArithCoh
- ArithCohBianchi
- ArithCohElement
- ArithCohOverconvergent
- BianchiArithAction
- CohArbitrary
- get_cocycle_from_elliptic_curve()
- get_dedekind_rademacher_cocycle()
- get_overconvergent_class_bianchi()
- get_overconvergent_class_matrices()
- get_overconvergent_class_quaternionic()
- get_rational_cocycle()
- get_rational_cocycle_from_ap()
- get_twodim_cocycle()
 
- Abstract homology class- Abelianization
- ArithHomology
- ArithHomologyElement
- HomologyElement
- HomologyGroup- HomologyGroup.Element
- HomologyGroup.coefficient_module()
- HomologyGroup.free_gens()
- HomologyGroup.gen()
- HomologyGroup.gens()
- HomologyGroup.get_gen_pow()
- HomologyGroup.get_twisted_fox_term()
- HomologyGroup.group()
- HomologyGroup.ngens()
- HomologyGroup.rank()
- HomologyGroup.space()
- HomologyGroup.twisted_fox_gradient()
- HomologyGroup.zero()
 
 
- Homology class- ArithGroupAction
- OneChains
- OneChainsElement- OneChainsElement.act_by_hecke()
- OneChainsElement.act_by_poly_hecke()
- OneChainsElement.factor_into_generators()
- OneChainsElement.hecke_smoothen()
- OneChainsElement.is_cycle()
- OneChainsElement.is_degree_zero_valued()
- OneChainsElement.is_zero()
- OneChainsElement.radius()
- OneChainsElement.zero_degree_equivalent()
 
- TensorElement
- TensorProduct
- get_homology_kernel()
- inverse_shapiro()
- lattice_homology_cycle()
 
Integration pairing¶
Overconvergent distributions¶
- Overconvergent module of distributions- AddMeromorphicFunctions
- AddMeromorphicFunctionsElement- AddMeromorphicFunctionsElement.evaluate_additive()
- AddMeromorphicFunctionsElement.evaluate_multiplicative()
- AddMeromorphicFunctionsElement.left_act_by_matrix()
- AddMeromorphicFunctionsElement.pair_with()
- AddMeromorphicFunctionsElement.power_series()
- AddMeromorphicFunctionsElement.scale_by()
- AddMeromorphicFunctionsElement.valuation()
 
- OCVn
- OCVnElement
- Sigma0Action
- our_adjuster
- ps_adjuster
 
- Representations
- Meromorphic functions
Internals¶
- Divisors- Divisors
- DivisorsElement- DivisorsElement.apply_map()
- DivisorsElement.as_list_of_differences()
- DivisorsElement.degree()
- DivisorsElement.gcd()
- DivisorsElement.intersects()
- DivisorsElement.is_zero()
- DivisorsElement.left_act_by_matrix()
- DivisorsElement.pair_with()
- DivisorsElement.rational_function()
- DivisorsElement.restrict()
- DivisorsElement.scale_by()
- DivisorsElement.size()
- DivisorsElement.support()
- DivisorsElement.value()
 
 
- Mixed extensions- QuadExt- QuadExt.Element
- QuadExt.absolute_degree()
- QuadExt.base_ring()
- QuadExt.characteristic()
- QuadExt.gen()
- QuadExt.is_finite()
- QuadExt.polynomial()
- QuadExt.precision_cap()
- QuadExt.prime()
- QuadExt.ramification_index()
- QuadExt.random_element()
- QuadExt.relative_degree()
- QuadExt.residue_class_degree()
- QuadExt.some_elements()
- QuadExt.uniformizer()
- QuadExt.unramified_generator()
 
- QuadExtElement
- get_word_rep_fast()
 
- Sparse matrix calculations
- Utility package- Bunch
- FGP_V()
- FGP_W()
- JtoP()
- M2Z()
- act_H3()
- act_flt()
- act_flt_in_disc()
- affine_transformation()
- cantor_diagonal()
- config_section_map()
- conjugate_quaternion_over_base()
- covolume()
- direct_sum_of_maps()
- direct_sum_of_modules()
- discover_equation()
- enumerate_words()
- field_element_pari_to_sage()
- find_center()
- find_containing_affinoid()
- find_the_unit_of()
- fwrite()
- get_C_and_C2()
- get_c4_and_c6()
- get_heegner_params()
- get_j_invariant()
- getcoords()
- height_polynomial()
- hensel_lift()
- imag_part()
- is_in_Gamma0loc()
- is_in_Gamma_1()
- is_in_principal_affinoid()
- is_infinity()
- is_smooth()
- lift_padic_splitting()
- magma_F_elt_to_sage()
- magma_F_ideal_to_sage()
- magma_integral_quaternion_to_sage()
- magma_quaternion_to_sage()
- module_generators()
- module_generators_new()
- multiply_out()
- muted()
- our_algdep()
- our_cuberoot()
- our_lindep()
- our_nroot()
- our_sqrt()
- pari_ordmax_basis_to_sage()
- period_from_coords()
- point_radius()
- polynomial_roots()
- polynomial_roots_old()
- print_padic()
- print_table_latex()
- quaternion_algebra_invariants_from_ramification()
- quaternion_to_magma_quaternion()
- real_part()
- recognize_DV_algdep()
- recognize_DV_lindep()
- recognize_J()
- recognize_point()
- reduce_word()
- reduce_word_tietze()
- relativize_ATR()
- sage_F_elt_to_magma()
- sage_F_ideal_to_magma()
- sage_order_basis_to_pari()
- sage_quaternion_to_magma()
- selmer_group_iterator()
- set_immutable()
- simplification_isomorphism()
- solve_quadratic()
- syllables_to_tietze()
- tate_parameter()
- tietze_to_syllables()
- translate_into_twosided_list()
- update_progress()
- weak_approximation()