packages feed

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