Name | Date | Size | #Lines | LOC | ||
---|---|---|---|---|---|---|
.. | 03-May-2022 | - | ||||
ecm/ | H | 03-May-2022 | - | 18,581 | 13,174 | |
strategies/ | H | 03-May-2022 | - | 7,685 | 5,460 | |
Makefile | H A D | 16-Sep-2021 | 266 | 7 | 4 | |
README.descent | H A D | 16-Sep-2021 | 5.5 KiB | 120 | 98 | |
README.fb_format | H A D | 16-Sep-2021 | 1.2 KiB | 39 | 27 | |
basicnt.h | H A D | 16-Sep-2021 | 1.1 KiB | 54 | 35 | |
bucket-push-update.hpp | H A D | 16-Sep-2021 | 1.8 KiB | 67 | 59 | |
bucket.cpp | H A D | 16-Sep-2021 | 21.1 KiB | 607 | 468 | |
bucket.hpp | H A D | 16-Sep-2021 | 23 KiB | 606 | 402 | |
display-lattice-adjust.sage | H A D | 16-Sep-2021 | 11.7 KiB | 330 | 288 | |
dupsup.cpp | H A D | 16-Sep-2021 | 6.8 KiB | 214 | 156 | |
fake_rels.cpp | H A D | 16-Sep-2021 | 24.6 KiB | 727 | 502 | |
fb-types.h | H A D | 16-Sep-2021 | 2.6 KiB | 88 | 53 | |
fb.cpp | H A D | 16-Sep-2021 | 77.8 KiB | 2,164 | 1,549 | |
fb.hpp | H A D | 16-Sep-2021 | 30.4 KiB | 766 | 446 | |
freerel.cpp | H A D | 16-Sep-2021 | 10.2 KiB | 299 | 214 | |
inspect-batch-file.pl | H A D | 16-Sep-2021 | 1.4 KiB | 60 | 43 | |
inspect-fbc-file.pl | H A D | 16-Sep-2021 | 2.5 KiB | 78 | 61 | |
las-apply-buckets.hpp | H A D | 16-Sep-2021 | 5.5 KiB | 164 | 136 | |
las-arith.cpp | H A D | 16-Sep-2021 | 525 | 24 | 15 | |
las-arith.hpp | H A D | 16-Sep-2021 | 13.3 KiB | 426 | 249 | |
las-auxiliary-data.cpp | H A D | 16-Sep-2021 | 5.8 KiB | 170 | 128 | |
las-auxiliary-data.hpp | H A D | 16-Sep-2021 | 7.4 KiB | 202 | 105 | |
las-base.hpp | H A D | 16-Sep-2021 | 1,003 | 37 | 19 | |
las-bkmult.cpp | H A D | 16-Sep-2021 | 1.9 KiB | 60 | 49 | |
las-bkmult.hpp | H A D | 16-Sep-2021 | 2.2 KiB | 59 | 53 | |
las-choose-sieve-area.cpp | H A D | 16-Sep-2021 | 5.7 KiB | 178 | 130 | |
las-choose-sieve-area.hpp | H A D | 16-Sep-2021 | 784 | 27 | 18 | |
las-cofac-standalone.cpp | H A D | 16-Sep-2021 | 5.3 KiB | 154 | 128 | |
las-cofac-standalone.hpp | H A D | 16-Sep-2021 | 1.8 KiB | 50 | 43 | |
las-cofactor.cpp | H A D | 16-Sep-2021 | 9.3 KiB | 270 | 162 | |
las-cofactor.hpp | H A D | 16-Sep-2021 | 2.6 KiB | 73 | 62 | |
las-config.c | H A D | 16-Sep-2021 | 2 KiB | 69 | 60 | |
las-config.h | H A D | 16-Sep-2021 | 2.9 KiB | 108 | 47 | |
las-coordinates.cpp | H A D | 16-Sep-2021 | 5.1 KiB | 168 | 123 | |
las-coordinates.hpp | H A D | 16-Sep-2021 | 3 KiB | 83 | 61 | |
las-descent-trees.cpp | H A D | 16-Sep-2021 | 4.8 KiB | 154 | 134 | |
las-descent-trees.hpp | H A D | 16-Sep-2021 | 11 KiB | 293 | 221 | |
las-descent.cpp | H A D | 16-Sep-2021 | 6.9 KiB | 145 | 119 | |
las-descent.hpp | H A D | 16-Sep-2021 | 447 | 14 | 10 | |
las-detached-cofac.cpp | H A D | 16-Sep-2021 | 7.5 KiB | 205 | 126 | |
las-detached-cofac.hpp | H A D | 16-Sep-2021 | 865 | 24 | 18 | |
las-divide-primes.cpp | H A D | 16-Sep-2021 | 9.8 KiB | 252 | 199 | |
las-divide-primes.hpp | H A D | 16-Sep-2021 | 866 | 29 | 22 | |
las-dlog-base.cpp | H A D | 16-Sep-2021 | 5.5 KiB | 160 | 115 | |
las-dlog-base.hpp | H A D | 16-Sep-2021 | 755 | 31 | 24 | |
las-dumpfile.cpp | H A D | 16-Sep-2021 | 1.1 KiB | 44 | 38 | |
las-dumpfile.hpp | H A D | 16-Sep-2021 | 545 | 21 | 13 | |
las-duplicate.cpp | H A D | 16-Sep-2021 | 17 KiB | 512 | 305 | |
las-duplicate.hpp | H A D | 16-Sep-2021 | 627 | 27 | 19 | |
las-fbroot-qlattice.hpp | H A D | 16-Sep-2021 | 19.4 KiB | 501 | 300 | |
las-fill-in-buckets.cpp | H A D | 16-Sep-2021 | 51.8 KiB | 1,431 | 945 | |
las-fill-in-buckets.hpp | H A D | 16-Sep-2021 | 1.8 KiB | 65 | 56 | |
las-forwardtypes.hpp | H A D | 16-Sep-2021 | 878 | 33 | 13 | |
las-galois.cpp | H A D | 16-Sep-2021 | 7.3 KiB | 256 | 207 | |
las-galois.hpp | H A D | 16-Sep-2021 | 402 | 17 | 11 | |
las-globals.cpp | H A D | 16-Sep-2021 | 500 | 27 | 16 | |
las-globals.hpp | H A D | 16-Sep-2021 | 717 | 28 | 18 | |
las-info.cpp | H A D | 16-Sep-2021 | 9.8 KiB | 239 | 162 | |
las-info.hpp | H A D | 16-Sep-2021 | 9.1 KiB | 239 | 151 | |
las-memory.cpp | H A D | 16-Sep-2021 | 4.7 KiB | 161 | 134 | |
las-memory.hpp | H A D | 16-Sep-2021 | 2.6 KiB | 69 | 31 | |
las-multiobj-globals.cpp | H A D | 16-Sep-2021 | 592 | 23 | 13 | |
las-multiobj-globals.hpp | H A D | 16-Sep-2021 | 353 | 13 | 5 | |
las-norms.cpp | H A D | 16-Sep-2021 | 44.1 KiB | 1,251 | 653 | |
las-norms.hpp | H A D | 16-Sep-2021 | 8.3 KiB | 213 | 136 | |
las-output.cpp | H A D | 16-Sep-2021 | 3.6 KiB | 112 | 78 | |
las-output.hpp | H A D | 16-Sep-2021 | 965 | 35 | 23 | |
las-parallel.cpp | H A D | 16-Sep-2021 | 46.5 KiB | 1,225 | 1,016 | |
las-parallel.hpp | H A D | 16-Sep-2021 | 5 KiB | 134 | 96 | |
las-plattice.cpp | H A D | 16-Sep-2021 | 834 | 23 | 20 | |
las-plattice.hpp | H A D | 16-Sep-2021 | 32.5 KiB | 951 | 574 | |
las-process-bucket-region.cpp | H A D | 16-Sep-2021 | 35.6 KiB | 924 | 574 | |
las-process-bucket-region.hpp | H A D | 16-Sep-2021 | 1.6 KiB | 54 | 26 | |
las-qlattice.cpp | H A D | 16-Sep-2021 | 5 KiB | 165 | 111 | |
las-qlattice.hpp | H A D | 16-Sep-2021 | 1.9 KiB | 67 | 47 | |
las-report-stats.cpp | H A D | 16-Sep-2021 | 1.8 KiB | 43 | 36 | |
las-report-stats.hpp | H A D | 16-Sep-2021 | 5.9 KiB | 134 | 114 | |
las-sieve-shared-data.cpp | H A D | 16-Sep-2021 | 5.1 KiB | 141 | 108 | |
las-sieve-shared-data.hpp | H A D | 16-Sep-2021 | 5.6 KiB | 167 | 88 | |
las-sieve2357.cpp | H A D | 16-Sep-2021 | 17.1 KiB | 415 | 346 | |
las-sieve2357.hpp | H A D | 16-Sep-2021 | 3.3 KiB | 103 | 76 | |
las-siever-config.cpp | H A D | 16-Sep-2021 | 14.8 KiB | 394 | 289 | |
las-siever-config.hpp | H A D | 16-Sep-2021 | 9.2 KiB | 248 | 145 | |
las-smallsieve-glue.hpp | H A D | 16-Sep-2021 | 33.4 KiB | 824 | 490 | |
las-smallsieve-lowlevel.hpp | H A D | 16-Sep-2021 | 30.5 KiB | 614 | 497 | |
las-smallsieve-types.hpp | H A D | 16-Sep-2021 | 5.7 KiB | 154 | 81 | |
las-smallsieve.cpp | H A D | 16-Sep-2021 | 45.8 KiB | 1,147 | 683 | |
las-smallsieve.hpp | H A D | 16-Sep-2021 | 2.3 KiB | 67 | 49 | |
las-threads-work-data.cpp | H A D | 16-Sep-2021 | 13.3 KiB | 375 | 291 | |
las-threads-work-data.hpp | H A D | 16-Sep-2021 | 9.6 KiB | 284 | 125 | |
las-threads.cpp | H A D | 16-Sep-2021 | 11.2 KiB | 355 | 270 | |
las-threads.hpp | H A D | 16-Sep-2021 | 4.4 KiB | 100 | 72 | |
las-todo-entry.cpp | H A D | 16-Sep-2021 | 3.8 KiB | 141 | 112 | |
las-todo-entry.hpp | H A D | 16-Sep-2021 | 2.8 KiB | 86 | 57 | |
las-todo-list.cpp | H A D | 16-Sep-2021 | 18.9 KiB | 545 | 405 | |
las-todo-list.hpp | H A D | 16-Sep-2021 | 3.2 KiB | 109 | 88 | |
las-trialdiv.cpp | H A D | 16-Sep-2021 | 4.3 KiB | 112 | 77 | |
las-unsieve-sse2.cpp | H A D | 16-Sep-2021 | 20.4 KiB | 564 | 358 | |
las-unsieve.cpp | H A D | 16-Sep-2021 | 19.6 KiB | 621 | 496 | |
las-unsieve.hpp | H A D | 16-Sep-2021 | 3.7 KiB | 115 | 92 | |
las-where-am-i-debug.cpp | H A D | 16-Sep-2021 | 12.8 KiB | 388 | 296 | |
las-where-am-i-debug.hpp | H A D | 16-Sep-2021 | 3.9 KiB | 115 | 72 | |
las-where-am-i-prod.cpp | H A D | 16-Sep-2021 | 1.5 KiB | 58 | 24 | |
las-where-am-i-prod.hpp | H A D | 16-Sep-2021 | 1.2 KiB | 30 | 20 | |
las-where-am-i-proxy.hpp | H A D | 16-Sep-2021 | 1.6 KiB | 54 | 33 | |
las-where-am-i.hpp | H A D | 16-Sep-2021 | 516 | 19 | 8 | |
las.cpp | H A D | 16-Sep-2021 | 75.9 KiB | 1,874 | 1,278 | |
logapprox.cpp | H A D | 16-Sep-2021 | 10.1 KiB | 276 | 215 | |
logapprox.hpp | H A D | 16-Sep-2021 | 1.8 KiB | 45 | 33 | |
makefb.c | H A D | 16-Sep-2021 | 15.9 KiB | 587 | 509 | |
makefb.sage | H A D | 16-Sep-2021 | 3.9 KiB | 135 | 107 | |
trialdiv.cpp | H A D | 16-Sep-2021 | 11.8 KiB | 412 | 342 | |
trialdiv.hpp | H A D | 16-Sep-2021 | 1.9 KiB | 62 | 34 |
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