sum-pyramid-0.0: src/Common.hs
module Common where
import qualified Data.Array.Comfort.Boxed as BoxedArray
import qualified Data.Array.Comfort.Shape as Shape
import Data.Array.Comfort.Boxed (Array)
data Op = Add | Mul
deriving (Eq, Ord, Enum, Show)
sizeFromOps :: Array (Shape.LowerTriangular ShapeInt) op -> Int
sizeFromOps = succ . Shape.size . Shape.triangularSize . BoxedArray.shape
type ShapeInt = Shape.ZeroBased Int
type SolutionCheck a =
BoxedArray.Array (Shape.LowerTriangular ShapeInt) Op ->
[((Int,Int),a)] ->
Bool