nicoo
36a2948959
factor::miller_rabin: Avoid unecessary exponentiation
...
Instead of computing a^r and a^(n-1) = a^(r 2ⁱ) separately,
compute the latter by repeatedly squaring the former.
33.6% performance improvement
2020-05-24 19:10:34 +02:00
nicoo
543c7b941a
factor::rho: Small refactor
2020-05-24 19:10:29 +02:00
nicoo
30fd6a0309
factor::numeric: Replace lose functions with an Arithmetic trait
2020-05-24 18:16:21 +02:00
nicoo
29eb8fd77b
format: Make clippy happy
2020-05-24 17:06:19 +02:00
nicoo
8241037690
factor::miller_rabin: Extract dividers from the primality test
...
Another 36% improvement.
2020-05-24 15:41:23 +02:00
nicoo
6b9585b1dc
factor::miller_rabbin: Refactor before extracting dividers
...
Replace iterated division with u64::trailing_zeros, hoist the selection of `mul`
out of the loop, another cool 49.5% runtime improvement.
2020-05-24 15:41:23 +02:00
nicoo
e3ecc81d97
factor: Move the Miller-Rabin primality test to its own module.
2020-05-24 15:41:23 +02:00
nicoo
74054feb94
factor::factor: Remove extraneous call to the primality test
...
Another 6.97% runtime improvement
2020-05-24 15:41:23 +02:00
nicoo
e1a6dbe619
factor::table: Remove obsolete, commented code
2020-05-24 15:41:23 +02:00
nicoo
169740629b
factor::table: Remove extraneous calls to the primality test
...
50% performance improvement on factoring all numbers between 2 and 10⁶.
2020-05-24 15:41:23 +02:00
nicoo
418fd61759
factor::factor: Short-circuit the fallback to Pollard's rho
...
When the remainder is smaller than the max. entry in the table,
it is guaranteed to be prime.
2020-05-24 15:41:23 +02:00
nicoo
bc11e57962
factor::factor: Use u64::trailing_zero instead of iterated division
...
No significant performance impact (most of the time is spent elsewhere),
but an easy and satisfying fix nevertheless.
2020-05-24 15:41:23 +02:00
nicoo
a1b2522750
factor: Move each factorisation method to its own module
...
Also decoupled the factorisation methods; now factor::factor contains
the logic that chains the different algorithms and aggregates results.
As a side-effect, rho::factor now performs extraneous allocations (as each
recursive step creates a new `Factors` value, which is then aggregated into
the previous one) but there is no significant performance impact.
2020-05-24 15:41:23 +02:00
nicoo
d9095a2539
factor: Refactor (eheh) around a Factors
datatype
...
It is clearer to see what is going on, as opposed to passing around an
unmarked `Vec<u64>`, and there is a single place to add invariants checks.
This is also a more compact memory representation: each prime factor is
represented only once, with an additional byte for multiplicity. The
performance impact is however not significant.
2020-05-24 15:41:23 +02:00
Sylvestre Ledru
75b7f768ea
fix(mv): Allow move across file systems ( #1524 )
...
Co-authored-by: Arni Dagur <arni@dagur.eu>
2020-05-24 12:49:56 +02:00
Sylvestre Ledru
272b66aac8
refactor(hostname): use clap instead of getopts for consistency ( #1516 )
...
* refactor(hostname): use clap instead of getopts for consistency
* deps ~ uucore/wide is required
Co-authored-by: Roy Ivy III <rivy.dev@gmail.com>
2020-05-22 17:27:03 +02:00
Sylvestre Ledru
817a237821
Merge pull request #1513 from sylvestre/uptime-since
...
feature(uptime): add option --since
2020-05-21 22:18:52 +02:00
Sylvestre Ledru
2fe2fe7275
be less prescriptive with clap versions ( #1514 )
2020-05-21 22:18:13 +02:00
Sylvestre Ledru
0a02aeda71
refactor(hostname): rely on the hostname crate ( #1517 )
2020-05-21 10:58:38 +02:00
Sylvestre Ledru
3994af5678
Update src/uu/uptime/src/uptime.rs
...
Co-authored-by: Roy Ivy III <rivy.dev@gmail.com>
2020-05-21 10:58:23 +02:00
Sylvestre Ledru
340b5badda
Update src/uu/uptime/src/uptime.rs
...
Co-authored-by: Roy Ivy III <rivy.dev@gmail.com>
2020-05-21 10:58:15 +02:00
Sylvestre Ledru
186c173559
test(hostname): Test more options ( #1515 )
2020-05-18 23:07:21 +02:00
Sylvestre Ledru
6bc9b38fa9
fix(cp): Remove an unused dep to the getops crate
2020-05-17 12:09:55 +02:00
Sylvestre Ledru
719f2bf8ae
feature(uptime): add option --since
...
For this, I:
* moved from getops to clap
* remove the millisecond maths
2020-05-17 11:50:08 +02:00
Roy Ivy III
8e886c30dc
Merge pull request #1511 from sylvestre/more
...
fix(more) handle no arguments without panic; add test and a FixME
2020-05-15 19:17:01 -05:00
Sylvestre Ledru
62901490e1
test(more): add a test for more when called without arg
2020-05-15 18:17:57 -05:00
Sylvestre Ledru
2c90932ec0
test(uptime): Add a test ( #1512 )
2020-05-15 18:09:10 -05:00
Sylvestre Ledru
601690b079
test(expand): Add some tests for expand ( #1505 )
2020-05-15 18:09:10 -05:00
Sylvestre Ledru
80203a7a02
fix(more) Return a proper error message when no argument is provided
...
Fix #1509
2020-05-15 17:48:35 -05:00
Sylvestre Ledru
0ca5132a06
test(whoami): Add test for whoami ( #1506 )
...
* test(whoami): Add test for whoami
Side effect: also tests "id -un"
2020-05-15 14:19:40 +02:00
Sylvestre Ledru
157dc38492
quick fix(coverage): grcov arg 'output-file' has been renamed to 'output-path'
2020-05-13 11:01:41 +02:00
Roy Ivy III
9052bc4de7
Merge pull request #1503 from sylvestre/arch
...
test(arch): add tests and description text
2020-05-10 20:11:10 -05:00
Sylvestre Ledru
279de2d664
Merge pull request #1510 from sylvestre/negative_lines
...
feature(head): Introduce NLines to handle negative lines parameters
2020-05-10 22:50:41 +02:00
Anuvrat Parashar
ce064dc62e
feature(head): Introduce NLines to handle negative lines parameters
2020-05-10 21:32:48 +02:00
Sylvestre Ledru
1565f4d1d9
Update src/uu/arch/src/arch.rs
...
Co-authored-by: Roy Ivy III <rivy.dev@gmail.com>
2020-05-10 21:05:38 +02:00
Roy Ivy III
7b96432eff
Merge pull request #1504 from sylvestre/fmt
...
test(fmt): add some small initial tests
2020-05-10 12:25:18 -05:00
Roy Ivy III
6e77f99f61
Merge pull request #1507 from sylvestre/id
...
add/id ~ long option variant and tests
2020-05-10 12:21:07 -05:00
Sylvestre Ledru
a83fe2f098
Merge pull request #1508 from muskuloes/master
...
Flush output buffer for expand/unexpand commands
2020-05-09 21:17:58 +02:00
muskuloes
c84f89257e
fix clippy warning: extract function
2020-05-09 19:28:13 +02:00
muskuloes
b4752e079f
flush output of unexpand command as well
2020-05-09 19:28:13 +02:00
muskuloes
fb8f3ebf96
expand: flush output buffer
2020-05-09 19:28:13 +02:00
Sylvestre Ledru
91ac5343db
remove artifact
2020-05-09 10:23:03 +02:00
Sylvestre Ledru
9fb00df9b3
test(id): add tests for id
2020-05-09 00:14:10 +02:00
Sylvestre Ledru
90dfa70bd3
feature(id): add --user, --group & --groups
2020-05-09 00:07:04 +02:00
Sylvestre Ledru
614bcde9ea
Merge branch 'elgris-sort_impl'
2020-05-08 01:09:43 +02:00
Sylvestre Ledru
437e3aeab7
style(sort): Fix a clippy warning
2020-05-07 23:13:11 +02:00
elgris
71ba8b3fd6
sort: add "dictionary-order" flag.
...
The flag makes 'sort' command ignore non-dictionary symbols
(non-alphanumeric and non-spaces). The only difference with GNU sort is
that it takes ALL alphanumeric symbols, not only ASCII ones.
2020-05-07 23:08:24 +02:00
Sylvestre Ledru
f44e5465b8
cleanup(yes, whoami): remove some old workaround to force cargo rebuilds
2020-05-06 23:39:49 +02:00
Sylvestre Ledru
16bf4b1893
test(arch): Add some tests
2020-05-06 00:39:13 +02:00
Sylvestre Ledru
9b0129716f
test(fmt): Add some tests for fmt
...
Even if it is a bit broken for now
2020-05-06 00:38:22 +02:00