Marshall Lochbaum
016e428db6
Always store •HashMap keys and values as HArrs
2023-11-27 19:20:38 -05:00
Marshall Lochbaum
96c7f2eb1a
Move •HashMap implementation details to search.c
2023-11-27 19:20:38 -05:00
Marshall Lochbaum
77bfc7dd1a
Non-resizing static Robin Hood hashmap
2023-11-27 19:20:38 -05:00
Marshall Lochbaum
8edc965686
•HashMap stub with linear lookup
2023-11-27 19:20:38 -05:00
dzaima
e9b7d027ca
cleanup & fix various build types
2023-11-26 16:56:26 +02:00
dzaima
01a60dceff
separate path & name, store path+name+args in state
2023-11-26 16:32:37 +02:00
dzaima
789064140b
use isStr more, include builtin name in bad path messages
2023-11-26 15:37:41 +02:00
dzaima
3f62a51305
system value inheriting
2023-11-26 01:21:11 +02:00
dzaima
a93ea4dbaf
base •ReBQN and •BQN onto outer re
2023-11-25 23:39:58 +02:00
dzaima
5e455372f0
more renaming & shuffling of things
2023-11-25 23:21:32 +02:00
dzaima
7c28c64178
change •BQN and •ReBQN to dynamically-computed functions
2023-11-25 23:21:32 +02:00
dzaima
7214017bb2
move •BQN and •ReBQN to computed sysvals
2023-11-25 23:21:32 +02:00
dzaima
7e0204083e
name re parts
2023-11-25 23:21:32 +02:00
dzaima
7fb8ecfa86
rename things
2023-11-25 23:21:32 +02:00
dzaima
7357820f19
start of compiler state refactoring
2023-11-25 23:21:32 +02:00
dzaima
2b56a300bc
probably make ⊔ able to handle output subarray lengths over 2^32
...
still no support for (≠𝕨)≥2⋆32 though
2023-11-17 00:40:26 +02:00
dzaima
59208af520
remove old group path
...
effectively only got used for f64arr 𝕨; could transform to doing just that, but its inefficient type of the group arrays make it bad for that too
2023-11-13 23:16:02 +02:00
dzaima
f037754880
more specific empty array types
2023-11-13 23:16:02 +02:00
dzaima
8c7a3be036
remove unused includes
2023-11-13 21:48:01 +02:00
Marshall Lochbaum
c94d51dcaf
Fixes for 64-bit usz
2023-11-13 08:24:51 -05:00
dzaima
5910c93fcb
silence some warnings & errors in various build types
2023-11-13 12:54:49 +02:00
Marshall Lochbaum
3a50cda5d3
Specialize Index-of tables on result type
2023-11-10 17:12:37 -05:00
Marshall Lochbaum
7b79dfc94e
Update search implementation comments
2023-11-09 15:20:50 -05:00
Marshall Lochbaum
2c625127d5
Reverse hashed Index-of
2023-11-09 10:39:07 -05:00
Marshall Lochbaum
c75fdbc277
Reverse Member-of hash lookup
2023-11-07 22:07:17 -05:00
Marshall Lochbaum
8a2190b092
64-bit hashes with float normalization
2023-11-07 14:54:16 -05:00
Marshall Lochbaum
c042fe6ca3
Vector binary search for integer Index-of
2023-11-06 15:43:26 -05:00
Marshall Lochbaum
52bca6a55c
Multiple IndexOfOne to search for a few values in a large array
2023-11-06 12:16:59 -05:00
Marshall Lochbaum
d154ece51a
Vector binary search for 16-bit Member-of in addition to 32 (8 is too slow)
2023-11-06 09:37:58 -05:00
Marshall Lochbaum
11245d385e
Vector binary search Member-of
2023-11-05 22:10:39 -05:00
Marshall Lochbaum
8aa6c07199
And hashed 32-bit Progressive Index-of
2023-11-02 20:29:54 -04:00
Marshall Lochbaum
d54621b5dd
Extend hash table to 32-bit Index-of
2023-11-02 12:00:32 -04:00
Marshall Lochbaum
ed03720441
Robin Hood hash table for 32-bit membership
2023-11-01 15:46:45 -04:00
Marshall Lochbaum
ee856a4880
Move hash resizing to a generator, and other refactoring
2023-10-31 22:09:11 -04:00
Marshall Lochbaum
0391cf4ca3
Fast number-character (no matches) searches
2023-10-31 22:09:11 -04:00
Marshall Lochbaum
0fb845d336
Move self-search hash table code to Singeli
2023-10-31 22:09:11 -04:00
dzaima
ad574d2269
refactor & document #define-s, always-available ')gc log' and ')mem log'
2023-10-31 03:16:48 +02:00
dzaima
08c4627686
fix dense case of •rand.Subset not updating seed
2023-10-30 17:03:38 +02:00
dzaima
7ffd744375
reorganize file writing
...
fixes some unclosed file descriptors & files being made on an invalid argument
2023-10-28 19:27:00 +03:00
dzaima
b6594008cd
fix non-Singeli builds
2023-10-26 17:32:12 +03:00
dzaima
577442449d
inverses for •math.Atan2, •math error tests
2023-10-22 14:33:51 +03:00
dzaima
4322303031
Fix 2‿2↕3‿3‿3⥊↕27
2023-10-12 12:43:08 +03:00
dzaima
e7b87f669f
fix arr÷negativeZero, set proper float expected values
2023-09-21 19:03:30 +03:00
dzaima
f6a9c30889
•internal.HeapStats
2023-09-18 23:38:06 +03:00
dzaima
df0ccdf2d7
add error message on missing posix_spawn support in make for-build
2023-09-17 13:39:22 +03:00
dzaima
299168fb16
fast numarr÷scalarPowOf2
2023-09-12 23:57:50 +03:00
dzaima
5efd90cc91
rename elWidthLogBits to something less long & add byte variant
2023-09-12 19:58:56 +03:00
Marshall Lochbaum
d16ba6c3b1
Move xor-scan to scan.singeli; remove neq.singeli
2023-08-26 07:26:33 -04:00
Marshall Lochbaum
e261e80168
SSE min/max and pluswrap scans
2023-08-26 07:26:33 -04:00
Marshall Lochbaum
00c454d37a
Add generic-architecture versions of Singeli scans
2023-08-26 07:26:33 -04:00
dzaima
ec14d45c50
round up pointers in self-search allocs
2023-08-25 04:03:25 +03:00
dzaima
81a291f860
round up some pointers
2023-08-25 03:47:05 +03:00
dzaima
f0d6a65240
move unaligned load/store helpers to stuff.h
...
also replace a NULL with "" to make iBuf+0 not be UB
2023-08-25 03:24:42 +03:00
dzaima
8975f6af00
fast 1|x
2023-08-24 21:32:35 +03:00
dzaima
3e6e158696
native 𝕨⍷𝕩 when 1≥=𝕨 and 2≥=𝕩
2023-08-24 19:46:57 +03:00
dzaima
6eaa9238bc
separate BSDs
2023-08-20 19:33:11 +03:00
dzaima
1bb686a9ff
fix UB in grade.h
2023-08-19 21:48:11 +03:00
dzaima
2732becf50
global STR0/STR1 definitions
2023-08-19 20:12:53 +03:00
dzaima
25c2629842
•platform
...
incl. adding support for REPL completion of •a.b.c (i.e. >1 '.')
2023-08-19 18:25:52 +03:00
dzaima
df56f6b2fc
fix 𝕨•FLines𝕩 with invalid elements in 𝕩
2023-08-13 03:51:06 +03:00
Marshall Lochbaum
2dd3a0fdfa
Boolean compress implementation comments
2023-08-07 15:33:37 -04:00
Marshall Lochbaum
4e9745688b
Use generic boolean Compress as the sparse case with Singeli
2023-08-07 13:47:58 -04:00
Marshall Lochbaum
a7908a10b0
Faster, sparse, non-Singeli boolean Compress
2023-08-07 12:26:40 -04:00
Marshall Lochbaum
056b18edd2
Move pext-based compress loop from C to Singeli
2023-08-05 20:38:54 -04:00
Marshall Lochbaum
7767cf933f
Remove boolean Compress overallocation: not needed with w masked off
2023-08-05 20:38:54 -04:00
dzaima
682d5986d8
slightly more accurate trailing newline removal for •GetLine
2023-08-04 21:09:45 +03:00
dzaima
a1e4f9bd6f
remove multiple trailing newline characters from •GetLine
...
Windows adds \r\n, and without this the \r stays
2023-08-04 20:52:07 +03:00
dzaima
1454ca3a1a
expand & test FFI error checking
2023-07-28 13:59:25 +03:00
dzaima
6e96600878
move unaligned load & store to base.singeli
2023-07-20 00:21:09 +03:00
dzaima
6930bc34b6
further update slash.c implementation comments
2023-07-19 16:51:24 +03:00
Marshall Lochbaum
301a23fb1f
Update where/compress implementation comments
2023-07-19 09:35:40 -04:00
Marshall Lochbaum
64d65ae837
Never use generic dense compress methods if use_table: where is faster
2023-07-18 21:35:12 -04:00
Marshall Lochbaum
68978f7e10
Table-based 1- and 2-byte Where
2023-07-17 16:05:06 -04:00
Marshall Lochbaum
8b297ae2dc
Dedicated 32-bit Singeli where, taking index offset
2023-07-16 21:56:33 -04:00
Marshall Lochbaum
3bd8d1de68
Extend all Singeli Compress methods to do Where
2023-07-16 21:56:33 -04:00
Marshall Lochbaum
4415869496
Generic Singeli where implementation
2023-07-16 21:56:33 -04:00
Marshall Lochbaum
f5121f6806
Thresholds for compress methods (versus sparse) defined in Singeli
2023-07-16 21:56:33 -04:00
Marshall Lochbaum
f852d12a5c
Generic Singeli compress implementation
2023-07-16 21:56:33 -04:00
Marshall Lochbaum
d956ba921b
Non-overwriting 1-byte and 2-byte compress/where
2023-07-16 21:56:33 -04:00
Marshall Lochbaum
8f4b1966cb
Non-overwriting AVX2 4-byte and 8-byte compress, using a buffer
2023-07-16 21:56:33 -04:00
Marshall Lochbaum
0921fc2c62
AVX2 compress implementations using permutevar and lookup tables
2023-07-16 21:56:33 -04:00
Marshall Lochbaum
f315a6d3ea
Emulate pext instruction in Singeli
2023-07-16 21:56:33 -04:00
dzaima
cf6a290e5c
•file.RealPath
2023-07-16 01:42:30 +03:00
dzaima
9cfc3f3f25
various changes on filling arrays with the same element
2023-07-12 16:23:03 +03:00
vylsaz
e4542f70a6
Implement •term.CharN and •term.RawMode for Windows
2023-07-11 03:15:48 +00:00
dzaima
56a1fc3637
use float getting functions for getting floats
2023-07-10 23:48:07 +03:00
dzaima
9b0299d1a5
fix (<1)≠`5⥊1
2023-07-10 23:25:28 +03:00
dzaima
53266ffd88
fix (<1)⌈`↕10
2023-07-10 23:21:36 +03:00
dzaima
acbfcd7302
fix another weird case of 𝕨∾𝕩
2023-07-10 22:55:00 +03:00
dzaima
24fea51bdd
fix unshare of fillslice
2023-07-10 22:55:00 +03:00
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
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
0346ff7c2d
Use type of ≠𝕨 for Singeli Bins result and allocate outside Singeli
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
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
5424c57b7e
Use Singeli float binary search
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
3ae9b14d64
separate arith inits, add comments on init order
2023-06-23 12:10:42 +03:00
dzaima
336f986986
change error messages in ◶
2023-06-12 00:52:09 +03:00
dzaima
934a2b5ae3
rearrange things
2023-06-06 21:44:50 +03:00
dzaima
78bef5fe32
consistent 𝕨⊏𝕩 error messages across argument types
2023-05-30 14:28:36 +03:00
dzaima
5738712bbb
improve environ declaration
2023-05-30 12:52:00 +03:00
dzaima
55e0409582
don't CTZ(0) in gcd
2023-05-24 15:13:25 +03:00
dzaima
3872f5a625
fix 𝕨∾𝕩 reuse logic
2023-05-22 11:40:37 +03:00
dzaima
b093ebbc66
finish PICK_IDX message
2023-05-22 00:18:59 +03:00
dzaima
fd72ea79c8
another gcc warning
2023-05-21 23:39:18 +03:00
dzaima
d6609df820
reserve •CurrentError with namespace 𝕩
2023-05-20 14:28:37 +03:00
dzaima
7f46de18fc
add missed refcount decrements
2023-05-20 01:30: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
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
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
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
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
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
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
9c7c6aabc5
AVX2 Mark Firsts implementation
2023-05-11 21:04:56 -04:00
Marshall Lochbaum
017e2433fb
Fast paths for all empty-argument search cases
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
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
dzaima
8177b668f4
fix ∾𝕩 error checking
2023-05-05 19:54:43 +03:00
dzaima
cc94ec4cbc
move out another s+↕n loop
2023-05-05 13:28:58 +03:00
dzaima
14ca835fa2
don't unroll comparatively extremely tiny loop
2023-05-05 13:23:47 +03:00
dzaima
65d0b829bd
reuse range generation from ↕n for •rand.Deal
2023-05-05 12:41:36 +03:00
dzaima
1072d0bb9c
merge emptyIVec() case with bitUD[0]
2023-05-05 12:18:31 +03:00
Marshall Lochbaum
78eeaae762
Remove MergeShuffle: only used above 2⋆28 with split and not a huge speedup
2023-05-04 18:11:55 -04:00
Marshall Lochbaum
2b9c193f24
Outer split pass for large •rand.Deal
2023-05-04 14:28:32 -04:00
Marshall Lochbaum
a4f9d23709
Simplify merge-shuffle index usage
2023-05-04 10:18:38 -04:00
Marshall Lochbaum
6cc9d40490
Fast cases for short •rand.Deal𝕩
2023-05-04 09:10:29 -04:00
Marshall Lochbaum
8191aa6da2
Only iterate over set bits in random merge
2023-05-04 09:10:29 -04:00
Marshall Lochbaum
bc7275a91b
Basic MergeShuffle implementation (slow merge)
2023-05-04 09:10:29 -04:00
dzaima
1bd9467a2d
cleanup
2023-05-04 12:27:13 +03:00
dzaima
352961a7eb
another ubsan complaint
2023-05-02 10:47:13 +03:00
dzaima
65e246774e
-mllvm --x86-cmov-converter=0
2023-04-30 20:03:09 +03:00
dzaima
0e79e9f868
fix ubsan notes
2023-04-30 19:50:24 +03:00
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