dzaima
|
63a2791361
|
add some NOUNROLLs
|
2022-11-14 18:00:00 +02:00 |
|
Marshall Lochbaum
|
85f54b2b25
|
Check for a small return type in large-range /⁼ with a sparse table
|
2022-11-13 18:00:10 -05:00 |
|
Marshall Lochbaum
|
cd16c8a1c7
|
Blocked 4-byte ⍋bool and ⍒bool with Singeli
|
2022-11-13 18:00:10 -05:00 |
|
Marshall Lochbaum
|
1647e98fd2
|
Use Singeli code for ⍋bool and ⍒bool with 1- and 2-byte result
|
2022-11-13 18:00:10 -05:00 |
|
Marshall Lochbaum
|
6bea10de21
|
Implementation comments and minor refactoring for /⁼
|
2022-11-13 18:00:10 -05:00 |
|
Marshall Lochbaum
|
7acd9d5688
|
Indices/Replicate implementation comments
|
2022-11-13 18:00:10 -05:00 |
|
dzaima
|
b244d7ecf5
|
disallow bitwise hashing for ¯0; prepare for mm_alloc taking u64 size
|
2022-11-12 23:45:39 +02:00 |
|
Marshall Lochbaum
|
7d56d61235
|
Hash table for Occurrence Count (⊒)
|
2022-11-12 15:47:59 -05:00 |
|
Marshall Lochbaum
|
1be4f4c2e7
|
Fix value movement when resizing Classify (⊐) hash
|
2022-11-12 15:47:59 -05:00 |
|
Marshall Lochbaum
|
62867f4533
|
Make brute-force Mark Firsts store result in a register (always <64 elements)
|
2022-11-12 15:47:59 -05:00 |
|
Marshall Lochbaum
|
8560ce0f4d
|
Move hash table initializers to functions to save some binary space
|
2022-11-12 15:47:59 -05:00 |
|
Marshall Lochbaum
|
9adfb13355
|
Extend Mark Firsts hash table to handle Classify
|
2022-11-12 15:47:59 -05:00 |
|
Marshall Lochbaum
|
37d7694c52
|
64-bit Mark Firsts (∊) hash table
|
2022-11-12 15:47:59 -05:00 |
|
Marshall Lochbaum
|
dc7389a660
|
Mark Firsts hash table resizing policy tweaks
|
2022-11-12 15:47:59 -05:00 |
|
Marshall Lochbaum
|
2e1b64e0ca
|
Resizable hash table for Mark Firsts (∊)
|
2022-11-12 15:47:59 -05:00 |
|
Marshall Lochbaum
|
8a551ab5ce
|
Add 32-bit hash table for Classify (⊒)
|
2022-11-12 15:47:59 -05:00 |
|
Marshall Lochbaum
|
d8e4e7d96f
|
Unify small-type and small-range tables for Classify (⊐)
|
2022-11-12 15:47:59 -05:00 |
|
dzaima
|
a7daeea6d9
|
fix (500⥊¯1‿5) ⊔ 500‿1‿3⥊3
|
2022-11-12 19:20:34 +02:00 |
|
Marshall Lochbaum
|
beb997ccb9
|
Avoid data movement for empty cells in Group 𝕩
|
2022-11-12 07:25:41 -05:00 |
|
dzaima
|
a1e12106ce
|
use FILL_TO for more compact edge-case handling
|
2022-11-12 13:45:52 +02:00 |
|
dzaima
|
1241da4d74
|
fix group of array with empty cells
|
2022-11-12 13:41:45 +02:00 |
|
dzaima
|
eb880d7135
|
set result fill fill immediately instead of delaying to before return
|
2022-11-12 13:30:35 +02:00 |
|
Marshall Lochbaum
|
d2cdae4962
|
Fast case for bool⊔𝕩 using compress
|
2022-11-10 21:22:29 -05:00 |
|
Marshall Lochbaum
|
a3da018055
|
Group code for 1-bit cells
|
2022-11-10 14:52:45 -05:00 |
|
Marshall Lochbaum
|
6eb504118e
|
Split out optimized Group cases and add comments
|
2022-11-10 14:52:45 -05:00 |
|
Marshall Lochbaum
|
801472d6d4
|
Implement bit_cpy versions of the Group methods that use memcpy
|
2022-11-10 14:52:45 -05:00 |
|
Marshall Lochbaum
|
e7c1918ba0
|
Native <` implementation using addition
|
2022-11-09 12:19:02 -05:00 |
|
dzaima
|
87d0fa5dc7
|
fix gcc 9 build
|
2022-11-08 16:59:17 +02:00 |
|
Marshall Lochbaum
|
812b97dc51
|
Mark boolean +` result sorted and squoze
|
2022-11-07 20:23:15 -05:00 |
|
Marshall Lochbaum
|
666a41ab12
|
1- and 2-byte Singeli boolean +`
|
2022-11-07 17:54:11 -05:00 |
|
Marshall Lochbaum
|
f1ff499244
|
Implement multiple result types for non-Singeli +`bool
|
2022-11-07 17:09:41 -05:00 |
|
Marshall Lochbaum
|
7b3c69f9da
|
Take sum first in boolean plus-scan; special code for sparse or boolean sum
|
2022-11-07 15:35:53 -05:00 |
|
dzaima
|
4f9af9965c
|
clangd compilation command generating utility
|
2022-11-06 18:34:47 +02:00 |
|
dzaima
|
f87a1155f5
|
store references instead of GC root functions to handle mutable roots
-0.21% binary size; mm_visit & mm_visitP got inlined in the gcFn-s, even though that's very pointless
|
2022-11-06 02:01:14 +02:00 |
|
dzaima
|
36111276c6
|
•math.Atan2
|
2022-11-05 20:36:54 +02:00 |
|
dzaima
|
25694db7ca
|
better non-Singeli comparison
|
2022-11-05 20:09:30 +02:00 |
|
dzaima
|
c9be8516c3
|
deduplicate generic sort work
|
2022-11-05 19:41:04 +02:00 |
|
dzaima
|
6e552fedf5
|
base case implementation for ⍋c8arr & ⍋c16arr
|
2022-11-05 19:00:59 +02:00 |
|
dzaima
|
ff0bfd34bb
|
squeeze Grade result
|
2022-11-05 18:48:54 +02:00 |
|
dzaima
|
471afb2a3f
|
handle 256|i8arr & similar
|
2022-11-03 17:28:21 +02:00 |
|
dzaima
|
3b56223618
|
allow 32768|intarr to squeeze to i16arr
|
2022-11-03 17:21:12 +02:00 |
|
dzaima
|
c1a77a24fb
|
fast (2⋆n)|ints
|
2022-11-03 15:35:41 +02:00 |
|
dzaima
|
96394c6f73
|
fix ⊔ making an invalid array on ("Af64"•internal.Variation⋈¯1)⊔⟨⟩
|
2022-11-03 01:26:38 +02:00 |
|
dzaima
|
cc406595c0
|
use direct comparison in ⊔
|
2022-11-03 00:32:44 +02:00 |
|
dzaima
|
70e7dcf38a
|
Merge remote-tracking branch 'mlochbaum/subset'
|
2022-11-02 23:19:03 +02:00 |
|
dzaima
|
4daabd708a
|
introduce calls.h, move vec_addN and vec_join to core header
and remove a bunch of apparently unnecessary mut.h imports
|
2022-11-02 23:17:52 +02:00 |
|
Marshall Lochbaum
|
600ee411f8
|
Use slash and comparison functions to filter •rand.Subset output faster
|
2022-11-01 20:25:13 -04:00 |
|
dzaima
|
bed2708537
|
move non-Singeli comparisons to function lookup
|
2022-10-27 19:27:15 +03:00 |
|
dzaima
|
8d6172126c
|
use void* instead of u8* for singeli function arguments
|
2022-10-25 17:27:08 +03:00 |
|
dzaima
|
5a7d702bc6
|
use incG more
|
2022-10-25 16:59:08 +03:00 |
|
Marshall Lochbaum
|
9862331696
|
Fix single-file build by defining GRADE_UD in selfsearch.c
|
2022-10-24 22:08:28 -04:00 |
|
Marshall Lochbaum
|
2844520109
|
Need to define GRADE_UD for radix.h from selfsearch.c without Singeli
|
2022-10-24 07:49:36 -04:00 |
|
Marshall Lochbaum
|
fa03cabc53
|
Index-of with small 𝕨 using (⊣×1+⊢)´ pattern
|
2022-10-23 22:08:08 -04:00 |
|
Marshall Lochbaum
|
d1e40a01df
|
Use saved counts and possibly dense table initialization for 1-byte radix lookup
|
2022-10-23 22:08:08 -04:00 |
|
Marshall Lochbaum
|
7cbd23c832
|
Skip radix moves if the top bytes are all the same
|
2022-10-23 22:08:08 -04:00 |
|
Marshall Lochbaum
|
b9d5f10d4a
|
Unify radix sort and radix lookup prefix sums
|
2022-10-23 22:08:08 -04:00 |
|
Marshall Lochbaum
|
2207d9f1bb
|
Combine monadic ∊ and ⊐ radix lookups with a macro
|
2022-10-23 22:08:08 -04:00 |
|
Marshall Lochbaum
|
552e4f6751
|
Fix refcount handling for bool⊐𝕩
|
2022-10-23 22:08:08 -04:00 |
|
Marshall Lochbaum
|
979c31fc3e
|
Table-based dyadic ⊒ for integers up to 2 bytes
|
2022-10-23 22:08:08 -04:00 |
|
Marshall Lochbaum
|
5df198602c
|
Adjust search table sparse initialization threshold for type it stores
|
2022-10-23 22:08:08 -04:00 |
|
Marshall Lochbaum
|
e318830365
|
Dyadic ⊒ implementation with a generic hash table
|
2022-10-23 22:08:08 -04:00 |
|
Marshall Lochbaum
|
f5555021f2
|
Index-of with boolean 𝕨, using two comparisons
|
2022-10-23 22:08:08 -04:00 |
|
Marshall Lochbaum
|
0f7bfa2575
|
Implement bit_find and fast self-search for booleans
|
2022-10-23 22:08:08 -04:00 |
|
Marshall Lochbaum
|
96740566e9
|
Extend lookup code to boolean searched-for array
|
2022-10-23 22:08:08 -04:00 |
|
Marshall Lochbaum
|
d9519eb6e1
|
Extend table-based membership to Index-of
|
2022-10-23 22:08:08 -04:00 |
|
Marshall Lochbaum
|
0cb5e4ee10
|
Table-based 1- and 2-byte integer membership
|
2022-10-23 22:08:08 -04:00 |
|
Marshall Lochbaum
|
447ce6163f
|
Introduce bit_has and use for ∧´, ∨´, and 𝕨∊bool
|
2022-10-23 22:08:08 -04:00 |
|
Marshall Lochbaum
|
236d8dedd6
|
Move search functions to search.c
|
2022-10-23 22:08:08 -04:00 |
|
dzaima
|
66584ce149
|
fix 0‿¯1⊏129⥊100
|
2022-10-21 18:17:12 +03:00 |
|
dzaima
|
f2b6b5d446
|
system value redefining with •ReBQN
|
2022-10-19 23:12:28 +03:00 |
|
dzaima
|
4d9a63f68b
|
fix •ReBQN
|
2022-10-19 20:56:30 +03:00 |
|
dzaima
|
336049560b
|
don't include •FFI if FFI is disabled
|
2022-10-19 19:31:21 +03:00 |
|
dzaima
|
ec62856b67
|
•listsys
|
2022-10-19 19:19:11 +03:00 |
|
dzaima
|
accd7384bd
|
delay •file initialization
|
2022-10-19 19:16:13 +03:00 |
|
dzaima
|
a72778ed6f
|
extract system value info to object
|
2022-10-19 19:15:21 +03:00 |
|
Marshall Lochbaum
|
130653dbda
|
Allow character arguments to •bit operations
|
2022-10-17 09:39:38 -04:00 |
|
Marshall Lochbaum
|
89c1b39c6d
|
Don't allow 0 as a width for •bit
|
2022-10-17 09:39:38 -04:00 |
|
Marshall Lochbaum
|
698c902564
|
Implement scalar extension for •_bit
|
2022-10-17 09:39:38 -04:00 |
|
Marshall Lochbaum
|
022ef64f6b
|
Add NOUNROLLs to bitwise functions
|
2022-10-17 09:39:38 -04:00 |
|
Marshall Lochbaum
|
80f8ac9643
|
2-argument •bit operations
|
2022-10-17 09:39:38 -04:00 |
|
Marshall Lochbaum
|
8f5259e77d
|
Implement 1-argument •bit operations
|
2022-10-17 09:39:38 -04:00 |
|
dzaima
|
83af05d274
|
fix building on gcc≤10
|
2022-10-10 13:53:56 +03:00 |
|
dzaima
|
ac041d37f4
|
fix WARN_SLOW build
|
2022-10-08 19:30:08 +03:00 |
|
dzaima
|
abcb575a53
|
simplify bit boolean constant replicate start
|
2022-10-04 22:11:20 +03:00 |
|
dzaima
|
82ac059b75
|
disable clmul ≠` when pclmul not available
|
2022-09-30 20:06:52 +03:00 |
|
Marshall Lochbaum
|
cca64bba70
|
Move nescan.c into md1.c and constrep.c into slash.c
|
2022-09-30 11:40:37 -04:00 |
|
Marshall Lochbaum
|
cad566d547
|
Not-equals scan with carry-less multiply
|
2022-09-29 20:39:46 -04:00 |
|
Marshall Lochbaum
|
acc200222d
|
Move constant Replicate Singeli code to its own file
|
2022-09-29 20:33:09 -04:00 |
|
Marshall Lochbaum
|
e407286185
|
BMI2-based constant boolean Replicate for 𝕨<=52
|
2022-09-28 21:56:57 -04:00 |
|
Marshall Lochbaum
|
0c0d967dc3
|
Adjust Table thresholds for fast constant Replicate
|
2022-09-28 17:18:55 -04:00 |
|
Marshall Lochbaum
|
09aba9bc37
|
slash.singeli is only used with __BMI2__ for now
|
2022-09-28 17:18:42 -04:00 |
|
Marshall Lochbaum
|
7069a60453
|
Handle all constant Replicate in Singeli
|
2022-09-27 22:00:59 -04:00 |
|
Marshall Lochbaum
|
15c405e7bf
|
Factorize constant replicate lengths under 32
|
2022-09-27 22:00:59 -04:00 |
|
Marshall Lochbaum
|
7535d768dd
|
Singeli shuffle-based code for constant replicates <=7
|
2022-09-27 22:00:59 -04:00 |
|
dzaima
|
d3ed718a6d
|
branchless sparse Where block size bound was too big
|
2022-09-26 23:12:17 +03:00 |
|
dzaima
|
bd823839fe
|
fixes for /
|
2022-09-25 18:45:46 +03:00 |
|
dzaima
|
1fcd5295eb
|
slight attempt at improving ↕list
|
2022-09-25 14:55:49 +03:00 |
|
dzaima
|
5c87c291f9
|
refactor unroll/vectorization disabling macros
|
2022-09-25 14:49:57 +03:00 |
|
dzaima
|
2bb6750d7d
|
better bitarr fill
|
2022-09-24 19:31:46 +03:00 |
|
dzaima
|
37a3979c86
|
clean up generic unit reshape case
|
2022-09-24 19:20:32 +03:00 |
|
Marshall Lochbaum
|
e8e10790f8
|
Fast array reshape
|
2022-09-23 17:40:30 -04:00 |
|
Marshall Lochbaum
|
218a8b069e
|
Rework reshape of singleton
|
2022-09-23 15:32:27 -04:00 |
|
Marshall Lochbaum
|
8e24da8e8e
|
Adjust Replicate thresholds
|
2022-09-23 08:22:41 -04:00 |
|
Marshall Lochbaum
|
8a13bf9476
|
Constant boolean replicate
|
2022-09-22 22:32:52 -04:00 |
|
Marshall Lochbaum
|
7f6cf06eea
|
Merge scan-based sparse Indices/Replicate code with macros
|
2022-09-22 22:09:56 -04:00 |
|
Marshall Lochbaum
|
d647978c8f
|
Type-independent Replicate by constant
|
2022-09-22 21:42:18 -04:00 |
|
Marshall Lochbaum
|
ec12dd4502
|
Switch to forward inclusive sums for all radix sorting, and use Singeli
Removes SWAR for 8-bit counts, since reverse sorting uses negatives
|
2022-09-22 16:44:05 -04:00 |
|
Marshall Lochbaum
|
8e1d8bb42c
|
Use Singeli max/min scan for Indices and Sort
|
2022-09-22 15:17:54 -04:00 |
|
Marshall Lochbaum
|
bc4f5167fb
|
Constant replicate using plus-scan
|
2022-09-21 19:40:04 -04:00 |
|
Marshall Lochbaum
|
6ed3c18389
|
Implement SIMD wrapping plus-scan for Replicate
|
2022-09-21 19:40:04 -04:00 |
|
dzaima
|
c42f0fd699
|
revert de4fca85
|
2022-09-22 01:18:41 +03:00 |
|
dzaima
|
de4fca859f
|
extract arr_shCopy
|
2022-09-22 00:51:04 +03:00 |
|
dzaima
|
06fe437520
|
bitarr reversing
|
2022-09-22 00:38:09 +03:00 |
|
dzaima
|
1e3089ceaa
|
fast ⍉𝕩 when 2=≠𝕩
|
2022-09-20 22:29:32 +03:00 |
|
dzaima
|
7c4673f972
|
more num_squeezeChk
|
2022-09-20 19:27:23 +03:00 |
|
dzaima
|
42ae82eb1f
|
simpler slash_ucw !elInt(w) case
|
2022-09-20 19:14:02 +03:00 |
|
dzaima
|
42e36851b9
|
more cleanup
|
2022-09-20 18:57:22 +03:00 |
|
dzaima
|
f231a30057
|
fix 𝕨⊔0
|
2022-09-20 17:36:55 +03:00 |
|
dzaima
|
cec5b7dc6c
|
slash.c cleanup
|
2022-09-20 17:32:12 +03:00 |
|
Marshall Lochbaum
|
ac4729bb29
|
Use grouped compress for all byte sizes if the number of groups is small enough
|
2022-09-19 19:31:44 -04:00 |
|
Marshall Lochbaum
|
11e3db1787
|
Can't call harr withFill before adding data to array
|
2022-09-19 11:15:47 -04:00 |
|
Marshall Lochbaum
|
05401547c1
|
Grouped compress for odd cell widths
|
2022-09-19 10:52:26 -04:00 |
|
Marshall Lochbaum
|
9af77e63ee
|
Split up partitioning loop in Group for rank 1 and rank>1 cases
|
2022-09-18 16:43:19 -04:00 |
|
Marshall Lochbaum
|
d525acb51e
|
Merge branch 'master' into cellwidth
|
2022-09-18 15:26:34 -04:00 |
|
dzaima
|
9453a9b665
|
remove old loops for non-bitarr 𝕨 consisting of 0 and 1 from 𝕨/𝕩
|
2022-09-18 22:12:07 +03:00 |
|
dzaima
|
dd56cfab20
|
allow using picked element of ⌾(n⊸⊑) in-place
|
2022-09-18 21:00:51 +03:00 |
|
dzaima
|
770f7b2f0c
|
check type directly in pick_ucw
|
2022-09-18 20:17:48 +03:00 |
|
Marshall Lochbaum
|
cae65947cd
|
Apply fast Replicate code whenever the cell size is right
|
2022-09-17 21:01:17 -04:00 |
|
Marshall Lochbaum
|
c72b9b5abd
|
Redo replicate with sparse and dense cases
|
2022-09-17 16:17:47 -04:00 |
|
Marshall Lochbaum
|
5f196c49d9
|
Extend sparse and dense where to all cases fitting in i32s
|
2022-09-16 22:01:56 -04:00 |
|
Marshall Lochbaum
|
fb1230bcc2
|
Sparse Indices prototype
|
2022-09-16 22:01:56 -04:00 |
|
Marshall Lochbaum
|
26c3dbfeea
|
Start using type-independent utilities in compress()
|
2022-09-16 22:01:56 -04:00 |
|
Marshall Lochbaum
|
3505e1515e
|
Extend Group where 𝕨 is an integer list to handle higher-rank 𝕩
|
2022-09-16 22:01:56 -04:00 |
|
Marshall Lochbaum
|
21033fa355
|
Move Group to its own file
|
2022-09-16 22:01:56 -04:00 |
|
Marshall Lochbaum
|
0b1ded14e0
|
Type-independent Reverse
|
2022-09-16 22:01:56 -04:00 |
|
Marshall Lochbaum
|
b84a2d4e1f
|
Special-casing for length 1 in self-search functions
|
2022-09-16 22:01:56 -04:00 |
|
Marshall Lochbaum
|
57d33990e3
|
Make self-search special code only depend on cell size
|
2022-09-16 22:01:56 -04:00 |
|
dzaima
|
89503ba1c1
|
don't not check top bits in LIKELY & RARE
|
2022-09-12 19:51:07 +03:00 |
|
dzaima
|
889c520251
|
move slash_im setting
|
2022-09-12 18:32:56 +03:00 |
|
dzaima
|
a46ec7343e
|
not slow ⍉bitarr, fix ⊢⌾⍉ 2‿3‿4⥊↕24
|
2022-09-12 18:27:18 +03:00 |
|
dzaima
|
32d533b6e2
|
don't print left argument of ⊑ if it's large
|
2022-09-12 18:21:04 +03:00 |
|
dzaima
|
47c4a53da4
|
fix WARN_SLOW build
|
2022-09-12 18:19:05 +03:00 |
|
Marshall Lochbaum
|
6d372959e8
|
Just return 𝕩 for an all-ones compress
|
2022-09-11 21:48:31 -04:00 |
|
Marshall Lochbaum
|
9b17701c66
|
Sparse 1- and 2-byte compress, with blocking, if total sum is low enough
|
2022-09-11 20:19:20 -04:00 |
|
Marshall Lochbaum
|
c796670549
|
Faster trailing zero trim, and apply it to all cases in compress()
|
2022-09-11 20:19:20 -04:00 |
|
Marshall Lochbaum
|
2baa88ad31
|
Compress for 4-byte and 8-byte data using index blocks
|
2022-09-11 18:00:29 -04:00 |
|
Marshall Lochbaum
|
ab25b08f84
|
Move compress (bool/list) to its own function
|
2022-09-11 16:32:41 -04:00 |
|
Marshall Lochbaum
|
819899c745
|
Implement f64 Where with u16 blocks
|
2022-09-11 16:32:41 -04:00 |
|
Marshall Lochbaum
|
fda3efe217
|
More macros for Where
|
2022-09-11 15:31:23 -04:00 |
|
Marshall Lochbaum
|
0d6894ddbc
|
Fix broken non-Singeli dense i32 Where
|
2022-09-11 15:15:56 -04:00 |
|