• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

ecm/H03-May-2022-18,58113,174

strategies/H03-May-2022-7,6855,460

MakefileH A D16-Sep-2021266 74

README.descentH A D16-Sep-20215.5 KiB12098

README.fb_formatH A D16-Sep-20211.2 KiB3927

basicnt.hH A D16-Sep-20211.1 KiB5435

bucket-push-update.hppH A D16-Sep-20211.8 KiB6759

bucket.cppH A D16-Sep-202121.1 KiB607468

bucket.hppH A D16-Sep-202123 KiB606402

display-lattice-adjust.sageH A D16-Sep-202111.7 KiB330288

dupsup.cppH A D16-Sep-20216.8 KiB214156

fake_rels.cppH A D16-Sep-202124.6 KiB727502

fb-types.hH A D16-Sep-20212.6 KiB8853

fb.cppH A D16-Sep-202177.8 KiB2,1641,549

fb.hppH A D16-Sep-202130.4 KiB766446

freerel.cppH A D16-Sep-202110.2 KiB299214

inspect-batch-file.plH A D16-Sep-20211.4 KiB6043

inspect-fbc-file.plH A D16-Sep-20212.5 KiB7861

las-apply-buckets.hppH A D16-Sep-20215.5 KiB164136

las-arith.cppH A D16-Sep-2021525 2415

las-arith.hppH A D16-Sep-202113.3 KiB426249

las-auxiliary-data.cppH A D16-Sep-20215.8 KiB170128

las-auxiliary-data.hppH A D16-Sep-20217.4 KiB202105

las-base.hppH A D16-Sep-20211,003 3719

las-bkmult.cppH A D16-Sep-20211.9 KiB6049

las-bkmult.hppH A D16-Sep-20212.2 KiB5953

las-choose-sieve-area.cppH A D16-Sep-20215.7 KiB178130

las-choose-sieve-area.hppH A D16-Sep-2021784 2718

las-cofac-standalone.cppH A D16-Sep-20215.3 KiB154128

las-cofac-standalone.hppH A D16-Sep-20211.8 KiB5043

las-cofactor.cppH A D16-Sep-20219.3 KiB270162

las-cofactor.hppH A D16-Sep-20212.6 KiB7362

las-config.cH A D16-Sep-20212 KiB6960

las-config.hH A D16-Sep-20212.9 KiB10847

las-coordinates.cppH A D16-Sep-20215.1 KiB168123

las-coordinates.hppH A D16-Sep-20213 KiB8361

las-descent-trees.cppH A D16-Sep-20214.8 KiB154134

las-descent-trees.hppH A D16-Sep-202111 KiB293221

las-descent.cppH A D16-Sep-20216.9 KiB145119

las-descent.hppH A D16-Sep-2021447 1410

las-detached-cofac.cppH A D16-Sep-20217.5 KiB205126

las-detached-cofac.hppH A D16-Sep-2021865 2418

las-divide-primes.cppH A D16-Sep-20219.8 KiB252199

las-divide-primes.hppH A D16-Sep-2021866 2922

las-dlog-base.cppH A D16-Sep-20215.5 KiB160115

las-dlog-base.hppH A D16-Sep-2021755 3124

las-dumpfile.cppH A D16-Sep-20211.1 KiB4438

las-dumpfile.hppH A D16-Sep-2021545 2113

las-duplicate.cppH A D16-Sep-202117 KiB512305

las-duplicate.hppH A D16-Sep-2021627 2719

las-fbroot-qlattice.hppH A D16-Sep-202119.4 KiB501300

las-fill-in-buckets.cppH A D16-Sep-202151.8 KiB1,431945

las-fill-in-buckets.hppH A D16-Sep-20211.8 KiB6556

las-forwardtypes.hppH A D16-Sep-2021878 3313

las-galois.cppH A D16-Sep-20217.3 KiB256207

las-galois.hppH A D16-Sep-2021402 1711

las-globals.cppH A D16-Sep-2021500 2716

las-globals.hppH A D16-Sep-2021717 2818

las-info.cppH A D16-Sep-20219.8 KiB239162

las-info.hppH A D16-Sep-20219.1 KiB239151

las-memory.cppH A D16-Sep-20214.7 KiB161134

las-memory.hppH A D16-Sep-20212.6 KiB6931

las-multiobj-globals.cppH A D16-Sep-2021592 2313

las-multiobj-globals.hppH A D16-Sep-2021353 135

las-norms.cppH A D16-Sep-202144.1 KiB1,251653

las-norms.hppH A D16-Sep-20218.3 KiB213136

las-output.cppH A D16-Sep-20213.6 KiB11278

las-output.hppH A D16-Sep-2021965 3523

las-parallel.cppH A D16-Sep-202146.5 KiB1,2251,016

las-parallel.hppH A D16-Sep-20215 KiB13496

las-plattice.cppH A D16-Sep-2021834 2320

las-plattice.hppH A D16-Sep-202132.5 KiB951574

las-process-bucket-region.cppH A D16-Sep-202135.6 KiB924574

las-process-bucket-region.hppH A D16-Sep-20211.6 KiB5426

las-qlattice.cppH A D16-Sep-20215 KiB165111

las-qlattice.hppH A D16-Sep-20211.9 KiB6747

las-report-stats.cppH A D16-Sep-20211.8 KiB4336

las-report-stats.hppH A D16-Sep-20215.9 KiB134114

las-sieve-shared-data.cppH A D16-Sep-20215.1 KiB141108

las-sieve-shared-data.hppH A D16-Sep-20215.6 KiB16788

las-sieve2357.cppH A D16-Sep-202117.1 KiB415346

las-sieve2357.hppH A D16-Sep-20213.3 KiB10376

las-siever-config.cppH A D16-Sep-202114.8 KiB394289

las-siever-config.hppH A D16-Sep-20219.2 KiB248145

las-smallsieve-glue.hppH A D16-Sep-202133.4 KiB824490

las-smallsieve-lowlevel.hppH A D16-Sep-202130.5 KiB614497

las-smallsieve-types.hppH A D16-Sep-20215.7 KiB15481

las-smallsieve.cppH A D16-Sep-202145.8 KiB1,147683

las-smallsieve.hppH A D16-Sep-20212.3 KiB6749

las-threads-work-data.cppH A D16-Sep-202113.3 KiB375291

las-threads-work-data.hppH A D16-Sep-20219.6 KiB284125

las-threads.cppH A D16-Sep-202111.2 KiB355270

las-threads.hppH A D16-Sep-20214.4 KiB10072

las-todo-entry.cppH A D16-Sep-20213.8 KiB141112

las-todo-entry.hppH A D16-Sep-20212.8 KiB8657

las-todo-list.cppH A D16-Sep-202118.9 KiB545405

las-todo-list.hppH A D16-Sep-20213.2 KiB10988

las-trialdiv.cppH A D16-Sep-20214.3 KiB11277

las-unsieve-sse2.cppH A D16-Sep-202120.4 KiB564358

las-unsieve.cppH A D16-Sep-202119.6 KiB621496

las-unsieve.hppH A D16-Sep-20213.7 KiB11592

las-where-am-i-debug.cppH A D16-Sep-202112.8 KiB388296

las-where-am-i-debug.hppH A D16-Sep-20213.9 KiB11572

las-where-am-i-prod.cppH A D16-Sep-20211.5 KiB5824

las-where-am-i-prod.hppH A D16-Sep-20211.2 KiB3020

las-where-am-i-proxy.hppH A D16-Sep-20211.6 KiB5433

las-where-am-i.hppH A D16-Sep-2021516 198

las.cppH A D16-Sep-202175.9 KiB1,8741,278

logapprox.cppH A D16-Sep-202110.1 KiB276215

logapprox.hppH A D16-Sep-20211.8 KiB4533

makefb.cH A D16-Sep-202115.9 KiB587509

makefb.sageH A D16-Sep-20213.9 KiB135107

trialdiv.cppH A D16-Sep-202111.8 KiB412342

trialdiv.hppH A D16-Sep-20211.9 KiB6234

README.descent

1Using las for the descent
2=========================
3
4NOTE: there is now a general script that can compute the logarithm of a
5given target. See scripts/descent.py . The documentation below now
6contains just how to create a hint file.
7
8NOTE: for the descent, las must be compiled with appropriate flags. The
9las_descent binary is automatically compiled with these flags.
10
11Writing a hint table
12-------------------
13
14The descent requires a "descent hint table" that contains information
15about how to tune the parameters along the descent.
16
17Examples of descent-hint tables are given as .hint files in the params_dl/
18directory.
19
20Each line correspond to a bit-size of a special-q for one side. For
21example:
22  55r 0.028 1.00 I=15 400000,47,65 400000,48,94
23means (in order):
24  55r   : this line is about a 55-bit special-q on the rational side
25  0.028 : expected time in seconds to find a relation
26  1.00  : probability of success
27  I=15  : the I to use
28  400000,47,65 : parameters for the rational side (0 side)
29  		     lim0,lpb0,mfb0
30  400000,48,94 : same for the other side (1).
31
32There are in fact three ways to specify the parameters on both sides.
33400000,47,65 : set lim, lpb, mfb
34400000,47,1.2 : set lim, lpb, lambda (based on the fact the the third field is < 10)
35400000,47,65,1.2 : set lim, lpb, mfb, lambda
36(in the first case, lambda defaults to mfb0/lpb0+0.1 as everywhere else
37in cado-nfs).
38
39At the moment, it is *mandatory* to have the same values for lim0, lim1
40on each line. This might change if we see a clear need to make them vary.
41The value of I can vary, but then the value of I passed on the command
42line of las_descent must not be smaller.
43
44There must be one line for each size that can occur during the descent,
45and the parameters must be so that there is a high chance to get at least
46one relation.
47
48Alternatively, the hint file may also use the syntax "55@0" instead of
49"55r", to mean "bitsize 55 on size 0".
50
51Writing a hint file can be done by hand. There is a helper script,
52though, which can assist in this task. It can be used as follows (the
53following information may also be used as a guide for how a hint file
54should be created). First, one should start with a draft file, containing
55rough guess data for the smallest large primes, at least one line for
56each special-q side. For example:
57    22@0 0 0 I=9 50000,22,24 100000,22,24
58    22@1 0 0 I=9 50000,22,24 100000,22,24
59because this is a guess, the 0 values for the average time and success
60probability are normal.
61
62Based on this, and replicating the configuration for the larger values,
63the script will provide timing data as follows (we assume a bash-like
64shell is used).
65
66$ ./scripts/hintfile-helper.py --cadobindir ./build/`hostname` --datadir ~/Local/p59/ --prefix p59  --ntrials 100 --hintfile /tmp/p59.hint --qrange "$(echo {22..37}{r,a})"
6722@0 0.0027 1.0000 I=9 50000,22,24 100000,22,24
6822@1 0.0030 1.0000 I=9 50000,22,24 100000,22,24
6923@0 0.0029 0.9900 I=9 50000,22,24 100000,22,24
7023@1 0.0033 1.0000 I=9 50000,22,24 100000,22,24
7124@0 0.0028 0.9700 I=9 50000,22,24 100000,22,24
7224@1 0.0034 1.0000 I=9 50000,22,24 100000,22,24
7325@0 0.0031 0.9500 I=9 50000,22,24 100000,22,24
74
75Note the --qrange argument, which specifies the order in which the sizes
76are tried.
77
78You should pay attention to two things here. The success probability, and
79the average time. Tinkering with parameters so as to lower the average
80time is ok, as long as it leaves the success probability high. As q
81grows, things get awry at some point, and you have to modify the
82parameters so as to increase the success probability. In the experiment
83above, success probability only 97% for 24r is unsatisfactory.
84
85We can use the script to test alternative settings for this special-q
86side:
87
88$ ./scripts/hintfile-helper.py --cadobindir ./build/cassoulet --datadir ~/Local/p59/ --prefix p59 --ntrials 100 --hintfile /tmp/p59.hint --hintline "24r 0.0035 1.0000 I=9 50000,22,24,1.2 100000,24,45,1.5"
8924@0 0.0034 1.0000 I=9 50000,22,24,1.2 100000,24,45,1.5
90
91Another way to do the same thing is to first keep the first five lines of
92the output of the first script run into our hint file, modify the fifth
93(the one for 24r), and re-run. We get the following:
9422@0 0.0033 1.0000 I=9 50000,22,24,1.2 100000,22,24,1.2
9522@1 0.0031 1.0000 I=9 50000,22,24,1.2 100000,22,24,1.2
9623@0 0.0034 0.9900 I=9 50000,22,24,1.2 100000,22,24,1.2
9723@1 0.0030 1.0000 I=9 50000,22,24,1.2 100000,22,24,1.2
9824@0 0.0032 1.0000 I=9 50000,23,26,1.2 100000,24,45,1.5
9924@1 0.0028 1.0000 I=9 50000,22,24,1.2 100000,22,24,1.2
10025@0 0.0029 0.9900 I=9 50000,23,26,1.2 100000,24,45,1.5
10125@1 0.0032 1.0000 I=9 50000,22,24,1.2 100000,22,24,1.2
10226@0 0.0038 0.9700 I=9 50000,23,26,1.2 100000,24,45,1.5
103
104The process can then continue iteratively. Note that hintfile-helper.py
105also accepts the --replace option, which rewrites the lines of the
106hintfile you provide witht the measurements it does (which means, if you
107have an editor open on this file, that you will have to explicitly reload
108the file).
109
110Here are a few hints about the influential parameters. Increasing I will
111augment the time significantly, and will probably yield better success.
112For special-q on the rational side, then the algebraic side parameters
113need to be bumped up somewhat, because then there is a significant
114unbalance in the norms. Beyond that, all parameters are bound to increase
115mildly as q grows. mfb0 has to grow first, especially because lim remains
116unchanged. Next lpb should grow. Setting lpb to above the current
117special-q size is allowed, but might trigger loops of course (if on the
118same side as the special-q).
119
120

README.fb_format

1Factor base file format:
2------------------------
3
4An entry is of the form:
5
6q:n1,n2: r1,r2,r3
7
8In the (frequent) case where n1,n2=1,0 this can be abridged with:
9
10q: r1,r2,r3
11
12Here, q is a prime or a prime power, ri are the corresponding roots and
13the contribution that must be subtracted at these positions is (n1-n2)*logp
14(assuming smaller powers of this prime have already be taken care of).
15By position, we mean (a,b) such that a - b*ri = 0 mod q.
16
17The roots ri must be sorted in increasing order.  If a root ri is greater
18or equal to q, it means that this is a projective root: subtracting q
19gives a root for the reciprocal polynomial (or equivalently, (1:(ri-q))
20is the projective root).
21
22It is allowed to have several lines with the same q, but there must be
23only one line for a given (q,n1,n2) triple.
24
25It is not assumed that the entries are sorted in increasing values of q.
26For small prime and prime powers, this is clearly not the case, since we
27might want to have all powers of the same prime at the same place in the
28file.
29
30Lines starting with a # are comments.
31
32
33Rem:
34----
35For reference, the old factor base format was based on lines of the form:
36p: r1,r2,r3
37with no powers and no indication of the multiple of log p to be
38subtracted (and no projective roots).
39