packages feed

uvector-0.1: examples/simple/MapInc.hs

module MapInc 
where

import Data.Array.Parallel.Unlifted

test :: UArr Int -> UArr Int
test = loopArr . loopU (\_ x -> (() :*: (Just $ x + 1 :: Maybe Int))) ()


{- Inner loop:

  $wtrans_sVe =
    \ (ww_sUI :: GHC.Prim.Int#)
      (ww1_sUM :: GHC.Prim.Int#)
      (w_sUO :: ())
      (w1_sUP :: GHC.Prim.State# s_aIR) ->
      case GHC.Prim.==# ww_sUI rb1_aUd of wild12_aHq {
	GHC.Base.False ->
	  case GHC.Prim.writeIntArray#
		 @ s_aIR
		 marr#_aOV
		 ww1_sUM
		 (GHC.Prim.+# (GHC.Prim.indexIntArray# rb2_aUe (GHC.Prim.+# rb_aL4 ww_sUI)) 1)
		 w1_sUP
	  of s2#1_aRq { __DEFAULT ->
	  $wtrans_sVe (GHC.Prim.+# ww_sUI 1) (GHC.Prim.+# ww1_sUM 1) GHC.Base.() s2#1_aRq
	  };
	GHC.Base.True ->
	  case w_sUO of tpl1_aJ1 { () ->
	  (# w1_sUP, (GHC.Base.(), (GHC.Base.I# ww1_sUM)) #)
	  }
      };

-}