ox-arrays-0.1.0.0: An efficient CPU-based multidimensional array (tensor) library
Safe HaskellNone
LanguageHaskell2010

Data.Array.Nested.Shaped.Base

Synopsis

Documentation

newtype Shaped (sh :: [Nat]) a Source #

A shape-typed array: the full shape of the array (the sizes of its dimensions) is represented on the type level as a list of Nats. Note that these are GHC.TypeLits naturals, because we do not need induction over them and we want very large arrays to be possible.

Like for Ranked, the valid elements are described by the Elt type class, and Shaped itself is again an instance of Elt as well.

Shaped is a newtype around a Mixed of Justs.

Constructors

Shaped (Mixed (MapJust sh) a) 

Instances

Instances details
(FloatElt a, PrimElt a) => Floating (Shaped sh a) Source # 
Instance details

Defined in Data.Array.Nested.Shaped.Base

Methods

pi :: Shaped sh a #

exp :: Shaped sh a -> Shaped sh a #

log :: Shaped sh a -> Shaped sh a #

sqrt :: Shaped sh a -> Shaped sh a #

(**) :: Shaped sh a -> Shaped sh a -> Shaped sh a #

logBase :: Shaped sh a -> Shaped sh a -> Shaped sh a #

sin :: Shaped sh a -> Shaped sh a #

cos :: Shaped sh a -> Shaped sh a #

tan :: Shaped sh a -> Shaped sh a #

asin :: Shaped sh a -> Shaped sh a #

acos :: Shaped sh a -> Shaped sh a #

atan :: Shaped sh a -> Shaped sh a #

sinh :: Shaped sh a -> Shaped sh a #

cosh :: Shaped sh a -> Shaped sh a #

tanh :: Shaped sh a -> Shaped sh a #

asinh :: Shaped sh a -> Shaped sh a #

acosh :: Shaped sh a -> Shaped sh a #

atanh :: Shaped sh a -> Shaped sh a #

log1p :: Shaped sh a -> Shaped sh a #

expm1 :: Shaped sh a -> Shaped sh a #

log1pexp :: Shaped sh a -> Shaped sh a #

log1mexp :: Shaped sh a -> Shaped sh a #

Generic (Mixed sh (Shaped sh' a)) Source # 
Instance details

Defined in Data.Array.Nested.Shaped.Base

Associated Types

type Rep (Mixed sh (Shaped sh' a)) 
Instance details

Defined in Data.Array.Nested.Shaped.Base

type Rep (Mixed sh (Shaped sh' a)) = D1 ('MetaData "Mixed" "Data.Array.Nested.Shaped.Base" "ox-arrays-0.1.0.0-G9rS3ky7ORtC6G06Mvzq1I" 'True) (C1 ('MetaCons "M_Shaped" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Mixed sh (Mixed (MapJust sh') a)))))

Methods

from :: Mixed sh (Shaped sh' a) -> Rep (Mixed sh (Shaped sh' a)) x #

to :: Rep (Mixed sh (Shaped sh' a)) x -> Mixed sh (Shaped sh' a) #

(NumElt a, PrimElt a) => Num (Shaped sh a) Source # 
Instance details

Defined in Data.Array.Nested.Shaped.Base

Methods

(+) :: Shaped sh a -> Shaped sh a -> Shaped sh a #

(-) :: Shaped sh a -> Shaped sh a -> Shaped sh a #

(*) :: Shaped sh a -> Shaped sh a -> Shaped sh a #

negate :: Shaped sh a -> Shaped sh a #

abs :: Shaped sh a -> Shaped sh a #

signum :: Shaped sh a -> Shaped sh a #

fromInteger :: Integer -> Shaped sh a #

(FloatElt a, PrimElt a) => Fractional (Shaped sh a) Source # 
Instance details

Defined in Data.Array.Nested.Shaped.Base

Methods

(/) :: Shaped sh a -> Shaped sh a -> Shaped sh a #

recip :: Shaped sh a -> Shaped sh a #

fromRational :: Rational -> Shaped sh a #

(Show a, Elt a) => Show (Shaped n a) Source # 
Instance details

Defined in Data.Array.Nested.Shaped.Base

Methods

showsPrec :: Int -> Shaped n a -> ShowS #

show :: Shaped n a -> String #

showList :: [Shaped n a] -> ShowS #

Elt a => NFData (Shaped sh a) Source # 
Instance details

Defined in Data.Array.Nested.Shaped.Base

Methods

rnf :: Shaped sh a -> () #

Eq (Mixed sh (Mixed (MapJust sh') a)) => Eq (Mixed sh (Shaped sh' a)) Source # 
Instance details

Defined in Data.Array.Nested.Shaped.Base

Methods

(==) :: Mixed sh (Shaped sh' a) -> Mixed sh (Shaped sh' a) -> Bool #

(/=) :: Mixed sh (Shaped sh' a) -> Mixed sh (Shaped sh' a) -> Bool #

Eq (Mixed (MapJust sh) a) => Eq (Shaped sh a) Source # 
Instance details

Defined in Data.Array.Nested.Shaped.Base

Methods

(==) :: Shaped sh a -> Shaped sh a -> Bool #

(/=) :: Shaped sh a -> Shaped sh a -> Bool #

Ord (Mixed (MapJust sh) a) => Ord (Shaped sh a) Source # 
Instance details

Defined in Data.Array.Nested.Shaped.Base

Methods

compare :: Shaped sh a -> Shaped sh a -> Ordering #

(<) :: Shaped sh a -> Shaped sh a -> Bool #

(<=) :: Shaped sh a -> Shaped sh a -> Bool #

(>) :: Shaped sh a -> Shaped sh a -> Bool #

(>=) :: Shaped sh a -> Shaped sh a -> Bool #

max :: Shaped sh a -> Shaped sh a -> Shaped sh a #

min :: Shaped sh a -> Shaped sh a -> Shaped sh a #

Elt a => Elt (Shaped sh a) Source # 
Instance details

Defined in Data.Array.Nested.Shaped.Base

Associated Types

type ShapeTree (Shaped sh a) 
Instance details

Defined in Data.Array.Nested.Shaped.Base

type ShapeTree (Shaped sh a) = (ShS sh, ShapeTree a)

Methods

mshape :: forall (sh0 :: [Maybe Nat]). Mixed sh0 (Shaped sh a) -> IShX sh0 Source #

mindex :: forall (sh0 :: [Maybe Nat]). Mixed sh0 (Shaped sh a) -> IIxX sh0 -> Shaped sh a Source #

mindexPartial :: forall (sh0 :: [Maybe Nat]) (sh' :: [Maybe Nat]). Mixed (sh0 ++ sh') (Shaped sh a) -> IIxX sh0 -> Mixed sh' (Shaped sh a) Source #

mscalar :: Shaped sh a -> Mixed ('[] :: [Maybe Nat]) (Shaped sh a) Source #

mfromListOuter :: forall (sh0 :: [Maybe Nat]). NonEmpty (Mixed sh0 (Shaped sh a)) -> Mixed (('Nothing :: Maybe Nat) ': sh0) (Shaped sh a) Source #

mtoListOuter :: forall (n :: Maybe Nat) (sh0 :: [Maybe Nat]). Mixed (n ': sh0) (Shaped sh a) -> [Mixed sh0 (Shaped sh a)] Source #

mlift :: forall (sh1 :: [Maybe Nat]) (sh2 :: [Maybe Nat]). StaticShX sh2 -> (forall (sh' :: [Maybe Nat]) b. Storable b => StaticShX sh' -> XArray (sh1 ++ sh') b -> XArray (sh2 ++ sh') b) -> Mixed sh1 (Shaped sh a) -> Mixed sh2 (Shaped sh a) Source #

mlift2 :: forall (sh1 :: [Maybe Nat]) (sh2 :: [Maybe Nat]) (sh3 :: [Maybe Nat]). StaticShX sh3 -> (forall (sh' :: [Maybe Nat]) b. Storable b => StaticShX sh' -> XArray (sh1 ++ sh') b -> XArray (sh2 ++ sh') b -> XArray (sh3 ++ sh') b) -> Mixed sh1 (Shaped sh a) -> Mixed sh2 (Shaped sh a) -> Mixed sh3 (Shaped sh a) Source #

mliftL :: forall (sh1 :: [Maybe Nat]) (sh2 :: [Maybe Nat]). StaticShX sh2 -> (forall (sh' :: [Maybe Nat]) b. Storable b => StaticShX sh' -> NonEmpty (XArray (sh1 ++ sh') b) -> NonEmpty (XArray (sh2 ++ sh') b)) -> NonEmpty (Mixed sh1 (Shaped sh a)) -> NonEmpty (Mixed sh2 (Shaped sh a)) Source #

mcastPartial :: forall (sh1 :: [Maybe Nat]) (sh2 :: [Maybe Nat]) (sh' :: [Maybe Nat]). Rank sh1 ~ Rank sh2 => StaticShX sh1 -> StaticShX sh2 -> Proxy sh' -> Mixed (sh1 ++ sh') (Shaped sh a) -> Mixed (sh2 ++ sh') (Shaped sh a) Source #

mtranspose :: forall (is :: [Natural]) (sh0 :: [Maybe Nat]). (IsPermutation is, Rank is <= Rank sh0) => Perm is -> Mixed sh0 (Shaped sh a) -> Mixed (PermutePrefix is sh0) (Shaped sh a) Source #

mconcat :: forall (sh0 :: [Maybe Nat]). NonEmpty (Mixed (('Nothing :: Maybe Nat) ': sh0) (Shaped sh a)) -> Mixed (('Nothing :: Maybe Nat) ': sh0) (Shaped sh a) Source #

mrnf :: forall (sh0 :: [Maybe Nat]). Mixed sh0 (Shaped sh a) -> () Source #

mshapeTree :: Shaped sh a -> ShapeTree (Shaped sh a) Source #

mshapeTreeEq :: Proxy (Shaped sh a) -> ShapeTree (Shaped sh a) -> ShapeTree (Shaped sh a) -> Bool Source #

mshapeTreeEmpty :: Proxy (Shaped sh a) -> ShapeTree (Shaped sh a) -> Bool Source #

mshowShapeTree :: Proxy (Shaped sh a) -> ShapeTree (Shaped sh a) -> String Source #

marrayStrides :: forall (sh0 :: [Maybe Nat]). Mixed sh0 (Shaped sh a) -> Bag [Int] Source #

mvecsWrite :: forall (sh0 :: [Maybe Nat]) s. IShX sh0 -> IIxX sh0 -> Shaped sh a -> MixedVecs s sh0 (Shaped sh a) -> ST s () Source #

mvecsWritePartial :: forall (sh0 :: [Maybe Nat]) (sh' :: [Maybe Nat]) s. IShX (sh0 ++ sh') -> IIxX sh0 -> Mixed sh' (Shaped sh a) -> MixedVecs s (sh0 ++ sh') (Shaped sh a) -> ST s () Source #

mvecsFreeze :: forall (sh0 :: [Maybe Nat]) s. IShX sh0 -> MixedVecs s sh0 (Shaped sh a) -> ST s (Mixed sh0 (Shaped sh a)) Source #

(KnownShS sh, KnownElt a) => KnownElt (Shaped sh a) Source # 
Instance details

Defined in Data.Array.Nested.Shaped.Base

Methods

memptyArrayUnsafe :: forall (sh0 :: [Maybe Nat]). IShX sh0 -> Mixed sh0 (Shaped sh a) Source #

mvecsUnsafeNew :: forall (sh0 :: [Maybe Nat]) s. IShX sh0 -> Shaped sh a -> ST s (MixedVecs s sh0 (Shaped sh a)) Source #

mvecsNewEmpty :: forall s (sh0 :: [Maybe Nat]). Proxy (Shaped sh a) -> ST s (MixedVecs s sh0 (Shaped sh a)) Source #

newtype MixedVecs s sh (Shaped sh' a) Source # 
Instance details

Defined in Data.Array.Nested.Shaped.Base

newtype MixedVecs s sh (Shaped sh' a) = MV_Shaped (MixedVecs s sh (Mixed (MapJust sh') a))
newtype Mixed sh (Shaped sh' a) Source # 
Instance details

Defined in Data.Array.Nested.Shaped.Base

newtype Mixed sh (Shaped sh' a) = M_Shaped (Mixed sh (Mixed (MapJust sh') a))
type Rep (Mixed sh (Shaped sh' a)) Source # 
Instance details

Defined in Data.Array.Nested.Shaped.Base

type Rep (Mixed sh (Shaped sh' a)) = D1 ('MetaData "Mixed" "Data.Array.Nested.Shaped.Base" "ox-arrays-0.1.0.0-G9rS3ky7ORtC6G06Mvzq1I" 'True) (C1 ('MetaCons "M_Shaped" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Mixed sh (Mixed (MapJust sh') a)))))
type ShapeTree (Shaped sh a) Source # 
Instance details

Defined in Data.Array.Nested.Shaped.Base

type ShapeTree (Shaped sh a) = (ShS sh, ShapeTree a)

liftShaped1 :: forall (sh :: [Nat]) a b. (Mixed (MapJust sh) a -> Mixed (MapJust sh) b) -> Shaped sh a -> Shaped sh b Source #

liftShaped2 :: forall (sh :: [Nat]) a b c. (Mixed (MapJust sh) a -> Mixed (MapJust sh) b -> Mixed (MapJust sh) c) -> Shaped sh a -> Shaped sh b -> Shaped sh c Source #

squotArray :: forall a (sh :: [Nat]). (IntElt a, PrimElt a) => Shaped sh a -> Shaped sh a -> Shaped sh a Source #

sremArray :: forall a (sh :: [Nat]). (IntElt a, PrimElt a) => Shaped sh a -> Shaped sh a -> Shaped sh a Source #

satan2Array :: forall a (sh :: [Nat]). (FloatElt a, PrimElt a) => Shaped sh a -> Shaped sh a -> Shaped sh a Source #

sshape :: forall (sh :: [Nat]) a. Elt a => Shaped sh a -> ShS sh Source #

shsFromShX :: forall (sh :: [Nat]) i. ShX (MapJust sh) i -> ShS sh Source #