"Source: Text/Geometry/HypGeomMot.text";
"Line: 1300";
"Date: Thu Sep 25 14:47:45 2025";
"Main: Fri Sep 26 14:29:19 2025";
// original file: Text/Geometry/HypGeomMot.text, line: 1300
// Example: H138E13 ()
print "Example: H138E13";
ei := GetEchoInput();
SetEchoInput(true);
H := HypergeometricData([6],[1,2]);
L := LSeries(H,1); L;
H := HypergeometricData([3],[1,2]); // twist of above
L := LSeries(H,1); L;
H := HypergeometricData([4],[1,2]);
L := LSeries(H,1); L;
H := HypergeometricData([12],[1,2,3]); // degree 4
L := LSeries(H,1); L; // drops to degree 3
// both the next two drop to degree 2 (odd wt)
H := HypergeometricData([2,2,6],[10]);
L := LSeries(H,1); L; CremonaReference(L`parent);
H := HypergeometricData([2,2,3],[4,4]);
L := LSeries(H,1); L; Conductor(L);
H := HypergeometricData([3,8],[1,2,2,2,6]);
Degree(H), Weight(H);
L:=LSeries(H,1);
Degree(L); // drops by 1
L;
BadPrimeData(L); // conductor 2^7 * 3^2
CFENew(L); // check the bad Euler info
H := HypergeometricData([5,6],[1,1,2,2,3]); // deg 6 wt 1
L := LSeries(H,1); // degree 4
BadPrimeData(L);
LSetPrecision(L,15);
CFENew(L);
//
H := HypergeometricData([14],[1,1,1,2,3]); // deg 6 wt 2
L := LSeries(H,1); // degree 5
BadPrimeData(L); // cond too large to check here
H := HypergeometricData([2,2,4,6],[3,10]);
L := LSeries(H,1); // reduce to deg 4 and wt 1
E1 := EllipticCurve("400c");
E2 := EllipticCurve("1200l");
X := LSeries(E1)*LSeries(E2);
&and[EulerFactor(L,p) eq EulerFactor(X,p) : p in PrimesUpTo(100)];
assert $1;
//
H := HypergeometricData([2,2,2,2,2,2],[1,1,1,1,1,1]);
L := LSeries(H,1); // reduce to deg 4 and wt 5
f4 := Newforms(CuspForms(8,4))[1][1]; // modular forms
f6 := Newforms(CuspForms(8,6))[1][1]; // of level 8
Y := Translate(LSeries(f4),1)*LSeries(f6);
&and[EulerFactor(L,p) eq EulerFactor(Y,p) : p in PrimesUpTo(100)];
assert $1;
//
H := HypergeometricData([3,3,3,3],[6,6,6,6]);
L := LSeries(H,1); // deg 6 weight 7
P := PrimesInInterval(5,100);
&+[1.0*Coefficient(EulerFactor(L,p : Degree:=1),1)^2/p^7 : p in P]/#P;
f6 := Newforms(CuspForms(36,6))[2][1]; // level 36 modwt 6
LQ := Translate(LSeries(f6),1); // make it weight 7
P30 := PrimesInInterval(5,30);
&and[IsDivisibleBy(EulerFactor(L,p),EulerFactor(LQ,p)) : p in P30];
assert $1;
SetEchoInput(ei);
