Commit Graph

805 Commits

Author SHA1 Message Date
Marshall Lochbaum
d911eafd31 Inverses for •math.Fact and •math.LogFact 2022-11-26 14:20:52 -05:00
Marshall Lochbaum
a3df482acd Use non-inlined recursion for •math functions 2022-11-26 14:14:37 -05:00
dzaima
d383fe57a7 clean up whitespace 2022-11-24 01:26:35 +02:00
Marshall Lochbaum
7715cbc158 Add •math.Sum with Singeli f64 implementation 2022-11-23 16:51:30 -05:00
Marshall Lochbaum
35aef1e5cd •math.Erf, •math.ErfC, and •math.LogFact 2022-11-23 16:46:39 -05:00
Marshall Lochbaum
9a1268ea3a Simplify •math.Comb implementation 2022-11-23 16:46:39 -05:00
Marshall Lochbaum
6eb21bd68c Factorial and combinations functions 2022-11-23 16:46:39 -05:00
Marshall Lochbaum
f6109b3985 Handle no-op and boolean cases of monadic arithmetic quickly 2022-11-23 16:46:39 -05:00
Marshall Lochbaum
58cd6f0f4e Other useful math: log2 log10 log1p expm1 hypot 2022-11-23 16:46:39 -05:00
Marshall Lochbaum
a0f6986832 Hyperbolic trig 2022-11-23 16:46:39 -05:00
Marshall Lochbaum
51840bc853 •math.GCD and •math.LCM for u64 arguments 2022-11-23 16:46:39 -05:00
dzaima
6f5c329e22 noinline float product 2022-11-22 14:24:43 +02:00
dzaima
e7cc8ec444 use o2fG instead of union field 2022-11-21 23:26:25 +02:00
Marshall Lochbaum
31106c730c Fold implementation comments 2022-11-21 15:56:15 -05:00
Marshall Lochbaum
bda653e865 Shortcutting for boolean-valued integer ∨´ 2022-11-21 15:51:03 -05:00
Marshall Lochbaum
f1ca8793e3 Boolean comparison folds, monadic only 2022-11-21 15:36:06 -05:00
Marshall Lochbaum
47392acc33 Implement ×´ for all numeric cases, using f64 product when i32 fails 2022-11-21 15:19:27 -05:00
Marshall Lochbaum
52608ba6ce Singeli min/max-fold 2022-11-21 11:47:50 -05:00
Marshall Lochbaum
4b9a21c75f Do tack-fold with selection 2022-11-21 08:07:38 -05:00
Marshall Lochbaum
38683119c0 Handle some f64 cases in dyadic fold 2022-11-20 22:03:36 -05:00
Marshall Lochbaum
c977065c20 Move +⌈⌊ folds to function tables, unifying monadic and dyadic cases 2022-11-20 21:51:30 -05:00
Marshall Lochbaum
ebfd002793 Blocked +´ and f64 ⌈´ ⌊´ 2022-11-20 21:06:05 -05:00
Marshall Lochbaum
5bfdc26d00 Move fold to its own file 2022-11-20 20:06:35 -05:00
Marshall Lochbaum
b9a3a7886d Ordering function implementation comments 2022-11-20 19:57:00 -05:00
dzaima
24195780df reorder headers to allow OpenBSD hack to function 2022-11-20 18:22:51 +02:00
dzaima
6ff521b200 don't use IA/SH macros for assigning 2022-11-18 15:07:31 +02:00
dzaima
9018051ce3 add •math.Atan2 autocomplete 2022-11-17 19:18:33 +02:00
dzaima
bd6035cdef more system namespace field completion, actually add •ToUTF8 2022-11-17 19:18:33 +02:00
dzaima
983452b409 system value completion 2022-11-17 19:18:33 +02:00
dzaima
94f8b189f7 REINIT_TAIL → FINISH_OVERALLOC 2022-11-17 18:56:46 +02:00
dzaima
55e8a43297 fix test/mut.bqn leaking references 2022-11-17 18:56:46 +02:00
dzaima
1ac5f0a49d arr_shCopy that doesn't compare IA 2022-11-17 18:56:46 +02:00
dzaima
179e0a37dc more tail verify work 2022-11-17 18:56:46 +02:00
dzaima
e5a9c7536d array tail overwriting checker 2022-11-17 18:56:46 +02:00
dzaima
da1062c81c remove unused #undef 2022-11-17 18:55:59 +02:00
dzaima
db89e7a4bb fix function signatures & M1C2; use C1 & bit_negate more 2022-11-17 17:52:19 +02:00
Marshall Lochbaum
be9037cb62 Squeeze for ∨` instead of scalar checking for bool 2022-11-17 08:32:29 -05:00
Marshall Lochbaum
5985e92834 Initialized min/max-scan 2022-11-17 07:59:00 -05:00
Marshall Lochbaum
98d066c343 Use scan_max_num for sorted ⊒ 2022-11-16 21:20:54 -05:00
Marshall Lochbaum
1924aee61c f64 min/max scan 2022-11-16 21:14:32 -05:00
Marshall Lochbaum
136c1afacc Macro-ize integer min/max scan and add sorted flag 2022-11-16 20:49:57 -05:00
Marshall Lochbaum
ac7ff155d4 Pull out scan_add_bool() utility function from scan_c1() 2022-11-16 20:16:33 -05:00
Marshall Lochbaum
d6029985e8 Move scan to its own file 2022-11-16 19:48:37 -05:00
Marshall Lochbaum
93ef4bb2a9 Direct ⍷bool implementation 2022-11-15 22:03:50 -05:00
Marshall Lochbaum
f1142b4184 Branchless ⊒bool, moderately faster 2022-11-15 18:27:54 -05:00
Marshall Lochbaum
d6b09adb57 Add primitive and primitive-1modifier call macros to calls.h 2022-11-15 16:08:34 -05:00
Marshall Lochbaum
4506caf3ac Faster self-search on sorted 𝕩 using »⊸≠𝕩 2022-11-15 16:08:17 -05:00
Marshall Lochbaum
856eabd493 Self-search implementation comments 2022-11-14 21:08:44 -05:00
dzaima
a9737c22ea extract bit array negation to function 2022-11-14 19:47:53 +02:00
dzaima
7e934b04db better negation buffer handling 2022-11-14 19:02:44 +02:00
dzaima
63a2791361 add some NOUNROLLs 2022-11-14 18:00:00 +02:00
Marshall Lochbaum
85f54b2b25 Check for a small return type in large-range /⁼ with a sparse table 2022-11-13 18:00:10 -05:00
Marshall Lochbaum
cd16c8a1c7 Blocked 4-byte ⍋bool and ⍒bool with Singeli 2022-11-13 18:00:10 -05:00
Marshall Lochbaum
1647e98fd2 Use Singeli code for ⍋bool and ⍒bool with 1- and 2-byte result 2022-11-13 18:00:10 -05:00
Marshall Lochbaum
6bea10de21 Implementation comments and minor refactoring for /⁼ 2022-11-13 18:00:10 -05:00
Marshall Lochbaum
7acd9d5688 Indices/Replicate implementation comments 2022-11-13 18:00:10 -05:00
dzaima
b244d7ecf5 disallow bitwise hashing for ¯0; prepare for mm_alloc taking u64 size 2022-11-12 23:45:39 +02:00
Marshall Lochbaum
7d56d61235 Hash table for Occurrence Count (⊒) 2022-11-12 15:47:59 -05:00
Marshall Lochbaum
1be4f4c2e7 Fix value movement when resizing Classify (⊐) hash 2022-11-12 15:47:59 -05:00
Marshall Lochbaum
62867f4533 Make brute-force Mark Firsts store result in a register (always <64 elements) 2022-11-12 15:47:59 -05:00
Marshall Lochbaum
8560ce0f4d Move hash table initializers to functions to save some binary space 2022-11-12 15:47:59 -05:00
Marshall Lochbaum
9adfb13355 Extend Mark Firsts hash table to handle Classify 2022-11-12 15:47:59 -05:00
Marshall Lochbaum
37d7694c52 64-bit Mark Firsts (∊) hash table 2022-11-12 15:47:59 -05:00
Marshall Lochbaum
dc7389a660 Mark Firsts hash table resizing policy tweaks 2022-11-12 15:47:59 -05:00
Marshall Lochbaum
2e1b64e0ca Resizable hash table for Mark Firsts (∊) 2022-11-12 15:47:59 -05:00
Marshall Lochbaum
8a551ab5ce Add 32-bit hash table for Classify (⊒) 2022-11-12 15:47:59 -05:00
Marshall Lochbaum
d8e4e7d96f Unify small-type and small-range tables for Classify (⊐) 2022-11-12 15:47:59 -05:00
dzaima
a7daeea6d9 fix (500⥊¯1‿5) ⊔ 500‿1‿3⥊3 2022-11-12 19:20:34 +02:00
Marshall Lochbaum
beb997ccb9 Avoid data movement for empty cells in Group 𝕩 2022-11-12 07:25:41 -05:00
dzaima
a1e12106ce use FILL_TO for more compact edge-case handling 2022-11-12 13:45:52 +02:00
dzaima
1241da4d74 fix group of array with empty cells 2022-11-12 13:41:45 +02:00
dzaima
eb880d7135 set result fill fill immediately instead of delaying to before return 2022-11-12 13:30:35 +02:00
Marshall Lochbaum
d2cdae4962 Fast case for bool⊔𝕩 using compress 2022-11-10 21:22:29 -05:00
Marshall Lochbaum
a3da018055 Group code for 1-bit cells 2022-11-10 14:52:45 -05:00
Marshall Lochbaum
6eb504118e Split out optimized Group cases and add comments 2022-11-10 14:52:45 -05:00
Marshall Lochbaum
801472d6d4 Implement bit_cpy versions of the Group methods that use memcpy 2022-11-10 14:52:45 -05:00
Marshall Lochbaum
e7c1918ba0 Native <` implementation using addition 2022-11-09 12:19:02 -05:00
dzaima
87d0fa5dc7 fix gcc 9 build 2022-11-08 16:59:17 +02:00
Marshall Lochbaum
812b97dc51 Mark boolean +` result sorted and squoze 2022-11-07 20:23:15 -05:00
Marshall Lochbaum
666a41ab12 1- and 2-byte Singeli boolean +` 2022-11-07 17:54:11 -05:00
Marshall Lochbaum
f1ff499244 Implement multiple result types for non-Singeli +`bool 2022-11-07 17:09:41 -05:00
Marshall Lochbaum
7b3c69f9da Take sum first in boolean plus-scan; special code for sparse or boolean sum 2022-11-07 15:35:53 -05:00
dzaima
4f9af9965c clangd compilation command generating utility 2022-11-06 18:34:47 +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