Commit Graph

266 Commits

Author SHA1 Message Date
Marshall Lochbaum
ff6361e363 Move tranpose to its own file 2023-03-22 15:14:08 -04:00
Marshall Lochbaum
0e2e315e51 Allow an 8x8 row for 2-byte transpose 2023-03-22 15:14:08 -04:00
Marshall Lochbaum
239c765998 SIMD transpose on 2-byte elements 2023-03-22 15:14:08 -04:00
Marshall Lochbaum
c0aaa6f615 SIMD transpose on 8-byte elements 2023-03-22 15:14:08 -04:00
dzaima
4a6877a87a Rank checks 2023-03-19 15:42:11 +02:00
dzaima
8194f51b30 MAKE_MUT_INIT, move mut_init to mut.c 2023-03-11 16:52:09 +02:00
dzaima
01c457b77b make all cpy.*Arr function results Arr* 2023-03-11 16:51:13 +02:00
dzaima
c5aedaa414 switch to GCv2, various fixes/cleanup
includes:
  fixing some refcounts for FOR_BUILD build •FFI
  moving DEBUG_VM prints to stderr
  fixing heapverify reports of loose shape objects of fillarrs
  regular ol' adding-of-semicolon-after-label for old gcc
  move GC enable to after all initialization, not load_init
2023-03-05 01:23:53 +02:00
dzaima
717074a2f8 fast transpose on shape n‿2 𝕩 2023-03-03 19:13:15 +02:00
dzaima
6d03071ae6 SIMD i32 transpose 2023-02-26 01:19:54 +02:00
dzaima
deee2c7a18 use C1 & C2 more 2023-02-24 15:53:11 +02:00
dzaima
7b57b4ae39 explicitly mark code sections where allocations aren't allowed to happen 2023-02-18 17:46:55 +02:00
dzaima
855541954f initial bit widen&narrow for ⊏ 2023-02-10 17:59:22 +02:00
dzaima
a84ca6c5d6 strict prototypes 2023-02-03 15:33:31 +02:00
dzaima
05c1270344 better 𝕨⊏𝕩 with 0=×´≢𝕨 2023-02-02 00:40:52 +02:00
dzaima
e231d36471 clean up gcc warnings 2023-01-25 17:16:24 +02:00
dzaima
4945a90ff0 valgrind changes 2023-01-18 02:05:24 +02:00
dzaima
40383906ec no, neither w nor h are 1, clang 2023-01-17 05:17:37 +02:00
dzaima
472e542ebd O(1) ⍉𝕩 when it doesn't reorder elements 2023-01-17 04:52:08 +02:00
dzaima
540b37ae6a shape replacement utility 2023-01-17 03:47:14 +02:00
dzaima
854acd580d respect !PROPER_FILLS in high-rank ↑ 2022-12-30 16:16:36 +02:00
dzaima
7ff74d38e8 squeeze el_bit transpose result 2022-12-30 01:12:24 +02:00
dzaima
ec169b1006 remove no longer necessary runtime loads 2022-12-29 23:59:44 +02:00
dzaima
3408db320c fast num↑˘𝕩 & num↓˘𝕩 for 2≤=𝕩 2022-12-29 22:20:29 +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
33580b91ca don't error on unknown fill when not overtaking 2022-12-27 23:44:34 +02:00
dzaima
f424c720a7 full native 𝕨⌽𝕩 & 𝕨⌽⁼𝕩 2022-12-27 03:39:48 +02:00
dzaima
013897cc16 add runtime calls to WARN_SLOW 2022-12-26 23:15:56 +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
e69d8dc6e9 native ⌾(v⊸⌽) 2022-12-20 18:31:42 +02:00
dzaima
af978bbc91 cave in and initialize variables in gcc 2022-12-03 23:58:33 +02:00
dzaima
83af05d274 fix building on gcc≤10 2022-10-10 13:53:56 +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
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
Marshall Lochbaum
d525acb51e Merge branch 'master' into cellwidth 2022-09-18 15:26:34 -04: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
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
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
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
3ccef1fe86 ⊔𝕩 → ⊔⟜(↕≠)𝕩 2022-09-08 14:52:19 +03:00
dzaima
59e947cc20 more consistent type checking & conversion functions 2022-09-07 23:56:03 +03:00
dzaima
629076d001 new ⟨⟩↕0 behavior & fix /⁼large_i8arr 2022-09-05 22:40:40 +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
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
7d716d5ce0 elInt 2022-09-01 11:17:49 +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
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
1694bfb7d2 s?p?rnk(x) → S?P?RNK(x) 2022-08-20 08:36:59 +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
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
Marshall Lochbaum
c1d5ca5c29 Switch from min and max to max and difference in Join shape checking 2022-08-05 21:50:39 -04:00
Marshall Lochbaum
bf6a8c5699 Handle any rank empty, and rank 0, in Join 2022-08-01 21:21:10 -04:00
Marshall Lochbaum
d9d421db04 Handle atoms in Join of list 2022-08-01 17:31:07 -04:00
Marshall Lochbaum
b8e6996e7e Shape logic for Join of any list 2022-08-01 17:27:22 -04:00
dzaima
9480ee9da2 native ⌾(F G), ⌾(F∘G), ⌾<, <⁼ 2022-07-26 03:38:30 +03:00
dzaima
0b155e4416 simpler vg_pext_u64 tail handling
that makes it not get SIMD-mangled when optimizations are enabled, thus allowing valgrind to preserve vbits
2022-07-10 04:02:49 +03:00
dzaima
eb5b32319f make ∨`𝕩 run under valgrind 2022-07-10 02:01:59 +03:00
dzaima
041a87ff98 make valgrind accept /𝕩 and 𝕨/𝕩 impls 2022-07-10 01:51:15 +03:00
dzaima
0684fe5fcb some fixes for ubsan 2022-07-10 01:43:21 +03:00
dzaima
3c2a7dbefa high-rank in-place w∾x 2022-07-09 02:00:22 +03:00
dzaima
685c3ecbc6 fix fill leak on @⌾(0⊸⊑) 2⥊<"foo" 2022-06-30 03:37:52 +03:00
dzaima
fadde40f78 more incG 2022-06-26 23:48:30 +03:00
dzaima
efb4a06a25 x⥊0 & x⥊1 → bitarr 2022-06-25 16:17:34 +03:00
dzaima
e137d8536d native ↑𝕩 & ↓𝕩 2022-06-10 00:14:42 +03:00
dzaima
025043b84e make arr_shVec return its argument 2022-06-10 00:08:13 +03:00
dzaima
a298bc3018 more function name cleanup 2022-06-09 18:12:15 +03:00
dzaima
cc8d1cb4d7 fix m_vec1 under OOM 2022-06-04 02:13:01 +03:00
dzaima
9248d1e876 fix ⊔ leaving item shape uninitialized 2022-06-03 23:40:55 +03:00
dzaima
cb1338951c more shcpy 2022-05-30 17:53:54 +03:00
dzaima
79bd6fc689 use shProd more 2022-05-30 02:07:25 +03:00
dzaima
54645df2a9 use shcpy for copying shapes 2022-05-29 14:08:30 +03:00
dzaima
3dd1bffe2f don't unroll arr_csz 2022-05-29 13:57:03 +03:00
dzaima
bf618b9b64 native 𝔽⌾(n⊸↑) & 𝔽⌾(n⊸↓) 2022-05-29 13:38:04 +03:00
dzaima
894c56205f native ⌾⍉ 2022-05-02 20:35:16 +03:00
dzaima
3496a939b6 more switch cleanup 2022-05-01 04:47:21 +03:00
dzaima
88f4fdaa7e 16-bit & 64-bit ⊔ cases 2022-05-01 03:14:23 +03:00