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
dzaima
46b63125bc
ARBITRARY & GUARANTEED
2024-08-14 05:02:24 +03:00
dzaima
2c36a3e399
fix ⟨1‿2⟩⊸⊏˘ mat
2024-08-09 00:36:23 +03:00
dzaima
3716162e69
use q_fbit more
2024-08-09 00:32:27 +03:00
dzaima
e0facc54f8
minor src/README.md cleanup
2024-08-09 00:32:27 +03:00
dzaima
8e49fc04bb
--replxx-read-only
2024-08-09 00:32:27 +03:00
dzaima
ced082cc82
use custom valgrind pdep/pext everywhere
2024-08-09 00:32:27 +03:00
dzaima
d1469df96b
fix out-of-bounds load on empty replxx line
...
`chars[0] == ')'` was branching on empty data; not UB due to custom heap
usage and the code that does run is harmless, but still hit under
valgrind
2024-08-09 00:32:27 +03:00
dzaima
bdb5781ef7
make bitp_get & bitp_set load/store u8 instead of u64
2024-08-09 00:32:27 +03:00
dzaima
64b69700c5
include last power of two in fast-path ⌽˘
2024-08-09 00:32:27 +03:00
dzaima
bc81b26a03
use fast path for inds⊸⊏˘el_B and ⌽˘el_B
2024-07-29 01:51:59 +03:00
dzaima
6900ae4b68
fix ⌽˘ 0‿10⥊2 and (↕0)⊸⊏˘ 10‿10⥊2
2024-07-29 00:45:01 +03:00
dzaima
52f36c61c0
fix 0‿1⊸⊏˘3‿1⥊2; accept any non-empty array x in select_rows_typed→select_rows_direct
2024-07-29 00:25:09 +03:00
dzaima
3a722b552f
⌽⎉1 x via (⌽↕¯1⊑≢x)⊸⊏⎉1 x
2024-07-28 22:24:34 +03:00
dzaima
081b928cb4
fix zip_halves being weird
2024-07-28 05:10:46 +03:00
dzaima
ffc250eb0e
clearer aarch64 zip_halves mzip usage
2024-07-28 04:02:54 +03:00
dzaima
39f4a66ae0
cleanup
2024-07-28 03:55:22 +03:00
dzaima
bd3789963c
these are actually good
2024-07-28 02:52:58 +03:00
dzaima
6f25e76e5d
tune NEON inds⊸⊏˘f64arr
2024-07-28 02:47:12 +03:00
dzaima
d1d8e8be03
fix assertion on F⌾(⟨⟩⊸⊏) x
2024-07-26 23:25:26 +03:00
dzaima
42b8420af6
ignore unused label warning
2024-07-26 23:13:08 +03:00
dzaima
93fca7c628
fix overflow in index widening
2024-07-26 22:17:49 +03:00
dzaima
7cc1031f70
use outside-of-loop index widening on aarch64
...
slower as-is due to reduced supported ranges, but that's not an inherent restriction
2024-07-26 22:17:49 +03:00
dzaima
a486e87451
select-cells comments
2024-07-26 22:17:49 +03:00
dzaima
69ca524251
widen inds outside select-cells loops
2024-07-26 22:17:49 +03:00
dzaima
fce7567349
widen bits in bits⊸⊏˘mat to i8
2024-07-26 22:16:23 +03:00
dzaima
90646563a0
don't use zip method for select-cells
2024-07-26 22:16:23 +03:00
dzaima
4a874710c7
allow unhandled types for select_rows
2024-07-26 22:16:23 +03:00
dzaima
478c389c4b
fast inds⊸⊏˘ mat
2024-07-26 22:16:23 +03:00
dzaima
0d7bf86182
baseline inds⊸⊏˘ mat
2024-07-26 22:16:23 +03:00
dzaima
f7dd900b3a
faster 𝕨⊏𝕩, incl. aarch64 support
2024-07-26 00:01:54 +03:00
dzaima
cda5fd8595
make native compiler not error in debug builds
2024-07-26 00:01:54 +03:00
dzaima
3689e6105c
support 2-modifiers in native compiler
2024-07-26 00:01:54 +03:00
dzaima
b7f7eda1ff
more cells.h comments
2024-07-26 00:01:54 +03:00
dzaima
d6483a93d3
x86 unzip & unzip128
2024-07-26 00:01:54 +03:00
dzaima
2ed06e0db6
get_range Singeli binding
2024-07-26 00:01:54 +03:00
dzaima
2ca488dd66
aarch64 bool128 select
2024-07-26 00:01:54 +03:00
dzaima
0d5e77766a
build select.singeli everywhere
2024-07-26 00:01:54 +03:00
dzaima
f1f4f1734e
extract m_tyslice
2024-07-26 00:01:54 +03:00
dzaima
b99d5f23d5
extract bitsel to a function table
2024-07-26 00:01:54 +03:00
dzaima
2b323817ca
make 𝕨⊏𝕩 error messages not differ across types
2024-07-26 00:01:54 +03:00
dzaima
e757b690dd
mention src/singeli/ in src/README.md
2024-07-26 00:01:54 +03:00
dzaima
c274c35b1e
Singeli @for_blocks
2024-07-26 00:01:54 +03:00
dzaima
079d3ffe91
better aarch64 homMask{[16]u8,[16]u8}
2024-07-26 00:01:54 +03:00
dzaima
0b69fa84cd
NEON comparisons to 0
2024-07-26 00:01:54 +03:00
dzaima
c0573d602c
don't error on non-vector types checked by genchk
2024-07-26 00:01:54 +03:00
dzaima
a9fbd0301d
fix ∾˝⎉k refcounting
2024-07-15 00:56:02 +03:00
dzaima
3e9af0a910
fast-path for n•rand.Range 1
2024-07-15 00:56:02 +03:00
dzaima
2dd3798228
more Singeli cleanup
2024-07-15 00:56:02 +03:00
dzaima
2436c45f1d
Singeli ceil_log2 for compile-time numbers
2024-07-15 00:52:00 +03:00
dzaima
66a8529d88
remove redundant parentheses in Singeli destructuring
2024-07-15 00:52:00 +03:00
dzaima
ed2198c06a
disable tail calls in bqn_fmt & bqn_repr
...
far from performance-critical, but helpful for stack traces
2024-07-15 00:52:00 +03:00
dzaima
f79e4c6d0a
make /(m?zip(128)?|pack)(Lo|Hi)/ not have Lo/Hi as part of name
...
instead being an optional 3rg arg
2024-07-15 00:52:00 +03:00
dzaima
a671ec9462
aarch64 bittab
2024-07-13 00:10:34 +03:00
dzaima
6dbe76727f
update offset for stacktraces on FLDG
2024-07-13 00:10:34 +03:00
dzaima
838639e610
fix gcc-9 build
2024-07-10 03:54:44 +03:00
dzaima
7aab7ceb8b
cleanup
2024-07-10 03:44:05 +03:00
dzaima
2bc1ba9f4a
fix aarch64 squeeze
2024-07-10 03:43:58 +03:00
dzaima
52d1e61fe0
don't bother early-exiting on masked iteration
2024-07-10 03:24:10 +03:00
dzaima
2fdd72f1c4
faster <SSE4.1 integer accumulating in squeeze
2024-07-10 03:18:17 +03:00
dzaima
a45925b0c6
fix SSE2 squeeze
2024-07-10 03:18:17 +03:00
dzaima
f941245b34
avoid needing two final folds on x86
2024-07-10 03:18:17 +03:00
dzaima
40a5c40bda
faster squeeze
2024-07-10 03:18:17 +03:00
dzaima
d66be091be
shufps Singeli mapping
2024-07-10 00:55:43 +03:00
dzaima
e96948cb64
Singeli zip128
2024-07-10 00:55:43 +03:00
dzaima
a8af920dc9
•internal.PureKeep
2024-07-10 00:55:43 +03:00
dzaima
01b1ee3637
make ⊢¨ more consistent with other PureIdentFn¨
...
incl. making ⊢¨ not leak xf under EACH_FILLS
2024-07-10 00:55:43 +03:00
dzaima
826179c83d
•internal utility for getting & setting object flags
2024-07-08 22:53:29 +03:00
dzaima
352f22f8f6
don't vectorize tiny loop
...
could theoretically maybe be beneficial for functions with a hilarious
number of arguments, but whatever. Improves perf on few-argument
functions from not unrolling/vectorizing.
2024-07-08 04:25:27 +03:00
dzaima
3e24442011
use ux in base cmp
2024-07-08 04:25:27 +03:00
Marshall Lochbaum
201fe1e57c
Extend fold_rows to any rank, as long as stride is 1
2024-07-05 17:44:42 -04:00
Marshall Lochbaum
48d77e722f
Extend ˝ to ´ conversion (for singleton cells) to any rank
2024-07-05 17:44:42 -04:00
Marshall Lochbaum
46704defb6
Convert list⊸↑˘ to a single ↑ call, likewise ↓ and ⌽
2024-07-05 17:44:42 -04:00
Marshall Lochbaum
ce98efc525
Transform atom⊸⌽⎉k into a single high-rank ⌽ call
2024-07-05 17:44:42 -04:00
Marshall Lochbaum
3b49294145
Specialize ApdMut to reshape if there's only one append
2024-07-05 17:44:42 -04:00
Marshall Lochbaum
76a40491e9
Remove some rank restrictions from for_cells_SA
2024-07-05 17:44:42 -04:00
Marshall Lochbaum
4450d36187
Better handling for «˘ and »˘ trivial cases
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
6eca24ce0a
Special code for ∾˝˘ and fold-cells of empty
2024-07-05 17:44:42 -04:00
Marshall Lochbaum
9d5caad9a9
Compute Insert identity natively
2024-07-05 17:44:42 -04:00
Marshall Lochbaum
5d4391a3fd
Combine monadic ˘ with outer ˘ or ⎉
2024-07-05 17:44:42 -04:00
Marshall Lochbaum
a19b5401f7
Fast cases for monadic rank with cell length ≤1
2024-07-05 17:44:42 -04:00
Marshall Lochbaum
8766810db8
Rank-agnostic select_cells
2024-07-04 12:04:00 -04:00
Marshall Lochbaum
ab15eaeeeb
Length-1 reverse is a no-op
2024-07-04 12:04:00 -04:00
dzaima
2ce983041c
fix shared •HashMap value list
2024-06-30 14:06:05 +03:00
dzaima
47b5d7d832
fix harmless copy-paste error
2024-06-29 04:38:44 +03:00
dzaima
0319be27ea
fix bad error message on /⁼3‿3⥊0
2024-06-29 02:59:15 +03:00
dzaima
7eb60d4ec1
correct ElType comment
2024-06-29 02:33:46 +03:00
dzaima
6824b9a747
fix another unaligned load
2024-06-26 06:09:30 +03:00
dzaima
7474e51642
rename mask_of in spaced.singeli
...
otherwise confusable with maskOf in mask.singeli
2024-06-26 05:39:48 +03:00
dzaima
452065adaf
add magic incantation to make optimizer happy
2024-06-26 05:30:09 +03:00
Marshall Lochbaum
e365ecf7dc
Fix F`˘ on rank 0
2024-06-25 22:31:47 -04:00
Marshall Lochbaum
ace6105bf6
Fixes for ∧˝˘ and ∨˝˘ on long rows
2024-06-25 22:30:56 -04:00
dzaima
b6bf3f2da6
suppress clang ubsan warning
...
it's a true warning of actual UB and could conceivably be taken advantage of by a compiler, but is not currently so keep things pretty for now
2024-06-26 03:36:02 +03:00
dzaima
024ab669d5
fix ∧˝˘0‿8⥊0 running comparison functions on length-0 inputs
2024-06-26 03:09:43 +03:00
dzaima
6c110a29ee
use loadu_* & storeu_* for unaligned loads/stores
2024-06-26 03:09:43 +03:00
dzaima
ace06e96ae
document CMP_* non-zero length requirement
2024-06-26 03:09:43 +03:00
dzaima
7e15dfe104
make loadu_*/storeu_* take void*
2024-06-26 03:03:57 +03:00
Marshall Lochbaum
e952e4ca3e
Disable F´˘ special code when cell rank isn't 1
2024-06-23 17:06:37 -04:00
Marshall Lochbaum
5758853ccb
Can't call fold-rows special code with reduction length 0
2024-06-23 10:00:44 -04:00
Marshall Lochbaum
5f1c677d48
Support ∧∨ synonyms in fold_rows_bit
2024-06-20 11:05:59 -04:00
Marshall Lochbaum
355efd1eb4
Insert-cells and scan implementation comments, and minor tweaks
2024-06-19 18:36:53 -04:00
Marshall Lochbaum
4b0f105a7f
Implement short-row num⊏˘bool (including ⊣˝˘ ⊢˝˘) with fold code
2024-06-18 14:05:16 -04:00
Marshall Lochbaum
cb1b72fbb2
Extend boolean F˝˘ special code to any ranks
2024-06-18 07:46:31 -04:00
Marshall Lochbaum
1e6c7057e8
Extend boolean F`˘ special code to any frame and cell rank
2024-06-18 07:46:31 -04:00
Marshall Lochbaum
5e3cc6de81
Refactoring, simplification, comments
2024-06-18 07:46:31 -04:00
Marshall Lochbaum
a8b036ad08
Implement ≠˝˘ and =˝˘ like ∧∨ on width<64 boolean
2024-06-18 07:46:31 -04:00
Marshall Lochbaum
f0f130c42e
Use a lookup table for evenly-spaced masks, getting division results from those
2024-06-18 07:46:31 -04:00
Marshall Lochbaum
e6f1e04de2
Fast generic and pext-based ∧˝˘ and ∨˝˘ on width<64
2024-06-18 07:46:31 -04:00
Marshall Lochbaum
40bf3bfd1c
AVX2-based boolean short-row scans
2024-06-18 07:46:31 -04:00
Marshall Lochbaum
6d27dd391b
Clean up scan_rows_bit logic and implement -˘ as (2×⊣˘)-+`˘
2024-06-18 07:46:31 -04:00
Marshall Lochbaum
efde979fe9
Fast boolean ⊣`˘
2024-06-18 07:46:31 -04:00
Marshall Lochbaum
3b61568fda
Implement boolean list scans ->≤≥ using more common scans
2024-06-18 07:46:31 -04:00
Marshall Lochbaum
fde29684d7
Tweak for faster +`˘ on very short boolean rows
2024-06-18 07:46:31 -04:00
Marshall Lochbaum
8e47221c9f
Implement monadic boolean = with ≠
2024-06-18 07:46:31 -04:00
Marshall Lochbaum
8331a05547
Boolean ≠`˘ implementation
2024-06-18 07:46:31 -04:00
Marshall Lochbaum
bd64e8bcd2
Faster boolean +`˘ for short rows based on flattened prefix sum
2024-06-18 07:46:31 -04:00
Marshall Lochbaum
5591d0f4f0
Boolean row-wise scans ∧˘ and ∨˘
2024-06-18 07:46:31 -04:00
Marshall Lochbaum
7b4468c394
Move logical fold-rows functions to Singeli
2024-06-18 07:46:31 -04:00
Marshall Lochbaum
2590222988
Generic-architecture implementations of fold.singeli
2024-06-18 07:46:31 -04:00
Marshall Lochbaum
d29b4df50c
Boolean and, or, eq folds for row length >64
2024-06-18 07:46:31 -04:00
Marshall Lochbaum
c76e175719
Faster boolean +˝˘, and ≠˝˘ on row length >64
2024-06-18 07:46:31 -04:00
Marshall Lochbaum
ab4e5543a0
Implement matrix ⊣˝˘ and ⊢˝˘ with select_cells
2024-06-18 07:46:31 -04:00
dzaima
4ab84c05f6
handle header […]←rank0 properly
2024-06-16 14:00:40 +03:00
dzaima
563c30c596
allSame Singeli helper, make NEON homMask accept signed types
2024-06-16 14:00:40 +03:00
dzaima
d85f628d72
accept tuple argument in homMask
2024-06-14 04:28:53 +03:00
dzaima
73123f5bde
even faster »⎉1 & «⎉1 for narrow bitarr 𝕩
2024-06-06 23:36:45 +03:00
dzaima
cc3c6985ad
faster unit»⎉1𝕩 / unit«⎉1𝕩
2024-06-05 13:53:09 +03:00
dzaima
17339eceae
proper description of reshape_one
2024-06-05 13:52:25 +03:00
dzaima
b32f22ee89
fix MM=0 build
2024-06-05 03:32:41 +03: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
e04819a28d
make TYARR_SZ always operate in u64
...
shouldn't change anything on 64-bit platforms as the sizeof in fsizeof should already give size_t
2024-06-05 02:23:15 +03:00
vylsaz
2a57022ccb
no ENT_SP_GC if profiler is not supported
2024-06-04 06:04:08 +00:00
dzaima
8044c560a4
faster atom∾atom
2024-06-01 16:22:34 +03:00
dzaima
44af7d4980
separate GC time in )profile
2024-06-01 00:33:14 +03:00
dzaima
d161f93a38
more Singeli refactoring
...
makes some conditions more strict
removes wrong el_m & el_s definitions
2024-05-26 04:25:54 +03:00
Marshall Lochbaum
56944b8985
Minor Singeli simplifications
2024-05-25 18:31:47 -04:00
Marshall Lochbaum
90863851b7
Use new Singeli type destructuring (no change to generated C)
2024-05-25 18:31:47 -04:00
dzaima
05690c001a
suppress false-positive gcc warnings
2024-05-24 04:01:05 +03:00
dzaima
5862c28c08
avoid conversion of i64 to ux for pointer offset
2024-05-22 20:41:40 +03:00
dzaima
f14583f995
faster ⍉ on large‿small⥊x
2024-05-22 20:07:48 +03:00
dzaima
33f784106d
actually properly mention reference counting in src/README.md
2024-05-20 01:39:26 +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
4f898f38d2
various Singeli usage improvements and fixes
2024-05-11 05:57:30 +03:00
Marshall Lochbaum
b2e3a5ff74
Move from & to if/and for Singeli conditions
2024-05-10 10:26:28 -04:00
Marshall Lochbaum
4d6612cb16
Replace tuplen{} and tupsel{} with length{} and select{}
2024-05-10 09:49:58 -04:00
Marshall Lochbaum
12d7629f9c
Replace top-level if with if_inline
2024-05-10 08:36:24 -04:00
Marshall Lochbaum
526d9bbebe
Wrap non-destructuring type parameters in parens
2024-05-10 08:30:08 -04:00
dzaima
4a40739398
use printf & fprintf instead of putchar & co
2024-05-05 01:07:47 +03:00
dzaima
b657778205
fix •file.MapBytes in debug builds
2024-04-20 23:25: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
fd317ddce3
move heapverify CATCH_ERRORS change to build.bqn
2024-04-04 02:35:02 +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
863da7083f
OOM on too large apd_sh_init result
2024-04-03 18:27:25 +03:00