Commit Graph

1796 Commits

Author SHA1 Message Date
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
dzaima
98e3021efb fix bit boolean array hash only using the first 1/8 of the array 2022-08-04 02:55:19 +03:00
Marshall Lochbaum
bf6a8c5699 Handle any rank empty, and rank 0, in Join 2022-08-01 21:21:10 -04:00
Marshall Lochbaum
d9d421db04 Handle atoms in Join of list 2022-08-01 17:31:07 -04:00
Marshall Lochbaum
b8e6996e7e Shape logic for Join of any list 2022-08-01 17:27:22 -04:00
dzaima
a6deb4b691 native unit∊vector 2022-07-26 04:30:33 +03:00
dzaima
9480ee9da2 native ⌾(F G), ⌾(F∘G), ⌾<, <⁼ 2022-07-26 03:38:30 +03:00
dzaima
a5e206d009 always print sample sum in the profiler 2022-07-26 03:14:05 +03:00
dzaima
58f8772bd3 use singeli copy functions for mut copyG 2022-07-26 00:18:00 +03:00
dzaima
9acb9e6bf4 fix ⎉ low-rank fill computation 2022-07-26 00:04:13 +03:00
dzaima
d959482d44 move generic array copy to its own function 2022-07-25 05:21:14 +03:00
dzaima
6b90615896 more correct stack height going negative check 2022-07-24 22:18:22 +03:00
dzaima
c1b66c5982 don't bother iterating through generic array items in cpy.*Arr on free 2022-07-24 00:05:42 +03:00
dzaima
32d8c09e2b limit row-wise F⌜ to 7<≠⥊𝕩 2022-07-23 02:18:42 +03:00
dzaima
599c56051d convert ⊐ result to smaller type based on ≠𝕨 2022-07-22 05:50:34 +03:00
dzaima
bd5ab29387 native vec⊐highRankArr 2022-07-22 05:39:26 +03:00
dzaima
8ca94cc623 make withFill properly know that a bit boolean array is a number array 2022-07-22 05:03:57 +03:00
dzaima
046284b96f random cleanup 2022-07-22 03:59:44 +03:00
dzaima
29fe3206cd fix path_rel with empty base path 2022-07-15 23:25:49 +03:00
dzaima
b43153495a a bit more valgrind debugging stuff 2022-07-10 06:07:28 +03:00
dzaima
5de154fb54 option to flush perf map after each write
e.g. for use while live debugging
2022-07-10 04:23:17 +03:00
dzaima
0b155e4416 simpler vg_pext_u64 tail handling
that makes it not get SIMD-mangled when optimizations are enabled, thus allowing valgrind to preserve vbits
2022-07-10 04:02:49 +03:00
dzaima
aabaac977b more strict freed memory handling for valgrind 2022-07-10 02:40:43 +03:00
dzaima
a17d8004be make valgrind run under -DMM=0
even if it's not very helpful as CBQN requires being able to read garbage past allocation ends
2022-07-10 02:07:18 +03:00
dzaima
eb5b32319f make ∨`𝕩 run under valgrind 2022-07-10 02:01:59 +03:00
dzaima
041a87ff98 make valgrind accept /𝕩 and 𝕨/𝕩 impls 2022-07-10 01:51:15 +03:00
dzaima
0684fe5fcb some fixes for ubsan 2022-07-10 01:43:21 +03:00
dzaima
9a00da6369 deduplicate ia writing 2022-07-09 02:18:22 +03:00
dzaima
3c2a7dbefa high-rank in-place w∾x 2022-07-09 02:00:22 +03:00
dzaima
1c645e11d8 fix •FromUTF8 name 2022-07-08 19:34:30 +03:00
dzaima
1a9d2d0118 apparently apple clang 11.0.3 infinite-loops on mmap_nvm too 2022-07-03 02:18:14 +03:00
dzaima
837372295d small simplification 2022-07-02 03:52:34 +03:00
dzaima
010db0b1fc mark direct access result const 2022-07-01 21:30:47 +03:00
dzaima
a6a1448382 bqn_copy & bqnffi.h comment cleanup 2022-06-30 17:44:01 +03:00
dzaima
f27ba6d569 even more microoptimization 2022-06-30 16:25:29 +03:00
dzaima
c794fb0ef9 more microoptimization 2022-06-30 15:40:54 +03:00
dzaima
74eaa3853f optimize squeeze result choosing 2022-06-30 03:51:00 +03:00
dzaima
685c3ecbc6 fix fill leak on @⌾(0⊸⊑) 2⥊<"foo" 2022-06-30 03:37:52 +03:00
dzaima
0313b0a0a0 fix •internal.Variation 2022-06-30 03:05:30 +03:00
dzaima
859be5efb2 singeli chr_squeeze 2022-06-30 01:47:57 +03:00
dzaima
75bfa5d905 singeli num_squeeze 2022-06-30 01:47:50 +03:00
dzaima
e31c574fd8 separate squeeze to its own file 2022-06-29 18:36:05 +03:00
dzaima
86cf6f5c2d faster value⊸F & F⟜value 2022-06-28 15:58:13 +03:00
dzaima
8882fb959a move scope_dec cycle handling to a noinline function 2022-06-27 19:50:30 +03:00
dzaima
d18ebc3d07 fix withFill previous fill check 2022-06-27 03:22:36 +03:00
dzaima
fadde40f78 more incG 2022-06-26 23:48:30 +03:00
dzaima
59f0aaa732 defer explain loading to when it's invoked 2022-06-26 22:14:30 +03:00
dzaima
997ced9d2e
Merge pull request #25 from Detegr/explain
support calling explain for an expression
2022-06-26 21:56:32 +03:00
dzaima
266c742b98 fix refcount 2022-06-26 21:54:41 +03:00
dzaima
a6081600ae namespace reading functions for FFI 2022-06-25 17:32:41 +03:00
dzaima
efb4a06a25 x⥊0 & x⥊1 → bitarr 2022-06-25 16:17:34 +03:00
dzaima
43b8b5e2a0 )escaped 2022-06-19 21:05:05 +03:00
Antti Keränen
0314f55a78 support calling explain for an expression 2022-06-18 22:09:36 +03:00
dzaima
0232cda412 support ARMM 0 2022-06-16 21:05:06 +03:00
dzaima
1fd88c1749 clean up ascii/utf8 functions 2022-06-15 15:31:57 +03:00
dzaima
e3da1da8f6 properly error on alias list being assigned to non-namespace 2022-06-14 03:36:40 +03:00
dzaima
6307356bab rearrange common array case to top 2022-06-14 02:40:50 +03:00
dzaima
f3fffd2b8d fix [a,b]+↩1 2022-06-14 02:33:41 +03:00
dzaima
3b82419202 fix error messages 2022-06-14 02:28:13 +03:00
dzaima
f9d251ec08 ARRO/ARRM→LSTO/LSTM 2022-06-14 02:12:37 +03:00
dzaima
5e0bda6a28 ARMO & ARMM 2022-06-14 02:09:41 +03:00
dzaima
8a84726e6e fix wasm build 2022-06-12 22:33:59 +03:00
dzaima
baa4641a44 don't needlessly include sys/mman.h 2022-06-12 22:29:35 +03:00
dzaima
5a32a00f46 more checks of NO_MMAP 2022-06-12 22:12:08 +03:00
dzaima
ab69f86cb5 store fill in FillSlice 2022-06-11 17:36:51 +03:00
dzaima
e137d8536d native ↑𝕩 & ↓𝕩 2022-06-10 00:14:42 +03:00
dzaima
025043b84e make arr_shVec return its argument 2022-06-10 00:08:13 +03:00
dzaima
638891bde1 missing double-space 2022-06-09 18:15:30 +03:00
dzaima
a298bc3018 more function name cleanup 2022-06-09 18:12:15 +03:00
dzaima
5636c1e2ca clean up some function names 2022-06-09 04:10:46 +03:00
dzaima
2359e54661 a bit saner heap format 2022-06-09 04:10:23 +03:00
dzaima
82fc2a2bda remove rt_rank 2022-06-09 04:09:07 +03:00
dzaima
021fd5d8c3 native empty ˘ & ⎉ cleanup 2022-06-09 04:00:04 +03:00
Marshall Lochbaum
b862d7c075 Native empty-frame Rank modifier (⎉) 2022-06-08 20:16:30 -04:00
Marshall Lochbaum
5c59da7376 Handle fills in monadic ⎉ by passing to the runtime 2022-06-08 18:02:29 -04:00
Marshall Lochbaum
f686298664 Native empty dyadic Cells (˘) 2022-06-08 18:01:27 -04:00
dzaima
b865eb84ba make known type mut functions take data pointer instead of Mut* 2022-06-08 03:48:31 +03:00
dzaima
f74f355360 explicit switches in mut.h & update comments 2022-06-08 01:00:02 +03:00
dzaima
b48b184f14 reduce binary size by 1% by a less horrifically unrolled m_scope 2022-06-07 19:19:59 +03:00
dzaima
6b6f2892b7 free error message object 2022-06-07 18:47:13 +03:00
dzaima
14b7942556 )clearImportCache 2022-06-05 17:17:20 +03:00
dzaima
0674c6bafb ffi: more const 2022-06-05 13:35:22 +03:00
Antti Keränen
8923f6a3b8 ffi: make bqn_evalCStr use a constant string 2022-06-05 10:22:13 +03:00
dzaima
3f7261c812 fix error when UTF-8 •SH output is split between reads 2022-06-04 17:26:00 +03:00
dzaima
cc8d1cb4d7 fix m_vec1 under OOM 2022-06-04 02:13:01 +03:00
dzaima
4a2d460998 fix tbl_c2 under OOM 2022-06-04 02:12:50 +03:00
dzaima
f8447d9b5f properly restore compilation globals in case compiler errors 2022-06-04 01:24:52 +03:00
dzaima
8ad7b6149f OOM fuzz testing base 2022-06-04 01:19:17 +03:00
dzaima
1e2b734f5d fix incorrect refcounting of 7dc4f1 2022-06-04 01:13:03 +03:00
dzaima
b32b818df7 fix m_shArr erroring within arr_shAlloc 2022-06-04 00:35:22 +03:00
dzaima
7dc4f1c36c reorder compile to do allocations after initializing Comp 2022-06-04 00:04:46 +03:00
dzaima
9248d1e876 fix ⊔ leaving item shape uninitialized 2022-06-03 23:40:55 +03:00
dzaima
e92dce58fb shared library build 2022-06-03 22:04:48 +03:00
dzaima
9d97c20c38 bqn_init 2022-06-03 21:17:25 +03:00
dzaima
d4da8a1127 update stack pointer before allocations 2022-06-03 20:54:23 +03:00
dzaima
d3555b4af6 fix •Import when execution errors 2022-06-03 20:35:38 +03:00
dzaima
2dbbb3415e fix m_nsDesc failing to allocate leaving body->nsDesc uninitialized 2022-06-03 19:50:26 +03:00
dzaima
6aada8338e proper state restore after failed allocation in codegen 2022-06-03 17:17:30 +03:00
dzaima
86fc9041fa print fallback stacktrace code to stderr 2022-06-03 16:24:43 +03:00
dzaima
73ff6fe722 add interrupt check to allocation slow slow path 2022-06-03 16:04:48 +03:00
dzaima
572bc04459 move interrupt check to its own header 2022-06-03 16:02:02 +03:00
dzaima
7a21f9ef73 experimental REPL interrupting 2022-06-03 15:38:32 +03:00
dzaima
47e4e68eee fix )profile@123 2022-06-03 14:47:43 +03:00
dzaima
f9a8eb0ce3 static noinline apparently results in argument slots being optimized out
but that means that the arguments between the two won't align, resulting in unnecessary 'mov's
2022-06-03 02:51:09 +03:00
dzaima
2697e749e1 better ⌾ fallback 2022-06-02 03:30:39 +03:00
dzaima
f1faff2866 fix FFI=1 build 2022-05-30 19:55:30 +03:00
dzaima
cb1338951c more shcpy 2022-05-30 17:53:54 +03:00
dzaima
3455bed3ee remove pointless check in ≠𝕩 2022-05-30 15:12:48 +03:00
dzaima
3c314e266a correct format string 2022-05-30 02:13:50 +03:00
dzaima
79bd6fc689 use shProd more 2022-05-30 02:07:25 +03:00
dzaima
cc44b3e57b shProd 2022-05-30 01:54:47 +03:00
Marshall Lochbaum
68914c1a39 Native dyadic Rank modifier implementation, except empty frames 2022-05-29 18:14:04 -04:00
Marshall Lochbaum
3947463c34 Native dyadic Rank modifier implementation when one or both arguments are full rank 2022-05-29 18:14:04 -04:00
Marshall Lochbaum
df783d15a5 Align toKCells with rank_c1 changes 2022-05-29 18:14:04 -04:00
Marshall Lochbaum
2c0de9ee02 Check rank vector completely before starting computations in ⎉ 2022-05-29 18:14:04 -04:00
dzaima
b8701d3502 more descriptive paths for self-hosted files 2022-05-29 22:20:50 +03:00
dzaima
960ae96591 show source-less & path-less entries in the profiler 2022-05-29 22:16:42 +03:00
dzaima
0380ee2a40 fix wasm builds 2022-05-29 22:05:04 +03:00
dzaima
e2fda60745 profiler 2022-05-29 22:02:50 +03:00
dzaima
5b2d221d0b bqn_type 2022-05-29 18:46:59 +03:00
dzaima
6033c2e90e flush pipes in g_pst 2022-05-29 16:12:14 +03:00
dzaima
a108ef2ce7 use eqShPart in arithd.c 2022-05-29 14:44:44 +03:00
dzaima
60a68c3c25 manual shcpy loop 2022-05-29 14:20:11 +03:00
dzaima
54645df2a9 use shcpy for copying shapes 2022-05-29 14:08:30 +03:00
dzaima
3fa0463241 manual eqShPart
mainly to not suffer the cost of function invocation, as the common case is len==1
2022-05-29 14:03:15 +03:00
dzaima
3dd1bffe2f don't unroll arr_csz 2022-05-29 13:57:03 +03:00
dzaima
bf618b9b64 native 𝔽⌾(n⊸↑) & 𝔽⌾(n⊸↓) 2022-05-29 13:38:04 +03:00
dzaima
04c2ce7ade tests for bqnffi.h 2022-05-28 17:35:30 +03:00
dzaima
093958f92a
Merge pull request #21 from dzaima/ffi
FFI
2022-05-28 01:29:21 +03:00
dzaima
622a5468d8 remove old ffi.h 2022-05-28 00:15:33 +03:00
dzaima
12631cb142 ffi tests 2022-05-27 23:57:56 +03:00
dzaima
662b23d808 add newline after fputs 2022-05-23 16:45:50 +03:00
dzaima
2775a92535 ffi: support **:type 2022-05-23 16:42:02 +03:00
dzaima
ec76a3cd70 ffi: *:t, scalar:t support for result 2022-05-22 16:13:13 +03:00
dzaima
e09cefd049 u64/i64 arguments, check whether integer arguments are exact 2022-05-22 14:42:16 +03:00
dzaima
af194b55ae make •FFI read relative to file 2022-05-22 04:42:59 +03:00
dzaima
c7e0b59e88 print more things to stderr 2022-05-22 04:40:13 +03:00
dzaima
e24f3c9df5 allow u64 result when lossless 2022-05-22 04:26:02 +03:00
dzaima
d0c63e4da4 fix FFI &f32 2022-05-22 04:02:55 +03:00
dzaima
1a8ee67d41 result & argument position selection 2022-05-21 23:47:02 +03:00
dzaima
af3c6b7857 add FFI=0 for presingeli build 2022-05-14 12:38:40 +03:00
dzaima
e7cc64aa89 nounroll 2022-05-14 12:26:42 +03:00
Paul A. Patience
e684c64847 Add •file.Remove 2022-05-13 21:18:47 -04:00
Paul A. Patience
fdeae8fbfe Add •file.Rename 2022-05-12 18:19:23 -04:00
dzaima
a938f32631 make FFI=1 do something 2022-05-12 14:36:10 +03:00
dzaima
d186294e28 allocate at least minimum size, rename functions 2022-05-11 22:56:14 +03:00
dzaima
09755e5e2c fix FFI : 2022-05-11 22:40:45 +03:00
dzaima
a601ba6a76 very unfinished FFI 2022-05-11 22:30:14 +03:00
dzaima
409524d958 noinline version of vec_add 2022-05-11 18:31:49 +03:00
dzaima
ec273f2102 fix •file.CreateDir 2022-05-10 14:19:15 +03:00
dzaima
63bd4a876e •file.CreateDir 2022-05-09 22:57:37 +03:00
dzaima
5e67b87cf1 identity for f⌜ 2022-05-07 15:46:08 +03:00
dzaima
8c73112d6c pull latest singeli 2022-05-07 15:28:30 +03:00
dzaima
894c56205f native ⌾⍉ 2022-05-02 20:35:16 +03:00
dzaima
3496a939b6 more switch cleanup 2022-05-01 04:47:21 +03:00
dzaima
f12e5fd1c0 move bqn_hash back to header 2022-05-01 04:36:59 +03:00
dzaima
3f787e3845 the tag includes type info anyways 2022-05-01 04:32:16 +03:00
dzaima
782750fd88 bqn_hash refactor 2022-05-01 04:21:17 +03:00
dzaima
0164e4e0bc lazy i8/i16 ∧𝕩 & ∨𝕩 2022-05-01 03:30:11 +03:00
dzaima
88f4fdaa7e 16-bit & 64-bit ⊔ cases 2022-05-01 03:14:23 +03:00
dzaima
5d687b1ac3 lazy impl of i8/i16 arrays in 𝕨 of ⊔ 2022-05-01 03:00:36 +03:00
dzaima
cee8e841f9 better fillarr creating in •internal.Variation 2022-05-01 02:49:10 +03:00
dzaima
0907458b4d allow c32 to use i32 path in ⍋𝕩 2022-05-01 02:34:47 +03:00
dzaima
836fe9184a deduplicate things in ⊏ 2022-05-01 02:24:51 +03:00
dzaima
886feb4ed0 fix fill handling of ⌽ 2022-05-01 02:10:31 +03:00
dzaima
7ab504c8bc unified int & char cases for ⊏ 2022-05-01 01:53:45 +03:00
dzaima
7ece6b2179 unified int & char cases for ⊔ 2022-05-01 01:35:16 +03:00
dzaima
7f9773f971 unified int & char cases for ⍉ & ⌽ 2022-05-01 01:35:11 +03:00
dzaima
1babdf247f unified int & char cases for bitarr/x 2022-04-30 21:49:47 +03:00
dzaima
f8408f0ca6 check for System V calling convention OSes for JIT 2022-04-29 23:17:55 +03:00
dzaima
e979faea0e put mnvmExecBodyInline under a JIT_START check 2022-04-29 22:46:59 +03:00
dzaima
426187be07 make •SH run under cygwin 2022-04-29 22:38:18 +03:00
dzaima
de65d8a59b fix double-increment 2022-04-27 21:33:33 +03:00
dzaima
6abce22447 micro-optimize execBodyInline 2022-04-27 20:15:47 +03:00
dzaima
aefeb3c6fd fix emcc build 2022-04-26 19:32:29 +03:00
dzaima
3f92c32399 no-op ⥊vec 2022-04-25 18:10:37 +03:00
dzaima
de0352caf3 more usage of non-zero length for loops 2022-04-25 18:03:15 +03:00
dzaima
95455241a4 don't do useless tail case 2022-04-25 16:08:03 +03:00
dzaima
ab868a55f3 singeli copy 2022-04-25 03:06:11 +03:00
dzaima
37da98d871 singeli code cleanup 2022-04-21 22:05:47 +03:00
dzaima
7cd19c2840 use ~~ more 2022-04-21 19:35:35 +03:00
Marshall Lochbaum
3aea6aa9d0 Boolean prefix sum using AVX2 shuffling instead of pdep 2022-04-21 11:43:25 -04:00
dzaima
4c03520a07 use maskedLoop in dyarith 2022-04-21 18:33:36 +03:00
dzaima
113f72e86d singeli bitarr conversion to wider arrays 2022-04-21 18:27:20 +03:00
dzaima
b1fd85621a actually use maskstore 2022-04-21 17:48:05 +03:00
dzaima
53b7b2465e correct floating point order of +´ and ×´ 2022-04-21 15:51:10 +03:00
dzaima
6f5414b2a5 ∨`bitarr 2022-04-21 15:12:23 +03:00
dzaima
c3504ec42b proper includes 2022-04-21 04:13:14 +03:00
dzaima
cd431d3338 singeli +` 2022-04-21 03:51:37 +03:00
dzaima
826e9c693a fix 2×´1‿1 2022-04-18 23:23:46 +03:00
dzaima
11d95b67d5 better error messages for no inverse header 2022-04-15 23:20:44 +03:00
dzaima
996009bf09 remove unnecessary header inclusion 2022-04-12 16:58:33 +03:00
dzaima
2e6f94bbf5 move immintrin.h file within ifdef 2022-04-12 16:57:47 +03:00
dzaima
a4a72a78c4 singeli select (disabled) 2022-04-12 16:45:43 +03:00
dzaima
c54e63099f additional check in •internal.Variation 2022-04-12 16:24:25 +03:00
dzaima
f079aa5f76 move select to its own file 2022-04-12 16:23:43 +03:00
dzaima
767a2a9e38 make •file.MapBytes follow spec & fix error message 2022-04-10 05:12:21 +03:00
dzaima
2c2ed7920b directly copy data from typed array for file_wBytes 2022-04-10 01:00:08 +03:00
dzaima
d28454206d check •term.OutRaw & •term.ErrRaw input, fix •bit._cast overflow check 2022-04-09 22:53:57 +03:00
dzaima
fcb6a164ca fix •bit._cast on large inputs 2022-04-09 20:14:42 +03:00
dzaima
355bd5646e correct •file.MapBytes name 2022-04-09 19:51:27 +03:00