Commit Graph

1586 Commits

Author SHA1 Message Date
dzaima
124d094591 fast c¨⌾(is⊸⊏)list 2025-05-23 23:56:00 +03:00
dzaima
1c20f3eac5 fix memory leak in 𝔽⌾(is⊸⊏) highRank 2025-05-23 21:01:58 +03:00
dzaima
398d387c22 fix arr⌾(is⊸⊏) highrank range check 2025-05-23 20:08:26 +03:00
dzaima
3fe7bd89bf Singeli implementation of reflexive float comparison 2025-05-23 03:04:38 +03:00
dzaima
1e53078324 make match functions take ux instead of u64 for length 2025-05-23 00:47:04 +03:00
dzaima
2a57cb30b8 fix eequal on different NaN patterns
+ rename compareFloat→floatCompare to be more consistent
2025-05-23 00:42:07 +03:00
dzaima
a7897ddcde get rid of NEEQUAL_NEGZERO
as compatibility checking now relies on eequal, it can no longer do funky things
2025-05-23 00:23:13 +03:00
dzaima
b0877bfad9 use reflexive match for (2‿3⥊0÷0)⌾(0‿0⊸⊏) 2‿3⥊1 fix 2025-05-22 23:58:04 +03:00
dzaima
d1855f14e9 refactor match function direct calling 2025-05-22 23:56:02 +03:00
dzaima
aab1a15c39 better eequal impl 2025-05-22 23:45:41 +03:00
dzaima
7947f86833 basic fix for (2‿3⥊0÷0)⌾(0‿0⊸⊏) 2‿3⥊1 erroring 2025-05-22 23:45:37 +03:00
dzaima
81ce43e77f complete comment 2025-05-22 02:28:50 +03:00
dzaima
36ba160477 fix 𝕨/𝕩 doing unchecked multiplications on +´𝕨
both that explicit one, and ones in the allocation functions
2025-05-22 01:45:56 +03:00
dzaima
3b5497e329 fix use-after-free in a⌾(i⊸/)𝕩
not actually ever problematic I believe as `w` in *_ucw always happens to have other held references, but still a bug and could become problematic in the future;
and the change is actually an improvement, bringing the SGetU computation out of paths that don't need it!
2025-05-22 01:18:04 +03:00
dzaima
04d0191d1f handle v¨⌾(l⊸/)x with non-boolean l with fast path 2025-05-22 01:14:09 +03:00
dzaima
185a18d478 fix a⌾(b⊸/)x comparing during noAlloc 2025-05-22 00:38:47 +03:00
dzaima
15bf932757 make atom decomposition equality check use eequal
gets rid of compound functions having observable identity if they have NaN as a component
2025-05-21 00:54:52 +03:00
dzaima
723ca38816 make native ⌾(is⊸⊏) & ⌾(m⊸/) compare NaNs as equal 2025-05-21 00:36:08 +03:00
dzaima
c17280d96d cleanup 2025-05-15 00:43:53 +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
9d11fc0cde use C1 & C2 helpers in grade.h
incl. making them capable of expanding a macro F
2025-05-13 17:04:38 +03:00
dzaima
ff406c9586 better int_squeeze_sorted 2025-05-13 17:04:38 +03:00
dzaima
8146040c15 helpers for creating empty arrays 2025-05-13 17:04:32 +03:00
dzaima
6c4eae5e28 rearrange squeeze.c and make num_squeeze & chr_squeeze more sane 2025-05-13 03:32:32 +03:00
dzaima
62366d10fa •internal.Validate 2025-05-13 00:12:59 +03:00
dzaima
41c9a51ff3 fix unshare on heap-allocated atoms 2025-05-11 20:28:23 +03:00
dzaima
516205321c fix error message of 𝔽⌾(a⊸⊏)𝕩 more 2025-05-09 01:17:51 +03:00
dzaima
f74bdf6142 improve/fix error messages around units in ⊏ & ⊑ some more 2025-05-09 01:00:41 +03:00
dzaima
8d757363e9 improve error message of 𝔽 in 𝔽⌾(a⊸⊏) returning an atom 2025-05-09 00:32:54 +03:00
dzaima
d2c27fd880 fast 𝔽⌾(num⊸⊏)arr 2025-05-09 00:21:42 +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
e32d41eb61 improve •ParseFloat error message on argument with codepoints ≥256 2025-05-01 23:09:48 +03:00
dzaima
f9b3aba234 fix wrong integer types in varargs
problematic in 32-bit builds
2025-04-24 00:00:32 +03:00
dzaima
e1b62b95b6 fancy Singeli accumulator; use for integer sum 2025-03-21 04:32:26 +02:00
dzaima
108379f121 fix UB shift 2025-03-16 23:47:01 +02:00
dzaima
f1021580ad silence warning on non-Singeli builds 2025-03-16 20:22:17 +02:00
dzaima
82ebd37b3f group statistics test 2025-03-13 23:36:02 +02:00
Marshall Lochbaum
233c88120d Singeli function for initial group statistics pass since auto-vectorization isn't great 2025-03-13 14:21:38 -04:00
dzaima
72c4eca6c0 fix float ⌾(l⊸⊏) doing wrong comparisons 2025-03-12 17:23:17 +02:00
dzaima
62b095be89 oneElt⊏𝕩 improvements & fixes 2025-03-12 06:29:26 +02:00
dzaima
3ae7d134d2 more uniform F¨ fill behavior 2025-03-12 05:52:52 +02:00
dzaima
bfce527096 fix 𝕗⌾(-2⋆63)𝕩 2025-03-12 03:01:11 +02:00
dzaima
a6202c8ca6 fix error message of ⌾(oob⊸⊏) 2025-03-12 01:41:52 +02:00
dzaima
0848faf8c7 don't leak memory in TEST_RANGE 2025-03-12 01:14:24 +02:00
Marshall Lochbaum
dcecc70c25 More careful fill handling with characters in insert_scal 2025-03-10 21:58:15 -04:00
dzaima
97e0210c41 remove unnecessary F˜˘ acceptance from F˘
scan_rows_bit only checks frtid, which is 0 for such
2025-03-11 00:17:11 +02:00
dzaima
bcf32838f4 some more ˝ tests, use COPY_TO
not much of a difference, but prettier
2025-03-11 00:15:45 +02:00
Marshall Lochbaum
f1972fc408 Faster stride-1 check 2025-03-10 12:57:25 -04:00
Marshall Lochbaum
e42273bfe8 Generic stride-1 𝔽`˘ implementation 2025-03-10 12:50:54 -04:00
Marshall Lochbaum
bbe4549aff Scalar implementation of 𝔽˝ for generic arithmetic 𝔽 and short rows 2025-03-10 12:48:06 -04:00
Marshall Lochbaum
e898a81d68 Use a possibly-overlapping word and constant-length loop in k/bool, like ⊣` 2025-03-09 08:44:42 -04:00
Marshall Lochbaum
302c2f926f AVX2 k/bool for odd 64<k<256 using shift-based masks 2025-03-09 08:44:42 -04:00
dzaima
79fc8d5116 use direct copy on known-different-eltype arrays 2025-03-04 23:18:30 +02:00
Marshall Lochbaum
d9a80ee83b Test bound and length instead of rank in scan where possible 2025-03-04 10:59:40 -05:00
dzaima
9fdeb5379a fix old gcc 2025-03-04 04:04:04 +02:00
Marshall Lochbaum
010e6a10d4 Implementation comments for new high-rank scans 2025-03-03 19:56:53 -05:00
Marshall Lochbaum
180c79e751 Strided +`, widening and re-trying on overflow 2025-03-03 06:54:40 -05:00
Marshall Lochbaum
87a7d066c8 Strided ⌊⌈ scans with shuffles 2025-03-03 06:54:40 -05:00
Marshall Lochbaum
ee6b91be8a Basic strided ∧∨≠= scan implementations 2025-03-03 06:54:40 -05:00
Marshall Lochbaum
90d0f3015a Use rank-1 scan special code whenever cell size is 1 2025-03-03 06:54:40 -05:00
dzaima
d3b4c3cc26 flush stdout on •Show and •Out 2025-03-03 00:53:55 +02:00
dzaima
05a9cd736b more spaces around names between name and 𝕨/𝕩 in error messages 2025-03-02 19:57:38 +02:00
dzaima
bdf9a52625 more proper error messages for /⁼𝕩 2025-03-02 19:50:01 +02: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
Marshall Lochbaum
a775520927 Update scan implementation comments 2025-02-26 08:21:22 -05:00
Marshall Lochbaum
242a61db11 Faster <`, adding instructions to cut dependency chains 2025-02-18 16:29:49 -05:00
dzaima
2cb15c936d get rid of b(x) macro 2025-02-08 17:36:44 +02:00
dzaima
74483f3859 more spaces between 𝕨/𝕩 and names, re-remove •SH args
sh_c1 calls sh_c2, so the arity isn't function-specific
2025-02-07 07:57:51 +02:00
tankorsmash
b945e48d29 add spacing around system functions; add missing args for SH; fix wrong args for bit._cast 2025-02-06 20:17:18 -05:00
dzaima
e3a4132722 clean up error messages
incl. correcting •_timed's message being wrong
2025-02-06 12:32:19 +02:00
tankorsmash
5790d126cd add best effort guesses for many more builtin error messages 2025-02-05 19:56:08 -05:00
tankorsmash
63ee20b6fe add best effort guesses for many builtin error messages 2025-02-05 19:40:27 -05:00
tankorsmash
dd5d17ca83 add best effort guesses for builtins/cmp,fns,fold.c
I'm not sure about modifiers so I left them without arguments
2025-02-05 19:32:49 -05:00
tankorsmash
559b3f0d6e add best effort guesses for w and x for builtins/cells.c 2025-02-04 19:00:15 -05:00
tankorsmash
dce39a1b05 add w and x for builtins/arithm.c 2025-02-04 18:57:25 -05:00
tankorsmash
6be291dd6b add w and x for builtins/arithd.c 2025-02-04 18:55:14 -05:00
tankorsmash
80d1681b18 prefer using w and x inside error messages 2025-02-03 20:39:44 -05:00
dzaima
d506691690 fix 𝕨⍋𝕩 issues around NaNs 2025-02-01 20:55:36 +02:00
dzaima
9be5bf45b4 fix signed offset having unsigned type 2025-02-01 20:55:36 +02:00
dzaima
d06200445b MAYBE_UNUSED 2025-02-01 20:55:36 +02:00
dzaima
dcbceccff8 fix integer wrapping in grade sum check 2025-01-24 03:49:25 +02:00
dzaima
8b0d0399e4 fix various F⌾(G⊸Specialized)x 2025-01-16 22:16:49 +02:00
dzaima
517300e567 Windows: static-method-only .c files to .h 2025-01-16 22:06:20 +02:00
vylsaz
40609b2f5f Windows: sh: revert to using calloc() in reading threads 2025-01-16 22:06:20 +02:00
vylsaz
67c2850e38 Windows: sh using utf16; simply argument quoting 2025-01-16 22:06:20 +02:00
dzaima
a02f195555 make native inverse bindings for ⋆⁼x & w⋆⁼x 2024-12-18 13:29:32 +02:00
dzaima
1822602c34 cleanup from clang's --analyze 2024-12-18 13:03:48 +02:00
dzaima
d1a9669e76 fix •math.LCM on arrays 2024-12-13 07:40:43 +02:00
dzaima
5ecd1858ef fix 1⌾(⟨0⟩⊸⊏)⟨0⟩ 2024-12-07 06:54:07 +02:00
dzaima
162e6ff387 decG more
found automatically via awful hack via GUARANTEED
2024-12-04 00:10:52 +02:00
dzaima
81abc80863 fast highrank⊸⊏˘ table 2024-12-02 21:57:44 +02:00
dzaima
d988a620fd native F⌾(a⊸⥊) 2024-11-26 18:08:15 +02:00
dzaima
92641f26ba squeeze fns haven't been AVX2-specific for a while 2024-11-22 12:48:59 +02:00
dzaima
7df2f9ba4f a couple renames & simplifications 2024-11-22 00:44:03 +02:00
dzaima
f0223b8baf properly add 1<<31 2024-11-21 23:04:02 +02:00
Marshall Lochbaum
342cadfc00 Check for or handle argument length >2⋆31 in /⁼ 2024-11-17 15:29:36 -05:00
Marshall Lochbaum
194e8c3f22 Update /⁼ implementation comments 2024-11-17 15:29:36 -05:00