Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Right now to test if a Sage integer is prime it is faster to call `prime_range` rather than `.is_prime()`... {{{ sage: timeit("bool(prime_range(121,122))", number=10000) 10000 loops, best of 3: 1.09 µs per loop sage: timeit("bool(prime_range(1009,1010))", number=10000) 10000 loops, best of 3: 1.2 µs per loop }}} versus {{{ sage: timeit("121.is_prime()", number=10000) 10000 loops, best of 3: 5.3 µs per loop sage: timeit("1009.is_prime()", number=10000) 10000 loops, best of 3: 4.19 µs per loop }}} The patch does some tiny modifications in `integer.pyx` and we get {{{ sage: timeit("121.is_prime()", number=10000) 10000 loops, best of 3: 812 ns per loop sage: timeit("1009.is_prime()", number=10000) 10000 loops, best of 3: 730 ns per loop }}} We also modify `is_prime_power()` to return `False` for 1 and raise an error for non-integral rationals like `1/2`. See also [https://groups.google.com/forum/#!topic/sage-devel/v6s2RI4dd1Q this sage-devel discussion]. URL: http://trac.sagemath.org/16878 Reported by: vdelecroix Ticket author(s): Vincent Delecroix, Jeroen Demeyer Reviewer(s): Jeroen Demeyer, Vincent Delecroix
- Loading branch information