diff options
| author | Mikolaj Konarski <mikolaj.konarski@funktory.com> | 2025-12-24 19:31:38 +0100 |
|---|---|---|
| committer | Mikolaj Konarski <mikolaj.konarski@funktory.com> | 2026-02-12 10:16:29 +0100 |
| commit | 653ad3cb2cb84ff30eb33b3d3832852a419981a7 (patch) | |
| tree | f2abdba982e6857ed5203e55eaa833439c1ed5d2 /src/Data/Array/Nested/Ranked/Base.hs | |
| parent | 44d15b0b38d00df5dece3cba0a9dc749371aceb0 (diff) | |
Inline most lifting wrappers
This results in only marginal performance gain, probably because
they are already small enough to be specialized and/or inlined
automatically, but these pragmas ensure it remains so regardless
of changes in GHC heuristics.
Diffstat (limited to 'src/Data/Array/Nested/Ranked/Base.hs')
| -rw-r--r-- | src/Data/Array/Nested/Ranked/Base.hs | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/Data/Array/Nested/Ranked/Base.hs b/src/Data/Array/Nested/Ranked/Base.hs index 97a5f6f..834e139 100644 --- a/src/Data/Array/Nested/Ranked/Base.hs +++ b/src/Data/Array/Nested/Ranked/Base.hs @@ -104,6 +104,7 @@ instance Elt a => Elt (Ranked n a) where mtoListOuter (M_Ranked arr) = coerce @[Mixed sh (Mixed (Replicate n 'Nothing) a)] @[Mixed sh (Ranked n a)] (mtoListOuter arr) + {-# INLINE mlift #-} mlift :: forall sh1 sh2. StaticShX sh2 -> (forall sh' b. Storable b => StaticShX sh' -> XArray (sh1 ++ sh') b -> XArray (sh2 ++ sh') b) @@ -112,6 +113,7 @@ instance Elt a => Elt (Ranked n a) where coerce @(Mixed sh2 (Mixed (Replicate n Nothing) a)) @(Mixed sh2 (Ranked n a)) $ mlift ssh2 f arr + {-# INLINE mlift2 #-} mlift2 :: forall sh1 sh2 sh3. StaticShX sh3 -> (forall sh' b. Storable b => StaticShX sh' -> XArray (sh1 ++ sh') b -> XArray (sh2 ++ sh') b -> XArray (sh3 ++ sh') b) @@ -120,6 +122,7 @@ instance Elt a => Elt (Ranked n a) where coerce @(Mixed sh3 (Mixed (Replicate n Nothing) a)) @(Mixed sh3 (Ranked n a)) $ mlift2 ssh3 f arr1 arr2 + {-# INLINE mliftL #-} mliftL :: forall sh1 sh2. StaticShX sh2 -> (forall sh' b. Storable b => StaticShX sh' -> NonEmpty (XArray (sh1 ++ sh') b) -> NonEmpty (XArray (sh2 ++ sh') b)) |
