source: code/trunk/vendor/github.com/remyoudompheng/bigfft/README@ 822

Last change on this file since 822 was 822, checked in by yakumo.izuru, 22 months ago

Prefer immortal.run over runit and rc.d, use vendored modules
for convenience.

Signed-off-by: Izuru Yakumo <yakumo.izuru@…>

File size: 2.1 KB
Line 
1This library is a toy proof-of-concept implementation of the
2well-known Schonhage-Strassen method for multiplying integers.
3It is not expected to have a real life usecase outside number
4theory computations, nor is it expected to be used in any production
5system.
6
7If you are using it in your project, you may want to carefully
8examine the actual requirement or problem you are trying to solve.
9
10# Comparison with the standard library and GMP
11
12Benchmarking math/big vs. bigfft
13
14Number size old ns/op new ns/op delta
15 1kb 1599 1640 +2.56%
16 10kb 61533 62170 +1.04%
17 50kb 833693 831051 -0.32%
18100kb 2567995 2693864 +4.90%
19 1Mb 105237800 28446400 -72.97%
20 5Mb 1272947000 168554600 -86.76%
21 10Mb 3834354000 405120200 -89.43%
22 20Mb 11514488000 845081600 -92.66%
23 50Mb 49199945000 2893950000 -94.12%
24100Mb 147599836000 5921594000 -95.99%
25
26Benchmarking GMP vs bigfft
27
28Number size GMP ns/op Go ns/op delta
29 1kb 536 1500 +179.85%
30 10kb 26669 50777 +90.40%
31 50kb 252270 658534 +161.04%
32100kb 686813 2127534 +209.77%
33 1Mb 12100000 22391830 +85.06%
34 5Mb 111731843 133550600 +19.53%
35 10Mb 212314000 318595800 +50.06%
36 20Mb 490196000 671512800 +36.99%
37 50Mb 1280000000 2451476000 +91.52%
38100Mb 2673000000 5228991000 +95.62%
39
40Benchmarks were run on a Core 2 Quad Q8200 (2.33GHz).
41FFT is enabled when input numbers are over 200kbits.
42
43Scanning large decimal number from strings.
44(math/big [n^2 complexity] vs bigfft [n^1.6 complexity], Core i5-4590)
45
46Digits old ns/op new ns/op delta
471e3 9995 10876 +8.81%
481e4 175356 243806 +39.03%
491e5 9427422 6780545 -28.08%
501e6 1776707489 144867502 -91.85%
512e6 6865499995 346540778 -94.95%
525e6 42641034189 1069878799 -97.49%
5310e6 151975273589 2693328580 -98.23%
54
Note: See TracBrowser for help on using the repository browser.