Commit Graph

888 Commits

Author SHA1 Message Date
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
Marshall Lochbaum
4bc5350747 Branchless sparse i16 Where 2022-09-11 11:00:17 -04:00
Marshall Lochbaum
1f40d36712 Separate where into its own function and split different types completely 2022-09-11 08:31:20 -04:00
Marshall Lochbaum
638121c054 Use blocked method for i32 Where with or without Singeli 2022-09-11 07:57:14 -04:00
Marshall Lochbaum
4999758497 Branchless i32 sparse Where 2022-09-11 07:57:01 -04:00
Marshall Lochbaum
017fcaea2a Move slash functions to a separate file 2022-09-10 09:58:42 -04:00
Marshall Lochbaum
bb3ecdca6a Sparse Where 2022-09-10 09:12:16 -04:00
Marshall Lochbaum
ae9817fd0d Fast path for / with empty result, and faster non-Singeli Where 2022-09-10 09:02:17 -04:00
Marshall Lochbaum
d8abc4ef7e Separate handling for ⊔ when 𝕨 changes value rarely 2022-09-09 18:11:12 -04:00
Marshall Lochbaum
ef2dee9a4d Special case data movement for ⊔ on sorted 𝕨 2022-09-09 13:21:08 -04:00
Marshall Lochbaum
569dcacac1 Do Group's range check and ¯1 counting on 1- or 2-byte ints
Doesn't vectorize, but at least it speeds up filtering later
2022-09-09 08:58:23 -04:00
Marshall Lochbaum
1e143644b6 Filter out ¯1s in Group with / if there are enough of them 2022-09-08 21:00:15 -04:00
dzaima
e266fbd09e basic float monadic arith loops, incl. -fno-math-errno 2022-09-08 23:18:47 +03:00
dzaima
3ccef1fe86 ⊔𝕩 → ⊔⟜(↕≠)𝕩 2022-09-08 14:52:19 +03:00
dzaima
59cadb06fe fix ⟨⟨⟩⟩⊏⟨⟩ incorrectly erroring
incl. ⟨⟨⟩,⟨⟩⟩⊏0‿0⥊⟨⟩, ⟨⟨⟩⟩⊏0‿0⥊⟨⟩, etc
2022-09-08 00:56:31 +03:00
dzaima
66d32e0acb fast exit for depth-2 𝕨 in 𝕨⊏𝕩 2022-09-08 00:47:25 +03:00
dzaima
96ca9092ba attempt at better bit_sel dispatch 2022-09-08 00:37:44 +03:00
dzaima
59e947cc20 more consistent type checking & conversion functions 2022-09-07 23:56:03 +03:00
dzaima
2299c8094e make gcc scream less 2022-09-07 20:28:45 +03:00
dzaima
0e306ca149 use WRAP instead of manual index management 2022-09-07 20:22:26 +03:00
dzaima
10004b82f7 make 1.2‿3.4⊏≍˘"abcd" error 2022-09-07 19:53:31 +03:00
dzaima
94e6168319 don't read past the end of array even if the value isn't used
bit_sel still uses it
2022-09-07 19:41:22 +03:00
dzaima
1a583725be use TALLOCP in other places 2022-09-07 17:59:17 +03:00
dzaima
b784dac9e1 make clang not go crazy 2022-09-07 00:27:23 +03:00
Marshall Lochbaum
a43a42e4d1 Select from small boolean list by copying to bytes 2022-09-06 16:34:08 -04:00
Marshall Lochbaum
f877a45a63 Vectorize range checks for 1- and 2-byte indices 2022-09-06 16:34:08 -04:00
Marshall Lochbaum
4a8244f2c1 Faster selection from boolean list 2022-09-06 16:08:16 -04:00
Marshall Lochbaum
55263bcbc4 Handle bit selection from arrays with under 2 elements 2022-09-06 16:08:16 -04:00
dzaima
c0b2164dc8 new array-atom arith 2022-09-05 22:52:53 +03:00
dzaima
629076d001 new ⟨⟩↕0 behavior & fix /⁼large_i8arr 2022-09-05 22:40:40 +03:00
dzaima
7f00d54372 rearrange arithd.c a bit more 2022-09-04 00:35:58 +03:00
Marshall Lochbaum
7792c60180 Fix unnecessary errors with computed shape 0, such as 1e8‿⌊‿1e8⥊↕5 2022-09-03 14:41:28 -04:00
Marshall Lochbaum
97bfacec44 Fix hang in •rand.Subset caused by moving wi==0 case into wi==xi 2022-09-03 14:41:28 -04:00
Marshall Lochbaum
44c0baee05 No need to initialize the negative half of the counts table 2022-09-03 14:41:28 -04:00
Marshall Lochbaum
37af32d95c Faster /⁼ for boolean and long 1-byte and 2-byte 𝕩 2022-09-02 14:31:07 -04:00
dzaima
0139c5f58d separate dyadic arith cases 2022-09-02 14:01:35 +03:00
dzaima
a637adadd9 rearrange arithd.c in preparation for separating its cases 2022-09-02 13:10:04 +03:00
dzaima
1b8bd0707e make dyarith array-array dispatch its own function 2022-09-01 22:22:13 +03:00
dzaima
90dd740bfc use cpyHArr instead of a getter loop 2022-09-01 19:25:20 +03:00
dzaima
dad47cf391 move arith_recd to a noinline function 2022-09-01 18:51:02 +03:00
dzaima
f758a3f1f6 proper argument name 2022-09-01 18:40:48 +03:00
dzaima
1c43ad6431 squeeze •rand.Subset result 2022-09-01 18:25:10 +03:00
dzaima
e72c7dc937 faster ÷ ⋆ √ | ⋆⁼ on i8 & i16 arrays 2022-09-01 16:06:52 +03:00
dzaima
5cfa89ad5a separate functions for comparison scalar & array cases 2022-09-01 15:06:34 +03:00
dzaima
72f25dad54 bitarr ↕1 and ↕2 2022-09-01 13:29:03 +03:00
dzaima
7d716d5ce0 elInt 2022-09-01 11:17:49 +03:00
dzaima
203916b44f error on non-numbers in +𝕩 2022-09-01 11:16:42 +03:00
Marshall Lochbaum
76c93d85e1 Dyadic 32-bit / based on 8-bit monadic / 2022-08-31 16:11:52 -04:00
Marshall Lochbaum
1e0cf78fd0 Implement 4-byte where with blocks of 2-byte where 2022-08-31 16:11:52 -04:00
Marshall Lochbaum
6f02705d9f Make small-range Grade code style more like radix code 2022-08-31 16:11:52 -04:00
Marshall Lochbaum
758c174cae Optimistic special case to quickly invert permutations with ⍋ 2022-08-31 16:11:52 -04:00
Marshall Lochbaum
a42335af4f Use or-equals for dyadic ∊ when 𝕩 is small and arguments are flat 2022-08-31 16:11:52 -04:00
Marshall Lochbaum
15b444540e Extend self-search typed code to characters by treating as numbers 2022-08-31 16:11:52 -04:00
Marshall Lochbaum
9028ebfe8b Native Windows (↕) 2022-08-31 16:11:52 -04:00
dzaima
9775339e2c squeeze result of ⌊ and ⌈ 2022-08-30 00:18:25 +03:00
dzaima
b37f620889 disable manual array F character loops when not running singeli 2022-08-29 19:46:41 +03:00
dzaima
777c5cc1a5 rename things 2022-08-29 19:05:34 +03:00
dzaima
ce5ece34e1 new arith 2022-08-28 23:28:06 +03:00
dzaima
3c1ef1c9a2 use elNum 2022-08-28 16:44:21 +03:00
Marshall Lochbaum
f80d3ce263 Branchless integer binary search 2022-08-28 09:16:25 -04:00
Marshall Lochbaum
139faee0a1 Unify integer and character Bins 2022-08-28 09:16:09 -04:00
Marshall Lochbaum
9376e02ecb Boolean sorting 2022-08-27 15:44:25 -04:00
Marshall Lochbaum
e027aca0cf Radix grades 2022-08-27 15:16:20 -04:00
Marshall Lochbaum
36e54d1a39 1-byte radix with length ==256 doesn't work because of SWAR overflow when descending 2022-08-27 11:10:17 -04:00
Marshall Lochbaum
4ec83e51a6 Merge sort.h into grade.h 2022-08-27 10:59:00 -04:00
Marshall Lochbaum
9d59dff522 4-byte sorting: insertion and radix 2022-08-26 22:04:32 -04:00
Marshall Lochbaum
f946a3de41 2-byte sorting: insertion, radix, counting 2022-08-26 22:04:32 -04:00
Marshall Lochbaum
5034e55c79 Move Sort to template file sort.h (for up/down) like Grade 2022-08-26 22:04:32 -04:00
Marshall Lochbaum
a0a4ecadc7 1-byte sorting: insertion, bucket, counting 2022-08-26 22:04:32 -04:00
dzaima
81e09956d3 •file.Size, make •file.List decode UTF-8
invalid UTF-8 is a problem for the future
2022-08-26 13:37:51 +03:00
dzaima
b16378bef6 add thing that was previously non-existent 2022-08-26 10:16:16 +03:00
dzaima
1927cb5756 implement ⍷𝕩 with (∊𝕩)/𝕩 2022-08-25 23:17:00 +03:00
dzaima
398a66ed94 fix c0 offset 2022-08-25 22:44:31 +03:00
dzaima
20a15097b4 remove non-existent thing 2022-08-25 22:33:38 +03:00
dzaima
d12a53fd08 •file.Created, •file.Accessed, •file.Modified 2022-08-25 22:29:03 +03:00
dzaima
905a9f78d4 {raw⇐1} •SH 𝕩 2022-08-25 22:27:35 +03:00
Marshall Lochbaum
e8e12e2d8f Another allocation improvement 2022-08-25 14:09:10 -04:00
Marshall Lochbaum
34950339c2 Improve radix+table allocation layout 2022-08-25 14:00:28 -04:00
dzaima
600bb59c77 more diagram 2022-08-25 20:27:30 +03:00
Marshall Lochbaum
c590d73030 Missed TFREE 2022-08-25 11:25:59 -04:00
Marshall Lochbaum
b2992a11b8 1- and 2-byte methods for monadic ⊐ 2022-08-25 11:10:11 -04:00
Marshall Lochbaum
98cd80c13d Port all the integer monadic ∊ methods to ⊒ 2022-08-25 10:39:38 -04:00
Marshall Lochbaum
f54942f175 Make first initialization in radix 4-byte lookup sparse too 2022-08-24 21:05:39 -04:00
Marshall Lochbaum
ad8570be11 Wait, sparse initialization with a pass through the argument is faster than radix stuff 2022-08-24 20:26:02 -04:00
Marshall Lochbaum
5cd2cab26e Small-number integer ∊ with all-pairs comparison and 2-byte radix+table 2022-08-24 18:44:00 -04:00
Marshall Lochbaum
7ffa0dac4a Switch from using IA to *SH for length 2022-08-24 11:08:27 -04:00
Marshall Lochbaum
efe2e86271 Unify search function preambles, so all have empty and rank>1 cases 2022-08-24 11:03:05 -04:00
Marshall Lochbaum
9d402c1bdd Move self-search functions to selfsearch.c 2022-08-24 10:47:04 -04:00
Marshall Lochbaum
eff9df5a26 Table lookups for self-search functions 2022-08-24 10:28:19 -04:00
Marshall Lochbaum
633e790099 Radix-assisted lookup implementation for ∊ 2022-08-24 10:27:55 -04:00
dzaima
eb9550aa29 •file.Parent 2022-08-22 15:30:37 +03:00
dzaima
aa95b6add4 actually use TY(x) / PTY(x) more 2022-08-21 16:11:40 +03:00
dzaima
7393c4b663 fully native ⊑ 2022-08-21 07:58:41 +03:00
dzaima
4ed814e395 cleanup of new field reading macros 2022-08-20 09:04:22 +03:00
dzaima
1694bfb7d2 s?p?rnk(x) → S?P?RNK(x) 2022-08-20 08:36:59 +03:00
dzaima
e10f13d6ea x->type → TY(x) / PTY(x) 2022-08-20 08:30:12 +03:00
dzaima
d2a4efe4b5 x->sh → SH(x) / PSH(x) 2022-08-20 08:30:07 +03:00
dzaima
e6b4f85662 x->ia → IA(x) / PIA(x) 2022-08-20 08:30:03 +03:00
dzaima
558c14cccd fix fill of empty 𝕨⊏𝕩 2022-08-20 08:23:58 +03:00
dzaima
719d37cd63 reorder eachm_fn and eachd_fn args 2022-08-18 11:18:34 +03:00
dzaima
b1300e6e76 yet another string function rename 2022-08-18 09:07:32 +03:00
dzaima
e49fcd3449 typed n •rand.Range 2⋆31 2022-08-17 19:41:32 +03:00
dzaima
81bdec4737 128-bit multiplication & unrolling doesn't go well in clang 2022-08-17 19:10:01 +03:00
dzaima
c5b65b9246 typed •rand.Range 2022-08-17 18:53:41 +03:00
Marshall Lochbaum
56a1d9ec4c Singeli integer ⌊ and ⌈ 2022-08-15 16:01:17 -04:00
dzaima
7e4096e572 nicer fold loops 2022-08-14 02:34:26 +03:00
Marshall Lochbaum
b579440f5e Change × and ∧ integer reductions to reverse order 2022-08-13 19:02:22 -04:00
Marshall Lochbaum
82d2eb5b1a Fix monadic ⌊` initial element 2022-08-13 19:00:59 -04:00
Marshall Lochbaum
195336b6df Implement F˝x as <F´x for rank-1 x and arithmetic F 2022-08-13 16:04:20 -04:00
Marshall Lochbaum
22925eee4b Fast ⌊, matching ⌈ 2022-08-13 15:03:23 -04:00
Marshall Lochbaum
27943b85f4 Fast boolean =´ and ≠´ 2022-08-13 14:39:53 -04:00
Marshall Lochbaum
37312f7a03 Lift out bitarr_ptr calls 2022-08-13 14:28:16 -04:00
Marshall Lochbaum
f406b05303 Fill boolean scan gaps: ∨ and dyadic int≠bool 2022-08-13 14:05:48 -04:00
Marshall Lochbaum
6a00b6d7d4 Fast boolean -´ 2022-08-13 13:45:56 -04:00
Marshall Lochbaum
4950506c72 Separate boolean fold and scan code from other special cases to handle aliases better 2022-08-13 13:34:01 -04:00
dzaima
a9b3b3de97 use TALLOC instead of m_shArr 2022-08-07 01:19:09 +03:00
Marshall Lochbaum
78f14be79d Finish multidimensional join 2022-08-06 17:30:30 -04:00
Marshall Lochbaum
1d891388b5 High-rank join shape checking 2022-08-05 22:01:42 -04:00