dzaima
3f0e696add
move bit_reverse to stuff.h
...
+ explicitly note its operating width
2025-05-31 19:04:12 +03:00
dzaima
c0cb1a9f77
more 𝕨⥊𝕩 refactoring
2025-05-29 23:41:55 +03:00
dzaima
dd7c21ed86
extract cycling reshape implementation from shape_c2
...
currently somewhat-inefficient, but separating out for reference, to allow the moving commit to largely not change anything
2025-05-29 23:25:14 +03:00
dzaima
d0ab742313
extract 1≥≠𝕨 case of 𝕨⥊𝕩
...
temporarily calling back into shape_c2 when necessary
2025-05-29 23:25:14 +03:00
dzaima
541e5a805e
𝕨⥊𝕩 implementation refactoring & testing
2025-05-29 22:36:38 +03:00
dzaima
879a3e2007
fix 𝕨⥊𝕩 integer overflow
2025-05-28 06:41:49 +03:00
dzaima
09936204d0
fix withFill being passed object with incomplete shape
...
caught by fuzz.bqn
2025-05-28 03:12:45 +03:00
dzaima
3ab5c87a76
randomizable squeeze
2025-05-26 01:53:44 +03:00
dzaima
b9ccafcf3f
any_squeeze → squeeze_any
2025-05-13 17:04:38 +03:00
dzaima
f1cb141f56
new squeeze functions
2025-05-13 17:04:38 +03:00
dzaima
f74bdf6142
improve/fix error messages around units in ⊏ & ⊑ some more
2025-05-09 01:00:41 +03:00
dzaima
1ecc6b3918
more proper error message for 1⌾((<⋈0)⊸⊑)↕5
2025-05-05 19:37:02 +03:00
dzaima
13906efe44
fix ⊑˘ on rank>2 inputs
2025-05-02 01:28:46 +03:00
dzaima
f9b3aba234
fix wrong integer types in varargs
...
problematic in 32-bit builds
2025-04-24 00:00:32 +03:00
dzaima
17ec5f0a8a
add 𝕩 to error messages of <⁼𝕩, ⋈⁼𝕩, ≍⁼𝕩
2025-03-02 19:32:49 +02:00
dzaima
9826c4ce0e
add 𝕨/𝕩 in dyadic ⌽/⌽⁼ error message
2025-03-02 19:29:49 +02:00
tankorsmash
80d1681b18
prefer using w and x inside error messages
2025-02-03 20:39:44 -05:00
dzaima
162e6ff387
decG more
...
found automatically via awful hack via GUARANTEED
2024-12-04 00:10:52 +02:00
dzaima
d988a620fd
native F⌾(a⊸⥊)
2024-11-26 18:08:15 +02:00
dzaima
3d4a31ae6f
access function/modifier runtime ID through macro
2024-10-10 02:38:17 +03:00
dzaima
183f64c1f9
make ⟨⟩≡∾⟨⟩ under PROPER_FILLS
2024-10-09 02:42:17 +03:00
dzaima
72cdb0d5fb
mark reshape_one as ascending & descending
2024-10-09 01:48:23 +03:00
dzaima
989970f7fd
fix ∾2‿2⥊<0‿0⥊⟨⟩
2024-09-22 01:42:26 +03:00
dzaima
4eb632a48d
TO_GET helper
2024-09-21 21:26:02 +03:00
dzaima
884d61476f
fix flags of take_head
2024-09-14 16:15:11 +03:00
dzaima
b7c3815d4a
copy fallback instead of slice in take_head
2024-09-13 19:10:46 +03:00
dzaima
64adbbf37e
in-place ¯n↓ / n↑ / n⥊
2024-09-13 17:41:56 +03:00
dzaima
1b13defe54
rearrange sfns.c a bit
2024-09-12 16:24:32 +03:00
dzaima
8fd897690f
move customizeShape into stuff.h
2024-09-12 06:47:06 +03:00
dzaima
4cf8e10b95
fillarr_ptr → fillarrv_ptr
2024-09-09 17:55:26 +03:00
dzaima
6ead1baa11
native ≍⁼
2024-08-23 02:21:48 +03:00
dzaima
5098781ffc
replace all bitarr_ptr usages with bitany_ptr
2024-08-15 17:36:43 +03:00
dzaima
920a89f019
native ⋈⁼ & ⌾⋈
...
plus some more undo & under tests
2024-08-14 05:18:13 +03:00
Marshall Lochbaum
ce98efc525
Transform atom⊸⌽⎉k into a single high-rank ⌽ call
2024-07-05 17:44:42 -04:00
Marshall Lochbaum
d89a6da2da
Evaluate monadic «» on a length-1 argument by reshaping the fill
2024-07-05 17:44:42 -04:00
Marshall Lochbaum
ab15eaeeeb
Length-1 reverse is a no-op
2024-07-04 12:04:00 -04:00
dzaima
ae3128c180
relax CHECK_IA in takedrop_highrank
...
future overflow in ria*elWidth when allocating shouldn't be a worry as all such calculations should be done in u64, and CHECK_IA(x, 1) guarantees that x is (much) less than 2^60 in both usz configurations
2024-06-05 02:30:00 +03:00
dzaima
8044c560a4
faster atom∾atom
2024-06-01 16:22:34 +03:00
Andrea Piseri
7f28308e44
native path in select_ucw for high rank 𝕩
...
`𝔽⌾(a⊸⊏)𝕩` now does not need to go through the self-hosted runtime if
`1<=𝕩`. Instead the `select_replace` helper function is parametrized
over the length of `𝕩` (`xl`) and item amount of the cell of `𝕩` (`xcia`).
- The `EQ` macro is modified to not immediately mark the cell as
populated, so that multiple replacements can be done on the cell
on the first assignment to it.
- The `DONE_CW` macro is invoked to mark the current cell as populated
when every element in it has been assigned.
- A loop over the cell contents is introduced to copy the elements in
`𝕩`. This should be fine as it is an easily predictable jump,
but a performance regression is possible and a separate code path
could be introduced in the future.
The change introduces more extensive checking on the shape of `𝔽`'s
result, as for high rank `𝕩` the requirement should be `(≢𝔽a⊏𝕩)≡(≢a)∾1↓≢𝕩`.
The old behaviour of `select_replace` is recovered by passing `xl=xia`
and `xcia=1` in the implementation of `pick_ucw`.
2024-05-18 12:12:17 +02:00
dzaima
a75522c738
fix list⌽𝕩
2024-04-04 02:52:08 +03:00
dzaima
d4f290a897
error on nonInteger⌽⟨⟩
2024-04-03 17:09:27 +03:00
dzaima
694920c273
minor code cleanup
2024-02-27 00:40:16 +02:00
dzaima
1318026c4e
a bunch of vfor
2024-02-13 22:34:16 +02:00
dzaima
f981f6963b
use ux for loop index in reverse
...
makes gcc autovectorizer happier
2024-02-13 22:31:22 +02:00
dzaima
5abb09ca74
remove barely-useful elType==el_i32 path of reshape
...
perhaps could be replaced with an <=el_i32 path that still uses GetU but just skips numberness/integerness checks and ∘/⌊/⌽/↑ logic
2024-02-13 22:30:11 +02:00
dzaima
73a2b06703
more PLAINLOOP
2024-02-08 19:26:35 +02:00
dzaima
ffffdb5895
relax take/drop overflow checking
2024-01-19 18:03:54 +02:00
dzaima
f0c1962596
more typed ⌾(list⊸⊏)
2023-12-19 17:41:17 +02:00
dzaima
f037754880
more specific empty array types
2023-11-13 23:16:02 +02:00
dzaima
8c7a3be036
remove unused includes
2023-11-13 21:48:01 +02:00