PrimitiveArray-0.8.0.1: Efficient multidimensional arrays

Safe HaskellNone
LanguageHaskell2010

Data.PrimitiveArray.Index.IOC

Synopsis

Documentation

data I Source #

Phantom type for Inside indices.

Instances

IndexStream z => IndexStream ((:.) z (EdgeBoundary I)) Source #

EdgeBoundary I (inside)

IndexStream z => IndexStream ((:.) z (PInt I p)) Source # 

Methods

streamUp :: Monad m => (z :. PInt I p) -> (z :. PInt I p) -> Stream m (z :. PInt I p) Source #

streamDown :: Monad m => (z :. PInt I p) -> (z :. PInt I p) -> Stream m (z :. PInt I p) Source #

IndexStream z => IndexStream ((:.) z (PointL I)) Source # 

Methods

streamUp :: Monad m => (z :. PointL I) -> (z :. PointL I) -> Stream m (z :. PointL I) Source #

streamDown :: Monad m => (z :. PointL I) -> (z :. PointL I) -> Stream m (z :. PointL I) Source #

IndexStream z => IndexStream ((:.) z (Boundary k I)) Source # 

Methods

streamUp :: Monad m => (z :. Boundary k I) -> (z :. Boundary k I) -> Stream m (z :. Boundary k I) Source #

streamDown :: Monad m => (z :. Boundary k I) -> (z :. Boundary k I) -> Stream m (z :. Boundary k I) Source #

IndexStream z => IndexStream ((:.) z (BS2 i j I)) Source # 

Methods

streamUp :: Monad m => (z :. BS2 i j I) -> (z :. BS2 i j I) -> Stream m (z :. BS2 i j I) Source #

streamDown :: Monad m => (z :. BS2 i j I) -> (z :. BS2 i j I) -> Stream m (z :. BS2 i j I) Source #

IndexStream z => IndexStream ((:.) z (BS1 i I)) Source # 

Methods

streamUp :: Monad m => (z :. BS1 i I) -> (z :. BS1 i I) -> Stream m (z :. BS1 i I) Source #

streamDown :: Monad m => (z :. BS1 i I) -> (z :. BS1 i I) -> Stream m (z :. BS1 i I) Source #

IndexStream z => IndexStream ((:.) z (BitSet I)) Source # 

Methods

streamUp :: Monad m => (z :. BitSet I) -> (z :. BitSet I) -> Stream m (z :. BitSet I) Source #

streamDown :: Monad m => (z :. BitSet I) -> (z :. BitSet I) -> Stream m (z :. BitSet I) Source #

IndexStream z => IndexStream ((:.) z (Subword I)) Source #

Subword I (inside)

Methods

streamUp :: Monad m => (z :. Subword I) -> (z :. Subword I) -> Stream m (z :. Subword I) Source #

streamDown :: Monad m => (z :. Subword I) -> (z :. Subword I) -> Stream m (z :. Subword I) Source #

IndexStream (PInt I p) Source # 

Methods

streamUp :: Monad m => PInt I p -> PInt I p -> Stream m (PInt I p) Source #

streamDown :: Monad m => PInt I p -> PInt I p -> Stream m (PInt I p) Source #

IndexStream ((:.) Z (Boundary k I)) => IndexStream (Boundary k I) Source # 

Methods

streamUp :: Monad m => Boundary k I -> Boundary k I -> Stream m (Boundary k I) Source #

streamDown :: Monad m => Boundary k I -> Boundary k I -> Stream m (Boundary k I) Source #

data O Source #

Phantom type for Outside indices.

Instances

IndexStream z => IndexStream ((:.) z (EdgeBoundary O)) Source #

EdgeBoundary O (outside).

Note: streamUp really needs to use streamDownMk / streamDownStep for the right order of indices!

IndexStream z => IndexStream ((:.) z (PInt O p)) Source # 

Methods

streamUp :: Monad m => (z :. PInt O p) -> (z :. PInt O p) -> Stream m (z :. PInt O p) Source #

streamDown :: Monad m => (z :. PInt O p) -> (z :. PInt O p) -> Stream m (z :. PInt O p) Source #

IndexStream z => IndexStream ((:.) z (PointL O)) Source # 

Methods

streamUp :: Monad m => (z :. PointL O) -> (z :. PointL O) -> Stream m (z :. PointL O) Source #

streamDown :: Monad m => (z :. PointL O) -> (z :. PointL O) -> Stream m (z :. PointL O) Source #

IndexStream z => IndexStream ((:.) z (BS2 i j O)) Source # 

Methods

streamUp :: Monad m => (z :. BS2 i j O) -> (z :. BS2 i j O) -> Stream m (z :. BS2 i j O) Source #

streamDown :: Monad m => (z :. BS2 i j O) -> (z :. BS2 i j O) -> Stream m (z :. BS2 i j O) Source #

IndexStream z => IndexStream ((:.) z (BS1 i O)) Source # 

Methods

streamUp :: Monad m => (z :. BS1 i O) -> (z :. BS1 i O) -> Stream m (z :. BS1 i O) Source #

streamDown :: Monad m => (z :. BS1 i O) -> (z :. BS1 i O) -> Stream m (z :. BS1 i O) Source #

IndexStream z => IndexStream ((:.) z (BitSet O)) Source # 

Methods

streamUp :: Monad m => (z :. BitSet O) -> (z :. BitSet O) -> Stream m (z :. BitSet O) Source #

streamDown :: Monad m => (z :. BitSet O) -> (z :. BitSet O) -> Stream m (z :. BitSet O) Source #

IndexStream z => IndexStream ((:.) z (Subword O)) Source #

Subword O (outside).

Note: streamUp really needs to use streamDownMk / streamDownStep for the right order of indices!

Methods

streamUp :: Monad m => (z :. Subword O) -> (z :. Subword O) -> Stream m (z :. Subword O) Source #

streamDown :: Monad m => (z :. Subword O) -> (z :. Subword O) -> Stream m (z :. Subword O) Source #

IndexStream (PInt O p) Source # 

Methods

streamUp :: Monad m => PInt O p -> PInt O p -> Stream m (PInt O p) Source #

streamDown :: Monad m => PInt O p -> PInt O p -> Stream m (PInt O p) Source #

data C Source #

Phantom type for Complement indices.

Instances

IndexStream z => IndexStream ((:.) z (EdgeBoundary C)) Source #

EdgeBoundary C (complement)

IndexStream z => IndexStream ((:.) z (PInt C p)) Source # 

Methods

streamUp :: Monad m => (z :. PInt C p) -> (z :. PInt C p) -> Stream m (z :. PInt C p) Source #

streamDown :: Monad m => (z :. PInt C p) -> (z :. PInt C p) -> Stream m (z :. PInt C p) Source #

IndexStream z => IndexStream ((:.) z (PointL C)) Source # 

Methods

streamUp :: Monad m => (z :. PointL C) -> (z :. PointL C) -> Stream m (z :. PointL C) Source #

streamDown :: Monad m => (z :. PointL C) -> (z :. PointL C) -> Stream m (z :. PointL C) Source #

IndexStream z => IndexStream ((:.) z (BS2 i j C)) Source # 

Methods

streamUp :: Monad m => (z :. BS2 i j C) -> (z :. BS2 i j C) -> Stream m (z :. BS2 i j C) Source #

streamDown :: Monad m => (z :. BS2 i j C) -> (z :. BS2 i j C) -> Stream m (z :. BS2 i j C) Source #

IndexStream z => IndexStream ((:.) z (BS1 i C)) Source # 

Methods

streamUp :: Monad m => (z :. BS1 i C) -> (z :. BS1 i C) -> Stream m (z :. BS1 i C) Source #

streamDown :: Monad m => (z :. BS1 i C) -> (z :. BS1 i C) -> Stream m (z :. BS1 i C) Source #

IndexStream z => IndexStream ((:.) z (BitSet C)) Source # 

Methods

streamUp :: Monad m => (z :. BitSet C) -> (z :. BitSet C) -> Stream m (z :. BitSet C) Source #

streamDown :: Monad m => (z :. BitSet C) -> (z :. BitSet C) -> Stream m (z :. BitSet C) Source #

IndexStream z => IndexStream ((:.) z (Subword C)) Source #

Subword C (complement)

Methods

streamUp :: Monad m => (z :. Subword C) -> (z :. Subword C) -> Stream m (z :. Subword C) Source #

streamDown :: Monad m => (z :. Subword C) -> (z :. Subword C) -> Stream m (z :. Subword C) Source #

IndexStream (PInt C p) Source # 

Methods

streamUp :: Monad m => PInt C p -> PInt C p -> Stream m (PInt C p) Source #

streamDown :: Monad m => PInt C p -> PInt C p -> Stream m (PInt C p) Source #