@@ -1309,7 +1309,7 @@ def signature(self) -> Integer:
13091309 sage: Permutation([]).sign()
13101310 1
13111311 """
1312- return ( - 1 )** (len (self ) - len (self .to_cycles ()))
1312+ return Integer (( - 1 )** (len (self ) - len (self .to_cycles () )))
13131313
13141314 # one can also use sign as an alias for signature
13151315 sign = signature
@@ -1619,21 +1619,23 @@ def to_inversion_vector(self) -> list:
16191619 l = len (p )
16201620 # lightning fast if the length is less than 3
16211621 # (is it really useful?)
1622+ zero = Integer (0 )
1623+ one = Integer (1 )
16221624 if l < 4 :
16231625 if l == 0 :
16241626 return []
16251627 if l == 1 :
1626- return [0 ]
1628+ return [zero ]
16271629 if l == 2 :
1628- return [p [0 ] - 1 , 0 ]
1630+ return [Integer ( p [0 ] - 1 ), zero ]
16291631 if l == 3 :
16301632 if p [0 ] == 1 :
1631- return [0 , p [1 ] - 2 , 0 ]
1633+ return [zero , Integer ( p [1 ] - 2 ), zero ]
16321634 if p [0 ] == 2 :
16331635 if p [1 ] == 1 :
1634- return [1 , 0 , 0 ]
1635- return [2 , 0 , 0 ]
1636- return [p [1 ], 1 , 0 ]
1636+ return [one , zero , zero ]
1637+ return [Integer ( 2 ), zero , zero ]
1638+ return [Integer ( p [1 ]), one , zero ]
16371639 # choose the best one
16381640 if l < 411 :
16391641 return self ._to_inversion_vector_small ()
@@ -1691,7 +1693,7 @@ def _to_inversion_vector_small(self) -> list:
16911693 for pi in reversed (p ):
16921694 checked [pi ] = 0
16931695 iv [pi ] = sum (checked [pi :])
1694- return iv [1 :]
1696+ return [ Integer ( a ) for a in iv [1 :] ]
16951697
16961698 def _to_inversion_vector_divide_and_conquer (self ) -> list :
16971699 r"""
@@ -1757,7 +1759,7 @@ def sort_and_countv(L):
17571759 return merge_and_countv (sort_and_countv (L [:l ]),
17581760 sort_and_countv (L [l :]))
17591761
1760- return sort_and_countv (self ._list )[0 ]
1762+ return [ Integer ( a ) for a in sort_and_countv (self ._list )[0 ] ]
17611763
17621764 def inversions (self ) -> list :
17631765 r"""
@@ -2027,8 +2029,8 @@ def number_of_noninversions(self, k) -> Integer:
20272029 """
20282030 if k > len (self ):
20292031 return 0
2030- return sum (1 for pos in itertools .combinations (self , k )
2031- if all (pos [i ] < pos [i + 1 ] for i in range (k - 1 )))
2032+ return Integer ( sum (1 for pos in itertools .combinations (self , k )
2033+ if all (pos [i ] < pos [i + 1 ] for i in range (k - 1 ) )))
20322034
20332035 def length (self ) -> Integer :
20342036 r"""
@@ -2078,7 +2080,7 @@ def inverse(self) -> Permutation:
20782080 """
20792081 w = list (range (len (self )))
20802082 for i , j in enumerate (self , start = 1 ):
2081- w [j - 1 ] = i
2083+ w [j - 1 ] = Integer ( i )
20822084 return Permutations ()(w )
20832085
20842086 __invert__ = inverse
@@ -2379,7 +2381,7 @@ def longest_increasing_subsequence_length(self) -> Integer:
23792381 else :
23802382 # We replace y by x
23812383 r [idx ] = x
2382- return len (r )
2384+ return Integer ( len (r ) )
23832385
23842386 def longest_increasing_subsequences (self ) -> list :
23852387 r"""
@@ -3321,7 +3323,7 @@ def number_of_fixed_points(self) -> int:
33213323 sage: Permutation([1,2,3,4]).number_of_fixed_points()
33223324 4
33233325 """
3324- return len (self .fixed_points ())
3326+ return Integer ( len (self .fixed_points () ))
33253327
33263328 def is_derangement (self ) -> bool :
33273329 r"""
@@ -3442,7 +3444,7 @@ def number_of_recoils(self) -> Integer:
34423444 sage: Permutation([1,4,3,2]).number_of_recoils()
34433445 2
34443446 """
3445- return len (self .recoils ())
3447+ return Integer ( len (self .recoils () ))
34463448
34473449 def recoils_composition (self ) -> Composition :
34483450 r"""
@@ -3615,7 +3617,7 @@ def number_of_descents(self, final_descent=False) -> int:
36153617 sage: Permutation([1,4,3,2]).number_of_descents(final_descent=True)
36163618 3
36173619 """
3618- return len (self .descents (final_descent ))
3620+ return Integer ( len (self .descents (final_descent ) ))
36193621
36203622 def number_of_idescents (self , final_descent = False ) -> int :
36213623 r"""
@@ -3633,7 +3635,7 @@ def number_of_idescents(self, final_descent=False) -> int:
36333635 sage: Permutation([1,4,3,2]).number_of_idescents(final_descent=True)
36343636 3
36353637 """
3636- return len (self .idescents (final_descent ))
3638+ return Integer ( len (self .idescents (final_descent ) ))
36373639
36383640 @combinatorial_map (name = 'descent composition' )
36393641 def descents_composition (self ) -> Composition :
@@ -3720,7 +3722,7 @@ def major_index(self, final_descent=False) -> Integer:
37203722 6
37213723 """
37223724 descents = self .descents (final_descent )
3723- return sum (descents )
3725+ return Integer ( sum (descents ) )
37243726
37253727 def multi_major_index (self , composition ):
37263728 r"""
@@ -3789,7 +3791,7 @@ def imajor_index(self, final_descent=False) -> Integer:
37893791 sage: Permutation([4,3,2,1]).imajor_index()
37903792 6
37913793 """
3792- return sum (self .idescents (final_descent ))
3794+ return Integer ( sum (self .idescents (final_descent ) ))
37933795
37943796 def to_major_code (self , final_descent = False ):
37953797 r"""
@@ -3873,7 +3875,7 @@ def number_of_peaks(self) -> int:
38733875 sage: Permutation([4,1,3,2,6,5]).number_of_peaks()
38743876 2
38753877 """
3876- return len (self .peaks ())
3878+ return Integer ( len (self .peaks () ))
38773879
38783880 #############
38793881 # Saliances #
@@ -3920,7 +3922,7 @@ def number_of_saliances(self) -> int:
39203922 sage: Permutation([5,4,3,2,1]).number_of_saliances()
39213923 5
39223924 """
3923- return len (self .saliances ())
3925+ return Integer ( len (self .saliances () ))
39243926
39253927 ################
39263928 # Bruhat Order #
0 commit comments