Changeset 7609:e38650e27e86
- Timestamp:
- 11/28/07 10:28:15 (5 years ago)
- Branch:
- default
- File:
-
- 1 edited
-
sage/groups/perm_gps/permgroup_element.pyx (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
sage/groups/perm_gps/permgroup_element.pyx
r7607 r7609 69 69 from sage.rings.integer import Integer 70 70 71 from sage.ext.arith cimport arith_llong 72 cdef arith_llong arith = arith_llong() 73 cdef extern from *: 74 long long LONG_LONG_MAX 75 71 76 #import permgroup_named 72 77 … … 530 535 sage: s.order() 531 536 6 532 """ 533 order = Integer(1) 537 538 TESTS: 539 sage: prod(primes(150)) 540 1492182350939279320058875736615841068547583863326864530410 541 sage: L = [tuple(range(sum(primes(p))+1, sum(primes(p))+1+p)) for p in primes(150)] 542 sage: PermutationGroupElement(L).order() 543 1492182350939279320058875736615841068547583863326864530410 544 """ 545 order = None 546 cdef long long order_c = 1 534 547 cdef int cycle_len 535 548 cdef int i, k … … 545 558 k = self.perm[k] 546 559 cycle_len += 1 547 order = order.lcm(cycle_len) 560 if order is not None: 561 order = order.lcm(cycle_len) 562 else: 563 order_c = (order_c * cycle_len) / arith.c_gcd_longlong(order_c, cycle_len) 564 if order_c > LONG_LONG_MAX / (self.n - i): 565 order = Integer(order_c) 548 566 sage_free(seen) 549 return order567 return int(order_c) if order is None else order 550 568 551 569 def sign(self):
Note: See TracChangeset
for help on using the changeset viewer.
