dzaima
|
eac297d4d9
|
actually add test/cases/perf.bqn (incl. a test of long⍋short)
|
2023-07-10 16:50:02 +03:00 |
|
dzaima
|
1cea42cad3
|
use getter over 𝕨 for generic 𝕨⍋𝕩
doesn't change perf, but leads to fast amortized long⍋short
|
2023-07-10 16:50:02 +03:00 |
|
dzaima
|
bf89d2d561
|
a little size reduction on write_indices
|
2023-07-10 16:29:21 +03:00 |
|
dzaima
|
368e6b6001
|
Merge pull request #86 from mlochbaum/bins
Bins
|
2023-07-10 16:26:50 +03:00 |
|
Marshall Lochbaum
|
f6d1f9fcab
|
Move utilities from bins to appropriate files
|
2023-07-10 07:14:44 -04:00 |
|
Marshall Lochbaum
|
492e97e2ca
|
Right argument narrowing for numeric Bins
|
2023-07-10 07:14:44 -04:00 |
|
Marshall Lochbaum
|
9511598aa3
|
Fast Bins when either argument is boolean
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
1fa00c9c6f
|
Update bins implementation comments
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
46c6d47055
|
Permutevar instead of shuffle for 4-byte vector binary search
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
fc57e0012d
|
Shuffle-based 4-byte vector binary search
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
af5ba0a2d2
|
Switch from Eytzinger to linear search on extra lanes
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
64ae8f9afd
|
Slightly better blend pattern for >16-byte bit table
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
c8d20fbf26
|
And 2-byte vector binary search on 4 lanes
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
fe92f91ca1
|
2-byte vector binary search on 2 lanes
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
d19df2693a
|
Merge 1-byte table code with normal bins_lookup
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
f36dc7adba
|
Use max-scan instead of plus-scan for 1-byte Bins table
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
8054597004
|
Handle up to 64 unique values in bit-table 1-byte Bins
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
b62bd02bc0
|
Precomputed midpoint bits in vector binary search
Clang already optimized to this but it's more explicit
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
7f5ba961c2
|
Use default bins_lookup if there's no AVX2
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
1080236433
|
2-byte vector binary searches
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
d665b90bbf
|
Slightly faster binary search pattern with a blend
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
a711eb72eb
|
Table-based 2-byte Bins, using max-scan
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
724f685a57
|
Cleanup
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
2c9e07f33d
|
1-byte Bins up to 32 unique eleemnts by unique lookup then index
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
81da9c586f
|
Table-based 1-byte Bins with >1-byte result
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
0346ff7c2d
|
Use type of ≠𝕨 for Singeli Bins result and allocate outside Singeli
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
e0621f99f8
|
Unroll vector binary searches for different search depths
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
38671e3fe9
|
Fast handling for length-1 𝕨 in Bins
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
ed9e8b4057
|
Table-based 1-byte Bins implementations, including AVX2
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
7161689196
|
Fix bin_search_vec over-writing
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
302d637129
|
Allocate binary search result in Singeli, using i8 for vectors
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
70249d8b64
|
In bins, promote to smallest common int type instead of i32
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
4f93b5849b
|
Fix shape of char⍋num result (was deshaped)
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
ec9b875503
|
Separate is-sorted check from Bins implementation
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
ff9919dde2
|
AVX2 binary search on one lane of i8 (unused for now)
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
5424c57b7e
|
Use Singeli float binary search
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
ee84f9fe1f
|
4-way branchless binary search unrolling
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
464a53463d
|
Generic Singeli version of 32-bit binary search
|
2023-07-10 07:13:21 -04:00 |
|
dzaima
|
6b5815dcc2
|
fix shape of k/n‿1⥊1
|
2023-07-10 02:40:36 +03:00 |
|
dzaima
|
8975be082b
|
fix •ns.Get error message
|
2023-07-09 15:58:31 +03:00 |
|
dzaima
|
5c7934387a
|
update Singeli submodule, match{} → same{}
|
2023-06-29 15:19:57 +03:00 |
|
dzaima
|
a67a19dd0b
|
move pair{{a,b}} expanding to base.singeli
|
2023-06-29 01:31:58 +03:00 |
|
dzaima
|
32064d4de3
|
fix nproc usage
|
2023-06-29 01:31:37 +03:00 |
|
dzaima
|
4ee8dfbbda
|
update Singeli submodule, use destructuring parameters
|
2023-06-28 00:59:28 +03:00 |
|
dzaima
|
3ae9b14d64
|
separate arith inits, add comments on init order
|
2023-06-23 12:10:42 +03:00 |
|
dzaima
|
7618dce2f3
|
fix return value of overflowed dyadic arith
|
2023-06-23 12:10:42 +03:00 |
|
dzaima
|
5f43bf16b3
|
add direct typed array type test macro
|
2023-06-23 12:10:42 +03:00 |
|
dzaima
|
4dbe72ae03
|
properly indicate estimating Singeli instructions
|
2023-06-23 11:51:34 +03:00 |
|
dzaima
|
774fb9b72f
|
move static linking management to build.bqn
|
2023-06-19 12:27:49 +03:00 |
|
dzaima
|
fe3135213e
|
Merge pull request #85 from dancek/static-build-target
Add target `make musl-static`
|
2023-06-19 12:26:12 +03:00 |
|