packages feed

repa-examples-3.1.3.1: 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 R
import Data.Array.Repa.Stencil          as R
import Data.Array.Repa.Stencil.Dim2     as R

type Image	= Array U DIM2 Float

gradientX :: Monad m => Image -> m Image
gradientX img
 	= computeP
 	$ forStencil2 (BoundConst 0) img
	  [stencil2|	-1  0  1
			-2  0  2
			-1  0  1 |]
{-# NOINLINE gradientX #-}


gradientY :: Monad m => Image -> m Image
gradientY img
	= computeP
	$ forStencil2 (BoundConst 0) img
	  [stencil2|	 1  2  1
			 0  0  0
			-1 -2 -1 |] 
{-# NOINLINE gradientY #-}