diff options
author | Mikolaj Konarski <mikolaj.konarski@gmail.com> | 2025-04-26 00:25:28 +0200 |
---|---|---|
committer | Mikolaj Konarski <mikolaj.konarski@gmail.com> | 2025-04-26 00:25:35 +0200 |
commit | 25d337c1b34192fedcd2496fe179acbd2051dd30 (patch) | |
tree | fd467d1d0d36153721dc865e31088abee028eda1 /src/Data/Array/Nested/Internal/Shaped.hs | |
parent | 4087d405b51cf32363cb7507df6ffe1a170c0f7f (diff) |
Show concisely arrays replicated from a single element (scalar or not)
Diffstat (limited to 'src/Data/Array/Nested/Internal/Shaped.hs')
-rw-r--r-- | src/Data/Array/Nested/Internal/Shaped.hs | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/Data/Array/Nested/Internal/Shaped.hs b/src/Data/Array/Nested/Internal/Shaped.hs index eebf66a..d5c9612 100644 --- a/src/Data/Array/Nested/Internal/Shaped.hs +++ b/src/Data/Array/Nested/Internal/Shaped.hs @@ -66,9 +66,17 @@ deriving instance Eq (Mixed (MapJust sh) a) => Eq (Shaped sh a) deriving instance Ord (Mixed (MapJust sh) a) => Ord (Shaped sh a) instance (Show a, Elt a) => Show (Shaped sh a) where - showsPrec d arr = showParen (d > 10) $ - showString "sfromListLinear " . shows (shsToList (sshape arr)) . showString " " - . shows (stoListLinear arr) + showsPrec d arr@(Shaped marr) = showParen (d > 10) $ + let defaultResult = + showString "sfromListLinear " . shows (shsToList (sshape arr)) . showString " " + . shows (stoListLinear arr) + in if stridesAreZero (shxLength $ mshape marr) (mstrideTree marr) + then case stoListLinear arr of + [] -> defaultResult + [_] -> defaultResult + hd : _ -> showString "sreplicate " . shows (shsToList (sshape arr)) . showString " " + . showsPrec 11 hd + else defaultResult instance Elt a => NFData (Shaped sh a) where rnf (Shaped arr) = rnf arr |