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
5efd90cc91
rename elWidthLogBits to something less long & add byte variant
2023-09-12 19:58:56 +03:00
dzaima
81a291f860
round up some pointers
2023-08-25 03:47:05 +03:00
dzaima
0598ce8357
use getFillQ less
2023-05-09 00:14:14 +03:00
dzaima
3b580cbd0c
rename unit creation methods
2023-04-29 17:39:13 +03:00
dzaima
865257fdb6
more header file cleanup
2023-04-29 17:39:13 +03:00
dzaima
0aca470931
more explicit inline requiring
2023-04-06 13:12:11 +03:00
dzaima
0180a54207
quiet gcc warning
2023-03-31 16:34:08 +03:00
dzaima
c513724fd4
hide clangd warning
...
and remove whitespace which was previously used for alignment
2023-03-31 14:27:43 +03:00
dzaima
baa1281efe
don't assume select returns refcount 1 array
...
that probably would be a safe assumption right now, but who knows about the future; cpyWithShape should return back its argument directly if it already has refcount 1 anyway
2023-03-31 14:14:13 +03:00
dzaima
413b49de30
don't assume sizeof(ur)==1
2023-03-31 13:44:32 +03:00
Marshall Lochbaum
69e2f6c690
Convert ⍉˘ with atom or no left argument to dyadic ⍉
2023-03-30 21:25:21 -04:00
Marshall Lochbaum
9fe6a2e7b2
Under for invertible Reorder Axes
2023-03-30 19:07:09 -04:00
Marshall Lochbaum
d53f3dbd72
Native dyadic ⍉⁼
2023-03-30 19:02:45 -04:00
Marshall Lochbaum
89016fc88d
Update Reorder Axes implementation comments
2023-03-29 20:23:16 -04:00
Marshall Lochbaum
597e25af4d
Full simplification pass for Reorder Axes
2023-03-29 20:08:36 -04:00
Marshall Lochbaum
d492cd0865
And strided height, so all orders are fast if axes are long
2023-03-29 12:37:15 -04:00
Marshall Lochbaum
e923a71881
Use strided width in transpose-based Reorder Axes
2023-03-29 12:37:15 -04:00
Marshall Lochbaum
814a677676
Make transpose movement functions strided
2023-03-29 12:37:15 -04:00
Marshall Lochbaum
de18fb996b
Save a shape object in Reorder Axes
2023-03-29 12:37:15 -04:00
Marshall Lochbaum
7fea4ca2ad
Combine transp_c2 temp allocations into one TALLOC
2023-03-29 12:37:15 -04:00
Marshall Lochbaum
5b17ee44d6
SIMD kernel for Reorder Axes transposing last two axes
2023-03-29 12:37:15 -04:00
Marshall Lochbaum
8413461074
Fast bottom-level loop for Reorder Axes loop structure
2023-03-29 12:37:15 -04:00
Marshall Lochbaum
bbedbbc585
Transpose large cells with mut_copyG
2023-03-29 12:37:15 -04:00
Marshall Lochbaum
b829076271
Put CPU-size transpose functions in a table
2023-03-29 12:37:15 -04:00
Marshall Lochbaum
410d51501d
Check for AVX2 in Singeli transpose so it can build on non-x86 architectures
2023-03-29 12:37:15 -04:00
Marshall Lochbaum
ebbddf9dcf
Move height/width 2 transposes to Singeli
2023-03-28 16:11:46 -04:00
Marshall Lochbaum
37f481ea0d
Separate out transpose data movement function and share with monadic ⍉⁼
2023-03-28 16:11:46 -04:00
Marshall Lochbaum
3c32844fe0
Separate out transpose_move function and use for el_B
2023-03-28 16:11:46 -04:00
Marshall Lochbaum
968bfd2fc6
Separate transpose el_B case and fix dropped fill for shape 2‿n
2023-03-28 16:11:46 -04:00
Marshall Lochbaum
dea063cb7b
Easy optimizations: (1-˜=𝕩)⍉𝕩 to ⍉𝕩 and detect trailing unchanged axes
2023-03-28 16:11:46 -04:00
Marshall Lochbaum
b555e3c035
Reorder Axes translated from runtime version
2023-03-28 16:11:46 -04:00
Marshall Lochbaum
432b4eaaa6
Transpose implementation comments
2023-03-28 16:11:46 -04:00
Marshall Lochbaum
7d800bf349
SIMD transpose on 1-byte elements
2023-03-22 15:14:08 -04:00
Marshall Lochbaum
5fccf4cda3
Refactoring; check for small transpose width/height in Singeli, not C
2023-03-22 15:14:08 -04:00
Marshall Lochbaum
ff6361e363
Move tranpose to its own file
2023-03-22 15:14:08 -04:00