dzaima
28d434a201
catch double-frees in debug mode
2022-11-06 02:11:12 +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
cc467ce8ca
cleanup
2022-10-23 13:14:36 +03: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
dzaima
64ce7ec6fe
fix non-squeezed string •FFI arguments
2022-10-18 19:26:53 +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
Marshall Lochbaum
022ef64f6b
Add NOUNROLLs to bitwise functions
2022-10-17 09:39:38 -04:00
Marshall Lochbaum
80f8ac9643
2-argument •bit operations
2022-10-17 09:39:38 -04:00
Marshall Lochbaum
8f5259e77d
Implement 1-argument •bit operations
2022-10-17 09:39:38 -04:00
dzaima
2a17d87572
calculate •FFI allocation layout ahead-of-time
2022-10-16 14:16:34 +03:00
dzaima
83af05d274
fix building on gcc≤10
2022-10-10 13:53:56 +03:00
dzaima
2eecc0feda
squeeze *u8/*u16/*u32 result
...
it has to sometimes be one size up to accommodate for the upper unsigned range, but often (?) it should fit fine in the signed range of its type
2022-10-08 19:59:03 +03:00
dzaima
ac041d37f4
fix WARN_SLOW build
2022-10-08 19:30:08 +03:00
dzaima
7e1c9b50cd
initial struct support
2022-10-08 19:08:20 +03:00
dzaima
702d4e979d
various utility changes
2022-10-08 19:03:41 +03:00
dzaima
529d2abae4
add warning about miscompilation for x86 on gcc
2022-10-08 14:41:44 +03:00
dzaima
7bda795365
fix gcc warnings about pointer casts in 32-bit builds
2022-10-07 12:57:59 +03:00
dzaima
abcb575a53
simplify bit boolean constant replicate start
2022-10-04 22:11:20 +03:00
Marshall Lochbaum
ce74e36a19
Fix lots of missing casts for function calls
2022-09-30 20:20:38 -04:00
dzaima
82ac059b75
disable clmul ≠` when pclmul not available
2022-09-30 20:06:52 +03:00
Marshall Lochbaum
cca64bba70
Move nescan.c into md1.c and constrep.c into slash.c
2022-09-30 11:40:37 -04:00
Marshall Lochbaum
47cdf02877
Build Singeli files with a filename prefix
2022-09-30 11:35:25 -04:00
Marshall Lochbaum
cad566d547
Not-equals scan with carry-less multiply
2022-09-29 20:39:46 -04:00
Marshall Lochbaum
acc200222d
Move constant Replicate Singeli code to its own file
2022-09-29 20:33:09 -04:00
Marshall Lochbaum
582afe33c9
Merge 3 to 7 replicate float with other types: shuffle instead of permute
2022-09-29 20:12:45 -04:00
Marshall Lochbaum
29886f355a
Combine small-replication shuffle vector tables across types
2022-09-29 19:58:14 -04:00
Marshall Lochbaum
e407286185
BMI2-based constant boolean Replicate for 𝕨<=52
2022-09-28 21:56:57 -04:00
Marshall Lochbaum
0c0d967dc3
Adjust Table thresholds for fast constant Replicate
2022-09-28 17:18:55 -04:00
Marshall Lochbaum
09aba9bc37
slash.singeli is only used with __BMI2__ for now
2022-09-28 17:18:42 -04:00
Marshall Lochbaum
4836f70e0d
Simplify rep_const_broadcast, removing unused kv==0 case
2022-09-28 14:14:39 -04:00
Marshall Lochbaum
d28a74b572
Move 4-shuffle data to a table
2022-09-28 13:35:08 -04:00
Marshall Lochbaum
9947de0146
Performance improvements when compiling slash.singeli
2022-09-27 22:00:59 -04:00
Marshall Lochbaum
db3e0a6324
Move all the algorithm decision logic into main rep_const and simplify
2022-09-27 22:00:59 -04:00
Marshall Lochbaum
c430922a7e
Use shared functions and shuffle array for sizes 3 to 7 in constant Replicate
2022-09-27 22:00:59 -04:00
Marshall Lochbaum
68aeb0f7cb
Add large-constant replicate method always using 4 shuffles
2022-09-27 22:00:59 -04:00
Marshall Lochbaum
7069a60453
Handle all constant Replicate in Singeli
2022-09-27 22:00:59 -04:00
Marshall Lochbaum
15c405e7bf
Factorize constant replicate lengths under 32
2022-09-27 22:00:59 -04:00
Marshall Lochbaum
7535d768dd
Singeli shuffle-based code for constant replicates <=7
2022-09-27 22:00:59 -04:00
Marshall Lochbaum
851f50635e
Some simplifications in base.singeli
2022-09-27 22:00:59 -04:00
dzaima
46501ac819
update build & packaging information
...
closes #45
2022-09-27 17:53:06 +03:00
dzaima
d3ed718a6d
branchless sparse Where block size bound was too big
2022-09-26 23:12:17 +03:00
dzaima
bd823839fe
fixes for /
2022-09-25 18:45:46 +03:00
dzaima
1fcd5295eb
slight attempt at improving ↕list
2022-09-25 14:55:49 +03:00
dzaima
5c87c291f9
refactor unroll/vectorization disabling macros
2022-09-25 14:49:57 +03:00
dzaima
2bb6750d7d
better bitarr fill
2022-09-24 19:31:46 +03:00
dzaima
608489aed1
fix gcc singeli build
2022-09-24 19:30:10 +03:00
dzaima
37a3979c86
clean up generic unit reshape case
2022-09-24 19:20:32 +03:00
Marshall Lochbaum
e8e10790f8
Fast array reshape
2022-09-23 17:40:30 -04:00
Marshall Lochbaum
218a8b069e
Rework reshape of singleton
2022-09-23 15:32:27 -04:00
Marshall Lochbaum
8e24da8e8e
Adjust Replicate thresholds
2022-09-23 08:22:41 -04:00
Marshall Lochbaum
8a13bf9476
Constant boolean replicate
2022-09-22 22:32:52 -04:00
Marshall Lochbaum
7f6cf06eea
Merge scan-based sparse Indices/Replicate code with macros
2022-09-22 22:09:56 -04:00
Marshall Lochbaum
d647978c8f
Type-independent Replicate by constant
2022-09-22 21:42:18 -04:00
Marshall Lochbaum
ec12dd4502
Switch to forward inclusive sums for all radix sorting, and use Singeli
...
Removes SWAR for 8-bit counts, since reverse sorting uses negatives
2022-09-22 16:44:05 -04:00
Marshall Lochbaum
8e1d8bb42c
Use Singeli max/min scan for Indices and Sort
2022-09-22 15:17:54 -04:00
Marshall Lochbaum
bc4f5167fb
Constant replicate using plus-scan
2022-09-21 19:40:04 -04:00
Marshall Lochbaum
6ed3c18389
Implement SIMD wrapping plus-scan for Replicate
2022-09-21 19:40:04 -04:00
dzaima
c42f0fd699
revert de4fca85
2022-09-22 01:18:41 +03:00
dzaima
de4fca859f
extract arr_shCopy
2022-09-22 00:51:04 +03:00
dzaima
06fe437520
bitarr reversing
2022-09-22 00:38:09 +03:00
dzaima
1e3089ceaa
fast ⍉𝕩 when 2=≠𝕩
2022-09-20 22:29:32 +03:00
dzaima
7c4673f972
more num_squeezeChk
2022-09-20 19:27:23 +03:00
dzaima
42ae82eb1f
simpler slash_ucw !elInt(w) case
2022-09-20 19:14:02 +03:00
dzaima
42e36851b9
more cleanup
2022-09-20 18:57:22 +03:00
dzaima
f231a30057
fix 𝕨⊔0
2022-09-20 17:36:55 +03:00
dzaima
cec5b7dc6c
slash.c cleanup
2022-09-20 17:32:12 +03:00
Marshall Lochbaum
01f73dc83b
Move usum and bit_sum from numarr.h to stuff.c
2022-09-19 19:38:26 -04:00
Marshall Lochbaum
ac4729bb29
Use grouped compress for all byte sizes if the number of groups is small enough
2022-09-19 19:31:44 -04:00
Marshall Lochbaum
11e3db1787
Can't call harr withFill before adding data to array
2022-09-19 11:15:47 -04:00
Marshall Lochbaum
05401547c1
Grouped compress for odd cell widths
2022-09-19 10:52:26 -04:00
Marshall Lochbaum
9af77e63ee
Split up partitioning loop in Group for rank 1 and rank>1 cases
2022-09-18 16:43:19 -04:00
Marshall Lochbaum
12c4fd0b07
Vectorizable usum code for i8, i16, i32
2022-09-18 16:15:20 -04:00
Marshall Lochbaum
d525acb51e
Merge branch 'master' into cellwidth
2022-09-18 15:26:34 -04:00
dzaima
9453a9b665
remove old loops for non-bitarr 𝕨 consisting of 0 and 1 from 𝕨/𝕩
2022-09-18 22:12:07 +03:00
dzaima
43ddb9759c
inline part of depth
2022-09-18 21:58:53 +03:00
dzaima
dd56cfab20
allow using picked element of ⌾(n⊸⊑) in-place
2022-09-18 21:00:51 +03:00
dzaima
770f7b2f0c
check type directly in pick_ucw
2022-09-18 20:17:48 +03:00
dzaima
c0cf58ffc2
use existing function for 8-bit utf8Decode
2022-09-18 20:17:20 +03:00
Marshall Lochbaum
cae65947cd
Apply fast Replicate code whenever the cell size is right
2022-09-17 21:01:17 -04:00
Marshall Lochbaum
ea1367e639
Handle cell size 0 correctly in cellWidthLog()
2022-09-17 21:01:13 -04:00
Marshall Lochbaum
c72b9b5abd
Redo replicate with sparse and dense cases
2022-09-17 16:17:47 -04:00
Marshall Lochbaum
5f196c49d9
Extend sparse and dense where to all cases fitting in i32s
2022-09-16 22:01:56 -04:00
Marshall Lochbaum
fb1230bcc2
Sparse Indices prototype
2022-09-16 22:01:56 -04:00
Marshall Lochbaum
26c3dbfeea
Start using type-independent utilities in compress()
2022-09-16 22:01:56 -04:00
Marshall Lochbaum
3505e1515e
Extend Group where 𝕨 is an integer list to handle higher-rank 𝕩
2022-09-16 22:01:56 -04:00
Marshall Lochbaum
21033fa355
Move Group to its own file
2022-09-16 22:01:56 -04:00
Marshall Lochbaum
0b1ded14e0
Type-independent Reverse
2022-09-16 22:01:56 -04:00
Marshall Lochbaum
b84a2d4e1f
Special-casing for length 1 in self-search functions
2022-09-16 22:01:56 -04:00
Marshall Lochbaum
57d33990e3
Make self-search special code only depend on cell size
2022-09-16 22:01:56 -04:00
dzaima
9c5396e711
consistently output WARN_SLOW information on stderr
2022-09-12 20:12:32 +03:00
dzaima
89503ba1c1
don't not check top bits in LIKELY & RARE
2022-09-12 19:51:07 +03:00
dzaima
889c520251
move slash_im setting
2022-09-12 18:32:56 +03:00
dzaima
a46ec7343e
not slow ⍉bitarr, fix ⊢⌾⍉ 2‿3‿4⥊↕24
2022-09-12 18:27:18 +03:00
dzaima
32d533b6e2
don't print left argument of ⊑ if it's large
2022-09-12 18:21:04 +03:00
dzaima
47c4a53da4
fix WARN_SLOW build
2022-09-12 18:19:05 +03:00
Marshall Lochbaum
6d372959e8
Just return 𝕩 for an all-ones compress
2022-09-11 21:48:31 -04:00
Marshall Lochbaum
9b17701c66
Sparse 1- and 2-byte compress, with blocking, if total sum is low enough
2022-09-11 20:19:20 -04:00
Marshall Lochbaum
c796670549
Faster trailing zero trim, and apply it to all cases in compress()
2022-09-11 20:19:20 -04:00
Marshall Lochbaum
2baa88ad31
Compress for 4-byte and 8-byte data using index blocks
2022-09-11 18:00:29 -04:00
Marshall Lochbaum
ab25b08f84
Move compress (bool/list) to its own function
2022-09-11 16:32:41 -04:00
Marshall Lochbaum
819899c745
Implement f64 Where with u16 blocks
2022-09-11 16:32:41 -04:00
Marshall Lochbaum
fda3efe217
More macros for Where
2022-09-11 15:31:23 -04:00
Marshall Lochbaum
0d6894ddbc
Fix broken non-Singeli dense i32 Where
2022-09-11 15:15:56 -04:00
Marshall Lochbaum
4bc5350747
Branchless sparse i16 Where
2022-09-11 11:00:17 -04:00
Marshall Lochbaum
1f40d36712
Separate where into its own function and split different types completely
2022-09-11 08:31:20 -04:00
Marshall Lochbaum
638121c054
Use blocked method for i32 Where with or without Singeli
2022-09-11 07:57:14 -04:00
Marshall Lochbaum
4999758497
Branchless i32 sparse Where
2022-09-11 07:57:01 -04:00
Marshall Lochbaum
017fcaea2a
Move slash functions to a separate file
2022-09-10 09:58:42 -04:00
Marshall Lochbaum
bb3ecdca6a
Sparse Where
2022-09-10 09:12:16 -04:00
Marshall Lochbaum
ae9817fd0d
Fast path for / with empty result, and faster non-Singeli Where
2022-09-10 09:02:17 -04:00
Marshall Lochbaum
d8abc4ef7e
Separate handling for ⊔ when 𝕨 changes value rarely
2022-09-09 18:11:12 -04:00
Marshall Lochbaum
ef2dee9a4d
Special case data movement for ⊔ on sorted 𝕨
2022-09-09 13:21:08 -04:00
Marshall Lochbaum
569dcacac1
Do Group's range check and ¯1 counting on 1- or 2-byte ints
...
Doesn't vectorize, but at least it speeds up filtering later
2022-09-09 08:58:23 -04:00
Marshall Lochbaum
1e143644b6
Filter out ¯1s in Group with / if there are enough of them
2022-09-08 21:00:15 -04:00
dzaima
e266fbd09e
basic float monadic arith loops, incl. -fno-math-errno
2022-09-08 23:18:47 +03:00
dzaima
2358436b89
more efficient spreadBits{[8]u32, u8}
2022-09-08 21:51:25 +03:00
dzaima
d3a1fee437
singeli bit_sel
2022-09-08 21:39:51 +03:00
dzaima
d60713225b
just use u64 in bitsel
2022-09-08 20:25:09 +03:00
dzaima
1619b6087b
mild optimization of v_set argument consumption
2022-09-08 20:05:13 +03:00
dzaima
3ccef1fe86
⊔𝕩 → ⊔⟜(↕≠)𝕩
2022-09-08 14:52:19 +03:00
dzaima
59cadb06fe
fix ⟨⟨⟩⟩⊏⟨⟩ incorrectly erroring
...
incl. ⟨⟨⟩,⟨⟩⟩⊏0‿0⥊⟨⟩, ⟨⟨⟩⟩⊏0‿0⥊⟨⟩, etc
2022-09-08 00:56:31 +03:00
dzaima
66d32e0acb
fast exit for depth-2 𝕨 in 𝕨⊏𝕩
2022-09-08 00:47:25 +03:00
dzaima
96ca9092ba
attempt at better bit_sel dispatch
2022-09-08 00:37:44 +03:00
dzaima
234443a17c
src/README.md updates
2022-09-08 00:03:42 +03:00
dzaima
59e947cc20
more consistent type checking & conversion functions
2022-09-07 23:56:03 +03:00
dzaima
734e9fc116
better type checking helpers
2022-09-07 23:38:51 +03:00
dzaima
2299c8094e
make gcc scream less
2022-09-07 20:28:45 +03:00
dzaima
0e306ca149
use WRAP instead of manual index management
2022-09-07 20:22:26 +03:00
dzaima
10004b82f7
make 1.2‿3.4⊏≍˘"abcd" error
2022-09-07 19:53:31 +03:00
dzaima
94e6168319
don't read past the end of array even if the value isn't used
...
bit_sel still uses it
2022-09-07 19:41:22 +03:00
dzaima
5d660cbf19
deduplicate hashmap size doubling function
2022-09-07 19:32:02 +03:00
dzaima
1a583725be
use TALLOCP in other places
2022-09-07 17:59:17 +03:00
dzaima
b784dac9e1
make clang not go crazy
2022-09-07 00:27:23 +03:00
Marshall Lochbaum
a43a42e4d1
Select from small boolean list by copying to bytes
2022-09-06 16:34:08 -04:00
Marshall Lochbaum
f877a45a63
Vectorize range checks for 1- and 2-byte indices
2022-09-06 16:34:08 -04:00
Marshall Lochbaum
4a8244f2c1
Faster selection from boolean list
2022-09-06 16:08:16 -04:00
Marshall Lochbaum
55263bcbc4
Handle bit selection from arrays with under 2 elements
2022-09-06 16:08:16 -04:00
dzaima
1c279a0a20
fast bitarr×intarr
2022-09-06 22:47:16 +03:00
dzaima
a90e7de997
simpler atom-array arith on length 0 inputs
2022-09-06 18:24:49 +03:00
dzaima
311aa74303
simpler bitsel for ∨
2022-09-06 17:31:42 +03:00
dzaima
ce1c81219e
manual wideness check
2022-09-06 17:23:57 +03:00
dzaima
0b4259559c
include errno.h in file.c unconditionally
2022-09-06 00:08:55 +03:00
dzaima
bffe16d6e9
fix overflowed & float functions
2022-09-05 23:23:51 +03:00
dzaima
c0b2164dc8
new array-atom arith
2022-09-05 22:52:53 +03:00
dzaima
629076d001
new ⟨⟩↕0 behavior & fix /⁼large_i8arr
2022-09-05 22:40:40 +03:00
dzaima
7f00d54372
rearrange arithd.c a bit more
2022-09-04 00:35:58 +03:00
Marshall Lochbaum
7792c60180
Fix unnecessary errors with computed shape 0, such as 1e8‿⌊‿1e8⥊↕5
2022-09-03 14:41:28 -04:00
Marshall Lochbaum
97bfacec44
Fix hang in •rand.Subset caused by moving wi==0 case into wi==xi
2022-09-03 14:41:28 -04:00
Marshall Lochbaum
44c0baee05
No need to initialize the negative half of the counts table
2022-09-03 14:41:28 -04:00
Marshall Lochbaum
37af32d95c
Faster /⁼ for boolean and long 1-byte and 2-byte 𝕩
2022-09-02 14:31:07 -04:00
dzaima
0139c5f58d
separate dyadic arith cases
2022-09-02 14:01:35 +03:00
dzaima
a637adadd9
rearrange arithd.c in preparation for separating its cases
2022-09-02 13:10:04 +03:00
dzaima
76141f6fe6
reduce lifetime of e in dyArith_AA
2022-09-01 22:45:30 +03:00
dzaima
1b8bd0707e
make dyarith array-array dispatch its own function
2022-09-01 22:22:13 +03:00
dzaima
bd04e38a5e
use existing copy functions for arr_join_inline
2022-09-01 19:52:51 +03:00
dzaima
90dd740bfc
use cpyHArr instead of a getter loop
2022-09-01 19:25:20 +03:00
dzaima
dad47cf391
move arith_recd to a noinline function
2022-09-01 18:51:02 +03:00
dzaima
f758a3f1f6
proper argument name
2022-09-01 18:40:48 +03:00
dzaima
1c43ad6431
squeeze •rand.Subset result
2022-09-01 18:25:10 +03:00
dzaima
e72c7dc937
faster ÷ ⋆ √ | ⋆⁼ on i8 & i16 arrays
2022-09-01 16:06:52 +03:00
dzaima
5cfa89ad5a
separate functions for comparison scalar & array cases
2022-09-01 15:06:34 +03:00
dzaima
72f25dad54
bitarr ↕1 and ↕2
2022-09-01 13:29:03 +03:00
dzaima
7d716d5ce0
elInt
2022-09-01 11:17:49 +03:00
dzaima
203916b44f
error on non-numbers in +𝕩
2022-09-01 11:16:42 +03:00
Marshall Lochbaum
76c93d85e1
Dyadic 32-bit / based on 8-bit monadic /
2022-08-31 16:11:52 -04:00
Marshall Lochbaum
1e0cf78fd0
Implement 4-byte where with blocks of 2-byte where
2022-08-31 16:11:52 -04:00
Marshall Lochbaum
6f02705d9f
Make small-range Grade code style more like radix code
2022-08-31 16:11:52 -04:00
Marshall Lochbaum
758c174cae
Optimistic special case to quickly invert permutations with ⍋
2022-08-31 16:11:52 -04:00
Marshall Lochbaum
a42335af4f
Use or-equals for dyadic ∊ when 𝕩 is small and arguments are flat
2022-08-31 16:11:52 -04:00
Marshall Lochbaum
15b444540e
Extend self-search typed code to characters by treating as numbers
2022-08-31 16:11:52 -04:00
Marshall Lochbaum
9028ebfe8b
Native Windows (↕)
2022-08-31 16:11:52 -04:00
dzaima
88f73d2585
fix comment & add note
2022-08-31 22:22:03 +03:00
dzaima
9775339e2c
squeeze result of ⌊ and ⌈
2022-08-30 00:18:25 +03:00
dzaima
ce1032f80d
second instruction shouldn't have a swap requirement anymore
2022-08-29 23:09:47 +03:00
dzaima
8ea2352a7b
clear out swap table after first instruction generation
2022-08-29 23:08:38 +03:00
dzaima
70ee775a33
fix i16arr+i8arr overflow
2022-08-29 22:59:12 +03:00
dzaima
39a0a894e2
correct char-char→signed int overflow checking
2022-08-29 22:48:46 +03:00
dzaima
b37f620889
disable manual array F character loops when not running singeli
2022-08-29 19:46:41 +03:00
dzaima
78e5799147
merge dyarith.singeli and dyarith2.singeli
2022-08-29 19:18:20 +03:00
dzaima
777c5cc1a5
rename things
2022-08-29 19:05:34 +03:00
dzaima
ce5ece34e1
new arith
2022-08-28 23:28:06 +03:00
dzaima
3c1ef1c9a2
use elNum
2022-08-28 16:44:21 +03:00
Marshall Lochbaum
f80d3ce263
Branchless integer binary search
2022-08-28 09:16:25 -04:00
Marshall Lochbaum
139faee0a1
Unify integer and character Bins
2022-08-28 09:16:09 -04:00
Marshall Lochbaum
9376e02ecb
Boolean sorting
2022-08-27 15:44:25 -04:00
Marshall Lochbaum
e027aca0cf
Radix grades
2022-08-27 15:16:20 -04:00
Marshall Lochbaum
36e54d1a39
1-byte radix with length ==256 doesn't work because of SWAR overflow when descending
2022-08-27 11:10:17 -04:00
Marshall Lochbaum
4ec83e51a6
Merge sort.h into grade.h
2022-08-27 10:59:00 -04:00
Marshall Lochbaum
9d59dff522
4-byte sorting: insertion and radix
2022-08-26 22:04:32 -04:00
Marshall Lochbaum
f946a3de41
2-byte sorting: insertion, radix, counting
2022-08-26 22:04:32 -04:00
Marshall Lochbaum
5034e55c79
Move Sort to template file sort.h (for up/down) like Grade
2022-08-26 22:04:32 -04:00
Marshall Lochbaum
a0a4ecadc7
1-byte sorting: insertion, bucket, counting
2022-08-26 22:04:32 -04:00
dzaima
5a162c7929
macos-specific sub-second file times
2022-08-26 22:46:00 +03:00
dzaima
2939395906
fallback file time getting method
2022-08-26 22:31:10 +03:00
dzaima
81e09956d3
•file.Size, make •file.List decode UTF-8
...
invalid UTF-8 is a problem for the future
2022-08-26 13:37:51 +03:00
dzaima
484158318a
explicit JIT_ENABLED macro independent from JIT_START
2022-08-26 10:16:45 +03:00
dzaima
b16378bef6
add thing that was previously non-existent
2022-08-26 10:16:16 +03:00
dzaima
1927cb5756
implement ⍷𝕩 with (∊𝕩)/𝕩
2022-08-25 23:17:00 +03:00
dzaima
398a66ed94
fix c0 offset
2022-08-25 22:44:31 +03:00
dzaima
20a15097b4
remove non-existent thing
2022-08-25 22:33:38 +03:00
dzaima
d12a53fd08
•file.Created, •file.Accessed, •file.Modified
2022-08-25 22:29:03 +03:00
dzaima
905a9f78d4
{raw⇐1} •SH 𝕩
2022-08-25 22:27:35 +03:00
Marshall Lochbaum
e8e12e2d8f
Another allocation improvement
2022-08-25 14:09:10 -04:00
Marshall Lochbaum
34950339c2
Improve radix+table allocation layout
2022-08-25 14:00:28 -04:00
dzaima
600bb59c77
more diagram
2022-08-25 20:27:30 +03:00
Marshall Lochbaum
c590d73030
Missed TFREE
2022-08-25 11:25:59 -04:00
Marshall Lochbaum
b2992a11b8
1- and 2-byte methods for monadic ⊐
2022-08-25 11:10:11 -04:00
Marshall Lochbaum
98cd80c13d
Port all the integer monadic ∊ methods to ⊒
2022-08-25 10:39:38 -04:00
Marshall Lochbaum
f54942f175
Make first initialization in radix 4-byte lookup sparse too
2022-08-24 21:05:39 -04:00
Marshall Lochbaum
ad8570be11
Wait, sparse initialization with a pass through the argument is faster than radix stuff
2022-08-24 20:26:02 -04:00
Marshall Lochbaum
5cd2cab26e
Small-number integer ∊ with all-pairs comparison and 2-byte radix+table
2022-08-24 18:44:00 -04:00
Marshall Lochbaum
7ffa0dac4a
Switch from using IA to *SH for length
2022-08-24 11:08:27 -04:00
Marshall Lochbaum
efe2e86271
Unify search function preambles, so all have empty and rank>1 cases
2022-08-24 11:03:05 -04:00
Marshall Lochbaum
9d402c1bdd
Move self-search functions to selfsearch.c
2022-08-24 10:47:04 -04:00
Marshall Lochbaum
eff9df5a26
Table lookups for self-search functions
2022-08-24 10:28:19 -04:00
Marshall Lochbaum
633e790099
Radix-assisted lookup implementation for ∊
2022-08-24 10:27:55 -04:00
dzaima
5be18bb180
fix ∾⟨"ab",1⟩
2022-08-23 17:16:07 +03:00
dzaima
355d7978ed
include •file.Parent in system value docs
2022-08-23 17:11:15 +03:00
dzaima
eb9550aa29
•file.Parent
2022-08-22 15:30:37 +03:00
dzaima
aa95b6add4
actually use TY(x) / PTY(x) more
2022-08-21 16:11:40 +03:00
dzaima
5112796cfd
move m_unit out of header file
2022-08-21 15:48:04 +03:00
dzaima
c69a3373b9
better m_atomUnit
2022-08-21 08:50:33 +03:00
dzaima
7393c4b663
fully native ⊑
2022-08-21 07:58:41 +03:00
dzaima
505f6869fc
rt_join not needed anymore
2022-08-21 07:53:41 +03:00
dzaima
582ff8909b
@ •FFI 𝕩
2022-08-21 07:49:09 +03:00
dzaima
4ed814e395
cleanup of new field reading macros
2022-08-20 09:04:22 +03:00
dzaima
1694bfb7d2
s?p?rnk(x) → S?P?RNK(x)
2022-08-20 08:36:59 +03:00
dzaima
e10f13d6ea
x->type → TY(x) / PTY(x)
2022-08-20 08:30:12 +03:00
dzaima
d2a4efe4b5
x->sh → SH(x) / PSH(x)
2022-08-20 08:30:07 +03:00
dzaima
e6b4f85662
x->ia → IA(x) / PIA(x)
2022-08-20 08:30:03 +03:00
dzaima
558c14cccd
fix fill of empty 𝕨⊏𝕩
2022-08-20 08:23:58 +03:00
dzaima
719d37cd63
reorder eachm_fn and eachd_fn args
2022-08-18 11:18:34 +03:00
dzaima
b1300e6e76
yet another string function rename
2022-08-18 09:07:32 +03:00
dzaima
e49fcd3449
typed n •rand.Range 2⋆31
2022-08-17 19:41:32 +03:00
dzaima
81bdec4737
128-bit multiplication & unrolling doesn't go well in clang
2022-08-17 19:10:01 +03:00
dzaima
c5b65b9246
typed •rand.Range
2022-08-17 18:53:41 +03:00
Marshall Lochbaum
56a1d9ec4c
Singeli integer ⌊ and ⌈
2022-08-15 16:01:17 -04:00
dzaima
1fcc3b0030
saner bytecode metadata storage
2022-08-15 12:00:50 +03:00
dzaima
4b272148f5
make allocL after splitTo call skip empty bucket checking
2022-08-14 11:19:11 +03:00
dzaima
7e4096e572
nicer fold loops
2022-08-14 02:34:26 +03:00
dzaima
ff0ea7a0ad
fix empty program check in REPL
2022-08-14 02:33:48 +03:00
Marshall Lochbaum
b579440f5e
Change × and ∧ integer reductions to reverse order
2022-08-13 19:02:22 -04:00
Marshall Lochbaum
82d2eb5b1a
Fix monadic ⌊` initial element
2022-08-13 19:00:59 -04:00
Marshall Lochbaum
195336b6df
Implement F˝x as <F´x for rank-1 x and arithmetic F
2022-08-13 16:04:20 -04:00
Marshall Lochbaum
22925eee4b
Fast ⌊, matching ⌈
2022-08-13 15:03:23 -04:00
Marshall Lochbaum
27943b85f4
Fast boolean =´ and ≠´
2022-08-13 14:39:53 -04:00
Marshall Lochbaum
37312f7a03
Lift out bitarr_ptr calls
2022-08-13 14:28:16 -04:00
Marshall Lochbaum
f406b05303
Fill boolean scan gaps: ∨ and dyadic int≠bool
2022-08-13 14:05:48 -04:00
Marshall Lochbaum
6a00b6d7d4
Fast boolean -´
2022-08-13 13:45:56 -04:00
Marshall Lochbaum
4950506c72
Separate boolean fold and scan code from other special cases to handle aliases better
2022-08-13 13:34:01 -04:00
dzaima
3ab92ecd66
explicit pointer → u64 conversion
...
work towards gcc 32-bit x86 builds. (gcc sign-extended pointers without this changeset)
gcc miscompiles `union B` usage though (https://godbolt.org/z/hEWKdc5PK ), which I can do nothing about, so clang is still the only option for 32-bit x86 builds
2022-08-10 10:20:48 +03:00
dzaima
a9b3b3de97
use TALLOC instead of m_shArr
2022-08-07 01:19:09 +03:00
dzaima
36e78da56f
Merge pull request #30 from mlochbaum/join
...
Native Join
2022-08-07 01:13:30 +03:00
Marshall Lochbaum
78f14be79d
Finish multidimensional join
2022-08-06 17:30:30 -04:00
Marshall Lochbaum
1d891388b5
High-rank join shape checking
2022-08-05 22:01:42 -04:00
Marshall Lochbaum
c1d5ca5c29
Switch from min and max to max and difference in Join shape checking
2022-08-05 21:50:39 -04:00
dzaima
bac1eaf9e3
squeeze result of ¨
2022-08-05 03:19:12 +03:00
dzaima
fd1ac7487c
wyhash microoptimization
2022-08-05 03:08:39 +03:00