repa-examples-2.0.0.2: examples/Sobel/src-repa/Solver.hs
{-# LANGUAGE PackageImports, BangPatterns, QuasiQuotes, PatternGuards #-}
{-# OPTIONS -Wall -fno-warn-missing-signatures -fno-warn-incomplete-patterns #-}
module Solver
( Image
, gradientX
, gradientY )
where
import Data.Array.Repa as Repa
import Data.Array.Repa.Stencil
type Image = Array DIM2 Float
gradientX :: Image -> Image
{-# NOINLINE gradientX #-}
gradientX img
= img `deepSeqArray` force2
$ forStencil2 BoundClamp img
[stencil2| -1 0 1
-2 0 2
-1 0 1 |]
gradientY :: Image -> Image
{-# NOINLINE gradientY #-}
gradientY img
= img `deepSeqArray` force2
$ forStencil2 BoundClamp img
[stencil2| 1 2 1
0 0 0
-1 -2 -1 |]