numerical-0.0.0.0: core package for Numerical Haskell project

Safe HaskellNone
LanguageHaskell2010

Numerical.Data.Vector.Pair

Description

This module is pretty cool because it gives you a way to talk about open struct of arrays style vectors

might be replaced with an HList of Vectors approach

Documentation

data family VProd (vect :: * -> *) (prd :: Prod) val Source #

Instances
(MVector (MVProd (Mutable v) Unit) a, Vector v a) => Vector (VProd v Unit) a Source # 
Instance details

Defined in Numerical.Data.Vector.Pair

Methods

basicUnsafeFreeze :: PrimMonad m => Mutable (VProd v Unit) (PrimState m) a -> m (VProd v Unit a) #

basicUnsafeThaw :: PrimMonad m => VProd v Unit a -> m (Mutable (VProd v Unit) (PrimState m) a) #

basicLength :: VProd v Unit a -> Int #

basicUnsafeSlice :: Int -> Int -> VProd v Unit a -> VProd v Unit a #

basicUnsafeIndexM :: Monad m => VProd v Unit a -> Int -> m a #

basicUnsafeCopy :: PrimMonad m => Mutable (VProd v Unit) (PrimState m) a -> VProd v Unit a -> m () #

elemseq :: VProd v Unit a -> a -> b -> b #

(MVector (MVProd (Mutable v) (Pair pa pb)) (a, b), Vector (VProd v pa) a, Vector (VProd v pb) b) => Vector (VProd v (Pair pa pb)) (a, b) Source # 
Instance details

Defined in Numerical.Data.Vector.Pair

Methods

basicUnsafeFreeze :: PrimMonad m => Mutable (VProd v (Pair pa pb)) (PrimState m) (a, b) -> m (VProd v (Pair pa pb) (a, b)) #

basicUnsafeThaw :: PrimMonad m => VProd v (Pair pa pb) (a, b) -> m (Mutable (VProd v (Pair pa pb)) (PrimState m) (a, b)) #

basicLength :: VProd v (Pair pa pb) (a, b) -> Int #

basicUnsafeSlice :: Int -> Int -> VProd v (Pair pa pb) (a, b) -> VProd v (Pair pa pb) (a, b) #

basicUnsafeIndexM :: Monad m => VProd v (Pair pa pb) (a, b) -> Int -> m (a, b) #

basicUnsafeCopy :: PrimMonad m => Mutable (VProd v (Pair pa pb)) (PrimState m) (a, b) -> VProd v (Pair pa pb) (a, b) -> m () #

elemseq :: VProd v (Pair pa pb) (a, b) -> (a, b) -> b0 -> b0 #

data VProd v Unit a Source # 
Instance details

Defined in Numerical.Data.Vector.Pair

data VProd v Unit a = VLeaf !(v a)
data VProd v (Pair pra prb) (a, b) Source # 
Instance details

Defined in Numerical.Data.Vector.Pair

data VProd v (Pair pra prb) (a, b) = VPair !(VProd v pra a) !(VProd v prb b)
type Mutable (VProd vec prod) Source # 
Instance details

Defined in Numerical.Data.Vector.Pair

type Mutable (VProd vec prod) = MVProd (Mutable vec) prod

vPair :: (v a, v b) -> VProd v (Pair Unit Unit) (a, b) Source #

vUnPair :: VProd v (Pair Unit Unit) (a, b) -> (v a, v b) Source #

data family MVProd (vect :: * -> * -> *) (prd :: Prod) (st :: *) val Source #

Instances
MVector mv a => MVector (MVProd mv Unit) a Source # 
Instance details

Defined in Numerical.Data.Vector.Pair

Methods

basicLength :: MVProd mv Unit s a -> Int #

basicUnsafeSlice :: Int -> Int -> MVProd mv Unit s a -> MVProd mv Unit s a #

basicOverlaps :: MVProd mv Unit s a -> MVProd mv Unit s a -> Bool #

basicUnsafeNew :: PrimMonad m => Int -> m (MVProd mv Unit (PrimState m) a) #

basicInitialize :: PrimMonad m => MVProd mv Unit (PrimState m) a -> m () #

basicUnsafeReplicate :: PrimMonad m => Int -> a -> m (MVProd mv Unit (PrimState m) a) #

basicUnsafeRead :: PrimMonad m => MVProd mv Unit (PrimState m) a -> Int -> m a #

basicUnsafeWrite :: PrimMonad m => MVProd mv Unit (PrimState m) a -> Int -> a -> m () #

basicClear :: PrimMonad m => MVProd mv Unit (PrimState m) a -> m () #

basicSet :: PrimMonad m => MVProd mv Unit (PrimState m) a -> a -> m () #

basicUnsafeCopy :: PrimMonad m => MVProd mv Unit (PrimState m) a -> MVProd mv Unit (PrimState m) a -> m () #

basicUnsafeMove :: PrimMonad m => MVProd mv Unit (PrimState m) a -> MVProd mv Unit (PrimState m) a -> m () #

basicUnsafeGrow :: PrimMonad m => MVProd mv Unit (PrimState m) a -> Int -> m (MVProd mv Unit (PrimState m) a) #

(MVector (MVProd mv pra) a, MVector (MVProd mv prb) b) => MVector (MVProd mv (Pair pra prb)) (a, b) Source # 
Instance details

Defined in Numerical.Data.Vector.Pair

Methods

basicLength :: MVProd mv (Pair pra prb) s (a, b) -> Int #

basicUnsafeSlice :: Int -> Int -> MVProd mv (Pair pra prb) s (a, b) -> MVProd mv (Pair pra prb) s (a, b) #

basicOverlaps :: MVProd mv (Pair pra prb) s (a, b) -> MVProd mv (Pair pra prb) s (a, b) -> Bool #

basicUnsafeNew :: PrimMonad m => Int -> m (MVProd mv (Pair pra prb) (PrimState m) (a, b)) #

basicInitialize :: PrimMonad m => MVProd mv (Pair pra prb) (PrimState m) (a, b) -> m () #

basicUnsafeReplicate :: PrimMonad m => Int -> (a, b) -> m (MVProd mv (Pair pra prb) (PrimState m) (a, b)) #

basicUnsafeRead :: PrimMonad m => MVProd mv (Pair pra prb) (PrimState m) (a, b) -> Int -> m (a, b) #

basicUnsafeWrite :: PrimMonad m => MVProd mv (Pair pra prb) (PrimState m) (a, b) -> Int -> (a, b) -> m () #

basicClear :: PrimMonad m => MVProd mv (Pair pra prb) (PrimState m) (a, b) -> m () #

basicSet :: PrimMonad m => MVProd mv (Pair pra prb) (PrimState m) (a, b) -> (a, b) -> m () #

basicUnsafeCopy :: PrimMonad m => MVProd mv (Pair pra prb) (PrimState m) (a, b) -> MVProd mv (Pair pra prb) (PrimState m) (a, b) -> m () #

basicUnsafeMove :: PrimMonad m => MVProd mv (Pair pra prb) (PrimState m) (a, b) -> MVProd mv (Pair pra prb) (PrimState m) (a, b) -> m () #

basicUnsafeGrow :: PrimMonad m => MVProd mv (Pair pra prb) (PrimState m) (a, b) -> Int -> m (MVProd mv (Pair pra prb) (PrimState m) (a, b)) #

data MVProd mv Unit st a Source # 
Instance details

Defined in Numerical.Data.Vector.Pair

data MVProd mv Unit st a = MVLeaf !(mv st a)
data MVProd mv (Pair pra prb) st (a, b) Source # 
Instance details

Defined in Numerical.Data.Vector.Pair

data MVProd mv (Pair pra prb) st (a, b) = MVPair !(MVProd mv pra st a) !(MVProd mv prb st b)

data Prod Source #

Constructors

Pair Prod Prod 
Unit