dzaima
e2db41547d
change threshold for a 𝕨⊐𝕩 case
2023-12-04 17:37:35 +02:00
dzaima
d7c153286e
gc tests, more reuse removal
2023-12-04 12:07:03 +02:00
dzaima
baa23cb527
add a trailing newline to double-fatal message
...
apparently 'puts' has a trailing newline but 'fputs' doesn't
2023-12-04 11:35:34 +02:00
dzaima
ecb2d5f63a
fix GC referencing bug in reusing 𝕨𝔽`𝕩 by not bothering to reuse
2023-12-04 01:27:38 +02:00
dzaima
fcc939dbed
debug flag for running a GC every n'th allocation
2023-12-03 23:34:49 +02:00
dzaima
6573232694
macro option for an intentionally-bad hash function for testing purposes
2023-11-29 18:58:34 +02:00
dzaima
609980f950
comment about HashMap entry format
2023-11-29 18:05:08 +02:00
Marshall Lochbaum
72a9a95819
Make sure •HashMap table leaves last entry empty, as a sentinel
2023-11-28 20:08:27 -05:00
Marshall Lochbaum
51027cabe1
Fix GC-after-free with multiple hash resizes
2023-11-28 16:53:45 -05:00
Marshall Lochbaum
53beab531b
•HashMap key and value list compaction and methods to return those lists
2023-11-28 11:09:32 -05:00
Marshall Lochbaum
95f5e65b6c
•HashMap delete with backwards shift; no key/value compaction yet
2023-11-28 10:52:56 -05:00
Marshall Lochbaum
ce9f460e2c
•HashMap count and set functions
2023-11-28 10:33:41 -05:00
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
adc4506ac8
fast path for ind integer checking
2023-11-26 22:16:53 +02:00
dzaima
4b67de5f83
don't need these comments
...
they're present in h.h, and trivial to determine from source anyway
2023-11-26 22:16:53 +02: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
fe280613af
fix toHArr usage in another place
2023-11-26 15:53:44 +02:00
dzaima
789064140b
use isStr more, include builtin name in bad path messages
2023-11-26 15:37:41 +02:00
dzaima
31e4b29115
proper toHArr usage
2023-11-26 14:56:08 +02:00
dzaima
fce64987b1
helper for immediately-consumed block
2023-11-26 14:54:37 +02:00
dzaima
633bbc8112
don't need def_rt & def_glyphs either actually
...
+ clean up some gc_add-ing
2023-11-26 14:45:54 +02:00
dzaima
b28c1a8f01
get rid of global def_comp & def_compOpts, refcount fixes
2023-11-26 13:56:26 +02:00
dzaima
7dd398433b
fix native compiler
2023-11-26 13:46:07 +02:00
dzaima
71ade3e9c6
add missed decrements, expand test
2023-11-26 01:27:36 +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
e25281518c
move more things into re
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
cd6da03fd9
always supply a valid re object
2023-11-25 23:21:32 +02:00
dzaima
7357820f19
start of compiler state refactoring
2023-11-25 23:21:32 +02:00
dzaima
dcf26f88d7
fix segfault during GC from compileAll's cpyHArr(objs)
2023-11-25 21:37:48 +02:00
dzaima
5458739cf2
don't have a ⌾ character in m_c8vec_0
...
name shouldn't ever be visible either, so shortening it while at it
2023-11-24 22:21:23 +02:00
dzaima
db0bb1378c
rearrange Body fields to pack better
2023-11-24 16:00:11 +02:00
dzaima
1d8479b589
apparently nothing uses the bc field in Comp anymore
2023-11-24 15:30:47 +02:00
dzaima
eb62b48e4e
don't inline wyhash make_secret
...
+ remove wyhashmap, we don't need it, it breaks on collisions
2023-11-24 15:24:28 +02:00
dzaima
f02c92ee6a
fix 3 ∨ "abc"
2023-11-23 18:13:51 +02:00
dzaima
8814a7e66e
use 2x unroll for i16→u1 copying to utilize two-vector homMask
2023-11-21 02:45:33 +02:00
dzaima
773429a959
recursive base-case of homMask
2023-11-21 02:40:50 +02:00
dzaima
08fa7d3d30
specialize x86-64 homMask of 2x[n]i16, use for comparison
2023-11-21 02:29:03 +02:00
dzaima
3ebfb24b0f
unroll copying to bitarr
...
+ clean up comparison code as bulk homMask is supported everywhere
2023-11-21 00:18:18 +02:00
dzaima
fe985722c2
move multi-vector homMask to allow NEON to override it
2023-11-21 00:18:18 +02:00
dzaima
d1f66dc75b
check created bitarr size for overflow
2023-11-18 19:56:39 +02:00
dzaima
56cbe4aa03
mulHi → mulh for high half of element result
...
to not be confused with mulwHi or zipHi where it means providing the high batch of elements
2023-11-18 00:43:20 +02:00
dzaima
c8cdaf0216
Clear assumption about assignment result in const-folder
2023-11-17 17:44: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
46e8ed1a3f
fix SSE4.2 usz=64 build
2023-11-13 23:28:30 +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
dzaima
b4e53abbe4
some comments
2023-11-13 16:38:02 +02:00
Marshall Lochbaum
c94d51dcaf
Fixes for 64-bit usz
2023-11-13 08:24:51 -05:00
dzaima
4fb6ce602f
add a require{} for CRC32
2023-11-13 12:56:48 +02:00
dzaima
5910c93fcb
silence some warnings & errors in various build types
2023-11-13 12:54:49 +02:00
Marshall Lochbaum
09572de49a
Credible resizing policy for dyadic search hashes
2023-11-12 22:07:29 -05:00
Marshall Lochbaum
ee7a11a279
Unify self-search hash thresholds across primitives; doesn't seem to hurt performance
2023-11-12 14:35:25 -05:00
Marshall Lochbaum
5957487b70
Faster iteration over non-empty entries for hash table resizing
2023-11-11 20:24:20 -05:00
Marshall Lochbaum
b404c7c1d1
Eliminate a loop when resizing ordered hash
2023-11-11 20:24:20 -05:00
Marshall Lochbaum
3a50cda5d3
Specialize Index-of tables on result type
2023-11-10 17:12:37 -05:00
Marshall Lochbaum
b782693d15
Insert maxh to a special end bucket for ⊒ and reverse ⊐ (fixes ⊒ maxh bugs)
2023-11-10 12:04:55 -05:00
Marshall Lochbaum
e1b0c53c92
Fix various sentinel bugs
2023-11-09 20:24:46 -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
f1485ca98c
Turn hash function definition structure inside-out
2023-11-09 09:19:47 -05:00
Marshall Lochbaum
aded9d4782
Shortcutting for reverse Member-of hash
2023-11-08 17:34:33 -05:00
Marshall Lochbaum
8e9c04523a
Fix overflow bug in hashed Member-of max_off calculation
2023-11-08 10:28:14 -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
a4290b1f5c
Shortcut for hash-table dyadic ⊒
2023-11-07 09:59:53 -05:00
Marshall Lochbaum
4bf4149d40
Use hash deletion for forward ⊒ as well as reverse
2023-11-07 09:41:50 -05:00
Marshall Lochbaum
289658a59c
Delete hash entry as soon as it's cleared, not on next access
2023-11-07 07:53:45 -05:00
Marshall Lochbaum
30331eb800
Fix write off end for reverse ⊒
2023-11-07 07:15:17 -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
75aed91f32
And max offset of 8 by testing two vectors
2023-11-05 15:46:26 -05:00
Marshall Lochbaum
ec31543604
Vector Member-of search up to an offset of 4
2023-11-05 15:45:07 -05:00
Marshall Lochbaum
af81da50e4
Don't need to initialize indices for hashed Index-of
2023-11-04 17:52:22 -04:00
Marshall Lochbaum
1286ee32ec
Reverse lookup for hashed Progressive Index-of
2023-11-03 21:58:17 -04:00
Marshall Lochbaum
84f3205547
Use a larger initial hash table if non-hashed argument is large
2023-11-03 21:50:38 -04:00
Marshall Lochbaum
a9f33c1454
Refactoring
2023-11-03 16:38:08 -04:00
Marshall Lochbaum
8aa6c07199
And hashed 32-bit Progressive Index-of
2023-11-02 20:29:54 -04:00
Marshall Lochbaum
64f2a10fbb
Return hash_resize{} from hash_alloc{}
2023-11-02 13:21:11 -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
cb8be206be
Move hash allocation to a generator
2023-10-31 22:09:11 -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
a4befbd8bf
FFI: check for 𝕨 being present when required
2023-10-29 01:01:48 +03: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
3775cd0025
typo
2023-10-22 15:18:39 +03:00
dzaima
577442449d
inverses for •math.Atan2, •math error tests
2023-10-22 14:33:51 +03:00
dzaima
1ec48bb761
cleanup
...
makefile doesn't care about emcc anymore
2023-10-21 14:46:41 +03:00
dzaima
4322303031
Fix 2‿2↕3‿3‿3⥊↕27
2023-10-12 12:43:08 +03:00
dzaima
9c68e67544
fix compilation error when targeting AVX1-only
2023-10-07 13:22:27 +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
6330d61a88
Some rearrangement and minor simplifications
2023-09-12 10:24:00 -04:00
Marshall Lochbaum
72da47d48a
Use standard for loops
2023-09-12 09:12:57 -04:00
Marshall Lochbaum
40ed55bc43
Use built-in NEON include for basic vector instructions
2023-09-11 21:17:38 -04:00
Marshall Lochbaum
7b9f7ba331
Move x86 vector and NEON includes into base.singeli
2023-09-11 20:25:25 -04:00
Marshall Lochbaum
082f800b3e
Combine x86 vector extensions and use iintrinsic/basic when possible
2023-09-11 20:11:16 -04:00
Marshall Lochbaum
c85ca66dae
Unify Scan and Bins min-scan code
2023-08-26 09:27:59 -04:00
Marshall Lochbaum
0a30fb309d
SSE2 min- and max-scans
2023-08-26 07:26:33 -04:00
Marshall Lochbaum
a040a14744
Unify power-of-two shift pattern for scans
2023-08-26 07:26:33 -04: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
f9a4a5b68c
Remove duplicated SSE4.1 min/max bindings
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
c5b98ea7a1
apparently LLVM actually uses pointer type to determine alignment
2023-08-20 22:57:30 +03:00
dzaima
6eaa9238bc
separate BSDs
2023-08-20 19:33:11 +03:00
dzaima
34d4fd6433
more explicit loadu/storeu
2023-08-20 00:18:09 +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
721dccf636
fix FFI integer overflow check on ARM
...
clang optimizes a raw f!=(u8)f to like f!=(u32)f on ARM which changes behavior (we're technically using UB here, but there's no reasonable alternative); use q_ functions that know how to work around this
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
4d19654e3b
fix store types
2023-08-16 19:01:04 +03:00
dzaima
acca5c0c7c
fix completely wrong dyTable lookup
2023-08-15 14:45:27 +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
bbad98bce1
In AVX2 boolean Compress, jump from 8 to 32 with 32-bit shifts
2023-08-07 11:41:53 -04:00
Marshall Lochbaum
120df26814
mullo works for both signed and unsigned
2023-08-07 11:23:38 -04:00
Marshall Lochbaum
d039562efe
Fix disabled BMI2 boolean Compress; cleaner SIMD width system
2023-08-06 08:09:08 -04:00
Marshall Lochbaum
9046dd6b53
Handle boolean Compress SIMD tail with conditional write, not scalar loop
2023-08-06 08:03:14 -04:00
Marshall Lochbaum
07ace41d6c
Vectorized version of the clmul boolean Compress
2023-08-06 07:36:05 -04:00
Marshall Lochbaum
371aa6f2ef
AVX2 boolean Compress using variable shifts
2023-08-05 21:50:22 -04:00
Marshall Lochbaum
66c0fe041c
Get pext and popcount together, since generic pext emulation includes popc
2023-08-05 20:38:54 -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
Marshall Lochbaum
e09d385df5
Simplify pairwise pext implementation; drop 12-bit as no longer competitive
2023-08-05 20:38:54 -04:00
dzaima
7fe1ab930a
FFI: permit 𝕨≡⟨⟩, require 𝕩≡⟨⟩ if no arguments are on 𝕩, check list rank
2023-08-05 16:13:07 +03: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
8e35241e47
Better error messages for unknown namespace key
2023-08-03 22:54:38 +03:00
dzaima
0b6c5189d8
move arithdDispatch declarations to a header
...
+ rename some things to make more sense
2023-07-31 20:26:05 +03:00
dzaima
627a7e0771
more FFI error checking, plus bugfixes
2023-07-28 15:25:06 +03:00
dzaima
1bc96f5557
extract u8/u16/u32/f32 reading functions
2023-07-28 14:02:22 +03:00
dzaima
1454ca3a1a
expand & test FFI error checking
2023-07-28 13:59:25 +03:00
dzaima
79f72d84b8
extract unsigned & f32 copying functions in ffi.c
2023-07-28 13:41:03 +03:00
dzaima
0d7de8b190
define ux in Singeli, replacing Size; return ux from popc/clz/ctz
2023-07-26 17:42:23 +03:00
dzaima
f7a0eb94a3
don't use AVX2 buffer copying for a 16-byte buffer
2023-07-22 21:34:20 +03:00
dzaima
1451395ef5
don't do fancy char stuff for unchecked arith
2023-07-22 21:13:49 +03:00
dzaima
959614c785
use partial application
2023-07-22 18:19:31 +03:00
dzaima
033f3de6b9
remove unnecessary lambda wrappers
...
also use fmtnat
2023-07-22 18:15:07 +03:00
dzaima
446b2d09ed
Singeli renames & docs
2023-07-22 17:37:20 +03:00
dzaima
6e96600878
move unaligned load & store to base.singeli
2023-07-20 00:21:09 +03:00
dzaima
0486adccb5
fix signedness of abs{x}
2023-07-20 00:19:54 +03:00
dzaima
2243fa76c1
better base case list
2023-07-19 21:56:35 +03:00
dzaima
eb46ec8d9c
rename __mulhi & __mul32
2023-07-19 21:54:12 +03:00
dzaima
700d69e7dd
unpack → zip & mzip; enable slash.singeli SIMD parts for NEON
2023-07-19 21:39:22 +03:00
dzaima
ba2e859dce
use existing unpackLo in neq.singeli
2023-07-19 20:56:08 +03:00
dzaima
19b35e1074
fix size comment
2023-07-19 20:11:14 +03:00
dzaima
9945711b5e
AVX2 i32 & i64 slash{} via widening load
2023-07-19 20:00:46 +03:00
dzaima
ff9bb258c2
more comments in slash.singeli
2023-07-19 18:50:01 +03:00
dzaima
48111d4873
extract iota{} for AVX-512
2023-07-19 17:24:20 +03:00
dzaima
a0797318ca
use has_simd & arch_defvw
2023-07-19 17:03:41 +03:00
dzaima
03c21112c2
make NEON builds work
2023-07-19 16:58:35 +03:00
dzaima
6930bc34b6
further update slash.c implementation comments
2023-07-19 16:51:24 +03:00
Marshall Lochbaum
77188b8e73
Add clmul.singeli
2023-07-19 09:38:37 -04:00
Marshall Lochbaum
301a23fb1f
Update where/compress implementation comments
2023-07-19 09:35:40 -04:00
Marshall Lochbaum
c4364aefa6
SSSE3 4-byte compress with half-width table
2023-07-19 08:15:53 -04:00
Marshall Lochbaum
ba837ba01b
Remove table-less where/compress methods, as they're not competitive
2023-07-19 07:22:55 -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
b0e0f210c6
2- and 4-byte Where with unpack and table
2023-07-18 21:10:39 -04:00
Marshall Lochbaum
93e1262864
Avoid using popcount primitive in Singeli if POPCNT isn't present
2023-07-18 16:52:08 -04:00
Marshall Lochbaum
6df283c379
Always increment by full popcount instead of two halves when splitting byte
2023-07-17 17:52:59 -04:00
Marshall Lochbaum
2f6a8e55a1
Always use vectors for for_special_buffered buffer copy
2023-07-17 16:52:10 -04:00
Marshall Lochbaum
8add95b7ab
Remove BMI2 where/compress methods
2023-07-17 16:20:30 -04:00
Marshall Lochbaum
f005169518
1- and 2-byte compress with table and SSSE3
2023-07-17 16:19:05 -04:00
Marshall Lochbaum
68978f7e10
Table-based 1- and 2-byte Where
2023-07-17 16:05:06 -04:00
Marshall Lochbaum
fc187afdf2
Extend 1-byte SSE2 Where to 2-byte and 4-byte with unpacked writes
2023-07-17 11:28:04 -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
c484f8ee8d
Avoid UB from shifting by 64
2023-07-16 21:56:33 -04:00
Marshall Lochbaum
da5f1faa07
Merge BMI2 slash{} cases, with some simplifications
2023-07-16 21:56:33 -04:00
Marshall Lochbaum
b244ba98f5
Unify slash1{} and slash2{}
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
824bb04b4d
Plain SSE2 1-byte compress
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
f36426031a
Slightly faster table-less compress method
2023-07-16 21:56:33 -04:00
Marshall Lochbaum
84a928863b
AVX-512 compress implementations
2023-07-16 21:56:33 -04:00
Marshall Lochbaum
80e93c41c9
Use new undefined{type,len} instead of alloca
2023-07-16 21:56:33 -04:00
Marshall Lochbaum
13b3bcd74b
Table-less AVX2 1-byte compress
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
9010f648bb
Unify permutevar-based compress implementations
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
03d8919307
Add has='pclmul' option and avoid using broadcast
2023-07-16 21:56:33 -04:00
Marshall Lochbaum
871a81ca5f
BMI2 pext not-emulation in Singeli
2023-07-16 21:56:33 -04:00
Marshall Lochbaum
1314859a80
clmul-based pext emulation
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
3946f2cc87
use new Singeli builtins
2023-07-17 02:23:50 +03:00
dzaima
6305a3bd50
change error message of failed path_abs
2023-07-16 16:31:10 +03:00
dzaima
cf6a290e5c
•file.RealPath
2023-07-16 01:42:30 +03:00
dzaima
d1e511bebd
add padding before allocations & document it
2023-07-13 16:20:37 +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
vylsaz
ce255c4a53
Enable •file.CreateDir on Windows
2023-07-11 01:11:28 +00:00
dzaima
0601a86f56
don't special-case 2/𝕩 on NEON
2023-07-11 02:40:05 +03: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
158a3beb2e
partially clear object on free in debug mode
...
catch some more of what valgrind would relatively cheaply
2023-07-10 22:55:19 +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
cb9f4dbbc1
remove debug include
...
:|
2023-07-10 19:19:55 +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
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