Skip to content

Commit 2047481

Browse files
author
Release Manager
committed
gh-37190: add lfunction to hypergeometric motives This is adding an interface to Pari's capacities for L-function of hypergeometric motives. ### 📝 Checklist - [x] The title is concise, informative, and self-explanatory. - [x] The description explains in detail what this PR is about. - [ ] I have linked a relevant issue or discussion. - [x] I have created tests covering the changes. - [x] I have updated the documentation accordingly. URL: #37190 Reported by: Frédéric Chapoton Reviewer(s): Alex J Best
2 parents 7332a53 + 224a3de commit 2047481

File tree

2 files changed

+46
-0
lines changed

2 files changed

+46
-0
lines changed

src/sage/lfunctions/pari.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -256,6 +256,28 @@ def lfun_character(chi):
256256
return pari.lfuncreate([G, v])
257257

258258

259+
def lfun_hgm(motif, t):
260+
"""
261+
Create the L-function of an hypergeometric motive.
262+
263+
OUTPUT:
264+
265+
one :pari:`lfun` object
266+
267+
EXAMPLES::
268+
269+
sage: from sage.lfunctions.pari import lfun_hgm, LFunction
270+
sage: from sage.modular.hypergeometric_motive import HypergeometricData as Hyp
271+
sage: H = Hyp(gamma_list=([3,-1,-1,-1]))
272+
sage: L = LFunction(lfun_hgm(H, 1/5))
273+
sage: L(3)
274+
0.901925346034773
275+
"""
276+
H = pari.hgminit(*motif.alpha_beta())
277+
lf = pari.lfunhgm(H, t)
278+
return pari.lfuncreate(lf)
279+
280+
259281
def lfun_elliptic_curve(E):
260282
"""
261283
Create the L-function of an elliptic curve.

src/sage/modular/hypergeometric_motive.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1057,6 +1057,30 @@ def has_symmetry_at_one(self):
10571057
beta_twist = self.twist()._beta
10581058
return self.degree() % 2 == 0 and self._alpha == beta_twist
10591059

1060+
def lfunction(self, t, prec=53):
1061+
"""
1062+
Return the L-function of ``self``.
1063+
1064+
The result is a wrapper around a PARI L-function.
1065+
1066+
INPUT:
1067+
1068+
- ``prec`` -- precision (default 53)
1069+
1070+
EXAMPLES::
1071+
1072+
sage: from sage.modular.hypergeometric_motive import HypergeometricData as Hyp
1073+
sage: H = Hyp(cyclotomic=([3],[4]))
1074+
sage: L = H.lfunction(1/64); L
1075+
PARI L-function associated to Hypergeometric data for [1/3, 2/3] and [1/4, 3/4]
1076+
sage: L(4)
1077+
0.997734256321692
1078+
"""
1079+
from sage.lfunctions.pari import lfun_hgm, LFunction
1080+
Z = LFunction(lfun_hgm(self, t), prec=prec)
1081+
Z.rename('PARI L-function associated to %s' % self)
1082+
return Z
1083+
10601084
def canonical_scheme(self, t=None):
10611085
"""
10621086
Return the canonical scheme.

0 commit comments

Comments
 (0)