36 Commits

Author SHA1 Message Date
Richard Thier
21c9d52138 smallest tune 2025-05-09 06:44:19 +02:00
Richard Thier
38ac7a8a51 schwab: finetuned 2025-05-09 06:38:00 +02:00
Richard Thier
0900fece84 schwab: hax in regz - not helping extra much 2025-05-09 06:35:50 +02:00
Richard Thier
c1d152c6f9 schwab: selection sort trying... 2025-05-09 06:01:44 +02:00
Richard Thier
266f489002 schwab: minor fine-tune so we more easily win over std::sort 2025-05-09 05:35:42 +02:00
Richard Thier
95c759b9e3 swab: fixed == to >= typo - now beats std::sort and is comparison sort fully! 2025-05-09 05:05:40 +02:00
Richard Thier
147ca60672 schwab insertion - but buggy from some previous at n=20 rand 2025-05-09 04:49:31 +02:00
Richard Thier
4c67501511 schwab: full branchless parts on partitioning now - speed gain but minimal... need like 5-6 of these 2025-05-09 03:51:37 +02:00
Richard Thier
b32c7540a2 schwab: goto-optimized - barely slower on my machine 2025-05-09 03:29:20 +02:00
Richard Thier
283783bf9b Revert "schwab: tried to help a bit with ILP - does not seem to help at all"
This reverts commit bf9c22f4ecd37039fe69142e9b72db6eb50b82a9.
2025-05-09 02:44:56 +02:00
Richard Thier
bf9c22f4ec schwab: tried to help a bit with ILP - does not seem to help at all 2025-05-09 02:44:44 +02:00
Richard Thier
ac01d33519 Revert "schwab: tried to change cache friendlyness for branch prediction - it seems it is very marginally worse and much worse if I move thid after the other branches"
This reverts commit fac01a81e35f4670aa6534aad9f1a7f4e5d692dd.
2025-05-09 02:36:15 +02:00
Richard Thier
fac01a81e3 schwab: tried to change cache friendlyness for branch prediction - it seems it is very marginally worse and much worse if I move thid after the other branches 2025-05-09 02:36:04 +02:00
Richard Thier
7d1d93a89c schwab: for-loop instead of while - does not seems like speedup 2025-05-09 02:30:59 +02:00
Richard Thier
19cbf53597 schwab: neoqs-like performance with no issues of smallrange and const because partitioning might do threeway when sensing possible issue 2025-05-09 02:16:23 +02:00
Richard Thier
c06f02bc94 schwab: fixed various bugs, now passes magyarsorts all tests until 20k elements but very slow on constant data for some reason - needs checking 2025-05-09 00:56:06 +02:00
Richard Thier
6fcf79bee3 schwab: some buggy idea that segfaults - might simplify a lot instead 2025-05-08 23:09:37 +02:00
Richard Thier
6d8802f479 schwab: fixed endless run, bug in hi not bigger then mid and lo because only indices are checked lol 2025-05-08 22:47:52 +02:00
Richard Thier
5775e6c201 schwab_sort but can endless loop 2025-05-08 21:47:30 +02:00
Richard Thier
d80a061240 neoqs - that adds smallrange support for meanqs 2025-05-06 03:04:57 +02:00
Richard Thier
bcc4f3bb62 Revert "try simpler branchless at cost of extra swaps - seems slower for me"
This reverts commit d61d1e72d291a4dbeb9197844a44897ac4027db9.
2025-05-06 02:30:56 +02:00
Richard Thier
d61d1e72d2 try simpler branchless at cost of extra swaps - seems slower for me 2025-05-06 02:30:44 +02:00
Richard Thier
0b864ad2f0 bugfixed branchless code having extra nonSameIndex - but was working when only half of it is branchless 2025-05-06 02:27:38 +02:00
Richard Thier
09ed5dd548 branchless partition3_sp2 - only half is branchless but already faster 2025-05-05 23:04:27 +02:00
Richard Thier
5d6ea0e778 added three-way single pass partitioning codes, they are a bit slower than the two-pass 3-way partitioning on my machine, but sp2 gets very close in performance so might be tweaked to get it be better maybe 2025-05-05 22:52:20 +02:00
Richard Thier
12d30a588a Revert "optimization that does not work, but is maybe not totally bad"
This reverts commit cebc516125e67dd0928a97a577d18564b0db064c.
2025-04-08 01:33:19 +02:00
Richard Thier
cebc516125 optimization that does not work, but is maybe not totally bad 2025-04-08 01:33:11 +02:00
Richard Thier
bc500c84e8 threeway further optimizations 2025-04-08 01:18:40 +02:00
Richard Thier
a465110170 threeway partitioning inplace quicksort 2025-04-08 00:37:58 +02:00
Richard Thier
32b5721e37 added chatgpt 4o version when asked to write quicksort - crashed around 100k elements in ascasc or similar patterns in my experience - also builds with a huge warning in case of g++ (no warning with clang++ though) 2025-04-07 06:00:09 +02:00
Richard Thier
37ed6c4f59 removed debug logs from last commits debugging 2025-04-07 05:05:10 +02:00
Richard Thier
69adbe4ae9 fixes to partitioning with pivot values - also simplified algorithm probably even faster actually because no avg calculation now 2025-04-07 04:58:18 +02:00
Richard Thier
22bb267000 bughunt in meanqs 2025-04-07 03:20:37 +02:00
Richard Thier
04705b5790 meanqs first version + empty line cleanups; also partitioning with min-max values of partitions selected and partitioning by a given pivot value instead of pivot or pivot index 2025-04-07 02:38:28 +02:00
Richard Thier
f15cc423d2 minmax partitioning - maybe should support avg or dual-output-minmaxing too? 2025-04-05 03:35:21 +02:00
Richard Thier
6fd6dbfff3 First version of various versions of quicksort 2025-04-05 02:15:39 +02:00