aboutsummaryrefslogtreecommitdiff
path: root/coreutils/factor.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'busybox' into mergeRon Yorston2021-01-141-77/+132
|\
| * factor: fix commentDenys Vlasenko2020-12-231-1/+1
| | | | | | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * factor: detect squaresDenys Vlasenko2020-12-221-3/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If we have a square, the speedup can be extremely large (in best case example below, it's ~40000 times faster): $ time ./busybox_old factor 18446743988964486098 18446743988964486098: 2 3037000493 3037000493 real 0m4.246s $ time ./busybox factor 18446743988964486098 18446743988964486098: 2 3037000493 3037000493 real 0m0.000s function old new delta isqrt_odd - 57 +57 print_w - 36 +36 factorize 218 236 +18 print_h - 7 +7 factorize_numstr 65 72 +7 ------------------------------------------------------------------------------ (add/remove: 3/0 grow/shrink: 2/0 up/down: 125/0) Total: 125 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * factor: fix typo in undefDenys Vlasenko2020-12-211-1/+1
| | | | | | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * factor: code shrinkDenys Vlasenko2020-12-211-9/+8
| | | | | | | | | | | | | | function old new delta factor_main 176 171 -5 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * factor: 30% faster trial division (better sieve)Denys Vlasenko2020-12-201-75/+95
| | | | | | | | | | | | | | | | | | | | | | function old new delta packed_wheel - 192 +192 factor_main 108 176 +68 factorize 284 218 -66 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 1/1 up/down: 260/-66) Total: 194 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* | Merge branch 'busybox' into mergeRon Yorston2019-01-101-1/+1
|\|
| * config: update size informationDenys Vlasenko2018-12-281-1/+1
| | | | | | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* | Merge branch 'busybox' into mergeRon Yorston2017-07-241-2/+2
|\|
| * config: deindent all help textsDenys Vlasenko2017-07-211-1/+1
| | | | | | | | | | | | Those two spaces after tab have no effect, and always a nuisance when editing. Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * Update menuconfig items with approximate applet sizesDenys Vlasenko2017-07-181-1/+1
| | | | | | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* | Use %I64* formats with MinGW instead of %ll* formatsJohannes Schindelin2017-07-181-2/+2
|/ | | | | | | | | | | | | | The MSVC runtime uses the format specified %I64 for 64-bit data types; It does not understand e.g. %llu for unsigned long longs. However, mingw-w64 provides a compatibility mode in its runtime wrapper which can be activated by defining the constant __USE_MINGW_ANSI_STDIO=1 in which case we must refrain from overriding the %ll* formats. This fixes quite a couple of compile warnings when building with the mingw-w64 compiler. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
* factor: fix stray semicolonDenys Vlasenko2017-04-171-1/+1
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* factor: support "no-argvs" usageDenys Vlasenko2017-04-141-17/+39
| | | | | | | | | | | function old new delta factorize_numstr - 72 +72 packed_usage 31562 31566 +4 factor_main 109 101 -8 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 1/1 up/down: 76/-8) Total: 68 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* factor: improve comments for sieving logic... also fix a typoDenys Vlasenko2017-04-131-2/+2
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* factor: improve comments for sieving logicDenys Vlasenko2017-04-131-2/+6
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* factor: tweak commentsDenys Vlasenko2017-04-131-1/+3
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* factor: remove debug codeDenys Vlasenko2017-04-111-19/+0
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* libbb: move isqrt from factor, use it in diff tooDenys Vlasenko2017-04-111-18/+1
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* factor: much faster, and very slightly larger isqrt()Denys Vlasenko2017-04-111-34/+10
| | | | | | | function old new delta isqrt_odd 70 88 +18 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* factor: don't be too clever in isqrt - be small insteadDenys Vlasenko2017-04-101-10/+12
| | | | | | | function old new delta isqrt_odd 111 70 -41 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* factor: add code to test isqrt() correctnessDenys Vlasenko2017-04-101-0/+17
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* factor: 25% faster sievingDenys Vlasenko2017-04-101-19/+48
| | | | | | | function old new delta factorize 287 260 -27 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* factor: better comments, slightl more clever conversion even->oddDenys Vlasenko2017-04-101-5/+26
| | | | | | | function old new delta isqrt_odd 114 111 -3 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* factor: fix HALF_FMT usageDenys Vlasenko2017-04-101-1/+1
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* factor: fix commentsDenys Vlasenko2017-04-101-2/+2
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* factor: a bit more simple isqrtDenys Vlasenko2017-04-101-1/+1
| | | | | | | function old new delta isqrt_odd 87 80 -7 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* factor: simpler isqrtDenys Vlasenko2017-04-101-24/+39
| | | | | | | function old new delta isqrt_odd 102 87 -15 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* factor: factor2 variable is unused now, drop itDenys Vlasenko2017-04-091-6/+0
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* factor: expand commentsDenys Vlasenko2017-04-091-4/+7
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* factor: 30% faster code (estimate max possible factor just once)Denys Vlasenko2017-04-091-24/+82
| | | | | | | | | | | function old new delta factorize - 161 +161 isqrt_odd - 102 +102 factor_main 281 110 -171 ------------------------------------------------------------------------------ (add/remove: 2/0 grow/shrink: 0/1 up/down: 263/-171) Total: 92 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* factor: new appletDenys Vlasenko2017-04-091-0/+112
thus far only able to factor up to ULLONG_MAX function old new delta factor_main - 378 +378 packed_usage 31427 31502 +75 applet_names 2590 2597 +7 applet_main 1500 1504 +4 ------------------------------------------------------------------------------ (add/remove: 2/0 grow/shrink: 3/0 up/down: 464/0) Total: 464 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>