Commit Graph

1764 Commits

Author SHA1 Message Date
dzaima
168db4cf01 fix rtWrap_unwrap refcounting 2022-12-29 23:36:50 +02:00
dzaima
0589d63cc5 fast v˙˘arr, fix arr˘arr 2022-12-29 23:36:37 +02:00
dzaima
1e3117d65f fast ⥊˘𝕩 2022-12-29 22:25:22 +02:00
dzaima
3408db320c fast num↑˘𝕩 & num↓˘𝕩 for 2≤=𝕩 2022-12-29 22:20:29 +02:00
dzaima
f6f0c12935 fast ⊑˘simpleArr 2022-12-29 22:07:38 +02:00
dzaima
a0feda9d8b fast arr˘ x 2022-12-29 22:04:06 +02:00
dzaima
47e95171f0 faster »˘ & «˘ on matrices, fix 0⊏˘↕3 2022-12-29 21:47:52 +02:00
dzaima
897ad8f649 clang really wants to special-case csz==1, but that's checked for before 2022-12-29 21:47:52 +02:00
dzaima
3f0c34e895 fast ≍˘𝕩 2022-12-29 21:47:52 +02:00
dzaima
4e88dc1004 faster ⊏˘ 2022-12-29 20:32:17 +02:00
dzaima
41efcfb632 fast ∾˝ & 𝕨ScalarFn˝𝕩 2022-12-29 18:46:14 +02:00
dzaima
8a132467d2 improve EACH_FILLS cases in ¨ & ⌜ 2022-12-28 22:38:14 +02:00
dzaima
6a9e03bdb1 use arr_shSetU/arr_shSetI inline
and use incG more in rank_c2
2022-12-28 17:31:02 +02:00
dzaima
a34bb0a433 don't unroll libc math loops 2022-12-28 16:51:17 +02:00
dzaima
4884580037 rearrange arr_shCopyUnchecked to not read SH(o) twice
and, while making a change that requires rebuilding all of CBQN, also make more of the arr_* fns return their Arr* argument to prepare for using them inline
2022-12-28 16:23:27 +02:00
dzaima
3b1b171828 don't need copying from bitarr to character arr 2022-12-28 16:17:16 +02:00
dzaima
c5a3c57f50 check for path being present for •path/•name/•state 2022-12-28 01:13:58 +02:00
dzaima
d8724e6658 update clangdCommands.bqn to new singeli defines, and enable by default 2022-12-27 23:59:48 +02:00
dzaima
33580b91ca don't error on unknown fill when not overtaking 2022-12-27 23:44:34 +02:00
dzaima
84bae20f79 don't inline load functions 2022-12-27 03:54:00 +02:00
dzaima
f424c720a7 full native 𝕨⌽𝕩 & 𝕨⌽⁼𝕩 2022-12-27 03:39:48 +02:00
dzaima
75fe558f1c detect writes past the end of a TALLOC allocation 2022-12-27 02:29:24 +02:00
dzaima
1afdd89075 allow defining custom dyadic inverses of builtins 2022-12-26 23:57:55 +02:00
dzaima
013897cc16 add runtime calls to WARN_SLOW 2022-12-26 23:15:56 +02:00
dzaima
78793ca700 -h → --help 2022-12-26 20:33:33 +02:00
dzaima
c818bf54b1 remove need of libffi from make forbuild 2022-12-26 19:38:24 +02:00
dzaima
48c2425e8b check result size being too large in ↑ 2022-12-26 18:16:11 +02:00
dzaima
7bcee07489 initialize shape properly in one case of high-rank take/drop
fixes 0‿4↑↕4 in debug builds, which just magically approximately worked before
2022-12-26 16:09:30 +02:00
dzaima
326d54e130 native list↑𝕩 & list↓𝕩 2022-12-25 13:38:43 +02:00
dzaima
8fad76762a reorder take_c2 2022-12-24 17:53:16 +02:00
dzaima
e2b45e33e1 simplify splitCells 2022-12-24 17:29:48 +02:00
dzaima
424448aa40 remove rt_memberOf & rt_indexOf 2022-12-24 17:12:35 +02:00
dzaima
95b1beb9db native high-rank ∊ & ⊐ 2022-12-24 17:08:27 +02:00
dzaima
3f40955d83 reorder indexOf_c2 2022-12-24 17:05:50 +02:00
dzaima
e3b5af8a44 fix 𝕨∊p & p⊐𝕩 with an empty high-rank p 2022-12-24 17:03:58 +02:00
dzaima
24dba9ba40 fix a bunch of small memory leaks around REPLXX
not that they'd cause any problems in practice - they're very small, and are in the one context where GC can actually run
2022-12-24 16:42:42 +02:00
dzaima
bb7fe02a45 separate checks for x86-64 & NEON Singeli importing
& restrict the processed Singeli files on NEON to the ones supported
2022-12-24 15:27:53 +02:00
dzaima
6d79ce9fb1 use arch-independent names for things suppported on both x86-64 & NEON 2022-12-24 15:26:05 +02:00
dzaima
d38316e670 BQN-based build system 2022-12-23 23:09:55 +02:00
dzaima
efcc6a28be add •file.path to autocomplete options 2022-12-23 18:08:33 +02:00
dzaima
bbc66cbf3f fix display of running multiline code while cursor isn't in last line 2022-12-23 18:06:58 +02:00
dzaima
381ce70212 backslash+enter → literal newline 2022-12-23 18:02:18 +02:00
dzaima
a6b22c75fd fast list⊐unit for more list types 2022-12-20 18:32:51 +02:00
dzaima
e69d8dc6e9 native ⌾(v⊸⌽) 2022-12-20 18:31:42 +02:00
dzaima
d05621f8f4 generic vector width calculation for NEON-supported files 2022-12-20 00:02:46 +02:00
dzaima
b91e72567d update Singeli submodule, conditional NEON includes 2022-12-19 23:31:44 +02:00
dzaima
43be832a37 fix highrank∊list deshaping the result in some scenarios 2022-12-18 23:58:10 +02:00
dzaima
8188886538 fast 𝔽´⟨x⟩ & 𝔽´⟨x,y⟩ 2022-12-18 23:49:09 +02:00
dzaima
aa4b92cb01 don't define •SH if not available 2022-12-18 23:40:55 +02:00
dzaima
29cecb0b6e remove •PrimInd 2022-12-18 23:16:36 +02:00
dzaima
6380364e62 native highrank∊vector 2022-12-18 23:05:58 +02:00
dzaima
30a6de0a31 add unrolling to aarch64 cmp.singeli 2022-12-18 22:45:42 +02:00
dzaima
f9c919d5ce getmask → homMask/topMask 2022-12-18 22:27:42 +02:00
dzaima
a07b94b889 more general equal.singeli, remove trailing semicolons 2022-12-18 21:55:20 +02:00
dzaima
2a32f52f8d blend renaming 2022-12-18 02:49:42 +02:00
dzaima
09b3279958 unified Singeli including mechanism 2022-12-18 01:54:07 +02:00
dzaima
9768526ddc move last bit of equal.singeli to loadBatch 2022-12-18 01:53:56 +02:00
dzaima
40f36fa366 Singeli-generated table for bits.singeli 2022-12-17 17:51:56 +02:00
dzaima
2c73199ed4 use Singeli-generated function tables for comparison 2022-12-16 19:04:58 +02:00
dzaima
f49dd5e8cf move cmp.singeli NaN check outside for non-x86_64 2022-12-16 17:39:51 +02:00
dzaima
6e3cb9a425 andIsZero→andAllZero; NEON andnz, blendF, sel, bitops.singeli 2022-12-16 00:44:32 +02:00
dzaima
cbd891b768 NEON widen, narrow, undefPromote; make undefPromote more restrictive 2022-12-15 23:19:00 +02:00
dzaima
6fac426f90 add v_dbl & v_half, NEON half{x,n} 2022-12-15 21:57:34 +02:00
dzaima
791e7d122f ucvt→narrow 2022-12-15 21:44:48 +02:00
dzaima
2b7291dbfb cvt{E,T,v} → widen{T,to_el{E,v}} 2022-12-15 20:31:00 +02:00
dzaima
9a9fade18a NEON loadLow, storeLow, andIsZero, maskstore, pack 2022-12-15 16:14:00 +02:00
dzaima
6f2d6bfb0b remove offset argument from maskstore; don't use w256 in mask.singeli 2022-12-15 16:13:45 +02:00
dzaima
77edc734e8 move storeLow & loadLow to sse3 & avx; fix NEON __not 2022-12-15 00:39:44 +02:00
dzaima
9fea5f1e13 neg(Any|All) → top(Any|All), msk(Any|All) → hom(Any|All) 2022-12-13 21:46:50 +02:00
dzaima
336da996b3 any/all vector check renaming 2022-12-13 02:03:17 +02:00
dzaima
7e13bf7f45 more neon.singeli 2022-12-12 02:59:11 +02:00
dzaima
444268f051 width{eltype{T}} → elwidth{T} 2022-12-12 00:07:50 +02:00
dzaima
2a1611ac81 start of neon.singeli 2022-12-11 23:59:07 +02:00
dzaima
0ef8800530 native F⌾⊢𝕩 & F⌾⊣𝕩 2022-12-08 13:26:04 +02:00
dzaima
3a3f213a92 assign broadcast{T,v} to T**v 2022-12-07 23:53:19 +02:00
dzaima
ce45d487a3 use mutating assignment 2022-12-07 23:24:26 +02:00
dzaima
07d4567a52 use spread arguments 2022-12-07 23:10:17 +02:00
dzaima
bf71fdb4f8 singeli now formats generators itself
or, well, has for a long time
2022-12-07 22:41:17 +02:00
dzaima
1b88c4cc62 don't allocate twice the memory requested 2022-12-07 22:22:34 +02:00
dzaima
af978bbc91 cave in and initialize variables in gcc 2022-12-03 23:58:33 +02:00
dzaima
6ca5050f4d reduce gcc warnings 2022-12-03 23:56:03 +02:00
dzaima
e4f4864ed2 define CBQN_EXPORT by default, add macro test for exactly gcc 2022-12-03 23:19:24 +02:00
dzaima
63e5e843ba fix f64arr/𝕩
`slow:` uses `s`, but the goto went to it before `s` was initialized
2022-12-03 23:18:43 +02:00
dzaima
5d61785912 some more x86_64.h reordering 2022-12-03 22:54:49 +02:00
dzaima
21984e1700 more x86_64.h cleanup 2022-12-03 15:21:05 +02:00
dzaima
95f9e781fa fix )profiler output merging all REPL entries 2022-12-03 14:14:32 +02:00
dzaima
732d1fdb34 remove ASMI/macro indirection 2022-12-02 17:26:10 +02:00
dzaima
bca0efb46c clean up x86_64.h 2022-12-02 17:10:04 +02:00
dzaima
0023e46ab8 config file & light theme 2022-12-02 16:49:49 +02:00
dzaima
7c6676a492 copy over custom _mm_loadu_si32 for old gcc 2022-12-01 13:37:01 +02:00
Marshall Lochbaum
4077596b89 Sparse initialization for ⌾(i⊸⊏) byte table 2022-11-30 16:32:06 -05:00
Marshall Lochbaum
d7a06befb5 Select implementation comments 2022-11-30 16:32:06 -05:00
Marshall Lochbaum
534c92f38a Select from <=128 booleans with shuffles 2022-11-29 22:14:57 -05:00
Marshall Lochbaum
fdfeb67e8f 2-register permutevar8x32 2022-11-29 20:27:45 -05:00
Marshall Lochbaum
41f464795f Selection with permutevar8x32 2022-11-29 18:45:22 -05:00
Marshall Lochbaum
c17448ed71 Faster bit selection 2022-11-29 11:29:25 -05:00
Marshall Lochbaum
dc6e49b289 Shuffle selection using >1 data register 2022-11-28 21:51:36 -05:00
Marshall Lochbaum
b651ca73d3 Move base{} utility to base.singeli 2022-11-28 13:55:19 -05:00
Marshall Lochbaum
43fba7cd78 Extend shuffle selection to >1 byte data 2022-11-28 13:55:19 -05:00
Marshall Lochbaum
6639c17b81 1-byte select with <=16 elements using shuffle 2022-11-27 21:03:58 -05:00
Marshall Lochbaum
e09d555eba Refactoring and renaming in select.singeli 2022-11-27 09:18:21 -05:00
Marshall Lochbaum
7cb8cf5772 Enable selection with AVX2 gather for i8 to i32 indices and 1- to 8-byte values 2022-11-27 09:18:21 -05:00
dzaima
dbc7c83f70 move usum to fold.c
but don't do anything useful with that because usum needs to also check for negative numbers
2022-11-27 15:45:33 +02:00
dzaima
afe6c0eba9 use 1•internal.Info for rtverify fails 2022-11-27 15:45:33 +02:00
dzaima
c0e06833c0 move B squeeze non-integer case out of twice-generated generator 2022-11-27 15:45:33 +02:00
dzaima
b0fcc017ce clean up squeeze.singeli 2022-11-27 15:45:33 +02:00
dzaima
0f3f91105e use anynePositive for squeeze.singeli 2022-11-27 15:45:33 +02:00
dzaima
15f6dd5d48 simplify 16-bit anynePositive 2022-11-27 15:45:33 +02:00
dzaima
5f85305f43 GPR mask testing 2022-11-27 15:45:33 +02:00
dzaima
efd79881cb use single mask array for all type widths 2022-11-27 15:45:33 +02:00
Marshall Lochbaum
d911eafd31 Inverses for •math.Fact and •math.LogFact 2022-11-26 14:20:52 -05:00
Marshall Lochbaum
a3df482acd Use non-inlined recursion for •math functions 2022-11-26 14:14:37 -05:00
dzaima
c4d0f8bdc4 highlight "." in numbers 2022-11-24 13:08:20 +02:00
dzaima
d383fe57a7 clean up whitespace 2022-11-24 01:26:35 +02:00
dzaima
34e37d1b1a increase gc root buffer size 2022-11-24 01:09:50 +02:00
dzaima
cf5ce07f51 simplify singeli xor/and/or definitions 2022-11-24 00:21:19 +02:00
Marshall Lochbaum
e60b942710 Formatting 2022-11-23 16:51:30 -05:00
Marshall Lochbaum
7715cbc158 Add •math.Sum with Singeli f64 implementation 2022-11-23 16:51:30 -05:00
Marshall Lochbaum
35aef1e5cd •math.Erf, •math.ErfC, and •math.LogFact 2022-11-23 16:46:39 -05:00
Marshall Lochbaum
9a1268ea3a Simplify •math.Comb implementation 2022-11-23 16:46:39 -05:00
Marshall Lochbaum
6eb21bd68c Factorial and combinations functions 2022-11-23 16:46:39 -05:00
Marshall Lochbaum
f6109b3985 Handle no-op and boolean cases of monadic arithmetic quickly 2022-11-23 16:46:39 -05:00
Marshall Lochbaum
58cd6f0f4e Other useful math: log2 log10 log1p expm1 hypot 2022-11-23 16:46:39 -05:00
Marshall Lochbaum
a0f6986832 Hyperbolic trig 2022-11-23 16:46:39 -05:00
Marshall Lochbaum
51840bc853 •math.GCD and •math.LCM for u64 arguments 2022-11-23 16:46:39 -05:00
dzaima
49636bae79 replace --dynamic-list with visibility 2022-11-22 15:36:32 +02:00
dzaima
6f5c329e22 noinline float product 2022-11-22 14:24:43 +02:00
dzaima
e7cc8ec444 use o2fG instead of union field 2022-11-21 23:26:25 +02:00
Marshall Lochbaum
31106c730c Fold implementation comments 2022-11-21 15:56:15 -05:00
Marshall Lochbaum
bda653e865 Shortcutting for boolean-valued integer ∨´ 2022-11-21 15:51:03 -05:00
Marshall Lochbaum
f1ca8793e3 Boolean comparison folds, monadic only 2022-11-21 15:36:06 -05:00
Marshall Lochbaum
47392acc33 Implement ×´ for all numeric cases, using f64 product when i32 fails 2022-11-21 15:19:27 -05:00
Marshall Lochbaum
52608ba6ce Singeli min/max-fold 2022-11-21 11:47:50 -05:00
Marshall Lochbaum
4b9a21c75f Do tack-fold with selection 2022-11-21 08:07:38 -05:00
Marshall Lochbaum
38683119c0 Handle some f64 cases in dyadic fold 2022-11-20 22:03:36 -05:00
Marshall Lochbaum
c977065c20 Move +⌈⌊ folds to function tables, unifying monadic and dyadic cases 2022-11-20 21:51:30 -05:00
Marshall Lochbaum
ebfd002793 Blocked +´ and f64 ⌈´ ⌊´ 2022-11-20 21:06:05 -05:00
Marshall Lochbaum
5bfdc26d00 Move fold to its own file 2022-11-20 20:06:35 -05:00
Marshall Lochbaum
b9a3a7886d Ordering function implementation comments 2022-11-20 19:57:00 -05:00
dzaima
24195780df reorder headers to allow OpenBSD hack to function 2022-11-20 18:22:51 +02:00
dzaima
6ff521b200 don't use IA/SH macros for assigning 2022-11-18 15:07:31 +02:00
dzaima
966b78693b fix test/precompiled.bqn 2022-11-18 00:16:34 +02:00
dzaima
5c65a1a7eb move precompiled bytecode to submodule 2022-11-17 23:20:07 +02:00
dzaima
1b64b4b548 better temporary replxx state handling 2022-11-17 19:18:33 +02:00
dzaima
35abd7f7e8 try $XDG_DATA_HOME before $HOME for REPL history directory 2022-11-17 19:18:33 +02:00
dzaima
ff36205a34 bind ctrl+n & ctrl+p 2022-11-17 19:18:33 +02:00
dzaima
1f5be9e69e backslash input 2022-11-17 19:18:33 +02:00
dzaima
9018051ce3 add •math.Atan2 autocomplete 2022-11-17 19:18:33 +02:00
dzaima
c60bdaba4d highlight 𝔽𝔾𝕎𝕏𝕊 as functions, reduce mut.h to calls.h 2022-11-17 19:18:33 +02:00
dzaima
bd6035cdef more system namespace field completion, actually add •ToUTF8 2022-11-17 19:18:33 +02:00
dzaima
a48488a132 enable bracketed paste, add sanity check in syntax highlighter 2022-11-17 19:18:33 +02:00
dzaima
07fa4a066b save replxx history more 2022-11-17 19:18:33 +02:00
dzaima
983452b409 system value completion 2022-11-17 19:18:33 +02:00
dzaima
feb7b8b9a0 replxx REPL 2022-11-17 19:18:33 +02:00
dzaima
94f8b189f7 REINIT_TAIL → FINISH_OVERALLOC 2022-11-17 18:56:46 +02:00
dzaima
a48f1f5eb0 fix -DMM=0 2022-11-17 18:56:46 +02:00
dzaima
55e8a43297 fix test/mut.bqn leaking references 2022-11-17 18:56:46 +02:00
dzaima
1ac5f0a49d arr_shCopy that doesn't compare IA 2022-11-17 18:56:46 +02:00
dzaima
179e0a37dc more tail verify work 2022-11-17 18:56:46 +02:00
dzaima
e5a9c7536d array tail overwriting checker 2022-11-17 18:56:46 +02:00
dzaima
360aabb7cc option to noinline mm_alloc & mm_free 2022-11-17 18:56:46 +02:00
dzaima
da1062c81c remove unused #undef 2022-11-17 18:55:59 +02:00
dzaima
aee745a7d6 fix argument names of C2 2022-11-17 18:13:29 +02:00
dzaima
db89e7a4bb fix function signatures & M1C2; use C1 & bit_negate more 2022-11-17 17:52:19 +02:00
Marshall Lochbaum
be9037cb62 Squeeze for ∨` instead of scalar checking for bool 2022-11-17 08:32:29 -05:00
Marshall Lochbaum
5985e92834 Initialized min/max-scan 2022-11-17 07:59:00 -05:00
Marshall Lochbaum
98d066c343 Use scan_max_num for sorted ⊒ 2022-11-16 21:20:54 -05:00
Marshall Lochbaum
1924aee61c f64 min/max scan 2022-11-16 21:14:32 -05:00
Marshall Lochbaum
136c1afacc Macro-ize integer min/max scan and add sorted flag 2022-11-16 20:49:57 -05:00
Marshall Lochbaum
ac7ff155d4 Pull out scan_add_bool() utility function from scan_c1() 2022-11-16 20:16:33 -05:00
Marshall Lochbaum
d6029985e8 Move scan to its own file 2022-11-16 19:48:37 -05:00
Marshall Lochbaum
93ef4bb2a9 Direct ⍷bool implementation 2022-11-15 22:03:50 -05:00
Marshall Lochbaum
f1142b4184 Branchless ⊒bool, moderately faster 2022-11-15 18:27:54 -05:00
Marshall Lochbaum
d6b09adb57 Add primitive and primitive-1modifier call macros to calls.h 2022-11-15 16:08:34 -05:00
Marshall Lochbaum
4506caf3ac Faster self-search on sorted 𝕩 using »⊸≠𝕩 2022-11-15 16:08:17 -05:00
Marshall Lochbaum
856eabd493 Self-search implementation comments 2022-11-14 21:08:44 -05:00
dzaima
8e631d7177 always take size in mm_alloc as u64 2022-11-14 22:42:32 +02:00
dzaima
3be97e6f61 update commented-out debug print 2022-11-14 20:44:19 +02:00
dzaima
a9737c22ea extract bit array negation to function 2022-11-14 19:47:53 +02:00
dzaima
7e934b04db better negation buffer handling 2022-11-14 19:02:44 +02:00
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
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