uvector-0.1: examples/simple/SegPrefixSum.hs
module SegPrefixSum
where
import Data.Array.Parallel.Unlifted
test :: SUArr Int -> SUArr Int
test = fstS
. loopArr
. loopSU (\a x -> ((a + x::Int) :*: Just a))
(\a i -> (a :*: (Nothing :: Maybe ()))) 0
{- Inner loop:
$wtrans_s1aH :: GHC.Prim.Int#
-> GHC.Prim.Int#
-> GHC.Prim.Int#
-> GHC.Prim.Int#
-> GHC.Prim.Int#
-> GHC.Prim.State# s_aLt
-> (# GHC.Prim.State# s_aLt, (GHC.Base.Int, GHC.Base.Int) #)
[Arity 6
Str: DmdType LLLLLL]
$wtrans_s1aH =
\ (ww7_s19k :: GHC.Prim.Int#)
(ww8_s19o :: GHC.Prim.Int#)
(ww9_s19s :: GHC.Prim.Int#)
(ww10_s19w :: GHC.Prim.Int#)
(ww11_s19A :: GHC.Prim.Int#)
(w_s19C :: GHC.Prim.State# s_aLt) ->
case ww8_s19o of wild14_X1X {
__DEFAULT ->
case GHC.Prim.readIntArray# @ s_aLt marr#1_XQl ww9_s19s w_s19C
of wild2_aVH { (# s2#3_aVJ, r#_aVK #) ->
case GHC.Prim.readIntArray# @ s_aLt marr#_aPk ww9_s19s s2#3_aVJ
of wild21_XXy { (# s2#4_XXB, r#1_XXD #) ->
case GHC.Prim.writeIntArray#
@ s_aLt marr#2_XQt (GHC.Prim.+# r#_aVK r#1_XXD) ww11_s19A s2#4_XXB
of s2#5_aWC { __DEFAULT ->
case GHC.Prim.writeIntArray#
@ s_aLt marr#_aPk ww9_s19s (GHC.Prim.+# r#1_XXD 1) s2#5_aWC
of s2#6_XZ5 { __DEFAULT ->
$wtrans_s1aH
(GHC.Prim.+# ww7_s19k 1)
(GHC.Prim.-# wild14_X1X 1)
ww9_s19s
ww10_s19w
(GHC.Prim.+#
ww11_s19A (GHC.Prim.indexIntArray# rb2_aOg (GHC.Prim.+# rb_aOd ww7_s19k)))
s2#6_XZ5
}
}
}
};
0 ->
let {
a_s10T [Just L] :: GHC.Prim.Int#
[Str: DmdType]
a_s10T = GHC.Prim.+# ww9_s19s 1
} in
case GHC.Prim.==# a_s10T ww1_s19O of wild3_aLw {
GHC.Base.False ->
case a_s10T of wild2_X3e {
__DEFAULT ->
case GHC.Prim.readIntArray# @ s_aLt marr#1_XQl (GHC.Prim.-# wild2_X3e 1) w_s19C
of wild21_aVH { (# s2#3_aVJ, r#_aVK #) ->
case GHC.Prim.readIntArray# @ s_aLt marr#_aPk (GHC.Prim.-# wild2_X3e 1) s2#3_aVJ
of wild22_XXY { (# s2#4_XY1, r#1_XY3 #) ->
case GHC.Prim.writeIntArray#
@ s_aLt marr#1_XQl wild2_X3e (GHC.Prim.+# r#_aVK r#1_XY3) s2#4_XY1
of s2#5_aWC { __DEFAULT ->
case GHC.Prim.writeIntArray# @ s_aLt marr#_aPk wild2_X3e 0 s2#5_aWC
of s2#6_XYN { __DEFAULT ->
$wtrans_s1aH
ww7_s19k
(GHC.Prim.indexIntArray# ww2_s19P (GHC.Prim.+# ww_s19N wild2_X3e))
wild2_X3e
ww10_s19w
ww11_s19A
s2#6_XYN
}
}
}
};
0 ->
case GHC.Prim.writeIntArray# @ s_aLt marr#1_XQl 0 0 w_s19C
of s2#3_aWC { __DEFAULT ->
case GHC.Prim.writeIntArray# @ s_aLt marr#_aPk 0 0 s2#3_aWC
of s2#4_XYN { __DEFAULT ->
$wtrans_s1aH
ww7_s19k
(GHC.Prim.indexIntArray# ww2_s19P ww_s19N)
0
ww10_s19w
ww11_s19A
s2#4_XYN
}
}
};
GHC.Base.True ->
(# w_s19C, ((GHC.Base.I# ww10_s19w), (GHC.Base.I# ww11_s19A)) #)
}
};
} in
-}