Commit Graph

1284 Commits

Author SHA1 Message Date
dzaima
8044c560a4 faster atom∾atom 2024-06-01 16:22:34 +03:00
dzaima
05690c001a suppress false-positive gcc warnings 2024-05-24 04:01:05 +03:00
dzaima
f14583f995 faster ⍉ on large‿small⥊x 2024-05-22 20:07:48 +03:00
dzaima
44c8da7dc7 add checks for l>0 on equal() impls
some Singeli `fn equal` paths already assumed such, this just makes the requirement properly checked for, benefited from, and documented
2024-05-20 01:03:57 +03:00
dzaima
52fb05fcd4 unify ⌾(a⊸⊏) typed array paths, fix csz==0 2024-05-20 01:03:57 +03:00
Andrea Piseri
60a28a40ca Clean up collision checking, use vector copy functions 2024-05-19 16:59:55 +02:00
dzaima
9f6151d92d expand ⌾(a⊸⊏) tests, stylistic changes/cleanup 2024-05-19 02:14:08 +03:00
Andrea Piseri
99a23a97d8 Fix typo in the error message 2024-05-19 00:10:28 +02:00
Andrea Piseri
3738d0d65d Formatting 2024-05-18 23:58:11 +02:00
Andrea Piseri
93188a9f90 Use COPY_TO and EQFN in the typed array code path 2024-05-18 23:56:13 +02:00
Andrea Piseri
06808414da Separate code path for cxsz=1, fix out of bounds read for RNK(x)==0 2024-05-18 21:45:18 +02: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
4a40739398 use printf & fprintf instead of putchar & co 2024-05-05 01:07:47 +03:00
dzaima
5600bb189a fix ⟨1,2⋆62⟩/2⥊<⋈0 2024-04-20 21:24:51 +03:00
dzaima
de529e483b make non-Singeli getRange_f64 check first element for integerness 2024-04-20 21:21:47 +03:00
dzaima
a6a088868c fix ⟨⟩⍷⟨⟩ 2024-04-04 03:54:55 +03:00
dzaima
3870189f85 fix 3‿3⍒"a" & "aa"⍒3‿3 2024-04-04 03:54:55 +03:00
dzaima
a75522c738 fix list⌽𝕩 2024-04-04 02:52:08 +03:00
dzaima
54cec2fdf5 split up CATCH_ERRORS into functional and semantic options
allows running a non-heapverify build that functions exactly as a heapverify one, while allowing ⎊ to function
2024-04-04 02:52:08 +03:00
dzaima
74f3b5a012 fix (17⥊'⍉') ∊ 4⥊<"a" 2024-04-03 22:14:04 +03:00
dzaima
61e068086e fix (2⋆25)/(2⋆10)⥊10 2024-04-03 22:14:04 +03:00
dzaima
74d937a4fd fix +⌜´↕0 leaking a reference 2024-04-03 17:13:06 +03:00
dzaima
d4f290a897 error on nonInteger⌽⟨⟩ 2024-04-03 17:09:27 +03:00
dzaima
c1157f89a6 fix GroupLen properly 2024-04-03 05:59:35 +03:00
dzaima
b8730798c1 explicitly handle empty cells in compress 2024-04-03 05:59:35 +03:00
dzaima
5ab49ab146 slash.c cleanup 2024-04-03 05:59:35 +03:00
dzaima
d77018f269 fix ⟨⟩⍷1‿0⥊0 2024-04-03 05:59:35 +03:00
dzaima
af0a40c732 fix ⍟ with empty typed repeat counts 2024-04-03 05:59:35 +03:00
dzaima
d21a77119f more verification of •bit._cast types, remove 'n' 2024-03-30 17:55:43 +02:00
dzaima
ac069134c3 fix ⟨1.5⟩ ⊏ "ab"‿"cd" 2024-03-25 16:18:01 +02:00
dzaima
a94903cb12 fix 𝕨⊏unit 2024-03-25 16:18:01 +02:00
dzaima
10a58878d7 fix GroupLen on array elements outside i64 range 2024-03-25 16:18:01 +02:00
dzaima
0c3d83c50b fix ⊑˘ with bitarr 𝕩 2024-02-27 14:27:42 +02:00
dzaima
694920c273 minor code cleanup 2024-02-27 00:40:16 +02:00
dzaima
875f9185bf use ux a tiny bit more, add a PLAINLOOP 2024-02-27 00:37:47 +02:00
dzaima
1318026c4e a bunch of vfor 2024-02-13 22:34:16 +02:00
dzaima
3fc3338256 extract independent load from loop 2024-02-13 22:33:54 +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
9cb0ab2fbb Use getRange_fns for repeat_bounds 2024-02-08 19:25:30 +02:00
dzaima
291d3ef5d7 deduplicate sh_c2 setup & output prep 2024-02-04 15:31:38 +02:00
dzaima
4f39729013
Merge pull request #106 from vylsaz/win-sh2
Implement •SH for Windows
2024-02-04 14:48:36 +02:00
dzaima
a3392fd6c1 fix casrt_c2 more 2024-02-04 14:47:43 +02:00
vylsaz
42e4956fb9 Replaced globals with argument to thread procedure 2024-02-04 02:35:47 +00:00
dzaima
2dfc8933bd fix refcount leak in casrt_c2 2024-02-03 18:20:07 +02:00
vylsaz
74d3620839 Implement •SH 2024-02-03 01:45:56 +00:00
dzaima
1e8c390e6a include file name in failed complication error messages 2024-02-01 22:52:55 +02:00
dzaima
592a8312ac a bunch of PLAINLOOP 2024-02-01 21:26:08 +02:00
dzaima
1b26e85325 don't need to mark static globals as hidden
gcc complains about this
2024-02-01 21:26:08 +02:00