Commit Graph

1537 Commits

Author SHA1 Message Date
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
Marshall Lochbaum
0bbb335893 Do general i8 and i16 /⁼ counts to i16 buffer, plus overflow list 2024-11-17 15:29:36 -05:00
Marshall Lochbaum
fb5ee179cb Squeeze for slash_im generic case instead of converting individual elements to numbers 2024-11-17 15:29:36 -05:00
Marshall Lochbaum
96b198f643 Condition all the i8 to i32 /⁼ optimization on SINGELI_SIMD, for simplicity 2024-11-17 15:29:36 -05:00
Marshall Lochbaum
e6940e73d0 Fast /⁼ of sorted arguments using semi-sparse representation 2024-11-17 15:29:36 -05:00
Marshall Lochbaum
3b103aadd0 Run-based i32 /⁼ (leaving out sum-based) 2024-11-17 15:29:36 -05:00
Marshall Lochbaum
4aea668a6c Allow i16 /⁼ to jump to Singeli code after range checking 2024-11-17 15:29:36 -05:00
Marshall Lochbaum
926e59483d More precise sparse check for i8 /⁼ result: previously stopped at 65 2024-11-17 15:29:36 -05:00
Marshall Lochbaum
e24d0bac63 Extend SIMD counting to i16 in addition to i8 2024-11-17 15:29:36 -05:00
dzaima
cbac419b4a fix ⍷2‿0⥊x 2024-11-06 22:34:55 +02:00
dzaima
d47cedb165 some cleanup 2024-11-06 22:32:05 +02:00
Marshall Lochbaum
15df6afc7d Implementation comments for transpose with short height/width 2024-11-05 22:04:23 -05:00
Marshall Lochbaum
d7b508ff3b Move select_cells_single (atom⊸⊏˘) to select.c and use for any singleton index 2024-11-05 21:48:54 -05:00
Marshall Lochbaum
5bdee886cc Extend kernel transpose from AVX2 only to SSE2, NEON 2024-11-05 21:48:54 -05:00
Marshall Lochbaum
4669418f1c Extend modular permutation ⊣˝˘ to multi-byte element types 2024-11-05 21:48:54 -05:00
Marshall Lochbaum
9997c52e4c Initial 1-byte ⊣˝˘ with blends and modular permutation 2024-11-05 21:48:54 -05:00
dzaima
0c6e32a24c fix si_select_cells_bit_lt64 signature 2024-10-23 21:53:48 +03:00
dzaima
52f318e755 EACH_FILLS tests 2024-10-14 05:09:03 +03:00
dzaima
1e00aa71c9 atomEqualF & atomEEqual cleanup 2024-10-10 04:12:07 +03:00
dzaima
503bddced5 bring back atomEqualF fast path 2024-10-10 04:00:43 +03:00
dzaima
6bd47b067e split apart def_decompose 2024-10-10 02:38:17 +03:00
dzaima
3d4a31ae6f access function/modifier runtime ID through macro 2024-10-10 02:38:17 +03:00
dzaima
d4b36b3017 access function/modifier native ID through macro 2024-10-10 02:38:17 +03:00
dzaima
03fc22662b add •internal.Properties for better build parameter detecting 2024-10-10 01:33:17 +03:00
dzaima
3ed6241609 don't attempt to use BMI2 on x86-32 2024-10-09 03:31:20 +03:00
dzaima
183f64c1f9 make ⟨⟩≡∾⟨⟩ under PROPER_FILLS 2024-10-09 02:42:17 +03:00
dzaima
03f2f29f3b use tagu64 in more cases where it should be
and make misused tag() an error
2024-10-09 02:42:17 +03:00
dzaima
0eb7f2e5f4 make ⊢¨ attempt to squeeze generic arrays in PROPER_FILLS
also make it not segfault on an input without a fill
2024-10-09 02:42:17 +03:00
dzaima
f33e1e0dcc allZeroes & allOnes variants which set result flags 2024-10-09 02:42:17 +03:00
dzaima
b2bfa06a4c allBit cleanup in cells.c 2024-10-09 02:42:17 +03:00
dzaima
1eee4d7450 mark input of ∊𝕩 as fl_asc|fl_dsc if it's all same 2024-10-09 01:48:23 +03:00
dzaima
7326348c79 fast ⍷𝕩 & ∊𝕩 on fl_asc+fl_dsc 𝕩 2024-10-09 01:48:23 +03:00
dzaima
12cc7af83d fast path for squeeze target determining on sorted input 2024-10-09 01:48:23 +03:00
dzaima
72cdb0d5fb mark reshape_one as ascending & descending 2024-10-09 01:48:23 +03:00
dzaima
4b38a8cf6b no need to unroll ≢x size checking 2024-10-09 01:48:23 +03:00
dzaima
0d238f2b88 mark ↕n with fl_squoze 2024-10-09 01:48:23 +03:00
dzaima
fc617b6e32 don't try sorting sorted arrays 2024-10-09 01:16: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
6f7e82e52b include JIT heap in used heap measurements 2024-09-21 21:26:02 +03:00
dzaima
5192a1d466 fix x⊸≍˘list & ≍⟜x˘list on non-atom x 2024-09-16 00:41:17 +03:00
dzaima
51ab5db2c8 move interleave_cells to cells.c 2024-09-14 16:18:54 +03:00
dzaima
884d61476f fix flags of take_head 2024-09-14 16:15:11 +03:00
dzaima
f3c63d3887 use reshape_one for c¨ 2024-09-13 22:11:40 +03:00
dzaima
fff96b9475 fix ≍˘ error checking, start of generalizing to join_cells 2024-09-13 22:07:35 +03:00
dzaima
215a3cad3b fix interleave_cells generic path 2024-09-13 19:39:08 +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