John Benediktsson
d487d8068d
math.primes.erato: minor performance improvements.
2012-10-23 10:49:45 -07:00
John Benediktsson
ac2e60e997
math.primes.erato: bit faster by inlining.
2012-08-23 09:35:09 -07:00
John Benediktsson
599f08f05d
math.functions: when gcd is inlined, "gcd nip" is almost as good as "gcd*".
2011-10-18 10:30:39 -07:00
John Benediktsson
302cd52c74
math.functions: faster gcd means faster ratios.
2011-10-17 20:36:28 -07:00
John Benediktsson
7494418bf8
More lint cleanups.
2011-10-16 19:33:16 -07:00
John Benediktsson
40d14417f0
math.primes.safe: fix docs.
2011-09-12 10:56:39 -07:00
John Benediktsson
248b0df6fc
Spelling fixes to documentation.
2011-08-26 16:20:31 -07:00
Samuel Tardieu
4f8e8e6613
Add math.primes:nprimes
2011-05-20 12:38:27 +02:00
Jon Harper
093951556e
math.primes.erato doc fixes.
2010-11-02 17:34:28 +01:00
Rupert Swarbrick
5af9f3cdd7
math.primes.erato: Fix off-by-one error
...
The sieve bit vector deals with numbers in chunks of 30. Therefore,
the number 90 (say) is the 91st 'element' of the vector. Each byte
deals with some range {0,1,...,29}+30n so to have the number 90, you
need four bytes.
Rather pleasingly, I bumped into this bug and it reduced to the
incantation:
2010 2010 sieve marked-prime?
2010-11-02 17:34:24 +01:00
Slava Pestov
302867c9a7
math.primes.erato: fix typo in docs
2010-10-22 18:26:08 -07:00
Jon Harper
75a0e3397c
divisors returns empty list for 0
...
This is mainly for consistency with other words
(factors, group-factors, unique-factors)
2010-08-09 22:54:35 -07:00
Samuel Tardieu
3685a22c62
Fix "primes-between" and "primes-upto" with pathological bounds.
...
"primes-between" was buggy when bounds were given in the wrong order
or when the high bound was smaller than 3.
2010-06-11 16:07:52 +02:00
Doug Coleman
e559f1470b
Use keys/values where appropriate
2010-05-21 12:48:04 -05:00
Doug Coleman
7521807b55
random is generic now -- iota random -> random
2010-01-14 12:48:57 -06:00
Slava Pestov
880fb747fc
Removing integers-as-sequences
2010-01-15 07:15:33 +13:00
Doug Coleman
8003b74abb
add MAIN: run-unix-factor to math.primes.factors
2009-12-12 23:39:59 -06:00
Slava Pestov
08b6ebc7fa
Factor source files should not be executable
2009-11-21 17:50:43 -06:00
Doug Coleman
1ee8c8f5eb
sigma -> map-sum
2009-10-29 14:34:04 -05:00
Joe Groff
22a9be5ea5
update existing code to use :> ( ) when possible
2009-10-28 16:11:33 -05:00
Doug Coleman
4b5ed34fe8
fix more docs typos
2009-10-21 18:11:24 -05:00
Keith Lazuka
8f79ea91ba
docs: change $subsection to $subsections
2009-10-02 12:15:48 -04:00
Samuel Tardieu
5919ee8a79
Do not repeat sanity tests at each iteration
2009-09-09 21:35:24 +02:00
Samuel Tardieu
0c76719312
Make "divisors" work with 1 as well
2009-09-02 12:07:23 +02:00
Samuel Tardieu
48ef66e45c
Ensure that random-prime result has the right size
...
As noted by Slava, choosing the next prime following a random number
with a specified number of bits may give a number one more bit long.
2009-08-29 21:42:15 +02:00
Doug Coleman
d1ce837569
Delete empty unit tests files, remove 1- and 1+, reorder IN: lines in a lot of places, minor refactoring
2009-08-13 19:21:44 -05:00
Doug Coleman
e1bdd33156
use if-zero in a few more places
2009-08-11 18:15:53 -05:00
Samuel Tardieu
9b1796cd26
Add divisors to math.primes.factors
2009-06-29 16:56:00 +02:00
Samuel Tardieu
f51bc7a12b
Short circuit trivial composites
2009-06-24 15:53:50 +02:00
Samuel Tardieu
575cd8e4ab
Get rid of vector reallocation by preallocating it
2009-06-24 15:53:46 +02:00
Samuel Tardieu
8317be8135
Add extra tests for math.primes
2009-06-24 13:15:13 +02:00
Samuel Tardieu
0fef7b94c4
Pack primes numbers by slices of 30
...
In any given 30 successive integers greater than 5, there are at most
8 prime numbers. Use this to tightly pack the result of the Eratostene
sieve. This lets us store more prime numbers than before in less space.
2009-06-24 13:15:12 +02:00
Doug Coleman
64215e6371
dont load safe primes in miller rabin tests
2009-05-10 14:08:03 -05:00
Doug Coleman
7a60ce161a
link to prime tests from prime docs
2009-05-10 14:01:21 -05:00
Doug Coleman
880e5bd03e
make a new vocabulary for safe primes
2009-05-10 13:49:40 -05:00
Doug Coleman
7dc1bc1fd0
more docs for math.primes, move words out of miller-rabin
2009-05-10 13:47:51 -05:00
Doug Coleman
656212b619
add lucas-lehmer primality test
2009-05-10 12:59:35 -05:00
Doug Coleman
99a257a89e
update usages of miller-rabin
2009-05-10 12:24:43 -05:00
Doug Coleman
a09947f042
move math.miller-rabin to math.primes.miller-rabin
2009-05-10 12:24:19 -05:00
Aaron Schaefer
ed9a63311c
Fix typo and update a combinator usage in calendar
2009-04-01 22:03:45 -04:00
Aaron Schaefer
ca9fb1fcf1
Update usages of divisor? where appropriate
2009-04-01 21:53:18 -04:00
Samuel Tardieu
b5e08a8e3e
When a factor has been found, check if the remainder is a prime number
...
Performances are greatly increased when a large prime number is involved.
Also, mark some words as flushable, even if it is unlikely that they
will be invoked if their result is discarded.
2009-03-02 19:05:54 +01:00
Samuel Tardieu
087d931c36
Remove the tail argument from do/until/while
2009-02-18 02:41:14 +01:00
Samuel Tardieu
0069547e90
Fix suboptimal prime number factoring
2009-02-03 00:33:12 +01:00
Samuel Tardieu
6a2f46ed7f
Move math.primes.factors from extra to basis
2009-01-07 23:01:27 +01:00
Samuel Tardieu
594bd3aee8
Move math.primes from extra to basis
2009-01-07 21:12:48 +01:00