Marshall Lochbaum
|
7acd9d5688
|
Indices/Replicate implementation comments
|
2022-11-13 18:00:10 -05:00 |
|
dzaima
|
c81e95730a
|
fix -DMM=0 builds
|
2022-11-13 13:47:29 +02: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
|
a64f0ada5f
|
update src/README.md
|
2022-11-12 20:30:47 +02: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 |
|
dzaima
|
6467530823
|
use ty_u
|
2022-11-08 16:56:43 +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
|
fdbd36250b
|
noinline writeNum, use loop instead of generated code
|
2022-11-06 03:17:31 +02:00 |
|
dzaima
|
fc059a77d0
|
noinline various things in main.c
|
2022-11-06 02:36:57 +02:00 |
|
dzaima
|
28d434a201
|
catch double-frees in debug mode
|
2022-11-06 02:11:12 +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
|
cc467ce8ca
|
cleanup
|
2022-10-23 13:14:36 +03: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 |
|
dzaima
|
64ce7ec6fe
|
fix non-squeezed string •FFI arguments
|
2022-10-18 19:26:53 +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
|
2a17d87572
|
calculate •FFI allocation layout ahead-of-time
|
2022-10-16 14:16:34 +03:00 |
|
dzaima
|
83af05d274
|
fix building on gcc≤10
|
2022-10-10 13:53:56 +03:00 |
|
dzaima
|
2eecc0feda
|
squeeze *u8/*u16/*u32 result
it has to sometimes be one size up to accommodate for the upper unsigned range, but often (?) it should fit fine in the signed range of its type
|
2022-10-08 19:59:03 +03:00 |
|
dzaima
|
ac041d37f4
|
fix WARN_SLOW build
|
2022-10-08 19:30:08 +03:00 |
|
dzaima
|
7e1c9b50cd
|
initial struct support
|
2022-10-08 19:08:20 +03:00 |
|
dzaima
|
702d4e979d
|
various utility changes
|
2022-10-08 19:03:41 +03:00 |
|
dzaima
|
529d2abae4
|
add warning about miscompilation for x86 on gcc
|
2022-10-08 14:41:44 +03:00 |
|
dzaima
|
7bda795365
|
fix gcc warnings about pointer casts in 32-bit builds
|
2022-10-07 12:57:59 +03:00 |
|
dzaima
|
abcb575a53
|
simplify bit boolean constant replicate start
|
2022-10-04 22:11:20 +03:00 |
|
Marshall Lochbaum
|
ce74e36a19
|
Fix lots of missing casts for function calls
|
2022-09-30 20:20:38 -04: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
|
47cdf02877
|
Build Singeli files with a filename prefix
|
2022-09-30 11:35:25 -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
|
582afe33c9
|
Merge 3 to 7 replicate float with other types: shuffle instead of permute
|
2022-09-29 20:12:45 -04:00 |
|
Marshall Lochbaum
|
29886f355a
|
Combine small-replication shuffle vector tables across types
|
2022-09-29 19:58:14 -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
|
4836f70e0d
|
Simplify rep_const_broadcast, removing unused kv==0 case
|
2022-09-28 14:14:39 -04:00 |
|
Marshall Lochbaum
|
d28a74b572
|
Move 4-shuffle data to a table
|
2022-09-28 13:35:08 -04:00 |
|
Marshall Lochbaum
|
9947de0146
|
Performance improvements when compiling slash.singeli
|
2022-09-27 22:00:59 -04:00 |
|
Marshall Lochbaum
|
db3e0a6324
|
Move all the algorithm decision logic into main rep_const and simplify
|
2022-09-27 22:00:59 -04:00 |
|
Marshall Lochbaum
|
c430922a7e
|
Use shared functions and shuffle array for sizes 3 to 7 in constant Replicate
|
2022-09-27 22:00:59 -04:00 |
|
Marshall Lochbaum
|
68aeb0f7cb
|
Add large-constant replicate method always using 4 shuffles
|
2022-09-27 22:00:59 -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 |
|
Marshall Lochbaum
|
851f50635e
|
Some simplifications in base.singeli
|
2022-09-27 22:00:59 -04:00 |
|
dzaima
|
46501ac819
|
update build & packaging information
closes #45
|
2022-09-27 17:53:06 +03: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
|
608489aed1
|
fix gcc singeli build
|
2022-09-24 19:30:10 +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
|
01f73dc83b
|
Move usum and bit_sum from numarr.h to stuff.c
|
2022-09-19 19:38:26 -04: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
|
12c4fd0b07
|
Vectorizable usum code for i8, i16, i32
|
2022-09-18 16:15:20 -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
|
43ddb9759c
|
inline part of depth
|
2022-09-18 21:58:53 +03:00 |
|