Skip to content

Instantly share code, notes, and snippets.

@ddrone
Created January 24, 2013 17:51
Show Gist options
  • Select an option

  • Save ddrone/4625715 to your computer and use it in GitHub Desktop.

Select an option

Save ddrone/4625715 to your computer and use it in GitHub Desktop.
Moving average stream fusion GHC core dump
main1
main1 =
\ eta_Xq ->
case lvl2_r1p5 of _ { I# ipv_aJd ->
case lvl1_r1p2 of _ { I# ipv1_aJi ->
letrec {
$wloop_s1fC
$wloop_s1fC =
\ ww_s1f3 ww1_s1f9 ww2_s1fd ->
case ww2_s1fd of wild3_aHE {
__DEFAULT ->
case ># ww1_s1f9 ipv_aJd of _ {
False ->
$wloop_s1fC
(+## ww_s1f3 (int2Double# ww1_s1f9))
(+# ww1_s1f9 1)
(-# wild3_aHE 1);
True -> ww_s1f3
};
0 -> ww_s1f3
}; } in
case $wloop_s1fC 0.0 ipv1_aJi 4 of ww_s1fi { __DEFAULT ->
letrec {
$s$wa_s1oF
$s$wa_s1oF =
\ sc_s1mA sc1_s1mB sc2_s1mC sc3_s1mD sc4_s1mE sc5_s1mF ->
case sc2_s1mC of wild3_aGa {
__DEFAULT ->
case ># sc1_s1mB ipv_aJd of _ {
False ->
$s$wa_s1oF
sc_s1mA
(+# sc1_s1mB 1)
(-# wild3_aGa 1)
sc3_s1mD
sc4_s1mE
sc5_s1mF;
True ->
$sa_s1oE
sc4_s1mE
(:*: (I# sc_s1mA) (:*: (I# sc1_s1mB) (I# wild3_aGa)))
(JustS (D# sc3_s1mD))
(C0 (D# sc4_s1mE))
sc5_s1mF
};
0 ->
case ># sc1_s1mB ipv_aJd of _ {
False ->
$sa_s1oE
sc4_s1mE
(:*: (I# sc_s1mA) (:*: (I# (+# sc1_s1mB 1)) lvl_r1p1))
(NothingS)
(C1
(D#
(+## sc4_s1mE (/## (-## (int2Double# sc1_s1mB) sc3_s1mD) 4.0))))
sc5_s1mF;
True ->
$sa_s1oE
sc4_s1mE
(:*: (I# sc_s1mA) (:*: (I# sc1_s1mB) (I# 0)))
(JustS (D# sc3_s1mD))
(C0 (D# sc4_s1mE))
sc5_s1mF
}
};
$sa_s1oE
$sa_s1oE =
\ sc_s1mp sc1_s1mq sc2_s1mr sc3_s1ms sc4_s1mt ->
case hPutStr2
stdout
(case <## sc_s1mp 0.0 of _ {
False ->
case {__pkg_ccall base isDoubleNegativeZero Double#
-> State# RealWorld -> (# State# RealWorld, Int# #)}_a1dt
sc_s1mp realWorld#
of _ { (# _, ds1_a1dy #) ->
case ds1_a1dy of _ {
__DEFAULT ->
: $fShowDouble2
(++
($w$sformatRealFloat FFGeneric (Nothing) (negateDouble# sc_s1mp))
([]));
0 -> ++ ($w$sformatRealFloat FFGeneric (Nothing) sc_s1mp) ([])
}
};
True ->
: $fShowDouble2
(++
($w$sformatRealFloat FFGeneric (Nothing) (negateDouble# sc_s1mp))
([]))
})
True
sc4_s1mt
of _ { (# new_s_a17X, _ #) ->
case sc3_s1ms of _ {
C0 ds4_aHW -> (# new_s_a17X, () #);
C1 acc_aH0 ->
case acc_aH0 of wild1_s1j8 { D# x_s1j7 ->
case sc1_s1mq of wild3_aEZ { :*: sa_aF1 sb_aF2 ->
case sa_aF1 of wild4_s1iM { I# x1_s1iL ->
case sb_aF2 of _ { :*: s_s1iR ds2_s1iQ ->
case ds2_s1iQ of _ { I# x2_s1iV ->
case s_s1iR of _ { I# x3_s1iZ ->
case sc2_s1mr of wild8_aF4 {
NothingS ->
case ># x1_s1iL ipv_aJd of _ {
False ->
$s$wa_s1oF
(+# x1_s1iL 1)
x3_s1iZ
x2_s1iV
(int2Double# x1_s1iL)
x_s1j7
new_s_a17X;
True ->
$sa_s1oE x_s1j7 wild3_aEZ (NothingS) (C0 wild1_s1j8) new_s_a17X
};
JustS a2_aFC ->
case a2_aFC of _ { D# y_s1jb ->
case x2_s1iV of wild10_aGa {
__DEFAULT ->
case ># x3_s1iZ ipv_aJd of _ {
False ->
$s$wa_s1oF
x1_s1iL (+# x3_s1iZ 1) (-# wild10_aGa 1) y_s1jb x_s1j7 new_s_a17X;
True ->
$sa_s1oE x_s1j7 wild3_aEZ wild8_aF4 (C0 wild1_s1j8) new_s_a17X
};
0 ->
case ># x3_s1iZ ipv_aJd of _ {
False ->
$sa_s1oE
x_s1j7
(:*: wild4_s1iM (:*: (I# (+# x3_s1iZ 1)) lvl_r1p1))
(NothingS)
(C1 (D# (+## x_s1j7 (/## (-## (int2Double# x3_s1iZ) y_s1jb) 4.0))))
new_s_a17X;
True ->
$sa_s1oE x_s1j7 wild3_aEZ wild8_aF4 (C0 wild1_s1j8) new_s_a17X
}
}
}
}
}
}
}
}
}
}
}
}; } in
let {
sc_s1mh
sc_s1mh = /## ww_s1fi 4.0 } in
case ># ipv1_aJi ipv_aJd of _ {
False ->
$s$wa_s1oF
(+# ipv1_aJi 1) ipv1_aJi 4 (int2Double# ipv1_aJi) sc_s1mh eta_Xq;
True ->
$sa_s1oE
sc_s1mh
(:*: (I# ipv1_aJi) (:*: (I# ipv1_aJi) (I# 4)))
(NothingS)
(C0 (D# sc_s1mh))
eta_Xq
}
}
}
}
main
main = main1 `cast` ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment