diff options
| author | Mikolaj Konarski <mikolaj.konarski@funktory.com> | 2025-11-27 11:09:19 +0100 |
|---|---|---|
| committer | Mikolaj Konarski <mikolaj.konarski@funktory.com> | 2025-11-27 11:16:29 +0100 |
| commit | 4d762c306901e694286363ad0846d69a770acd63 (patch) | |
| tree | f5450ddf626612c6a08ca4ecbe9538b5daf91d52 | |
| parent | 14327cb54fb3ba7ae81c00d7865c47cdd8ec9578 (diff) | |
Optimize X.index, but measurements unconclusive
| -rw-r--r-- | src/Data/Array/XArray.hs | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/src/Data/Array/XArray.hs b/src/Data/Array/XArray.hs index 948a50e..0f87168 100644 --- a/src/Data/Array/XArray.hs +++ b/src/Data/Array/XArray.hs @@ -119,10 +119,8 @@ indexPartial (XArray arr) ZIX = XArray arr indexPartial (XArray arr) (i :.% idx) = indexPartial (XArray (S.index arr i)) idx index :: forall sh a. Storable a => XArray sh a -> IIxX sh -> a -index xarr i - | Refl <- lemAppNil @sh - = let XArray arr' = indexPartial xarr i :: XArray '[] a - in S.unScalar arr' +index (XArray (ORS.A (ORG.A _ t))) i = + OI.values t VS.! (OI.offset t + sum (zipWith (*) (toList i) (OI.strides t))) append :: forall n m sh a. Storable a => StaticShX sh -> XArray (n : sh) a -> XArray (m : sh) a -> XArray (AddMaybe n m : sh) a |
