packages feed

uvector-0.1: examples/simple/Sum.hs

module Sum
where

import Data.Array.Parallel.Unlifted

test :: UArr Int -> Int
test = loopAcc . loopU (\a x -> (a + x :*: (Nothing::Maybe ()))) 0


{- Inner loop:

	poly_$wtrans_sPp :: forall s1_aIm.
			    GHC.Prim.Int#
			    -> GHC.Base.Int
			    -> GHC.Prim.Int#
			    -> GHC.Prim.State# s1_aIm
			    -> (# GHC.Prim.State# s1_aIm, (GHC.Base.Int, GHC.Base.Int) #)
	[Arity 4]
	poly_$wtrans_sPp =
	  \ (@ s1_XJ3)
	    (ww_XPz :: GHC.Prim.Int#)
	    (w_XPC :: GHC.Base.Int)
	    (ww1_XPG :: GHC.Prim.Int#)
	    (w1_XPJ :: GHC.Prim.State# s1_XJ3) ->
	    case GHC.Prim.==# ww_XPz wild11_B1 of wild2_XHP {
	      GHC.Base.False ->
		poly_$wtrans_sPp
		  @ s1_XJ3
		  (GHC.Prim.+# ww_XPz 1)
		  w_XPC
		  (GHC.Prim.+#
		     ww1_XPG (GHC.Prim.indexIntArray# rb2_aPT (GHC.Prim.+# rb_aKA ww_XPz)))
		  w1_XPJ;
	      GHC.Base.True ->
		case w_XPC of tpl_aIu { GHC.Base.I# a1_aIv ->
		(# w1_XPJ, ((GHC.Base.I# ww1_XPG), tpl_aIu) #)
		}
	    };

-}