Skip to content

Instantly share code, notes, and snippets.

@tibbe
Created November 18, 2012 18:55
Show Gist options
  • Save tibbe/4106836 to your computer and use it in GitHub Desktop.
Save tibbe/4106836 to your computer and use it in GitHub Desktop.
Core output for Gaussian.hs
Rec {
$fUniformGaussianValuesDoubleDouble_ziggurat
:: forall g_a2D9.
RandomGen g_a2D9 =>
(Vector Double, Vector Double, Vector Word)
-> g_a2D9 -> (Double, g_a2D9)
$fUniformGaussianValuesDoubleDouble_ziggurat =
\ (@ g_a2D9)
($dRandomGen_a2Da :: RandomGen g_a2D9)
(eta_B2 :: (Vector Double, Vector Double, Vector Word))
(eta1_B1 :: g_a2D9) ->
case eta_B2 of _ { (tableX_a1o6, tableY_a1o7, tableXW_a1o8) ->
case eta1_B1 of g0_X1oQ { __DEFAULT ->
case $wrandomIvalInteger
@ g_a2D9
@ Word
$dRandomGen_a2Da
$fNumWord
$fRandomCSize4
$fRandomCSize3
g0_X1oQ
of _ { (# ww1_a3fK, ww2_a3fL #) ->
case ww1_a3fK of _ { W# ipv_s3gZ ->
case ww2_a3fL of g1_X1UE { __DEFAULT ->
let {
$w$j_s4ga :: Double# -> (Double, g_a2D9)
$w$j_s4ga =
\ (w_s4cS :: Double#) ->
case $wrandomIvalInteger
@ g_a2D9
@ Word
$dRandomGen_a2Da
$fNumWord
$fRandomCSize4
$fRandomCSize3
g1_X1UE
of _ { (# ww4_X3ky, ww5_X3kA #) ->
case ww4_X3ky of ds1_X2YR { W# ipv1_s3hW ->
case ww5_X3kA of g2_X2CD { __DEFAULT ->
let {
$wfallbackToTail_s4gc
:: forall t_a2BB.
RandomGen t_a2BB =>
t_a2BB -> (# Double, t_a2BB #)
$wfallbackToTail_s4gc =
\ (@ t_a2BB) (w1_s4cI :: RandomGen t_a2BB) (w2_s4cJ :: t_a2BB) ->
case w2_s4cJ of gA_X1uP { __DEFAULT ->
case $wrandomIvalInteger
@ t_a2BB
@ Int64
w1_s4cI
$fNumInt64
$fRandomCIntMax4
$fRandomCIntMax3
gA_X1uP
of _ { (# ww7_a3hk, ww8_a3hl #) ->
case ww8_a3hl of gB_X1V9 { __DEFAULT ->
case $fRandomDouble4 of _ { I64# x#_a3hj ->
case ww7_a3hk of _ { I64# y#_a3ht ->
case $fRandomDouble3 of _ { D# y_a3hs ->
case $wrandomIvalInteger
@ t_a2BB
@ Int64
w1_s4cI
$fNumInt64
$fRandomCIntMax4
$fRandomCIntMax3
gB_X1V9
of _ { (# ww10_X3pq, ww11_X3ps #) ->
case ww11_X3ps of gC_X2C4 { __DEFAULT ->
case ww10_X3pq of _ { I64# y#1_X3pK ->
case lvl33_r4Zo of _ { D# y1_a3za ->
case /##
(int2Double#
(word2Int# (and# (int2Word# x#_a3hj) (int2Word# y#_a3ht))))
y_a3hs
of wild6_a3hw { __DEFAULT ->
case logDouble# wild6_a3hw of wild7_X3DZ { __DEFAULT ->
case /## wild7_X3DZ y1_a3za of wild8_a3zc { __DEFAULT ->
let {
x_a3hM :: Double#
x_a3hM = negateDouble# wild8_a3zc } in
case /##
(int2Double#
(word2Int# (and# (int2Word# x#_a3hj) (int2Word# y#1_X3pK))))
y_a3hs
of wild9_X3pU { __DEFAULT ->
case logDouble# wild9_X3pU of wild10_a3yn { __DEFAULT ->
let {
x1_a3zG :: Double#
x1_a3zG = negateDouble# wild10_a3yn } in
case >## (+## x1_a3zG x1_a3zG) (*## x_a3hM x_a3hM) of _ {
False ->
letrec {
$wfallbackToTail1_s4gi :: t_a2BB -> (# Double, t_a2BB #)
$wfallbackToTail1_s4gi =
\ (w3_s4cD :: t_a2BB) ->
case w3_s4cD of gA1_X1GU { __DEFAULT ->
case $wrandomIvalInteger
@ t_a2BB
@ Int64
w1_s4cI
$fNumInt64
$fRandomCIntMax4
$fRandomCIntMax3
gA1_X1GU
of _ { (# ww13_X3tt, ww14_X3tv #) ->
case ww14_X3tv of gB1_X27l { __DEFAULT ->
case ww13_X3tt of _ { I64# y#2_X3tK ->
case $wrandomIvalInteger
@ t_a2BB
@ Int64
w1_s4cI
$fNumInt64
$fRandomCIntMax4
$fRandomCIntMax3
gB1_X27l
of _ { (# ww16_X3BM, ww17_X3BP #) ->
case ww17_X3BP of gC1_X2Ot { __DEFAULT ->
case ww16_X3BM of _ { I64# y#3_X3Ce ->
case /##
(int2Double#
(word2Int# (and# (int2Word# x#_a3hj) (int2Word# y#2_X3tK))))
y_a3hs
of wild14_X3u4 { __DEFAULT ->
case logDouble# wild14_X3u4 of wild15_X3Qz { __DEFAULT ->
case /## wild15_X3Qz y1_a3za of wild16_X3LO { __DEFAULT ->
let {
x2_X3uq :: Double#
x2_X3uq = negateDouble# wild16_X3LO } in
case /##
(int2Double#
(word2Int# (and# (int2Word# x#_a3hj) (int2Word# y#3_X3Ce))))
y_a3hs
of wild17_X3CA { __DEFAULT ->
case logDouble# wild17_X3CA of wild18_X3L5 { __DEFAULT ->
let {
x3_X3Mq :: Double#
x3_X3Mq = negateDouble# wild18_X3L5 } in
case >## (+## x3_X3Mq x3_X3Mq) (*## x2_X3uq x2_X3uq) of _ {
False -> $wfallbackToTail1_s4gi gC1_X2Ot;
True ->
case lvl32_r4Zn of _ { D# y2_X3Io ->
(# D# (*## w_s4cS (+## x2_X3uq y2_X3Io)), gC1_X2Ot #)
}
}
}
}
}
}
}
}
}
}
}
}
}
}; } in
$wfallbackToTail1_s4gi gC_X2C4;
True ->
case lvl32_r4Zn of _ { D# y2_X3Io ->
(# D# (*## w_s4cS (+## x_a3hM y2_X3Io)), gC_X2C4 #)
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
} } in
let {
ipv2_s3h2 :: Int#
ipv2_s3h2 = word2Int# (and# ipv_s3gZ (__word 127)) } in
let {
x_s3nB :: Double
x_s3nB =
let {
i#_a3zt :: Int#
i#_a3zt = word2Int# ipv1_s3hW } in
case >=# i#_a3zt 0 of _ {
False ->
case doubleFromInteger (wordToInteger ipv1_s3hW)
of wild2_a35B { __DEFAULT ->
case lvl35_r4Zq of _ { D# x1_a3z6 ->
case doubleFromInteger $fUniformGaussianValuesDoubleDouble5
of wild4_X3dM { __DEFAULT ->
case tableX_a1o6 of _ { Vector rb_a3Mb rb1_a3Mc rb2_a3Md ->
case indexArray# @ Double rb2_a3Md (+# rb_a3Mb ipv2_s3h2)
of _ { (# x2_a3Ml #) ->
case x2_a3Ml of _ { D# y_X3q9 ->
case /## x1_a3z6 wild4_X3dM of wild8_a3zc { __DEFAULT ->
D# (*## (*## wild2_a35B wild8_a3zc) y_X3q9)
}
}
}
}
}
}
};
True ->
case doubleFromInteger (smallInteger i#_a3zt)
of wild2_a35B { __DEFAULT ->
case lvl35_r4Zq of _ { D# x1_a3z6 ->
case doubleFromInteger $fUniformGaussianValuesDoubleDouble5
of wild4_X3dM { __DEFAULT ->
case tableX_a1o6 of _ { Vector rb_a3Mb rb1_a3Mc rb2_a3Md ->
case indexArray# @ Double rb2_a3Md (+# rb_a3Mb ipv2_s3h2)
of _ { (# x2_a3Ml #) ->
case x2_a3Ml of _ { D# y_X3q9 ->
case /## x1_a3z6 wild4_X3dM of wild8_a3zc { __DEFAULT ->
D# (*## (*## wild2_a35B wild8_a3zc) y_X3q9)
}
}
}
}
}
}
}
} } in
let {
l_a1oc :: Int
l_a1oc = I# ipv2_s3h2 } in
let {
checkYStep_s3nA :: (Double, g_a2D9)
checkYStep_s3nA =
case tableY_a1o7 of _ { Vector rb_a3Mb rb1_a3Mc rb2_a3Md ->
case indexArray# @ Double rb2_a3Md (+# rb_a3Mb ipv2_s3h2)
of _ { (# x1_a3Ml #) ->
case x1_a3Ml of _ { D# ipv3_s3hZ ->
case indexArray# @ Double rb2_a3Md (+# rb_a3Mb (-# ipv2_s3h2 1))
of _ { (# x2_X3TD #) ->
case x2_X3TD of _ { D# ipv4_s3i2 ->
case $wrandomIvalInteger
@ g_a2D9
@ Int64
$dRandomGen_a2Da
$fNumInt64
$fRandomCIntMax4
$fRandomCIntMax3
g2_X2CD
of _ { (# ww7_a3hk, ww8_a3hl #) ->
case $fRandomDouble4 of _ { I64# x#_a3hj ->
case ww7_a3hk of _ { I64# y#_a3ht ->
case $fRandomDouble3 of _ { D# y_a3hs ->
case ww8_a3hl of g3_X2CZ { __DEFAULT ->
case $fUniformGaussianValuesDoubleDouble13 of _ { D# x3_X3qd ->
case x_s3nB of _ { D# y1_X3ql ->
case /##
(int2Double#
(word2Int# (and# (int2Word# x#_a3hj) (int2Word# y#_a3ht))))
y_a3hs
of wild9_a3hw { __DEFAULT ->
case <##
(+## ipv4_s3i2 (*## (-## ipv3_s3hZ ipv4_s3i2) wild9_a3hw))
(expDouble# (negateDouble# (*## (*## x3_X3qd y1_X3ql) y1_X3ql)))
of _ {
False ->
letrec {
$sziggurat_s4Yq
:: RandomGen g_a2D9 =>
Vector Double
-> Int#
-> Int#
-> Array# Double
-> Vector Word
-> g_a2D9
-> (Double, g_a2D9)
$sziggurat_s4Yq =
\ (sc_s4VH :: RandomGen g_a2D9)
(sc1_s4VI :: Vector Double)
(sc2_s4VJ :: Int#)
(sc3_s4VK :: Int#)
(sc4_s4VL :: Array# Double)
(sc5_s4VM :: Vector Word)
(sc6_s4VN :: g_a2D9) ->
case sc6_s4VN of g4_X1B7 { __DEFAULT ->
case $wrandomIvalInteger
@ g_a2D9
@ Word
sc_s4VH
$fNumWord
$fRandomCSize4
$fRandomCSize3
g4_X1B7
of _ { (# ww10_X3s5, ww11_X3s7 #) ->
case ww10_X3s5 of _ { W# ipv5_X3to ->
case ww11_X3s7 of g5_X276 { __DEFAULT ->
let {
$w$j1_X4sF :: Double# -> (Double, g_a2D9)
$w$j1_X4sF =
\ (w1_X4po :: Double#) ->
case $wrandomIvalInteger
@ g_a2D9
@ Word
sc_s4VH
$fNumWord
$fRandomCSize4
$fRandomCSize3
g5_X276
of _ { (# ww13_X3x6, ww14_X3x9 #) ->
case ww13_X3x6 of ds3_X3bs { W# ipv6_X3uy ->
case ww14_X3x9 of g6_X31X { __DEFAULT ->
let {
$wfallbackToTail1_X4sV
:: forall t_a2BB.
RandomGen t_a2BB =>
t_a2BB -> (# Double, t_a2BB #)
$wfallbackToTail1_X4sV =
\ (@ t_a2BB) (w2_s4cI :: RandomGen t_a2BB) (w3_s4cJ :: t_a2BB) ->
case w3_s4cJ of gA_X1uP { __DEFAULT ->
case $wrandomIvalInteger
@ t_a2BB
@ Int64
w2_s4cI
$fNumInt64
$fRandomCIntMax4
$fRandomCIntMax3
gA_X1uP
of _ { (# ww16_X3ub, ww17_X3ud #) ->
case ww17_X3ud of gB_X1V9 { __DEFAULT ->
case ww16_X3ub of _ { I64# y#1_X3ut ->
case $wrandomIvalInteger
@ t_a2BB
@ Int64
w2_s4cI
$fNumInt64
$fRandomCIntMax4
$fRandomCIntMax3
gB_X1V9
of _ { (# ww19_X3pq, ww20_X3ps #) ->
case ww20_X3ps of gC_X2C4 { __DEFAULT ->
case ww19_X3pq of _ { I64# y#2_X3pK ->
case lvl33_r4Zo of _ { D# y2_a3za ->
case /##
(int2Double#
(word2Int#
(and# (int2Word# x#_a3hj) (int2Word# y#1_X3ut))))
y_a3hs
of wild14_X3uS { __DEFAULT ->
case logDouble# wild14_X3uS of wild15_X3DZ { __DEFAULT ->
case /## wild15_X3DZ y2_a3za of wild16_a3zc { __DEFAULT ->
let {
x4_a3hM :: Double#
x4_a3hM = negateDouble# wild16_a3zc } in
case /##
(int2Double#
(word2Int#
(and# (int2Word# x#_a3hj) (int2Word# y#2_X3pK))))
y_a3hs
of wild17_X3pU { __DEFAULT ->
case logDouble# wild17_X3pU of wild18_a3yn { __DEFAULT ->
let {
x5_a3zG :: Double#
x5_a3zG = negateDouble# wild18_a3yn } in
case >## (+## x5_a3zG x5_a3zG) (*## x4_a3hM x4_a3hM) of _ {
False ->
letrec {
$wfallbackToTail2_s4gi :: t_a2BB -> (# Double, t_a2BB #)
$wfallbackToTail2_s4gi =
\ (w4_s4cD :: t_a2BB) ->
case w4_s4cD of gA1_X1It { __DEFAULT ->
case $wrandomIvalInteger
@ t_a2BB
@ Int64
w2_s4cI
$fNumInt64
$fRandomCIntMax4
$fRandomCIntMax3
gA1_X1It
of _ { (# ww22_X3v2, ww23_X3v4 #) ->
case ww23_X3v4 of gB1_X28U { __DEFAULT ->
case ww22_X3v2 of _ { I64# y#3_X3vj ->
case $wrandomIvalInteger
@ t_a2BB
@ Int64
w2_s4cI
$fNumInt64
$fRandomCIntMax4
$fRandomCIntMax3
gB1_X28U
of _ { (# ww25_X3Dl, ww26_X3Do #) ->
case ww26_X3Do of gC1_X2Q2 { __DEFAULT ->
case ww25_X3Dl of _ { I64# y#4_X3DN ->
case /##
(int2Double#
(word2Int#
(and#
(int2Word# x#_a3hj)
(int2Word# y#3_X3vj))))
y_a3hs
of wild22_X3JK { __DEFAULT ->
case logDouble# wild22_X3JK
of wild23_X3S8 { __DEFAULT ->
case /## wild23_X3S8 y2_a3za
of wild24_X3Nn { __DEFAULT ->
let {
x6_X3vZ :: Double#
x6_X3vZ = negateDouble# wild24_X3Nn } in
case /##
(int2Double#
(word2Int#
(and#
(int2Word# x#_a3hj)
(int2Word# y#4_X3DN))))
y_a3hs
of wild25_X3E9 { __DEFAULT ->
case logDouble# wild25_X3E9
of wild26_X3ME { __DEFAULT ->
let {
x7_X3NZ :: Double#
x7_X3NZ = negateDouble# wild26_X3ME } in
case >## (+## x7_X3NZ x7_X3NZ) (*## x6_X3vZ x6_X3vZ)
of _ {
False -> $wfallbackToTail2_s4gi gC1_X2Q2;
True ->
case lvl32_r4Zn of _ { D# y3_X3Io ->
(# D# (*## w1_X4po (+## x6_X3vZ y3_X3Io)),
gC1_X2Q2 #)
}
}
}
}
}
}
}
}
}
}
}
}
}
}; } in
$wfallbackToTail2_s4gi gC_X2C4;
True ->
case lvl32_r4Zn of _ { D# y3_X3Io ->
(# D# (*## w1_X4po (+## x4_a3hM y3_X3Io)), gC_X2C4 #)
}
}
}
}
}
}
}
}
}
}
}
}
}
}
} } in
let {
ipv7_X3tN :: Int#
ipv7_X3tN = word2Int# (and# ipv5_X3to (__word 127)) } in
let {
x4_X3Ao :: Double
x4_X3Ao =
let {
i#_a3zt :: Int#
i#_a3zt = word2Int# ipv6_X3uy } in
case >=# i#_a3zt 0 of _ {
False ->
case doubleFromInteger (wordToInteger ipv6_X3uy)
of wild12_a35B { __DEFAULT ->
case lvl35_r4Zq of _ { D# x5_a3z6 ->
case doubleFromInteger $fUniformGaussianValuesDoubleDouble5
of wild14_X3dM { __DEFAULT ->
case sc1_s4VI of _ { Vector rb3_X3Za rb4_X3Zc rb5_X4cf ->
case indexArray# @ Double rb5_X4cf (+# rb3_X3Za ipv7_X3tN)
of _ { (# x6_X4cv #) ->
case x6_X4cv of _ { D# y2_X3q9 ->
case /## x5_a3z6 wild14_X3dM of wild18_a3zc { __DEFAULT ->
D# (*## (*## wild12_a35B wild18_a3zc) y2_X3q9)
}
}
}
}
}
}
};
True ->
case doubleFromInteger (smallInteger i#_a3zt)
of wild12_a35B { __DEFAULT ->
case lvl35_r4Zq of _ { D# x5_a3z6 ->
case doubleFromInteger $fUniformGaussianValuesDoubleDouble5
of wild14_X3dM { __DEFAULT ->
case sc1_s4VI of _ { Vector rb3_X3Za rb4_X3Zc rb5_X4cf ->
case indexArray# @ Double rb5_X4cf (+# rb3_X3Za ipv7_X3tN)
of _ { (# x6_X4cv #) ->
case x6_X4cv of _ { D# y2_X3q9 ->
case /## x5_a3z6 wild14_X3dM of wild18_a3zc { __DEFAULT ->
D# (*## (*## wild12_a35B wild18_a3zc) y2_X3q9)
}
}
}
}
}
}
}
} } in
let {
l1_X1B1 :: Int
l1_X1B1 = I# ipv7_X3tN } in
let {
checkYStep1_X3Ar :: (Double, g_a2D9)
checkYStep1_X3Ar =
case indexArray# @ Double sc4_s4VL (+# sc2_s4VJ ipv7_X3tN)
of _ { (# x5_X3Zk #) ->
case x5_X3Zk of _ { D# ipv8_X3v1 ->
case indexArray# @ Double sc4_s4VL (+# sc2_s4VJ (-# ipv7_X3tN 1))
of _ { (# x6_X46J #) ->
case x6_X46J of _ { D# ipv9_X3vb ->
case $wrandomIvalInteger
@ g_a2D9
@ Int64
sc_s4VH
$fNumInt64
$fRandomCIntMax4
$fRandomCIntMax3
g6_X31X
of _ { (# ww16_X3ux, ww17_X3uz #) ->
case ww16_X3ux of _ { I64# y#1_X3uL ->
case ww17_X3uz of g7_X2Ql { __DEFAULT ->
case x4_X3Ao of _ { D# y2_X3DN ->
case /##
(int2Double#
(word2Int#
(and# (int2Word# x#_a3hj) (int2Word# y#1_X3uL))))
y_a3hs
of wild15_X3Iw { __DEFAULT ->
case <##
(+## ipv9_X3vb (*## (-## ipv8_X3v1 ipv9_X3vb) wild15_X3Iw))
(expDouble#
(negateDouble# (*## (*## x3_X3qd y2_X3DN) y2_X3DN)))
of _ {
False ->
$sziggurat_s4Yq
sc_s4VH
sc1_s4VI
sc2_s4VJ
sc3_s4VK
sc4_s4VL
sc5_s4VM
g7_X2Ql;
True -> (D# (*## y2_X3DN w1_X4po), g7_X2Ql)
}
}
}
}
}
}
}
}
}
} } in
let {
checkXStep_s3nz :: (Double, g_a2D9)
checkXStep_s3nz =
case sc5_s4VM of _ { Vector rb3_X3Z7 rb4_X3Z9 rb5_X4c9 ->
case indexArray# @ Word rb5_X4c9 (+# rb3_X3Z7 ipv7_X3tN)
of _ { (# x5_X3Zn #) ->
case x5_X3Zn of _ { W# b1_a3gC ->
case ltWord# ipv6_X3uy b1_a3gC of _ {
False -> checkYStep1_X3Ar;
True ->
case x4_X3Ao of _ { D# x6_a3hM ->
(D# (*## x6_a3hM w1_X4po), g6_X31X)
}
}
}
}
} } in
let {
fallbackToTail_s3nF
:: forall t_a2BB. RandomGen t_a2BB => t_a2BB -> (Double, t_a2BB)
fallbackToTail_s3nF =
\ (@ t_a2BB) (w2_s4cI :: RandomGen t_a2BB) (w3_s4cJ :: t_a2BB) ->
case $wfallbackToTail1_X4sV @ t_a2BB w2_s4cI w3_s4cJ
of _ { (# ww16_s4gf, ww17_s4gg #) ->
(ww16_s4gf, ww17_s4gg)
} } in
let {
checkBottomLayer_s3nI :: (Double, g_a2D9)
checkBottomLayer_s3nI =
case ipv7_X3tN of _ {
__DEFAULT -> checkXStep_s3nz;
0 ->
case sc5_s4VM of _ { Vector rb3_X3Zd rb4_X3Zf rb5_X4cl ->
case indexArray# @ Word rb5_X4cl rb3_X3Zd
of _ { (# x5_X4cB #) ->
case x5_X4cB of _ { W# b1_a3gC ->
case ltWord# ipv6_X3uy b1_a3gC of _ {
False ->
case $wfallbackToTail1_X4sV @ g_a2D9 sc_s4VH g6_X31X
of _ { (# ww16_s4gf, ww17_s4gg #) ->
(ww16_s4gf, ww17_s4gg)
};
True ->
let {
i#_a3zt :: Int#
i#_a3zt = word2Int# ipv6_X3uy } in
case >=# i#_a3zt 0 of _ {
False ->
case doubleFromInteger (wordToInteger ipv6_X3uy)
of wild17_a35B { __DEFAULT ->
case lvl34_r4Zp of _ { D# x6_a3z6 ->
case doubleFromInteger
$fUniformGaussianValuesDoubleDouble5
of wild19_X3lF { __DEFAULT ->
case lvl31_r4Zm of _ { D# y2_X3qs ->
case /## x6_a3z6 wild19_X3lF
of wild21_a3zc { __DEFAULT ->
(D#
(*##
(*## (*## wild17_a35B wild21_a3zc) y2_X3qs)
w1_X4po),
g6_X31X)
}
}
}
}
};
True ->
case doubleFromInteger (smallInteger i#_a3zt)
of wild17_a35B { __DEFAULT ->
case lvl34_r4Zp of _ { D# x6_a3z6 ->
case doubleFromInteger
$fUniformGaussianValuesDoubleDouble5
of wild19_X3lF { __DEFAULT ->
case lvl31_r4Zm of _ { D# y2_X3qs ->
case /## x6_a3z6 wild19_X3lF
of wild21_a3zc { __DEFAULT ->
(D#
(*##
(*## (*## wild17_a35B wild21_a3zc) y2_X3qs)
w1_X4po),
g6_X31X)
}
}
}
}
}
}
}
}
}
}
} } in
checkBottomLayer_s3nI
}
}
} } in
case eqWord# (and# ipv5_X3to (__word 128)) (__word 0) of _ {
False ->
case lvl30_r4Zl of _ { D# ipv6_s3h5 -> $w$j1_X4sF ipv6_s3h5 };
True ->
case lvl29_r4Zk of _ { D# ipv6_s3h5 -> $w$j1_X4sF ipv6_s3h5 }
}
}
}
}
}; } in
$sziggurat_s4Yq
$dRandomGen_a2Da
tableX_a1o6
rb_a3Mb
rb1_a3Mc
rb2_a3Md
tableXW_a1o8
g3_X2CZ;
True -> (D# (*## y1_X3ql w_s4cS), g3_X2CZ)
}
}
}
}
}
}
}
}
}
}
}
}
}
} } in
let {
checkXStep_s3nz :: (Double, g_a2D9)
checkXStep_s3nz =
case tableXW_a1o8 of _ { Vector rb_a3Mb rb1_a3Mc rb2_a3Md ->
case indexArray# @ Word rb2_a3Md (+# rb_a3Mb ipv2_s3h2)
of _ { (# x1_a3Ml #) ->
case x1_a3Ml of _ { W# b1_a3gC ->
case ltWord# ipv1_s3hW b1_a3gC of _ {
False -> checkYStep_s3nA;
True ->
case x_s3nB of _ { D# x2_a3hM ->
(D# (*## x2_a3hM w_s4cS), g2_X2CD)
}
}
}
}
} } in
let {
fallbackToTail_s3nF
:: forall t_a2BB. RandomGen t_a2BB => t_a2BB -> (Double, t_a2BB)
fallbackToTail_s3nF =
\ (@ t_a2BB) (w1_s4cI :: RandomGen t_a2BB) (w2_s4cJ :: t_a2BB) ->
case $wfallbackToTail_s4gc @ t_a2BB w1_s4cI w2_s4cJ
of _ { (# ww7_s4gf, ww8_s4gg #) ->
(ww7_s4gf, ww8_s4gg)
} } in
let {
checkBottomLayer_s3nI :: (Double, g_a2D9)
checkBottomLayer_s3nI =
case ipv2_s3h2 of _ {
__DEFAULT -> checkXStep_s3nz;
0 ->
case tableXW_a1o8 of _ { Vector rb_a3Mb rb1_a3Mc rb2_a3Md ->
case indexArray# @ Word rb2_a3Md rb_a3Mb of _ { (# x1_a3Ml #) ->
case x1_a3Ml of _ { W# b1_a3gC ->
case ltWord# ipv1_s3hW b1_a3gC of _ {
False ->
case $wfallbackToTail_s4gc @ g_a2D9 $dRandomGen_a2Da g2_X2CD
of _ { (# ww7_s4gf, ww8_s4gg #) ->
(ww7_s4gf, ww8_s4gg)
};
True ->
let {
i#_a3zt :: Int#
i#_a3zt = word2Int# ipv1_s3hW } in
case >=# i#_a3zt 0 of _ {
False ->
case doubleFromInteger (wordToInteger ipv1_s3hW)
of wild7_a35B { __DEFAULT ->
case lvl34_r4Zp of _ { D# x2_a3z6 ->
case doubleFromInteger $fUniformGaussianValuesDoubleDouble5
of wild9_X3lF { __DEFAULT ->
case lvl31_r4Zm of _ { D# y_X3qs ->
case /## x2_a3z6 wild9_X3lF of wild11_a3zc { __DEFAULT ->
(D# (*## (*## (*## wild7_a35B wild11_a3zc) y_X3qs) w_s4cS),
g2_X2CD)
}
}
}
}
};
True ->
case doubleFromInteger (smallInteger i#_a3zt)
of wild7_a35B { __DEFAULT ->
case lvl34_r4Zp of _ { D# x2_a3z6 ->
case doubleFromInteger $fUniformGaussianValuesDoubleDouble5
of wild9_X3lF { __DEFAULT ->
case lvl31_r4Zm of _ { D# y_X3qs ->
case /## x2_a3z6 wild9_X3lF of wild11_a3zc { __DEFAULT ->
(D# (*## (*## (*## wild7_a35B wild11_a3zc) y_X3qs) w_s4cS),
g2_X2CD)
}
}
}
}
}
}
}
}
}
}
} } in
checkBottomLayer_s3nI
}
}
} } in
case eqWord# (and# ipv_s3gZ (__word 128)) (__word 0) of _ {
False ->
case lvl30_r4Zl of _ { D# ipv1_s3h5 -> $w$j_s4ga ipv1_s3h5 };
True ->
case lvl29_r4Zk of _ { D# ipv1_s3h5 -> $w$j_s4ga ipv1_s3h5 }
}
}
}
}
}
}
end Rec }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment