dzaima
cd40ec8117
fix ¯2e9‿2e9⍋0
2023-04-30 19:35:18 +03:00
dzaima
c567dff565
fix leading-axis operations on empty inputs
2023-04-30 19:15:46 +03:00
dzaima
93dd25e0e1
fast leading-axis for <>≤≥=≠
2023-04-30 19:00:56 +03:00
dzaima
c889a07d75
replicate-using leading axis arithmetic case
2023-04-30 18:46:41 +03:00
dzaima
1e11cf93c1
faster leading axis arithmetic
2023-04-30 17:27:07 +03:00
dzaima
048352f587
fix 0˝˘ 2‿2⥊0
2023-04-29 21:15:46 +03:00
dzaima
0a30c7b4e6
more generic n⊸↑⎉k & n⊸↓⎉k & n⊸⍉⎉k
2023-04-29 21:10:44 +03:00
dzaima
aae8651e8b
fix Arith⌜ with empty 𝕨
2023-04-29 20:11:24 +03:00
dzaima
518635d0b9
generic 𝕨 ≡⎉¯k 𝕩
2023-04-29 20:01:48 +03:00
dzaima
df613ad674
w⊸F⎉g x → w F⎉∞‿g x & F⟜x⎉g w → w F⎉g‿∞ x
2023-04-29 17:39:13 +03:00
dzaima
35786d4f5b
m_hVec\d → m_hvec\d
2023-04-29 17:39:13 +03:00
dzaima
e200bbc5f9
move ↕list to its own function
2023-04-29 17:39:13 +03:00
dzaima
bb7c37960e
a round of more incG/incByG
2023-04-29 17:39:13 +03:00
dzaima
3b580cbd0c
rename unit creation methods
2023-04-29 17:39:13 +03:00
dzaima
865257fdb6
more header file cleanup
2023-04-29 17:39:13 +03:00
dzaima
aa5ed7cc7a
BB2B & BBB2B → FC1 & FC2
2023-04-29 15:31:31 +03:00
dzaima
ca13fb567a
header file cleanup
2023-04-29 13:54:32 +03:00
dzaima
ba1b853936
don't use the cell appender for Arith⌜
2023-04-29 13:13:58 +03:00
dzaima
62e2ea96ce
zsh needs to be kept alive even for zk==1
2023-04-28 21:04:30 +03:00
dzaima
7f0390be3f
more error messages
2023-04-28 20:49:34 +03:00
dzaima
7dd677a4e2
various fill improvements
2023-04-28 20:31:44 +03:00
dzaima
7a501ffbdf
use APD for ∾list
2023-04-28 20:17:44 +03:00
dzaima
5aa896ab38
use APD for Arith⌜
2023-04-28 19:30:54 +03:00
dzaima
b17d2010c2
better error messages
2023-04-28 19:25:42 +03:00
dzaima
38b2028374
use APD for ˘/⎉
2023-04-28 19:25:42 +03:00
dzaima
d43ffd6b62
remove no longer needed E_SLICES
2023-04-25 22:13:41 +03:00
dzaima
037d36ddab
rework for_cells_AA
2023-04-25 22:13:13 +03:00
dzaima
23737cc458
proper error messages for ⎉ vs ˘
2023-04-24 19:43:04 +03:00
dzaima
77154be2a8
testing setup for ˘ & ⎉
...
incl. toggleable fill testing for !CATCH_ERRORS
2023-04-24 19:43:04 +03:00
dzaima
6d33018788
merge dyadic ˘ & ⎉
2023-04-24 19:43:04 +03:00
dzaima
e11d5dd31d
•internal.HasFill
2023-04-24 19:43:04 +03:00
dzaima
2259e7b6a9
fix ↕1‿0‿1e9‿1e9‿1e9 incorrectly erroring
2023-04-23 22:17:32 +03:00
dzaima
9d9c3fe8ac
return signal code+128 in exit code on signaling •SH invocation
2023-04-23 22:17:32 +03:00
dzaima
c50674d63a
always overallocate by 4 bytes in 32-bit output case for /bitarr
2023-04-23 15:11:58 +03:00
dzaima
10edc75f09
use c1fn for monadic ˘/⎉
2023-04-22 22:33:32 +03:00
dzaima
6d5cee1cdc
extract one-call case to noinline function
2023-04-22 22:33:32 +03:00
dzaima
5395d1eb08
cleanup
2023-04-22 19:10:58 +03:00
dzaima
36b99d3505
handle more cases of ⊏⎉n & ⊑⎉n
2023-04-22 18:44:21 +03:00
dzaima
fe071b641f
handle more cases of ⍉⎉n & «⎉n & »⎉n
2023-04-22 18:44:21 +03:00
dzaima
1c041fd968
move emptiness checks to where needed
2023-04-22 18:34:29 +03:00
dzaima
e4d38f571d
move k==0 case out of for_cells_c1
2023-04-22 18:34:25 +03:00
dzaima
edf1f2df7e
merge_fill_result changes
...
incl. fixing when rr==k
2023-04-22 18:34:18 +03:00
dzaima
78764ec47c
move SLICE source refcount incrementing outside of loop
2023-04-22 18:33:39 +03:00
dzaima
b10a87fe00
merge ˘ & ⎉
2023-04-22 18:31:29 +03:00
dzaima
1ffc141919
move toCells & toKCells to cells.c
2023-04-22 18:31:24 +03:00
dzaima
1de59d6ee8
reorder functions
2023-04-22 17:20:05 +03:00
dzaima
663fe29a89
move monadic ⎉ to slice macros
2023-04-22 17:20:05 +03:00
dzaima
078ee7af97
use c2fn in insert_base
2023-04-22 17:20:05 +03:00
dzaima
d2ac5db1c8
move ⎉ & ˘ to their own file
2023-04-22 17:20:05 +03:00
dzaima
e0479adee4
fix rank overflow check in 𝕨⥊𝕩
2023-04-22 11:53:54 +03:00
Marshall Lochbaum
b6590b0eab
Move Insert implementation to fold.c, except the generic case
2023-04-21 22:00:08 +03:00
dzaima
6d7b679234
fast path for comparing equal-pointer typed arrays
2023-04-21 17:57:58 +03:00
dzaima
58ac287ef6
handle array-atom comparison separately from array-array
2023-04-21 17:55:38 +03:00
dzaima
c3347d6815
move f32 to h.h, add reinterpreting helper methods
2023-04-21 16:32:35 +03:00
dzaima
d127059de8
more gcc complaints
2023-04-21 13:48:24 +03:00
dzaima
01d64e4112
gcc complains about this now for whatever reason
2023-04-19 22:48:24 +03:00
dzaima
e45bd78f25
fix comparison of empty high-rank arrays
2023-04-19 22:42:28 +03:00
dzaima
d13f3fad94
fix ∧𝕩 & ∨𝕩 on high-rank zero-cell input
2023-04-19 21:52:38 +03:00
dzaima
c57e0ba135
more fixes for overflow checking
2023-04-17 13:07:50 +03:00
dzaima
c2754e0fff
don't OOM in 𝕨↑𝕩 with 0≡×´𝕨 if product of prefix overflows
2023-04-17 12:53:02 +03:00
dzaima
a2d27c69be
make √, ⋆, •math.Atan2 behave as if ¯0 was 0
2023-04-14 21:22:18 +03:00
dzaima
51e34c55d3
make division not care about sign of 𝕩
2023-04-14 20:24:36 +03:00
dzaima
55da9e99d6
reorganize equality checks more
2023-04-14 20:06:36 +03:00
dzaima
f001841d17
move comparison functions to separate file
2023-04-14 18:11:49 +03:00
dzaima
ee47921b43
normalize ¯0
2023-04-14 16:28:27 +03:00
dzaima
2fd390ebf8
better fix for character 𝕨∊𝕩 & 𝕨⊐𝕩
2023-04-14 15:42:58 +03:00
dzaima
1c8916949e
fix ⊏ with odd shape 𝕩 & depth 2 𝕨
2023-04-14 00:14:57 +03:00
dzaima
68c3ba3aa0
fix leak in dyadic Insert with an empty argument
2023-04-14 00:05:39 +03:00
dzaima
4d3db9ca0b
fix ∊ & ⊐ being broken on one c8 & one c16 argument
2023-04-14 00:05:23 +03:00
dzaima
44ce033e73
fix leak in dyadic scan with an empty argument
2023-04-14 00:05:23 +03:00
dzaima
102a696164
fix ⟨2⟩↕a
2023-04-13 22:22:50 +03:00
dzaima
9951f20751
clean up some error messages
2023-04-08 22:12:15 +03:00
dzaima
52dc05f228
SIMD +`
2023-04-08 20:04:23 +03:00
dzaima
c3fe3c5b42
more Singeli utilities, more Scan fixing
2023-04-07 21:09:46 +03:00
dzaima
3a7bce3aab
a bunch of Scan fixes & improvements
2023-04-07 20:41:34 +03:00
dzaima
897c46df76
aarch64 fold.singeli
2023-04-06 20:17:09 +03:00
dzaima
b3f3190028
SSE2 fold.singeli
2023-04-06 19:49:14 +03:00
Marshall Lochbaum
9d7d330a03
Use AVX2 counting for 1-byte counting sort
2023-04-06 11:32:34 -04:00
Marshall Lochbaum
0e5b98c491
Return max from AVX2 counting function
2023-04-06 11:32:34 -04:00
Marshall Lochbaum
b655dd4771
AVX2 counting function for small-range 1-byte /⁼
2023-04-06 11:32:04 -04:00
dzaima
a0cdcdc898
fix self-search radix-based cases with 64-bit usz
2023-04-06 17:51:58 +03:00
dzaima
876914d053
Singeli single-element search
2023-04-06 14:56:49 +03:00
dzaima
a7e2d9ea17
extract single-element search to its own function
2023-04-06 13:38:33 +03:00
dzaima
0aca470931
more explicit inline requiring
2023-04-06 13:12:11 +03:00
dzaima
5a2b755191
move non-AVX2 x86-64 into SINGELI_SIMD
2023-04-02 15:55:49 +03:00
dzaima
00a5ddcb89
SSE2 squeeze
2023-04-02 15:04:00 +03:00
dzaima
96ee73f644
enable Singeli monadic arith & comparisons on SSE2
2023-04-01 20:40:29 +03:00
dzaima
3a45eac1aa
separate SSE2, implement SSE2 dyarith & bitsel
...
also separate maskstore to homogeneous & top bit mask variants, and make blend require equal element widths
2023-04-01 20:40:23 +03:00
dzaima
13eebb1759
move all singeli builds to build.bqn, add has=
...
also:
include commit-based version by default for build/build
expand things included in --version
don't require Singeli for BMI2 usage in bitarr/bitarr
2023-03-31 19:15:23 +03:00
dzaima
dc2ac37e0a
arch-independent Singeli builds
2023-03-31 16:45:29 +03:00
dzaima
0180a54207
quiet gcc warning
2023-03-31 16:34:08 +03:00
dzaima
c513724fd4
hide clangd warning
...
and remove whitespace which was previously used for alignment
2023-03-31 14:27:43 +03:00
dzaima
baa1281efe
don't assume select returns refcount 1 array
...
that probably would be a safe assumption right now, but who knows about the future; cpyWithShape should return back its argument directly if it already has refcount 1 anyway
2023-03-31 14:14:13 +03:00
dzaima
413b49de30
don't assume sizeof(ur)==1
2023-03-31 13:44:32 +03:00
Marshall Lochbaum
69e2f6c690
Convert ⍉˘ with atom or no left argument to dyadic ⍉
2023-03-30 21:25:21 -04:00
Marshall Lochbaum
9fe6a2e7b2
Under for invertible Reorder Axes
2023-03-30 19:07:09 -04:00
Marshall Lochbaum
d53f3dbd72
Native dyadic ⍉⁼
2023-03-30 19:02:45 -04:00
Marshall Lochbaum
89016fc88d
Update Reorder Axes implementation comments
2023-03-29 20:23:16 -04:00
Marshall Lochbaum
597e25af4d
Full simplification pass for Reorder Axes
2023-03-29 20:08:36 -04:00
Marshall Lochbaum
d492cd0865
And strided height, so all orders are fast if axes are long
2023-03-29 12:37:15 -04:00
Marshall Lochbaum
e923a71881
Use strided width in transpose-based Reorder Axes
2023-03-29 12:37:15 -04:00
Marshall Lochbaum
814a677676
Make transpose movement functions strided
2023-03-29 12:37:15 -04:00
Marshall Lochbaum
de18fb996b
Save a shape object in Reorder Axes
2023-03-29 12:37:15 -04:00
Marshall Lochbaum
7fea4ca2ad
Combine transp_c2 temp allocations into one TALLOC
2023-03-29 12:37:15 -04:00
Marshall Lochbaum
5b17ee44d6
SIMD kernel for Reorder Axes transposing last two axes
2023-03-29 12:37:15 -04:00
Marshall Lochbaum
8413461074
Fast bottom-level loop for Reorder Axes loop structure
2023-03-29 12:37:15 -04:00
Marshall Lochbaum
bbedbbc585
Transpose large cells with mut_copyG
2023-03-29 12:37:15 -04:00
Marshall Lochbaum
b829076271
Put CPU-size transpose functions in a table
2023-03-29 12:37:15 -04:00
Marshall Lochbaum
410d51501d
Check for AVX2 in Singeli transpose so it can build on non-x86 architectures
2023-03-29 12:37:15 -04:00
Marshall Lochbaum
ebbddf9dcf
Move height/width 2 transposes to Singeli
2023-03-28 16:11:46 -04:00
Marshall Lochbaum
37f481ea0d
Separate out transpose data movement function and share with monadic ⍉⁼
2023-03-28 16:11:46 -04:00
Marshall Lochbaum
3c32844fe0
Separate out transpose_move function and use for el_B
2023-03-28 16:11:46 -04:00
Marshall Lochbaum
968bfd2fc6
Separate transpose el_B case and fix dropped fill for shape 2‿n
2023-03-28 16:11:46 -04:00
Marshall Lochbaum
dea063cb7b
Easy optimizations: (1-˜=𝕩)⍉𝕩 to ⍉𝕩 and detect trailing unchanged axes
2023-03-28 16:11:46 -04:00
Marshall Lochbaum
b555e3c035
Reorder Axes translated from runtime version
2023-03-28 16:11:46 -04:00
Marshall Lochbaum
432b4eaaa6
Transpose implementation comments
2023-03-28 16:11:46 -04:00
dzaima
1f2456042c
clean up calls.h includes
2023-03-26 15:54:27 +03:00
dzaima
1f70c08aa2
fillarr NOGC
2023-03-26 15:43:59 +03:00
Marshall Lochbaum
7d800bf349
SIMD transpose on 1-byte elements
2023-03-22 15:14:08 -04:00
Marshall Lochbaum
5fccf4cda3
Refactoring; check for small transpose width/height in Singeli, not C
2023-03-22 15:14:08 -04:00
Marshall Lochbaum
ff6361e363
Move tranpose to its own file
2023-03-22 15:14:08 -04:00
Marshall Lochbaum
0e2e315e51
Allow an 8x8 row for 2-byte transpose
2023-03-22 15:14:08 -04:00
Marshall Lochbaum
239c765998
SIMD transpose on 2-byte elements
2023-03-22 15:14:08 -04:00
Marshall Lochbaum
c0aaa6f615
SIMD transpose on 8-byte elements
2023-03-22 15:14:08 -04:00
dzaima
1ec37410c6
faster constint|intarr
2023-03-21 02:45:42 +02:00
dzaima
d333902f74
fast integer 𝕨|𝕩
2023-03-21 02:06:45 +02:00
dzaima
e14a3629f6
don't try lowercasing ×
2023-03-20 18:18:16 +02:00
dzaima
ca0c100b73
name normalization for •ns.Get & •ns.Has
...
also fix •ns.Has error message & rename some function declarations
2023-03-19 23:27:05 +02:00
dzaima
4a6877a87a
Rank checks
2023-03-19 15:42:11 +02:00
dzaima
a3d74c6af2
MUT_APPEND
2023-03-16 22:27:44 +02:00
dzaima
390ee503fb
extract function for a+↕b
2023-03-16 22:05:44 +02:00
dzaima
8194f51b30
MAKE_MUT_INIT, move mut_init to mut.c
2023-03-11 16:52:09 +02:00
dzaima
01c457b77b
make all cpy.*Arr function results Arr*
2023-03-11 16:51:13 +02:00
dzaima
ab5b8f92b4
fast F˜˝˘ and F˜˝ and F˜⌜ for pervasive F
2023-03-05 16:48:10 +02:00
dzaima
680d0f8601
use mut_copy for building fold_rows result
2023-03-05 15:20:12 +02:00
dzaima
1c0b797456
Merge pull request #69 from mlochbaum/transfold
...
Blocked transpose implementation for fold-cells
2023-03-05 15:10:26 +02:00
dzaima
98c963453b
•internal.GC
2023-03-05 14:16:38 +02:00
dzaima
c5aedaa414
switch to GCv2, various fixes/cleanup
...
includes:
fixing some refcounts for FOR_BUILD build •FFI
moving DEBUG_VM prints to stderr
fixing heapverify reports of loose shape objects of fillarrs
regular ol' adding-of-semicolon-after-label for old gcc
move GC enable to after all initialization, not load_init
2023-03-05 01:23:53 +02:00
Marshall Lochbaum
f4d2e26e58
Don't do transposing fold unless height is greater than width
2023-03-04 14:42:00 -05:00
Marshall Lochbaum
176152b445
Handle fold-cells on row length 1 with ⊏˘
2023-03-04 14:28:22 -05:00
Marshall Lochbaum
4b35acb82b
Transpose-based fold-cells implementation
2023-03-04 14:24:56 -05:00
dzaima
717074a2f8
fast transpose on shape n‿2 𝕩
2023-03-03 19:13:15 +02:00
dzaima
76d26db4c2
faster F˘´n‿2⥊𝕩 for pervasive F
2023-03-03 17:45:16 +02:00
dzaima
093beda394
faster path for 𝕨/𝕩 with non-boolean 𝕨 with sum 0
2023-03-03 13:41:20 +02:00
dzaima
6d03071ae6
SIMD i32 transpose
2023-02-26 01:19:54 +02:00
dzaima
deee2c7a18
use C1 & C2 more
2023-02-24 15:53:11 +02:00
dzaima
1af9155425
optional path arg for •internal.HeapDump; STORE_JIT_MAP
2023-02-24 00:16:44 +02:00
dzaima
b506b434a2
add Singeli directory to build cache key, add rebuild-singeli, quiet gcc
2023-02-23 23:36:41 +02:00
dzaima
8ad5132a6d
find & eqfn changes, use toI32Any more
2023-02-22 13:48:45 +02:00
Marshall Lochbaum
032e32ae1a
Fast flat ≡˘ and ≢˘ in most cases
2023-02-20 10:43:24 -05:00
Marshall Lochbaum
89e6be10e5
Add eqFns to calls.h and use for Find
2023-02-20 10:07:44 -05:00
Marshall Lochbaum
fcc5c2e449
Slice function instead of take/drop
2023-02-19 21:14:42 -05:00
Marshall Lochbaum
ea6c7d9a7a
Use a C comparison function instead of a BQN one
2023-02-19 21:08:21 -05:00
Marshall Lochbaum
d2950a8df6
Flat rank 1 Find implementation using primitive calls
2023-02-19 20:34:32 -05:00
dzaima
70fec7eb1e
fix •ns.Keys on namespaces with unexported fields
2023-02-19 18:30:57 +02:00
dzaima
7013a9edf9
•ns.Get, •ns.Has, •ns.Keys
2023-02-19 18:02:35 +02:00
dzaima
428064a5c2
skip lookup table zero-initialization for x⊐x
2023-02-18 23:57:02 +02:00
dzaima
bb36755d67
native 𝕨/highrank
2023-02-18 21:04:22 +02:00
dzaima
96316f0fe1
faster 2↕
2023-02-18 19:47:22 +02:00
dzaima
7b57b4ae39
explicitly mark code sections where allocations aren't allowed to happen
2023-02-18 17:46:55 +02:00
dzaima
c32285dba9
Singeli copy from unaligned bitarr
2023-02-18 11:52:45 +02:00
dzaima
f76836aedd
clean up arithd.c & slightly improve non-Singeli impls
2023-02-17 16:43:07 +02:00
dzaima
32142a45d6
Widen cells in 𝕨∊𝕩, 𝕨⊐𝕩, 𝕨⊒𝕩
2023-02-17 00:27:15 +02:00
dzaima
f700a3e150
pad input cells when needed for for ∊𝕩, ⊐𝕩, ⊒𝕩
2023-02-13 00:19:50 +02:00
dzaima
855541954f
initial bit widen&narrow for ⊏
2023-02-10 17:59:22 +02:00
dzaima
23d99d7a24
more precise detection of when bit 𝕩 won't use simd for widening path
2023-02-04 18:17:21 +02:00
dzaima
f39ca95c58
maybe slightly better bit→i8→bit heuristic
...
the more proper thing is to pad cells to the nearest power-of-two byte size anyway
2023-02-04 17:16:01 +02:00
dzaima
be9d0c287e
better 𝕨⊏𝕩 with non-power-of-two cell sizes
2023-02-04 03:30:05 +02:00
dzaima
d2679da7e8
⊏: don't get in an infinite loop of f64 𝕨
2023-02-04 03:04:06 +02:00
dzaima
98f6944440
unify rank 1 and high-rank ⊏
2023-02-03 18:55:19 +02:00
dzaima
a84ca6c5d6
strict prototypes
2023-02-03 15:33:31 +02:00
dzaima
05c1270344
better 𝕨⊏𝕩 with 0=×´≢𝕨
2023-02-02 00:40:52 +02:00
dzaima
c38565ab8d
whitespace cleanup
2023-01-31 00:07:00 +02:00
dzaima
a650051a82
don't need an actual function object for eachd_fn / eachm_fn
2023-01-28 14:57:04 +02:00
dzaima
4a45a07a2b
native ⚇0
2023-01-27 22:59:22 +02:00
dzaima
10705823de
more squeezing changes in ⊐𝕩 and ⊒𝕩
2023-01-27 03:17:20 +02:00
dzaima
ea0aa709fe
squeeze result of ⊒𝕩, copy result of ⊐𝕩 to smaller width when possible
2023-01-27 02:57:05 +02:00
dzaima
ae4c4a03ee
copy ⊐ and ⊒ results to more correct element width arrays
2023-01-27 02:09:43 +02:00
dzaima
cc5a5752bf
add •CompObj to NATIVE_COMPILER
2023-01-26 01:53:09 +02:00
dzaima
9abe7506ab
native minimal compiler
2023-01-26 01:30:10 +02:00
dzaima
e231d36471
clean up gcc warnings
2023-01-25 17:16:24 +02:00
dzaima
c33cd81e06
use native ⁼ in ⍟(-n)
2023-01-25 15:30:54 +02:00
dzaima
31bd75630c
make f=-DNO_RT functional
2023-01-25 15:05:23 +02:00
dzaima
6baa96c1e3
NEON squeeze
2023-01-25 02:22:53 +02:00
dzaima
88410c02e5
prep for NEON squeeze
2023-01-24 22:21:38 +02:00
dzaima
7768d6475f
various OOM fixes
2023-01-23 23:49:27 +02:00
dzaima
b0dbd5c37b
fix gcc build
2023-01-23 21:57:47 +02:00
dzaima
721dd8889b
monadic arith
2023-01-23 01:22:40 +02:00
dzaima
b1cace31ac
don't make a slice on n⊏list
2023-01-22 19:31:11 +02:00
dzaima
afe6707654
dyarith NEON support
2023-01-22 03:27:41 +02:00
dzaima
d84c04bc63
use incBy more
2023-01-21 00:09:47 +02:00
dzaima
e4578a345e
fix 0‿1⊐"ab"‿"cd" & 0‿1∊˜"ab"‿"cd"
2023-01-19 16:04:44 +02:00
dzaima
b43184d629
fix 1‿2 +⎉0 1
2023-01-19 03:57:13 +02:00
dzaima
5b8ac969db
don't unroll on i8arr ↕n
2023-01-18 15:41:53 +02:00
dzaima
4945a90ff0
valgrind changes
2023-01-18 02:05:24 +02:00
dzaima
40383906ec
no, neither w nor h are 1, clang
2023-01-17 05:17:37 +02:00
dzaima
472e542ebd
O(1) ⍉𝕩 when it doesn't reorder elements
2023-01-17 04:52:08 +02:00
dzaima
f9eb7f083c
unshare shape
2023-01-17 04:38:55 +02:00
dzaima
21372a743a
allow unsharing slices
2023-01-17 04:32:30 +02:00
dzaima
540b37ae6a
shape replacement utility
2023-01-17 03:47:14 +02:00
dzaima
dd82073c60
slightly faster ⍟list handling
2023-01-16 18:58:48 +02:00
dzaima
39605c1a98
add intrinsic file include for _mm_crc32_u32
2023-01-14 00:38:32 +02:00
dzaima
6c88499920
consistently check only for whether __BMI2__ is defined
2023-01-14 00:33:34 +02:00
dzaima
5b35c0a664
keep pext usage for bitarr/bitarr
2023-01-13 23:46:48 +02:00
dzaima
41212ab852
SLOW_PDEP option
2023-01-13 23:23:06 +02:00
dzaima
46f657713c
don't rely on bqn_fmt when !FORMATTER or CBQN isn't yet initialized
2023-01-09 02:30:29 +02:00
dzaima
86ae984af0
more print function renaming
2023-01-09 02:17:12 +02:00
dzaima
a9c70d9d72
printing method overhaul
2023-01-09 01:42:44 +02:00
dzaima
38ec07c34b
use getline on Windows for the REPL
2023-01-06 18:02:02 +02:00
actalley
815de4fd97
Address build errors on llvm-mingw to build bqn.exe with no SH, FFI, or repl support
2023-01-05 21:38:30 -06:00
dzaima
7d4677a8ff
use COPY_TO instead of a loop in fbytes_c1
...
& ryu comment changes
2022-12-31 20:49:50 +02:00
dzaima
8da9c4e3a5
don't fail on •SH under VERIFY_TAIL
2022-12-31 20:31:13 +02:00
dzaima
7b3beec621
•ParseFloat
2022-12-31 20:22:22 +02:00
dzaima
fd38a5b241
use Ryu for number formatting
2022-12-31 03:19:06 +02:00
dzaima
854acd580d
respect !PROPER_FILLS in high-rank ↑
2022-12-30 16:16:36 +02:00
dzaima
7ff74d38e8
squeeze el_bit transpose result
2022-12-30 01:12:24 +02:00
dzaima
faf89abef0
fix ⊏˘ generic case
2022-12-30 00:21:07 +02:00
dzaima
5a9e5e8e50
native baseline high-rank 𝕨⊒𝕩
2022-12-30 00:10:03 +02:00
dzaima
ec169b1006
remove no longer necessary runtime loads
2022-12-29 23:59:44 +02:00
dzaima
83863a64fd
fix gcc build
2022-12-29 23:46:24 +02:00
dzaima
b903a5d9ce
fast num⊑˘simpleArr
2022-12-29 23:37:00 +02:00
dzaima
0589d63cc5
fast v˙˘arr, fix arr˘arr
2022-12-29 23:36:37 +02:00
dzaima
1e3117d65f
fast ⥊˘𝕩
2022-12-29 22:25:22 +02:00
dzaima
3408db320c
fast num↑˘𝕩 & num↓˘𝕩 for 2≤=𝕩
2022-12-29 22:20:29 +02:00
dzaima
f6f0c12935
fast ⊑˘simpleArr
2022-12-29 22:07:38 +02:00
dzaima
a0feda9d8b
fast arr˘ x
2022-12-29 22:04:06 +02:00
dzaima
47e95171f0
faster »˘ & «˘ on matrices, fix 0⊏˘↕3
2022-12-29 21:47:52 +02:00
dzaima
897ad8f649
clang really wants to special-case csz==1, but that's checked for before
2022-12-29 21:47:52 +02:00
dzaima
3f0c34e895
fast ≍˘𝕩
2022-12-29 21:47:52 +02:00
dzaima
4e88dc1004
faster ⊏˘
2022-12-29 20:32:17 +02:00
dzaima
41efcfb632
fast ∾˝ & 𝕨ScalarFn˝𝕩
2022-12-29 18:46:14 +02:00
dzaima
8a132467d2
improve EACH_FILLS cases in ¨ & ⌜
2022-12-28 22:38:14 +02:00
dzaima
6a9e03bdb1
use arr_shSetU/arr_shSetI inline
...
and use incG more in rank_c2
2022-12-28 17:31:02 +02:00
dzaima
a34bb0a433
don't unroll libc math loops
2022-12-28 16:51:17 +02:00
dzaima
c5a3c57f50
check for path being present for •path/•name/•state
2022-12-28 01:13:58 +02:00
dzaima
33580b91ca
don't error on unknown fill when not overtaking
2022-12-27 23:44:34 +02:00
dzaima
f424c720a7
full native 𝕨⌽𝕩 & 𝕨⌽⁼𝕩
2022-12-27 03:39:48 +02:00
dzaima
75fe558f1c
detect writes past the end of a TALLOC allocation
2022-12-27 02:29:24 +02:00
dzaima
1afdd89075
allow defining custom dyadic inverses of builtins
2022-12-26 23:57:55 +02:00
dzaima
013897cc16
add runtime calls to WARN_SLOW
2022-12-26 23:15:56 +02:00
dzaima
c818bf54b1
remove need of libffi from make forbuild
2022-12-26 19:38:24 +02:00
dzaima
48c2425e8b
check result size being too large in ↑
2022-12-26 18:16:11 +02:00
dzaima
7bcee07489
initialize shape properly in one case of high-rank take/drop
...
fixes 0‿4↑↕4 in debug builds, which just magically approximately worked before
2022-12-26 16:09:30 +02:00
dzaima
326d54e130
native list↑𝕩 & list↓𝕩
2022-12-25 13:38:43 +02:00
dzaima
8fad76762a
reorder take_c2
2022-12-24 17:53:16 +02:00
dzaima
e2b45e33e1
simplify splitCells
2022-12-24 17:29:48 +02:00
dzaima
424448aa40
remove rt_memberOf & rt_indexOf
2022-12-24 17:12:35 +02:00
dzaima
95b1beb9db
native high-rank ∊ & ⊐
2022-12-24 17:08:27 +02:00
dzaima
3f40955d83
reorder indexOf_c2
2022-12-24 17:05:50 +02:00
dzaima
e3b5af8a44
fix 𝕨∊p & p⊐𝕩 with an empty high-rank p
2022-12-24 17:03:58 +02:00
dzaima
bb7fe02a45
separate checks for x86-64 & NEON Singeli importing
...
& restrict the processed Singeli files on NEON to the ones supported
2022-12-24 15:27:53 +02:00
dzaima
efcc6a28be
add •file.path to autocomplete options
2022-12-23 18:08:33 +02:00
dzaima
a6b22c75fd
fast list⊐unit for more list types
2022-12-20 18:32:51 +02:00
dzaima
e69d8dc6e9
native ⌾(v⊸⌽)
2022-12-20 18:31:42 +02:00
dzaima
43be832a37
fix highrank∊list deshaping the result in some scenarios
2022-12-18 23:58:10 +02:00
dzaima
8188886538
fast 𝔽´⟨x⟩ & 𝔽´⟨x,y⟩
2022-12-18 23:49:09 +02:00
dzaima
aa4b92cb01
don't define •SH if not available
2022-12-18 23:40:55 +02:00
dzaima
29cecb0b6e
remove •PrimInd
2022-12-18 23:16:36 +02:00
dzaima
6380364e62
native highrank∊vector
2022-12-18 23:05:58 +02:00
dzaima
09b3279958
unified Singeli including mechanism
2022-12-18 01:54:07 +02:00
dzaima
2c73199ed4
use Singeli-generated function tables for comparison
2022-12-16 19:04:58 +02:00
dzaima
0ef8800530
native F⌾⊢𝕩 & F⌾⊣𝕩
2022-12-08 13:26:04 +02:00
dzaima
af978bbc91
cave in and initialize variables in gcc
2022-12-03 23:58:33 +02:00
dzaima
6ca5050f4d
reduce gcc warnings
2022-12-03 23:56:03 +02:00
dzaima
63e5e843ba
fix f64arr/𝕩
...
`slow:` uses `s`, but the goto went to it before `s` was initialized
2022-12-03 23:18:43 +02:00
dzaima
7c6676a492
copy over custom _mm_loadu_si32 for old gcc
2022-12-01 13:37:01 +02:00
Marshall Lochbaum
4077596b89
Sparse initialization for ⌾(i⊸⊏) byte table
2022-11-30 16:32:06 -05:00
Marshall Lochbaum
d7a06befb5
Select implementation comments
2022-11-30 16:32:06 -05:00
Marshall Lochbaum
534c92f38a
Select from <=128 booleans with shuffles
2022-11-29 22:14:57 -05:00
Marshall Lochbaum
c17448ed71
Faster bit selection
2022-11-29 11:29:25 -05:00
Marshall Lochbaum
7cb8cf5772
Enable selection with AVX2 gather for i8 to i32 indices and 1- to 8-byte values
2022-11-27 09:18:21 -05:00
dzaima
dbc7c83f70
move usum to fold.c
...
but don't do anything useful with that because usum needs to also check for negative numbers
2022-11-27 15:45:33 +02:00
Marshall Lochbaum
d911eafd31
Inverses for •math.Fact and •math.LogFact
2022-11-26 14:20:52 -05:00
Marshall Lochbaum
a3df482acd
Use non-inlined recursion for •math functions
2022-11-26 14:14:37 -05:00
dzaima
d383fe57a7
clean up whitespace
2022-11-24 01:26:35 +02:00
Marshall Lochbaum
7715cbc158
Add •math.Sum with Singeli f64 implementation
2022-11-23 16:51:30 -05:00
Marshall Lochbaum
35aef1e5cd
•math.Erf, •math.ErfC, and •math.LogFact
2022-11-23 16:46:39 -05:00
Marshall Lochbaum
9a1268ea3a
Simplify •math.Comb implementation
2022-11-23 16:46:39 -05:00
Marshall Lochbaum
6eb21bd68c
Factorial and combinations functions
2022-11-23 16:46:39 -05:00
Marshall Lochbaum
f6109b3985
Handle no-op and boolean cases of monadic arithmetic quickly
2022-11-23 16:46:39 -05:00
Marshall Lochbaum
58cd6f0f4e
Other useful math: log2 log10 log1p expm1 hypot
2022-11-23 16:46:39 -05:00
Marshall Lochbaum
a0f6986832
Hyperbolic trig
2022-11-23 16:46:39 -05:00
Marshall Lochbaum
51840bc853
•math.GCD and •math.LCM for u64 arguments
2022-11-23 16:46:39 -05:00
dzaima
6f5c329e22
noinline float product
2022-11-22 14:24:43 +02:00
dzaima
e7cc8ec444
use o2fG instead of union field
2022-11-21 23:26:25 +02:00
Marshall Lochbaum
31106c730c
Fold implementation comments
2022-11-21 15:56:15 -05:00
Marshall Lochbaum
bda653e865
Shortcutting for boolean-valued integer ∨´
2022-11-21 15:51:03 -05:00
Marshall Lochbaum
f1ca8793e3
Boolean comparison folds, monadic only
2022-11-21 15:36:06 -05:00
Marshall Lochbaum
47392acc33
Implement ×´ for all numeric cases, using f64 product when i32 fails
2022-11-21 15:19:27 -05:00
Marshall Lochbaum
52608ba6ce
Singeli min/max-fold
2022-11-21 11:47:50 -05:00
Marshall Lochbaum
4b9a21c75f
Do tack-fold with selection
2022-11-21 08:07:38 -05:00
Marshall Lochbaum
38683119c0
Handle some f64 cases in dyadic fold
2022-11-20 22:03:36 -05:00
Marshall Lochbaum
c977065c20
Move +⌈⌊ folds to function tables, unifying monadic and dyadic cases
2022-11-20 21:51:30 -05:00
Marshall Lochbaum
ebfd002793
Blocked +´ and f64 ⌈´ ⌊´
2022-11-20 21:06:05 -05:00
Marshall Lochbaum
5bfdc26d00
Move fold to its own file
2022-11-20 20:06:35 -05:00
Marshall Lochbaum
b9a3a7886d
Ordering function implementation comments
2022-11-20 19:57:00 -05:00
dzaima
24195780df
reorder headers to allow OpenBSD hack to function
2022-11-20 18:22:51 +02:00
dzaima
6ff521b200
don't use IA/SH macros for assigning
2022-11-18 15:07:31 +02:00
dzaima
9018051ce3
add •math.Atan2 autocomplete
2022-11-17 19:18:33 +02:00
dzaima
bd6035cdef
more system namespace field completion, actually add •ToUTF8
2022-11-17 19:18:33 +02:00
dzaima
983452b409
system value completion
2022-11-17 19:18:33 +02:00
dzaima
94f8b189f7
REINIT_TAIL → FINISH_OVERALLOC
2022-11-17 18:56:46 +02:00
dzaima
55e8a43297
fix test/mut.bqn leaking references
2022-11-17 18:56:46 +02:00
dzaima
1ac5f0a49d
arr_shCopy that doesn't compare IA
2022-11-17 18:56:46 +02:00
dzaima
179e0a37dc
more tail verify work
2022-11-17 18:56:46 +02:00
dzaima
e5a9c7536d
array tail overwriting checker
2022-11-17 18:56:46 +02:00
dzaima
da1062c81c
remove unused #undef
2022-11-17 18:55:59 +02:00
dzaima
db89e7a4bb
fix function signatures & M1C2; use C1 & bit_negate more
2022-11-17 17:52:19 +02:00
Marshall Lochbaum
be9037cb62
Squeeze for ∨` instead of scalar checking for bool
2022-11-17 08:32:29 -05:00
Marshall Lochbaum
5985e92834
Initialized min/max-scan
2022-11-17 07:59:00 -05:00
Marshall Lochbaum
98d066c343
Use scan_max_num for sorted ⊒
2022-11-16 21:20:54 -05:00
Marshall Lochbaum
1924aee61c
f64 min/max scan
2022-11-16 21:14:32 -05:00
Marshall Lochbaum
136c1afacc
Macro-ize integer min/max scan and add sorted flag
2022-11-16 20:49:57 -05:00
Marshall Lochbaum
ac7ff155d4
Pull out scan_add_bool() utility function from scan_c1()
2022-11-16 20:16:33 -05:00
Marshall Lochbaum
d6029985e8
Move scan to its own file
2022-11-16 19:48:37 -05:00
Marshall Lochbaum
93ef4bb2a9
Direct ⍷bool implementation
2022-11-15 22:03:50 -05:00
Marshall Lochbaum
f1142b4184
Branchless ⊒bool, moderately faster
2022-11-15 18:27:54 -05:00
Marshall Lochbaum
d6b09adb57
Add primitive and primitive-1modifier call macros to calls.h
2022-11-15 16:08:34 -05:00
Marshall Lochbaum
4506caf3ac
Faster self-search on sorted 𝕩 using »⊸≠𝕩
2022-11-15 16:08:17 -05:00
Marshall Lochbaum
856eabd493
Self-search implementation comments
2022-11-14 21:08:44 -05:00
dzaima
a9737c22ea
extract bit array negation to function
2022-11-14 19:47:53 +02:00
dzaima
7e934b04db
better negation buffer handling
2022-11-14 19:02:44 +02:00
dzaima
63a2791361
add some NOUNROLLs
2022-11-14 18:00:00 +02:00
Marshall Lochbaum
85f54b2b25
Check for a small return type in large-range /⁼ with a sparse table
2022-11-13 18:00:10 -05:00
Marshall Lochbaum
cd16c8a1c7
Blocked 4-byte ⍋bool and ⍒bool with Singeli
2022-11-13 18:00:10 -05:00
Marshall Lochbaum
1647e98fd2
Use Singeli code for ⍋bool and ⍒bool with 1- and 2-byte result
2022-11-13 18:00:10 -05:00
Marshall Lochbaum
6bea10de21
Implementation comments and minor refactoring for /⁼
2022-11-13 18:00:10 -05:00
Marshall Lochbaum
7acd9d5688
Indices/Replicate implementation comments
2022-11-13 18:00:10 -05:00
dzaima
b244d7ecf5
disallow bitwise hashing for ¯0; prepare for mm_alloc taking u64 size
2022-11-12 23:45:39 +02:00
Marshall Lochbaum
7d56d61235
Hash table for Occurrence Count (⊒)
2022-11-12 15:47:59 -05:00
Marshall Lochbaum
1be4f4c2e7
Fix value movement when resizing Classify (⊐) hash
2022-11-12 15:47:59 -05:00
Marshall Lochbaum
62867f4533
Make brute-force Mark Firsts store result in a register (always <64 elements)
2022-11-12 15:47:59 -05:00
Marshall Lochbaum
8560ce0f4d
Move hash table initializers to functions to save some binary space
2022-11-12 15:47:59 -05:00
Marshall Lochbaum
9adfb13355
Extend Mark Firsts hash table to handle Classify
2022-11-12 15:47:59 -05:00
Marshall Lochbaum
37d7694c52
64-bit Mark Firsts (∊) hash table
2022-11-12 15:47:59 -05:00
Marshall Lochbaum
dc7389a660
Mark Firsts hash table resizing policy tweaks
2022-11-12 15:47:59 -05:00
Marshall Lochbaum
2e1b64e0ca
Resizable hash table for Mark Firsts (∊)
2022-11-12 15:47:59 -05:00
Marshall Lochbaum
8a551ab5ce
Add 32-bit hash table for Classify (⊒)
2022-11-12 15:47:59 -05:00
Marshall Lochbaum
d8e4e7d96f
Unify small-type and small-range tables for Classify (⊐)
2022-11-12 15:47:59 -05:00
dzaima
a7daeea6d9
fix (500⥊¯1‿5) ⊔ 500‿1‿3⥊3
2022-11-12 19:20:34 +02:00
Marshall Lochbaum
beb997ccb9
Avoid data movement for empty cells in Group 𝕩
2022-11-12 07:25:41 -05:00
dzaima
a1e12106ce
use FILL_TO for more compact edge-case handling
2022-11-12 13:45:52 +02:00
dzaima
1241da4d74
fix group of array with empty cells
2022-11-12 13:41:45 +02:00
dzaima
eb880d7135
set result fill fill immediately instead of delaying to before return
2022-11-12 13:30:35 +02:00
Marshall Lochbaum
d2cdae4962
Fast case for bool⊔𝕩 using compress
2022-11-10 21:22:29 -05:00
Marshall Lochbaum
a3da018055
Group code for 1-bit cells
2022-11-10 14:52:45 -05:00
Marshall Lochbaum
6eb504118e
Split out optimized Group cases and add comments
2022-11-10 14:52:45 -05:00
Marshall Lochbaum
801472d6d4
Implement bit_cpy versions of the Group methods that use memcpy
2022-11-10 14:52:45 -05:00
Marshall Lochbaum
e7c1918ba0
Native <` implementation using addition
2022-11-09 12:19:02 -05:00
dzaima
87d0fa5dc7
fix gcc 9 build
2022-11-08 16:59:17 +02:00
Marshall Lochbaum
812b97dc51
Mark boolean +` result sorted and squoze
2022-11-07 20:23:15 -05:00
Marshall Lochbaum
666a41ab12
1- and 2-byte Singeli boolean +`
2022-11-07 17:54:11 -05:00
Marshall Lochbaum
f1ff499244
Implement multiple result types for non-Singeli +`bool
2022-11-07 17:09:41 -05:00
Marshall Lochbaum
7b3c69f9da
Take sum first in boolean plus-scan; special code for sparse or boolean sum
2022-11-07 15:35:53 -05:00
dzaima
4f9af9965c
clangd compilation command generating utility
2022-11-06 18:34:47 +02:00
dzaima
f87a1155f5
store references instead of GC root functions to handle mutable roots
...
-0.21% binary size; mm_visit & mm_visitP got inlined in the gcFn-s, even though that's very pointless
2022-11-06 02:01:14 +02:00
dzaima
36111276c6
•math.Atan2
2022-11-05 20:36:54 +02:00
dzaima
25694db7ca
better non-Singeli comparison
2022-11-05 20:09:30 +02:00
dzaima
c9be8516c3
deduplicate generic sort work
2022-11-05 19:41:04 +02:00
dzaima
6e552fedf5
base case implementation for ⍋c8arr & ⍋c16arr
2022-11-05 19:00:59 +02:00
dzaima
ff0bfd34bb
squeeze Grade result
2022-11-05 18:48:54 +02:00
dzaima
471afb2a3f
handle 256|i8arr & similar
2022-11-03 17:28:21 +02:00
dzaima
3b56223618
allow 32768|intarr to squeeze to i16arr
2022-11-03 17:21:12 +02:00
dzaima
c1a77a24fb
fast (2⋆n)|ints
2022-11-03 15:35:41 +02:00
dzaima
96394c6f73
fix ⊔ making an invalid array on ("Af64"•internal.Variation⋈¯1)⊔⟨⟩
2022-11-03 01:26:38 +02:00
dzaima
cc406595c0
use direct comparison in ⊔
2022-11-03 00:32:44 +02:00
dzaima
70e7dcf38a
Merge remote-tracking branch 'mlochbaum/subset'
2022-11-02 23:19:03 +02:00
dzaima
4daabd708a
introduce calls.h, move vec_addN and vec_join to core header
...
and remove a bunch of apparently unnecessary mut.h imports
2022-11-02 23:17:52 +02:00
Marshall Lochbaum
600ee411f8
Use slash and comparison functions to filter •rand.Subset output faster
2022-11-01 20:25:13 -04:00
dzaima
bed2708537
move non-Singeli comparisons to function lookup
2022-10-27 19:27:15 +03:00
dzaima
8d6172126c
use void* instead of u8* for singeli function arguments
2022-10-25 17:27:08 +03:00
dzaima
5a7d702bc6
use incG more
2022-10-25 16:59:08 +03:00
Marshall Lochbaum
9862331696
Fix single-file build by defining GRADE_UD in selfsearch.c
2022-10-24 22:08:28 -04:00
Marshall Lochbaum
2844520109
Need to define GRADE_UD for radix.h from selfsearch.c without Singeli
2022-10-24 07:49:36 -04:00
Marshall Lochbaum
fa03cabc53
Index-of with small 𝕨 using (⊣×1+⊢)´ pattern
2022-10-23 22:08:08 -04:00
Marshall Lochbaum
d1e40a01df
Use saved counts and possibly dense table initialization for 1-byte radix lookup
2022-10-23 22:08:08 -04:00
Marshall Lochbaum
7cbd23c832
Skip radix moves if the top bytes are all the same
2022-10-23 22:08:08 -04:00
Marshall Lochbaum
b9d5f10d4a
Unify radix sort and radix lookup prefix sums
2022-10-23 22:08:08 -04:00
Marshall Lochbaum
2207d9f1bb
Combine monadic ∊ and ⊐ radix lookups with a macro
2022-10-23 22:08:08 -04:00
Marshall Lochbaum
552e4f6751
Fix refcount handling for bool⊐𝕩
2022-10-23 22:08:08 -04:00
Marshall Lochbaum
979c31fc3e
Table-based dyadic ⊒ for integers up to 2 bytes
2022-10-23 22:08:08 -04:00
Marshall Lochbaum
5df198602c
Adjust search table sparse initialization threshold for type it stores
2022-10-23 22:08:08 -04:00
Marshall Lochbaum
e318830365
Dyadic ⊒ implementation with a generic hash table
2022-10-23 22:08:08 -04:00
Marshall Lochbaum
f5555021f2
Index-of with boolean 𝕨, using two comparisons
2022-10-23 22:08:08 -04:00
Marshall Lochbaum
0f7bfa2575
Implement bit_find and fast self-search for booleans
2022-10-23 22:08:08 -04:00
Marshall Lochbaum
96740566e9
Extend lookup code to boolean searched-for array
2022-10-23 22:08:08 -04:00
Marshall Lochbaum
d9519eb6e1
Extend table-based membership to Index-of
2022-10-23 22:08:08 -04:00
Marshall Lochbaum
0cb5e4ee10
Table-based 1- and 2-byte integer membership
2022-10-23 22:08:08 -04:00
Marshall Lochbaum
447ce6163f
Introduce bit_has and use for ∧´, ∨´, and 𝕨∊bool
2022-10-23 22:08:08 -04:00
Marshall Lochbaum
236d8dedd6
Move search functions to search.c
2022-10-23 22:08:08 -04:00
dzaima
66584ce149
fix 0‿¯1⊏129⥊100
2022-10-21 18:17:12 +03:00
dzaima
f2b6b5d446
system value redefining with •ReBQN
2022-10-19 23:12:28 +03:00
dzaima
4d9a63f68b
fix •ReBQN
2022-10-19 20:56:30 +03:00
dzaima
336049560b
don't include •FFI if FFI is disabled
2022-10-19 19:31:21 +03:00
dzaima
ec62856b67
•listsys
2022-10-19 19:19:11 +03:00
dzaima
accd7384bd
delay •file initialization
2022-10-19 19:16:13 +03:00
dzaima
a72778ed6f
extract system value info to object
2022-10-19 19:15:21 +03:00
Marshall Lochbaum
130653dbda
Allow character arguments to •bit operations
2022-10-17 09:39:38 -04:00
Marshall Lochbaum
89c1b39c6d
Don't allow 0 as a width for •bit
2022-10-17 09:39:38 -04:00
Marshall Lochbaum
698c902564
Implement scalar extension for •_bit
2022-10-17 09:39:38 -04:00