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
fd4477992f
fall back from clang to cc in build.bqn & default makefile to cc
...
even without the makefile change here, a `make o3` will work without clang, but it gave harmless errors from the CC_IS_CLANG check before the makefile recurses to where the custom CC is set (and CC_IS_CLANG recomputed)
2023-08-04 22:27:41 +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
ed07995e68
don't rely on thing that doesn't hold outside of Singeli SIMD-ful builds
2023-07-26 17:58:35 +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
f416d58579
compiler version updates in readme
2023-07-23 18:00:51 +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
cc160910a2
update Singeli submodule
2023-07-22 17:43:58 +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
0a4a0f3e2a
Merge pull request #88 from mlochbaum/compress
...
Singeli where/compress
2023-07-19 20:46:52 +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