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

Data.Array.Nested.Ranked.Base

Synopsis

Documentation

newtype Ranked (n :: Nat) a Source #

A rank-typed array: the number of dimensions of the array (its rank) is represented on the type level as a Nat.

Valid elements of a ranked arrays are described by the Elt type class. Because Ranked itself is also an instance of Elt, nested arrays are supported (and are represented as a single, flattened, struct-of-arrays array internally).

Ranked is a newtype around a Mixed of Nothings.

Constructors

Ranked (Mixed (Replicate n ('Nothing :: Maybe Nat)) a) 

Instances

Instances details
(FloatElt a, PrimElt a) => Floating (Ranked n a) Source # 
Instance details

Defined in Data.Array.Nested.Ranked.Base

Methods

pi :: Ranked n a #

exp :: Ranked n a -> Ranked n a #

log :: Ranked n a -> Ranked n a #

sqrt :: Ranked n a -> Ranked n a #

(**) :: Ranked n a -> Ranked n a -> Ranked n a #

logBase :: Ranked n a -> Ranked n a -> Ranked n a #

sin :: Ranked n a -> Ranked n a #

cos :: Ranked n a -> Ranked n a #

tan :: Ranked n a -> Ranked n a #

asin :: Ranked n a -> Ranked n a #

acos :: Ranked n a -> Ranked n a #

atan :: Ranked n a -> Ranked n a #

sinh :: Ranked n a -> Ranked n a #

cosh :: Ranked n a -> Ranked n a #

tanh :: Ranked n a -> Ranked n a #

asinh :: Ranked n a -> Ranked n a #

acosh :: Ranked n a -> Ranked n a #

atanh :: Ranked n a -> Ranked n a #

log1p :: Ranked n a -> Ranked n a #

expm1 :: Ranked n a -> Ranked n a #

log1pexp :: Ranked n a -> Ranked n a #

log1mexp :: Ranked n a -> Ranked n a #

Generic (Mixed sh (Ranked n a)) Source # 
Instance details

Defined in Data.Array.Nested.Ranked.Base

Associated Types

type Rep (Mixed sh (Ranked n a)) 
Instance details

Defined in Data.Array.Nested.Ranked.Base

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

Methods

from :: Mixed sh (Ranked n a) -> Rep (Mixed sh (Ranked n a)) x #

to :: Rep (Mixed sh (Ranked n a)) x -> Mixed sh (Ranked n a) #

(NumElt a, PrimElt a) => Num (Ranked n a) Source # 
Instance details

Defined in Data.Array.Nested.Ranked.Base

Methods

(+) :: Ranked n a -> Ranked n a -> Ranked n a #

(-) :: Ranked n a -> Ranked n a -> Ranked n a #

(*) :: Ranked n a -> Ranked n a -> Ranked n a #

negate :: Ranked n a -> Ranked n a #

abs :: Ranked n a -> Ranked n a #

signum :: Ranked n a -> Ranked n a #

fromInteger :: Integer -> Ranked n a #

(FloatElt a, PrimElt a) => Fractional (Ranked n a) Source # 
Instance details

Defined in Data.Array.Nested.Ranked.Base

Methods

(/) :: Ranked n a -> Ranked n a -> Ranked n a #

recip :: Ranked n a -> Ranked n a #

fromRational :: Rational -> Ranked n a #

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

Defined in Data.Array.Nested.Ranked.Base

Methods

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

show :: Ranked n a -> String #

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

Elt a => NFData (Ranked n a) Source # 
Instance details

Defined in Data.Array.Nested.Ranked.Base

Methods

rnf :: Ranked n a -> () #

Eq (Mixed sh (Mixed (Replicate n ('Nothing :: Maybe Nat)) a)) => Eq (Mixed sh (Ranked n a)) Source # 
Instance details

Defined in Data.Array.Nested.Ranked.Base

Methods

(==) :: Mixed sh (Ranked n a) -> Mixed sh (Ranked n a) -> Bool #

(/=) :: Mixed sh (Ranked n a) -> Mixed sh (Ranked n a) -> Bool #

Eq (Mixed (Replicate n ('Nothing :: Maybe Nat)) a) => Eq (Ranked n a) Source # 
Instance details

Defined in Data.Array.Nested.Ranked.Base

Methods

(==) :: Ranked n a -> Ranked n a -> Bool #

(/=) :: Ranked n a -> Ranked n a -> Bool #

Ord (Mixed (Replicate n ('Nothing :: Maybe Nat)) a) => Ord (Ranked n a) Source # 
Instance details

Defined in Data.Array.Nested.Ranked.Base

Methods

compare :: Ranked n a -> Ranked n a -> Ordering #

(<) :: Ranked n a -> Ranked n a -> Bool #

(<=) :: Ranked n a -> Ranked n a -> Bool #

(>) :: Ranked n a -> Ranked n a -> Bool #

(>=) :: Ranked n a -> Ranked n a -> Bool #

max :: Ranked n a -> Ranked n a -> Ranked n a #

min :: Ranked n a -> Ranked n a -> Ranked n a #

Elt a => Elt (Ranked n a) Source # 
Instance details

Defined in Data.Array.Nested.Ranked.Base

Associated Types

type ShapeTree (Ranked n a) 
Instance details

Defined in Data.Array.Nested.Ranked.Base

type ShapeTree (Ranked n a) = (IShR n, ShapeTree a)

Methods

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

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

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

mscalar :: Ranked n a -> Mixed ('[] :: [Maybe Nat]) (Ranked n a) Source #

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

mtoListOuter :: forall (n0 :: Maybe Nat) (sh :: [Maybe Nat]). Mixed (n0 ': sh) (Ranked n a) -> [Mixed sh (Ranked n 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 (Ranked n a) -> Mixed sh2 (Ranked n 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 (Ranked n a) -> Mixed sh2 (Ranked n a) -> Mixed sh3 (Ranked n 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 (Ranked n a)) -> NonEmpty (Mixed sh2 (Ranked n 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') (Ranked n a) -> Mixed (sh2 ++ sh') (Ranked n a) Source #

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

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

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

mshapeTree :: Ranked n a -> ShapeTree (Ranked n a) Source #

mshapeTreeEq :: Proxy (Ranked n a) -> ShapeTree (Ranked n a) -> ShapeTree (Ranked n a) -> Bool Source #

mshapeTreeEmpty :: Proxy (Ranked n a) -> ShapeTree (Ranked n a) -> Bool Source #

mshowShapeTree :: Proxy (Ranked n a) -> ShapeTree (Ranked n a) -> String Source #

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

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

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

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

(KnownNat n, KnownElt a) => KnownElt (Ranked n a) Source # 
Instance details

Defined in Data.Array.Nested.Ranked.Base

Methods

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

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

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

newtype MixedVecs s sh (Ranked n a) Source # 
Instance details

Defined in Data.Array.Nested.Ranked.Base

newtype MixedVecs s sh (Ranked n a) = MV_Ranked (MixedVecs s sh (Mixed (Replicate n ('Nothing :: Maybe Nat)) a))
newtype Mixed sh (Ranked n a) Source # 
Instance details

Defined in Data.Array.Nested.Ranked.Base

newtype Mixed sh (Ranked n a) = M_Ranked (Mixed sh (Mixed (Replicate n ('Nothing :: Maybe Nat)) a))
type Rep (Mixed sh (Ranked n a)) Source # 
Instance details

Defined in Data.Array.Nested.Ranked.Base

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

Defined in Data.Array.Nested.Ranked.Base

type ShapeTree (Ranked n a) = (IShR n, ShapeTree a)

liftRanked1 :: forall (n :: Natural) a b. (Mixed (Replicate n ('Nothing :: Maybe Nat)) a -> Mixed (Replicate n ('Nothing :: Maybe Nat)) b) -> Ranked n a -> Ranked n b Source #

liftRanked2 :: forall (n :: Natural) a b c. (Mixed (Replicate n ('Nothing :: Maybe Nat)) a -> Mixed (Replicate n ('Nothing :: Maybe Nat)) b -> Mixed (Replicate n ('Nothing :: Maybe Nat)) c) -> Ranked n a -> Ranked n b -> Ranked n c Source #

rquotArray :: forall a (n :: Nat). (IntElt a, PrimElt a) => Ranked n a -> Ranked n a -> Ranked n a Source #

rremArray :: forall a (n :: Nat). (IntElt a, PrimElt a) => Ranked n a -> Ranked n a -> Ranked n a Source #

ratan2Array :: forall a (n :: Nat). (FloatElt a, PrimElt a) => Ranked n a -> Ranked n a -> Ranked n a Source #

rshape :: forall a (n :: Nat). Elt a => Ranked n a -> IShR n Source #

rrank :: forall a (n :: Nat). Elt a => Ranked n a -> SNat n Source #

shrFromShX :: forall (sh :: [Maybe Nat]). IShX sh -> IShR (Rank sh) Source #

shrFromShX2 :: forall (n :: Natural). IShX (Replicate n ('Nothing :: Maybe Nat)) -> IShR n Source #

Convenience wrapper around shrFromShX that applies lemRankReplicate.