{-# LANGUAGE TypeFamilies, TypeOperators, DefaultSignatures, ConstraintKinds #-}
{-# LANGUAGE CPP, FlexibleInstances, UndecidableInstances, OverloadedLists #-}
{-# LANGUAGE Trustworthy #-}
module SDP.Shape
(
module SDP.Finite,
module SDP.Tuple,
module Data.Word,
module Data.Int,
Shape (..), GIndex, toGBounds, fromGBounds,
RANK0, RANK1, RANK2, RANK3, RANK4, RANK5, RANK6, RANK7,
RANK8, RANK9, RANK10, RANK11, RANK12, RANK13, RANK14, RANK15
)
where
import Prelude ()
import SDP.SafePrelude
import SDP.Finite
import SDP.Tuple
import Data.Word
import Data.Int
import GHC.Types
import Foreign.C.Types
default ()
type family GIndex i
where
GIndex E = E
GIndex (i' :& i) = i' :& i
GIndex i = GIndex (DimInit i) :& DimLast i
class Shape i
where
type DimLast i :: Type
type DimLast i = i
type DimInit i :: Type
type DimInit i = E
{-# INLINE fromGIndex #-}
default fromGIndex :: (RANK1 i) => GIndex i -> i
fromGIndex :: GIndex i -> i
fromGIndex = \ [Item (E :& i)
i] -> i
Item (E :& i)
i
{-# INLINE toGIndex #-}
default toGIndex :: (RANK1 i) => i -> GIndex i
toGIndex :: i -> GIndex i
toGIndex = \ i
i -> [i
Item (E :& i)
i]
{-# INLINE rank #-}
rank :: i -> Int
rank = Int -> i -> Int
forall a b. a -> b -> a
const Int
1
{-# INLINE consDim #-}
default consDim :: (DimLast i ~~ i) => DimInit i -> DimLast i -> i
consDim :: DimInit i -> DimLast i -> i
consDim = (i -> i) -> DimInit i -> i -> i
forall a b. a -> b -> a
const i -> i
forall a. a -> a
id
{-# INLINE initDim #-}
default initDim :: (DimInit i ~~ E) => i -> DimInit i
initDim :: i -> DimInit i
initDim = E -> i -> E
forall a b. a -> b -> a
const E
E
{-# INLINE lastDim #-}
default lastDim :: (DimLast i ~~ i) => i -> DimLast i
lastDim :: i -> DimLast i
lastDim = i -> DimLast i
forall a. a -> a
id
{-# INLINE unconsDim #-}
unconsDim :: i -> (DimInit i, DimLast i)
unconsDim = \ i
i -> (i -> DimInit i
forall i. Shape i => i -> DimInit i
initDim i
i, i -> DimLast i
forall i. Shape i => i -> DimLast i
lastDim i
i)
type RANK0 i = i ~~ E
type RANK1 i = GIndex i ~~ (E :& i)
type RANK2 i = GIndex i ~~ I2 i
type RANK3 i = GIndex i ~~ I3 i
type RANK4 i = GIndex i ~~ I4 i
type RANK5 i = GIndex i ~~ I5 i
type RANK6 i = GIndex i ~~ I6 i
type RANK7 i = GIndex i ~~ I7 i
type RANK8 i = GIndex i ~~ I8 i
type RANK9 i = GIndex i ~~ I9 i
type RANK10 i = GIndex i ~~ I10 i
type RANK11 i = GIndex i ~~ I11 i
type RANK12 i = GIndex i ~~ I12 i
type RANK13 i = GIndex i ~~ I13 i
type RANK14 i = GIndex i ~~ I14 i
type RANK15 i = GIndex i ~~ I15 i
instance Shape E where rank :: E -> Int
rank = Int -> E -> Int
forall a b. a -> b -> a
const Int
0; toGIndex :: E -> GIndex E
toGIndex = E -> GIndex E
forall a. a -> a
id; fromGIndex :: GIndex E -> E
fromGIndex = GIndex E -> E
forall a. a -> a
id
instance Shape ()
instance Shape Char
instance Shape Integer
instance Shape Int
instance Shape Int8
instance Shape Int16
instance Shape Int32
instance Shape Int64
instance Shape Word
instance Shape Word8
instance Shape Word16
instance Shape Word32
instance Shape Word64
instance Shape CChar
instance Shape CUChar
instance Shape CSChar
instance Shape CWchar
instance Shape CShort
instance Shape CUShort
instance Shape CInt
instance Shape CUInt
instance Shape CLong
instance Shape CLLong
instance Shape CULong
instance Shape CULLong
instance Shape CIntPtr
instance Shape CUIntPtr
instance Shape CIntMax
instance Shape CUIntMax
instance Shape CSize
instance Shape CBool
instance Shape CPtrdiff
instance Shape CSigAtomic
instance (Shape i) => Shape (E :& i)
where
type DimInit (E :& i) = E
type DimLast (E :& i) = i
fromGIndex :: GIndex (E :& i) -> E :& i
fromGIndex = GIndex (E :& i) -> E :& i
forall a. a -> a
id
toGIndex :: (E :& i) -> GIndex (E :& i)
toGIndex = (E :& i) -> GIndex (E :& i)
forall a. a -> a
id
consDim :: DimInit (E :& i) -> DimLast (E :& i) -> E :& i
consDim = DimInit (E :& i) -> DimLast (E :& i) -> E :& i
forall tail head. tail -> head -> tail :& head
(:&)
initDim :: (E :& i) -> DimInit (E :& i)
initDim = \ (E
is :& i
_) -> E
DimInit (E :& i)
is
lastDim :: (E :& i) -> DimLast (E :& i)
lastDim = \ (E
_ :& i
i) -> i
DimLast (E :& i)
i
unconsDim :: (E :& i) -> (DimInit (E :& i), DimLast (E :& i))
unconsDim = \ (E
is :& i
i) -> (E
DimInit (E :& i)
is, i
DimLast (E :& i)
i)
instance (Shape i, Enum i, Bounded i, Shape (i' :& i)) => Shape (i' :& i :& i)
where
type DimInit (i' :& i :& i) = i' :& i
type DimLast (i' :& i :& i) = i
rank :: ((i' :& i) :& i) -> Int
rank = (Int -> (i' :& i) -> Int
forall a b. a -> b -> a
const (Int -> (i' :& i) -> Int) -> (i' -> Int) -> i' -> (i' :& i) -> Int
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Int -> Int
forall a. Enum a => a -> a
succ (Int -> Int) -> (i' -> Int) -> i' -> Int
forall b c a. (b -> c) -> (a -> b) -> a -> c
. i' -> Int
forall i. Shape i => i -> Int
rank :: Shape i' => i' -> (i' :& i) -> Int) i' :& i
forall a. HasCallStack => a
undefined
fromGIndex :: GIndex ((i' :& i) :& i) -> (i' :& i) :& i
fromGIndex = GIndex ((i' :& i) :& i) -> (i' :& i) :& i
forall a. a -> a
id
toGIndex :: ((i' :& i) :& i) -> GIndex ((i' :& i) :& i)
toGIndex = ((i' :& i) :& i) -> GIndex ((i' :& i) :& i)
forall a. a -> a
id
consDim :: DimInit ((i' :& i) :& i)
-> DimLast ((i' :& i) :& i) -> (i' :& i) :& i
consDim = DimInit ((i' :& i) :& i)
-> DimLast ((i' :& i) :& i) -> (i' :& i) :& i
forall tail head. tail -> head -> tail :& head
(:&)
initDim :: ((i' :& i) :& i) -> DimInit ((i' :& i) :& i)
initDim = \ (i' :& i
is :& i
_) -> i' :& i
DimInit ((i' :& i) :& i)
is
lastDim :: ((i' :& i) :& i) -> DimLast ((i' :& i) :& i)
lastDim = \ (i' :& i
_ :& i
i) -> i
DimLast ((i' :& i) :& i)
i
unconsDim :: ((i' :& i) :& i)
-> (DimInit ((i' :& i) :& i), DimLast ((i' :& i) :& i))
unconsDim = \ (i' :& i
is :& i
i) -> (i' :& i
DimInit ((i' :& i) :& i)
is, i
DimLast ((i' :& i) :& i)
i)
#define SHAPE_INSTANCE(Type,Last,RANK)\
instance (Shape i, Enum i, Bounded i) => Shape (Type i)\
where\
{\
type DimInit (Type i) = Last i;\
type DimLast (Type i) = i;\
rank = const RANK;\
initDim = fst . unconsDim;\
lastDim = snd . unconsDim;
SHAPE_INSTANCE(T2, I1, 2)
fromGIndex :: GIndex (T2 i) -> T2 i
fromGIndex = \ [Item (I1 i :& i)
a,Item (I1 i :& i)
b] -> (i
Item (I1 i :& i)
a,i
Item (I1 i :& i)
b);
consDim :: DimInit (T2 i) -> DimLast (T2 i) -> T2 i
consDim = \ [Item (I1 i)
a] DimLast (T2 i)
b -> (i
Item (I1 i)
a,i
DimLast (T2 i)
b);
toGIndex :: T2 i -> GIndex (T2 i)
toGIndex (i
a,i
b) = [i
Item (I1 i :& i)
a,i
Item (I1 i :& i)
b];
unconsDim :: T2 i -> (DimInit (T2 i), DimLast (T2 i))
unconsDim (i
a,i
b) = ([i
Item (I1 i)
a],i
DimLast (T2 i)
b);
}
SHAPE_INSTANCE(T3, T2, 3)
fromGIndex :: GIndex (T3 i) -> T3 i
fromGIndex = \ [Item (((E :& i) :& i) :& i)
a,Item (((E :& i) :& i) :& i)
b,Item (((E :& i) :& i) :& i)
c] -> (i
Item (((E :& i) :& i) :& i)
a,i
Item (((E :& i) :& i) :& i)
b,i
Item (((E :& i) :& i) :& i)
c);
toGIndex :: T3 i -> GIndex (T3 i)
toGIndex (i
a,i
b,i
c) = [i
Item (((E :& i) :& i) :& i)
a,i
Item (((E :& i) :& i) :& i)
b,i
Item (((E :& i) :& i) :& i)
c];
consDim :: DimInit (T3 i) -> DimLast (T3 i) -> T3 i
consDim (a,b) DimLast (T3 i)
c = (i
a,i
b,i
DimLast (T3 i)
c);
unconsDim :: T3 i -> (DimInit (T3 i), DimLast (T3 i))
unconsDim (i
a,i
b,i
c) = ((i
a,i
b),i
DimLast (T3 i)
c);
}
SHAPE_INSTANCE(T4, T3, 4)
fromGIndex :: GIndex (T4 i) -> T4 i
fromGIndex = \ [Item ((((E :& i) :& i) :& i) :& i)
a,Item ((((E :& i) :& i) :& i) :& i)
b,Item ((((E :& i) :& i) :& i) :& i)
c,Item ((((E :& i) :& i) :& i) :& i)
d] -> (i
Item ((((E :& i) :& i) :& i) :& i)
a,i
Item ((((E :& i) :& i) :& i) :& i)
b,i
Item ((((E :& i) :& i) :& i) :& i)
c,i
Item ((((E :& i) :& i) :& i) :& i)
d);
toGIndex :: T4 i -> GIndex (T4 i)
toGIndex (i
a,i
b,i
c,i
d) = [i
Item ((((E :& i) :& i) :& i) :& i)
a,i
Item ((((E :& i) :& i) :& i) :& i)
b,i
Item ((((E :& i) :& i) :& i) :& i)
c,i
Item ((((E :& i) :& i) :& i) :& i)
d];
consDim :: DimInit (T4 i) -> DimLast (T4 i) -> T4 i
consDim (a,b,c) DimLast (T4 i)
d = (i
a,i
b,i
c,i
DimLast (T4 i)
d);
unconsDim :: T4 i -> (DimInit (T4 i), DimLast (T4 i))
unconsDim (i
a,i
b,i
c,i
d) = ((i
a,i
b,i
c),i
DimLast (T4 i)
d);
}
SHAPE_INSTANCE(T5, T4, 5)
fromGIndex :: GIndex (T5 i) -> T5 i
fromGIndex = \ [Item (((((E :& i) :& i) :& i) :& i) :& i)
a,Item (((((E :& i) :& i) :& i) :& i) :& i)
b,Item (((((E :& i) :& i) :& i) :& i) :& i)
c,Item (((((E :& i) :& i) :& i) :& i) :& i)
d,Item (((((E :& i) :& i) :& i) :& i) :& i)
e] -> (i
Item (((((E :& i) :& i) :& i) :& i) :& i)
a,i
Item (((((E :& i) :& i) :& i) :& i) :& i)
b,i
Item (((((E :& i) :& i) :& i) :& i) :& i)
c,i
Item (((((E :& i) :& i) :& i) :& i) :& i)
d,i
Item (((((E :& i) :& i) :& i) :& i) :& i)
e);
toGIndex :: T5 i -> GIndex (T5 i)
toGIndex (i
a,i
b,i
c,i
d,i
e) = [i
Item (((((E :& i) :& i) :& i) :& i) :& i)
a,i
Item (((((E :& i) :& i) :& i) :& i) :& i)
b,i
Item (((((E :& i) :& i) :& i) :& i) :& i)
c,i
Item (((((E :& i) :& i) :& i) :& i) :& i)
d,i
Item (((((E :& i) :& i) :& i) :& i) :& i)
e];
consDim :: DimInit (T5 i) -> DimLast (T5 i) -> T5 i
consDim (a,b,c,d) DimLast (T5 i)
e = (i
a,i
b,i
c,i
d,i
DimLast (T5 i)
e);
unconsDim :: T5 i -> (DimInit (T5 i), DimLast (T5 i))
unconsDim (i
a,i
b,i
c,i
d,i
e) = ((i
a,i
b,i
c,i
d),i
DimLast (T5 i)
e);
}
SHAPE_INSTANCE(T6, T5, 6)
fromGIndex :: GIndex (T6 i) -> T6 i
fromGIndex = \ [Item ((((((E :& i) :& i) :& i) :& i) :& i) :& i)
a,Item ((((((E :& i) :& i) :& i) :& i) :& i) :& i)
b,Item ((((((E :& i) :& i) :& i) :& i) :& i) :& i)
c,Item ((((((E :& i) :& i) :& i) :& i) :& i) :& i)
d,Item ((((((E :& i) :& i) :& i) :& i) :& i) :& i)
e,Item ((((((E :& i) :& i) :& i) :& i) :& i) :& i)
f] -> (i
Item ((((((E :& i) :& i) :& i) :& i) :& i) :& i)
a,i
Item ((((((E :& i) :& i) :& i) :& i) :& i) :& i)
b,i
Item ((((((E :& i) :& i) :& i) :& i) :& i) :& i)
c,i
Item ((((((E :& i) :& i) :& i) :& i) :& i) :& i)
d,i
Item ((((((E :& i) :& i) :& i) :& i) :& i) :& i)
e,i
Item ((((((E :& i) :& i) :& i) :& i) :& i) :& i)
f);
toGIndex :: T6 i -> GIndex (T6 i)
toGIndex (i
a,i
b,i
c,i
d,i
e,i
f) = [i
Item ((((((E :& i) :& i) :& i) :& i) :& i) :& i)
a,i
Item ((((((E :& i) :& i) :& i) :& i) :& i) :& i)
b,i
Item ((((((E :& i) :& i) :& i) :& i) :& i) :& i)
c,i
Item ((((((E :& i) :& i) :& i) :& i) :& i) :& i)
d,i
Item ((((((E :& i) :& i) :& i) :& i) :& i) :& i)
e,i
Item ((((((E :& i) :& i) :& i) :& i) :& i) :& i)
f];
consDim :: DimInit (T6 i) -> DimLast (T6 i) -> T6 i
consDim (a,b,c,d,e) DimLast (T6 i)
f = (i
a,i
b,i
c,i
d,i
e,i
DimLast (T6 i)
f);
unconsDim :: T6 i -> (DimInit (T6 i), DimLast (T6 i))
unconsDim (i
a,i
b,i
c,i
d,i
e,i
f) = ((i
a,i
b,i
c,i
d,i
e),i
DimLast (T6 i)
f);
}
SHAPE_INSTANCE(T7, T6, 7)
fromGIndex :: GIndex (T7 i) -> T7 i
fromGIndex = \ [Item (((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i)
a,Item (((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i)
b,Item (((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i)
c,Item (((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i)
d,Item (((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i)
e,Item (((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i)
f,Item (((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i)
g] -> (i
Item (((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i)
a,i
Item (((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i)
b,i
Item (((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i)
c,i
Item (((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i)
d,i
Item (((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i)
e,i
Item (((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i)
f,i
Item (((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i)
g);
toGIndex :: T7 i -> GIndex (T7 i)
toGIndex (i
a,i
b,i
c,i
d,i
e,i
f,i
g) = [i
Item (((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i)
a,i
Item (((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i)
b,i
Item (((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i)
c,i
Item (((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i)
d,i
Item (((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i)
e,i
Item (((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i)
f,i
Item (((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i)
g];
consDim :: DimInit (T7 i) -> DimLast (T7 i) -> T7 i
consDim (a,b,c,d,e,f) DimLast (T7 i)
g = (i
a,i
b,i
c,i
d,i
e,i
f,i
DimLast (T7 i)
g);
unconsDim :: T7 i -> (DimInit (T7 i), DimLast (T7 i))
unconsDim (i
a,i
b,i
c,i
d,i
e,i
f,i
g) = ((i
a,i
b,i
c,i
d,i
e,i
f),i
DimLast (T7 i)
g);
}
SHAPE_INSTANCE(T8, T7, 8)
fromGIndex :: GIndex (T8 i) -> T8 i
fromGIndex = \ [Item ((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
a,Item ((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
b,Item ((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
c,Item ((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
d,Item ((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
e,Item ((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
f,Item ((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
g,Item ((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
h] -> (i
Item ((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
a,i
Item ((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
b,i
Item ((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
c,i
Item ((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
d,i
Item ((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
e,i
Item ((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
f,i
Item ((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
g,i
Item ((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
h);
toGIndex :: T8 i -> GIndex (T8 i)
toGIndex (i
a,i
b,i
c,i
d,i
e,i
f,i
g,i
h) = [i
Item ((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
a,i
Item ((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
b,i
Item ((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
c,i
Item ((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
d,i
Item ((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
e,i
Item ((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
f,i
Item ((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
g,i
Item ((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
h];
consDim :: DimInit (T8 i) -> DimLast (T8 i) -> T8 i
consDim (a,b,c,d,e,f,g) DimLast (T8 i)
h = (i
a,i
b,i
c,i
d,i
e,i
f,i
g,i
DimLast (T8 i)
h);
unconsDim :: T8 i -> (DimInit (T8 i), DimLast (T8 i))
unconsDim (i
a,i
b,i
c,i
d,i
e,i
f,i
g,i
h) = ((i
a,i
b,i
c,i
d,i
e,i
f,i
g),i
DimLast (T8 i)
h);
}
SHAPE_INSTANCE(T9, T8, 9)
fromGIndex :: GIndex (T9 i) -> T9 i
fromGIndex = \ [Item
(((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
a,Item
(((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
b,Item
(((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
c,Item
(((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
d,Item
(((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
e,Item
(((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
f,Item
(((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
g,Item
(((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
h,Item
(((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
i] -> (i
Item
(((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
a,i
Item
(((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
b,i
Item
(((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
c,i
Item
(((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
d,i
Item
(((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
e,i
Item
(((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
f,i
Item
(((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
g,i
Item
(((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
h,i
Item
(((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
i);
toGIndex :: T9 i -> GIndex (T9 i)
toGIndex (i
a,i
b,i
c,i
d,i
e,i
f,i
g,i
h,i
i) = [i
Item
(((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
a,i
Item
(((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
b,i
Item
(((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
c,i
Item
(((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
d,i
Item
(((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
e,i
Item
(((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
f,i
Item
(((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
g,i
Item
(((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
h,i
Item
(((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
i];
consDim :: DimInit (T9 i) -> DimLast (T9 i) -> T9 i
consDim (a,b,c,d,e,f,g,h) DimLast (T9 i)
i = (i
a,i
b,i
c,i
d,i
e,i
f,i
g,i
h,i
DimLast (T9 i)
i);
unconsDim :: T9 i -> (DimInit (T9 i), DimLast (T9 i))
unconsDim (i
a,i
b,i
c,i
d,i
e,i
f,i
g,i
h,i
i) = ((i
a,i
b,i
c,i
d,i
e,i
f,i
g,i
h),i
DimLast (T9 i)
i);
}
SHAPE_INSTANCE(T10, T9, 10)
fromGIndex :: GIndex (T10 i) -> T10 i
fromGIndex = \ [Item
((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
a,Item
((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
b,Item
((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
c,Item
((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
d,Item
((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
e,Item
((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
f,Item
((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
g,Item
((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
h,Item
((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
i,Item
((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
j] -> (i
Item
((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
a,i
Item
((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
b,i
Item
((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
c,i
Item
((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
d,i
Item
((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
e,i
Item
((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
f,i
Item
((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
g,i
Item
((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
h,i
Item
((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
i,i
Item
((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
j);
toGIndex :: T10 i -> GIndex (T10 i)
toGIndex (i
a,i
b,i
c,i
d,i
e,i
f,i
g,i
h,i
i,i
j) = [i
Item
((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
a,i
Item
((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
b,i
Item
((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
c,i
Item
((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
d,i
Item
((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
e,i
Item
((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
f,i
Item
((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
g,i
Item
((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
h,i
Item
((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
i,i
Item
((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
j];
consDim :: DimInit (T10 i) -> DimLast (T10 i) -> T10 i
consDim (a,b,c,d,e,f,g,h,i) DimLast (T10 i)
j = (i
a,i
b,i
c,i
d,i
e,i
f,i
g,i
h,i
i,i
DimLast (T10 i)
j);
unconsDim :: T10 i -> (DimInit (T10 i), DimLast (T10 i))
unconsDim (i
a,i
b,i
c,i
d,i
e,i
f,i
g,i
h,i
i,i
j) = ((i
a,i
b,i
c,i
d,i
e,i
f,i
g,i
h,i
i),i
DimLast (T10 i)
j);
}
SHAPE_INSTANCE(T11, T10, 11)
fromGIndex :: GIndex (T11 i) -> T11 i
fromGIndex = \ [Item
(((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
a,Item
(((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
b,Item
(((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
c,Item
(((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
d,Item
(((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
e,Item
(((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
f,Item
(((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
g,Item
(((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
h,Item
(((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
i,Item
(((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
j,Item
(((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
k] -> (i
Item
(((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
a,i
Item
(((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
b,i
Item
(((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
c,i
Item
(((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
d,i
Item
(((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
e,i
Item
(((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
f,i
Item
(((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
g,i
Item
(((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
h,i
Item
(((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
i,i
Item
(((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
j,i
Item
(((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
k);
toGIndex :: T11 i -> GIndex (T11 i)
toGIndex (i
a,i
b,i
c,i
d,i
e,i
f,i
g,i
h,i
i,i
j,i
k) = [i
Item
(((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
a,i
Item
(((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
b,i
Item
(((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
c,i
Item
(((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
d,i
Item
(((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
e,i
Item
(((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
f,i
Item
(((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
g,i
Item
(((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
h,i
Item
(((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
i,i
Item
(((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
j,i
Item
(((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
k];
consDim :: DimInit (T11 i) -> DimLast (T11 i) -> T11 i
consDim (a,b,c,d,e,f,g,h,i,j) DimLast (T11 i)
k = (i
a,i
b,i
c,i
d,i
e,i
f,i
g,i
h,i
i,i
j,i
DimLast (T11 i)
k);
unconsDim :: T11 i -> (DimInit (T11 i), DimLast (T11 i))
unconsDim (i
a,i
b,i
c,i
d,i
e,i
f,i
g,i
h,i
i,i
j,i
k) = ((i
a,i
b,i
c,i
d,i
e,i
f,i
g,i
h,i
i,i
j),i
DimLast (T11 i)
k);
}
SHAPE_INSTANCE(T12, T11, 12)
fromGIndex :: GIndex (T12 i) -> T12 i
fromGIndex = \ [Item
((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
a,Item
((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
b,Item
((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
c,Item
((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
d,Item
((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
e,Item
((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
f,Item
((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
g,Item
((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
h,Item
((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
i,Item
((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
j,Item
((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
k,Item
((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
l] -> (i
Item
((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
a,i
Item
((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
b,i
Item
((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
c,i
Item
((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
d,i
Item
((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
e,i
Item
((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
f,i
Item
((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
g,i
Item
((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
h,i
Item
((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
i,i
Item
((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
j,i
Item
((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
k,i
Item
((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
l);
toGIndex :: T12 i -> GIndex (T12 i)
toGIndex (i
a,i
b,i
c,i
d,i
e,i
f,i
g,i
h,i
i,i
j,i
k,i
l) = [i
Item
((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
a,i
Item
((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
b,i
Item
((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
c,i
Item
((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
d,i
Item
((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
e,i
Item
((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
f,i
Item
((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
g,i
Item
((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
h,i
Item
((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
i,i
Item
((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
j,i
Item
((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
k,i
Item
((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
l];
consDim :: DimInit (T12 i) -> DimLast (T12 i) -> T12 i
consDim (a,b,c,d,e,f,g,h,i,j,k) DimLast (T12 i)
l = (i
a,i
b,i
c,i
d,i
e,i
f,i
g,i
h,i
i,i
j,i
k,i
DimLast (T12 i)
l);
unconsDim :: T12 i -> (DimInit (T12 i), DimLast (T12 i))
unconsDim (i
a,i
b,i
c,i
d,i
e,i
f,i
g,i
h,i
i,i
j,i
k,i
l) = ((i
a,i
b,i
c,i
d,i
e,i
f,i
g,i
h,i
i,i
j,i
k),i
DimLast (T12 i)
l);
}
SHAPE_INSTANCE(T13, T12, 13)
fromGIndex :: GIndex (T13 i) -> T13 i
fromGIndex = \ [Item
(((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
a,Item
(((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
b,Item
(((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
c,Item
(((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
d,Item
(((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
e,Item
(((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
f,Item
(((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
g,Item
(((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
h,Item
(((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
i,Item
(((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
j,Item
(((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
k,Item
(((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
l,Item
(((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
m] -> (i
Item
(((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
a,i
Item
(((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
b,i
Item
(((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
c,i
Item
(((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
d,i
Item
(((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
e,i
Item
(((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
f,i
Item
(((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
g,i
Item
(((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
h,i
Item
(((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
i,i
Item
(((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
j,i
Item
(((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
k,i
Item
(((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
l,i
Item
(((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
m);
toGIndex :: T13 i -> GIndex (T13 i)
toGIndex (i
a,i
b,i
c,i
d,i
e,i
f,i
g,i
h,i
i,i
j,i
k,i
l,i
m) = [i
Item
(((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
a,i
Item
(((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
b,i
Item
(((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
c,i
Item
(((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
d,i
Item
(((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
e,i
Item
(((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
f,i
Item
(((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
g,i
Item
(((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
h,i
Item
(((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
i,i
Item
(((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
j,i
Item
(((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
k,i
Item
(((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
l,i
Item
(((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
m];
consDim :: DimInit (T13 i) -> DimLast (T13 i) -> T13 i
consDim (a,b,c,d,e,f,g,h,i,j,k,l) DimLast (T13 i)
m = (i
a,i
b,i
c,i
d,i
e,i
f,i
g,i
h,i
i,i
j,i
k,i
l,i
DimLast (T13 i)
m);
unconsDim :: T13 i -> (DimInit (T13 i), DimLast (T13 i))
unconsDim (i
a,i
b,i
c,i
d,i
e,i
f,i
g,i
h,i
i,i
j,i
k,i
l,i
m) = ((i
a,i
b,i
c,i
d,i
e,i
f,i
g,i
h,i
i,i
j,i
k,i
l),i
DimLast (T13 i)
m);
}
SHAPE_INSTANCE(T14, T13, 14)
fromGIndex :: GIndex (T14 i) -> T14 i
fromGIndex = \ [Item
((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
a,Item
((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
b,Item
((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
c,Item
((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
d,Item
((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
e,Item
((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
f,Item
((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
g,Item
((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
h,Item
((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
i,Item
((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
j,Item
((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
k,Item
((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
l,Item
((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
m,Item
((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
n] -> (i
Item
((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
a,i
Item
((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
b,i
Item
((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
c,i
Item
((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
d,i
Item
((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
e,i
Item
((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
f,i
Item
((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
g,i
Item
((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
h,i
Item
((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
i,i
Item
((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
j,i
Item
((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
k,i
Item
((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
l,i
Item
((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
m,i
Item
((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
n);
toGIndex :: T14 i -> GIndex (T14 i)
toGIndex (i
a,i
b,i
c,i
d,i
e,i
f,i
g,i
h,i
i,i
j,i
k,i
l,i
m,i
n) = [i
Item
((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
a,i
Item
((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
b,i
Item
((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
c,i
Item
((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
d,i
Item
((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
e,i
Item
((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
f,i
Item
((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
g,i
Item
((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
h,i
Item
((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
i,i
Item
((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
j,i
Item
((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
k,i
Item
((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
l,i
Item
((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
m,i
Item
((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
n];
consDim :: DimInit (T14 i) -> DimLast (T14 i) -> T14 i
consDim (a,b,c,d,e,f,g,h,i,j,k,l,m) DimLast (T14 i)
n = (i
a,i
b,i
c,i
d,i
e,i
f,i
g,i
h,i
i,i
j,i
k,i
l,i
m,i
DimLast (T14 i)
n);
unconsDim :: T14 i -> (DimInit (T14 i), DimLast (T14 i))
unconsDim (i
a,i
b,i
c,i
d,i
e,i
f,i
g,i
h,i
i,i
j,i
k,i
l,i
m,i
n) = ((i
a,i
b,i
c,i
d,i
e,i
f,i
g,i
h,i
i,i
j,i
k,i
l,i
m),i
DimLast (T14 i)
n);
}
SHAPE_INSTANCE(T15, T14, 15)
fromGIndex :: GIndex (T15 i) -> T15 i
fromGIndex = \ [Item
(((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
a,Item
(((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
b,Item
(((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
c,Item
(((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
d,Item
(((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
e,Item
(((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
f,Item
(((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
g,Item
(((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
h,Item
(((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
i,Item
(((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
j,Item
(((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
k,Item
(((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
l,Item
(((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
m,Item
(((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
n,Item
(((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
o] -> (i
Item
(((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
a,i
Item
(((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
b,i
Item
(((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
c,i
Item
(((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
d,i
Item
(((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
e,i
Item
(((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
f,i
Item
(((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
g,i
Item
(((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
h,i
Item
(((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
i,i
Item
(((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
j,i
Item
(((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
k,i
Item
(((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
l,i
Item
(((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
m,i
Item
(((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
n,i
Item
(((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
o);
toGIndex :: T15 i -> GIndex (T15 i)
toGIndex (i
a,i
b,i
c,i
d,i
e,i
f,i
g,i
h,i
i,i
j,i
k,i
l,i
m,i
n,i
o) = [i
Item
(((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
a,i
Item
(((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
b,i
Item
(((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
c,i
Item
(((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
d,i
Item
(((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
e,i
Item
(((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
f,i
Item
(((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
g,i
Item
(((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
h,i
Item
(((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
i,i
Item
(((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
j,i
Item
(((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
k,i
Item
(((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
l,i
Item
(((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
m,i
Item
(((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
n,i
Item
(((((((((((((((E :& i) :& i) :& i) :& i) :& i) :& i) :& i) :& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
:& i)
o];
consDim :: DimInit (T15 i) -> DimLast (T15 i) -> T15 i
consDim (a,b,c,d,e,f,g,h,i,j,k,l,m,n) DimLast (T15 i)
o = (i
a,i
b,i
c,i
d,i
e,i
f,i
g,i
h,i
i,i
j,i
k,i
l,i
m,i
n,i
DimLast (T15 i)
o);
unconsDim :: T15 i -> (DimInit (T15 i), DimLast (T15 i))
unconsDim (i
a,i
b,i
c,i
d,i
e,i
f,i
g,i
h,i
i,i
j,i
k,i
l,i
m,i
n,i
o) = ((i
a,i
b,i
c,i
d,i
e,i
f,i
g,i
h,i
i,i
j,i
k,i
l,i
m,i
n),i
DimLast (T15 i)
o);
}
#undef SHAPE_INSTANCE
{-# INLINE toGBounds #-}
toGBounds :: (Shape i) => (i, i) -> (GIndex i, GIndex i)
toGBounds :: (i, i) -> (GIndex i, GIndex i)
toGBounds = (i -> GIndex i) -> (i, i) -> (GIndex i, GIndex i)
forall a b. (a -> b) -> (a, a) -> (b, b)
both i -> GIndex i
forall i. Shape i => i -> GIndex i
toGIndex
{-# INLINE fromGBounds #-}
fromGBounds :: (Shape i) => (GIndex i, GIndex i) -> (i, i)
fromGBounds :: (GIndex i, GIndex i) -> (i, i)
fromGBounds = (GIndex i -> i) -> (GIndex i, GIndex i) -> (i, i)
forall a b. (a -> b) -> (a, a) -> (b, b)
both GIndex i -> i
forall i. Shape i => GIndex i -> i
fromGIndex