Bill Allombert on Sat, 01 Dec 2012 21:52:47 +0100

[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

 Work on polrootsff/factorff

```Dear PARI developers,

I am working on improving factorff and polrootsff which have historically
been quite slow in PARI.

I join two benchmarks. The first file is for Trager algorithm (default) and the
second for Berlekamp algorithm.  The third column is polrootsff timings and the
fourth is factorff timings.

We see that Berlekamp is consistently much faster than Trager for large degree.

There is three oddities:
1) We did not implement Berlekamp over F_2^n yet, so we are still using Trager
for that case in the second file, so we get indentical results.

2) We have dedicated code for Trager over F_2^n but not for polrootsff yet, so
factorff is much faster.

3) For degree 2 polynomials, polrootsff is much slower than factorff, because
the square root function over Fq is slow for large degree.

Cheers,
Bill.
```
```Reading GPRC: /home/bill/.gprc ...Done.

GP/PARI CALCULATOR Version 2.6.0 (development git-e060fdc)
amd64 running linux (x86-64/GMP-4.3.2 kernel) 64-bit version
compiled: Nov 30 2012, gcc version 4.4.5 (Debian 4.4.5-8)
(readline v5.2 disabled, extended help enabled)

Copyright (C) 2000-2011 The PARI Group

PARI/GP is free software, covered by the GNU General Public License, and comes
WITHOUT ANY WARRANTY WHATSOEVER.

Type ? for help, \q to quit.
Type ?12 for how to get moral (and possibly technical) support.

parisize = 1000000000, primelimit = 500509
time = [0;33m0 ms[0m.
time = [0;33m0 ms[0m.
time = [0;33m0 ms[0m.
....log2 p:   1, n:   2, deg:   2 |      0.00      0.00      0.00      0.00
....log2 p:   1, n:  10, deg:   2 |      0.00      0.00      0.01      0.01
....log2 p:   1, n:  30, deg:   2 |      0.00      0.00      0.00      0.00
....log2 p:   1, n: 100, deg:   2 |      0.00      0.00      0.00      1.00

....log2 p:   2, n:   2, deg:   2 |      0.02      0.02      0.01      0.03
....log2 p:   2, n:  10, deg:   2 |      0.03      0.03      0.08      0.12
....log2 p:   2, n:  30, deg:   2 |      0.00      0.00      1.00      1.00
....log2 p:   2, n: 100, deg:   2 |      1.00      1.00     10.00      9.00

....log2 p:   4, n:   2, deg:   2 |      0.02      0.02      0.02      0.04
....log2 p:   4, n:  10, deg:   2 |      0.06      0.06      0.19      0.19
....log2 p:   4, n:  30, deg:   2 |      0.00      0.00      1.00      1.00
....log2 p:   4, n: 100, deg:   2 |      2.00      2.00     48.00     14.00

....log2 p:  14, n:   2, deg:   2 |      0.00      0.00      0.03      0.05
....log2 p:  14, n:  10, deg:   2 |      0.00      0.00      0.00      0.00
....log2 p:  14, n:  30, deg:   2 |      0.00      0.00      3.00      3.00
....log2 p:  14, n: 100, deg:   2 |      0.00      0.00     54.00     37.00

....log2 p:  30, n:   2, deg:   2 |      0.03      0.03      0.06      0.06
....log2 p:  30, n:  10, deg:   2 |      0.00      0.00      1.00      1.00
....log2 p:  30, n:  30, deg:   2 |      1.00      1.00     26.00      6.00
....log2 p:  30, n: 100, deg:   2 |     13.00     13.00    785.00    118.00

....log2 p:  32, n:   2, deg:   2 |      0.01      0.01      0.05      0.10
....log2 p:  32, n:  10, deg:   2 |      0.00      0.00      1.00      2.00
....log2 p:  32, n:  30, deg:   2 |      0.00      0.00     28.00     17.00
....log2 p:  32, n: 100, deg:   2 |      0.00      0.00   2034.00    335.00

....log2 p:  60, n:   2, deg:   2 |      0.05      0.05      0.16      0.14
....log2 p:  60, n:  10, deg:   2 |      0.00      0.00      4.00      5.00
....log2 p:  60, n:  30, deg:   2 |      0.00      0.00    180.00     33.00
....log2 p:  60, n: 100, deg:   2 |     87.00     87.00   3427.00    711.00

....log2 p:  64, n:   2, deg:   2 |      0.02      0.02      0.32      0.71
....log2 p:  64, n:  10, deg:   2 |      0.00      0.00      9.00     12.00
....log2 p:  64, n:  30, deg:   2 |      0.00      0.00    134.00     38.00
....log2 p:  64, n: 100, deg:   2 |      0.00      0.00   2563.00    697.00

....log2 p: 199, n:   2, deg:   2 |      0.59      0.59      1.76      2.93
....log2 p: 199, n:  10, deg:   2 |      1.00      1.00    187.00     35.00
....log2 p: 199, n:  30, deg:   2 |     40.00     40.00   2561.00    228.00
....log2 p: 199, n: 100, deg:   2 |      5.00      4.00  36730.00   2075.00

time = [0;33m59,417 ms[0m.
....log2 p:   1, n:   2, deg:  10 |      0.00      0.08      0.08      0.08
....log2 p:   1, n:  10, deg:  10 |      0.00      0.00      5.00      5.00
....log2 p:   1, n:  30, deg:  10 |      1.00      1.00     49.00      7.00
....log2 p:   1, n: 100, deg:  10 |      2.00      2.00   1222.00     85.00

....log2 p:   2, n:   2, deg:  10 |      0.00      0.00      0.00      0.00
....log2 p:   2, n:  10, deg:  10 |      0.00      0.00      7.00      3.00
....log2 p:   2, n:  30, deg:  10 |      0.00      0.00     49.00     35.00
....log2 p:   2, n: 100, deg:  10 |      3.00      3.00    450.00   3380.00

....log2 p:   4, n:   2, deg:  10 |      0.00      0.00      1.00      0.00
....log2 p:   4, n:  10, deg:  10 |      0.00      0.00      7.00      4.00
....log2 p:   4, n:  30, deg:  10 |      0.00      0.00     51.00     50.00
....log2 p:   4, n: 100, deg:  10 |      0.00      0.00    359.00   5725.00

....log2 p:  14, n:   2, deg:  10 |      0.00      0.00      2.00      1.00
....log2 p:  14, n:  10, deg:  10 |      0.00      0.00     23.00      9.00
....log2 p:  14, n:  30, deg:  10 |      1.00      1.00    134.00    131.00
....log2 p:  14, n: 100, deg:  10 |     25.00     25.00   1357.00   8099.00

....log2 p:  30, n:   2, deg:  10 |      0.00      0.00      1.00      1.00
....log2 p:  30, n:  10, deg:  10 |      1.00      1.00     73.00     25.00
....log2 p:  30, n:  30, deg:  10 |      6.00      6.00    685.00    446.00
....log2 p:  30, n: 100, deg:  10 |     90.00     89.00   4109.00  12741.00

....log2 p:  32, n:   2, deg:  10 |      0.00      0.00      1.00      1.00
....log2 p:  32, n:  10, deg:  10 |      0.00      0.00     96.00     70.00
....log2 p:  32, n:  30, deg:  10 |      3.00      3.00    834.00    864.00
....log2 p:  32, n: 100, deg:  10 |      9.00      9.00   5345.00  21714.00

....log2 p:  60, n:   2, deg:  10 |      1.00      1.00     12.00      6.00
....log2 p:  60, n:  10, deg:  10 |      1.00      1.00    175.00    166.00
....log2 p:  60, n:  30, deg:  10 |      1.00      1.00    944.00   1624.00
....log2 p:  60, n: 100, deg:  10 |      1.00      1.00  14313.00  37000.00

....log2 p:  64, n:   2, deg:  10 |      0.00      1.00      8.00      7.00
....log2 p:  64, n:  10, deg:  10 |      2.00      2.00    353.00    215.00
....log2 p:  64, n:  30, deg:  10 |     15.00     15.00   2395.00   2131.00
....log2 p:  64, n: 100, deg:  10 |    213.00    213.00  18497.00  70348.00

....log2 p: 199, n:   2, deg:  10 |      1.00      2.00     44.00     83.00
....log2 p: 199, n:  10, deg:  10 |      5.00      5.00   2193.00   1198.00
....log2 p: 199, n:  30, deg:  10 |     97.00     97.00  15031.00   8302.00
....log2 p: 199, n: 100, deg:  10 |     81.00     81.00  54710.00 186968.00

time = [0;33m8min, 6,094 ms[0m.
....log2 p:   1, n:   2, deg:  16 |      0.00      0.00      0.00      0.00
....log2 p:   1, n:  10, deg:  16 |      0.00      0.00      0.00      0.00
....log2 p:   1, n:  30, deg:  16 |      0.00      0.00      0.00      0.00
....log2 p:   1, n: 100, deg:  16 |      0.00      0.00      1.00      3.00

....log2 p:   2, n:   2, deg:  16 |      0.00      0.00      0.00      0.00
....log2 p:   2, n:  10, deg:  16 |      0.00      0.00      3.00      1.00
....log2 p:   2, n:  30, deg:  16 |      0.00      0.00     17.00      5.00
....log2 p:   2, n: 100, deg:  16 |      3.00      3.00    120.00     43.00

....log2 p:   4, n:   2, deg:  16 |      0.00      0.00      2.00      1.00
....log2 p:   4, n:  10, deg:  16 |      0.00      0.00     22.00     13.00
....log2 p:   4, n:  30, deg:  16 |      2.00      2.00    169.00    270.00
....log2 p:   4, n: 100, deg:  16 |     16.00     16.00   1052.00  30104.00

....log2 p:  14, n:   2, deg:  16 |      0.00      0.00      4.00      1.00
....log2 p:  14, n:  10, deg:  16 |      1.00      1.00     53.00     26.00
....log2 p:  14, n:  30, deg:  16 |      1.00      1.00    338.00    492.00
....log2 p:  14, n: 100, deg:  16 |     40.00     40.00   2768.00  39068.00

....log2 p:  30, n:   2, deg:  16 |      1.00      0.00     12.00      2.00
....log2 p:  30, n:  10, deg:  16 |      1.00      1.00    152.00     69.00
....log2 p:  30, n:  30, deg:  16 |      6.00      6.00   1096.00   1526.00
....log2 p:  30, n: 100, deg:  16 |    108.00    108.00   8941.00  55327.00

....log2 p:  32, n:   2, deg:  16 |      2.00      1.00     16.00      5.00
....log2 p:  32, n:  10, deg:  16 |      2.00      2.00    232.00    231.00
....log2 p:  32, n:  30, deg:  16 |     16.00     16.00   2304.00   2703.00
....log2 p:  32, n: 100, deg:  16 |     40.00     40.00  12604.00  90470.00

....log2 p:  60, n:   2, deg:  16 |      3.00      3.00     29.00     14.00
....log2 p:  60, n:  10, deg:  16 |      6.00      6.00    573.00    507.00
....log2 p:  60, n:  30, deg:  16 |      4.00      4.00   3555.00   5195.00
....log2 p:  60, n: 100, deg:  16 |    701.00    702.00  36017.00 150177.00

....log2 p:  64, n:   2, deg:  16 |      8.00      8.00    102.00     27.00
....log2 p:  64, n:  10, deg:  16 |      9.00      9.00   1057.00    501.00
....log2 p:  64, n:  30, deg:  16 |     56.00     55.00   5858.00   6957.00
....log2 p:  64, n: 100, deg:  16 |    641.00    640.00  37798.00 425398.00

....log2 p: 199, n:   2, deg:  16 |     51.00     44.00    662.00    181.00
....log2 p: 199, n:  10, deg:  16 |     53.00     47.00   6395.00   2611.00
....log2 p: 199, n:  30, deg:  16 |    366.00    358.00  38800.00  22330.00
....log2 p: 199, n: 100, deg:  16 |     82.00     76.00 130775.00 1318024.00

time = [0;33m40min, 48,215 ms[0m.
....log2 p:   1, n:   2, deg:  32 |      0.00      0.00      0.00      0.00
....log2 p:   1, n:  10, deg:  32 |      0.00      0.00      0.00      0.00
....log2 p:   1, n:  30, deg:  32 |      0.00      0.00      0.00      0.00
....log2 p:   1, n: 100, deg:  32 |      0.00      0.00      1.00      3.00

....log2 p:   2, n:   2, deg:  32 |      0.00      0.00      2.00      1.00
....log2 p:   2, n:  10, deg:  32 |      0.00      0.00     16.00      5.00
....log2 p:   2, n:  30, deg:  32 |      0.00      1.00     88.00     29.00
....log2 p:   2, n: 100, deg:  32 |      6.00      5.00    785.00    398.00

....log2 p:   4, n:   2, deg:  32 |      1.00      1.00      6.00      3.00
....log2 p:   4, n:  10, deg:  32 |      1.00      1.00     63.00     73.00
....log2 p:   4, n:  30, deg:  32 |      3.00      3.00    606.00   5134.00
....log2 p:   4, n: 100, deg:  32 |     33.00     32.00   3358.00 304727.00

....log2 p:  14, n:   2, deg:  32 |      1.00      1.00     12.00      4.00
....log2 p:  14, n:  10, deg:  32 |      2.00      1.00    176.00    159.00
....log2 p:  14, n:  30, deg:  32 |      2.00      2.00   1407.00   7030.00
....log2 p:  14, n: 100, deg:  32 |     81.00     80.00   9305.00 374691.00

....log2 p:  30, n:   2, deg:  32 |      2.00      2.00     34.00      6.00
....log2 p:  30, n:  10, deg:  32 |      2.00      3.00    474.00    521.00
....log2 p:  30, n:  30, deg:  32 |     14.00     14.00   3020.00  11416.00
....log2 p:  30, n: 100, deg:  32 |    217.00    218.00  19912.00 514816.00

....log2 p:  32, n:   2, deg:  32 |      5.00      5.00     48.00     25.00
....log2 p:  32, n:  10, deg:  32 |      6.00      6.00    821.00    926.00
....log2 p:  32, n:  30, deg:  32 |     34.00     33.00   6929.00  19378.00
....log2 p:  32, n: 100, deg:  32 |     83.00     82.00  31216.00 826080.00

....log2 p:  60, n:   2, deg:  32 |     11.00     12.00     83.00     62.00
....log2 p:  60, n:  10, deg:  32 |     16.00     17.00   1862.00   1923.00
....log2 p:  60, n:  30, deg:  32 |     13.00     14.00  12906.00  33720.00
....log2 p:  60, n: 100, deg:  32 |   1407.00   1408.00  99801.00 1243704.00

....log2 p:  64, n:   2, deg:  32 |     26.00     27.00    383.00     88.00
....log2 p:  64, n:  10, deg:  32 |     28.00     30.00   3632.00   2425.00
....log2 p:  64, n:  30, deg:  32 |    121.00    122.00  21350.00  60380.00
...
[0;31m[0;31m  ***   at top-level:[0;36m do(SD(5))
[0;31m[0;31m  ***                 ^---------
[0;31m  ***   in function do: ...[0;36mgree(T)^3*d^2*log(p))^2);[0;36mtest(p,d,T,N));print
[0;31m[0;31m  ***                                               ^--------------------
[0;31m  ***   in function test: ...[0;36m();print1(".");for(i=1,N,[0;36mfactorff(T,p,t));t4=
[0;31m[0;31m  ***                                                 ^--------------------
*** factorff: the PARI stack overflows !
current stack size: 1000000000 (953.674 Mbytes)
[hint] you can increase GP stack with allocatemem()
[0m
Goodbye!
```
```Reading GPRC: /home/bill/.gprc ...Done.

GP/PARI CALCULATOR Version 2.6.0 (development git-e060fdc)
amd64 running linux (x86-64/GMP-4.3.2 kernel) 64-bit version
compiled: Nov 30 2012, gcc version 4.4.5 (Debian 4.4.5-8)
(readline v5.2 disabled, extended help enabled)

Copyright (C) 2000-2011 The PARI Group

PARI/GP is free software, covered by the GNU General Public License, and comes
WITHOUT ANY WARRANTY WHATSOEVER.

Type ? for help, \q to quit.
Type ?12 for how to get moral (and possibly technical) support.

parisize = 1000000000, primelimit = 500509
time = [0;33m0 ms[0m.
time = [0;33m0 ms[0m.
time = [0;33m0 ms[0m.
....log2 p:   1, n:   2, deg:   2 |      0.00      0.00      0.00      0.00
....log2 p:   1, n:  10, deg:   2 |      0.00      0.00      0.01      0.01
....log2 p:   1, n:  30, deg:   2 |      0.00      0.00      0.00      0.00
....log2 p:   1, n: 100, deg:   2 |      0.00      0.00      0.00      1.00

....log2 p:   2, n:   2, deg:   2 |      0.01      0.01      0.01      0.06
....log2 p:   2, n:  10, deg:   2 |      0.03      0.03      0.08      0.35
....log2 p:   2, n:  30, deg:   2 |      0.00      0.00      1.00      2.00
....log2 p:   2, n: 100, deg:   2 |      1.00      1.00     10.00     47.00

....log2 p:   4, n:   2, deg:   2 |      0.02      0.02      0.02      0.09
....log2 p:   4, n:  10, deg:   2 |      0.06      0.06      0.19      0.44
....log2 p:   4, n:  30, deg:   2 |      0.00      0.00      1.00      2.00
....log2 p:   4, n: 100, deg:   2 |      2.00      2.00     49.00     20.00

....log2 p:  14, n:   2, deg:   2 |      0.00      0.00      0.03      0.18
....log2 p:  14, n:  10, deg:   2 |      0.00      0.00      0.00      0.60
....log2 p:  14, n:  30, deg:   2 |      0.00      0.00      3.00      2.00
....log2 p:  14, n: 100, deg:   2 |      0.00      0.00     55.00     83.00

....log2 p:  30, n:   2, deg:   2 |      0.03      0.03      0.05      0.32
....log2 p:  30, n:  10, deg:   2 |      0.00      0.00      1.00      1.00
....log2 p:  30, n:  30, deg:   2 |      1.00      1.00     26.00     16.00
....log2 p:  30, n: 100, deg:   2 |     14.00     14.00    789.00    274.00

....log2 p:  32, n:   2, deg:   2 |      0.01      0.01      0.05      0.47
....log2 p:  32, n:  10, deg:   2 |      0.00      0.00      1.00      2.00
....log2 p:  32, n:  30, deg:   2 |      0.00      0.00     27.00     23.00
....log2 p:  32, n: 100, deg:   2 |      0.00      0.00   2014.00    150.00

....log2 p:  60, n:   2, deg:   2 |      0.05      0.05      0.16      0.87
....log2 p:  60, n:  10, deg:   2 |      0.00      0.00      4.00     23.00
....log2 p:  60, n:  30, deg:   2 |      0.00      0.00    180.00     33.00
....log2 p:  60, n: 100, deg:   2 |     87.00     87.00   3389.00    470.00

....log2 p:  64, n:   2, deg:   2 |      0.02      0.02      0.30      2.22
....log2 p:  64, n:  10, deg:   2 |      0.00      0.00      9.00     17.00
....log2 p:  64, n:  30, deg:   2 |      0.00      0.00    134.00    146.00
....log2 p:  64, n: 100, deg:   2 |      0.00      0.00   2564.00   1199.00

....log2 p: 199, n:   2, deg:   2 |      0.59      0.59      1.76     15.64
....log2 p: 199, n:  10, deg:   2 |      1.00      1.00    188.00    107.00
....log2 p: 199, n:  30, deg:   2 |     40.00     40.00   2555.00    513.00
....log2 p: 199, n: 100, deg:   2 |      5.00      4.00  36775.00   1629.00

time = [0;33m1min, 1,650 ms[0m.
....log2 p:   1, n:   2, deg:  10 |      0.00      0.08      0.08      0.08
....log2 p:   1, n:  10, deg:  10 |      0.00      0.00      5.00      5.00
....log2 p:   1, n:  30, deg:  10 |      1.00      1.00     49.00      7.00
....log2 p:   1, n: 100, deg:  10 |      2.00      2.00   1227.00     87.00

....log2 p:   2, n:   2, deg:  10 |      0.00      0.00      0.00      0.41
....log2 p:   2, n:  10, deg:  10 |      0.00      0.00      7.00      8.00
....log2 p:   2, n:  30, deg:  10 |      0.00      0.00     49.00     57.00
....log2 p:   2, n: 100, deg:  10 |      3.00      3.00    452.00    510.00

....log2 p:   4, n:   2, deg:  10 |      0.00      0.00      1.00      1.00
....log2 p:   4, n:  10, deg:  10 |      0.00      0.00      7.00      7.00
....log2 p:   4, n:  30, deg:  10 |      0.00      0.00     52.00     49.00
....log2 p:   4, n: 100, deg:  10 |      0.00      0.00    360.00    492.00

....log2 p:  14, n:   2, deg:  10 |      0.00      0.00      2.00      3.00
....log2 p:  14, n:  10, deg:  10 |      0.00      0.00     23.00     23.00
....log2 p:  14, n:  30, deg:  10 |      1.00      1.00    134.00    182.00
....log2 p:  14, n: 100, deg:  10 |     25.00     25.00   1363.00   1473.00

....log2 p:  30, n:   2, deg:  10 |      0.00      0.00      1.00      5.00
....log2 p:  30, n:  10, deg:  10 |      1.00      1.00     73.00     97.00
....log2 p:  30, n:  30, deg:  10 |      6.00      6.00    686.00    718.00
....log2 p:  30, n: 100, deg:  10 |     90.00     89.00   4114.00   6294.00

....log2 p:  32, n:   2, deg:  10 |      0.00      0.00      1.00      6.00
....log2 p:  32, n:  10, deg:  10 |      0.00      0.00     96.00    117.00
....log2 p:  32, n:  30, deg:  10 |      3.00      3.00    832.00   1223.00
....log2 p:  32, n: 100, deg:  10 |      9.00      9.00   5317.00   6331.00

....log2 p:  60, n:   2, deg:  10 |      1.00      1.00     12.00     15.00
....log2 p:  60, n:  10, deg:  10 |      1.00      1.00    174.00    195.00
....log2 p:  60, n:  30, deg:  10 |      1.00      1.00    944.00   1697.00
....log2 p:  60, n: 100, deg:  10 |      1.00      1.00  14253.00  18164.00

....log2 p:  64, n:   2, deg:  10 |      0.00      1.00      8.00     83.00
....log2 p:  64, n:  10, deg:  10 |      2.00      2.00    353.00    437.00
....log2 p:  64, n:  30, deg:  10 |     15.00     15.00   2404.00   4031.00
....log2 p:  64, n: 100, deg:  10 |    213.00    212.00  18498.00  21081.00

....log2 p: 199, n:   2, deg:  10 |      1.00      2.00     44.00    132.00
....log2 p: 199, n:  10, deg:  10 |      5.00      5.00   2197.00   2497.00
....log2 p: 199, n:  30, deg:  10 |     97.00     97.00  15060.00  21141.00
....log2 p: 199, n: 100, deg:  10 |     81.00     81.00  54737.00  83674.00

time = [0;33m4min, 55,496 ms[0m.
....log2 p:   1, n:   2, deg:  16 |      0.00      0.00      0.00      0.00
....log2 p:   1, n:  10, deg:  16 |      0.00      0.00      0.00      0.00
....log2 p:   1, n:  30, deg:  16 |      0.00      0.00      0.00      0.00
....log2 p:   1, n: 100, deg:  16 |      0.00      0.00      1.00      3.00

....log2 p:   2, n:   2, deg:  16 |      0.00      0.00      0.00      0.00
....log2 p:   2, n:  10, deg:  16 |      0.00      0.00      3.00      1.00
....log2 p:   2, n:  30, deg:  16 |      0.00      0.00     17.00      5.00
....log2 p:   2, n: 100, deg:  16 |      3.00      3.00    121.00     69.00

....log2 p:   4, n:   2, deg:  16 |      0.00      0.00      2.00      3.00
....log2 p:   4, n:  10, deg:  16 |      0.00      0.00     22.00     27.00
....log2 p:   4, n:  30, deg:  16 |      2.00      2.00    170.00    221.00
....log2 p:   4, n: 100, deg:  16 |     16.00     16.00   1060.00   1524.00

....log2 p:  14, n:   2, deg:  16 |      0.00      0.00      4.00      6.00
....log2 p:  14, n:  10, deg:  16 |      1.00      1.00     53.00     67.00
....log2 p:  14, n:  30, deg:  16 |      1.00      1.00    340.00    447.00
....log2 p:  14, n: 100, deg:  16 |     40.00     40.00   2778.00   3400.00

....log2 p:  30, n:   2, deg:  16 |      1.00      0.00     12.00     16.00
....log2 p:  30, n:  10, deg:  16 |      1.00      1.00    152.00    231.00
....log2 p:  30, n:  30, deg:  16 |      7.00      7.00   1098.00   1370.00
....log2 p:  30, n: 100, deg:  16 |    109.00    108.00   8951.00  10043.00

....log2 p:  32, n:   2, deg:  16 |      2.00      1.00     16.00     20.00
....log2 p:  32, n:  10, deg:  16 |      2.00      2.00    232.00    289.00
....log2 p:  32, n:  30, deg:  16 |     16.00     16.00   2297.00   2622.00
....log2 p:  32, n: 100, deg:  16 |     40.00     40.00  12539.00  14900.00

....log2 p:  60, n:   2, deg:  16 |      3.00      3.00     29.00     38.00
....log2 p:  60, n:  10, deg:  16 |      6.00      6.00    573.00    696.00
....log2 p:  60, n:  30, deg:  16 |      4.00      4.00   3556.00   4335.00
....log2 p:  60, n: 100, deg:  16 |    696.00    698.00  35806.00  47894.00

....log2 p:  64, n:   2, deg:  16 |      8.00      8.00    103.00    147.00
....log2 p:  64, n:  10, deg:  16 |      9.00      9.00   1057.00   1278.00
....log2 p:  64, n:  30, deg:  16 |     56.00     55.00   5875.00   8285.00
....log2 p:  64, n: 100, deg:  16 |    641.00    641.00  37799.00  48036.00

....log2 p: 199, n:   2, deg:  16 |     51.00     45.00    659.00    702.00
....log2 p: 199, n:  10, deg:  16 |     53.00     47.00   6400.00   7449.00
....log2 p: 199, n:  30, deg:  16 |    364.00    359.00  38844.00  48856.00
....log2 p: 199, n: 100, deg:  16 |     83.00     76.00 130818.00 164723.00

time = [0;33m11min, 3,490 ms[0m.
....log2 p:   1, n:   2, deg:  32 |      0.00      0.00      0.00      0.00
....log2 p:   1, n:  10, deg:  32 |      0.00      0.00      0.00      0.00
....log2 p:   1, n:  30, deg:  32 |      0.00      0.00      0.00      0.00
....log2 p:   1, n: 100, deg:  32 |      0.00      0.00      1.00      3.00

....log2 p:   2, n:   2, deg:  32 |      0.00      0.00      2.00      1.00
....log2 p:   2, n:  10, deg:  32 |      0.00      0.00     16.00      4.00
....log2 p:   2, n:  30, deg:  32 |      0.00      0.00     88.00     39.00
....log2 p:   2, n: 100, deg:  32 |      5.00      5.00    788.00    305.00

....log2 p:   4, n:   2, deg:  32 |      1.00      1.00      6.00      9.00
....log2 p:   4, n:  10, deg:  32 |      1.00      1.00     64.00     85.00
....log2 p:   4, n:  30, deg:  32 |      3.00      3.00    612.00    753.00
....log2 p:   4, n: 100, deg:  32 |     32.00     32.00   3385.00   4687.00

....log2 p:  14, n:   2, deg:  32 |      1.00      1.00     12.00     20.00
....log2 p:  14, n:  10, deg:  32 |      2.00      1.00    177.00    215.00
....log2 p:  14, n:  30, deg:  32 |      2.00      2.00   1415.00   1771.00
....log2 p:  14, n: 100, deg:  32 |     81.00     81.00   9339.00  11772.00

....log2 p:  30, n:   2, deg:  32 |      2.00      2.00     34.00     41.00
....log2 p:  30, n:  10, deg:  32 |      2.00      3.00    476.00    606.00
....log2 p:  30, n:  30, deg:  32 |     14.00     14.00   3027.00   3752.00
....log2 p:  30, n: 100, deg:  32 |    218.00    218.00  19932.00  26597.00

....log2 p:  32, n:   2, deg:  32 |      5.00      5.00     47.00     62.00
....log2 p:  32, n:  10, deg:  32 |      6.00      6.00    820.00   1032.00
....log2 p:  32, n:  30, deg:  32 |     33.00     33.00   6912.00   8071.00
....log2 p:  32, n: 100, deg:  32 |     82.00     82.00  31052.00  39676.00

....log2 p:  60, n:   2, deg:  32 |     11.00     12.00     83.00    102.00
....log2 p:  60, n:  10, deg:  32 |     16.00     17.00   1859.00   2420.00
....log2 p:  60, n:  30, deg:  32 |     13.00     14.00  12906.00  14332.00
....log2 p:  60, n: 100, deg:  32 |   1399.00   1401.00  99233.00 126609.00

....log2 p:  64, n:   2, deg:  32 |     26.00     28.00    388.00    481.00
....log2 p:  64, n:  10, deg:  32 |     28.00     30.00   3633.00   4580.00
....log2 p:  64, n:  30, deg:  32 |    122.00    123.00  21390.00  27235.00
....log2 p:  64, n: 100, deg:  32 |   1294.00   1292.00 120762.00 153029.00

....log2 p: 199, n:   2, deg:  32 |    173.00    181.00   2233.00   2976.00
....log2 p: 199, n:  10, deg:  32 |    179.00    187.00  22769.00  31243.00
....log2 p: 199, n:  30, deg:  32 |    800.00    808.00 129848.00 149421.00
....log2 p: 199, n: 100, deg:  32 |    236.00    243.00 438317.00 653388.00

time = [0;33m36min, 46,559 ms[0m.
Goodbye!
```