@@ -938,26 +938,26 @@ def basic_j_invariant_parameters(self, coeff_indices=None, nonzero=False):
938
938
sage: K.<T> = Frac(A)
939
939
sage: phi = DrinfeldModule(A, [T, 0, T+1, T^2 + 1])
940
940
sage: phi.basic_j_invariant_parameters()
941
- [((1, 2), (1, 5, 1)),
941
+ [((1,), (31, 1)),
942
+ ((1, 2), (1, 5, 1)),
942
943
((1, 2), (7, 4, 1)),
943
- ((1, 2), (13, 3, 1)),
944
- ((1, 2), (19, 2, 1)),
945
- ((1, 2), (25, 1, 1)),
946
- ((1, 2), (31, 0, 1)),
947
944
((1, 2), (8, 9, 2)),
948
- ((1, 2), (20, 7, 2)),
949
945
((1, 2), (9, 14, 3)),
950
- ((1, 2), (15, 13, 3)),
951
- ((1, 2), (27, 11, 3)),
952
946
((1, 2), (10, 19, 4)),
953
- ((1, 2), (22, 17, 4)),
954
947
((1, 2), (11, 24, 5)),
948
+ ((1, 2), (12, 29, 6)),
949
+ ((1, 2), (13, 3, 1)),
950
+ ((1, 2), (15, 13, 3)),
955
951
((1, 2), (17, 23, 5)),
952
+ ((1, 2), (19, 2, 1)),
953
+ ((1, 2), (20, 7, 2)),
954
+ ((1, 2), (22, 17, 4)),
956
955
((1, 2), (23, 22, 5)),
956
+ ((1, 2), (25, 1, 1)),
957
+ ((1, 2), (27, 11, 3)),
957
958
((1, 2), (29, 21, 5)),
958
- ((1, 2), (0, 31, 6)),
959
- ((1, 2), (12, 29, 6)),
960
- ((1, 2), (31, 31, 7))]
959
+ ((1, 2), (31, 31, 7)),
960
+ ((2,), (31, 6))]
961
961
962
962
Use the ``nonzero=True`` flag to display only the parameters
963
963
whose `j`-invariant value is nonzero::
@@ -973,13 +973,13 @@ def basic_j_invariant_parameters(self, coeff_indices=None, nonzero=False):
973
973
sage: K.<T> = Frac(A)
974
974
sage: phi = DrinfeldModule(A, [T, T, 1, T])
975
975
sage: phi.basic_j_invariant_parameters([1, 2])
976
- [((1, 2), (1, 2, 1)),
976
+ [((1,), (7, 1)),
977
+ ((1, 2), (1, 2, 1)),
977
978
((1, 2), (4, 1, 1)),
978
- ((1, 2), (7, 0, 1)),
979
979
((1, 2), (5, 3, 2)),
980
- ((1, 2), (0, 7, 3)),
981
980
((1, 2), (6, 5, 3)),
982
- ((1, 2), (7, 7, 4))]
981
+ ((1, 2), (7, 7, 4)),
982
+ ((2,), (7, 3))]
983
983
984
984
TESTS::
985
985
@@ -1064,8 +1064,23 @@ def basic_j_invariant_parameters(self, coeff_indices=None, nonzero=False):
1064
1064
polyhedron = Polyhedron (ieqs = inequalities , eqns = [equation ])
1065
1065
# Compute its integral points
1066
1066
integral_points = polyhedron .integral_points ()
1067
- return [(tuple (coeff_indices ), tuple (p )) for p in integral_points
1068
- if gcd (p ) == 1 ]
1067
+ # Format the result
1068
+ parameters = []
1069
+ for p in integral_points :
1070
+ if gcd (p ) != 1 :
1071
+ continue
1072
+ ks = list (coeff_indices )
1073
+ ds = p .list ()
1074
+ i = 0
1075
+ while i < len (ks ):
1076
+ if ds [i ] == 0 :
1077
+ del ds [i ]
1078
+ del ks [i ]
1079
+ else :
1080
+ i += 1
1081
+ parameters .append ((tuple (ks ), tuple (ds )))
1082
+ parameters .sort ()
1083
+ return parameters
1069
1084
1070
1085
def basic_j_invariants (self , nonzero = False ):
1071
1086
r"""
@@ -1110,14 +1125,14 @@ def basic_j_invariants(self, nonzero=False):
1110
1125
sage: K.<T> = Frac(A)
1111
1126
sage: phi = DrinfeldModule(A, [T, T + 2, T+1, 1])
1112
1127
sage: J_phi = phi.basic_j_invariants(); J_phi
1113
- {((1, 2 ), (0, 31, 6 )): T^31 + T^30 + T^26 + T^25 + T^6 + T^5 + T + 1 ,
1128
+ {((1,), (31, 1 )): T^31 + 2* T^30 + 2* T^26 + 4* T^25 + 2* T^6 + 4* T^5 + 4* T + 3 ,
1114
1129
((1, 2), (1, 5, 1)): T^6 + 2*T^5 + T + 2,
1115
1130
((1, 2), (7, 4, 1)): T^11 + 3*T^10 + T^9 + 4*T^8 + T^7 + 2*T^6 + 2*T^4 + 3*T^3 + 2*T^2 + 3,
1116
1131
((1, 2), (8, 9, 2)): T^17 + 2*T^15 + T^14 + 4*T^13 + 4*T^11 + 4*T^10 + 3*T^9 + 2*T^8 + 3*T^7 + 2*T^6 + 3*T^5 + 2*T^4 + 3*T^3 + 4*T^2 + 3*T + 1,
1117
1132
((1, 2), (9, 14, 3)): T^23 + 2*T^22 + 2*T^21 + T^19 + 4*T^18 + T^17 + 4*T^16 + T^15 + 4*T^14 + 2*T^12 + 4*T^11 + 4*T^10 + 2*T^8 + 4*T^7 + 4*T^6 + 2*T^4 + T^2 + 2*T + 2,
1118
1133
((1, 2), (10, 19, 4)): T^29 + 4*T^28 + T^27 + 4*T^26 + T^25 + 2*T^24 + 3*T^23 + 2*T^22 + 3*T^21 + 2*T^20 + 4*T^19 + T^18 + 4*T^17 + T^16 + 4*T^15 + T^9 + 4*T^8 + T^7 + 4*T^6 + T^5 + 4*T^4 + T^3 + 4*T^2 + T + 4,
1119
1134
...
1120
- ((1, 2 ), (31, 31, 7 )): T^62 + 3*T^61 + 2*T^60 + 3*T^57 + 4*T^56 + T^55 + 2*T^52 + T^51 + 4*T^50 + 3*T^37 + 4*T^36 + T^35 + 4*T^32 + 2*T^ 31 + 3* T^30 + T^27 + 3*T^ 26 + 2* T^25 + 2*T^12 + T^11 + 4*T^10 + T^7 + 3*T^ 6 + 2* T^5 + 4*T^2 + 2*T + 3 }
1135
+ ((2, ), (31, 6 )): T^31 + T^30 + T^26 + T^25 + T^ 6 + T^5 + T + 1 }
1121
1136
sage: J_phi[((1, 2), (7, 4, 1))]
1122
1137
T^11 + 3*T^10 + T^9 + 4*T^8 + T^7 + 2*T^6 + 2*T^4 + 3*T^3 + 2*T^2 + 3
1123
1138
"""
@@ -1703,9 +1718,9 @@ def j_invariant(self, parameter=None, check=True):
1703
1718
sage: K.<T> = Frac(A)
1704
1719
sage: phi = DrinfeldModule(A, [T, T^2 + T + 1, 0, T^4 + 1, T - 1])
1705
1720
sage: param = phi.basic_j_invariant_parameters(nonzero=True)
1706
- sage: phi.j_invariant(param[0])
1707
- T^13 + 2*T^12 + T + 2
1708
1721
sage: phi.j_invariant(param[1])
1722
+ T^13 + 2*T^12 + T + 2
1723
+ sage: phi.j_invariant(param[2])
1709
1724
T^35 + 2*T^31 + T^27 + 2*T^8 + T^4 + 2
1710
1725
1711
1726
TESTS::
0 commit comments