Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add radix sort #44230

Merged
merged 103 commits into from
Apr 3, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
103 commits
Select commit Hold shift + click to select a range
ee3964b
Add radix sort
LilithHafner Feb 17, 2022
569a5c1
Try to fix build error (1)
LilithHafner Feb 18, 2022
67b744c
Try to fix build error (2)
LilithHafner Feb 18, 2022
b8ad40f
Try to fix build error (3)
LilithHafner Feb 18, 2022
5fd8e42
Try to fix build error (4)
LilithHafner Feb 18, 2022
7cf473d
Try to fix build error (5)
LilithHafner Feb 18, 2022
d8363a5
Try to fix build error (6)
LilithHafner Feb 18, 2022
44b8411
@LilithHafner Try to fix build error (7)
LilithHafner Feb 18, 2022
a22b120
Try to fix build error (8)
LilithHafner Feb 18, 2022
f0d6536
Remove set default for debugging
LilithHafner Feb 19, 2022
c42ec18
Update sort_int_range! tests
LilithHafner Feb 19, 2022
fc0e7bb
put back update defalg after bootstrapping (ugly)
LilithHafner Feb 19, 2022
7b665ef
update usage of sort_int_range! in test to add lo, hi
LilithHafner Feb 20, 2022
0c2e202
whitespace
LilithHafner Feb 20, 2022
44e4ea0
add RadixSort tests
LilithHafner Feb 20, 2022
9f83339
more radix sort tests
LilithHafner Feb 20, 2022
39216ad
fix typo
LilithHafner Feb 20, 2022
e045255
maintain backwards compatability in sort_int_range
LilithHafner Feb 20, 2022
3747e79
fix maybereverse use
LilithHafner Feb 20, 2022
2fc70fb
remove set defalg
LilithHafner Feb 22, 2022
fa198ca
Merge branch 'JuliaLang:master' into patch-9
LilithHafner Feb 22, 2022
c692830
put back set defalg
LilithHafner Feb 22, 2022
7f2b076
dispatch to InsertionSort _before_ fpsort!ing
LilithHafner Feb 23, 2022
9d3b5d5
move set defalg earlier in Base.jjl to set up for potetial bisection
LilithHafner Feb 23, 2022
3e533cd
put defalg back together!
LilithHafner Feb 23, 2022
0d40342
bisection 1
LilithHafner Feb 23, 2022
626f8bc
bisection 2
LilithHafner Feb 23, 2022
6104982
bisection 3 (final bisection if tests pass)
LilithHafner Feb 23, 2022
31aae4d
bisection 4 (final bisection if tests pass)
LilithHafner Feb 23, 2022
8a8f239
Add specialized sorting for Bool
LilithHafner Feb 23, 2022
39a51cf
Immediately dispatch to sort_int_range! for long Vector{[U]Int8}
LilithHafner Feb 23, 2022
10e4204
fix typo, lol
LilithHafner Feb 23, 2022
2dfaa2d
test and fix boolean sorting
LilithHafner Feb 23, 2022
045869d
fix overflow performance bug that prevented edge case dispatch to sor…
LilithHafner Feb 23, 2022
3abefaa
restrict fpsort! policy on perm orderings to exclude Bool
LilithHafner Feb 23, 2022
758c026
fix typo
LilithHafner Feb 23, 2022
85fed57
switch from custom Bool sort to re-use of sort_int_range! (faster)
LilithHafner Feb 23, 2022
9a3f1c7
rename RadixSort to AdaptiveSort
LilithHafner Feb 23, 2022
3af1412
also rename in tests
LilithHafner Feb 24, 2022
98aaa97
add new boolean sorting (instead of slower dispatch to sort_int_range!)
LilithHafner Feb 26, 2022
0a93e4b
rework dispatch (and remove Some from Serializable)
LilithHafner Feb 27, 2022
f4b3e3b
spelling and minor comments
LilithHafner Feb 27, 2022
59706ad
fix typo and only unsign when possible
LilithHafner Feb 27, 2022
c471af9
bump to rerun CI
LilithHafner Mar 1, 2022
82e8f26
undo bump to rerun CI
LilithHafner Mar 1, 2022
41490eb
update comment to explain defalg redefinition
LilithHafner Mar 1, 2022
6eb4d77
Merge branch 'JuliaLang:master' into patch-9
LilithHafner Mar 1, 2022
592b814
micro optimization
LilithHafner Mar 1, 2022
c5f0bf1
Style
LilithHafner Mar 2, 2022
d88230b
new dispatch (before exterma-serialization separation
LilithHafner Mar 3, 2022
ffcc043
Seperate extrema and serialization in all cases
LilithHafner Mar 4, 2022
5f9c0fc
Minor simplification (maybe helps performance 1-2%)
LilithHafner Mar 4, 2022
84cedaa
Add comments to radaix_sort! and make computationally negligable chan…
LilithHafner Mar 4, 2022
9283d75
Update docstrings & comments
LilithHafner Mar 4, 2022
06cfaae
finish type change: unsigned(eltype(hi-lo)) -> UInt
LilithHafner Mar 4, 2022
291399e
minor comment style
LilithHafner Mar 4, 2022
1195798
reorder for readability
LilithHafner Mar 5, 2022
338f3f5
Integrate with compiler bootstrapping & remove defalg redefinitions!
LilithHafner Mar 5, 2022
a186c7f
Remove unhelpful comment
LilithHafner Mar 5, 2022
8896af2
remove stray newline
LilithHafner Mar 5, 2022
27b1656
Code review based on PR diff
LilithHafner Mar 5, 2022
5f01201
Spelling
LilithHafner Mar 5, 2022
f978728
Qualify DEFAULT_(UN)STABLE in tests
LilithHafner Mar 5, 2022
f03e4c5
Comments and such
LilithHafner Mar 5, 2022
cf04241
Rename variables
LilithHafner Mar 11, 2022
96c0b6e
Find, test & fix bug
LilithHafner Mar 11, 2022
67494a5
Update base/sort.jl
LilithHafner Mar 12, 2022
c344e82
Update base/sort.jl
LilithHafner Mar 13, 2022
68fef15
Update base/sort.jl
LilithHafner Mar 13, 2022
a94cfea
add explain small fallback in fpsort!
LilithHafner Mar 13, 2022
8d844bf
add @inbounds to _extrema
LilithHafner Mar 13, 2022
222f8e3
multiline -= u_min
LilithHafner Mar 13, 2022
a7d7f56
add
LilithHafner Mar 13, 2022
34c700c
Apply suggestions from code review
LilithHafner Mar 13, 2022
18c56a9
replace list with vector in comments
LilithHafner Mar 13, 2022
09162ae
remove unneccesary comment
LilithHafner Mar 13, 2022
5473b3c
Comment on count sort for Bool and add `@inbounds`
LilithHafner Mar 13, 2022
92f69fa
remove unused bool serialization
LilithHafner Mar 13, 2022
6275928
bugfix: add using @assert
LilithHafner Mar 13, 2022
5eca90a
simplify float serailization
LilithHafner Mar 14, 2022
17f45e8
Remove compilation tricks and put upper limit on chunk_size
LilithHafner Mar 14, 2022
32a3197
ckeck for ordered inputs
LilithHafner Mar 14, 2022
4931881
use view not macro view
LilithHafner Mar 14, 2022
4d2e184
decouple _extrema and out_of_order to eliminate overhead (and optimiz…
LilithHafner Mar 14, 2022
de33146
put back all same check (free)
LilithHafner Mar 15, 2022
5ff3f07
Update heuristic
LilithHafner Mar 15, 2022
ef24550
Move second dispatch to insertion sort to after presorted detection
LilithHafner Mar 15, 2022
dad6a26
Change length threshold from len > 61 to len > 60 for consistency
LilithHafner Mar 16, 2022
0bf35ab
Move submodule Sort.Serial to Sort and rename `serial` to `uint_map`
LilithHafner Mar 16, 2022
c80b3cd
Docstring
LilithHafner Mar 16, 2022
9a626d7
Try to fix build error (1)
LilithHafner Mar 16, 2022
701aa0a
Defer `bits` calculation till needed for readability
LilithHafner Mar 16, 2022
693adab
make floats UIntMappable, lol
LilithHafner Mar 16, 2022
563a816
Test Coverage
LilithHafner Mar 16, 2022
dceee48
Explain floating point exceptions
LilithHafner Mar 16, 2022
29442e7
Fix argument order in docstrings
LilithHafner Mar 16, 2022
5f7d0d9
Merge branch 'JuliaLang:master' into patch-9
LilithHafner Mar 16, 2022
070a48e
Fix argument order in docstrings part 2
LilithHafner Mar 16, 2022
287013c
Fix typo in tests
LilithHafner Mar 17, 2022
0581855
Replace partially presorted check with fully presorted check
LilithHafner Mar 23, 2022
c07fb05
Apply suggestions from code review
LilithHafner Mar 31, 2022
d6087d0
adjust presorted checks
LilithHafner Mar 31, 2022
609abee
proof read
LilithHafner Apr 2, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading