dzaima
|
445007b38c
|
unify toLast and broadcast_last
|
2025-03-02 19:31:03 +02:00 |
|
dzaima
|
9826c4ce0e
|
add 𝕨/𝕩 in dyadic ⌽/⌽⁼ error message
|
2025-03-02 19:29:49 +02:00 |
|
dzaima
|
bdee96a995
|
remove old blend definitions
|
2025-02-27 05:49:16 +02:00 |
|
Marshall Lochbaum
|
eda1cd8b50
|
More tuning based on dzaima's measurements
|
2025-02-26 22:01:37 -05:00 |
|
Marshall Lochbaum
|
a520ff70a1
|
Fix some NEON performance issues for row scans
|
2025-02-26 21:52:49 -05:00 |
|
Marshall Lochbaum
|
a775520927
|
Update scan implementation comments
|
2025-02-26 08:21:22 -05:00 |
|
Marshall Lochbaum
|
422e63bc12
|
Non-CLMUL SIMD ≠`
|
2025-02-26 08:21:22 -05:00 |
|
Marshall Lochbaum
|
d85d69e759
|
Improve baseline for ⊣`˘ to beat non-AVX2 on length ≥64
|
2025-02-25 20:26:51 -05:00 |
|
Marshall Lochbaum
|
709712f03c
|
Tuning; drop the scalar loose_mask branch for ∧∨ as it never seems faster
|
2025-02-25 19:33:26 -05:00 |
|
Marshall Lochbaum
|
b5ec2f5fa8
|
Extend loose_mask system to SSE and NEON (not always fast)
|
2025-02-25 19:28:51 -05:00 |
|
Marshall Lochbaum
|
fb413b1966
|
Enable vector max- min-, and wrapping plus-scan on NEON
Changes the results on NaNs, but they weren't consistent before
|
2025-02-24 22:08:49 -05:00 |
|
Marshall Lochbaum
|
317871db55
|
Extend unaligned <64-bit row scans from AVX2 to SSE, NEON
|
2025-02-24 21:47:46 -05:00 |
|
Marshall Lochbaum
|
b131914cbe
|
Factor out some common code
|
2025-02-24 21:13:19 -05:00 |
|
Marshall Lochbaum
|
0973d9b499
|
Medium-row ⊣˘ and ≠˘ with mask-aware carry
|
2025-02-24 21:13:19 -05:00 |
|
Marshall Lochbaum
|
1fef51a39e
|
AVX2 ∧ and ∨ with intermediate row sizes (64≤l<160)
|
2025-02-23 19:19:46 -05:00 |
|
Marshall Lochbaum
|
94e6b6cb3a
|
Better formula for within-word masked ∧ and ∨
|
2025-02-23 08:27:47 -05:00 |
|
Marshall Lochbaum
|
242a61db11
|
Faster <`, adding instructions to cut dependency chains
|
2025-02-18 16:29:49 -05:00 |
|
dzaima
|
8c1040bd9f
|
cleaner vr?(add|sub)hn NEON defs
|
2025-02-08 18:37:46 +02:00 |
|
dzaima
|
09f2980ebf
|
more BMI and NEON defs
|
2025-02-08 17:36:44 +02:00 |
|
dzaima
|
bda9245ac3
|
another unnecessary tree_fold
|
2025-02-08 17:36:44 +02:00 |
|
dzaima
|
0d7a7652e3
|
better NEON all_hom{x:[16]u8}
|
2025-02-08 17:36:44 +02:00 |
|
dzaima
|
c792d47069
|
use Singeli a==b instead of a=(b)
|
2025-02-08 17:36:44 +02:00 |
|
dzaima
|
b12575722a
|
better NEON any_hom
but clang undoes this sometimes :/ https://github.com/llvm/llvm-project/issues/125611
|
2025-02-08 17:36:44 +02:00 |
|
dzaima
|
72cf36334c
|
make (any|all_(hom|top) accept mask or vl or multiple vectors
makes the previous commit superfluous, but still keeping it separate so that this one changes nothing
|
2025-02-08 17:36:44 +02:00 |
|
dzaima
|
341f3757e7
|
make all_hom{mask_none, vec} use simple path
|
2025-02-08 17:36:44 +02: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
|
3362d46854
|
add best effort guesses for error messages in core/stuff and opt/comp.c
|
2025-02-05 20:02:44 -05: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
|
d17c6ebe8e
|
actually fix AVX-512 more
|
2025-02-03 19:58:15 +02:00 |
|
dzaima
|
0bc491e931
|
fix AVX-512 more
|
2025-02-03 19:56:04 +02:00 |
|
dzaima
|
3a8f2a601a
|
better NEON widening add/sub/mul definitions
|
2025-02-03 19:45:21 +02:00 |
|
dzaima
|
44d87fef78
|
fix AVX-512 build
|
2025-02-03 19:31:18 +02:00 |
|
dzaima
|
8c7c0227a5
|
first_hom, try_first_hom, popc_hom
|
2025-02-03 17:32:21 +02:00 |
|
dzaima
|
c64cdb2c61
|
make store_(blended|masked)_(hom|top) accept element pointer
|
2025-02-03 04:20:33 +02:00 |
|
dzaima
|
cd373e2ae6
|
remove (load|store)_low
|
2025-02-03 03:53:11 +02:00 |
|
dzaima
|
61565bfa17
|
define load_low/store_low in terms of vl-based load/store
|
2025-02-03 03:37:38 +02:00 |
|
dzaima
|
848813331a
|
element-pointer-based vector loads & stores
|
2025-02-03 03:17:23 +02:00 |
|
dzaima
|
91800ddd1e
|
more direct mask_none all-bits-zeroes check
|
2025-02-03 03:05:58 +02:00 |
|
dzaima
|
25faa71995
|
better NEON hom_to_int_ext
|
2025-02-03 02:37:07 +02:00 |
|
dzaima
|
afc4aa81fa
|
more complete NEON widening multiply/add/subtract
|
2025-02-03 02:37:07 +02:00 |
|
dzaima
|
49dd6e394a
|
mask.singeli loop renames
|
2025-02-03 02:13:39 +02:00 |
|
dzaima
|
92f40ddbe2
|
mask.singeli def renames
more bits of renames
|
2025-02-03 02:13:39 +02:00 |
|
dzaima
|
b6578e43a1
|
renames of the rest of base.singeli
|
2025-02-03 02:13:39 +02:00 |
|
dzaima
|
189ffa7d1f
|
bitops.singeli renames
|
2025-02-03 02:12:58 +02:00 |
|
dzaima
|
f409ee8729
|
fix generic arch
|
2025-02-03 02:11:00 +02:00 |
|
dzaima
|
a6266b2168
|
remove unnecessary defs
|
2025-02-03 02:11:00 +02:00 |
|
dzaima
|
490285f1ca
|
andAllZero → and_bit_none
|
2025-02-03 02:11:00 +02:00 |
|
dzaima
|
10ec04a76e
|
(load|store)Low → (load|store)_low
|
2025-02-03 02:11:00 +02:00 |
|
dzaima
|
ad79ef71cf
|
more Singeli mask op renames
|
2025-02-03 02:11:00 +02:00 |
|
dzaima
|
6f8b08bb1f
|
oneVal/oneType/allSame → one_val/one_type/all_same
|
2025-02-03 02:11:00 +02:00 |
|
dzaima
|
a3e33366df
|
exportT → export_tab
also remove exportN as it's unused
|
2025-02-03 02:11:00 +02:00 |
|
dzaima
|
70e2694f88
|
more Singeli NEON cleanup
|
2025-02-03 02:10:47 +02:00 |
|
dzaima
|
b899180166
|
any_num → any_int where applicable
|
2025-02-02 23:08:41 +02:00 |
|
dzaima
|
936300a492
|
any(Int|Num) → any_(int|num)
|
2025-02-02 23:08:41 +02:00 |
|
dzaima
|
0357d57171
|
various Singeli NEON cleanup things
|
2025-02-02 23:08:41 +02:00 |
|
dzaima
|
f3e7f4032c
|
get rid of custom NEON rev
was non-compatibly overridden in places anyways
|
2025-02-02 23:08:41 +02:00 |
|
dzaima
|
6c7a444cd7
|
more consistent NEON naming
|
2025-02-02 23:08:41 +02:00 |
|
dzaima
|
e3b30e5db7
|
(hom|top)Mask → (hom|top)_to_int
|
2025-02-02 23:08:41 +02:00 |
|
dzaima
|
e9e1574d28
|
rearrange initial Singeli base defs
|
2025-02-02 23:08:41 +02:00 |
|
dzaima
|
426c1b4bf8
|
(bit|top|hom)(Any|All) → (any|all)_(bit|top|hom)
|
2025-02-02 23:08:41 +02:00 |
|
dzaima
|
c4afe7b329
|
(bit|top|hom)Blend → blend_(bit|top|hom)
|
2025-02-02 23:08:02 +02: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
|
204ec21a7c
|
more compact vector width check definitions
|
2025-01-23 03:21:55 +02:00 |
|
dzaima
|
5f19f15556
|
NEON (hom|bit)(Any|All) improvements
|
2025-01-23 03:20:52 +02:00 |
|
dzaima
|
196cc07454
|
better isCallable
|
2025-01-17 21:51:46 +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
|
7d928a3221
|
Use OsStr for path on both Windows and non-Windows systems
|
2025-01-16 22:06:20 +02:00 |
|
vylsaz
|
24bd6735bc
|
Windows: use _wfullpath for realpath
|
2025-01-16 22:06:20 +02:00 |
|
vylsaz
|
e12ca55ee0
|
Windows: use utf16 for file functions
|
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 |
|
vylsaz
|
580f4a3a19
|
Windows: utf-16 util
|
2025-01-16 22:06:19 +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
|
86c7b47771
|
make •FFI properly error on non-list 𝕩
|
2024-12-04 00:14:00 +02:00 |
|
dzaima
|
162e6ff387
|
decG more
found automatically via awful hack via GUARANTEED
|
2024-12-04 00:10:52 +02:00 |
|
dzaima
|
7a5f42a7f0
|
cleanup
that build.bqn TODO has been completed for a while
|
2024-12-03 18:38:48 +02:00 |
|
dzaima
|
81abc80863
|
fast highrank⊸⊏˘ table
|
2024-12-02 21:57:44 +02:00 |
|
dzaima
|
7509d0c238
|
don't shadow types
|
2024-11-30 20:26:54 +02:00 |
|
dzaima
|
d988a620fd
|
native F⌾(a⊸⥊)
|
2024-11-26 18:08:15 +02:00 |
|
dzaima
|
58f96abe8c
|
fix error message on missing absolute base path
|
2024-11-23 06:19:39 +02:00 |
|
dzaima
|
79cffc5011
|
don't use deprecated syntax
|
2024-11-22 12:48:59 +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
|
33ae8744f5
|
Fast skip ahead for blocks of equal values in i8 and i16 /⁼
|
2024-11-20 09:35:22 -05:00 |
|
Marshall Lochbaum
|
7baddcabc2
|
Better sum versus runs test for /⁼: account for per-element cost of run-based
|
2024-11-17 15:29:36 -05: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
|
11117fcc67
|
Version of count_i32_i32 without large blocks
|
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 |
|
Marshall Lochbaum
|
e681f3c09a
|
Run-based 1-byte /⁼ implementation
|
2024-11-17 15:29:36 -05:00 |
|
dzaima
|
092ba4167a
|
fix talloc_realloc in VERIFY_TAIL
|
2024-11-17 22:18:33 +02:00 |
|
dzaima
|
0a4925e84f
|
move compile_commands.json to build/
|
2024-11-14 22:45:43 +02:00 |
|
dzaima
|
b72fe465a2
|
fix /⁼1e4⥊1‿2 on NEON
|
2024-11-14 22:45:43 +02: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
|
db16b8fa6e
|
Fix dropped high bit in ⊣˝˘ due to signed rather than unsigned saturating pack
|
2024-11-06 14:52:18 -05:00 |
|
Marshall Lochbaum
|
67d3fe3f81
|
Missing SSSE3 requirement for some uninterleave implementations
|
2024-11-06 14:51:16 -05:00 |
|
Marshall Lochbaum
|
15df6afc7d
|
Implementation comments for transpose with short height/width
|
2024-11-05 22:04:23 -05:00 |
|
Marshall Lochbaum
|
e75b63831f
|
Clean up dispatching for the various transpose kernel methods
|
2024-11-05 21:48:54 -05:00 |
|
Marshall Lochbaum
|
2d75c6c535
|
And manually vectorize uninterleave
|
2024-11-05 21:48:54 -05:00 |
|
Marshall Lochbaum
|
32ad2e9953
|
Manually vectorized interleave function
|
2024-11-05 21:48:54 -05:00 |
|
Marshall Lochbaum
|
980e4b2248
|
Short-height version of 16x16 i8 transpose kernel, using overlapped writes
|
2024-11-05 21:48:54 -05:00 |
|
Marshall Lochbaum
|
abb96cb18a
|
Fixed-height transposes, more or less reverse of fixed-width
|
2024-11-05 21:48:54 -05:00 |
|
Marshall Lochbaum
|
0ab2e485ca
|
Width-4 transpose with shuffles
|
2024-11-05 21:48:54 -05:00 |
|
Marshall Lochbaum
|
8bc37098dc
|
Modular kernel transpose for odd*2 (so, just 6)
|
2024-11-05 21:48:54 -05:00 |
|
Marshall Lochbaum
|
091f08c6cc
|
Extend modular permutation transpose to any element size
|
2024-11-05 21:48:54 -05:00 |
|
Marshall Lochbaum
|
780bfdfa0b
|
Kernel transpose with overreading and skipped writes, for short rows
|
2024-11-05 21:48:54 -05:00 |
|
Marshall Lochbaum
|
b6e418ed5b
|
Fix modular permutation example in comment
|
2024-11-05 21:48:54 -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
|
0bdc43cc0f
|
Even number handling for modular permutation ⊣˝˘
|
2024-11-05 21:48:54 -05:00 |
|
Marshall Lochbaum
|
4c55eab740
|
Fast ⊣˝˘ for power-of-two widths, 4- and 8-byte elements
|
2024-11-05 21:48:54 -05:00 |
|
Marshall Lochbaum
|
8d9d946ec5
|
Fast ⊣˝˘ with pack for power-of-two widths, 1- and 2-byte elements
|
2024-11-05 21:48:54 -05:00 |
|
Marshall Lochbaum
|
aefd2a4abd
|
Fast 1-byte small odd width transpose with blends and modular permutation
|
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
|
6e4859e17f
|
Extend select_rows_byte to any architecture with (shuffle and) blend
|
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
|
bd6effe7ab
|
restore dropped comment
|
2024-10-23 21:37:56 +03:00 |
|
Marshall Lochbaum
|
7ac7297617
|
More simplifications to Singeli vector utilities
|
2024-10-21 21:44:21 -04:00 |
|
Marshall Lochbaum
|
8099945068
|
Use vec_select from Singeli select includes
|
2024-10-21 18:53:03 -04:00 |
|
Marshall Lochbaum
|
25724b6b3e
|
More NEON functionality moved to neon_intrin/select
|
2024-10-21 18:53:03 -04:00 |
|
Marshall Lochbaum
|
fa43ffd882
|
Alias vec_shuffle to shuf
|
2024-10-21 18:53:03 -04:00 |
|
Marshall Lochbaum
|
27af1c0558
|
Use Singeli select include for x86 blend, byteshift, zip
|
2024-10-21 18:53:03 -04:00 |
|
Marshall Lochbaum
|
6140290813
|
Use Singeli select includes for shuffling
|
2024-10-14 10:24:07 -04: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
|
61e5ca2767
|
move function/modifier native ID into their respective structs
|
2024-10-10 03:46:47 +03:00 |
|
dzaima
|
4885ca1c62
|
fix rtwrap decompose
|
2024-10-10 03:46:47 +03:00 |
|
dzaima
|
4e071cf170
|
disable |, ⌊, ⌈, <, > wrapping for RT_VERIFY
boring arith, and native versions have differences around NaNs
|
2024-10-10 03:46:47 +03:00 |
|
dzaima
|
6bd47b067e
|
split apart def_decompose
|
2024-10-10 02:38:17 +03:00 |
|
dzaima
|
b095811da5
|
remove dead TIi(t_funBI,visit) =
|
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
|
ddb0e09d08
|
remove unused helper
|
2024-10-10 02:35:32 +03:00 |
|
dzaima
|
0f12b66fdb
|
move purity separation to the proper place
|
2024-10-10 02:35:32 +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
|
72e46f24bd
|
fix silent truncation of requested memory amount in 32-bit builds
|
2024-10-09 03:31:20 +03:00 |
|
dzaima
|
d640931c02
|
i64 → ux for bucket indices
|
2024-10-09 03:31:20 +03:00 |
|
dzaima
|
9371fa0fbc
|
make PROPER_FILLS customizable
|
2024-10-09 02:49:31 +03:00 |
|
dzaima
|
d5d495ecd2
|
mention v/V naming in src/README.md
|
2024-10-09 02:42:17 +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
|
002d58e057
|
better withFill slow path copying
|
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
|
b9b0c619db
|
more flag utils
|
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
|
85c5fb659d
|
more clang-friendly multi-input homMask
|
2024-10-07 02:49:58 +03:00 |
|
dzaima
|
cf19280c54
|
fix reliance on signed wrapping in replicate
|
2024-10-03 20:33:02 +03:00 |
|
dzaima
|
7774d8ba5e
|
slightly better number asFill
|
2024-09-28 18:48:53 +03:00 |
|
dzaima
|
9504f10406
|
fix test/precompiled.bqn
|
2024-09-26 03:25:10 +03:00 |
|
dzaima
|
9ca48a55bc
|
better range checking
|
2024-09-26 03:12:25 +03:00 |
|
dzaima
|
00a9dc03be
|
fast path for FFI array range checking
|
2024-09-26 02:45:38 +03:00 |
|
dzaima
|
2da0c2d0b1
|
fix FFI_CHECKS=0
|
2024-09-26 02:34:16 +03:00 |
|
dzaima
|
989970f7fd
|
fix ∾2‿2⥊<0‿0⥊⟨⟩
|
2024-09-22 01:42:26 +03:00 |
|
dzaima
|
e6d3821d52
|
FFI: invalid character array argument detection
|
2024-09-22 01:37:13 +03:00 |
|
dzaima
|
4eb632a48d
|
TO_GET helper
|
2024-09-21 21:26:02 +03:00 |
|
dzaima
|
10671c446d
|
move print_vmStack to DEBUG_VM-only
|
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
|
92be360412
|
use "at ..." stacktrace display for empty name
|
2024-09-15 23:22:11 +03:00 |
|
dzaima
|
1709fbd2f6
|
new precompiled bytecode generator
|
2024-09-15 20:11:52 +03:00 |
|
dzaima
|
f2efa657b7
|
start of cc.bqn/precompiled format refactor
|
2024-09-15 20:02:04 +03:00 |
|
dzaima
|
452a117818
|
print precompiled source name & line number in stacktraces
|
2024-09-14 18:21:23 +03:00 |
|
dzaima
|
0c88263659
|
don't copy i32slice bytecode in compileAll
|
2024-09-14 17:16:57 +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
|
1679d957e8
|
more checks in arr_* functions
|
2024-09-13 21:52:18 +03:00 |
|
dzaima
|
ca7410e623
|
remove unneeded include
|
2024-09-13 21:14:44 +03:00 |
|
dzaima
|
215a3cad3b
|
fix interleave_cells generic path
|
2024-09-13 19:39:08 +03:00 |
|
dzaima
|
6c7e6c411a
|
use CMP_AA_IMM
|
2024-09-13 19:35:59 +03:00 |
|
dzaima
|
b7c3815d4a
|
copy fallback instead of slice in take_head
|
2024-09-13 19:10:46 +03:00 |
|
dzaima
|
bd6d40a4fa
|
outline GC steps
|
2024-09-13 18:48:09 +03:00 |
|
dzaima
|
66f37aa299
|
allow hitting exactly the memory limit
|
2024-09-13 18:29:06 +03:00 |
|
dzaima
|
574653f3fb
|
improve clangd of various files in src/opt/
|
2024-09-13 18:18:29 +03:00 |
|
dzaima
|
64adbbf37e
|
in-place ¯n↓ / n↑ / n⥊
|
2024-09-13 17:41:56 +03:00 |
|
dzaima
|
704986d36c
|
reinit_portion
|
2024-09-13 17:41:48 +03:00 |
|
dzaima
|
4464fced30
|
print object type in tailFail
|
2024-09-13 05:10:48 +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
|
27b7c0746c
|
full interleave_cells
needed to make all rank-1 inputs work on non-Singeli builds, but beneficial in general anyway
|
2024-09-12 06:17:32 +03:00 |
|
dzaima
|
f19a8effc4
|
suppress warning
|
2024-09-12 05:49:42 +03:00 |
|
dzaima
|
e9cf8ac330
|
fix try_interleave_cells on copying TO_BPTR
|
2024-09-12 05:40:11 +03:00 |
|
dzaima
|
c0e3a3711f
|
fast scalar≍˘arr & arr≍˘scalar & different-type arr≍˘arr
|
2024-09-12 05:38:34 +03:00 |
|
dzaima
|
da29b285dd
|
better ARR_BPTR_NEVER
|
2024-09-12 05:18:52 +03:00 |
|
dzaima
|
41785cb4bf
|
Singeli const¨⌾(m⊸/)b
|
2024-09-10 01:45:56 +03:00 |
|
dzaima
|
02573fa4eb
|
fatal{msg}
|
2024-09-10 01:45:18 +03:00 |
|
dzaima
|
75c1b74ce1
|
ARR_BPTR_NEVER
|
2024-09-09 17:55:26 +03:00 |
|
dzaima
|
03fbb17246
|
fix broken arr_bptr path in transpose_noshape
|
2024-09-09 17:55:26 +03:00 |
|
dzaima
|
153850921b
|
actually, hanyv?_ptr shouldn't be a thing
|
2024-09-09 17:55:26 +03:00 |
|
dzaima
|
4cf8e10b95
|
fillarr_ptr → fillarrv_ptr
|
2024-09-09 17:55:26 +03:00 |
|
dzaima
|
af6c618158
|
use new harr/hslice _ptr functions
|
2024-09-09 17:55:26 +03:00 |
|
dzaima
|
15401e8dfb
|
h(arr|any|slice)v?_ptr
|
2024-09-09 17:55:26 +03:00 |
|
dzaima
|
8fafbcde65
|
fix toConstant
was broken in fork_uc1 before too
|
2024-09-09 17:55:26 +03:00 |
|
dzaima
|
c2adbd4a3b
|
move toConstant to builtins.h
|
2024-09-09 17:55:26 +03:00 |
|
dzaima
|
b69f65081d
|
vector → list
|
2024-09-09 17:55:26 +03:00 |
|
dzaima
|
b62e7cd820
|
fix generic arch build
|
2024-09-02 00:04:32 +03:00 |
|
dzaima
|
858dd5bc99
|
fix bitwiden aarch64 check
|
2024-08-31 18:28:40 +03:00 |
|
dzaima
|
c8e0bf653b
|
fast path for ∊allEqual
|
2024-08-27 20:20:52 +03:00 |
|
dzaima
|
0106f04495
|
make getPageSize return ux
|
2024-08-27 20:20:34 +03:00 |
|
dzaima
|
559ccae9cc
|
fix select_rows_direct
|
2024-08-23 04:24:42 +03:00 |
|
dzaima
|
79b0bda0d3
|
fix •file.MapBytes
|
2024-08-23 04:20:44 +03:00 |
|
dzaima
|
09bdeb7fd8
|
more usz overflow checking
|
2024-08-23 03:59:57 +03:00 |
|
dzaima
|
06689960a5
|
native ≍⁼⍟k 𝕩
|
2024-08-23 02:44:49 +03:00 |
|
dzaima
|
5ef4fe828b
|
use customizeShape in transpose
|
2024-08-23 02:21:59 +03:00 |
|
dzaima
|
6ead1baa11
|
native ≍⁼
|
2024-08-23 02:21:48 +03:00 |
|
Marshall Lochbaum
|
56cb10d6e5
|
Min/max scan that can skip unused argument vectors sometimes
|
2024-08-20 15:26:07 -04:00 |
|
dzaima
|
d185d32d9e
|
remove debug include
|
2024-08-20 17:22:10 +03:00 |
|
dzaima
|
357eb1a27a
|
expanded comment of supported things in the native compiler
|
2024-08-20 00:17:29 +03:00 |
|
dzaima
|
a654bd88d2
|
fix aarch64 build
|
2024-08-17 20:13:38 +03:00 |
|
dzaima
|
0467e1c894
|
use *arrv_ptr more
|
2024-08-15 17:36:43 +03:00 |
|
dzaima
|
597fe07838
|
another incG
|
2024-08-15 17:36:43 +03:00 |
|
dzaima
|
37a3694df7
|
restore usage of bitarr_ptr where appropriate
|
2024-08-15 17:36:43 +03:00 |
|
dzaima
|
5098781ffc
|
replace all bitarr_ptr usages with bitany_ptr
|
2024-08-15 17:36:43 +03:00 |
|
dzaima
|
88de336516
|
introduce bitany_ptr
+ more general typed arr pointer getting functions
|
2024-08-15 17:36:43 +03:00 |
|
dzaima
|
00a64101e9
|
better bitp_set
apparently gcc & clang aren't smart enough to notice the unnecessary
intermediate u64
|
2024-08-15 06:00:07 +03:00 |
|
dzaima
|
3b2b9bba1a
|
AVX-512 bitwiden
|
2024-08-14 23:44:08 +03:00 |
|
dzaima
|
67626d1e49
|
a couple more AVX-512 defs
|
2024-08-14 23:44:08 +03:00 |
|
dzaima
|
6b72139d75
|
include avx512 in base
|
2024-08-14 22:13:24 +03:00 |
|
dzaima
|
ab4d3565df
|
more --replxx-read-only
|
2024-08-14 22:10:45 +03:00 |
|
dzaima
|
60380e6270
|
fix out-of-bounds indexing in factors
|
2024-08-14 22:10:45 +03:00 |
|
Marshall Lochbaum
|
b2566c8f3a
|
NEON k/bool support
|
2024-08-14 14:51:01 -04:00 |
|
Marshall Lochbaum
|
b801c7c186
|
Move to dedicated k/bool loops for k=5,7 and at least SSSE3
|
2024-08-14 14:51:01 -04:00 |
|
Marshall Lochbaum
|
b2758d355c
|
k/bool cleanup and implementation comments
|
2024-08-14 14:51:01 -04:00 |
|
Marshall Lochbaum
|
bf69705c82
|
Factor (8×k)/bool as bit-replicate, then byte-replicate
|
2024-08-14 10:30:26 -04:00 |
|
Marshall Lochbaum
|
fc1265b3f2
|
Enable (non-boolean) constrep on SSSE3
|
2024-08-14 10:30:26 -04:00 |
|
Marshall Lochbaum
|
048529740b
|
SSE2 k/bool where k divides 8 implementations
|
2024-08-14 10:30:26 -04:00 |
|
Marshall Lochbaum
|
ee27717c97
|
SSE2 odd/bool implementation using [4]u32 shuffles
|
2024-08-14 10:30:26 -04:00 |
|
Marshall Lochbaum
|
36e9ca5814
|
Extend odd/bool SSSE3 code to support AVX2
|
2024-08-14 10:30:26 -04:00 |
|
Marshall Lochbaum
|
2be022921e
|
Combine generic and SSSE3 general-case odd/bool, so SSSE3 uses mask unpacking
|
2024-08-14 10:30:26 -04:00 |
|
Marshall Lochbaum
|
3e5dbdbf8d
|
Dedicated generic k/bool for divisors of 8; factor; remove pdep emulation
|
2024-08-14 10:30:26 -04:00 |
|
Marshall Lochbaum
|
13ec029d9f
|
Get odd k/bool carry by shifting in the unified register, not after masking
|
2024-08-14 10:30:26 -04:00 |
|
Marshall Lochbaum
|
1621c7d07c
|
Generic-arch k/bool algorithm for odd k with mask unpacking
|
2024-08-14 10:30:26 -04:00 |
|
Marshall Lochbaum
|
7d7d36b354
|
Extend SSSE3 k/bool to k<32 using pairwise swaps
|
2024-08-14 10:30:26 -04:00 |
|
Marshall Lochbaum
|
696a23af9e
|
Mask off last k/bool vector properly
|
2024-08-14 10:30:26 -04:00 |
|
Marshall Lochbaum
|
1a4cada0cb
|
AVX2 support in rep_const_bool_ssse3_div8
|
2024-08-14 10:30:26 -04:00 |
|
Marshall Lochbaum
|
b4d84041bc
|
Extend odd k/bool SSSE3 algorithm to k<16, factor even k≤32
|
2024-08-14 10:30:26 -04:00 |
|
Marshall Lochbaum
|
a439a0a430
|
SSSE3 k/bool for 2≤k≤8, k≠6
|
2024-08-14 10:30:26 -04:00 |
|
Marshall Lochbaum
|
a4b6d8d827
|
SSSE3 3/bool, faster than BMI2
|
2024-08-14 10:30:26 -04:00 |
|
Marshall Lochbaum
|
7f6c401eb3
|
Generic-architecture k/bool for small 8<k
|
2024-08-14 10:30:26 -04:00 |
|
Marshall Lochbaum
|
0602927b17
|
Move pdep-based k/bool code to Singeli
|
2024-08-14 10:30:26 -04:00 |
|
dzaima
|
de5bebb239
|
fix bitnarrow on aarch64
|
2024-08-14 16:41:58 +03:00 |
|
dzaima
|
565a0a8458
|
inline zeroPadToCellBits0
|
2024-08-14 15:21:42 +03:00 |
|
dzaima
|
fc800ee191
|
remove debug include
|
2024-08-14 15:06:43 +03:00 |
|
dzaima
|
ef1ea4ad0f
|
make gcc not complain about break
funky
|
2024-08-14 05:25:13 +03:00 |
|
dzaima
|
2ca2c52c16
|
use direct bitwiden & bitnarrow in select-rows
|
2024-08-14 05:18:13 +03:00 |
|
dzaima
|
d95a792230
|
add bitwiden & bitnarrow to header
|
2024-08-14 05:18:13 +03:00 |
|
dzaima
|
d0f30bd717
|
extract direct pointer version of bitnarrow
|
2024-08-14 05:18:13 +03:00 |
|
dzaima
|
d676663f45
|
better unaligned load option for bitwiden
|
2024-08-14 05:18:13 +03:00 |
|
dzaima
|
6e8c6d2e10
|
extract direct pointer version of bitwiden
|
2024-08-14 05:18:13 +03:00 |
|
dzaima
|
7eb2b97e29
|
use COPY_TO_FROM in cpyU16Bits & cpyU8Bits
|
2024-08-14 05:18:13 +03:00 |
|
dzaima
|
c445f24aae
|
COPY_TO_FROM
|
2024-08-14 05:18:13 +03:00 |
|
dzaima
|
9b515c3fad
|
reverse pointer arguments of copy.singeli exports
|
2024-08-14 05:18:13 +03:00 |
|
dzaima
|
6d7648c947
|
more things that could be select-rows'd
|
2024-08-14 05:18:13 +03:00 |
|
dzaima
|
f6c52ef3b3
|
disable Singeli bitwiden on SSE2
|
2024-08-14 05:18:13 +03:00 |
|
dzaima
|
f356ba0f36
|
more definitions in base.singeli
|
2024-08-14 05:18:13 +03:00 |
|
dzaima
|
3fc92eceaa
|
include util/tup in base.singeli
|
2024-08-14 05:18:13 +03:00 |
|
dzaima
|
a9460da19c
|
more missing NEON comments
|
2024-08-14 05:18:13 +03:00 |
|
dzaima
|
eccbac37ab
|
aarch64 8→n bitnarrow
|
2024-08-14 05:18:13 +03:00 |
|
dzaima
|
c72ed51149
|
Singeli n→8 bitwiden
|
2024-08-14 05:18:13 +03:00 |
|
dzaima
|
f36cefc9ac
|
more Singeli utils
|
2024-08-14 05:18:13 +03:00 |
|
dzaima
|
5748833060
|
fast inds⊸⊏˘bits for ≤8-bit input & output cells
|
2024-08-14 05:18:13 +03:00 |
|
dzaima
|
920a89f019
|
native ⋈⁼ & ⌾⋈
plus some more undo & under tests
|
2024-08-14 05:18:13 +03:00 |
|
dzaima
|
ae0d392d43
|
tyarrv_free
|
2024-08-14 05:02:24 +03:00 |
|