module Data.Repa.Array.Meta.Linear
( L(..)
, Name (..)
, Array (..)
, linear)
where
import Data.Repa.Array.Generic.Index
import Data.Repa.Array.Internals.Bulk
#include "repa-array.h"
data L = Linear
{ linearLength :: Int }
deriving instance Eq L
deriving instance Show L
instance Layout L where
data Name L = L
type Index L = Int
name = L
create L len = Linear len
extent (Linear len) = len
toIndex _ ix = ix
fromIndex _ ix = ix
deriving instance Eq (Name L)
deriving instance Show (Name L)
instance Bulk L Int where
data Array L Int = LArray Int
layout (LArray len) = Linear len
index (LArray _) ix = ix
linear :: Int -> Array L Int
linear len = LArray len