diff options
| author | Mikolaj Konarski <mikolaj.konarski@funktory.com> | 2025-12-08 20:09:31 +0100 |
|---|---|---|
| committer | Mikolaj Konarski <mikolaj.konarski@funktory.com> | 2026-01-31 10:52:00 +0100 |
| commit | c20f930f21c60f91d01009fc7e16fa4ccc345828 (patch) | |
| tree | 6856d722eab318af94272f59d62cd3d7b5ff2196 /src/Data/Array/Nested/Ranked | |
| parent | 91cb6b86e46054e75a5b3506aaa2b262a3387c8e (diff) | |
Express mvecsWrite and mvecsWritePartial using the new methods
and change the type of the latter to make it possible.
This slightly improves performance of horde-ad tests,
before horde-ad even starts using the Linear methods, which improves
performance even more.
Diffstat (limited to 'src/Data/Array/Nested/Ranked')
| -rw-r--r-- | src/Data/Array/Nested/Ranked/Base.hs | 20 |
1 files changed, 0 insertions, 20 deletions
diff --git a/src/Data/Array/Nested/Ranked/Base.hs b/src/Data/Array/Nested/Ranked/Base.hs index 0c047d3..97a5f6f 100644 --- a/src/Data/Array/Nested/Ranked/Base.hs +++ b/src/Data/Array/Nested/Ranked/Base.hs @@ -149,32 +149,12 @@ instance Elt a => Elt (Ranked n a) where marrayStrides (M_Ranked arr) = marrayStrides arr - mvecsWrite :: forall sh s. IShX sh -> IIxX sh -> Ranked n a -> MixedVecs s sh (Ranked n a) -> ST s () - mvecsWrite sh idx (Ranked arr) vecs = - mvecsWrite sh idx arr - (coerce @(MixedVecs s sh (Ranked n a)) @(MixedVecs s sh (Mixed (Replicate n Nothing) a)) - vecs) - mvecsWriteLinear :: forall sh s. Int -> Ranked n a -> MixedVecs s sh (Ranked n a) -> ST s () mvecsWriteLinear idx (Ranked arr) vecs = mvecsWriteLinear idx arr (coerce @(MixedVecs s sh (Ranked n a)) @(MixedVecs s sh (Mixed (Replicate n Nothing) a)) vecs) - mvecsWritePartial - :: forall sh sh' s. - IShX (sh ++ sh') -> IIxX sh -> Mixed sh' (Ranked n a) - -> MixedVecs s (sh ++ sh') (Ranked n a) - -> ST s () - mvecsWritePartial sh idx arr vecs = - mvecsWritePartial sh idx - (coerce @(Mixed sh' (Ranked n a)) - @(Mixed sh' (Mixed (Replicate n Nothing) a)) - arr) - (coerce @(MixedVecs s (sh ++ sh') (Ranked n a)) - @(MixedVecs s (sh ++ sh') (Mixed (Replicate n Nothing) a)) - vecs) - mvecsWritePartialLinear :: forall sh sh' s. Proxy sh -> Int -> Mixed sh' (Ranked n a) |
