Skip to content
Permalink
main
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
1 contributor

Users who have contributed to this file

76 lines (60 sloc) 3.33 KB
Latest source and some binaries can be found at:
http://www.geocities.com/g_w_reynolds/sr1sieve/
To report bugs, email me (Geoff): g_w_reynolds at yahoo.co.nz.
SR1SIEVE
========
Sr1sieve is Srsieve specialised for a single sequence k*b^n+/-1.
(Note that when sieving 3 or more sequences over the same range it is
normally much faster to sieve them together with srsieve or sr2sieve than
individually with sr1sieve.)
Command line options (-P, -i and at least one of -o or -f are required):
-p --pmin P0
-P --pmax P1 Sieve for factors p in the range P0 <= p <= P1
-i --input FILE Read sieve from NewPGen format file FILE.
-o --output FILE Write sieve to NewPGen format file FILE.
-f --factors FILE Append new factors to file FILE.
-C --cache-file FILE Load (or save) Legendre symbol tables from (or to) FILE.
-s --save TIME Update output file every TIME (default 60) minutes.
-l --L1-cache SIZE Assume L1 data cache is SIZE Kb.
-L --L2-cache SIZE Assume L2 cache is SIZE Kb.
-B --baby METHOD Use METHOD for baby step mulmods.
-G --giant METHOD Use METHOD for giant step mulmods.
-H --hashtable SIZE Force use of a SIZE Kb hashtable.
-Q --subseq Q Force sieving k*b^n+c as subsequences (k*b^d)*(b^Q)^m+c.
-x --no-lookup Don't pre-compute Legendre symbol lookup tables.
-z --lower-priority Run at low priority. (-zz lower).
-Z --raise-priority Run at high priority. (-ZZ higher).
-A --affinity N Set affinity to CPU N.
-d --duplicates Report factors that don't eliminate any composite.
-q --quiet Don't print found factors.
-v --verbose Print some extra messages.
-h --help Print this help.
Some of the following additional options may also be available:
--amd Use CMOV optimisations.
--intel Don't use CMOV optimisations.
--sse2 Use SSE2 vector optimisations.
--no-sse2 Don't use SSE2 vector optimisations.
-t --threads NUM Start NUM child threads. (Default 0).
For a given sequence k*b^n+c and prime factor p, the following limits apply:
1 < k < 2^63.
1 < b < 2^32.
0 < n < 2^32.
|c| = 1.
b < p < 2^52 (or 2^62 for x86/x86-64, 2^63 for ppc64).
Only factors larger than b will be found, so the sieve must be started
and sieved until p >= b with another program (NewPGen, Srsieve).
If core(k)*core(b) is large, where core(x) is the squarefree part of x, then
a lot of initialization time and memory may be required. To avoid this the
-x switch can be used, at some cost to performance. Alternatively, the -C
switch can be used to write the initialization data to file, which will be
used to speed up initialization the next time the sieve is started with the
-C switch.
If sr1sieve is interrupted (e.g. pressing ctrl-c) or terminated nicely
(e.g. by running: kill `pidof sr1sieve`) then any output files will be
updated before it finishes. Beware that this doesn't happen in Windows when
closing the sr1sieve window by clicking the close button, so press ctrl-c.
If no command line arguments are given but `sr1sieve-command-line.txt'
exists in the current directory, then the command line will be as if the
first line of this file had been used to invoke sr1sieve. This may be useful
on some GUI machines where the command shell and batch files have been
disabled for security reasons.