fast-arithmetic 0.6.4.0 → 0.6.4.1
raw patch · 11 files changed
+450/−449 lines, 11 filesdep +hgmpdep −composition-preludedep −gmpintdep ~arithmoidep ~combinatPVP ok
version bump matches the API change (PVP)
Dependencies added: hgmp
Dependencies removed: composition-prelude, gmpint
Dependency ranges changed: arithmoi, combinat
API changes (from Hackage documentation)
Files
- CHANGELOG.md +4/−0
- LICENSE +1/−1
- README.md +24/−20
- ats-src/bench.dats +8/−1
- ats-src/combinatorics.dats +3/−5
- atspkg.dhall +1/−1
- bench/Bench.hs +2/−2
- cbits/combinatorics.c +365/−365
- fast-arithmetic.cabal +8/−23
- src/Numeric/Combinatorics.hs +29/−23
- test/Spec.hs +5/−8
CHANGELOG.md view
@@ -1,5 +1,9 @@ # fast-arithmetic +## 0.6.4.1++ * Use `hgmp` internally+ ## 0.6.4.0 * Add `bell` to the ATS library
LICENSE view
@@ -1,4 +1,4 @@-Copyright Vanessa McHale (c) 2017+Copyright Vanessa McHale (c) 2017-2018 Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
README.md view
@@ -17,26 +17,30 @@ | Computation | Version (ATS/Haskell) | Time | | ----------- | --------------------- | ---- |-| `isPrime 2017` | ATS | 117.1 ns |-| `isPrime 2017` | Haskell | 426.4 ns |-| `φ(2016)` | ATS | 190.9 ns |-| `φ(2016)` | Haskell | 356.9 ns |-| `τ(3018)` | ATS | 340.8 ns |-| `τ(3018)` | Haskell | 659.0 ns |-| `σ(115)` | ATS | 41.27 ns |-| `σ(115)` | Haskell | 314.1 ns |-| `ω(91)` | ATS | 64.67 ns |-| `ω(91)` | Haskell | 332.0 ns |-| `160!` | ATS | 4.303 μs |-| `160!` | Haskell | 5.659 μs |-| `79!!` | ATS | 941.2 ns |-| `79!!` | Haskell | 1.267 μs |-| ``322 `choose` 16`` | ATS | 557.5 ns |-| ``322 `choose` 16`` | Haskell | 996.3 ns |-| `catalan 300` | ATS | 18.15 μs |-| `catalan 300` | Haskell | 29.08 μs |-| `permutations 20 10` | ATS | 198.6 ns |-| `permutations 20 10` | Haskell | 392.3 ns |+| `isPrime 2017` | ATS | 117.2 ns |+| `isPrime 2017` | Haskell | 425.0 ns |+| `φ(2016)` | ATS | 191.5 ns |+| `φ(2016)` | Haskell | 384.8 ns |+| `τ(3018)` | ATS | 337.0 ns |+| `τ(3018)` | Haskell | 660.2 ns |+| `σ(115)` | ATS | 45.41 ns |+| `σ(115)` | Haskell | 322.4 ns |+| `ω(91)` | ATS | 65.52 ns |+| `ω(91)` | Haskell | 345.2 ns |+| `160!` | ATS | 2.363 μs |+| `160!` | Haskell | 6.134μs |+| `79!!` | ATS | 556.2 ns |+| `79!!` | Haskell | 1.355 μs |+| ``322 `choose` 16`` | ATS | 467.6 ns |+| ``322 `choose` 16`` | Haskell | 956.7 ns |+| `catalan 300` | ATS | 13.74 μs |+| `catalan 300` | Haskell | 28.76 μs |+| `permutations 20 10` | ATS | 202.8 ns |+| `permutations 20 10` | Haskell | 362.6 ns |+| `maxRegions 45000` | ATS | 624.1 ns |+| `maxRegions 45000` | Haskell | 1.064 μs |+| `stirling2 25 8` | ATS | 3.108 μs |+| `stirling2 25 8` | Haskell | 9.494 μs | ## Building
ats-src/bench.dats view
@@ -5,7 +5,6 @@ #include "ats-src/combinatorics.dats" #include "$PATSHOMELOCS/ats-bench-0.3.3/bench.dats" -// TODO: bench dernangements fn factorial_bench() : void = { val x = fact(160)@@ -42,12 +41,19 @@ val () = intinf_free(x) } +fn derangement_bench() : void =+ {+ val x = derangements(35)+ val () = intinf_free(x)+ }+ val factorial_delay: io = lam () => factorial_bench() val double_factorial_delay: io = lam () => double_factorial_bench() val choose_delay: io = lam () => double_factorial_bench() val catalan_delay: io = lam () => catalan_bench() val permutations_delay: io = lam () => permutations_bench() val bell_delay: io = lam () => bell_bench()+val derangement_delay: io = lam () => derangement_bench() implement main0 () = {@@ -61,4 +67,5 @@ val () = print_slope("catalan", 9, catalan_delay) val () = print_slope("permutations", 13, permutations_delay) val () = print_slope("bell", 8, bell_delay)+ val () = print_slope("derangements", 12, derangement_delay) }
ats-src/combinatorics.dats view
@@ -8,9 +8,7 @@ staload UN = "prelude/SATS/unsafe.sats" staload "ats-src/combinatorics.sats" -// See [here](http://mathworld.wolfram.com/Derangement.html). I'm not sure how-// fast this is, but it *seems* to be faster than the Haskell version so that's-// good.+// See [here](http://mathworld.wolfram.com/Derangement.html). fn derangements {n:nat} .<n>. (n : int(n)) : Intinf = let fun loop { n : nat | n > 1 }{ i : nat | i <= n } .<n-i>. (n : int(n), i : int(i), n1 : Intinf, n2 : Intinf) : Intinf =@@ -113,7 +111,7 @@ var z = div_intinf0_intinf1(x, y) val _ = intinf_free(y) in- $UN.castvwtp0(z)+ z end end @@ -143,7 +141,7 @@ var z = div_intinf0_intinf1(x, y) val _ = intinf_free(y) in- $UN.castvwtp0(z)+ z end end
atspkg.dhall view
@@ -101,7 +101,7 @@ , ccompiler = prelude.printCompiler cc , debPkg = prelude.mkDeb (prelude.debian "fast-arithmetic" ⫽- { version = [0,6,4,0]+ { version = [0,6,4,1] , maintainer = "Vanessa McHale <vamchale@gmail.com>" , description = "Library for fast arithmetic in ATS" , libraries = [ "${prelude.atsProject}/libnumbertheory.a" ]
bench/Bench.hs view
@@ -15,7 +15,7 @@ where up = floor (sqrt (fromIntegral x :: Double)) hsMaxRegions :: Int -> Integer-hsMaxRegions n = sum $ fmap (n `choose`) [0..4]+hsMaxRegions n = sum $ fmap (n `Ext.binomial`) [0..4] main :: IO () main =@@ -64,7 +64,7 @@ , bench "hsMaxRegions" $ nf hsMaxRegions 45000 ] , bgroup "stirling"- [ bench "striling2" $ nf (stirling2 25) 8+ [ bench "stirling2" $ nf (stirling2 25) 8 , bench "Ext.stirling2nd" $ nf (Ext.stirling2nd (25 :: Int)) 8 ] ]
cbits/combinatorics.c view
@@ -953,7 +953,7 @@ #endif // end of [QUALIFIED] /*-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 494(line=14, offs=4) -- 1192(line=38, offs=6)+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 388(line=12, offs=4) -- 1086(line=36, offs=6) */ /* local: @@ -973,11 +973,11 @@ /* tmpvardeclst(end) */ ATSfunbody_beg() /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 494(line=14, offs=4) -- 1192(line=38, offs=6)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 388(line=12, offs=4) -- 1086(line=36, offs=6) */ ATSINSflab(__patsflab_derangements_0): /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 547(line=15, offs=3) -- 1192(line=38, offs=6)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 441(line=13, offs=3) -- 1086(line=36, offs=6) */ /* letpush(beg)@@ -987,7 +987,7 @@ */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1034(line=33, offs=5) -- 1186(line=37, offs=59)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 928(line=31, offs=5) -- 1080(line=35, offs=59) */ ATScaseof_beg() /*@@ -995,15 +995,15 @@ */ ATSbranch_beg() /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1053(line=34, offs=9) -- 1054(line=34, offs=10)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 947(line=32, offs=9) -- 948(line=32, offs=10) */ ATSINSlab(__atstmplab0): /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 522(line=14, offs=32) -- 523(line=14, offs=33)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 416(line=12, offs=32) -- 417(line=12, offs=33) */ ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(0))) { ATSINSgoto(__atstmplab2) ; } ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1054(line=34, offs=10) -- 1054(line=34, offs=10)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 948(line=32, offs=10) -- 948(line=32, offs=10) */ ATSINSlab(__atstmplab1): /*@@ -1013,7 +1013,7 @@ ibranch-mbody: */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1058(line=34, offs=14) -- 1071(line=34, offs=27)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 952(line=32, offs=14) -- 965(line=32, offs=27) */ ATSINSmove(tmpret0, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__1(ATSPMVi0nt(1))) ; @@ -1021,15 +1021,15 @@ ATSbranch_beg() /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1080(line=35, offs=9) -- 1081(line=35, offs=10)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 974(line=33, offs=9) -- 975(line=33, offs=10) */ ATSINSlab(__atstmplab2): /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 522(line=14, offs=32) -- 523(line=14, offs=33)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 416(line=12, offs=32) -- 417(line=12, offs=33) */ ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab4) ; } ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1081(line=35, offs=10) -- 1081(line=35, offs=10)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 975(line=33, offs=10) -- 975(line=33, offs=10) */ ATSINSlab(__atstmplab3): /*@@ -1039,7 +1039,7 @@ ibranch-mbody: */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1086(line=35, offs=15) -- 1099(line=35, offs=28)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 980(line=33, offs=15) -- 993(line=33, offs=28) */ ATSINSmove(tmpret0, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__2(ATSPMVi0nt(0))) ; @@ -1047,15 +1047,15 @@ ATSbranch_beg() /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1108(line=36, offs=9) -- 1109(line=36, offs=10)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1002(line=34, offs=9) -- 1003(line=34, offs=10) */ ATSINSlab(__atstmplab4): /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 522(line=14, offs=32) -- 523(line=14, offs=33)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 416(line=12, offs=32) -- 417(line=12, offs=33) */ ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(2))) { ATSINSgoto(__atstmplab6) ; } ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1109(line=36, offs=10) -- 1109(line=36, offs=10)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1003(line=34, offs=10) -- 1003(line=34, offs=10) */ ATSINSlab(__atstmplab5): /*@@ -1065,7 +1065,7 @@ ibranch-mbody: */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1114(line=36, offs=15) -- 1127(line=36, offs=28)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1008(line=34, offs=15) -- 1021(line=34, offs=28) */ ATSINSmove(tmpret0, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__3(ATSPMVi0nt(1))) ; @@ -1073,7 +1073,7 @@ ATSbranch_beg() /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1137(line=37, offs=10) -- 1137(line=37, offs=10)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1031(line=35, offs=10) -- 1031(line=35, offs=10) */ ATSINSlab(__atstmplab6): /*@@ -1083,22 +1083,22 @@ ibranch-mbody: */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1147(line=37, offs=20) -- 1152(line=37, offs=25)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1041(line=35, offs=20) -- 1046(line=35, offs=25) */ ATSINSmove(tmp45, atspre_g1int_sub_int(arg0, ATSPMVi0nt(1))) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1157(line=37, offs=30) -- 1170(line=37, offs=43)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1051(line=35, offs=30) -- 1064(line=35, offs=43) */ ATSINSmove(tmp46, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__4(ATSPMVi0nt(1))) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1172(line=37, offs=45) -- 1185(line=37, offs=58)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1066(line=35, offs=45) -- 1079(line=35, offs=58) */ ATSINSmove(tmp51, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__5(ATSPMVi0nt(0))) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1142(line=37, offs=15) -- 1186(line=37, offs=59)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1036(line=35, offs=15) -- 1080(line=35, offs=59) */ ATSINSmove(tmpret0, loop_1(tmp45, ATSPMVi0nt(2), tmp46, tmp51)) ; @@ -1110,7 +1110,7 @@ ATScaseof_end() /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 547(line=15, offs=3) -- 1192(line=38, offs=6)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 441(line=13, offs=3) -- 1086(line=36, offs=6) */ /* INSletpop()@@ -1120,7 +1120,7 @@ } /* end of [derangements_0] */ /*-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 559(line=16, offs=9) -- 1024(line=31, offs=12)+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 453(line=14, offs=9) -- 918(line=29, offs=12) */ /* local: loop_1$0(level=1)@@ -1148,45 +1148,45 @@ /* tmpvardeclst(end) */ ATSfunbody_beg() /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 559(line=16, offs=9) -- 1024(line=31, offs=12)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 453(line=14, offs=9) -- 918(line=29, offs=12) */ ATSINSflab(__patsflab_loop_1): /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 683(line=17, offs=10) -- 688(line=17, offs=15)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 577(line=15, offs=10) -- 582(line=15, offs=15) */ ATSINSmove(tmp2, ATSLIB_056_prelude__lt_g1int_int__2__1(arg1, arg0)) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 680(line=17, offs=7) -- 1024(line=31, offs=12)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 574(line=15, offs=7) -- 918(line=29, offs=12) */ ATSif( tmp2 ) ATSthen() { /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 702(line=18, offs=9) -- 846(line=23, offs=12)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 596(line=16, offs=9) -- 740(line=21, offs=12) */ /* letpush(beg) */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 720(line=19, offs=15) -- 721(line=19, offs=16)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 614(line=17, offs=15) -- 615(line=17, offs=16) */ /* ATSINStmpdec(tmpref7) ; */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 724(line=19, offs=19) -- 751(line=19, offs=46)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 618(line=17, offs=19) -- 645(line=17, offs=46) */ ATSINSmove(tmpref7, ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6__1(arg3, ATSPMVrefarg0(arg2))) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 766(line=20, offs=15) -- 767(line=20, offs=16)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 660(line=18, offs=15) -- 661(line=18, offs=16) */ /* ATSINStmpdec(tmpref12) ; */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 770(line=20, offs=19) -- 791(line=20, offs=40)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 664(line=18, offs=19) -- 685(line=18, offs=40) */ ATSINSmove(tmpref12, ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__1(tmpref7, arg1)) ; @@ -1195,12 +1195,12 @@ */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 821(line=22, offs=19) -- 826(line=22, offs=24)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 715(line=20, offs=19) -- 720(line=20, offs=24) */ ATSINSmove(tmp17, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 813(line=22, offs=11) -- 834(line=22, offs=32)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 707(line=20, offs=11) -- 728(line=20, offs=32) */ ATStailcal_beg() ATSINSmove_tlcal(apy0, arg0) ;@@ -1215,42 +1215,42 @@ ATStailcal_end() /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 702(line=18, offs=9) -- 846(line=23, offs=12)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 596(line=16, offs=9) -- 740(line=21, offs=12) */ /* INSletpop() */ } ATSelse() { /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 866(line=25, offs=9) -- 1024(line=31, offs=12)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 760(line=23, offs=9) -- 918(line=29, offs=12) */ /* letpush(beg) */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 884(line=26, offs=15) -- 885(line=26, offs=16)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 778(line=24, offs=15) -- 779(line=24, offs=16) */ /* ATSINStmpdec(tmpref18) ; */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 888(line=26, offs=19) -- 915(line=26, offs=46)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 782(line=24, offs=19) -- 809(line=24, offs=46) */ ATSINSmove(tmpref18, ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6__2(arg3, ATSPMVrefarg0(arg2))) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 934(line=27, offs=19) -- 948(line=27, offs=33)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 828(line=25, offs=19) -- 842(line=25, offs=33) */ ATSINSmove_void(tmp21, ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__1(arg2)) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 964(line=28, offs=15) -- 965(line=28, offs=16)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 858(line=26, offs=15) -- 859(line=26, offs=16) */ /* ATSINStmpdec(tmpref26) ; */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 968(line=28, offs=19) -- 989(line=28, offs=40)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 862(line=26, offs=19) -- 883(line=26, offs=40) */ ATSINSmove(tmpref26, ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__2(tmpref18, arg1)) ; @@ -1259,11 +1259,11 @@ */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1011(line=30, offs=11) -- 1012(line=30, offs=12)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 905(line=28, offs=11) -- 906(line=28, offs=12) */ ATSINSmove(tmpret1, tmpref26) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 866(line=25, offs=9) -- 1024(line=31, offs=12)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 760(line=23, offs=9) -- 918(line=29, offs=12) */ /* INSletpop()@@ -2402,7 +2402,7 @@ } /* end of [ATSLIB_056_prelude__ptr_alloc__17__5] */ /*-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1198(line=40, offs=5) -- 1476(line=48, offs=8)+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1092(line=38, offs=5) -- 1370(line=46, offs=8) */ /* local: fact_ref_28$0(level=0)@@ -2424,11 +2424,11 @@ /* tmpvardeclst(end) */ ATSfunbody_beg() /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1198(line=40, offs=5) -- 1476(line=48, offs=8)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1092(line=38, offs=5) -- 1370(line=46, offs=8) */ ATSINSflab(__patsflab_fact_ref_28): /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1283(line=41, offs=3) -- 1476(line=48, offs=8)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1177(line=39, offs=3) -- 1370(line=46, offs=8) */ ATScaseof_beg() /*@@ -2436,15 +2436,15 @@ */ ATSbranch_beg() /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1300(line=42, offs=7) -- 1301(line=42, offs=8)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1194(line=40, offs=7) -- 1195(line=40, offs=8) */ ATSINSlab(__atstmplab7): /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1222(line=40, offs=29) -- 1223(line=40, offs=30)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1116(line=38, offs=29) -- 1117(line=38, offs=30) */ ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(0))) { ATSINSgoto(__atstmplab9) ; } ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1301(line=42, offs=8) -- 1301(line=42, offs=8)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1195(line=40, offs=8) -- 1195(line=40, offs=8) */ ATSINSlab(__atstmplab8): /*@@ -2454,31 +2454,31 @@ ibranch-mbody: */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1312(line=42, offs=19) -- 1325(line=42, offs=32)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1206(line=40, offs=19) -- 1219(line=40, offs=32) */ ATSINSmove(tmp57, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__6(ATSPMVi0nt(1))) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1305(line=42, offs=12) -- 1325(line=42, offs=32)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1199(line=40, offs=12) -- 1219(line=40, offs=32) */ ATSINSstore(ATSderef(arg1, atstkind_type(atstype_ptrk)), tmp57) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1305(line=42, offs=12) -- 1325(line=42, offs=32)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1199(line=40, offs=12) -- 1219(line=40, offs=32) */ ATSINSmove_void(tmpret56, ATSPMVempty()) ; ATSbranch_end() ATSbranch_beg() /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1332(line=43, offs=7) -- 1333(line=43, offs=8)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1226(line=41, offs=7) -- 1227(line=41, offs=8) */ ATSINSlab(__atstmplab9): /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1222(line=40, offs=29) -- 1223(line=40, offs=30)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1116(line=38, offs=29) -- 1117(line=38, offs=30) */ ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab11) ; } ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1333(line=43, offs=8) -- 1333(line=43, offs=8)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1227(line=41, offs=8) -- 1227(line=41, offs=8) */ ATSINSlab(__atstmplab10): /*@@ -2488,23 +2488,23 @@ ibranch-mbody: */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1344(line=43, offs=19) -- 1357(line=43, offs=32)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1238(line=41, offs=19) -- 1251(line=41, offs=32) */ ATSINSmove(tmp62, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__7(ATSPMVi0nt(1))) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1337(line=43, offs=12) -- 1357(line=43, offs=32)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1231(line=41, offs=12) -- 1251(line=41, offs=32) */ ATSINSstore(ATSderef(arg1, atstkind_type(atstype_ptrk)), tmp62) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1337(line=43, offs=12) -- 1357(line=43, offs=32)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1231(line=41, offs=12) -- 1251(line=41, offs=32) */ ATSINSmove_void(tmpret56, ATSPMVempty()) ; ATSbranch_end() ATSbranch_beg() /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1365(line=44, offs=8) -- 1365(line=44, offs=8)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1259(line=42, offs=8) -- 1259(line=42, offs=8) */ ATSINSlab(__atstmplab11): /*@@ -2514,18 +2514,18 @@ ibranch-mbody: */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1370(line=44, offs=13) -- 1476(line=48, offs=8)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1264(line=42, offs=13) -- 1370(line=46, offs=8) */ /* letpush(beg) */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1398(line=45, offs=25) -- 1403(line=45, offs=30)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1292(line=43, offs=25) -- 1297(line=43, offs=30) */ ATSINSmove(tmp68, atspre_g1int_sub_int(arg0, ATSPMVi0nt(1))) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1389(line=45, offs=16) -- 1409(line=45, offs=36)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1283(line=43, offs=16) -- 1303(line=43, offs=36) */ ATSINSmove_void(tmp67, fact_ref_28(tmp68, ATSPMVrefarg1(arg1))) ; @@ -2534,20 +2534,20 @@ */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1444(line=47, offs=28) -- 1467(line=47, offs=51)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1338(line=45, offs=28) -- 1361(line=45, offs=51) */ ATSINSmove(tmp69, ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__3(ATSderef(arg1, atstkind_type(atstype_ptrk)), arg0)) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1423(line=47, offs=7) -- 1468(line=47, offs=52)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1317(line=45, offs=7) -- 1362(line=45, offs=52) */ ATSINSstore(ATSderef(arg1, atstkind_type(atstype_ptrk)), ATSPMVcastfn(castvwtp0, atstype_boxed, tmp69)) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1423(line=47, offs=7) -- 1468(line=47, offs=52)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1317(line=45, offs=7) -- 1362(line=45, offs=52) */ ATSINSmove_void(tmpret56, ATSPMVempty()) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1370(line=44, offs=13) -- 1476(line=48, offs=8)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1264(line=42, offs=13) -- 1370(line=46, offs=8) */ /* INSletpop()@@ -2814,7 +2814,7 @@ } /* end of [ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__3] */ /*-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1481(line=50, offs=4) -- 1610(line=56, offs=6)+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1375(line=48, offs=4) -- 1504(line=54, offs=6) */ /* local: fact_ref_28$0(level=0)@@ -2833,23 +2833,23 @@ /* tmpvardeclst(end) */ ATSfunbody_beg() /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1481(line=50, offs=4) -- 1610(line=56, offs=6)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1375(line=48, offs=4) -- 1504(line=54, offs=6) */ ATSINSflab(__patsflab_fact_34): /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1532(line=51, offs=3) -- 1610(line=56, offs=6)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1426(line=49, offs=3) -- 1504(line=54, offs=6) */ /* letpush(beg) */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1544(line=52, offs=9) -- 1547(line=52, offs=12)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1438(line=50, offs=9) -- 1441(line=50, offs=12) */ /* ATSINStmpdec(tmpref73) ; */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1575(line=53, offs=14) -- 1591(line=53, offs=30)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1469(line=51, offs=14) -- 1485(line=51, offs=30) */ ATSINSmove_void(tmp74, fact_ref_28(arg0, ATSPMVrefarg1(ATSPMVptrof(tmpref73)))) ; @@ -2858,11 +2858,11 @@ */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1601(line=55, offs=5) -- 1604(line=55, offs=8)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1495(line=53, offs=5) -- 1498(line=53, offs=8) */ ATSINSmove(tmpret72, tmpref73) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1532(line=51, offs=3) -- 1610(line=56, offs=6)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1426(line=49, offs=3) -- 1504(line=54, offs=6) */ /* INSletpop()@@ -2872,7 +2872,7 @@ } /* end of [fact_34] */ /*-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1686(line=59, offs=5) -- 1955(line=68, offs=8)+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1580(line=57, offs=5) -- 1849(line=66, offs=8) */ /* local: dfact_ref_35$0(level=0)@@ -2894,11 +2894,11 @@ /* tmpvardeclst(end) */ ATSfunbody_beg() /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1686(line=59, offs=5) -- 1955(line=68, offs=8)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1580(line=57, offs=5) -- 1849(line=66, offs=8) */ ATSINSflab(__patsflab_dfact_ref_35): /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1760(line=60, offs=3) -- 1955(line=68, offs=8)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1654(line=58, offs=3) -- 1849(line=66, offs=8) */ ATScaseof_beg() /*@@ -2906,15 +2906,15 @@ */ ATSbranch_beg() /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1777(line=61, offs=7) -- 1778(line=61, offs=8)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1671(line=59, offs=7) -- 1672(line=59, offs=8) */ ATSINSlab(__atstmplab12): /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1711(line=59, offs=30) -- 1712(line=59, offs=31)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1605(line=57, offs=30) -- 1606(line=57, offs=31) */ ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(0))) { ATSINSgoto(__atstmplab14) ; } ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1778(line=61, offs=8) -- 1778(line=61, offs=8)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1672(line=59, offs=8) -- 1672(line=59, offs=8) */ ATSINSlab(__atstmplab13): /*@@ -2924,31 +2924,31 @@ ibranch-mbody: */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1789(line=61, offs=19) -- 1802(line=61, offs=32)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1683(line=59, offs=19) -- 1696(line=59, offs=32) */ ATSINSmove(tmp76, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__8(ATSPMVi0nt(1))) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1782(line=61, offs=12) -- 1802(line=61, offs=32)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1676(line=59, offs=12) -- 1696(line=59, offs=32) */ ATSINSstore(ATSderef(arg1, atstkind_type(atstype_ptrk)), tmp76) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1782(line=61, offs=12) -- 1802(line=61, offs=32)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1676(line=59, offs=12) -- 1696(line=59, offs=32) */ ATSINSmove_void(tmpret75, ATSPMVempty()) ; ATSbranch_end() ATSbranch_beg() /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1809(line=62, offs=7) -- 1810(line=62, offs=8)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1703(line=60, offs=7) -- 1704(line=60, offs=8) */ ATSINSlab(__atstmplab14): /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1711(line=59, offs=30) -- 1712(line=59, offs=31)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1605(line=57, offs=30) -- 1606(line=57, offs=31) */ ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab16) ; } ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1810(line=62, offs=8) -- 1810(line=62, offs=8)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1704(line=60, offs=8) -- 1704(line=60, offs=8) */ ATSINSlab(__atstmplab15): /*@@ -2958,23 +2958,23 @@ ibranch-mbody: */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1821(line=62, offs=19) -- 1834(line=62, offs=32)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1715(line=60, offs=19) -- 1728(line=60, offs=32) */ ATSINSmove(tmp81, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__9(ATSPMVi0nt(1))) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1814(line=62, offs=12) -- 1834(line=62, offs=32)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1708(line=60, offs=12) -- 1728(line=60, offs=32) */ ATSINSstore(ATSderef(arg1, atstkind_type(atstype_ptrk)), tmp81) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1814(line=62, offs=12) -- 1834(line=62, offs=32)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1708(line=60, offs=12) -- 1728(line=60, offs=32) */ ATSINSmove_void(tmpret75, ATSPMVempty()) ; ATSbranch_end() ATSbranch_beg() /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1842(line=63, offs=8) -- 1842(line=63, offs=8)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1736(line=61, offs=8) -- 1736(line=61, offs=8) */ ATSINSlab(__atstmplab16): /*@@ -2984,29 +2984,29 @@ ibranch-mbody: */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1847(line=63, offs=13) -- 1955(line=68, offs=8)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1741(line=61, offs=13) -- 1849(line=66, offs=8) */ /* letpush(beg) */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1876(line=64, offs=26) -- 1881(line=64, offs=31)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1770(line=62, offs=26) -- 1775(line=62, offs=31) */ ATSINSmove(tmp87, atspre_g1int_sub_int(arg0, ATSPMVi0nt(2))) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1866(line=64, offs=16) -- 1887(line=64, offs=37)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1760(line=62, offs=16) -- 1781(line=62, offs=37) */ ATSINSmove_void(tmp86, dfact_ref_35(tmp87, ATSPMVrefarg1(arg1))) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1898(line=65, offs=11) -- 1899(line=65, offs=12)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1792(line=63, offs=11) -- 1793(line=63, offs=12) */ /* ATSINStmpdec(tmpref88) ; */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1902(line=65, offs=15) -- 1925(line=65, offs=38)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1796(line=63, offs=15) -- 1819(line=63, offs=38) */ ATSINSmove(tmpref88, ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__4(ATSderef(arg1, atstkind_type(atstype_ptrk)), arg0)) ; @@ -3015,15 +3015,15 @@ */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1939(line=67, offs=7) -- 1947(line=67, offs=15)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1833(line=65, offs=7) -- 1841(line=65, offs=15) */ ATSINSstore(ATSderef(arg1, atstkind_type(atstype_ptrk)), tmpref88) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1939(line=67, offs=7) -- 1947(line=67, offs=15)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1833(line=65, offs=7) -- 1841(line=65, offs=15) */ ATSINSmove_void(tmpret75, ATSPMVempty()) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1847(line=63, offs=13) -- 1955(line=68, offs=8)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1741(line=61, offs=13) -- 1849(line=66, offs=8) */ /* INSletpop()@@ -3290,7 +3290,7 @@ } /* end of [ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__4] */ /*-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2031(line=71, offs=5) -- 2156(line=77, offs=6)+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1925(line=69, offs=5) -- 2050(line=75, offs=6) */ /* local: dfact_ref_35$0(level=0)@@ -3309,23 +3309,23 @@ /* tmpvardeclst(end) */ ATSfunbody_beg() /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2031(line=71, offs=5) -- 2156(line=77, offs=6)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1925(line=69, offs=5) -- 2050(line=75, offs=6) */ ATSINSflab(__patsflab_dfact_41): /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2077(line=72, offs=3) -- 2156(line=77, offs=6)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1971(line=70, offs=3) -- 2050(line=75, offs=6) */ /* letpush(beg) */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2089(line=73, offs=9) -- 2092(line=73, offs=12)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1983(line=71, offs=9) -- 1986(line=71, offs=12) */ /* ATSINStmpdec(tmpref92) ; */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2120(line=74, offs=14) -- 2137(line=74, offs=31)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2014(line=72, offs=14) -- 2031(line=72, offs=31) */ ATSINSmove_void(tmp93, dfact_ref_35(arg0, ATSPMVrefarg1(ATSPMVptrof(tmpref92)))) ; @@ -3334,11 +3334,11 @@ */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2147(line=76, offs=5) -- 2150(line=76, offs=8)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2041(line=74, offs=5) -- 2044(line=74, offs=8) */ ATSINSmove(tmpret91, tmpref92) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2077(line=72, offs=3) -- 2156(line=77, offs=6)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 1971(line=70, offs=3) -- 2050(line=75, offs=6) */ /* INSletpop()@@ -3348,7 +3348,7 @@ } /* end of [dfact_41] */ /*-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2219(line=80, offs=4) -- 2607(line=92, offs=6)+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2113(line=78, offs=4) -- 2501(line=90, offs=6) */ /* local: @@ -3367,23 +3367,23 @@ /* tmpvardeclst(end) */ ATSfunbody_beg() /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2219(line=80, offs=4) -- 2607(line=92, offs=6)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2113(line=78, offs=4) -- 2501(line=90, offs=6) */ ATSINSflab(__patsflab_permutations_42): /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2306(line=81, offs=3) -- 2607(line=92, offs=6)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2200(line=79, offs=3) -- 2501(line=90, offs=6) */ /* letpush(beg) */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2551(line=88, offs=9) -- 2554(line=88, offs=12)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2445(line=86, offs=9) -- 2448(line=86, offs=12) */ /* ATSINStmpdec(tmpref115) ; */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2576(line=89, offs=14) -- 2588(line=89, offs=26)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2470(line=87, offs=14) -- 2482(line=87, offs=26) */ ATSINSmove_void(tmp116, loop_43(arg0, arg1, arg0, ATSPMVrefarg1(ATSPMVptrof(tmpref115)))) ; @@ -3392,11 +3392,11 @@ */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2598(line=91, offs=5) -- 2601(line=91, offs=8)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2492(line=89, offs=5) -- 2495(line=89, offs=8) */ ATSINSmove(tmpret94, tmpref115) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2306(line=81, offs=3) -- 2607(line=92, offs=6)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2200(line=79, offs=3) -- 2501(line=90, offs=6) */ /* INSletpop()@@ -3406,7 +3406,7 @@ } /* end of [permutations_42] */ /*-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2318(line=82, offs=9) -- 2537(line=86, offs=37)+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2212(line=80, offs=9) -- 2431(line=84, offs=37) */ /* local: loop_43$0(level=1)@@ -3432,75 +3432,75 @@ /* tmpvardeclst(end) */ ATSfunbody_beg() /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2318(line=82, offs=9) -- 2537(line=86, offs=37)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2212(line=80, offs=9) -- 2431(line=84, offs=37) */ ATSINSflab(__patsflab_loop_43): /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2415(line=83, offs=14) -- 2420(line=83, offs=19)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2309(line=81, offs=14) -- 2314(line=81, offs=19) */ ATSINSmove(tmp102, atspre_g1int_sub_int(env0, env1)) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2415(line=83, offs=14) -- 2424(line=83, offs=23)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2309(line=81, offs=14) -- 2318(line=81, offs=23) */ ATSINSmove(tmp101, atspre_g1int_add_int(tmp102, ATSPMVi0nt(1))) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2411(line=83, offs=10) -- 2424(line=83, offs=23)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2305(line=81, offs=10) -- 2318(line=81, offs=23) */ ATSINSmove(tmp96, ATSLIB_056_prelude__gt_g1int_int__44__1(arg0, tmp101)) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2408(line=83, offs=7) -- 2537(line=86, offs=37)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2302(line=81, offs=7) -- 2431(line=84, offs=37) */ ATSif( tmp96 ) ATSthen() { /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2444(line=84, offs=15) -- 2449(line=84, offs=20)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2338(line=82, offs=15) -- 2343(line=82, offs=20) */ ATSINSmove(tmp104, atspre_g1int_sub_int(arg0, ATSPMVi0nt(1))) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2439(line=84, offs=10) -- 2455(line=84, offs=26)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2333(line=82, offs=10) -- 2349(line=82, offs=26) */ ATSINSmove_void(tmp103, loop_43(env0, env1, tmp104, ATSPMVrefarg1(arg1))) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2465(line=84, offs=36) -- 2488(line=84, offs=59)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2359(line=82, offs=36) -- 2382(line=82, offs=59) */ ATSINSmove(tmp105, ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__5(ATSderef(arg1, atstkind_type(atstype_ptrk)), arg0)) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2458(line=84, offs=29) -- 2488(line=84, offs=59)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2352(line=82, offs=29) -- 2382(line=82, offs=59) */ ATSINSstore(ATSderef(arg1, atstkind_type(atstype_ptrk)), tmp105) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2458(line=84, offs=29) -- 2488(line=84, offs=59)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2352(line=82, offs=29) -- 2382(line=82, offs=59) */ ATSINSmove_void(tmpret95, ATSPMVempty()) ; } ATSelse() { /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2516(line=86, offs=16) -- 2537(line=86, offs=37)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2410(line=84, offs=16) -- 2431(line=84, offs=37) */ ATSINSmove(tmp114, atspre_g1int_sub_int(env0, env1)) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2516(line=86, offs=16) -- 2537(line=86, offs=37)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2410(line=84, offs=16) -- 2431(line=84, offs=37) */ ATSINSmove(tmp113, atspre_g1int_add_int(tmp114, ATSPMVi0nt(1))) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2516(line=86, offs=16) -- 2537(line=86, offs=37)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2410(line=84, offs=16) -- 2431(line=84, offs=37) */ ATSINSmove(tmp108, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__10(tmp113)) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2509(line=86, offs=9) -- 2537(line=86, offs=37)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2403(line=84, offs=9) -- 2431(line=84, offs=37) */ ATSINSstore(ATSderef(arg1, atstkind_type(atstype_ptrk)), tmp108) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2509(line=86, offs=9) -- 2537(line=86, offs=37)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2403(line=84, offs=9) -- 2431(line=84, offs=37) */ ATSINSmove_void(tmpret95, ATSPMVempty()) ; } /* ATSendif */@@ -3746,7 +3746,7 @@ } /* end of [ATSLIB_056_prelude__ptr_alloc__17__10] */ /*-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2659(line=95, offs=4) -- 3258(line=118, offs=6)+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2553(line=93, offs=4) -- 3137(line=116, offs=6) */ /* local: fact_34$0(level=0)@@ -3767,11 +3767,11 @@ /* tmpvardeclst(end) */ ATSfunbody_beg() /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2659(line=95, offs=4) -- 3258(line=118, offs=6)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2553(line=93, offs=4) -- 3137(line=116, offs=6) */ ATSINSflab(__patsflab_catalan_50): /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2700(line=96, offs=3) -- 3258(line=118, offs=6)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2594(line=94, offs=3) -- 3137(line=116, offs=6) */ /* letpush(beg)@@ -3781,7 +3781,7 @@ */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2995(line=107, offs=5) -- 3252(line=117, offs=10)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2889(line=105, offs=5) -- 3131(line=115, offs=10) */ ATScaseof_beg() /*@@ -3789,15 +3789,15 @@ */ ATSbranch_beg() /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3014(line=108, offs=9) -- 3015(line=108, offs=10)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2908(line=106, offs=9) -- 2909(line=106, offs=10) */ ATSINSlab(__atstmplab20): /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2675(line=95, offs=20) -- 2676(line=95, offs=21)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2569(line=93, offs=20) -- 2570(line=93, offs=21) */ ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(0))) { ATSINSgoto(__atstmplab22) ; } ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3015(line=108, offs=10) -- 3015(line=108, offs=10)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2909(line=106, offs=10) -- 2909(line=106, offs=10) */ ATSINSlab(__atstmplab21): /*@@ -3807,7 +3807,7 @@ ibranch-mbody: */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3019(line=108, offs=14) -- 3032(line=108, offs=27)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2913(line=106, offs=14) -- 2926(line=106, offs=27) */ ATSINSmove(tmpret117, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__12(ATSPMVi0nt(1))) ; @@ -3815,15 +3815,15 @@ ATSbranch_beg() /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3041(line=109, offs=9) -- 3042(line=109, offs=10)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2935(line=107, offs=9) -- 2936(line=107, offs=10) */ ATSINSlab(__atstmplab22): /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2675(line=95, offs=20) -- 2676(line=95, offs=21)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2569(line=93, offs=20) -- 2570(line=93, offs=21) */ ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab24) ; } ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3042(line=109, offs=10) -- 3042(line=109, offs=10)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2936(line=107, offs=10) -- 2936(line=107, offs=10) */ ATSINSlab(__atstmplab23): /*@@ -3833,7 +3833,7 @@ ibranch-mbody: */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3046(line=109, offs=14) -- 3059(line=109, offs=27)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2940(line=107, offs=14) -- 2953(line=107, offs=27) */ ATSINSmove(tmpret117, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__13(ATSPMVi0nt(1))) ; @@ -3841,7 +3841,7 @@ ATSbranch_beg() /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3069(line=110, offs=10) -- 3069(line=110, offs=10)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2963(line=108, offs=10) -- 2963(line=108, offs=10) */ ATSINSlab(__atstmplab24): /*@@ -3851,46 +3851,46 @@ ibranch-mbody: */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3074(line=110, offs=15) -- 3252(line=117, offs=10)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2968(line=108, offs=15) -- 3131(line=115, offs=10) */ /* letpush(beg) */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3090(line=111, offs=13) -- 3091(line=111, offs=14)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2984(line=109, offs=13) -- 2985(line=109, offs=14) */ /* ATSINStmpdec(tmpref138) ; */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3094(line=111, offs=17) -- 3110(line=111, offs=33)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2988(line=109, offs=17) -- 3004(line=109, offs=33) */ ATSINSmove(tmpref138, numerator_loop_51(arg0, arg0)) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3124(line=112, offs=13) -- 3125(line=112, offs=14)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3018(line=110, offs=13) -- 3019(line=110, offs=14) */ /* ATSINStmpdec(tmpref139) ; */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3128(line=112, offs=17) -- 3134(line=112, offs=23)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3022(line=110, offs=17) -- 3028(line=110, offs=23) */ ATSINSmove(tmpref139, fact_34(arg0)) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3148(line=113, offs=13) -- 3149(line=113, offs=14)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3042(line=111, offs=13) -- 3043(line=111, offs=14) */ /* ATSINStmpdec(tmpref140) ; */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3152(line=113, offs=17) -- 3177(line=113, offs=42)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3046(line=111, offs=17) -- 3071(line=111, offs=42) */ ATSINSmove(tmpref140, ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_intinf1__59__1(tmpref138, ATSPMVrefarg0(tmpref139))) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3194(line=114, offs=17) -- 3207(line=114, offs=30)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3088(line=112, offs=17) -- 3101(line=112, offs=30) */ ATSINSmove_void(tmp145, ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__2(tmpref139)) ; @@ -3899,11 +3899,11 @@ */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3226(line=116, offs=9) -- 3241(line=116, offs=24)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3120(line=114, offs=9) -- 3121(line=114, offs=10) */-ATSINSmove(tmpret117, ATSPMVcastfn(castvwtp0, atstkind_type(atstype_ptrk), tmpref140)) ;+ATSINSmove(tmpret117, tmpref140) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3074(line=110, offs=15) -- 3252(line=117, offs=10)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2968(line=108, offs=15) -- 3131(line=115, offs=10) */ /* INSletpop()@@ -3916,7 +3916,7 @@ ATScaseof_end() /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2700(line=96, offs=3) -- 3258(line=118, offs=6)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2594(line=94, offs=3) -- 3137(line=116, offs=6) */ /* INSletpop()@@ -3926,7 +3926,7 @@ } /* end of [catalan_50] */ /*-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2712(line=97, offs=9) -- 2985(line=105, offs=12)+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2606(line=95, offs=9) -- 2879(line=103, offs=12) */ /* local: numerator_loop_51$0(level=1)@@ -3948,11 +3948,11 @@ /* tmpvardeclst(end) */ ATSfunbody_beg() /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2712(line=97, offs=9) -- 2985(line=105, offs=12)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2606(line=95, offs=9) -- 2879(line=103, offs=12) */ ATSINSflab(__patsflab_numerator_loop_51): /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2788(line=98, offs=7) -- 2985(line=105, offs=12)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2682(line=96, offs=7) -- 2879(line=103, offs=12) */ ATScaseof_beg() /*@@ -3960,15 +3960,15 @@ */ ATSbranch_beg() /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2809(line=99, offs=11) -- 2810(line=99, offs=12)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2703(line=97, offs=11) -- 2704(line=97, offs=12) */ ATSINSlab(__atstmplab17): /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2754(line=97, offs=51) -- 2755(line=97, offs=52)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2648(line=95, offs=51) -- 2649(line=95, offs=52) */ ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(2))) { ATSINSgoto(__atstmplab19) ; } ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2810(line=99, offs=12) -- 2810(line=99, offs=12)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2704(line=97, offs=12) -- 2704(line=97, offs=12) */ ATSINSlab(__atstmplab18): /*@@ -3978,12 +3978,12 @@ ibranch-mbody: */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2814(line=99, offs=16) -- 2831(line=99, offs=33)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2708(line=97, offs=16) -- 2725(line=97, offs=33) */ ATSINSmove(tmp123, atspre_g1int_add_int(env0, ATSPMVi0nt(2))) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2814(line=99, offs=16) -- 2831(line=99, offs=33)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2708(line=97, offs=16) -- 2725(line=97, offs=33) */ ATSINSmove(tmpret118, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__11(tmp123)) ; @@ -3991,7 +3991,7 @@ ATSbranch_beg() /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2843(line=100, offs=12) -- 2843(line=100, offs=12)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2737(line=98, offs=12) -- 2737(line=98, offs=12) */ ATSINSlab(__atstmplab19): /*@@ -4001,40 +4001,40 @@ ibranch-mbody: */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2848(line=100, offs=17) -- 2985(line=105, offs=12)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2742(line=98, offs=17) -- 2879(line=103, offs=12) */ /* letpush(beg) */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2866(line=101, offs=15) -- 2867(line=101, offs=16)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2760(line=99, offs=15) -- 2761(line=99, offs=16) */ /* ATSINStmpdec(tmpref124) ; */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2885(line=101, offs=34) -- 2890(line=101, offs=39)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2779(line=99, offs=34) -- 2784(line=99, offs=39) */ ATSINSmove(tmp125, atspre_g1int_sub_int(arg0, ATSPMVi0nt(1))) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2870(line=101, offs=19) -- 2891(line=101, offs=40)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2764(line=99, offs=19) -- 2785(line=99, offs=40) */ ATSINSmove(tmpref124, numerator_loop_51(env0, tmp125)) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2906(line=102, offs=15) -- 2907(line=102, offs=16)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2800(line=100, offs=15) -- 2801(line=100, offs=16) */ /* ATSINStmpdec(tmpref126) ; */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2929(line=102, offs=38) -- 2934(line=102, offs=43)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2823(line=100, offs=38) -- 2828(line=100, offs=43) */ ATSINSmove(tmp129, atspre_g1int_add_int(env0, arg0)) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2910(line=102, offs=19) -- 2935(line=102, offs=44)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2804(line=100, offs=19) -- 2829(line=100, offs=44) */ ATSINSmove(tmpref126, ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__6(tmpref124, tmp129)) ; @@ -4043,11 +4043,11 @@ */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2957(line=104, offs=11) -- 2972(line=104, offs=26)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2851(line=102, offs=11) -- 2866(line=102, offs=26) */ ATSINSmove(tmpret118, ATSPMVcastfn(castvwtp0, atstkind_type(atstype_ptrk), tmpref126)) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2848(line=100, offs=17) -- 2985(line=105, offs=12)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 2742(line=98, offs=17) -- 2879(line=103, offs=12) */ /* INSletpop()@@ -4583,7 +4583,7 @@ } /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__2] */ /*-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3352(line=122, offs=4) -- 4150(line=148, offs=6)+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3231(line=120, offs=4) -- 4014(line=146, offs=6) */ /* local: fact_34$0(level=0)@@ -4606,11 +4606,11 @@ /* tmpvardeclst(end) */ ATSfunbody_beg() /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3352(line=122, offs=4) -- 4150(line=148, offs=6)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3231(line=120, offs=4) -- 4014(line=146, offs=6) */ ATSINSflab(__patsflab_choose_62): /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3411(line=123, offs=3) -- 4150(line=148, offs=6)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3290(line=121, offs=3) -- 4014(line=146, offs=6) */ /* letpush(beg)@@ -4620,7 +4620,7 @@ */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3818(line=135, offs=5) -- 4144(line=147, offs=10)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3697(line=133, offs=5) -- 4008(line=145, offs=10) */ ATScaseof_beg() /*@@ -4628,15 +4628,15 @@ */ ATSbranch_beg() /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3837(line=136, offs=9) -- 3838(line=136, offs=10)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3716(line=134, offs=9) -- 3717(line=134, offs=10) */ ATSINSlab(__atstmplab30): /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3386(line=122, offs=38) -- 3387(line=122, offs=39)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3265(line=120, offs=38) -- 3266(line=120, offs=39) */ ATSifnthen(ATSCKpat_int(arg1, ATSPMVint(0))) { ATSINSgoto(__atstmplab32) ; } ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3838(line=136, offs=10) -- 3838(line=136, offs=10)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3717(line=134, offs=10) -- 3717(line=134, offs=10) */ ATSINSlab(__atstmplab31): /*@@ -4646,7 +4646,7 @@ ibranch-mbody: */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3842(line=136, offs=14) -- 3855(line=136, offs=27)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3721(line=134, offs=14) -- 3734(line=134, offs=27) */ ATSINSmove(tmpret148, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__16(ATSPMVi0nt(1))) ; @@ -4654,15 +4654,15 @@ ATSbranch_beg() /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3864(line=137, offs=9) -- 3865(line=137, offs=10)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3743(line=135, offs=9) -- 3744(line=135, offs=10) */ ATSINSlab(__atstmplab32): /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3386(line=122, offs=38) -- 3387(line=122, offs=39)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3265(line=120, offs=38) -- 3266(line=120, offs=39) */ ATSifnthen(ATSCKpat_int(arg1, ATSPMVint(1))) { ATSINSgoto(__atstmplab34) ; } ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3865(line=137, offs=10) -- 3865(line=137, offs=10)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3744(line=135, offs=10) -- 3744(line=135, offs=10) */ ATSINSlab(__atstmplab33): /*@@ -4672,7 +4672,7 @@ ibranch-mbody: */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3869(line=137, offs=14) -- 3881(line=137, offs=26)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3748(line=135, offs=14) -- 3760(line=135, offs=26) */ ATSINSmove(tmpret148, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__17(arg0)) ; @@ -4680,7 +4680,7 @@ ATSbranch_beg() /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3892(line=138, offs=10) -- 3892(line=138, offs=10)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3771(line=136, offs=10) -- 3771(line=136, offs=10) */ ATSINSlab(__atstmplab34): /*@@ -4690,12 +4690,12 @@ ibranch-guard: */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3898(line=138, offs=16) -- 3903(line=138, offs=21)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3777(line=136, offs=16) -- 3782(line=136, offs=21) */ ATSINSmove(tmp177, ATSLIB_056_prelude__gt_g1int_int__44__2(arg1, arg0)) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3898(line=138, offs=16) -- 3903(line=138, offs=21)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3777(line=136, offs=16) -- 3782(line=136, offs=21) */ ATSifnthen(ATSCKpat_bool(tmp177, ATSPMVbool_true())) { ATSINSgoto(__atstmplab35) ; } ; /*@@ -4705,7 +4705,7 @@ ibranch-mbody: */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3907(line=138, offs=25) -- 3920(line=138, offs=38)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3786(line=136, offs=25) -- 3799(line=136, offs=38) */ ATSINSmove(tmpret148, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__18(ATSPMVi0nt(0))) ; @@ -4713,7 +4713,7 @@ ATSbranch_beg() /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3930(line=139, offs=10) -- 3930(line=139, offs=10)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3809(line=137, offs=10) -- 3809(line=137, offs=10) */ ATSINSlab(__atstmplab35): /*@@ -4723,46 +4723,46 @@ ibranch-mbody: */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3935(line=139, offs=15) -- 4144(line=147, offs=10)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3814(line=137, offs=15) -- 4008(line=145, offs=10) */ /* letpush(beg) */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3951(line=140, offs=13) -- 3952(line=140, offs=14)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3830(line=138, offs=13) -- 3831(line=138, offs=14) */ /* ATSINStmpdec(tmpref184) ; */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3983(line=141, offs=18) -- 4003(line=141, offs=38)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3862(line=139, offs=18) -- 3882(line=139, offs=38) */ ATSINSmove_void(tmp185, numerator_loop_63(arg0, arg1, ATSPMVrefarg1(ATSPMVptrof(tmpref184)))) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4016(line=142, offs=13) -- 4017(line=142, offs=14)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3895(line=140, offs=13) -- 3896(line=140, offs=14) */ /* ATSINStmpdec(tmpref186) ; */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4020(line=142, offs=17) -- 4026(line=142, offs=23)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3899(line=140, offs=17) -- 3905(line=140, offs=23) */ ATSINSmove(tmpref186, fact_34(arg1)) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4040(line=143, offs=13) -- 4041(line=143, offs=14)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3919(line=141, offs=13) -- 3920(line=141, offs=14) */ /* ATSINStmpdec(tmpref187) ; */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4044(line=143, offs=17) -- 4069(line=143, offs=42)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3923(line=141, offs=17) -- 3948(line=141, offs=42) */ ATSINSmove(tmpref187, ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_intinf1__59__2(tmpref184, ATSPMVrefarg0(tmpref186))) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4086(line=144, offs=17) -- 4099(line=144, offs=30)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3965(line=142, offs=17) -- 3978(line=142, offs=30) */ ATSINSmove_void(tmp190, ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__3(tmpref186)) ; @@ -4771,11 +4771,11 @@ */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4118(line=146, offs=9) -- 4133(line=146, offs=24)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3997(line=144, offs=9) -- 3998(line=144, offs=10) */-ATSINSmove(tmpret148, ATSPMVcastfn(castvwtp0, atstkind_type(atstype_ptrk), tmpref187)) ;+ATSINSmove(tmpret148, tmpref187) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3935(line=139, offs=15) -- 4144(line=147, offs=10)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3814(line=137, offs=15) -- 4008(line=145, offs=10) */ /* INSletpop()@@ -4788,7 +4788,7 @@ ATScaseof_end() /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3411(line=123, offs=3) -- 4150(line=148, offs=6)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3290(line=121, offs=3) -- 4014(line=146, offs=6) */ /* INSletpop()@@ -4798,7 +4798,7 @@ } /* end of [choose_62] */ /*-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3423(line=124, offs=9) -- 3808(line=133, offs=12)+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3302(line=122, offs=9) -- 3687(line=131, offs=12) */ /* local: numerator_loop_63$0(level=1)@@ -4824,11 +4824,11 @@ /* tmpvardeclst(end) */ ATSfunbody_beg() /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3423(line=124, offs=9) -- 3808(line=133, offs=12)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3302(line=122, offs=9) -- 3687(line=131, offs=12) */ ATSINSflab(__patsflab_numerator_loop_63): /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3528(line=125, offs=7) -- 3808(line=133, offs=12)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3407(line=123, offs=7) -- 3687(line=131, offs=12) */ ATScaseof_beg() /*@@ -4836,15 +4836,15 @@ */ ATSbranch_beg() /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3549(line=126, offs=11) -- 3550(line=126, offs=12)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3428(line=124, offs=11) -- 3429(line=124, offs=12) */ ATSINSlab(__atstmplab25): /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3465(line=124, offs=51) -- 3466(line=124, offs=52)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3344(line=122, offs=51) -- 3345(line=122, offs=52) */ ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab27) ; } ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3550(line=126, offs=12) -- 3550(line=126, offs=12)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3429(line=124, offs=12) -- 3429(line=124, offs=12) */ ATSINSlab(__atstmplab26): /*@@ -4854,31 +4854,31 @@ ibranch-mbody: */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3561(line=126, offs=23) -- 3573(line=126, offs=35)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3440(line=124, offs=23) -- 3452(line=124, offs=35) */ ATSINSmove(tmp150, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__14(env0)) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3554(line=126, offs=16) -- 3573(line=126, offs=35)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3433(line=124, offs=16) -- 3452(line=124, offs=35) */ ATSINSstore(ATSderef(arg1, atstkind_type(atstype_ptrk)), tmp150) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3554(line=126, offs=16) -- 3573(line=126, offs=35)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3433(line=124, offs=16) -- 3452(line=124, offs=35) */ ATSINSmove_void(tmpret149, ATSPMVempty()) ; ATSbranch_end() ATSbranch_beg() /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3585(line=127, offs=11) -- 3586(line=127, offs=12)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3464(line=125, offs=11) -- 3465(line=125, offs=12) */ ATSINSlab(__atstmplab27): /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3465(line=124, offs=51) -- 3466(line=124, offs=52)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3344(line=122, offs=51) -- 3345(line=122, offs=52) */ ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(2))) { ATSINSgoto(__atstmplab29) ; } ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3586(line=127, offs=12) -- 3586(line=127, offs=12)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3465(line=125, offs=12) -- 3465(line=125, offs=12) */ ATSINSlab(__atstmplab28): /*@@ -4888,33 +4888,33 @@ ibranch-mbody: */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3611(line=127, offs=37) -- 3634(line=127, offs=60)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3490(line=125, offs=37) -- 3513(line=125, offs=60) */ ATSINSmove(tmp161, atspre_g1int_sub_int(env0, ATSPMVi0nt(1))) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3611(line=127, offs=37) -- 3634(line=127, offs=60)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3490(line=125, offs=37) -- 3513(line=125, offs=60) */ ATSINSmove(tmp160, atspre_g1int_mul_int(tmp161, env0)) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3611(line=127, offs=37) -- 3634(line=127, offs=60)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3490(line=125, offs=37) -- 3513(line=125, offs=60) */ ATSINSmove(tmp155, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__15(tmp160)) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3590(line=127, offs=16) -- 3635(line=127, offs=61)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3469(line=125, offs=16) -- 3514(line=125, offs=61) */ ATSINSstore(ATSderef(arg1, atstkind_type(atstype_ptrk)), ATSPMVcastfn(castvwtp0, atstype_boxed, tmp155)) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3590(line=127, offs=16) -- 3635(line=127, offs=61)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3469(line=125, offs=16) -- 3514(line=125, offs=61) */ ATSINSmove_void(tmpret149, ATSPMVempty()) ; ATSbranch_end() ATSbranch_beg() /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3647(line=128, offs=12) -- 3647(line=128, offs=12)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3526(line=126, offs=12) -- 3526(line=126, offs=12) */ ATSINSlab(__atstmplab29): /*@@ -4924,39 +4924,39 @@ ibranch-mbody: */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3652(line=128, offs=17) -- 3808(line=133, offs=12)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3531(line=126, offs=17) -- 3687(line=131, offs=12) */ /* letpush(beg) */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3690(line=129, offs=35) -- 3695(line=129, offs=40)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3569(line=127, offs=35) -- 3574(line=127, offs=40) */ ATSINSmove(tmp163, atspre_g1int_sub_int(arg0, ATSPMVi0nt(1))) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3675(line=129, offs=20) -- 3701(line=129, offs=46)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3554(line=127, offs=20) -- 3580(line=127, offs=46) */ ATSINSmove_void(tmp162, numerator_loop_63(env0, tmp163, ATSPMVrefarg1(arg1))) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3716(line=130, offs=15) -- 3717(line=130, offs=16)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3595(line=128, offs=15) -- 3596(line=128, offs=16) */ /* ATSINStmpdec(tmpref164) ; */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3741(line=130, offs=40) -- 3746(line=130, offs=45)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3620(line=128, offs=40) -- 3625(line=128, offs=45) */ ATSINSmove(tmp168, atspre_g1int_add_int(env0, ATSPMVi0nt(1))) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3741(line=130, offs=40) -- 3750(line=130, offs=49)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3620(line=128, offs=40) -- 3629(line=128, offs=49) */ ATSINSmove(tmp167, atspre_g1int_sub_int(tmp168, arg0)) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3720(line=130, offs=19) -- 3751(line=130, offs=50)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3599(line=128, offs=19) -- 3630(line=128, offs=50) */ ATSINSmove(tmpref164, ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__7(ATSderef(arg1, atstkind_type(atstype_ptrk)), tmp167)) ; @@ -4965,15 +4965,15 @@ */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3773(line=132, offs=11) -- 3795(line=132, offs=33)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3652(line=130, offs=11) -- 3674(line=130, offs=33) */ ATSINSstore(ATSderef(arg1, atstkind_type(atstype_ptrk)), ATSPMVcastfn(castvwtp0, atstype_boxed, tmpref164)) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3773(line=132, offs=11) -- 3795(line=132, offs=33)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3652(line=130, offs=11) -- 3674(line=130, offs=33) */ ATSINSmove_void(tmpret149, ATSPMVempty()) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3652(line=128, offs=17) -- 3808(line=133, offs=12)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 3531(line=126, offs=17) -- 3687(line=131, offs=12) */ /* INSletpop()@@ -5686,7 +5686,7 @@ } /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__3] */ /*-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4405(line=155, offs=4) -- 5492(line=187, offs=8)+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4269(line=153, offs=4) -- 5356(line=185, offs=8) */ /* local: fact_34$0(level=0), choose_62$0(level=0)@@ -5711,101 +5711,101 @@ /* tmpvardeclst(end) */ ATSfunbody_beg() /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4405(line=155, offs=4) -- 5492(line=187, offs=8)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4269(line=153, offs=4) -- 5356(line=185, offs=8) */ ATSINSflab(__patsflab_stirling2_79): /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4480(line=157, offs=7) -- 4494(line=157, offs=21)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4344(line=155, offs=7) -- 4358(line=155, offs=21) */ ATSINSmove(tmp195, ATSLIB_056_prelude__eq_g1int_int__80__1(arg1, ATSPMVi0nt(0))) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4480(line=157, offs=7) -- 4494(line=157, offs=21)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4344(line=155, offs=7) -- 4358(line=155, offs=21) */ ATSif( tmp195 ) ATSthen() { /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4480(line=157, offs=7) -- 4494(line=157, offs=21)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4344(line=155, offs=7) -- 4358(line=155, offs=21) */ ATSINSmove(tmp194, ATSLIB_056_prelude__eq_g1int_int__80__2(arg0, ATSPMVi0nt(0))) ; } ATSelse() { /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4480(line=157, offs=7) -- 4494(line=157, offs=21)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4344(line=155, offs=7) -- 4358(line=155, offs=21) */ ATSINSmove(tmp194, ATSPMVbool_false()) ; } /* ATSendif */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4467(line=156, offs=3) -- 5492(line=187, offs=8)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4331(line=154, offs=3) -- 5356(line=185, offs=8) */ ATSif( tmp194 ) ATSthen() { /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4498(line=157, offs=25) -- 4511(line=157, offs=38)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4362(line=155, offs=25) -- 4375(line=155, offs=38) */ ATSINSmove(tmpret193, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__19(ATSPMVi0nt(1))) ; } ATSelse() { /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4518(line=158, offs=7) -- 4523(line=158, offs=12)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4382(line=156, offs=7) -- 4387(line=156, offs=12) */ ATSINSmove(tmp206, ATSLIB_056_prelude__gt_g1int_int__44__3(arg1, arg0)) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4467(line=156, offs=3) -- 5492(line=187, offs=8)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4331(line=154, offs=3) -- 5356(line=185, offs=8) */ ATSif( tmp206 ) ATSthen() { /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4527(line=158, offs=16) -- 4540(line=158, offs=29)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4391(line=156, offs=16) -- 4404(line=156, offs=29) */ ATSINSmove(tmpret193, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__20(ATSPMVi0nt(0))) ; } ATSelse() { /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4552(line=159, offs=12) -- 5492(line=187, offs=8)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4416(line=157, offs=12) -- 5356(line=185, offs=8) */ /* letpush(beg) */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5316(line=180, offs=11) -- 5319(line=180, offs=14)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5180(line=178, offs=11) -- 5183(line=178, offs=14) */ /* ATSINStmpdec(tmpref262) ; */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5343(line=181, offs=16) -- 5359(line=181, offs=32)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5207(line=179, offs=16) -- 5223(line=179, offs=32) */ ATSINSmove_void(tmp263, top_loop_89(arg0, arg1, arg1, ATSPMVrefarg1(ATSPMVptrof(tmpref262)))) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5370(line=182, offs=11) -- 5373(line=182, offs=14)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5234(line=180, offs=11) -- 5237(line=180, offs=14) */ /* ATSINStmpdec(tmpref264) ; */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5376(line=182, offs=17) -- 5382(line=182, offs=23)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5240(line=180, offs=17) -- 5246(line=180, offs=23) */ ATSINSmove(tmpref264, fact_34(arg1)) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5394(line=183, offs=11) -- 5400(line=183, offs=17)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5258(line=181, offs=11) -- 5264(line=181, offs=17) */ /* ATSINStmpdec(tmpref265) ; */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5403(line=183, offs=20) -- 5432(line=183, offs=49)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5267(line=181, offs=20) -- 5296(line=181, offs=49) */ ATSINSmove(tmpref265, ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_intinf1__59__3(tmpref262, ATSPMVrefarg0(tmpref264))) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5448(line=184, offs=16) -- 5463(line=184, offs=31)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5312(line=182, offs=16) -- 5327(line=182, offs=31) */ ATSINSmove_void(tmp268, ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__6(tmpref264)) ; @@ -5814,11 +5814,11 @@ */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5478(line=186, offs=7) -- 5484(line=186, offs=13)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5342(line=184, offs=7) -- 5348(line=184, offs=13) */ ATSINSmove(tmpret193, tmpref265) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4552(line=159, offs=12) -- 5492(line=187, offs=8)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4416(line=157, offs=12) -- 5356(line=185, offs=8) */ /* INSletpop()@@ -6190,7 +6190,7 @@ } /* end of [ATSLIB_056_prelude__ptr_alloc__17__20] */ /*-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4566(line=160, offs=11) -- 5298(line=178, offs=12)+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4430(line=158, offs=11) -- 5162(line=176, offs=12) */ /* local: choose_62$0(level=0), top_loop_89$0(level=1)@@ -6217,11 +6217,11 @@ /* tmpvardeclst(end) */ ATSfunbody_beg() /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4566(line=160, offs=11) -- 5298(line=178, offs=12)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4430(line=158, offs=11) -- 5162(line=176, offs=12) */ ATSINSflab(__patsflab_top_loop_89): /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4645(line=161, offs=9) -- 5298(line=178, offs=12)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4509(line=159, offs=9) -- 5162(line=176, offs=12) */ ATScaseof_beg() /*@@ -6229,15 +6229,15 @@ */ ATSbranch_beg() /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4668(line=162, offs=13) -- 4669(line=162, offs=14)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4532(line=160, offs=13) -- 4533(line=160, offs=14) */ ATSINSlab(__atstmplab36): /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4590(line=160, offs=35) -- 4591(line=160, offs=36)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4454(line=158, offs=35) -- 4455(line=158, offs=36) */ ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(0))) { ATSINSgoto(__atstmplab38) ; } ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4669(line=162, offs=14) -- 4669(line=162, offs=14)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4533(line=160, offs=14) -- 4533(line=160, offs=14) */ ATSINSlab(__atstmplab37): /*@@ -6247,23 +6247,23 @@ ibranch-mbody: */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4680(line=162, offs=25) -- 4693(line=162, offs=38)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4544(line=160, offs=25) -- 4557(line=160, offs=38) */ ATSINSmove(tmp214, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__21(ATSPMVi0nt(0))) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4673(line=162, offs=18) -- 4693(line=162, offs=38)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4537(line=160, offs=18) -- 4557(line=160, offs=38) */ ATSINSstore(ATSderef(arg1, atstkind_type(atstype_ptrk)), tmp214) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4673(line=162, offs=18) -- 4693(line=162, offs=38)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4537(line=160, offs=18) -- 4557(line=160, offs=38) */ ATSINSmove_void(tmpret213, ATSPMVempty()) ; ATSbranch_end() ATSbranch_beg() /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4707(line=163, offs=14) -- 4707(line=163, offs=14)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4571(line=161, offs=14) -- 4571(line=161, offs=14) */ ATSINSlab(__atstmplab38): /*@@ -6273,81 +6273,81 @@ ibranch-mbody: */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4712(line=163, offs=19) -- 5298(line=178, offs=12)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4576(line=161, offs=19) -- 5162(line=176, offs=12) */ /* letpush(beg) */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4918(line=170, offs=31) -- 4923(line=170, offs=36)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4782(line=168, offs=31) -- 4787(line=168, offs=36) */ ATSINSmove(tmp231, atspre_g1int_sub_int(arg0, ATSPMVi0nt(1))) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4909(line=170, offs=22) -- 4929(line=170, offs=42)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4773(line=168, offs=22) -- 4793(line=168, offs=42) */ ATSINSmove_void(tmp230, top_loop_89(env0, env1, tmp231, ATSPMVrefarg1(arg1))) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4946(line=171, offs=17) -- 4949(line=171, offs=20)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4810(line=169, offs=17) -- 4813(line=169, offs=20) */ /* ATSINStmpdec(tmpref232) ; */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4952(line=171, offs=23) -- 4964(line=171, offs=35)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4816(line=169, offs=23) -- 4828(line=169, offs=35) */ ATSINSmove(tmpref232, choose_62(env1, arg0)) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4981(line=172, offs=17) -- 4987(line=172, offs=23)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4845(line=170, offs=17) -- 4851(line=170, offs=23) */ /* ATSINStmpdec(tmpref233) ; */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4990(line=172, offs=26) -- 5007(line=172, offs=43)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4854(line=170, offs=26) -- 4871(line=170, offs=43) */ ATSINSmove(tmpref233, ATSCNTRB_056_HX_056_intinf_vt__pow_int_int__100__1(arg0, env0)) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5024(line=173, offs=17) -- 5034(line=173, offs=27)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4888(line=171, offs=17) -- 4898(line=171, offs=27) */ /* ATSINStmpdec(tmpref247) ; */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5051(line=173, offs=44) -- 5056(line=173, offs=49)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4915(line=171, offs=44) -- 4920(line=171, offs=49) */ ATSINSmove(tmp248, atspre_g1int_sub_int(env1, arg0)) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5037(line=173, offs=30) -- 5065(line=173, offs=58)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4901(line=171, offs=30) -- 4929(line=171, offs=58) */ ATSINSmove(tmpref247, negate_if_odd_92(tmp248, tmpref233)) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5082(line=174, offs=17) -- 5092(line=174, offs=27)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4946(line=172, offs=17) -- 4956(line=172, offs=27) */ /* ATSINStmpdec(tmpref249) ; */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5095(line=174, offs=30) -- 5131(line=174, offs=66)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4959(line=172, offs=30) -- 4995(line=172, offs=66) */ ATSINSmove(tmpref249, ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_intinf1__103__1(tmpref232, ATSPMVrefarg0(tmpref247))) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5160(line=175, offs=29) -- 5196(line=175, offs=65)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5024(line=173, offs=29) -- 5060(line=173, offs=65) */ ATSINSmove(tmp254, ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6__3(ATSderef(arg1, atstkind_type(atstype_ptrk)), ATSPMVrefarg0(tmpref249))) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5153(line=175, offs=22) -- 5196(line=175, offs=65)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5017(line=173, offs=22) -- 5060(line=173, offs=65) */ ATSINSstore(ATSderef(arg1, atstkind_type(atstype_ptrk)), tmp254) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5218(line=176, offs=22) -- 5240(line=176, offs=44)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5082(line=174, offs=22) -- 5104(line=174, offs=44) */ ATSINSmove_void(tmp257, ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__4(tmpref247)) ; @@ -6356,12 +6356,12 @@ */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5263(line=177, offs=22) -- 5285(line=177, offs=44)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5127(line=175, offs=22) -- 5149(line=175, offs=44) */ ATSINSmove_void(tmpret213, ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__5(tmpref249)) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4712(line=163, offs=19) -- 5298(line=178, offs=12)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4576(line=161, offs=19) -- 5162(line=176, offs=12) */ /* INSletpop()@@ -6475,7 +6475,7 @@ } /* end of [ATSLIB_056_prelude__ptr_alloc__17__21] */ /*-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4729(line=164, offs=16) -- 4874(line=168, offs=31)+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4593(line=162, offs=16) -- 4738(line=166, offs=31) */ /* local: @@ -6494,32 +6494,32 @@ /* tmpvardeclst(end) */ ATSfunbody_beg() /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4729(line=164, offs=16) -- 4874(line=168, offs=31)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4593(line=162, offs=16) -- 4738(line=166, offs=31) */ ATSINSflab(__patsflab_negate_if_odd_92): /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4792(line=165, offs=18) -- 4797(line=165, offs=23)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4656(line=163, offs=18) -- 4661(line=163, offs=23) */ ATSINSmove(tmp225, atspre_g0int_mod_int(arg0, ATSPMVi0nt(2))) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4792(line=165, offs=18) -- 4801(line=165, offs=27)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4656(line=163, offs=18) -- 4665(line=163, offs=27) */ ATSINSmove(tmp220, ATSLIB_056_prelude__eq_g0int_int__93__1(tmp225, ATSPMVi0nt(0))) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4789(line=165, offs=15) -- 4874(line=168, offs=31)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4653(line=163, offs=15) -- 4738(line=166, offs=31) */ ATSif( tmp220 ) ATSthen() { /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4823(line=166, offs=17) -- 4824(line=166, offs=18)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4687(line=164, offs=17) -- 4688(line=164, offs=18) */ ATSINSmove(tmpret219, arg1) ; } ATSelse() { /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4860(line=168, offs=17) -- 4873(line=168, offs=30)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 4724(line=166, offs=17) -- 4737(line=166, offs=30) */ ATSINSmove(tmpret219, ATSCNTRB_056_HX_056_intinf_vt__neg_intinf0__98__1(arg1)) ; @@ -7324,7 +7324,7 @@ } /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__6] */ /*-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5701(line=193, offs=4) -- 6245(line=213, offs=6)+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5565(line=191, offs=4) -- 6109(line=211, offs=6) */ /* local: stirling2_79$0(level=0)@@ -7343,11 +7343,11 @@ /* tmpvardeclst(end) */ ATSfunbody_beg() /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5701(line=193, offs=4) -- 6245(line=213, offs=6)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5565(line=191, offs=4) -- 6109(line=211, offs=6) */ ATSINSflab(__patsflab_bell_110): /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5739(line=194, offs=3) -- 6245(line=213, offs=6)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5603(line=192, offs=3) -- 6109(line=211, offs=6) */ /* letpush(beg)@@ -7357,7 +7357,7 @@ */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6095(line=205, offs=5) -- 6239(line=212, offs=10)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5959(line=203, offs=5) -- 6103(line=210, offs=10) */ ATScaseof_beg() /*@@ -7365,15 +7365,15 @@ */ ATSbranch_beg() /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6114(line=206, offs=9) -- 6115(line=206, offs=10)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5978(line=204, offs=9) -- 5979(line=204, offs=10) */ ATSINSlab(__atstmplab42): /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5714(line=193, offs=17) -- 5715(line=193, offs=18)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5578(line=191, offs=17) -- 5579(line=191, offs=18) */ ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(0))) { ATSINSgoto(__atstmplab44) ; } ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6115(line=206, offs=10) -- 6115(line=206, offs=10)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5979(line=204, offs=10) -- 5979(line=204, offs=10) */ ATSINSlab(__atstmplab43): /*@@ -7383,7 +7383,7 @@ ibranch-mbody: */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6119(line=206, offs=14) -- 6132(line=206, offs=27)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5983(line=204, offs=14) -- 5996(line=204, offs=27) */ ATSINSmove(tmpret271, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__22(ATSPMVi0nt(1))) ; @@ -7391,7 +7391,7 @@ ATSbranch_beg() /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6142(line=207, offs=10) -- 6142(line=207, offs=10)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6006(line=205, offs=10) -- 6006(line=205, offs=10) */ ATSINSlab(__atstmplab44): /*@@ -7401,19 +7401,19 @@ ibranch-mbody: */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6147(line=207, offs=15) -- 6239(line=212, offs=10)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6011(line=205, offs=15) -- 6103(line=210, offs=10) */ /* letpush(beg) */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6163(line=208, offs=13) -- 6166(line=208, offs=16)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6027(line=206, offs=13) -- 6030(line=206, offs=16) */ /* ATSINStmpdec(tmpref286) ; */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6192(line=209, offs=18) -- 6208(line=209, offs=34)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6056(line=207, offs=18) -- 6072(line=207, offs=34) */ ATSINSmove_void(tmp287, sum_loop_111(arg0, arg0, ATSPMVrefarg1(ATSPMVptrof(tmpref286)))) ; @@ -7422,11 +7422,11 @@ */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6226(line=211, offs=9) -- 6229(line=211, offs=12)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6090(line=209, offs=9) -- 6093(line=209, offs=12) */ ATSINSmove(tmpret271, tmpref286) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6147(line=207, offs=15) -- 6239(line=212, offs=10)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6011(line=205, offs=15) -- 6103(line=210, offs=10) */ /* INSletpop()@@ -7439,7 +7439,7 @@ ATScaseof_end() /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5739(line=194, offs=3) -- 6245(line=213, offs=6)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5603(line=192, offs=3) -- 6109(line=211, offs=6) */ /* INSletpop()@@ -7449,7 +7449,7 @@ } /* end of [bell_110] */ /*-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5751(line=195, offs=9) -- 6085(line=203, offs=10)+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5615(line=193, offs=9) -- 5949(line=201, offs=10) */ /* local: stirling2_79$0(level=0), sum_loop_111$0(level=1)@@ -7471,11 +7471,11 @@ /* tmpvardeclst(end) */ ATSfunbody_beg() /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5751(line=195, offs=9) -- 6085(line=203, offs=10)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5615(line=193, offs=9) -- 5949(line=201, offs=10) */ ATSINSflab(__patsflab_sum_loop_111): /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5841(line=196, offs=7) -- 6085(line=203, offs=10)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5705(line=194, offs=7) -- 5949(line=201, offs=10) */ ATScaseof_beg() /*@@ -7483,15 +7483,15 @@ */ ATSbranch_beg() /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5862(line=197, offs=11) -- 5863(line=197, offs=12)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5726(line=195, offs=11) -- 5727(line=195, offs=12) */ ATSINSlab(__atstmplab39): /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5788(line=195, offs=46) -- 5789(line=195, offs=47)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5652(line=193, offs=46) -- 5653(line=193, offs=47) */ ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab41) ; } ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5863(line=197, offs=12) -- 5863(line=197, offs=12)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5727(line=195, offs=12) -- 5727(line=195, offs=12) */ ATSINSlab(__atstmplab40): /*@@ -7501,23 +7501,23 @@ ibranch-mbody: */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5874(line=197, offs=23) -- 5889(line=197, offs=38)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5738(line=195, offs=23) -- 5753(line=195, offs=38) */ ATSINSmove(tmp273, stirling2_79(env0, ATSPMVi0nt(1))) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5867(line=197, offs=16) -- 5889(line=197, offs=38)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5731(line=195, offs=16) -- 5753(line=195, offs=38) */ ATSINSstore(ATSderef(arg1, atstkind_type(atstype_ptrk)), tmp273) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5867(line=197, offs=16) -- 5889(line=197, offs=38)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5731(line=195, offs=16) -- 5753(line=195, offs=38) */ ATSINSmove_void(tmpret272, ATSPMVempty()) ; ATSbranch_end() ATSbranch_beg() /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5901(line=198, offs=12) -- 5901(line=198, offs=12)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5765(line=196, offs=12) -- 5765(line=196, offs=12) */ ATSINSlab(__atstmplab41): /*@@ -7527,39 +7527,39 @@ ibranch-mbody: */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5906(line=198, offs=17) -- 6085(line=203, offs=10)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5770(line=196, offs=17) -- 5949(line=201, offs=10) */ /* letpush(beg) */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5936(line=199, offs=29) -- 5941(line=199, offs=34)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5800(line=197, offs=29) -- 5805(line=197, offs=34) */ ATSINSmove(tmp275, atspre_g1int_sub_int(arg0, ATSPMVi0nt(1))) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5927(line=199, offs=20) -- 5947(line=199, offs=40)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5791(line=197, offs=20) -- 5811(line=197, offs=40) */ ATSINSmove_void(tmp274, sum_loop_111(env0, tmp275, ATSPMVrefarg1(arg1))) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5962(line=200, offs=15) -- 5965(line=200, offs=18)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5826(line=198, offs=15) -- 5829(line=198, offs=18) */ /* ATSINStmpdec(tmpref276) ; */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5968(line=200, offs=21) -- 5983(line=200, offs=36)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5832(line=198, offs=21) -- 5847(line=198, offs=36) */ ATSINSmove(tmpref276, stirling2_79(env0, arg0)) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6010(line=201, offs=27) -- 6039(line=201, offs=56)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5874(line=199, offs=27) -- 5903(line=199, offs=56) */ ATSINSmove(tmp277, ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6__4(ATSderef(arg1, atstkind_type(atstype_ptrk)), ATSPMVrefarg0(tmpref276))) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6003(line=201, offs=20) -- 6039(line=201, offs=56)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5867(line=199, offs=20) -- 5903(line=199, offs=56) */ ATSINSstore(ATSderef(arg1, atstkind_type(atstype_ptrk)), tmp277) ; /*@@ -7567,12 +7567,12 @@ */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6059(line=202, offs=20) -- 6074(line=202, offs=35)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5923(line=200, offs=20) -- 5938(line=200, offs=35) */ ATSINSmove_void(tmpret272, ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__7(tmpref276)) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5906(line=198, offs=17) -- 6085(line=203, offs=10)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 5770(line=196, offs=17) -- 5949(line=201, offs=10) */ /* INSletpop()@@ -7800,7 +7800,7 @@ } /* end of [ATSLIB_056_prelude__ptr_alloc__17__23] */ /*-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6250(line=215, offs=4) -- 6679(line=232, offs=6)+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6114(line=213, offs=4) -- 6543(line=230, offs=6) */ /* local: choose_62$0(level=0)@@ -7819,23 +7819,23 @@ /* tmpvardeclst(end) */ ATSfunbody_beg() /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6250(line=215, offs=4) -- 6679(line=232, offs=6)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6114(line=213, offs=4) -- 6543(line=230, offs=6) */ ATSINSflab(__patsflab_max_regions_116): /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6295(line=216, offs=3) -- 6679(line=232, offs=6)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6159(line=214, offs=3) -- 6543(line=230, offs=6) */ /* letpush(beg) */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6629(line=228, offs=9) -- 6630(line=228, offs=10)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6493(line=226, offs=9) -- 6494(line=226, offs=10) */ /* ATSINStmpdec(tmpref306) ; */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6652(line=229, offs=14) -- 6662(line=229, offs=24)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6516(line=227, offs=14) -- 6526(line=227, offs=24) */ ATSINSmove_void(tmp307, loop_117(arg0, ATSPMVi0nt(4), ATSPMVrefarg1(ATSPMVptrof(tmpref306)))) ; @@ -7844,11 +7844,11 @@ */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6672(line=231, offs=5) -- 6673(line=231, offs=6)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6536(line=229, offs=5) -- 6537(line=229, offs=6) */ ATSINSmove(tmpret288, tmpref306) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6295(line=216, offs=3) -- 6679(line=232, offs=6)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6159(line=214, offs=3) -- 6543(line=230, offs=6) */ /* INSletpop()@@ -7858,7 +7858,7 @@ } /* end of [max_regions_116] */ /*-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6307(line=217, offs=9) -- 6615(line=226, offs=15)+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6171(line=215, offs=9) -- 6479(line=224, offs=15) */ /* local: choose_62$0(level=0), loop_117$0(level=1)@@ -7881,68 +7881,68 @@ /* tmpvardeclst(end) */ ATSfunbody_beg() /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6307(line=217, offs=9) -- 6615(line=226, offs=15)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6171(line=215, offs=9) -- 6479(line=224, offs=15) */ ATSINSflab(__patsflab_loop_117): /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6383(line=218, offs=10) -- 6388(line=218, offs=15)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6247(line=216, offs=10) -- 6252(line=216, offs=15) */ ATSINSmove(tmp290, ATSLIB_056_prelude__eq_g1int_int__80__3(arg0, ATSPMVi0nt(0))) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6380(line=218, offs=7) -- 6615(line=226, offs=15)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6244(line=216, offs=7) -- 6479(line=224, offs=15) */ ATSif( tmp290 ) ATSthen() { /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6409(line=219, offs=16) -- 6422(line=219, offs=29)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6273(line=217, offs=16) -- 6286(line=217, offs=29) */ ATSINSmove(tmp293, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__23(ATSPMVi0nt(1))) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6402(line=219, offs=9) -- 6422(line=219, offs=29)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6266(line=217, offs=9) -- 6286(line=217, offs=29) */ ATSINSstore(ATSderef(arg1, atstkind_type(atstype_ptrk)), tmp293) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6402(line=219, offs=9) -- 6422(line=219, offs=29)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6266(line=217, offs=9) -- 6286(line=217, offs=29) */ ATSINSmove_void(tmpret289, ATSPMVempty()) ; } ATSelse() { /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6442(line=221, offs=9) -- 6615(line=226, offs=15)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6306(line=219, offs=9) -- 6479(line=224, offs=15) */ /* letpush(beg) */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6470(line=222, offs=25) -- 6475(line=222, offs=30)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6334(line=220, offs=25) -- 6339(line=220, offs=30) */ ATSINSmove(tmp299, atspre_g1int_sub_int(arg0, ATSPMVi0nt(1))) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6465(line=222, offs=20) -- 6481(line=222, offs=36)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6329(line=220, offs=20) -- 6345(line=220, offs=36) */ ATSINSmove_void(tmp298, loop_117(env0, tmp299, ATSPMVrefarg1(arg1))) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6496(line=223, offs=15) -- 6497(line=223, offs=16)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6360(line=221, offs=15) -- 6361(line=221, offs=16) */ /* ATSINStmpdec(tmpref300) ; */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6500(line=223, offs=19) -- 6512(line=223, offs=31)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6364(line=221, offs=19) -- 6376(line=221, offs=31) */ ATSINSmove(tmpref300, choose_62(env0, arg0)) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6539(line=224, offs=27) -- 6566(line=224, offs=54)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6403(line=222, offs=27) -- 6430(line=222, offs=54) */ ATSINSmove(tmp301, ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6__5(ATSderef(arg1, atstkind_type(atstype_ptrk)), ATSPMVrefarg0(tmpref300))) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6532(line=224, offs=20) -- 6566(line=224, offs=54)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6396(line=222, offs=20) -- 6430(line=222, offs=54) */ ATSINSstore(ATSderef(arg1, atstkind_type(atstype_ptrk)), tmp301) ; /*@@ -7950,12 +7950,12 @@ */ /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6586(line=225, offs=20) -- 6599(line=225, offs=33)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6450(line=223, offs=20) -- 6463(line=223, offs=33) */ ATSINSmove_void(tmpret289, ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__8(tmpref300)) ; /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6442(line=221, offs=9) -- 6615(line=226, offs=15)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6306(line=219, offs=9) -- 6479(line=224, offs=15) */ /* INSletpop()@@ -8218,7 +8218,7 @@ } /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__8] */ /*-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6702(line=234, offs=22) -- 6725(line=235, offs=15)+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6566(line=232, offs=22) -- 6589(line=233, offs=15) */ /* local: choose_62$0(level=0)@@ -8235,11 +8235,11 @@ /* tmpvardeclst(end) */ ATSfunbody_beg() /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6691(line=234, offs=11) -- 6725(line=235, offs=15)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6555(line=232, offs=11) -- 6589(line=233, offs=15) */ ATSINSflab(__patsflab_choose_ats): /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6713(line=235, offs=3) -- 6725(line=235, offs=15)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6577(line=233, offs=3) -- 6589(line=233, offs=15) */ ATSINSmove(tmpret308, choose_62(arg0, arg1)) ; @@ -8248,7 +8248,7 @@ } /* end of [choose_ats] */ /*-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6758(line=237, offs=32) -- 6773(line=238, offs=10)+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6622(line=235, offs=32) -- 6637(line=236, offs=10) */ /* local: dfact_41$0(level=0)@@ -8265,11 +8265,11 @@ /* tmpvardeclst(end) */ ATSfunbody_beg() /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6737(line=237, offs=11) -- 6774(line=238, offs=11)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6601(line=235, offs=11) -- 6638(line=236, offs=11) */ ATSINSflab(__patsflab_double_factorial_ats): /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6766(line=238, offs=3) -- 6773(line=238, offs=10)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6630(line=236, offs=3) -- 6637(line=236, offs=10) */ ATSINSmove(tmpret309, dfact_41(arg0)) ; @@ -8278,7 +8278,7 @@ } /* end of [double_factorial_ats] */ /*-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6800(line=240, offs=25) -- 6814(line=241, offs=9)+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6664(line=238, offs=25) -- 6678(line=239, offs=9) */ /* local: fact_34$0(level=0)@@ -8295,11 +8295,11 @@ /* tmpvardeclst(end) */ ATSfunbody_beg() /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6786(line=240, offs=11) -- 6815(line=241, offs=10)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6650(line=238, offs=11) -- 6679(line=239, offs=10) */ ATSINSflab(__patsflab_factorial_ats): /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6808(line=241, offs=3) -- 6814(line=241, offs=9)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6672(line=239, offs=3) -- 6678(line=239, offs=9) */ ATSINSmove(tmpret310, fact_34(arg0)) ; @@ -8308,7 +8308,7 @@ } /* end of [factorial_ats] */ /*-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6839(line=243, offs=23) -- 6856(line=244, offs=12)+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6703(line=241, offs=23) -- 6720(line=242, offs=12) */ /* local: catalan_50$0(level=0)@@ -8325,11 +8325,11 @@ /* tmpvardeclst(end) */ ATSfunbody_beg() /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6827(line=243, offs=11) -- 6857(line=244, offs=13)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6691(line=241, offs=11) -- 6721(line=242, offs=13) */ ATSINSflab(__patsflab_catalan_ats): /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6847(line=244, offs=3) -- 6856(line=244, offs=12)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6711(line=242, offs=3) -- 6720(line=242, offs=12) */ ATSINSmove(tmpret311, catalan_50(arg0)) ; @@ -8338,7 +8338,7 @@ } /* end of [catalan_ats] */ /*-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6886(line=246, offs=28) -- 6908(line=247, offs=17)+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6750(line=244, offs=28) -- 6772(line=245, offs=17) */ /* local: derangements_0$0(level=0)@@ -8355,11 +8355,11 @@ /* tmpvardeclst(end) */ ATSfunbody_beg() /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6869(line=246, offs=11) -- 6909(line=247, offs=18)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6733(line=244, offs=11) -- 6773(line=245, offs=18) */ ATSINSflab(__patsflab_derangements_ats): /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6894(line=247, offs=3) -- 6908(line=247, offs=17)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6758(line=245, offs=3) -- 6772(line=245, offs=17) */ ATSINSmove(tmpret312, derangements_0(arg0)) ; @@ -8368,7 +8368,7 @@ } /* end of [derangements_ats] */ /*-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6938(line=249, offs=28) -- 6967(line=250, offs=21)+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6802(line=247, offs=28) -- 6831(line=248, offs=21) */ /* local: permutations_42$0(level=0)@@ -8385,11 +8385,11 @@ /* tmpvardeclst(end) */ ATSfunbody_beg() /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6921(line=249, offs=11) -- 6967(line=250, offs=21)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6785(line=247, offs=11) -- 6831(line=248, offs=21) */ ATSINSflab(__patsflab_permutations_ats): /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6949(line=250, offs=3) -- 6967(line=250, offs=21)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6813(line=248, offs=3) -- 6831(line=248, offs=21) */ ATSINSmove(tmpret313, permutations_42(arg0, arg1)) ; @@ -8398,7 +8398,7 @@ } /* end of [permutations_ats] */ /*-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6993(line=252, offs=25) -- 7019(line=253, offs=18)+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6857(line=250, offs=25) -- 6883(line=251, offs=18) */ /* local: stirling2_79$0(level=0)@@ -8415,11 +8415,11 @@ /* tmpvardeclst(end) */ ATSfunbody_beg() /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6979(line=252, offs=11) -- 7019(line=253, offs=18)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6843(line=250, offs=11) -- 6883(line=251, offs=18) */ ATSINSflab(__patsflab_stirling2_ats): /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 7004(line=253, offs=3) -- 7019(line=253, offs=18)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6868(line=251, offs=3) -- 6883(line=251, offs=18) */ ATSINSmove(tmpret314, stirling2_79(arg0, arg1)) ; @@ -8428,7 +8428,7 @@ } /* end of [stirling2_ats] */ /*-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 7047(line=255, offs=27) -- 7068(line=256, offs=16)+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6911(line=253, offs=27) -- 6932(line=254, offs=16) */ /* local: max_regions_116$0(level=0)@@ -8445,11 +8445,11 @@ /* tmpvardeclst(end) */ ATSfunbody_beg() /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 7031(line=255, offs=11) -- 7069(line=256, offs=17)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6895(line=253, offs=11) -- 6933(line=254, offs=17) */ ATSINSflab(__patsflab_max_regions_ats): /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 7055(line=256, offs=3) -- 7068(line=256, offs=16)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6919(line=254, offs=3) -- 6932(line=254, offs=16) */ ATSINSmove(tmpret315, max_regions_116(arg0)) ; @@ -8458,7 +8458,7 @@ } /* end of [max_regions_ats] */ /*-/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 7090(line=258, offs=20) -- 7104(line=259, offs=9)+/home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6954(line=256, offs=20) -- 6968(line=257, offs=9) */ /* local: bell_110$0(level=0)@@ -8475,11 +8475,11 @@ /* tmpvardeclst(end) */ ATSfunbody_beg() /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 7081(line=258, offs=11) -- 7105(line=259, offs=10)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6945(line=256, offs=11) -- 6969(line=257, offs=10) */ ATSINSflab(__patsflab_bell_ats): /*-emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 7098(line=259, offs=3) -- 7104(line=259, offs=9)+emit_instr: loc0 = /home/vanessa/programming/haskell/done/hs-ats/fast-arithmetic/ats-src/combinatorics.dats: 6962(line=257, offs=3) -- 6968(line=257, offs=9) */ ATSINSmove(tmpret316, bell_110(arg0)) ;
fast-arithmetic.cabal view
@@ -1,6 +1,6 @@ cabal-version: 1.18 name: fast-arithmetic-version: 0.6.4.0+version: 0.6.4.1 license: BSD3 license-file: LICENSE copyright: Copyright: (c) 2018 Vanessa McHale@@ -8,7 +8,7 @@ author: Vanessa McHale tested-with: ghc ==7.0.4 ghc ==7.2.2 ghc ==7.4.2 ghc ==7.6.3 ghc ==7.8.4 ghc ==7.10.3 ghc ==8.0.2 ghc ==8.2.2 ghc ==8.4.4- ghc ==8.6.1+ ghc ==8.6.2 bug-reports: https://github.com/vmchale/hs-ats/issues synopsis: Fast functions on integers. description:@@ -37,11 +37,6 @@ type: git location: git@github.com:vmchale/hs-ats.git -flag no-integer-gmp- description:- Disable functions relying on GMP- default: False- flag development description: Enable `-Werror`.@@ -51,9 +46,11 @@ library exposed-modules: Numeric.NumberTheory+ Numeric.Combinatorics c-sources: cbits/number-theory.c cbits/numerics.c+ cbits/combinatorics.c hs-source-dirs: src other-modules: Numeric.Common@@ -63,7 +60,7 @@ ghc-options: -Wall build-depends: base >=4.3 && <5,- composition-prelude >=1.2.0.0+ hgmp -any if impl(ghc >=8.0) cc-options: -mtune=native -flto -O3@@ -71,18 +68,6 @@ if os(windows) buildable: False - if !flag(no-integer-gmp)- exposed-modules:- Numeric.Combinatorics-- if !flag(no-integer-gmp)- c-sources:- cbits/combinatorics.c-- if !flag(no-integer-gmp)- build-depends:- gmpint -any- if os(windows) buildable: False @@ -104,7 +89,7 @@ fast-arithmetic -any, hspec -any, QuickCheck -any,- arithmoi >=0.6.0.0,+ arithmoi >=0.4.3.0, combinat -any if flag(development)@@ -124,8 +109,8 @@ base -any, fast-arithmetic -any, criterion -any,- arithmoi >=0.6.0.0,- combinat >=0.2.9.0+ arithmoi >=0.4.3.0,+ combinat -any if flag(development) ghc-options: -Werror
src/Numeric/Combinatorics.hs view
@@ -16,60 +16,66 @@ , stirling2 ) where -import Control.Composition-import Control.Monad-import Data.GMP import Foreign.C import Foreign.Ptr-import Foreign.Storable-import System.IO.Unsafe (unsafePerformIO)+import Numeric.GMP.Raw.Unsafe (mpz_clear)+import Numeric.GMP.Types+import Numeric.GMP.Utils+import System.IO.Unsafe (unsafePerformIO) -foreign import ccall unsafe double_factorial_ats :: CInt -> Ptr GMPInt-foreign import ccall unsafe factorial_ats :: CInt -> Ptr GMPInt-foreign import ccall unsafe choose_ats :: CInt -> CInt -> Ptr GMPInt-foreign import ccall unsafe catalan_ats :: CInt -> Ptr GMPInt-foreign import ccall unsafe derangements_ats :: CInt -> Ptr GMPInt-foreign import ccall unsafe permutations_ats :: CInt -> CInt -> Ptr GMPInt-foreign import ccall unsafe max_regions_ats :: CInt -> Ptr GMPInt-foreign import ccall unsafe stirling2_ats :: CInt -> CInt -> Ptr GMPInt+foreign import ccall unsafe double_factorial_ats :: CInt -> IO (Ptr MPZ)+foreign import ccall unsafe factorial_ats :: CInt -> IO (Ptr MPZ)+foreign import ccall unsafe choose_ats :: CInt -> CInt -> IO (Ptr MPZ)+foreign import ccall unsafe catalan_ats :: CInt -> IO (Ptr MPZ)+foreign import ccall unsafe derangements_ats :: CInt -> IO (Ptr MPZ)+foreign import ccall unsafe permutations_ats :: CInt -> CInt -> IO (Ptr MPZ)+foreign import ccall unsafe max_regions_ats :: CInt -> IO (Ptr MPZ)+foreign import ccall unsafe stirling2_ats :: CInt -> CInt -> IO (Ptr MPZ) -helper :: (CInt -> CInt -> Ptr GMPInt) -> Int -> Int -> Integer-helper f = unsafePerformIO .* (gmpToInteger <=<) . (peek .* on f fromIntegral)+conjugateMPZ :: (CInt -> IO (Ptr MPZ)) -> Int -> Integer+conjugateMPZ f n = unsafePerformIO $ do+ mPtr <- f (fromIntegral n)+ peekInteger mPtr <* mpz_clear mPtr +conjugateMPZ' :: (CInt -> CInt -> IO (Ptr MPZ)) -> Int -> Int -> Integer+conjugateMPZ' f n k = unsafePerformIO $ do+ mPtr <- f (fromIntegral n) (fromIntegral k)+ peekInteger mPtr <* mpz_clear mPtr+ -- | \\( !n \\) -- -- > λ:> derangement <$> [0..10] -- > [1,0,1,2,9,44,265,1854,14833,133496,1334961] derangement :: Int -> Integer-derangement = unsafePerformIO . conjugateGMP derangements_ats+derangement = conjugateMPZ derangements_ats -- | The @n@th Catalan number, with indexing beginning at @0@. -- -- > λ:> catalan <$> [0..9] -- > [1,1,2,5,14,42,132,429,1430,4862] catalan :: Int -> Integer-catalan = unsafePerformIO . conjugateGMP catalan_ats+catalan = conjugateMPZ catalan_ats -- | \( \binom{n}{k} \) choose :: Int -> Int -> Integer-choose = helper choose_ats+choose = conjugateMPZ' choose_ats permutations :: Int -> Int -> Integer-permutations = helper permutations_ats+permutations = conjugateMPZ' permutations_ats -- | Stirling numbers of the second kind. stirling2 :: Int -> Int -> Integer-stirling2 = helper stirling2_ats+stirling2 = conjugateMPZ' stirling2_ats factorial :: Int -> Integer-factorial = unsafePerformIO . conjugateGMP factorial_ats+factorial = conjugateMPZ factorial_ats -- | \( n!! \) doubleFactorial :: Int -> Integer-doubleFactorial = unsafePerformIO . conjugateGMP double_factorial_ats+doubleFactorial = conjugateMPZ double_factorial_ats -- | Compute the maximal number of regions obtained by joining \\( n \\) points -- about a circle by straight lines. See [here](https://oeis.org/A000127). maxRegions :: Int -- ^ \\( n \\) -> Integer-maxRegions = unsafePerformIO . conjugateGMP max_regions_ats+maxRegions = conjugateMPZ max_regions_ats
test/Spec.hs view
@@ -24,13 +24,6 @@ where g = (0, 1) : (1, 0) : zipWith step g (tail g) step (_, n) (i, m) = (i + 1, i * (n + m)) --- FIXME report bug in integer-gmp-tooBig :: Int -> Int -> Bool-tooBig x y = go x y >= 2 ^ (16 :: Integer)- where- go :: Int -> Int -> Integer- go m n = fromIntegral m ^ n- agreeL :: (Eq a, Show b, Integral b, Arbitrary b) => b -> String -> (b -> a) -> (b -> a) -> SpecWith () agreeL lower s f g = describe s $ prop "should agree with the pure Haskell function" $@@ -68,7 +61,7 @@ \n -> n < 1 || n > 18 || (derangement n :: Integer) == floor ((fromIntegral (Ext.factorial (fromIntegral n :: Int) :: Integer) :: Double) / exp 1 + 0.5) describe "totient" $ prop "should satisfy Fermat's little theorem" $- \a m -> a < 1 || m < 2 || gcd a m /= 1 || tooBig a m || (a ^ totient m) `mod` m == 1+ \a m -> a < 1 || m < 2 || gcd a m /= 1 || ((a ^ totient (fromIntegral m)) `mod` m == (1 :: Integer)) describe "striling2" $ prop "should agree" $ \n k -> n < 0 || k < 0 || stirling2 n k == Ext.stirling2nd n k@@ -81,3 +74,7 @@ describe "permutations" $ prop "should agree" $ \n k -> k < 1 || k > n || permutations n k == hsPermutations (fromIntegral n) (fromIntegral k)++ describe "stirling" $+ prop "should obey the identity I found on Wolfram MathWorld" $+ \n -> n <= 1 || sum [ ((-1) ^ m) * factorial (m-1) * stirling2 n m | m <- [1..n] ] == 0