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
dzaima
5d687b1ac3
lazy impl of i8/i16 arrays in 𝕨 of ⊔
2022-05-01 03:00:36 +03:00
dzaima
886feb4ed0
fix fill handling of ⌽
2022-05-01 02:10:31 +03:00
dzaima
7ece6b2179
unified int & char cases for ⊔
2022-05-01 01:35:16 +03:00
dzaima
7f9773f971
unified int & char cases for ⍉ & ⌽
2022-05-01 01:35:11 +03:00
dzaima
1babdf247f
unified int & char cases for bitarr/x
2022-04-30 21:49:47 +03:00
dzaima
3f92c32399
no-op ⥊vec
2022-04-25 18:10:37 +03:00