dzaima
|
cd7807fba0
|
NEON constrep
|
2023-07-10 17:11:15 +03:00 |
|
dzaima
|
1cea42cad3
|
use getter over 𝕨 for generic 𝕨⍋𝕩
doesn't change perf, but leads to fast amortized long⍋short
|
2023-07-10 16:50:02 +03:00 |
|
dzaima
|
bf89d2d561
|
a little size reduction on write_indices
|
2023-07-10 16:29:21 +03:00 |
|
Marshall Lochbaum
|
f6d1f9fcab
|
Move utilities from bins to appropriate files
|
2023-07-10 07:14:44 -04:00 |
|
Marshall Lochbaum
|
492e97e2ca
|
Right argument narrowing for numeric Bins
|
2023-07-10 07:14:44 -04:00 |
|
Marshall Lochbaum
|
9511598aa3
|
Fast Bins when either argument is boolean
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
1fa00c9c6f
|
Update bins implementation comments
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
46c6d47055
|
Permutevar instead of shuffle for 4-byte vector binary search
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
fc57e0012d
|
Shuffle-based 4-byte vector binary search
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
af5ba0a2d2
|
Switch from Eytzinger to linear search on extra lanes
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
64ae8f9afd
|
Slightly better blend pattern for >16-byte bit table
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
c8d20fbf26
|
And 2-byte vector binary search on 4 lanes
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
fe92f91ca1
|
2-byte vector binary search on 2 lanes
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
d19df2693a
|
Merge 1-byte table code with normal bins_lookup
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
f36dc7adba
|
Use max-scan instead of plus-scan for 1-byte Bins table
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
8054597004
|
Handle up to 64 unique values in bit-table 1-byte Bins
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
b62bd02bc0
|
Precomputed midpoint bits in vector binary search
Clang already optimized to this but it's more explicit
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
7f5ba961c2
|
Use default bins_lookup if there's no AVX2
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
1080236433
|
2-byte vector binary searches
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
d665b90bbf
|
Slightly faster binary search pattern with a blend
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
a711eb72eb
|
Table-based 2-byte Bins, using max-scan
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
724f685a57
|
Cleanup
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
2c9e07f33d
|
1-byte Bins up to 32 unique eleemnts by unique lookup then index
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
81da9c586f
|
Table-based 1-byte Bins with >1-byte result
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
0346ff7c2d
|
Use type of ≠𝕨 for Singeli Bins result and allocate outside Singeli
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
e0621f99f8
|
Unroll vector binary searches for different search depths
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
38671e3fe9
|
Fast handling for length-1 𝕨 in Bins
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
ed9e8b4057
|
Table-based 1-byte Bins implementations, including AVX2
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
7161689196
|
Fix bin_search_vec over-writing
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
302d637129
|
Allocate binary search result in Singeli, using i8 for vectors
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
70249d8b64
|
In bins, promote to smallest common int type instead of i32
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
4f93b5849b
|
Fix shape of char⍋num result (was deshaped)
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
ec9b875503
|
Separate is-sorted check from Bins implementation
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
ff9919dde2
|
AVX2 binary search on one lane of i8 (unused for now)
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
5424c57b7e
|
Use Singeli float binary search
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
ee84f9fe1f
|
4-way branchless binary search unrolling
|
2023-07-10 07:13:21 -04:00 |
|
Marshall Lochbaum
|
464a53463d
|
Generic Singeli version of 32-bit binary search
|
2023-07-10 07:13:21 -04:00 |
|
dzaima
|
6b5815dcc2
|
fix shape of k/n‿1⥊1
|
2023-07-10 02:40:36 +03:00 |
|
dzaima
|
8975be082b
|
fix •ns.Get error message
|
2023-07-09 15:58:31 +03:00 |
|
dzaima
|
5c7934387a
|
update Singeli submodule, match{} → same{}
|
2023-06-29 15:19:57 +03:00 |
|
dzaima
|
a67a19dd0b
|
move pair{{a,b}} expanding to base.singeli
|
2023-06-29 01:31:58 +03:00 |
|
dzaima
|
4ee8dfbbda
|
update Singeli submodule, use destructuring parameters
|
2023-06-28 00:59:28 +03:00 |
|
dzaima
|
3ae9b14d64
|
separate arith inits, add comments on init order
|
2023-06-23 12:10:42 +03:00 |
|
dzaima
|
7618dce2f3
|
fix return value of overflowed dyadic arith
|
2023-06-23 12:10:42 +03:00 |
|
dzaima
|
5f43bf16b3
|
add direct typed array type test macro
|
2023-06-23 12:10:42 +03:00 |
|
dzaima
|
4dbe72ae03
|
properly indicate estimating Singeli instructions
|
2023-06-23 11:51:34 +03:00 |
|
dzaima
|
8f8380749b
|
generic Singeli builds
|
2023-06-16 11:12:15 +03:00 |
|
dzaima
|
5032c9a3ab
|
remove unnecessary 'over _ to'
|
2023-06-15 19:12:20 +03:00 |
|
dzaima
|
90e7537225
|
move maskedLoopPositive to @-based
|
2023-06-15 19:09:53 +03:00 |
|
dzaima
|
dee29a1a02
|
block → iter
|
2023-06-15 18:11:57 +03:00 |
|
dzaima
|
9da567cd57
|
switch to new Singeli block execution
|
2023-06-15 18:08:57 +03:00 |
|
dzaima
|
2da457dafa
|
fix el_half
|
2023-06-15 00:32:19 +03:00 |
|
dzaima
|
4260ef93b3
|
rename away underscores in __adds and __subs
plus add NEON addw, subw, and mulw (which is renamed from mul1)
|
2023-06-12 00:52:09 +03:00 |
|
dzaima
|
2a52dff482
|
@-forms of maskedLoop and muLoop
|
2023-06-12 00:52:09 +03:00 |
|
dzaima
|
fe8892ce6c
|
rearrange shrm/shlm args, slightly better NEON homMask{[16]u8}
|
2023-06-12 00:52:09 +03:00 |
|
dzaima
|
336f986986
|
change error messages in ◶
|
2023-06-12 00:52:09 +03:00 |
|
dzaima
|
8542ba071d
|
homMaskX, merging multi-arg homMask
|
2023-06-07 18:14:18 +03:00 |
|
dzaima
|
934a2b5ae3
|
rearrange things
|
2023-06-06 21:44:50 +03:00 |
|
dzaima
|
087bf06cac
|
fix type warnings
|
2023-06-01 20:12:51 +03:00 |
|
dzaima
|
efa1c4a4ff
|
__declspec(dllexport)
|
2023-06-01 19:04:34 +03:00 |
|
dzaima
|
78bef5fe32
|
consistent 𝕨⊏𝕩 error messages across argument types
|
2023-05-30 14:28:36 +03:00 |
|
dzaima
|
2eb12fef82
|
fix replxx under os=windows
|
2023-05-30 13:37:15 +03:00 |
|
dzaima
|
7e5b2e0557
|
don't unroll/vectorize extremely tiny loop
|
2023-05-30 12:52:17 +03:00 |
|
dzaima
|
5738712bbb
|
improve environ declaration
|
2023-05-30 12:52:00 +03:00 |
|
dzaima
|
c03dd349e4
|
disallow •ReBQN constructing namespaces, ignore RETD in interactive REPL
|
2023-05-27 16:37:42 +03:00 |
|
dzaima
|
da5280021c
|
rename compile → compileAll
|
2023-05-27 15:38:57 +03:00 |
|
dzaima
|
227dfa20c7
|
use isatty as a default for notui
|
2023-05-25 00:16:16 +03:00 |
|
dzaima
|
55e0409582
|
don't CTZ(0) in gcd
|
2023-05-24 15:13:25 +03:00 |
|
dzaima
|
c3681a0557
|
update type number comments
|
2023-05-22 14:17:53 +03:00 |
|
dzaima
|
3872f5a625
|
fix 𝕨∾𝕩 reuse logic
|
2023-05-22 11:40:37 +03:00 |
|
dzaima
|
20a946d085
|
dynamically switch fork functions
|
2023-05-22 00:32:44 +03:00 |
|
dzaima
|
b093ebbc66
|
finish PICK_IDX message
|
2023-05-22 00:18:59 +03:00 |
|
dzaima
|
f0744f16d0
|
fix erroring variable read
|
2023-05-22 00:11:21 +03:00 |
|
dzaima
|
e8caed529c
|
fix JIT SETUi/SETMi/SETCi missing unset variable checks
|
2023-05-22 00:08:20 +03:00 |
|
dzaima
|
de5bcfe211
|
static library
|
2023-05-21 23:47:40 +03:00 |
|
dzaima
|
fd72ea79c8
|
another gcc warning
|
2023-05-21 23:39:18 +03:00 |
|
dzaima
|
d15d8febbe
|
slightly less wrong superset fills for 𝕨∾𝕩
|
2023-05-20 14:28:37 +03:00 |
|
dzaima
|
d6609df820
|
reserve •CurrentError with namespace 𝕩
|
2023-05-20 14:28:37 +03:00 |
|
dzaima
|
1e22b48225
|
in-place ∾ for fillarrs & fillslices
|
2023-05-20 14:05:22 +03:00 |
|
dzaima
|
bc19e7372d
|
fix pointer check in eachm_fn
|
2023-05-20 14:05:22 +03:00 |
|
dzaima
|
e781ae21ee
|
give PUSH_COMP access to the updated source string
|
2023-05-20 13:22:24 +03:00 |
|
dzaima
|
7f46de18fc
|
add missed refcount decrements
|
2023-05-20 01:30:02 +03:00 |
|
dzaima
|
c9e7dc9976
|
remove a debug include
|
2023-05-20 00:01:35 +03:00 |
|
dzaima
|
ad49a9b26d
|
guarantee a space fill to compilation
|
2023-05-19 22:51:02 +03:00 |
|
dzaima
|
e8d286da3b
|
proper in-place updating in compile()
|
2023-05-19 22:51:02 +03:00 |
|
dzaima
|
ea70e06eac
|
fix >⟨2,<<3⟩
|
2023-05-19 22:51:02 +03:00 |
|
dzaima
|
df348896fd
|
add a NOGC_E for conflicting⌾(list⊸⊏) generic
|
2023-05-19 22:51:02 +03:00 |
|
dzaima
|
0156d13a5e
|
proper arrow in error messages of ⌾(n⊸↓) vs ⌾(n⊸↑)
|
2023-05-19 17:32:46 +03:00 |
|
dzaima
|
d930e7f975
|
add nogc message to thrF
|
2023-05-19 17:32:14 +03:00 |
|
dzaima
|
a03fab044d
|
•internal.Keep
|
2023-05-19 15:41:50 +03:00 |
|
dzaima
|
c1488cbf72
|
faster arr⌾(is⊸⊏)list
|
2023-05-19 14:15:25 +03:00 |
|
dzaima
|
f6703df0b2
|
range calculation functions
|
2023-05-19 14:01:32 +03:00 |
|
dzaima
|
8bfe2b6b5b
|
fix unrolled integer |𝕩 (not used currently)
|
2023-05-19 13:15:51 +03:00 |
|
dzaima
|
616fd48785
|
base.singeli additions
|
2023-05-19 13:15:51 +03:00 |
|
dzaima
|
1ec4415e49
|
clean up some under functions in sfns.c
|
2023-05-19 13:15:51 +03:00 |
|
dzaima
|
3977849bc5
|
fix "_m←¨⋄4 m´⟨⟩" and "4 10´⟨⟩"
|
2023-05-19 12:58:18 +03:00 |
|
Marshall Lochbaum
|
93e590fd9d
|
One case for dyadic constant-each
|
2023-05-18 15:40:52 -04:00 |
|
Marshall Lochbaum
|
ed5fac7cc9
|
Constant and tack cases for Table
|
2023-05-18 15:11:20 -04:00 |
|
Marshall Lochbaum
|
b5de844736
|
Constants and tacks with rank, except some dyadic cases
|
2023-05-18 14:52:13 -04:00 |
|
Marshall Lochbaum
|
7440e2a6bc
|
Constant and trivial cases for fold/insert
|
2023-05-18 12:11:49 -04:00 |
|
Marshall Lochbaum
|
9dfeb451f8
|
Handle empty cells in insert_base; fixes bugs in dyadic Insert
|
2023-05-18 11:53:53 -04:00 |
|
Marshall Lochbaum
|
a8cead1d3d
|
Fast cases for tacks, constant operands, and short arguments in scans
|
2023-05-18 10:54:56 -04:00 |
|
Marshall Lochbaum
|
1ff8954dd3
|
Fix leak in dyadic •_timed
|
2023-05-18 10:54:56 -04:00 |
|
Marshall Lochbaum
|
6ac8944b06
|
Remove redundant isAtm check in constant case of each_c1
|
2023-05-18 10:54:56 -04:00 |
|
dzaima
|
b46477450d
|
fix shape of argument passed to F in F⌾(is⊸⊑)
& skip computing the argument if not needed
|
2023-05-18 16:37:24 +03:00 |
|
dzaima
|
0572fcc5b2
|
native F⌾(list⊸⊑) & ⌾(listOfLists⊸⊑)
|
2023-05-18 01:54:01 +03:00 |
|
dzaima
|
d310669ae8
|
unify F⌾(n⊸⊑) and F⌾⊑
|
2023-05-18 00:27:38 +03:00 |
|
dzaima
|
3047ff48b5
|
Add rank checks to •FChars & •FLines & •FBytes & •Out
& clean up terminology
|
2023-05-17 21:56:40 +03:00 |
|
dzaima
|
e355395e7a
|
remove duplicated check
|
2023-05-17 20:53:26 +03:00 |
|
dzaima
|
4f15e1572d
|
disallow •Out ⋈0
|
2023-05-17 20:50:21 +03:00 |
|
dzaima
|
ec106c0b31
|
better heuristic for 𝕨∊𝕩 comparison-or path
|
2023-05-17 18:42:24 +03:00 |
|
dzaima
|
e4d222173d
|
a bunch of fixes for generic architecture & wasm
|
2023-05-16 00:07:48 +03:00 |
|
dzaima
|
65868a51ba
|
use the type of the correct argument in check
|
2023-05-13 02:19:10 +03:00 |
|
dzaima
|
f0a9714e8b
|
copy result in tbl_c2 if needed
|
2023-05-13 00:33:22 +03:00 |
|
dzaima
|
a9478f802f
|
tuning for arithmetic leading axis, F⌜, and reshape-based ⎉
|
2023-05-13 00:33:22 +03:00 |
|
dzaima
|
a3e8a1388d
|
move all targets to build.bqn with Singeli & REPLXX enabled by default
|
2023-05-12 20:51:25 +03:00 |
|
dzaima
|
2f51974c2f
|
use proper pointer conversion macros in ffi.c
|
2023-05-12 19:36:02 +03:00 |
|
dzaima
|
f229b3c486
|
fix rtperf
not that anyone uses it anymore
|
2023-05-12 16:34:23 +03:00 |
|
dzaima
|
a39264533e
|
custom _mm_loadu_si16/_mm_storeu_si16 for old gcc
|
2023-05-12 16:34:23 +03:00 |
|
dzaima
|
6dc24bd99b
|
free arguments of SIMD 𝕨∊𝕩 & ∊𝕩
|
2023-05-12 13:51:30 +03:00 |
|
Marshall Lochbaum
|
25883b410c
|
Retune boundary for small-𝕩 linear Member Of
|
2023-05-11 21:11:43 -04:00 |
|
Marshall Lochbaum
|
53fb8db06f
|
SSSE3 support in bit-table code
|
2023-05-11 21:05:24 -04:00 |
|
Marshall Lochbaum
|
464dd27a37
|
SIMD table intialization for Index-of
|
2023-05-11 21:05:24 -04:00 |
|
Marshall Lochbaum
|
844b537593
|
Singeli 1-byte table implementations for generic architecture
|
2023-05-11 21:05:23 -04:00 |
|
Marshall Lochbaum
|
6c81fb3149
|
Make AVX2 deduplicate branchless
|
2023-05-11 21:04:58 -04:00 |
|
Marshall Lochbaum
|
1700d84740
|
AVX2 1-byte Deduplicate implementation
|
2023-05-11 21:04:58 -04:00 |
|
Marshall Lochbaum
|
9658104f3e
|
Unify AVX2 bit-table code between Member-of and Mark Firsts
|
2023-05-11 21:04:58 -04:00 |
|
Marshall Lochbaum
|
ba43dae908
|
Heuristic filtering when AVX2 Mark Firsts sees multiple new values
|
2023-05-11 21:04:58 -04:00 |
|
Marshall Lochbaum
|
9c7c6aabc5
|
AVX2 Mark Firsts implementation
|
2023-05-11 21:04:56 -04:00 |
|
Marshall Lochbaum
|
2fafe11d7c
|
Fix fill_bittab tail masking for t=0 and simplify
|
2023-05-11 20:59:53 -04:00 |
|
Marshall Lochbaum
|
017e2433fb
|
Fast paths for all empty-argument search cases
|
2023-05-11 20:59:53 -04:00 |
|
Marshall Lochbaum
|
e45231154c
|
Reverse lookup initialization for 1-byte Member-of
|
2023-05-11 20:59:53 -04:00 |
|
Marshall Lochbaum
|
0232f91582
|
AVX2 bit table Member-of
|
2023-05-11 20:59:52 -04:00 |
|
dzaima
|
03a28e4e34
|
fix float normalization from a •bit._cast result mutating the original
|
2023-05-11 22:39:59 +03:00 |
|
dzaima
|
53bacf00c8
|
native F⟜k⁼𝕩 & k⊸F⁼𝕩
|
2023-05-11 15:28:40 +03:00 |
|
dzaima
|
08b6ff77c4
|
c1G & c2G
|
2023-05-11 15:28:40 +03:00 |
|
dzaima
|
fa4aebbe9c
|
native dyadic inverses of F˜
|
2023-05-11 15:28:40 +03:00 |
|
dzaima
|
bae49543be
|
native F˜⁼ 𝕩
|
2023-05-11 15:28:40 +03:00 |
|
dzaima
|
d1a5ed3e00
|
err → fatal
|
2023-05-11 15:28:23 +03:00 |
|
dzaima
|
aa68ed0730
|
define single ICMP
|
2023-05-11 15:28:23 +03:00 |
|
dzaima
|
4b0cd3217f
|
proper statement definition of assert
|
2023-05-11 15:28:23 +03:00 |
|
dzaima
|
fe39fe1932
|
remove Md1H/MD2R
|
2023-05-11 15:28:23 +03:00 |
|
dzaima
|
e775202684
|
describe types in src/README.md
|
2023-05-10 00:05:29 +03:00 |
|
dzaima
|
a8738c68ed
|
update bytecode submodule
|
2023-05-09 21:54:01 +03:00 |
|
dzaima
|
5979c0fed9
|
pass fully native primitives to r1
|
2023-05-09 21:50:16 +03:00 |
|
dzaima
|
0f2ef4384c
|
don't inline groups_lt
|
2023-05-09 00:14:14 +03:00 |
|
dzaima
|
300d217ee8
|
move SIMD constrep functions to a table
|
2023-05-09 00:14:14 +03:00 |
|
dzaima
|
0598ce8357
|
use getFillQ less
|
2023-05-09 00:14:14 +03:00 |
|
dzaima
|
d62c77af41
|
add threshold for reshape-based ⎉+n path
|
2023-05-06 16:57:38 +03:00 |
|
dzaima
|
3dcb32a54a
|
fast Arith⎉+n where n is the rank of one argument
|
2023-05-06 16:28:41 +03:00 |
|