[help]
YAFU Version 1.34
--------------------------------------------------------------------------------
Introduction:
--------------------------------------------------------------------------------
YAFU is an interactive mathematical environment, similar to
MATLAB, pari/gp, or bc. You write expressions on the command line,
and it will interpret and evaluate them. Results can be assigned
to variables, and variables can be used in expressions. Use 'quit'
or 'exit' to exit the application.
You can also call yafu from the OS command line, either by providing
an argument to yafu like this:
yafu "2+2"
or
yafu "siqs(rsa(200))"
Or by redirecting input from somewhere else:
echo "2+2" | yafu
yafu < in.txt
The use of quotes around the expressions may or may not be necessary
depending on the OS. All expressions supported in the interactive
environment are supported in this way.
In addition, when providing arguments to yafu you can specify
flags to change program behavior. Supported flags are:
-p run yafu at idle priority
-B1pm1 <num> B1 bound in the pm1 method
-B1pp1 <num> B1 bound in the pp1 method
-B1ecm <num> B1 bound in the ECM method
-rhomax <num> max iterations in the rho method
-B2pm1 <num> B2 bound in the pm1 method
-B2pp1 <num> B2 bound in the pp1 method
-B2ecm <num> B2 bound in the ECM method
-qssave <name> Name of the siqs savefile to use in this session
-siqsR <num> Stop after finding num relations in siqs
-siqsT <num> Stop after num seconds in siqs
-logfile <name> Name of the logfile to use in this session
-seed <num,num> 32 bit numbers for use in seeding the RNG <highseed,lowseed>
-batchfile <name> Name of batchfile to use in command line job. Items are
removed from the batchfile as they are completed.
-sigma <num> Input to ECM's sigma parameter. Limited to 32 bits.
-session <name> Use name instead of the default session.log
-threads <num> Use num sieving threads in SIQS and ECM
-v Use to increase verbosity of output, can be used
multiple times
-silent No output except to log file (not available in interactive
environment)
-pfile Adding this flag causes the primes() function to output primes
to primes.txt
-pscreen Adding this flag causes the primes() function to output primes
to the screen
-forceDLP Adding this flag forces SIQS to use double large primes
-fmtmax <num> max iterations for the fermat method
-noopt flag to force siqs to not perform optimization on the small
tf bound
-vproc Increase verbosity of processor detection code on startup
-noecm Set this flag to skip all ECM stages in the factor() function
and instead proceed directly to QS/NFS after small factor
detection.
-one Tells factor() to stop factoring after finding one factor.
-ggnfs_dir <path> path to ggnfs binaries
-op <name> Tells factor() to output primes and prps to file <name>.
-of <name> Tells factor() to output an input number and all found factors
to file <name>.
-ou <name> Tells factor() to output unfactored composites to file <name>.
-no_expr When outputting numbers to file, do not print expression form,
show full decimal expansion.
-plan <name> Tells factor() to follow one of the following pretesting plans:
<name> = none: do only trial division and rho
<name> = noecm: stop before first ecm step and start
nfs/qs
<name> = light: pretest to t-level 2/7 the size of
the input before starting qs/nfs
<name> = normal: pretest to t-level 4/13 the size of
the input before starting qs/nfs
<name> = deep: pretest to t-level 1/3 the size of the
input before starting qs/nfs
<name> = custom: pretest to t-level specified by the
ratio in the �pretest_ratio option
-pretest_ratio <num> A fractional value used in the plan=custom mode of operation to
determine the depth of pretesting. Inputs are pretested
to t-level equal to size of input * pretest_ratio
-work <num> Assert to factor() that the input has already received pretesting
equivalent to the specified t-level. In other words, if you know
that an input has received ~900 ecm curves at B1=1M, then
specify �work 35. This value may be input as floating point.
-xover <num> Use this option to specify the decimal digit size beyond which nfs
should be used instead of qs. Specifying this option overrides
any crossover point computed from tuning data. May be entered
as a floating point number.
-pretest [num] Use this switch with factor() for ECM pretesting of the input number.
Optionally provide an integer value specifing the maximum level of
pretesting to do (up to "num" digits, or a t-level of "num")
-ecm_path <path> full path to ecm binary
-nprp <num> Specify the number of witnesses to every Rabin-Miller test in yafu
-ext_ecm <num> specify the B1 value beyond which yafu will attempt to use
external ecm binaries. below the specified threshold it will use
built-in ecm code
-aprcl_p <num> Specify the upper size limit of numbers to be proved prime by APR-CL
(in decimal digits, default = 300, hard upper limit = 6021)
-aprcl_d <num> Specify the upper size limit of numbers that are proved prime by
APR-CL "silently". Above this limit, APR-CL progress will be
printed (in decimal digits, default = 200)
NFS BEHAVIOR OPTIONS - configuring phases to run
general info: if none of these options are specified, yafu will perform all of
them in order (poly search, sieving, filter, LA, sqrt). On restarts, the set
of phases performed is automatically determined by yafu and depends on the state
of one or more saved files associated with the input number. If any of the
following 5 options are specified, only those phases will be performed; checks
against saved files will still be in place (i.e., refusal to overwrite data files)
-np [X,Y] Perform poly search step within nfs(). NOTE: any existing
poly files will be overwritten. Optionally, provide a range of
leading coefficients over which to search in the format: start,stop
-ns [X,Y] Perform sieving step within nfs() if a valid job file exists
for the input number and if the input number is the same as
that specified in an existing data file. Optionally, provide
a range of special Q over which to sieve in the format: start,stop
-nc Perform postprocessing step within nfs(), starting with
filtering
-nc2 Perform postprocessing step within nfs(), starting with
linear algebra
-nc3 Perform postprocessing step within nfs(), starting with sqrt
NFS BEHAVIOR OPTIONS - general
-lathreads <num> Use specified number of threads for linear algebra only. If
not specified, 'threads' threads are used (which defaults to 1).
-a Use special Q on the algebraic side within nfs()
-r Use special Q on the rational side within nfs()
-job <name> Name of input file in nfs - use a file other than ggnfs.job
as the input job file.
-o <name> Name of output file in nfs() - use a file other than
msieve.dat as the output data file
-ggnfsT <num> Timeout to apply to nfs() command, in seconds (default = infinity)
-psearch <name> Specify method of parallel polynomial selection with N threads:
'fast' - divides the search time by N (default)
'wide' - normal time deadline, search N times the
leading coefficient range
'deep' - normal time deadline, search every leading
coefficient with N threads
Note that when N = 1, this option has no effect.
-pbatch <num> Size of blocks of leading coefficients to distribute during
NFS polynomial selection. Default is 250.
-R Must specify in order to restart when a previous savefile exists
-siever <num> Specify the ggnfs siever version to use, where <num> is
t