From 4d762c306901e694286363ad0846d69a770acd63 Mon Sep 17 00:00:00 2001 From: Mikolaj Konarski Date: Thu, 27 Nov 2025 11:09:19 +0100 Subject: Optimize X.index, but measurements unconclusive --- src/Data/Array/XArray.hs | 6 ++---- 1 file 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 -- cgit v1.2.3-70-g09d2