@@ -1809,6 +1809,7 @@ def j_invariant(self, parameter=None, check=True):
1809
1809
"if the rank is greater than 2" )
1810
1810
return self ._gen [1 ]** (q + 1 )/ self ._gen [2 ]
1811
1811
if parameter in ZZ :
1812
+ parameter = ZZ (parameter )
1812
1813
if parameter <= 0 or parameter >= r :
1813
1814
raise ValueError ("integer parameter must be >= 1 and < the "
1814
1815
f"rank (={ r } )" )
@@ -1826,26 +1827,28 @@ def j_invariant(self, parameter=None, check=True):
1826
1827
not len (parameter [1 ]) == len (parameter [0 ]) + 1 :
1827
1828
raise ValueError ("components of tuple or list parameter have "
1828
1829
"incorrect length" )
1829
- if not all (p in ZZ for p in parameter [0 ])\
1830
- or not all (p in ZZ for p in parameter [1 ]):
1830
+ try : # Check parameter's type
1831
+ parameter_0 = [ZZ (p ) for p in parameter [0 ]]
1832
+ parameter_1 = [ZZ (p ) for p in parameter [1 ]]
1833
+ except TypeError :
1831
1834
raise TypeError ("components of tuple or list parameter must "
1832
1835
"contain only integers" )
1833
1836
# Check that the weight-0 condition is satisfied:
1834
1837
# d_1 (q - 1) + ... + d_{r-1} (q^{r-1} - 1)
1835
1838
# = d_r (q^r - 1)
1836
1839
if check :
1837
- right = parameter [ 1 ] [- 1 ]* (q ** r - 1 )
1838
- left = sum (parameter [ 1 ][ i ]* (q ** (parameter [ 0 ] [i ]) - 1 ) for i in
1839
- range (len (parameter [ 0 ] )))
1840
+ right = parameter_1 [- 1 ]* (q ** r - 1 )
1841
+ left = sum (parameter_1 [ i ]* (q ** (parameter_0 [i ]) - 1 ) for i in
1842
+ range (len (parameter_0 )))
1840
1843
if left != right :
1841
1844
raise ValueError ("parameter does not satisfy the "
1842
1845
"weight-0 condition" )
1843
1846
else :
1844
1847
raise TypeError ("parameter must be a tuple or a list of "
1845
1848
"length 2 or an integer" )
1846
1849
num = prod (self ._gen [k ]** d
1847
- for k , d in zip (parameter [ 0 ], parameter [ 1 ] [:- 1 ]))
1848
- return num / (self ._gen [- 1 ]** parameter [ 1 ] [- 1 ])
1850
+ for k , d in zip (parameter_0 , parameter_1 [:- 1 ]))
1851
+ return num / (self ._gen [- 1 ]** parameter_1 [- 1 ])
1849
1852
1850
1853
def jk_invariants (self ):
1851
1854
r"""
0 commit comments