XGitUrl: https://scm.gforge.inria.fr/anonscm/gitweb?p=cadonfs%2Fcadonfs.git;a=blobdiff_plain;f=sieve%2FREADME.descent;h=8dde04ea2a90ca46e42e28fb6c9678fdaf92c22c;hp=d4de099acf8bbd0981d972e7b5b04578c042e24e;hb=097a56c0990e51859483b2472b13bb66d1041d10;hpb=f28ec05a04913b948faa35b861c8fb48205924a6
diff git a/sieve/README.descent b/sieve/README.descent
old mode 100644
new mode 100755
index d4de099..8dde04e
 a/sieve/README.descent
+++ b/sieve/README.descent
@@ 2,35 +2,11 @@ Using las for the descent
=========================
NOTE: there is now a general script that can compute the logarithm of a
given target. See scripts/descent.py . The documentation below is still
important, since, for instance, it describes how to create a hint file.
+given target. See scripts/descent.py . The documentation below now
+contains just how to create a hint file.

The 'las' binary can be used not only for generating relations in the
factorization or dlp context, but also to "descend" elements in order to
compute the logarithms of elements that are not in the factor base.
We assume here that the reader is familiar with the literature on the
subject.

Initialization of the descent


No tool is provided yet for this stage, which relies heavily on ECM.
We assume that it has been done by a separate program, and that we endup
with a bunch of nottoolarge integers whose logs are required in order
to deduce the log of the target element.

WARNING: We assume that these nottoolarge integers are a few bits below
64 bits. Even for recordscale computations, this should not be a problem
to initialize the descent up to 55 bits smooth elements.
TODO: still true?

Compiling las_descent


A special las binary must used for the "descent" mode. It is called
"las_descent", and has to be built explicitly (just type "make
las_descent").
+NOTE: for the descent, las must be compiled with appropriate flags. The
+las_descent binary is automatically compiled with these flags.
Writing a hint table

@@ 38,6 +14,9 @@ Writing a hint table
The descent requires a "descent hint table" that contains information
about how to tune the parameters along the descent.
+Examples of descenthint tables are given as .hint files in the params_dl/
+directory.
+
Each line correspond to a bitsize of a specialq for one side. For
example:
55r 0.028 1.00 I=15 400000,47,65 400000,48,94
@@ 64,9 +43,6 @@ There must be one line for each size that can occur during the descent,
and the parameters must be so that there is a high chance to get at least
one relation.
An example descenthinttable is given with the ./scripts/descent.py
script.

Alternatively, the hint file may also use the syntax "55@0" instead of
"55r", to mean "bitsize 55 on size 0".
@@ 139,35 +115,3 @@ unchanged. Next lpb should grow. Setting lpb to above the current
specialq size is allowed, but might trigger loops of course (if on the
same side as the specialq).
Preparing the Todo file


Each prime integer q for which the log is wanted must be converted into a
rational ideal. This amounts to computing the root of the linear
polynomial in the *.poly file modulo q. All of those must be put in a
"todo file", each on one line, with the format
 r
where "r" stands for "rational".

The letters r or a are actually aliases to specifying the side. Giving an
integer (currently only 0 or 1, respectively) has exactly the same
meaning.

Running las with appropriate arguments


The command line for las must be something like (assuming the prefix name
for files is p120):

/buildpath/sieve/las poly p120.poly fb p120.roots.gz I 15 \
 lim0 4000000 lim1 4000000 lpb0 25 lpb1 26 mfb0 100 mfb1 100 \
 todo p120.todo allowlargesq descenthint p120.hints

Note that:
 using mt is not recommended in this context (untested).
 I, lim0, lim1 must be the same as the one in the hint file.
 lpb0, lpb1 give the limit where to stop the descent.
 mfb0, mfb1 are not used, but mandatory (!)

If during the execution, it prints a failure message, then you should
probably increase the corresponding parameters in the hint file.