packages feed

fast-combinatorics 0.1.0.3 → 0.1.0.4

raw patch · 10 files changed

+2601/−1463 lines, 10 filesdep −arithmoidep −combinatoricsdep ~basedep ~composition-preludesetup-changed

Dependencies removed: arithmoi, combinatorics

Dependency ranges changed: base, composition-prelude

Files

README.md view
@@ -3,11 +3,24 @@ [![Build Status](https://travis-ci.org/vmchale/fast-combinatorics.svg?branch=master)](https://travis-ci.org/vmchale/fast-combinatorics)  This is a library for fast combinatorics using ATS. As such, make sure-a C compiler is installed. Build reports from Windows users are always welcome.+a C compiler is installed, however it may not work on windows. -Currently it is in-progress, being somewhat constrained by the fact that I have+Currently it is a work-in-progress, being somewhat constrained by the fact that I have yet to figure out how to share arbitrary-precision types between ATS and Haskell. +## Benchmarks++| Computation | Version (ATS/Haskell) | Time |+| ----------- | --------------------- | ---- |+| `12!` | ATS | 9.301 ns |+| `12!` | Haskell | 27.84 ns |+| ``13 `choose` 4`` | ATS | 12.28 ns |+| ``13 `choose` 4`` | Haskell | 28.38 ns |+| `isPrime 2017` | ATS | 118.9 ns |+| `isPrime 2017` | Haskell | 497.3 ns |+| `3 ^ 7` | ATS | 9.050 ns |+| `3 ^ 7` | Haskell | 37.02 ns |+ ## Building  The Haskell library comes with the C bundled, however you may wish to build from@@ -28,8 +41,7 @@ ### Using the ATS library  One of the nice things about a Haskell wrapper is that some of Haskell's-tooling/libraries may be used. In particular, you may like to interact with the-library via a REPL, viz.+tooling/libraries may be used. You may want to try the REPL:  ```bash  $ cabal new-repl@@ -38,7 +50,7 @@ ### Using the Haskell library  You may wish to read the ATS source code for an indication of what sorts of-things ATS allows us to prove things about our programs, such as proofs of+things ATS allows us to prove things about our programs, particularly proofs of termination.  There are also a few caveats: note that all results and arguments
Setup.hs view
@@ -7,6 +7,7 @@ #endif import qualified Codec.Archive.Tar                     as Tar import           Codec.Compression.GZip                (decompress)+import           Control.Monad                         (when) import           Distribution.Simple import           Distribution.Simple.Setup import           Distribution.Types.HookedBuildInfo@@ -15,22 +16,27 @@ import           Network.HTTP.Client.TLS               (tlsManagerSettings) import           System.Directory +-- TODO make this pre-configure? main = defaultMainWithHooks myHooks-    where myHooks = simpleUserHooks { preBuild = buildScript+    where myHooks = simpleUserHooks { preConf = buildScript                                     , postClean = cleanATS }  cleanATS :: Args -> CleanFlags -> PackageDescription -> () -> IO () cleanATS _ _ _ _ = removeDirectoryRecursive "ATS2-Postiats-include-0.3.8" -buildScript :: Args -> BuildFlags -> IO HookedBuildInfo+buildScript :: Args -> ConfigFlags -> IO HookedBuildInfo buildScript _ _ = do -    putStrLn "Fetching libraries..."-    manager <- newManager tlsManagerSettings-    initialRequest <- parseRequest "https://downloads.sourceforge.net/project/ats2-lang/ats2-lang/ats2-postiats-0.3.8/ATS2-Postiats-include-0.3.8.tgz"-    response <- responseBody <$> httpLbs (initialRequest { method = "GET" }) manager+    needsSetup <- not <$> doesDirectoryExist "ATS2-Postiats-include-0.3.8" -    putStrLn "Unpacking libraries..."-    Tar.unpack "." . Tar.read . decompress $ response+    when needsSetup $ do++        putStrLn "Fetching libraries..."+        manager <- newManager tlsManagerSettings+        initialRequest <- parseRequest "https://downloads.sourceforge.net/project/ats2-lang/ats2-lang/ats2-postiats-0.3.8/ATS2-Postiats-include-0.3.8.tgz"+        response <- responseBody <$> httpLbs (initialRequest { method = "GET" }) manager++        putStrLn "Unpacking libraries..."+        Tar.unpack "." . Tar.read . decompress $ response      pure emptyHookedBuildInfo
bench/Bench.hs view
@@ -1,26 +1,26 @@ module Main where  import           Criterion.Main-import qualified Math.Combinatorics.Binomial  as Ext-import qualified Math.Combinatorics.Factorial as Ext import           Numeric.Combinatorics--hsIsPrime :: Int -> Bool-hsIsPrime x = null [ y | y <- [2..m], x `mod` y == 0]-    where m = floor (sqrt (fromIntegral x :: Float))+import           Numeric.Integer+import           Numeric.Pure.Combinatorics  main :: IO () main =     defaultMain [ bgroup "factorial"                       [ bench "factorial" $ nf factorial 12-                      , bench "Ext.factorial" $ nf (Ext.factorial :: Int -> Int) 12+                      , bench "hsFactorial" $ nf hsFactorial 12                       ]-                , bgroup "choose"+                , bgroup "combinations"                       [ bench "choose" $ nf (13 `choose`) 4-                      , bench "Ext.choose" $ nf (Ext.choose 13 :: Int -> Int) 4+                      , bench "hsChoose" $ nf (13 `hsChoose`) 4                       ]-                , bgroup "isPrime"+                , bgroup "primality check"                       [ bench "isPrime" $ nf isPrime 2017                       , bench "hsIsPrime" $ nf hsIsPrime 2017+                      ]+                , bgroup "integer exponentiation"+                      [ bench "integerExp" $ nf (integerExp 3) 7+                      , bench "^" $ nf ((3 :: Int) ^) (7 :: Int)                       ]                 ]
+ cbits/combinatorics-ffi.c view
@@ -0,0 +1,965 @@+/*+**+** The C code is generated by [ATS/Postiats-0-3-8]+** The starting compilation time is: 2017-12-30: 23h:56m+**+*/++/*+** include runtime header files+*/+#ifndef _ATS_CCOMP_HEADER_NONE_+#include "pats_ccomp_config.h"+#include "pats_ccomp_basics.h"+#include "pats_ccomp_typedefs.h"+#include "pats_ccomp_instrset.h"+#include "pats_ccomp_memalloc.h"+#ifndef _ATS_CCOMP_EXCEPTION_NONE_+#include "pats_ccomp_memalloca.h"+#include "pats_ccomp_exception.h"+#endif // end of [_ATS_CCOMP_EXCEPTION_NONE_]+#endif /* _ATS_CCOMP_HEADER_NONE_ */+++/*+** include prelude cats files+*/+#ifndef _ATS_CCOMP_PRELUDE_NONE_+//+#include "prelude/CATS/basics.cats"+#include "prelude/CATS/integer.cats"+#include "prelude/CATS/pointer.cats"+#include "prelude/CATS/integer_long.cats"+#include "prelude/CATS/integer_size.cats"+#include "prelude/CATS/integer_short.cats"+#include "prelude/CATS/bool.cats"+#include "prelude/CATS/char.cats"+#include "prelude/CATS/float.cats"+#include "prelude/CATS/integer_ptr.cats"+#include "prelude/CATS/integer_fixed.cats"+#include "prelude/CATS/memory.cats"+#include "prelude/CATS/string.cats"+#include "prelude/CATS/strptr.cats"+//+#include "prelude/CATS/fprintf.cats"+//+#include "prelude/CATS/filebas.cats"+//+#include "prelude/CATS/list.cats"+#include "prelude/CATS/option.cats"+#include "prelude/CATS/array.cats"+#include "prelude/CATS/arrayptr.cats"+#include "prelude/CATS/arrayref.cats"+#include "prelude/CATS/matrix.cats"+#include "prelude/CATS/matrixptr.cats"+//+#endif /* _ATS_CCOMP_PRELUDE_NONE_ */+/*+** for user-supplied prelude+*/+#ifdef _ATS_CCOMP_PRELUDE_USER_+//+#include _ATS_CCOMP_PRELUDE_USER_+//+#endif /* _ATS_CCOMP_PRELUDE_USER_ */+/*+** for user2-supplied prelude+*/+#ifdef _ATS_CCOMP_PRELUDE_USER2_+//+#include _ATS_CCOMP_PRELUDE_USER2_+//+#endif /* _ATS_CCOMP_PRELUDE_USER2_ */++/*+staload-prologues(beg)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/basics.dats: 1636(line=50, offs=1) -- 1675(line=50, offs=40)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 1596(line=49, offs=1) -- 1635(line=49, offs=40)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/pointer.dats: 1533(line=44, offs=1) -- 1572(line=44, offs=40)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer_long.dats: 1602(line=49, offs=1) -- 1641(line=49, offs=40)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer_size.dats: 1597(line=49, offs=1) -- 1636(line=49, offs=40)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer_short.dats: 1603(line=49, offs=1) -- 1642(line=49, offs=40)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/char.dats: 1610(line=48, offs=1) -- 1649(line=48, offs=40)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/float.dats: 1636(line=50, offs=1) -- 1675(line=50, offs=40)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/string.dats: 1631(line=50, offs=1) -- 1670(line=50, offs=40)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/strptr.dats: 1629(line=50, offs=1) -- 1668(line=50, offs=40)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/strptr.dats: 1691(line=54, offs=1) -- 1738(line=54, offs=48)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 1596(line=49, offs=1) -- 1635(line=49, offs=40)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer_ptr.dats: 1601(line=49, offs=1) -- 1640(line=49, offs=40)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer_fixed.dats: 1603(line=49, offs=1) -- 1642(line=49, offs=40)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/memory.dats: 1410(line=38, offs=1) -- 1449(line=39, offs=32)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/filebas.dats: 1613(line=49, offs=1) -- 1652(line=50, offs=32)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/filebas.dats: 1675(line=54, offs=1) -- 1721(line=55, offs=39)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 1596(line=49, offs=1) -- 1635(line=49, offs=40)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/filebas.dats: 1744(line=59, offs=1) -- 1789(line=60, offs=38)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/stdio.sats: 1390(line=36, offs=1) -- 1437(line=39, offs=3)+*/++#include \+"libats/libc/CATS/stdio.cats"+/*+/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/stdio.sats: 1950(line=69, offs=1) -- 1999(line=71, offs=34)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/sys/types.sats: 1390(line=36, offs=1) -- 1441(line=39, offs=3)+*/++#include \+"libats/libc/CATS/sys/types.cats"+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/filebas.dats: 1871(line=66, offs=1) -- 1918(line=66, offs=48)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/sys/stat.sats: 1390(line=36, offs=1) -- 1440(line=39, offs=3)+*/++#include \+"libats/libc/CATS/sys/stat.cats"+/*+/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/sys/stat.sats: 1756(line=58, offs=1) -- 1805(line=60, offs=34)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/sys/types.sats: 1390(line=36, offs=1) -- 1441(line=39, offs=3)+*/++#include \+"libats/libc/CATS/sys/types.cats"+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/filebas.dats: 15552(line=879, offs=1) -- 15589(line=880, offs=30)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/stdio.sats: 1390(line=36, offs=1) -- 1437(line=39, offs=3)+*/++#include \+"libats/libc/CATS/stdio.cats"+/*+/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/stdio.sats: 1950(line=69, offs=1) -- 1999(line=71, offs=34)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/sys/types.sats: 1390(line=36, offs=1) -- 1441(line=39, offs=3)+*/++#include \+"libats/libc/CATS/sys/types.cats"+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/list.dats: 1529(line=44, offs=1) -- 1568(line=45, offs=32)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/list.dats: 1569(line=46, offs=1) -- 1615(line=47, offs=39)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/unsafe.dats: 1532(line=44, offs=1) -- 1566(line=44, offs=35)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/list_vt.dats: 1538(line=44, offs=1) -- 1577(line=45, offs=32)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/list_vt.dats: 1578(line=46, offs=1) -- 1624(line=47, offs=39)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/unsafe.dats: 1532(line=44, offs=1) -- 1566(line=44, offs=35)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/SHARE/list_vt_mergesort.dats: 1546(line=44, offs=1) -- 1585(line=44, offs=40)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/SHARE/list_vt_quicksort.dats: 1546(line=44, offs=1) -- 1585(line=44, offs=40)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/array.dats: 1534(line=44, offs=1) -- 1573(line=44, offs=40)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/array.dats: 1574(line=45, offs=1) -- 1616(line=45, offs=43)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/SHARE/array_bsearch.dats: 1531(line=44, offs=1) -- 1570(line=44, offs=40)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/SHARE/array_quicksort.dats: 1531(line=44, offs=1) -- 1570(line=44, offs=40)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/arrayptr.dats: 1532(line=44, offs=1) -- 1571(line=44, offs=40)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/arrayref.dats: 1532(line=44, offs=1) -- 1571(line=44, offs=40)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/matrix.dats: 1535(line=44, offs=1) -- 1574(line=44, offs=40)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/matrixptr.dats: 1538(line=44, offs=1) -- 1577(line=44, offs=40)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/matrixref.dats: 1538(line=44, offs=1) -- 1577(line=44, offs=40)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/stream.dats: 1523(line=44, offs=1) -- 1562(line=44, offs=40)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/stream_vt.dats: 1523(line=44, offs=1) -- 1562(line=44, offs=40)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/tostring.dats: 1528(line=44, offs=1) -- 1567(line=45, offs=32)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/unsafe.dats: 1532(line=44, offs=1) -- 1566(line=44, offs=35)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/checkast.dats: 1531(line=44, offs=1) -- 1570(line=45, offs=32)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/math.sats: 1380(line=35, offs=1) -- 1426(line=38, offs=3)+*/++#include \+"libats/libc/CATS/math.cats"+/*+staload-prologues(end)+*/+/*+typedefs-for-tyrecs-and-tysums(beg)+*/+/*+typedefs-for-tyrecs-and-tysums(end)+*/+/*+dynconlst-declaration(beg)+*/+/*+dynconlst-declaration(end)+*/+/*+dyncstlst-declaration(beg)+*/+ATSdyncst_mac(atspre_g0int_mul_int)+ATSdyncst_mac(atspre_g1int_sub_int)+ATSdyncst_mac(atspre_g1int_mul_int)+ATSdyncst_mac(atspre_g1int_add_int)+ATSdyncst_mac(atspre_g0int_div_int)+/*+dyncstlst-declaration(end)+*/+/*+dynvalist-implementation(beg)+*/+/*+dynvalist-implementation(end)+*/+/*+exnconlst-declaration(beg)+*/+#ifndef _ATS_CCOMP_EXCEPTION_NONE_+ATSextern()+atsvoid_t0ype+the_atsexncon_initize+(+  atstype_exnconptr d2c, atstype_string exnmsg+) ;+#endif // end of [_ATS_CCOMP_EXCEPTION_NONE_]+/*+exnconlst-declaration(end)+*/+/*+extypelst-declaration(beg)+*/+/*+extypelst-declaration(end)+*/+/*+assumelst-declaration(beg)+*/+#ifndef _ATS_CCOMP_ASSUME_CHECK_NONE_+#endif // #ifndef(_ATS_CCOMP_ASSUME_CHECK_NONE_)+/*+assumelst-declaration(end)+*/+ATSstatic()+atstkind_t0ype(atstype_int)+fact_0(atstkind_t0ype(atstype_int)) ;++ATSstatic()+atstkind_t0ype(atstype_int)+dfact_3(atstkind_t0ype(atstype_int)) ;++ATSstatic()+atstkind_t0ype(atstype_int)+choose_4(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;++ATSstatic()+atstkind_t0ype(atstype_int)+numerator_loop_5(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;++#if(0)+ATSextern()+atstkind_t0ype(atstype_int)+choose_ats(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;+#endif // end of [QUALIFIED]++#if(0)+ATSextern()+atstkind_t0ype(atstype_int)+double_factorial(atstkind_t0ype(atstype_int)) ;+#endif // end of [QUALIFIED]++#if(0)+ATSextern()+atstkind_t0ype(atstype_int)+factorial_ats(atstkind_t0ype(atstype_int)) ;+#endif // end of [QUALIFIED]++/*+/home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 108(line=7, offs=5) -- 205(line=10, offs=28)+*/+/*+local: fact_0$0(level=0)+global: fact_0$0(level=0)+local: +global: +*/+ATSstatic()+atstkind_t0ype(atstype_int)+fact_0(atstkind_t0ype(atstype_int) arg0)+{+/* tmpvardeclst(beg) */+ATStmpdec(apy0, atstkind_t0ype(atstype_int)) ;+ATStmpdec(tmpret0, atstkind_t0ype(atstype_int)) ;+ATStmpdec(tmp1, atstkind_t0ype(atstype_int)) ;+ATStmpdec(tmp2, atstkind_t0ype(atstype_int)) ;+/* tmpvardeclst(end) */+/*+emit_funent_fnxdeclst:+*/+ATSfunbody_beg()+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 108(line=7, offs=5) -- 205(line=10, offs=28)+*/+ATSINSflab(__patsflab_fact_0):+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 154(line=8, offs=3) -- 205(line=10, offs=28)+*/+ATScaseof_beg()+/*+** ibranchlst-beg+*/+ATSbranch_beg()+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 171(line=9, offs=7) -- 172(line=9, offs=8)+*/+ATSINSlab(__atstmplab0):+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 130(line=7, offs=27) -- 131(line=7, offs=28)+*/+ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(0))) { ATSINSgoto(__atstmplab2) ; } ;+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 172(line=9, offs=8) -- 172(line=9, offs=8)+*/+ATSINSlab(__atstmplab1):+/*+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)+*/+/*+ibranch-mbody:+*/+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 176(line=9, offs=12) -- 177(line=9, offs=13)+*/+ATSINSmove(tmpret0, ATSPMVi0nt(1)) ;+ATSbranch_end()++ATSbranch_beg()+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 185(line=10, offs=8) -- 185(line=10, offs=8)+*/+ATSINSlab(__atstmplab2):+/*+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)+*/+/*+ibranch-mbody:+*/+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 195(line=10, offs=18) -- 200(line=10, offs=23)+*/+ATSINSmove(tmp2, atspre_g1int_sub_int(arg0, ATSPMVi0nt(1))) ;++/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 190(line=10, offs=13) -- 201(line=10, offs=24)+*/+ATSINSmove(tmp1, fact_0(tmp2)) ;++/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 190(line=10, offs=13) -- 205(line=10, offs=28)+*/+ATSINSmove(tmpret0, atspre_g0int_mul_int(tmp1, arg0)) ;++ATSbranch_end()++/*+** ibranchlst-end+*/+ATScaseof_end()++ATSfunbody_end()+ATSreturn(tmpret0) ;+/*+emit_funent_fnxbodylst:+*/+} /* end of [fact_0] */++/*+/home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 211(line=12, offs=5) -- 323(line=16, offs=29)+*/+/*+local: dfact_3$0(level=0)+global: dfact_3$0(level=0)+local: +global: +*/+ATSstatic()+atstkind_t0ype(atstype_int)+dfact_3(atstkind_t0ype(atstype_int) arg0)+{+/* tmpvardeclst(beg) */+ATStmpdec(apy0, atstkind_t0ype(atstype_int)) ;+ATStmpdec(tmpret3, atstkind_t0ype(atstype_int)) ;+ATStmpdec(tmp4, atstkind_t0ype(atstype_int)) ;+ATStmpdec(tmp5, atstkind_t0ype(atstype_int)) ;+/* tmpvardeclst(end) */+/*+emit_funent_fnxdeclst:+*/+ATSfunbody_beg()+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 211(line=12, offs=5) -- 323(line=16, offs=29)+*/+ATSINSflab(__patsflab_dfact_3):+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 258(line=13, offs=3) -- 323(line=16, offs=29)+*/+ATScaseof_beg()+/*+** ibranchlst-beg+*/+ATSbranch_beg()+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 275(line=14, offs=7) -- 276(line=14, offs=8)+*/+ATSINSlab(__atstmplab3):+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 234(line=12, offs=28) -- 235(line=12, offs=29)+*/+ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(0))) { ATSINSgoto(__atstmplab5) ; } ;+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 276(line=14, offs=8) -- 276(line=14, offs=8)+*/+ATSINSlab(__atstmplab4):+/*+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)+*/+/*+ibranch-mbody:+*/+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 280(line=14, offs=12) -- 281(line=14, offs=13)+*/+ATSINSmove(tmpret3, ATSPMVi0nt(1)) ;+ATSbranch_end()++ATSbranch_beg()+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 288(line=15, offs=7) -- 289(line=15, offs=8)+*/+ATSINSlab(__atstmplab5):+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 234(line=12, offs=28) -- 235(line=12, offs=29)+*/+ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab7) ; } ;+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 289(line=15, offs=8) -- 289(line=15, offs=8)+*/+ATSINSlab(__atstmplab6):+/*+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)+*/+/*+ibranch-mbody:+*/+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 293(line=15, offs=12) -- 294(line=15, offs=13)+*/+ATSINSmove(tmpret3, ATSPMVi0nt(1)) ;+ATSbranch_end()++ATSbranch_beg()+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 302(line=16, offs=8) -- 302(line=16, offs=8)+*/+ATSINSlab(__atstmplab7):+/*+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)+*/+/*+ibranch-mbody:+*/+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 317(line=16, offs=23) -- 322(line=16, offs=28)+*/+ATSINSmove(tmp5, atspre_g1int_sub_int(arg0, ATSPMVi0nt(2))) ;++/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 311(line=16, offs=17) -- 323(line=16, offs=29)+*/+ATSINSmove(tmp4, dfact_3(tmp5)) ;++/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 307(line=16, offs=13) -- 323(line=16, offs=29)+*/+ATSINSmove(tmpret3, atspre_g0int_mul_int(arg0, tmp4)) ;++ATSbranch_end()++/*+** ibranchlst-end+*/+ATScaseof_end()++ATSfunbody_end()+ATSreturn(tmpret3) ;+/*+emit_funent_fnxbodylst:+*/+} /* end of [dfact_3] */++/*+/home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 362(line=19, offs=4) -- 718(line=31, offs=6)+*/+/*+local: fact_0$0(level=0)+global: fact_0$0(level=0), choose_4$0(level=0)+local: +global: +*/+ATSstatic()+atstkind_t0ype(atstype_int)+choose_4(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)+{+/* tmpvardeclst(beg) */+ATStmpdec(tmpret6, atstkind_t0ype(atstype_int)) ;+ATStmpdec(tmp13, atstkind_t0ype(atstype_int)) ;+ATStmpdec(tmp14, atstkind_t0ype(atstype_int)) ;+/* tmpvardeclst(end) */+ATSfunbody_beg()+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 362(line=19, offs=4) -- 718(line=31, offs=6)+*/+ATSINSflab(__patsflab_choose_4):+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 434(line=20, offs=3) -- 718(line=31, offs=6)+*/+/*+letpush(beg)+*/+/*+letpush(end)+*/++/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 630(line=27, offs=5) -- 712(line=30, offs=42)+*/+ATScaseof_beg()+/*+** ibranchlst-beg+*/+ATSbranch_beg()+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 649(line=28, offs=9) -- 650(line=28, offs=10)+*/+ATSINSlab(__atstmplab13):+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 412(line=19, offs=54) -- 413(line=19, offs=55)+*/+ATSifnthen(ATSCKpat_int(arg1, ATSPMVint(0))) { ATSINSgoto(__atstmplab15) ; } ;+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 650(line=28, offs=10) -- 650(line=28, offs=10)+*/+ATSINSlab(__atstmplab14):+/*+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)+*/+/*+ibranch-mbody:+*/+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 654(line=28, offs=14) -- 655(line=28, offs=15)+*/+ATSINSmove(tmpret6, ATSPMVi0nt(1)) ;+ATSbranch_end()++ATSbranch_beg()+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 664(line=29, offs=9) -- 665(line=29, offs=10)+*/+ATSINSlab(__atstmplab15):+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 412(line=19, offs=54) -- 413(line=19, offs=55)+*/+ATSifnthen(ATSCKpat_int(arg1, ATSPMVint(1))) { ATSINSgoto(__atstmplab17) ; } ;+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 665(line=29, offs=10) -- 665(line=29, offs=10)+*/+ATSINSlab(__atstmplab16):+/*+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)+*/+/*+ibranch-mbody:+*/+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 669(line=29, offs=14) -- 670(line=29, offs=15)+*/+ATSINSmove(tmpret6, arg0) ;+ATSbranch_end()++ATSbranch_beg()+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 680(line=30, offs=10) -- 680(line=30, offs=10)+*/+ATSINSlab(__atstmplab17):+/*+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)+*/+/*+ibranch-mbody:+*/+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 685(line=30, offs=15) -- 701(line=30, offs=31)+*/+ATSINSmove(tmp13, numerator_loop_5(arg0, arg1)) ;++/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 705(line=30, offs=35) -- 711(line=30, offs=41)+*/+ATSINSmove(tmp14, fact_0(arg1)) ;++/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 685(line=30, offs=15) -- 711(line=30, offs=41)+*/+ATSINSmove(tmpret6, atspre_g0int_div_int(tmp13, tmp14)) ;++ATSbranch_end()++/*+** ibranchlst-end+*/+ATScaseof_end()++/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 434(line=20, offs=3) -- 718(line=31, offs=6)+*/+/*+INSletpop()+*/+ATSfunbody_end()+ATSreturn(tmpret6) ;+} /* end of [choose_4] */++/*+/home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 446(line=21, offs=9) -- 620(line=25, offs=52)+*/+/*+local: numerator_loop_5$0(level=1)+global: numerator_loop_5$0(level=1)+local: n$4734(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))+global: n$4734(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))+*/+ATSstatic()+atstkind_t0ype(atstype_int)+numerator_loop_5(atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) arg0)+{+/* tmpvardeclst(beg) */+ATStmpdec(tmpret7, atstkind_t0ype(atstype_int)) ;+ATStmpdec(tmp8, atstkind_t0ype(atstype_int)) ;+ATStmpdec(tmp9, atstkind_t0ype(atstype_int)) ;+ATStmpdec(tmp10, atstkind_t0ype(atstype_int)) ;+ATStmpdec(tmp11, atstkind_t0ype(atstype_int)) ;+ATStmpdec(tmp12, atstkind_t0ype(atstype_int)) ;+/* tmpvardeclst(end) */+ATSfunbody_beg()+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 446(line=21, offs=9) -- 620(line=25, offs=52)+*/+ATSINSflab(__patsflab_numerator_loop_5):+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 514(line=22, offs=7) -- 620(line=25, offs=52)+*/+ATScaseof_beg()+/*+** ibranchlst-beg+*/+ATSbranch_beg()+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 535(line=23, offs=11) -- 536(line=23, offs=12)+*/+ATSINSlab(__atstmplab8):+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 488(line=21, offs=51) -- 489(line=21, offs=52)+*/+ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab10) ; } ;+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 536(line=23, offs=12) -- 536(line=23, offs=12)+*/+ATSINSlab(__atstmplab9):+/*+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)+*/+/*+ibranch-mbody:+*/+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 540(line=23, offs=16) -- 541(line=23, offs=17)+*/+ATSINSmove(tmpret7, env0) ;+ATSbranch_end()++ATSbranch_beg()+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 552(line=24, offs=11) -- 553(line=24, offs=12)+*/+ATSINSlab(__atstmplab10):+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 488(line=21, offs=51) -- 489(line=21, offs=52)+*/+ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(2))) { ATSINSgoto(__atstmplab12) ; } ;+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 553(line=24, offs=12) -- 553(line=24, offs=12)+*/+ATSINSlab(__atstmplab11):+/*+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)+*/+/*+ibranch-mbody:+*/+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 558(line=24, offs=17) -- 563(line=24, offs=22)+*/+ATSINSmove(tmp8, atspre_g1int_sub_int(env0, ATSPMVi0nt(1))) ;++/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 557(line=24, offs=16) -- 568(line=24, offs=27)+*/+ATSINSmove(tmpret7, atspre_g1int_mul_int(tmp8, env0)) ;++ATSbranch_end()++ATSbranch_beg()+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 580(line=25, offs=12) -- 580(line=25, offs=12)+*/+ATSINSlab(__atstmplab12):+/*+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)+*/+/*+ibranch-mbody:+*/+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 586(line=25, offs=18) -- 591(line=25, offs=23)+*/+ATSINSmove(tmp10, atspre_g1int_add_int(env0, ATSPMVi0nt(1))) ;++/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 586(line=25, offs=18) -- 595(line=25, offs=27)+*/+ATSINSmove(tmp9, atspre_g1int_sub_int(tmp10, arg0)) ;++/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 614(line=25, offs=46) -- 619(line=25, offs=51)+*/+ATSINSmove(tmp12, atspre_g1int_sub_int(arg0, ATSPMVi0nt(1))) ;++/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 599(line=25, offs=31) -- 620(line=25, offs=52)+*/+ATSINSmove(tmp11, numerator_loop_5(env0, tmp12)) ;++/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 585(line=25, offs=17) -- 620(line=25, offs=52)+*/+ATSINSmove(tmpret7, atspre_g0int_mul_int(tmp9, tmp11)) ;++ATSbranch_end()++/*+** ibranchlst-end+*/+ATScaseof_end()++ATSfunbody_end()+ATSreturn(tmpret7) ;+} /* end of [numerator_loop_5] */++/*+/home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics-ffi.dats: 344(line=18, offs=22) -- 367(line=19, offs=15)+*/+/*+local: choose_4$0(level=0)+global: fact_0$0(level=0), choose_4$0(level=0), choose_ats$9$0(level=0)+local: +global: +*/+ATSextern()+atstkind_t0ype(atstype_int)+choose_ats(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)+{+/* tmpvardeclst(beg) */+ATStmpdec(tmpret15, atstkind_t0ype(atstype_int)) ;+/* tmpvardeclst(end) */+ATSfunbody_beg()+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics-ffi.dats: 333(line=18, offs=11) -- 367(line=19, offs=15)+*/+ATSINSflab(__patsflab_choose_ats):+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics-ffi.dats: 355(line=19, offs=3) -- 367(line=19, offs=15)+*/+ATSINSmove(tmpret15, choose_4(arg0, arg1)) ;++ATSfunbody_end()+ATSreturn(tmpret15) ;+} /* end of [choose_ats] */++/*+/home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics-ffi.dats: 396(line=21, offs=28) -- 411(line=22, offs=10)+*/+/*+local: dfact_3$0(level=0)+global: dfact_3$0(level=0), double_factorial$10$0(level=0)+local: +global: +*/+ATSextern()+atstkind_t0ype(atstype_int)+double_factorial(atstkind_t0ype(atstype_int) arg0)+{+/* tmpvardeclst(beg) */+ATStmpdec(tmpret16, atstkind_t0ype(atstype_int)) ;+/* tmpvardeclst(end) */+ATSfunbody_beg()+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics-ffi.dats: 379(line=21, offs=11) -- 412(line=22, offs=11)+*/+ATSINSflab(__patsflab_double_factorial):+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics-ffi.dats: 404(line=22, offs=3) -- 411(line=22, offs=10)+*/+ATSINSmove(tmpret16, dfact_3(arg0)) ;++ATSfunbody_end()+ATSreturn(tmpret16) ;+} /* end of [double_factorial] */++/*+/home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics-ffi.dats: 438(line=24, offs=25) -- 452(line=25, offs=9)+*/+/*+local: fact_0$0(level=0)+global: fact_0$0(level=0), factorial_ats$11$0(level=0)+local: +global: +*/+ATSextern()+atstkind_t0ype(atstype_int)+factorial_ats(atstkind_t0ype(atstype_int) arg0)+{+/* tmpvardeclst(beg) */+ATStmpdec(tmpret17, atstkind_t0ype(atstype_int)) ;+/* tmpvardeclst(end) */+ATSfunbody_beg()+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics-ffi.dats: 424(line=24, offs=11) -- 453(line=25, offs=10)+*/+ATSINSflab(__patsflab_factorial_ats):+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics-ffi.dats: 446(line=25, offs=3) -- 452(line=25, offs=9)+*/+ATSINSmove(tmpret17, fact_0(arg0)) ;++ATSfunbody_end()+ATSreturn(tmpret17) ;+} /* end of [factorial_ats] */++/*+** for initialization(dynloading)+*/+ATSdynloadflag_minit(_057_home_057_vanessa_057_programming_057_haskell_057_current_057_fast_055_combinatorics_057_ats_055_src_057_combinatorics_055_ffi_056_dats__dynloadflag) ;+ATSextern()+atsvoid_t0ype+_057_home_057_vanessa_057_programming_057_haskell_057_current_057_fast_055_combinatorics_057_ats_055_src_057_combinatorics_055_ffi_056_dats__dynload()+{+ATSfunbody_beg()+ATSdynload(/*void*/)+ATSdynloadflag_sta(+_057_home_057_vanessa_057_programming_057_haskell_057_current_057_fast_055_combinatorics_057_ats_055_src_057_combinatorics_055_ffi_056_dats__dynloadflag+) ;+ATSif(+ATSCKiseqz(+_057_home_057_vanessa_057_programming_057_haskell_057_current_057_fast_055_combinatorics_057_ats_055_src_057_combinatorics_055_ffi_056_dats__dynloadflag+)+) ATSthen() {+ATSdynloadset(_057_home_057_vanessa_057_programming_057_haskell_057_current_057_fast_055_combinatorics_057_ats_055_src_057_combinatorics_055_ffi_056_dats__dynloadflag) ;+/*+dynexnlst-initize(beg)+*/+/*+dynexnlst-initize(end)+*/+} /* ATSendif */+ATSfunbody_end()+ATSreturn_void(tmpret_void) ;+} /* end of [*_dynload] */++/* ****** ****** */++/* end-of-compilation-unit */
− cbits/fast-combinatorics.c
@@ -1,1426 +0,0 @@-/*-**-** The C code is generated by [ATS/Postiats-0-3-8]-** The starting compilation time is: 2017-12-30: 17h:55m-**-*/--/*-** include runtime header files-*/-#ifndef _ATS_CCOMP_HEADER_NONE_-#include "pats_ccomp_config.h"-#include "pats_ccomp_basics.h"-#include "pats_ccomp_typedefs.h"-#include "pats_ccomp_instrset.h"-#include "pats_ccomp_memalloc.h"-#ifndef _ATS_CCOMP_EXCEPTION_NONE_-#include "pats_ccomp_memalloca.h"-#include "pats_ccomp_exception.h"-#endif // end of [_ATS_CCOMP_EXCEPTION_NONE_]-#endif /* _ATS_CCOMP_HEADER_NONE_ */---/*-** include prelude cats files-*/-#ifndef _ATS_CCOMP_PRELUDE_NONE_-//-#include "prelude/CATS/basics.cats"-#include "prelude/CATS/integer.cats"-#include "prelude/CATS/pointer.cats"-#include "prelude/CATS/integer_long.cats"-#include "prelude/CATS/integer_size.cats"-#include "prelude/CATS/integer_short.cats"-#include "prelude/CATS/bool.cats"-#include "prelude/CATS/char.cats"-#include "prelude/CATS/float.cats"-#include "prelude/CATS/integer_ptr.cats"-#include "prelude/CATS/integer_fixed.cats"-#include "prelude/CATS/memory.cats"-#include "prelude/CATS/string.cats"-#include "prelude/CATS/strptr.cats"-//-#include "prelude/CATS/fprintf.cats"-//-#include "prelude/CATS/filebas.cats"-//-#include "prelude/CATS/list.cats"-#include "prelude/CATS/option.cats"-#include "prelude/CATS/array.cats"-#include "prelude/CATS/arrayptr.cats"-#include "prelude/CATS/arrayref.cats"-#include "prelude/CATS/matrix.cats"-#include "prelude/CATS/matrixptr.cats"-//-#endif /* _ATS_CCOMP_PRELUDE_NONE_ */-/*-** for user-supplied prelude-*/-#ifdef _ATS_CCOMP_PRELUDE_USER_-//-#include _ATS_CCOMP_PRELUDE_USER_-//-#endif /* _ATS_CCOMP_PRELUDE_USER_ */-/*-** for user2-supplied prelude-*/-#ifdef _ATS_CCOMP_PRELUDE_USER2_-//-#include _ATS_CCOMP_PRELUDE_USER2_-//-#endif /* _ATS_CCOMP_PRELUDE_USER2_ */--/*-staload-prologues(beg)-*/-/*-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/basics.dats: 1636(line=50, offs=1) -- 1675(line=50, offs=40)-*/-/*-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 1596(line=49, offs=1) -- 1635(line=49, offs=40)-*/-/*-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/pointer.dats: 1533(line=44, offs=1) -- 1572(line=44, offs=40)-*/-/*-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer_long.dats: 1602(line=49, offs=1) -- 1641(line=49, offs=40)-*/-/*-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer_size.dats: 1597(line=49, offs=1) -- 1636(line=49, offs=40)-*/-/*-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer_short.dats: 1603(line=49, offs=1) -- 1642(line=49, offs=40)-*/-/*-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/char.dats: 1610(line=48, offs=1) -- 1649(line=48, offs=40)-*/-/*-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/float.dats: 1636(line=50, offs=1) -- 1675(line=50, offs=40)-*/-/*-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/string.dats: 1631(line=50, offs=1) -- 1670(line=50, offs=40)-*/-/*-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/strptr.dats: 1629(line=50, offs=1) -- 1668(line=50, offs=40)-*/-/*-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/strptr.dats: 1691(line=54, offs=1) -- 1738(line=54, offs=48)-*/-/*-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 1596(line=49, offs=1) -- 1635(line=49, offs=40)-*/-/*-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer_ptr.dats: 1601(line=49, offs=1) -- 1640(line=49, offs=40)-*/-/*-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer_fixed.dats: 1603(line=49, offs=1) -- 1642(line=49, offs=40)-*/-/*-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/memory.dats: 1410(line=38, offs=1) -- 1449(line=39, offs=32)-*/-/*-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/filebas.dats: 1613(line=49, offs=1) -- 1652(line=50, offs=32)-*/-/*-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/filebas.dats: 1675(line=54, offs=1) -- 1721(line=55, offs=39)-*/-/*-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 1596(line=49, offs=1) -- 1635(line=49, offs=40)-*/-/*-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/filebas.dats: 1744(line=59, offs=1) -- 1789(line=60, offs=38)-*/-/*-/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/stdio.sats: 1390(line=36, offs=1) -- 1437(line=39, offs=3)-*/--#include \-"libats/libc/CATS/stdio.cats"-/*-/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/stdio.sats: 1950(line=69, offs=1) -- 1999(line=71, offs=34)-*/-/*-/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/sys/types.sats: 1390(line=36, offs=1) -- 1441(line=39, offs=3)-*/--#include \-"libats/libc/CATS/sys/types.cats"-/*-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/filebas.dats: 1871(line=66, offs=1) -- 1918(line=66, offs=48)-*/-/*-/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/sys/stat.sats: 1390(line=36, offs=1) -- 1440(line=39, offs=3)-*/--#include \-"libats/libc/CATS/sys/stat.cats"-/*-/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/sys/stat.sats: 1756(line=58, offs=1) -- 1805(line=60, offs=34)-*/-/*-/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/sys/types.sats: 1390(line=36, offs=1) -- 1441(line=39, offs=3)-*/--#include \-"libats/libc/CATS/sys/types.cats"-/*-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/filebas.dats: 15552(line=879, offs=1) -- 15589(line=880, offs=30)-*/-/*-/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/stdio.sats: 1390(line=36, offs=1) -- 1437(line=39, offs=3)-*/--#include \-"libats/libc/CATS/stdio.cats"-/*-/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/stdio.sats: 1950(line=69, offs=1) -- 1999(line=71, offs=34)-*/-/*-/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/sys/types.sats: 1390(line=36, offs=1) -- 1441(line=39, offs=3)-*/--#include \-"libats/libc/CATS/sys/types.cats"-/*-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/list.dats: 1529(line=44, offs=1) -- 1568(line=45, offs=32)-*/-/*-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/list.dats: 1569(line=46, offs=1) -- 1615(line=47, offs=39)-*/-/*-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/unsafe.dats: 1532(line=44, offs=1) -- 1566(line=44, offs=35)-*/-/*-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/list_vt.dats: 1538(line=44, offs=1) -- 1577(line=45, offs=32)-*/-/*-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/list_vt.dats: 1578(line=46, offs=1) -- 1624(line=47, offs=39)-*/-/*-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/unsafe.dats: 1532(line=44, offs=1) -- 1566(line=44, offs=35)-*/-/*-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/SHARE/list_vt_mergesort.dats: 1546(line=44, offs=1) -- 1585(line=44, offs=40)-*/-/*-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/SHARE/list_vt_quicksort.dats: 1546(line=44, offs=1) -- 1585(line=44, offs=40)-*/-/*-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/array.dats: 1534(line=44, offs=1) -- 1573(line=44, offs=40)-*/-/*-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/array.dats: 1574(line=45, offs=1) -- 1616(line=45, offs=43)-*/-/*-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/SHARE/array_bsearch.dats: 1531(line=44, offs=1) -- 1570(line=44, offs=40)-*/-/*-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/SHARE/array_quicksort.dats: 1531(line=44, offs=1) -- 1570(line=44, offs=40)-*/-/*-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/arrayptr.dats: 1532(line=44, offs=1) -- 1571(line=44, offs=40)-*/-/*-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/arrayref.dats: 1532(line=44, offs=1) -- 1571(line=44, offs=40)-*/-/*-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/matrix.dats: 1535(line=44, offs=1) -- 1574(line=44, offs=40)-*/-/*-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/matrixptr.dats: 1538(line=44, offs=1) -- 1577(line=44, offs=40)-*/-/*-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/matrixref.dats: 1538(line=44, offs=1) -- 1577(line=44, offs=40)-*/-/*-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/stream.dats: 1523(line=44, offs=1) -- 1562(line=44, offs=40)-*/-/*-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/stream_vt.dats: 1523(line=44, offs=1) -- 1562(line=44, offs=40)-*/-/*-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/tostring.dats: 1528(line=44, offs=1) -- 1567(line=45, offs=32)-*/-/*-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/unsafe.dats: 1532(line=44, offs=1) -- 1566(line=44, offs=35)-*/-/*-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/checkast.dats: 1531(line=44, offs=1) -- 1570(line=45, offs=32)-*/-/*-/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/math.sats: 1380(line=35, offs=1) -- 1426(line=38, offs=3)-*/--#include \-"libats/libc/CATS/math.cats"-/*-staload-prologues(end)-*/-/*-typedefs-for-tyrecs-and-tysums(beg)-*/-/*-typedefs-for-tyrecs-and-tysums(end)-*/-/*-dynconlst-declaration(beg)-*/-/*-dynconlst-declaration(end)-*/-/*-dyncstlst-declaration(beg)-*/-ATSdyncst_mac(atspre_g0int_mul_int)-ATSdyncst_mac(atspre_g1int_sub_int)-ATSdyncst_mac(atspre_g1int_mul_int)-ATSdyncst_mac(atspre_g1int_add_int)-ATSdyncst_mac(atspre_g0int_div_int)-ATSdyncst_mac(atspre_g0float2int_float_int)-ATSdyncst_mac(atslib_libats_libc_sqrt_float)-ATSdyncst_mac(atspre_g0int2float_int_float)-ATSdyncst_mac(atspre_g0int2int_int_int)-ATSdyncst_mac(atspre_g0int_lte_int)-ATSdyncst_mac(atspre_g0int_eq_int)-ATSdyncst_mac(atspre_g0int_mod_int)-/*-dyncstlst-declaration(end)-*/-/*-dynvalist-implementation(beg)-*/-/*-dynvalist-implementation(end)-*/-/*-exnconlst-declaration(beg)-*/-#ifndef _ATS_CCOMP_EXCEPTION_NONE_-ATSextern()-atsvoid_t0ype-the_atsexncon_initize-(-  atstype_exnconptr d2c, atstype_string exnmsg-) ;-#endif // end of [_ATS_CCOMP_EXCEPTION_NONE_]-/*-exnconlst-declaration(end)-*/-/*-extypelst-declaration(beg)-*/-/*-extypelst-declaration(end)-*/-/*-assumelst-declaration(beg)-*/-#ifndef _ATS_CCOMP_ASSUME_CHECK_NONE_-#endif // #ifndef(_ATS_CCOMP_ASSUME_CHECK_NONE_)-/*-assumelst-declaration(end)-*/-ATSstatic()-atstkind_t0ype(atstype_int)-fact_0(atstkind_t0ype(atstype_int)) ;--ATSstatic()-atstkind_t0ype(atstype_int)-dfact_3(atstkind_t0ype(atstype_int)) ;--ATSstatic()-atstkind_t0ype(atstype_int)-choose_4(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;--ATSstatic()-atstkind_t0ype(atstype_int)-numerator_loop_5(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;--ATSstatic()-atstkind_t0ype(atstype_bool)-is_prime_9(atstkind_t0ype(atstype_int)) ;--ATSstatic()-atstkind_t0ype(atstype_bool)-loop_11(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;--#if(0)-#if(0)-ATSextern()-atstkind_t0ype(atstype_bool)-ATSLIB_056_prelude__lte_g0int_int__12(atstkind_t0ype(atstyvar_type(tk)), atstkind_t0ype(atstype_int)) ;-#endif // end of [QUALIFIED]-#endif // end of [TEMPLATE]--ATSstatic()-atstkind_t0ype(atstype_bool)-ATSLIB_056_prelude__lte_g0int_int__12__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;--#if(0)-#if(0)-ATSextern()-atstkind_t0ype(atstype_bool)-ATSLIB_056_prelude__eq_g0int_int__16(atstkind_t0ype(atstyvar_type(tk)), atstkind_t0ype(atstype_int)) ;-#endif // end of [QUALIFIED]-#endif // end of [TEMPLATE]--ATSstatic()-atstkind_t0ype(atstype_bool)-ATSLIB_056_prelude__eq_g0int_int__16__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;--#if(0)-ATSextern()-atstkind_t0ype(atstype_int)-choose_ats(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;-#endif // end of [QUALIFIED]--#if(0)-ATSextern()-atstkind_t0ype(atstype_int)-double_factorial(atstkind_t0ype(atstype_int)) ;-#endif // end of [QUALIFIED]--#if(0)-ATSextern()-atstkind_t0ype(atstype_bool)-is_prime_ats(atstkind_t0ype(atstype_int)) ;-#endif // end of [QUALIFIED]--#if(0)-ATSextern()-atstkind_t0ype(atstype_int)-factorial_ats(atstkind_t0ype(atstype_int)) ;-#endif // end of [QUALIFIED]--/*-/home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 187(line=9, offs=5) -- 284(line=12, offs=28)-*/-/*-local: fact_0$0(level=0)-global: fact_0$0(level=0)-local: -global: -*/-ATSstatic()-atstkind_t0ype(atstype_int)-fact_0(atstkind_t0ype(atstype_int) arg0)-{-/* tmpvardeclst(beg) */-ATStmpdec(apy0, atstkind_t0ype(atstype_int)) ;-ATStmpdec(tmpret0, atstkind_t0ype(atstype_int)) ;-ATStmpdec(tmp1, atstkind_t0ype(atstype_int)) ;-ATStmpdec(tmp2, atstkind_t0ype(atstype_int)) ;-/* tmpvardeclst(end) */-/*-emit_funent_fnxdeclst:-*/-ATSfunbody_beg()-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 187(line=9, offs=5) -- 284(line=12, offs=28)-*/-ATSINSflab(__patsflab_fact_0):-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 233(line=10, offs=3) -- 284(line=12, offs=28)-*/-ATScaseof_beg()-/*-** ibranchlst-beg-*/-ATSbranch_beg()-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 250(line=11, offs=7) -- 251(line=11, offs=8)-*/-ATSINSlab(__atstmplab0):-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 209(line=9, offs=27) -- 210(line=9, offs=28)-*/-ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(0))) { ATSINSgoto(__atstmplab2) ; } ;-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 251(line=11, offs=8) -- 251(line=11, offs=8)-*/-ATSINSlab(__atstmplab1):-/*-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)-*/-/*-ibranch-mbody:-*/-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 255(line=11, offs=12) -- 256(line=11, offs=13)-*/-ATSINSmove(tmpret0, ATSPMVi0nt(1)) ;-ATSbranch_end()--ATSbranch_beg()-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 264(line=12, offs=8) -- 264(line=12, offs=8)-*/-ATSINSlab(__atstmplab2):-/*-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)-*/-/*-ibranch-mbody:-*/-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 274(line=12, offs=18) -- 279(line=12, offs=23)-*/-ATSINSmove(tmp2, atspre_g1int_sub_int(arg0, ATSPMVi0nt(1))) ;--/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 269(line=12, offs=13) -- 280(line=12, offs=24)-*/-ATSINSmove(tmp1, fact_0(tmp2)) ;--/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 269(line=12, offs=13) -- 284(line=12, offs=28)-*/-ATSINSmove(tmpret0, atspre_g0int_mul_int(tmp1, arg0)) ;--ATSbranch_end()--/*-** ibranchlst-end-*/-ATScaseof_end()--ATSfunbody_end()-ATSreturn(tmpret0) ;-/*-emit_funent_fnxbodylst:-*/-} /* end of [fact_0] */--/*-/home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 290(line=14, offs=5) -- 402(line=18, offs=29)-*/-/*-local: dfact_3$0(level=0)-global: dfact_3$0(level=0)-local: -global: -*/-ATSstatic()-atstkind_t0ype(atstype_int)-dfact_3(atstkind_t0ype(atstype_int) arg0)-{-/* tmpvardeclst(beg) */-ATStmpdec(apy0, atstkind_t0ype(atstype_int)) ;-ATStmpdec(tmpret3, atstkind_t0ype(atstype_int)) ;-ATStmpdec(tmp4, atstkind_t0ype(atstype_int)) ;-ATStmpdec(tmp5, atstkind_t0ype(atstype_int)) ;-/* tmpvardeclst(end) */-/*-emit_funent_fnxdeclst:-*/-ATSfunbody_beg()-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 290(line=14, offs=5) -- 402(line=18, offs=29)-*/-ATSINSflab(__patsflab_dfact_3):-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 337(line=15, offs=3) -- 402(line=18, offs=29)-*/-ATScaseof_beg()-/*-** ibranchlst-beg-*/-ATSbranch_beg()-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 354(line=16, offs=7) -- 355(line=16, offs=8)-*/-ATSINSlab(__atstmplab3):-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 313(line=14, offs=28) -- 314(line=14, offs=29)-*/-ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(0))) { ATSINSgoto(__atstmplab5) ; } ;-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 355(line=16, offs=8) -- 355(line=16, offs=8)-*/-ATSINSlab(__atstmplab4):-/*-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)-*/-/*-ibranch-mbody:-*/-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 359(line=16, offs=12) -- 360(line=16, offs=13)-*/-ATSINSmove(tmpret3, ATSPMVi0nt(1)) ;-ATSbranch_end()--ATSbranch_beg()-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 367(line=17, offs=7) -- 368(line=17, offs=8)-*/-ATSINSlab(__atstmplab5):-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 313(line=14, offs=28) -- 314(line=14, offs=29)-*/-ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab7) ; } ;-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 368(line=17, offs=8) -- 368(line=17, offs=8)-*/-ATSINSlab(__atstmplab6):-/*-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)-*/-/*-ibranch-mbody:-*/-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 372(line=17, offs=12) -- 373(line=17, offs=13)-*/-ATSINSmove(tmpret3, ATSPMVi0nt(1)) ;-ATSbranch_end()--ATSbranch_beg()-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 381(line=18, offs=8) -- 381(line=18, offs=8)-*/-ATSINSlab(__atstmplab7):-/*-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)-*/-/*-ibranch-mbody:-*/-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 396(line=18, offs=23) -- 401(line=18, offs=28)-*/-ATSINSmove(tmp5, atspre_g1int_sub_int(arg0, ATSPMVi0nt(2))) ;--/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 390(line=18, offs=17) -- 402(line=18, offs=29)-*/-ATSINSmove(tmp4, dfact_3(tmp5)) ;--/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 386(line=18, offs=13) -- 402(line=18, offs=29)-*/-ATSINSmove(tmpret3, atspre_g0int_mul_int(arg0, tmp4)) ;--ATSbranch_end()--/*-** ibranchlst-end-*/-ATScaseof_end()--ATSfunbody_end()-ATSreturn(tmpret3) ;-/*-emit_funent_fnxbodylst:-*/-} /* end of [dfact_3] */--/*-/home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 441(line=21, offs=4) -- 797(line=33, offs=6)-*/-/*-local: fact_0$0(level=0)-global: fact_0$0(level=0), choose_4$0(level=0)-local: -global: -*/-ATSstatic()-atstkind_t0ype(atstype_int)-choose_4(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)-{-/* tmpvardeclst(beg) */-ATStmpdec(tmpret6, atstkind_t0ype(atstype_int)) ;-ATStmpdec(tmp13, atstkind_t0ype(atstype_int)) ;-ATStmpdec(tmp14, atstkind_t0ype(atstype_int)) ;-/* tmpvardeclst(end) */-ATSfunbody_beg()-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 441(line=21, offs=4) -- 797(line=33, offs=6)-*/-ATSINSflab(__patsflab_choose_4):-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 513(line=22, offs=3) -- 797(line=33, offs=6)-*/-/*-letpush(beg)-*/-/*-letpush(end)-*/--/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 709(line=29, offs=5) -- 791(line=32, offs=42)-*/-ATScaseof_beg()-/*-** ibranchlst-beg-*/-ATSbranch_beg()-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 728(line=30, offs=9) -- 729(line=30, offs=10)-*/-ATSINSlab(__atstmplab13):-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 491(line=21, offs=54) -- 492(line=21, offs=55)-*/-ATSifnthen(ATSCKpat_int(arg1, ATSPMVint(0))) { ATSINSgoto(__atstmplab15) ; } ;-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 729(line=30, offs=10) -- 729(line=30, offs=10)-*/-ATSINSlab(__atstmplab14):-/*-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)-*/-/*-ibranch-mbody:-*/-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 733(line=30, offs=14) -- 734(line=30, offs=15)-*/-ATSINSmove(tmpret6, ATSPMVi0nt(1)) ;-ATSbranch_end()--ATSbranch_beg()-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 743(line=31, offs=9) -- 744(line=31, offs=10)-*/-ATSINSlab(__atstmplab15):-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 491(line=21, offs=54) -- 492(line=21, offs=55)-*/-ATSifnthen(ATSCKpat_int(arg1, ATSPMVint(1))) { ATSINSgoto(__atstmplab17) ; } ;-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 744(line=31, offs=10) -- 744(line=31, offs=10)-*/-ATSINSlab(__atstmplab16):-/*-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)-*/-/*-ibranch-mbody:-*/-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 748(line=31, offs=14) -- 749(line=31, offs=15)-*/-ATSINSmove(tmpret6, arg0) ;-ATSbranch_end()--ATSbranch_beg()-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 759(line=32, offs=10) -- 759(line=32, offs=10)-*/-ATSINSlab(__atstmplab17):-/*-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)-*/-/*-ibranch-mbody:-*/-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 764(line=32, offs=15) -- 780(line=32, offs=31)-*/-ATSINSmove(tmp13, numerator_loop_5(arg0, arg1)) ;--/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 784(line=32, offs=35) -- 790(line=32, offs=41)-*/-ATSINSmove(tmp14, fact_0(arg1)) ;--/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 764(line=32, offs=15) -- 790(line=32, offs=41)-*/-ATSINSmove(tmpret6, atspre_g0int_div_int(tmp13, tmp14)) ;--ATSbranch_end()--/*-** ibranchlst-end-*/-ATScaseof_end()--/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 513(line=22, offs=3) -- 797(line=33, offs=6)-*/-/*-INSletpop()-*/-ATSfunbody_end()-ATSreturn(tmpret6) ;-} /* end of [choose_4] */--/*-/home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 525(line=23, offs=9) -- 699(line=27, offs=52)-*/-/*-local: numerator_loop_5$0(level=1)-global: numerator_loop_5$0(level=1)-local: n$4734(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))-global: n$4734(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))-*/-ATSstatic()-atstkind_t0ype(atstype_int)-numerator_loop_5(atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) arg0)-{-/* tmpvardeclst(beg) */-ATStmpdec(tmpret7, atstkind_t0ype(atstype_int)) ;-ATStmpdec(tmp8, atstkind_t0ype(atstype_int)) ;-ATStmpdec(tmp9, atstkind_t0ype(atstype_int)) ;-ATStmpdec(tmp10, atstkind_t0ype(atstype_int)) ;-ATStmpdec(tmp11, atstkind_t0ype(atstype_int)) ;-ATStmpdec(tmp12, atstkind_t0ype(atstype_int)) ;-/* tmpvardeclst(end) */-ATSfunbody_beg()-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 525(line=23, offs=9) -- 699(line=27, offs=52)-*/-ATSINSflab(__patsflab_numerator_loop_5):-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 593(line=24, offs=7) -- 699(line=27, offs=52)-*/-ATScaseof_beg()-/*-** ibranchlst-beg-*/-ATSbranch_beg()-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 614(line=25, offs=11) -- 615(line=25, offs=12)-*/-ATSINSlab(__atstmplab8):-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 567(line=23, offs=51) -- 568(line=23, offs=52)-*/-ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab10) ; } ;-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 615(line=25, offs=12) -- 615(line=25, offs=12)-*/-ATSINSlab(__atstmplab9):-/*-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)-*/-/*-ibranch-mbody:-*/-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 619(line=25, offs=16) -- 620(line=25, offs=17)-*/-ATSINSmove(tmpret7, env0) ;-ATSbranch_end()--ATSbranch_beg()-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 631(line=26, offs=11) -- 632(line=26, offs=12)-*/-ATSINSlab(__atstmplab10):-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 567(line=23, offs=51) -- 568(line=23, offs=52)-*/-ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(2))) { ATSINSgoto(__atstmplab12) ; } ;-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 632(line=26, offs=12) -- 632(line=26, offs=12)-*/-ATSINSlab(__atstmplab11):-/*-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)-*/-/*-ibranch-mbody:-*/-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 637(line=26, offs=17) -- 642(line=26, offs=22)-*/-ATSINSmove(tmp8, atspre_g1int_sub_int(env0, ATSPMVi0nt(1))) ;--/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 636(line=26, offs=16) -- 647(line=26, offs=27)-*/-ATSINSmove(tmpret7, atspre_g1int_mul_int(tmp8, env0)) ;--ATSbranch_end()--ATSbranch_beg()-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 659(line=27, offs=12) -- 659(line=27, offs=12)-*/-ATSINSlab(__atstmplab12):-/*-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)-*/-/*-ibranch-mbody:-*/-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 665(line=27, offs=18) -- 670(line=27, offs=23)-*/-ATSINSmove(tmp10, atspre_g1int_add_int(env0, ATSPMVi0nt(1))) ;--/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 665(line=27, offs=18) -- 674(line=27, offs=27)-*/-ATSINSmove(tmp9, atspre_g1int_sub_int(tmp10, arg0)) ;--/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 693(line=27, offs=46) -- 698(line=27, offs=51)-*/-ATSINSmove(tmp12, atspre_g1int_sub_int(arg0, ATSPMVi0nt(1))) ;--/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 678(line=27, offs=31) -- 699(line=27, offs=52)-*/-ATSINSmove(tmp11, numerator_loop_5(env0, tmp12)) ;--/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 664(line=27, offs=17) -- 699(line=27, offs=52)-*/-ATSINSmove(tmpret7, atspre_g0int_mul_int(tmp9, tmp11)) ;--ATSbranch_end()--/*-** ibranchlst-end-*/-ATScaseof_end()--ATSfunbody_end()-ATSreturn(tmpret7) ;-} /* end of [numerator_loop_5] */--/*-/home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 843(line=36, offs=5) -- 1341(line=55, offs=10)-*/-/*-local: -global: is_prime_9$0(level=0)-local: -global: -*/-ATSstatic()-atstkind_t0ype(atstype_bool)-is_prime_9(atstkind_t0ype(atstype_int) arg0)-{-/* tmpvardeclst(beg) */-ATStmpdec(tmpret15, atstkind_t0ype(atstype_bool)) ;-ATStmpdec(tmpref16, atstkind_t0ype(atstype_int)) ;-ATStmpdec(tmp17, atstkind_t0ype(atstype_float)) ;-ATStmpdec(tmp18, atstkind_t0ype(atstype_float)) ;-/* tmpvardeclst(end) */-ATSfunbody_beg()-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 843(line=36, offs=5) -- 1341(line=55, offs=10)-*/-ATSINSflab(__patsflab_is_prime_9):-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 877(line=37, offs=3) -- 1341(line=55, offs=10)-*/-ATScaseof_beg()-/*-** ibranchlst-beg-*/-ATSbranch_beg()-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 894(line=38, offs=7) -- 895(line=38, offs=8)-*/-ATSINSlab(__atstmplab18):-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 852(line=36, offs=14) -- 853(line=36, offs=15)-*/-ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab20) ; } ;-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 895(line=38, offs=8) -- 895(line=38, offs=8)-*/-ATSINSlab(__atstmplab19):-/*-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)-*/-/*-ibranch-mbody:-*/-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 899(line=38, offs=12) -- 904(line=38, offs=17)-*/-ATSINSmove(tmpret15, ATSPMVbool_false()) ;-ATSbranch_end()--ATSbranch_beg()-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 912(line=39, offs=8) -- 912(line=39, offs=8)-*/-ATSINSlab(__atstmplab20):-/*-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)-*/-/*-ibranch-mbody:-*/-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 937(line=41, offs=9) -- 1331(line=54, offs=12)-*/-/*-letpush(beg)-*/-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 955(line=42, offs=15) -- 960(line=42, offs=20)-*/-/*-ATSINStmpdec(tmpref16) ;-*/-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 991(line=42, offs=51) -- 1014(line=42, offs=74)-*/-ATSINSmove(tmp18, atspre_g0int2float_int_float(arg0)) ;--/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 980(line=42, offs=40) -- 1016(line=42, offs=76)-*/-ATSINSmove(tmp17, atslib_libats_libc_sqrt_float(tmp18)) ;--/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 968(line=42, offs=28) -- 1017(line=42, offs=77)-*/-ATSINSmove(tmpref16, atspre_g0float2int_float_int(tmp17)) ;--/*-letpush(end)-*/--/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 1305(line=53, offs=11) -- 1319(line=53, offs=25)-*/-ATSINSmove(tmpret15, loop_11(arg0, ATSPMVi0nt(2), tmpref16)) ;--/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 937(line=41, offs=9) -- 1331(line=54, offs=12)-*/-/*-INSletpop()-*/-ATSbranch_end()--/*-** ibranchlst-end-*/-ATScaseof_end()--ATSfunbody_end()-ATSreturn(tmpret15) ;-} /* end of [is_prime_9] */--/*-/home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 1043(line=44, offs=15) -- 1283(line=51, offs=19)-*/-/*-local: loop_11$0(level=1)-global: loop_11$0(level=1)-local: k$4742(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))-global: k$4742(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))-*/-ATSstatic()-atstkind_t0ype(atstype_bool)-loop_11(atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)-{-/* tmpvardeclst(beg) */-ATStmpdec(apy0, atstkind_t0ype(atstype_int)) ;-ATStmpdec(apy1, atstkind_t0ype(atstype_int)) ;-ATStmpdec(tmpret19, atstkind_t0ype(atstype_bool)) ;-ATStmpdec(tmp20, atstkind_t0ype(atstype_bool)) ;-ATStmpdec(tmp25, atstkind_t0ype(atstype_bool)) ;-ATStmpdec(tmp30, atstkind_t0ype(atstype_int)) ;-ATStmpdec(tmp31, atstkind_t0ype(atstype_int)) ;-/* tmpvardeclst(end) */-ATSfunbody_beg()-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 1043(line=44, offs=15) -- 1283(line=51, offs=19)-*/-ATSINSflab(__patsflab_loop_11):-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 1114(line=45, offs=16) -- 1124(line=45, offs=26)-*/-ATSINSmove(tmp20, ATSLIB_056_prelude__lte_g0int_int__12__1(arg0, arg1)) ;--/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 1111(line=45, offs=13) -- 1283(line=51, offs=19)-*/-ATSif(-tmp20-) ATSthen() {-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 1147(line=46, offs=18) -- 1154(line=46, offs=25)-*/-ATSINSmove(tmp30, atspre_g0int_mod_int(env0, arg0)) ;--/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 1147(line=46, offs=18) -- 1158(line=46, offs=29)-*/-ATSINSmove(tmp25, ATSLIB_056_prelude__eq_g0int_int__16__1(tmp30, ATSPMVi0nt(0))) ;--/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 1144(line=46, offs=15) -- 1247(line=49, offs=43)-*/-ATSif(-tmp25-) ATSthen() {-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 1180(line=47, offs=17) -- 1185(line=47, offs=22)-*/-ATSINSmove(tmpret19, ATSPMVbool_false()) ;-} ATSelse() {-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 1221(line=49, offs=17) -- 1247(line=49, offs=43)-*/-ATSif(-ATSPMVbool_true()-) ATSthen() {-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 1221(line=49, offs=17) -- 1247(line=49, offs=43)-*/-ATSINSmove(tmp31, atspre_g1int_add_int(arg0, ATSPMVi0nt(1))) ;--/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 1221(line=49, offs=17) -- 1247(line=49, offs=43)-*/-ATStailcal_beg()-ATSINSmove_tlcal(apy0, tmp31) ;-ATSINSmove_tlcal(apy1, arg1) ;-ATSINSargmove_tlcal(arg0, apy0) ;-ATSINSargmove_tlcal(arg1, apy1) ;-ATSINSfgoto(__patsflab_loop_11) ;-ATStailcal_end()--} ATSelse() {-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 1221(line=49, offs=17) -- 1247(line=49, offs=43)-*/-ATSINSmove(tmpret19, ATSPMVbool_false()) ;-} /* ATSendif */-} /* ATSendif */-} ATSelse() {-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 1279(line=51, offs=15) -- 1283(line=51, offs=19)-*/-ATSINSmove(tmpret19, ATSPMVbool_true()) ;-} /* ATSendif */-ATSfunbody_end()-ATSreturn(tmpret19) ;-} /* end of [loop_11] */--#if(0)-/*-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12019(line=621, offs=3) -- 12059(line=621, offs=43)-*/-/*-local: -global: lte_g0int_int$12$0(level=0)-local: -global: -*/-ATSextern()-/*-imparg = tk(4691)-tmparg = S2Evar(tk(4691))-tmpsub = None()-*/-atstkind_t0ype(atstype_bool)-ATSLIB_056_prelude__lte_g0int_int__12(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)-{-/* tmpvardeclst(beg) */-ATStmpdec(tmpret21, atstkind_t0ype(atstype_bool)) ;-ATStmpdec(tmp22, atstkind_t0ype(atstyvar_type(tk))) ;-/* tmpvardeclst(end) */-ATSfunbody_beg()-/*-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12003(line=620, offs=1) -- 12059(line=621, offs=43)-*/-ATSINSflab(__patsflab_lte_g0int_int):-/*-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12046(line=621, offs=30) -- 12057(line=621, offs=41)-*/-ATSINSmove(tmp22, PMVtmpltcst(g0int2int<S2Eextkind(atstype_int), S2Evar(tk(4691))>)(arg1)) ;--/*-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12028(line=621, offs=12) -- 12059(line=621, offs=43)-*/-ATSINSmove(tmpret21, PMVtmpltcst(g0int_lte<S2Evar(tk(4691))>)(arg0, tmp22)) ;--ATSfunbody_end()-ATSreturn(tmpret21) ;-} /* end of [ATSLIB_056_prelude__lte_g0int_int__12] */-#endif // end of [TEMPLATE]--/*-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12019(line=621, offs=3) -- 12059(line=621, offs=43)-*/-/*-local: -global: lte_g0int_int$12$1(level=2)-local: -global: -*/-ATSstatic()-/*-imparg = tk(4691)-tmparg = S2Evar(tk(4691))-tmpsub = Some(tk(4691) -> S2Eextkind(atstype_int))-*/-atstkind_t0ype(atstype_bool)-ATSLIB_056_prelude__lte_g0int_int__12__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)-{-/* tmpvardeclst(beg) */-ATStmpdec(tmpret21__1, atstkind_t0ype(atstype_bool)) ;-ATStmpdec(tmp22__1, atstkind_t0ype(atstype_int)) ;-/* tmpvardeclst(end) */-ATSfunbody_beg()-/*-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12003(line=620, offs=1) -- 12059(line=621, offs=43)-*/-ATSINSflab(__patsflab_lte_g0int_int):-/*-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12046(line=621, offs=30) -- 12057(line=621, offs=41)-*/-ATSINSmove(tmp22__1, atspre_g0int2int_int_int(arg1)) ;--/*-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12028(line=621, offs=12) -- 12059(line=621, offs=43)-*/-ATSINSmove(tmpret21__1, atspre_g0int_lte_int(arg0, tmp22__1)) ;--ATSfunbody_end()-ATSreturn(tmpret21__1) ;-} /* end of [ATSLIB_056_prelude__lte_g0int_int__12__1] */--#if(0)-/*-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)-*/-/*-local: -global: eq_g0int_int$16$0(level=0)-local: -global: -*/-ATSextern()-/*-imparg = tk(4694)-tmparg = S2Evar(tk(4694))-tmpsub = None()-*/-atstkind_t0ype(atstype_bool)-ATSLIB_056_prelude__eq_g0int_int__16(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)-{-/* tmpvardeclst(beg) */-ATStmpdec(tmpret26, atstkind_t0ype(atstype_bool)) ;-ATStmpdec(tmp27, atstkind_t0ype(atstyvar_type(tk))) ;-/* tmpvardeclst(end) */-ATSfunbody_beg()-/*-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12244(line=634, offs=1) -- 12298(line=635, offs=42)-*/-ATSINSflab(__patsflab_eq_g0int_int):-/*-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)-*/-ATSINSmove(tmp27, PMVtmpltcst(g0int2int<S2Eextkind(atstype_int), S2Evar(tk(4694))>)(arg1)) ;--/*-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)-*/-ATSINSmove(tmpret26, PMVtmpltcst(g0int_eq<S2Evar(tk(4694))>)(arg0, tmp27)) ;--ATSfunbody_end()-ATSreturn(tmpret26) ;-} /* end of [ATSLIB_056_prelude__eq_g0int_int__16] */-#endif // end of [TEMPLATE]--/*-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)-*/-/*-local: -global: eq_g0int_int$16$1(level=2)-local: -global: -*/-ATSstatic()-/*-imparg = tk(4694)-tmparg = S2Evar(tk(4694))-tmpsub = Some(tk(4694) -> S2Eextkind(atstype_int))-*/-atstkind_t0ype(atstype_bool)-ATSLIB_056_prelude__eq_g0int_int__16__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)-{-/* tmpvardeclst(beg) */-ATStmpdec(tmpret26__1, atstkind_t0ype(atstype_bool)) ;-ATStmpdec(tmp27__1, atstkind_t0ype(atstype_int)) ;-/* tmpvardeclst(end) */-ATSfunbody_beg()-/*-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12244(line=634, offs=1) -- 12298(line=635, offs=42)-*/-ATSINSflab(__patsflab_eq_g0int_int):-/*-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)-*/-ATSINSmove(tmp27__1, atspre_g0int2int_int_int(arg1)) ;--/*-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)-*/-ATSINSmove(tmpret26__1, atspre_g0int_eq_int(arg0, tmp27__1)) ;--ATSfunbody_end()-ATSreturn(tmpret26__1) ;-} /* end of [ATSLIB_056_prelude__eq_g0int_int__16__1] */--/*-/home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 1656(line=73, offs=22) -- 1679(line=74, offs=15)-*/-/*-local: choose_4$0(level=0)-global: fact_0$0(level=0), choose_4$0(level=0), choose_ats$20$0(level=0)-local: -global: -*/-ATSextern()-atstkind_t0ype(atstype_int)-choose_ats(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)-{-/* tmpvardeclst(beg) */-ATStmpdec(tmpret32, atstkind_t0ype(atstype_int)) ;-/* tmpvardeclst(end) */-ATSfunbody_beg()-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 1645(line=73, offs=11) -- 1679(line=74, offs=15)-*/-ATSINSflab(__patsflab_choose_ats):-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 1667(line=74, offs=3) -- 1679(line=74, offs=15)-*/-ATSINSmove(tmpret32, choose_4(arg0, arg1)) ;--ATSfunbody_end()-ATSreturn(tmpret32) ;-} /* end of [choose_ats] */--/*-/home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 1708(line=76, offs=28) -- 1723(line=77, offs=10)-*/-/*-local: dfact_3$0(level=0)-global: dfact_3$0(level=0), double_factorial$21$0(level=0)-local: -global: -*/-ATSextern()-atstkind_t0ype(atstype_int)-double_factorial(atstkind_t0ype(atstype_int) arg0)-{-/* tmpvardeclst(beg) */-ATStmpdec(tmpret33, atstkind_t0ype(atstype_int)) ;-/* tmpvardeclst(end) */-ATSfunbody_beg()-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 1691(line=76, offs=11) -- 1724(line=77, offs=11)-*/-ATSINSflab(__patsflab_double_factorial):-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 1716(line=77, offs=3) -- 1723(line=77, offs=10)-*/-ATSINSmove(tmpret33, dfact_3(arg0)) ;--ATSfunbody_end()-ATSreturn(tmpret33) ;-} /* end of [double_factorial] */--/*-/home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 1749(line=79, offs=24) -- 1767(line=80, offs=13)-*/-/*-local: is_prime_9$0(level=0)-global: is_prime_9$0(level=0), is_prime_ats$22$0(level=0)-local: -global: -*/-ATSextern()-atstkind_t0ype(atstype_bool)-is_prime_ats(atstkind_t0ype(atstype_int) arg0)-{-/* tmpvardeclst(beg) */-ATStmpdec(tmpret34, atstkind_t0ype(atstype_bool)) ;-/* tmpvardeclst(end) */-ATSfunbody_beg()-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 1736(line=79, offs=11) -- 1768(line=80, offs=14)-*/-ATSINSflab(__patsflab_is_prime_ats):-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 1757(line=80, offs=3) -- 1767(line=80, offs=13)-*/-ATSINSmove(tmpret34, is_prime_9(arg0)) ;--ATSfunbody_end()-ATSreturn(tmpret34) ;-} /* end of [is_prime_ats] */--/*-/home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 1794(line=82, offs=25) -- 1808(line=83, offs=9)-*/-/*-local: fact_0$0(level=0)-global: fact_0$0(level=0), factorial_ats$23$0(level=0)-local: -global: -*/-ATSextern()-atstkind_t0ype(atstype_int)-factorial_ats(atstkind_t0ype(atstype_int) arg0)-{-/* tmpvardeclst(beg) */-ATStmpdec(tmpret35, atstkind_t0ype(atstype_int)) ;-/* tmpvardeclst(end) */-ATSfunbody_beg()-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 1780(line=82, offs=11) -- 1809(line=83, offs=10)-*/-ATSINSflab(__patsflab_factorial_ats):-/*-emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/fast-combinatorics.dats: 1802(line=83, offs=3) -- 1808(line=83, offs=9)-*/-ATSINSmove(tmpret35, fact_0(arg0)) ;--ATSfunbody_end()-ATSreturn(tmpret35) ;-} /* end of [factorial_ats] */--/*-** for initialization(dynloading)-*/-ATSdynloadflag_minit(_057_home_057_vanessa_057_programming_057_haskell_057_current_057_fast_055_combinatorics_057_ats_055_src_057_fast_055_combinatorics_056_dats__dynloadflag) ;-ATSextern()-atsvoid_t0ype-_057_home_057_vanessa_057_programming_057_haskell_057_current_057_fast_055_combinatorics_057_ats_055_src_057_fast_055_combinatorics_056_dats__dynload()-{-ATSfunbody_beg()-ATSdynload(/*void*/)-ATSdynloadflag_sta(-_057_home_057_vanessa_057_programming_057_haskell_057_current_057_fast_055_combinatorics_057_ats_055_src_057_fast_055_combinatorics_056_dats__dynloadflag-) ;-ATSif(-ATSCKiseqz(-_057_home_057_vanessa_057_programming_057_haskell_057_current_057_fast_055_combinatorics_057_ats_055_src_057_fast_055_combinatorics_056_dats__dynloadflag-)-) ATSthen() {-ATSdynloadset(_057_home_057_vanessa_057_programming_057_haskell_057_current_057_fast_055_combinatorics_057_ats_055_src_057_fast_055_combinatorics_056_dats__dynloadflag) ;-/*-dynexnlst-initize(beg)-*/-/*-dynexnlst-initize(end)-*/-} /* ATSendif */-ATSfunbody_end()-ATSreturn_void(tmpret_void) ;-} /* end of [*_dynload] */--/* ****** ****** */--/* end-of-compilation-unit */
+ cbits/numerics-ffi.c view
@@ -0,0 +1,1546 @@+/*+**+** The C code is generated by [ATS/Postiats-0-3-8]+** The starting compilation time is: 2017-12-30: 23h:56m+**+*/++/*+** include runtime header files+*/+#ifndef _ATS_CCOMP_HEADER_NONE_+#include "pats_ccomp_config.h"+#include "pats_ccomp_basics.h"+#include "pats_ccomp_typedefs.h"+#include "pats_ccomp_instrset.h"+#include "pats_ccomp_memalloc.h"+#ifndef _ATS_CCOMP_EXCEPTION_NONE_+#include "pats_ccomp_memalloca.h"+#include "pats_ccomp_exception.h"+#endif // end of [_ATS_CCOMP_EXCEPTION_NONE_]+#endif /* _ATS_CCOMP_HEADER_NONE_ */+++/*+** include prelude cats files+*/+#ifndef _ATS_CCOMP_PRELUDE_NONE_+//+#include "prelude/CATS/basics.cats"+#include "prelude/CATS/integer.cats"+#include "prelude/CATS/pointer.cats"+#include "prelude/CATS/integer_long.cats"+#include "prelude/CATS/integer_size.cats"+#include "prelude/CATS/integer_short.cats"+#include "prelude/CATS/bool.cats"+#include "prelude/CATS/char.cats"+#include "prelude/CATS/float.cats"+#include "prelude/CATS/integer_ptr.cats"+#include "prelude/CATS/integer_fixed.cats"+#include "prelude/CATS/memory.cats"+#include "prelude/CATS/string.cats"+#include "prelude/CATS/strptr.cats"+//+#include "prelude/CATS/fprintf.cats"+//+#include "prelude/CATS/filebas.cats"+//+#include "prelude/CATS/list.cats"+#include "prelude/CATS/option.cats"+#include "prelude/CATS/array.cats"+#include "prelude/CATS/arrayptr.cats"+#include "prelude/CATS/arrayref.cats"+#include "prelude/CATS/matrix.cats"+#include "prelude/CATS/matrixptr.cats"+//+#endif /* _ATS_CCOMP_PRELUDE_NONE_ */+/*+** for user-supplied prelude+*/+#ifdef _ATS_CCOMP_PRELUDE_USER_+//+#include _ATS_CCOMP_PRELUDE_USER_+//+#endif /* _ATS_CCOMP_PRELUDE_USER_ */+/*+** for user2-supplied prelude+*/+#ifdef _ATS_CCOMP_PRELUDE_USER2_+//+#include _ATS_CCOMP_PRELUDE_USER2_+//+#endif /* _ATS_CCOMP_PRELUDE_USER2_ */++/*+staload-prologues(beg)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/basics.dats: 1636(line=50, offs=1) -- 1675(line=50, offs=40)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 1596(line=49, offs=1) -- 1635(line=49, offs=40)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/pointer.dats: 1533(line=44, offs=1) -- 1572(line=44, offs=40)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer_long.dats: 1602(line=49, offs=1) -- 1641(line=49, offs=40)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer_size.dats: 1597(line=49, offs=1) -- 1636(line=49, offs=40)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer_short.dats: 1603(line=49, offs=1) -- 1642(line=49, offs=40)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/char.dats: 1610(line=48, offs=1) -- 1649(line=48, offs=40)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/float.dats: 1636(line=50, offs=1) -- 1675(line=50, offs=40)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/string.dats: 1631(line=50, offs=1) -- 1670(line=50, offs=40)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/strptr.dats: 1629(line=50, offs=1) -- 1668(line=50, offs=40)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/strptr.dats: 1691(line=54, offs=1) -- 1738(line=54, offs=48)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 1596(line=49, offs=1) -- 1635(line=49, offs=40)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer_ptr.dats: 1601(line=49, offs=1) -- 1640(line=49, offs=40)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer_fixed.dats: 1603(line=49, offs=1) -- 1642(line=49, offs=40)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/memory.dats: 1410(line=38, offs=1) -- 1449(line=39, offs=32)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/filebas.dats: 1613(line=49, offs=1) -- 1652(line=50, offs=32)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/filebas.dats: 1675(line=54, offs=1) -- 1721(line=55, offs=39)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 1596(line=49, offs=1) -- 1635(line=49, offs=40)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/filebas.dats: 1744(line=59, offs=1) -- 1789(line=60, offs=38)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/stdio.sats: 1390(line=36, offs=1) -- 1437(line=39, offs=3)+*/++#include \+"libats/libc/CATS/stdio.cats"+/*+/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/stdio.sats: 1950(line=69, offs=1) -- 1999(line=71, offs=34)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/sys/types.sats: 1390(line=36, offs=1) -- 1441(line=39, offs=3)+*/++#include \+"libats/libc/CATS/sys/types.cats"+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/filebas.dats: 1871(line=66, offs=1) -- 1918(line=66, offs=48)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/sys/stat.sats: 1390(line=36, offs=1) -- 1440(line=39, offs=3)+*/++#include \+"libats/libc/CATS/sys/stat.cats"+/*+/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/sys/stat.sats: 1756(line=58, offs=1) -- 1805(line=60, offs=34)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/sys/types.sats: 1390(line=36, offs=1) -- 1441(line=39, offs=3)+*/++#include \+"libats/libc/CATS/sys/types.cats"+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/filebas.dats: 15552(line=879, offs=1) -- 15589(line=880, offs=30)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/stdio.sats: 1390(line=36, offs=1) -- 1437(line=39, offs=3)+*/++#include \+"libats/libc/CATS/stdio.cats"+/*+/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/stdio.sats: 1950(line=69, offs=1) -- 1999(line=71, offs=34)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/sys/types.sats: 1390(line=36, offs=1) -- 1441(line=39, offs=3)+*/++#include \+"libats/libc/CATS/sys/types.cats"+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/list.dats: 1529(line=44, offs=1) -- 1568(line=45, offs=32)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/list.dats: 1569(line=46, offs=1) -- 1615(line=47, offs=39)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/unsafe.dats: 1532(line=44, offs=1) -- 1566(line=44, offs=35)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/list_vt.dats: 1538(line=44, offs=1) -- 1577(line=45, offs=32)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/list_vt.dats: 1578(line=46, offs=1) -- 1624(line=47, offs=39)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/unsafe.dats: 1532(line=44, offs=1) -- 1566(line=44, offs=35)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/SHARE/list_vt_mergesort.dats: 1546(line=44, offs=1) -- 1585(line=44, offs=40)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/SHARE/list_vt_quicksort.dats: 1546(line=44, offs=1) -- 1585(line=44, offs=40)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/array.dats: 1534(line=44, offs=1) -- 1573(line=44, offs=40)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/array.dats: 1574(line=45, offs=1) -- 1616(line=45, offs=43)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/SHARE/array_bsearch.dats: 1531(line=44, offs=1) -- 1570(line=44, offs=40)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/SHARE/array_quicksort.dats: 1531(line=44, offs=1) -- 1570(line=44, offs=40)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/arrayptr.dats: 1532(line=44, offs=1) -- 1571(line=44, offs=40)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/arrayref.dats: 1532(line=44, offs=1) -- 1571(line=44, offs=40)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/matrix.dats: 1535(line=44, offs=1) -- 1574(line=44, offs=40)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/matrixptr.dats: 1538(line=44, offs=1) -- 1577(line=44, offs=40)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/matrixref.dats: 1538(line=44, offs=1) -- 1577(line=44, offs=40)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/stream.dats: 1523(line=44, offs=1) -- 1562(line=44, offs=40)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/stream_vt.dats: 1523(line=44, offs=1) -- 1562(line=44, offs=40)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/tostring.dats: 1528(line=44, offs=1) -- 1567(line=45, offs=32)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/unsafe.dats: 1532(line=44, offs=1) -- 1566(line=44, offs=35)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/checkast.dats: 1531(line=44, offs=1) -- 1570(line=45, offs=32)+*/+/*+/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/math.sats: 1380(line=35, offs=1) -- 1426(line=38, offs=3)+*/++#include \+"libats/libc/CATS/math.cats"+/*+staload-prologues(end)+*/+/*+typedefs-for-tyrecs-and-tysums(beg)+*/+/*+typedefs-for-tyrecs-and-tysums(end)+*/+/*+dynconlst-declaration(beg)+*/+/*+dynconlst-declaration(end)+*/+/*+dyncstlst-declaration(beg)+*/+ATSdyncst_mac(atspre_g1int2int_int_int)+ATSdyncst_mac(atspre_g1int_gt_int)+ATSdyncst_mac(atspre_g1int_half_int)+ATSdyncst_mac(atspre_g0int_mod_int)+ATSdyncst_mac(atspre_g0int2int_int_int)+ATSdyncst_mac(atspre_g0int_eq_int)+ATSdyncst_mac(atspre_g0int_mul_int)+ATSdyncst_mac(atspre_g0float2int_float_int)+ATSdyncst_mac(atslib_libats_libc_sqrt_float)+ATSdyncst_mac(atspre_g0int2float_int_float)+ATSdyncst_mac(atspre_g1int_add_int)+ATSdyncst_mac(atspre_g0int_sub_int)+ATSdyncst_mac(atspre_g1int_lt_int)+ATSdyncst_mac(atspre_g1int_eq_int)+/*+dyncstlst-declaration(end)+*/+/*+dynvalist-implementation(beg)+*/+/*+dynvalist-implementation(end)+*/+/*+exnconlst-declaration(beg)+*/+#ifndef _ATS_CCOMP_EXCEPTION_NONE_+ATSextern()+atsvoid_t0ype+the_atsexncon_initize+(+  atstype_exnconptr d2c, atstype_string exnmsg+) ;+#endif // end of [_ATS_CCOMP_EXCEPTION_NONE_]+/*+exnconlst-declaration(end)+*/+/*+extypelst-declaration(beg)+*/+/*+extypelst-declaration(end)+*/+/*+assumelst-declaration(beg)+*/+#ifndef _ATS_CCOMP_ASSUME_CHECK_NONE_+#endif // #ifndef(_ATS_CCOMP_ASSUME_CHECK_NONE_)+/*+assumelst-declaration(end)+*/+ATSstatic()+atstkind_t0ype(atstype_int)+exp_0(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;++#if(0)+#if(0)+ATSextern()+atstkind_t0ype(atstype_bool)+ATSLIB_056_prelude__gt_g1int_int__1(atstkind_t0ype(atstyvar_type(tk)), atstkind_t0ype(atstype_int)) ;+#endif // end of [QUALIFIED]+#endif // end of [TEMPLATE]++ATSstatic()+atstkind_t0ype(atstype_bool)+ATSLIB_056_prelude__gt_g1int_int__1__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;++#if(0)+#if(0)+ATSextern()+atstkind_t0ype(atstype_bool)+ATSLIB_056_prelude__eq_g0int_int__7(atstkind_t0ype(atstyvar_type(tk)), atstkind_t0ype(atstype_int)) ;+#endif // end of [QUALIFIED]+#endif // end of [TEMPLATE]++ATSstatic()+atstkind_t0ype(atstype_bool)+ATSLIB_056_prelude__eq_g0int_int__7__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;++ATSstatic()+atstkind_t0ype(atstype_int)+sqrt_bad_12(atstkind_t0ype(atstype_int)) ;++ATSstatic()+atstkind_t0ype(atstype_int)+__patsfun_14(atstkind_t0ype(atstype_int)) ;++ATSstatic()+atstkind_t0ype(atstype_bool)+is_prime_17(atstkind_t0ype(atstype_int)) ;++ATSstatic()+atstkind_t0ype(atstype_bool)+loop_18(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;++#if(0)+#if(0)+ATSextern()+atstkind_t0ype(atstype_bool)+ATSLIB_056_prelude__lt_g1int_int__19(atstkind_t0ype(atstyvar_type(tk)), atstkind_t0ype(atstype_int)) ;+#endif // end of [QUALIFIED]+#endif // end of [TEMPLATE]++ATSstatic()+atstkind_t0ype(atstype_bool)+ATSLIB_056_prelude__lt_g1int_int__19__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;++ATSstatic()+atstkind_t0ype(atstype_bool)+ATSLIB_056_prelude__eq_g0int_int__7__2(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;++#if(0)+#if(0)+ATSextern()+atstkind_t0ype(atstype_bool)+ATSLIB_056_prelude__eq_g1int_int__23(atstkind_t0ype(atstyvar_type(tk)), atstkind_t0ype(atstype_int)) ;+#endif // end of [QUALIFIED]+#endif // end of [TEMPLATE]++ATSstatic()+atstkind_t0ype(atstype_bool)+ATSLIB_056_prelude__eq_g1int_int__23__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;++ATSstatic()+atstkind_t0ype(atstype_bool)+ATSLIB_056_prelude__eq_g0int_int__7__3(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;++#if(0)+ATSextern()+atstkind_t0ype(atstype_bool)+is_prime_ats(atstkind_t0ype(atstype_int)) ;+#endif // end of [QUALIFIED]++#if(0)+ATSextern()+atstkind_t0ype(atstype_int)+exp_ats(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;+#endif // end of [QUALIFIED]++ATSclosurerize_beg(__patsfun_14, (), (atstkind_t0ype(atstype_int)), atstkind_t0ype(atstype_int))+typedef+ATSstruct {+atstype_funptr cfun ;+} __patsfun_14__closure_t0ype ;+ATSstatic()+atstkind_t0ype(atstype_int)+__patsfun_14__cfun+(+__patsfun_14__closure_t0ype *p_cenv, atstkind_t0ype(atstype_int) arg0+)+{+ATSFCreturn(__patsfun_14(arg0)) ;+} /* end of [cfun] */+ATSstatic()+atstype_cloptr+__patsfun_14__closureinit+(+__patsfun_14__closure_t0ype *p_cenv+)+{+p_cenv->cfun = __patsfun_14__cfun ;+return p_cenv ;+} /* end of [closureinit] */+ATSclosurerize_end()+/*+/home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 108(line=7, offs=5) -- 467(line=24, offs=10)+*/+/*+local: exp_0$0(level=0)+global: exp_0$0(level=0)+local: +global: +*/+ATSstatic()+atstkind_t0ype(atstype_int)+exp_0(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)+{+/* tmpvardeclst(beg) */+ATStmpdec(apy0, atstkind_t0ype(atstype_int)) ;+ATStmpdec(apy1, atstkind_t0ype(atstype_int)) ;+ATStmpdec(tmpret0, atstkind_t0ype(atstype_int)) ;+ATStmpdec(tmp1, atstkind_t0ype(atstype_bool)) ;+ATStmpdec(tmp6, atstkind_t0ype(atstype_int)) ;+ATStmpdec(tmp7, atstkind_t0ype(atstype_int)) ;+ATStmpdec(tmp8, atstkind_t0ype(atstype_bool)) ;+ATStmpdec(tmp13, atstkind_t0ype(atstype_int)) ;+ATStmpdec(tmp14, atstkind_t0ype(atstype_int)) ;+ATStmpdec(tmp15, atstkind_t0ype(atstype_int)) ;+/* tmpvardeclst(end) */+ATSfunbody_beg()+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 108(line=7, offs=5) -- 467(line=24, offs=10)+*/+ATSINSflab(__patsflab_exp_0):+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 160(line=8, offs=3) -- 467(line=24, offs=10)+*/+ATScaseof_beg()+/*+** ibranchlst-beg+*/+ATSbranch_beg()+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 177(line=9, offs=7) -- 178(line=9, offs=8)+*/+ATSINSlab(__atstmplab0):+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 129(line=7, offs=26) -- 130(line=7, offs=27)+*/+ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(0))) { ATSINSgoto(__atstmplab2) ; } ;+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 178(line=9, offs=8) -- 178(line=9, offs=8)+*/+ATSINSlab(__atstmplab1):+/*+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)+*/+/*+ibranch-mbody:+*/+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 182(line=9, offs=12) -- 183(line=9, offs=13)+*/+ATSINSmove(tmpret0, ATSPMVi0nt(0)) ;+ATSbranch_end()++ATSbranch_beg()+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 191(line=10, offs=8) -- 191(line=10, offs=8)+*/+ATSINSlab(__atstmplab2):+/*+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)+*/+/*+ibranch-mbody:+*/+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 219(line=12, offs=12) -- 224(line=12, offs=17)+*/+ATSINSmove(tmp1, ATSLIB_056_prelude__gt_g1int_int__1__1(arg1, ATSPMVi0nt(0))) ;++/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 216(line=12, offs=9) -- 457(line=23, offs=12)+*/+ATSif(+tmp1+) ATSthen() {+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 240(line=13, offs=11) -- 432(line=21, offs=14)+*/+/*+letpush(beg)+*/+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 265(line=14, offs=22) -- 271(line=14, offs=28)+*/+ATSINSmove(tmp6, atspre_g1int_half_int(arg1)) ;++/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 294(line=15, offs=22) -- 299(line=15, offs=27)+*/+ATSINSmove(tmp7, atspre_g0int_mod_int(arg1, ATSPMVi0nt(2))) ;++/*+letpush(end)+*/++/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 328(line=17, offs=16) -- 334(line=17, offs=22)+*/+ATSINSmove(tmp8, ATSLIB_056_prelude__eq_g0int_int__7__1(tmp7, ATSPMVi0nt(0))) ;++/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 325(line=17, offs=13) -- 418(line=20, offs=33)+*/+ATSif(+tmp8+) ATSthen() {+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 358(line=18, offs=19) -- 363(line=18, offs=24)+*/+ATSINSmove(tmp13, atspre_g0int_mul_int(arg0, arg0)) ;++/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 354(line=18, offs=15) -- 368(line=18, offs=29)+*/+ATStailcal_beg()+ATSINSmove_tlcal(apy0, tmp13) ;+ATSINSmove_tlcal(apy1, tmp6) ;+ATSINSargmove_tlcal(arg0, apy0) ;+ATSINSargmove_tlcal(arg1, apy1) ;+ATSINSfgoto(__patsflab_exp_0) ;+ATStailcal_end()++} ATSelse() {+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 408(line=20, offs=23) -- 413(line=20, offs=28)+*/+ATSINSmove(tmp15, atspre_g0int_mul_int(arg0, arg0)) ;++/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 404(line=20, offs=19) -- 418(line=20, offs=33)+*/+ATSINSmove(tmp14, exp_0(tmp15, tmp6)) ;++/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 400(line=20, offs=15) -- 418(line=20, offs=33)+*/+ATSINSmove(tmpret0, atspre_g0int_mul_int(arg0, tmp14)) ;++} /* ATSendif */+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 240(line=13, offs=11) -- 432(line=21, offs=14)+*/+/*+INSletpop()+*/+} ATSelse() {+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 456(line=23, offs=11) -- 457(line=23, offs=12)+*/+ATSINSmove(tmpret0, ATSPMVi0nt(1)) ;+} /* ATSendif */+ATSbranch_end()++/*+** ibranchlst-end+*/+ATScaseof_end()++ATSfunbody_end()+ATSreturn(tmpret0) ;+} /* end of [exp_0] */++#if(0)+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12679(line=659, offs=3) -- 12718(line=659, offs=42)+*/+/*+local: +global: gt_g1int_int$1$0(level=0)+local: +global: +*/+ATSextern()+/*+imparg = tk(4703)+tmparg = S2Evar(tk(4703))+tmpsub = None()+*/+atstkind_t0ype(atstype_bool)+ATSLIB_056_prelude__gt_g1int_int__1(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)+{+/* tmpvardeclst(beg) */+ATStmpdec(tmpret2, atstkind_t0ype(atstype_bool)) ;+ATStmpdec(tmp3, atstkind_t0ype(atstyvar_type(tk))) ;+/* tmpvardeclst(end) */+ATSfunbody_beg()+/*+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12664(line=658, offs=1) -- 12718(line=659, offs=42)+*/+ATSINSflab(__patsflab_gt_g1int_int):+/*+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12705(line=659, offs=29) -- 12716(line=659, offs=40)+*/+ATSINSmove(tmp3, PMVtmpltcst(g1int2int<S2Eextkind(atstype_int), S2Evar(tk(4703))>)(arg1)) ;++/*+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12688(line=659, offs=12) -- 12718(line=659, offs=42)+*/+ATSINSmove(tmpret2, PMVtmpltcst(g1int_gt<S2Evar(tk(4703))>)(arg0, tmp3)) ;++ATSfunbody_end()+ATSreturn(tmpret2) ;+} /* end of [ATSLIB_056_prelude__gt_g1int_int__1] */+#endif // end of [TEMPLATE]++/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12679(line=659, offs=3) -- 12718(line=659, offs=42)+*/+/*+local: +global: gt_g1int_int$1$1(level=1)+local: +global: +*/+ATSstatic()+/*+imparg = tk(4703)+tmparg = S2Evar(tk(4703))+tmpsub = Some(tk(4703) -> S2Eextkind(atstype_int))+*/+atstkind_t0ype(atstype_bool)+ATSLIB_056_prelude__gt_g1int_int__1__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)+{+/* tmpvardeclst(beg) */+ATStmpdec(tmpret2__1, atstkind_t0ype(atstype_bool)) ;+ATStmpdec(tmp3__1, atstkind_t0ype(atstype_int)) ;+/* tmpvardeclst(end) */+ATSfunbody_beg()+/*+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12664(line=658, offs=1) -- 12718(line=659, offs=42)+*/+ATSINSflab(__patsflab_gt_g1int_int):+/*+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12705(line=659, offs=29) -- 12716(line=659, offs=40)+*/+ATSINSmove(tmp3__1, atspre_g1int2int_int_int(arg1)) ;++/*+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12688(line=659, offs=12) -- 12718(line=659, offs=42)+*/+ATSINSmove(tmpret2__1, atspre_g1int_gt_int(arg0, tmp3__1)) ;++ATSfunbody_end()+ATSreturn(tmpret2__1) ;+} /* end of [ATSLIB_056_prelude__gt_g1int_int__1__1] */++#if(0)+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)+*/+/*+local: +global: eq_g0int_int$7$0(level=0)+local: +global: +*/+ATSextern()+/*+imparg = tk(4694)+tmparg = S2Evar(tk(4694))+tmpsub = None()+*/+atstkind_t0ype(atstype_bool)+ATSLIB_056_prelude__eq_g0int_int__7(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)+{+/* tmpvardeclst(beg) */+ATStmpdec(tmpret9, atstkind_t0ype(atstype_bool)) ;+ATStmpdec(tmp10, atstkind_t0ype(atstyvar_type(tk))) ;+/* tmpvardeclst(end) */+ATSfunbody_beg()+/*+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12244(line=634, offs=1) -- 12298(line=635, offs=42)+*/+ATSINSflab(__patsflab_eq_g0int_int):+/*+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)+*/+ATSINSmove(tmp10, PMVtmpltcst(g0int2int<S2Eextkind(atstype_int), S2Evar(tk(4694))>)(arg1)) ;++/*+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)+*/+ATSINSmove(tmpret9, PMVtmpltcst(g0int_eq<S2Evar(tk(4694))>)(arg0, tmp10)) ;++ATSfunbody_end()+ATSreturn(tmpret9) ;+} /* end of [ATSLIB_056_prelude__eq_g0int_int__7] */+#endif // end of [TEMPLATE]++/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)+*/+/*+local: +global: eq_g0int_int$7$1(level=1)+local: +global: +*/+ATSstatic()+/*+imparg = tk(4694)+tmparg = S2Evar(tk(4694))+tmpsub = Some(tk(4694) -> S2Eextkind(atstype_int))+*/+atstkind_t0ype(atstype_bool)+ATSLIB_056_prelude__eq_g0int_int__7__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)+{+/* tmpvardeclst(beg) */+ATStmpdec(tmpret9__1, atstkind_t0ype(atstype_bool)) ;+ATStmpdec(tmp10__1, atstkind_t0ype(atstype_int)) ;+/* tmpvardeclst(end) */+ATSfunbody_beg()+/*+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12244(line=634, offs=1) -- 12298(line=635, offs=42)+*/+ATSINSflab(__patsflab_eq_g0int_int):+/*+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)+*/+ATSINSmove(tmp10__1, atspre_g0int2int_int_int(arg1)) ;++/*+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)+*/+ATSINSmove(tmpret9__1, atspre_g0int_eq_int(arg0, tmp10__1)) ;++ATSfunbody_end()+ATSreturn(tmpret9__1) ;+} /* end of [ATSLIB_056_prelude__eq_g0int_int__7__1] */++/*+/home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 473(line=26, offs=5) -- 778(line=35, offs=6)+*/+/*+local: +global: sqrt_bad_12$0(level=0)+local: +global: +*/+ATSstatic()+atstkind_t0ype(atstype_int)+sqrt_bad_12(atstkind_t0ype(atstype_int) arg0)+{+/* tmpvardeclst(beg) */+ATStmpdec(tmpret16, atstkind_t0ype(atstype_int)) ;+ATStmpdec(tmpref17, atstkind_t0ype(atstype_int)) ;+ATStmpdec(tmp18, atstkind_t0ype(atstype_float)) ;+ATStmpdec(tmp19, atstkind_t0ype(atstype_float)) ;+ATStmpdec(tmpref20, atstyclo_type(__patsfun_14)) ;+ATStmpdec(tmpref24, atstkind_t0ype(atstype_int)) ;+/* tmpvardeclst(end) */+ATSfunbody_beg()+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 473(line=26, offs=5) -- 778(line=35, offs=6)+*/+ATSINSflab(__patsflab_sqrt_bad_12):+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 521(line=27, offs=3) -- 778(line=35, offs=6)+*/+/*+letpush(beg)+*/+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 533(line=28, offs=9) -- 542(line=28, offs=18)+*/+/*+ATSINStmpdec(tmpref17) ;+*/+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 573(line=28, offs=49) -- 596(line=28, offs=72)+*/+ATSINSmove(tmp19, atspre_g0int2float_int_float(arg0)) ;++/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 562(line=28, offs=38) -- 598(line=28, offs=74)+*/+ATSINSmove(tmp18, atslib_libats_libc_sqrt_float(tmp19)) ;++/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 550(line=28, offs=26) -- 599(line=28, offs=75)+*/+ATSINSmove(tmpref17, atspre_g0float2int_float_int(tmp18)) ;++/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 608(line=29, offs=9) -- 611(line=29, offs=12)+*/+/*+ATSINStmpdec(tmpref20) ;+*/+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 614(line=29, offs=15) -- 706(line=31, offs=26)+*/+ATSINSclosure_initize(__patsfun_14, ((__patsfun_14__closure_t0ype*)(&tmpref20))) ;+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 715(line=32, offs=9) -- 720(line=32, offs=14)+*/+/*+ATSINStmpdec(tmpref24) ;+*/+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 743(line=32, offs=37) -- 756(line=32, offs=50)+*/+ATSINSmove(tmpref24, ATSfunclo_clo(ATSPMVrefarg1(ATSPMVptrof(tmpref20)), (atstype_cloptr, atstkind_t0ype(atstype_int)), atstkind_t0ype(atstype_int))(ATSPMVrefarg1(ATSPMVptrof(tmpref20)), tmpref17)) ;++/*+letpush(end)+*/++/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 767(line=34, offs=5) -- 772(line=34, offs=10)+*/+ATSINSmove(tmpret16, tmpref24) ;+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 521(line=27, offs=3) -- 778(line=35, offs=6)+*/+/*+INSletpop()+*/+ATSfunbody_end()+ATSreturn(tmpret16) ;+} /* end of [sqrt_bad_12] */++/*+/home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 614(line=29, offs=15) -- 706(line=31, offs=26)+*/+/*+local: __patsfun_14$0(level=1)+global: __patsfun_14$0(level=1)+local: +global: +*/+ATSstatic()+atstkind_t0ype(atstype_int)+__patsfun_14(atstkind_t0ype(atstype_int) arg0)+{+/* tmpvardeclst(beg) */+ATStmpdec(tmpret21, atstkind_t0ype(atstype_int)) ;+ATStmpdec(tmp22, atstkind_t0ype(atstype_int)) ;+ATStmpdec(tmp23, atstkind_t0ype(atstype_int)) ;+/* tmpvardeclst(end) */+ATSfunbody_beg()+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 614(line=29, offs=15) -- 706(line=31, offs=26)+*/+ATSINSflab(__patsflab___patsfun_14):+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 655(line=29, offs=56) -- 706(line=31, offs=26)+*/+ATScaseof_beg()+/*+** ibranchlst-beg+*/+ATSbranch_beg()+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 674(line=30, offs=9) -- 675(line=30, offs=10)+*/+ATSINSlab(__atstmplab3):+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 622(line=29, offs=23) -- 623(line=29, offs=24)+*/+ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(0))) { ATSINSgoto(__atstmplab5) ; } ;+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 675(line=30, offs=10) -- 675(line=30, offs=10)+*/+ATSINSlab(__atstmplab4):+/*+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)+*/+/*+ibranch-mbody:+*/+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 679(line=30, offs=14) -- 680(line=30, offs=15)+*/+ATSINSmove(tmpret21, ATSPMVi0nt(0)) ;+ATSbranch_end()++ATSbranch_beg()+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 690(line=31, offs=10) -- 690(line=31, offs=10)+*/+ATSINSlab(__atstmplab5):+/*+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)+*/+/*+ibranch-mbody:+*/+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 700(line=31, offs=20) -- 705(line=31, offs=25)+*/+ATSINSmove(tmp23, atspre_g0int_sub_int(arg0, ATSPMVi0nt(1))) ;++/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 698(line=31, offs=18) -- 706(line=31, offs=26)+*/+ATSINSmove(tmp22, __patsfun_14(tmp23)) ;++/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 694(line=31, offs=14) -- 706(line=31, offs=26)+*/+ATSINSmove(tmpret21, atspre_g1int_add_int(ATSPMVi0nt(1), tmp22)) ;++ATSbranch_end()++/*+** ibranchlst-end+*/+ATScaseof_end()++ATSfunbody_end()+ATSreturn(tmpret21) ;+} /* end of [__patsfun_14] */++/*+/home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 784(line=37, offs=5) -- 1375(line=60, offs=10)+*/+/*+local: sqrt_bad_12$0(level=0)+global: sqrt_bad_12$0(level=0), is_prime_17$0(level=0)+local: +global: +*/+ATSstatic()+atstkind_t0ype(atstype_bool)+is_prime_17(atstkind_t0ype(atstype_int) arg0)+{+/* tmpvardeclst(beg) */+ATStmpdec(tmpret25, atstkind_t0ype(atstype_bool)) ;+ATStmpdec(tmp46, atstkind_t0ype(atstype_int)) ;+/* tmpvardeclst(end) */+ATSfunbody_beg()+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 784(line=37, offs=5) -- 1375(line=60, offs=10)+*/+ATSINSflab(__patsflab_is_prime_17):+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 818(line=38, offs=3) -- 1375(line=60, offs=10)+*/+ATScaseof_beg()+/*+** ibranchlst-beg+*/+ATSbranch_beg()+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 835(line=39, offs=7) -- 836(line=39, offs=8)+*/+ATSINSlab(__atstmplab6):+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 793(line=37, offs=14) -- 794(line=37, offs=15)+*/+ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab8) ; } ;+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 836(line=39, offs=8) -- 836(line=39, offs=8)+*/+ATSINSlab(__atstmplab7):+/*+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)+*/+/*+ibranch-mbody:+*/+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 840(line=39, offs=12) -- 845(line=39, offs=17)+*/+ATSINSmove(tmpret25, ATSPMVbool_false()) ;+ATSbranch_end()++ATSbranch_beg()+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 853(line=40, offs=8) -- 853(line=40, offs=8)+*/+ATSINSlab(__atstmplab8):+/*+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)+*/+/*+ibranch-mbody:+*/+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 878(line=42, offs=9) -- 1365(line=59, offs=12)+*/+/*+letpush(beg)+*/+/*+letpush(end)+*/++/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 1341(line=58, offs=19) -- 1351(line=58, offs=29)+*/+ATSINSmove(tmp46, sqrt_bad_12(arg0)) ;++/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 1333(line=58, offs=11) -- 1353(line=58, offs=31)+*/+ATSINSmove(tmpret25, loop_18(arg0, ATSPMVi0nt(2), tmp46)) ;++/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 878(line=42, offs=9) -- 1365(line=59, offs=12)+*/+/*+INSletpop()+*/+ATSbranch_end()++/*+** ibranchlst-end+*/+ATScaseof_end()++ATSfunbody_end()+ATSreturn(tmpret25) ;+} /* end of [is_prime_17] */++/*+/home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 896(line=43, offs=15) -- 1311(line=56, offs=21)+*/+/*+local: loop_18$0(level=1)+global: loop_18$0(level=1)+local: k$4743(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))+global: k$4743(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))+*/+ATSstatic()+atstkind_t0ype(atstype_bool)+loop_18(atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)+{+/* tmpvardeclst(beg) */+ATStmpdec(apy0, atstkind_t0ype(atstype_int)) ;+ATStmpdec(apy1, atstkind_t0ype(atstype_int)) ;+ATStmpdec(tmpret26, atstkind_t0ype(atstype_bool)) ;+ATStmpdec(tmp27, atstkind_t0ype(atstype_bool)) ;+ATStmpdec(tmp32, atstkind_t0ype(atstype_bool)) ;+ATStmpdec(tmp35, atstkind_t0ype(atstype_int)) ;+ATStmpdec(tmp36, atstkind_t0ype(atstype_int)) ;+ATStmpdec(tmp37, atstkind_t0ype(atstype_bool)) ;+ATStmpdec(tmp42, atstkind_t0ype(atstype_bool)) ;+ATStmpdec(tmp45, atstkind_t0ype(atstype_int)) ;+/* tmpvardeclst(end) */+ATSfunbody_beg()+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 896(line=43, offs=15) -- 1311(line=56, offs=21)+*/+ATSINSflab(__patsflab_loop_18):+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 990(line=44, offs=16) -- 999(line=44, offs=25)+*/+ATSINSmove(tmp27, ATSLIB_056_prelude__lt_g1int_int__19__1(arg0, arg1)) ;++/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 987(line=44, offs=13) -- 1311(line=56, offs=21)+*/+ATSif(+tmp27+) ATSthen() {+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 1022(line=45, offs=18) -- 1027(line=45, offs=23)+*/+ATSINSmove(tmp35, atspre_g0int_mod_int(env0, arg0)) ;++/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 1022(line=45, offs=18) -- 1031(line=45, offs=27)+*/+ATSINSmove(tmp32, ATSLIB_056_prelude__eq_g0int_int__7__2(tmp35, ATSPMVi0nt(0))) ;++/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 1019(line=45, offs=15) -- 1120(line=48, offs=43)+*/+ATSif(+tmp32+) ATSthen() {+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 1053(line=46, offs=17) -- 1058(line=46, offs=22)+*/+ATSINSmove(tmpret26, ATSPMVbool_false()) ;+} ATSelse() {+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 1094(line=48, offs=17) -- 1120(line=48, offs=43)+*/+ATSif(+ATSPMVbool_true()+) ATSthen() {+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 1094(line=48, offs=17) -- 1120(line=48, offs=43)+*/+ATSINSmove(tmp36, atspre_g1int_add_int(arg0, ATSPMVi0nt(1))) ;++/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 1094(line=48, offs=17) -- 1120(line=48, offs=43)+*/+ATStailcal_beg()+ATSINSmove_tlcal(apy0, tmp36) ;+ATSINSmove_tlcal(apy1, arg1) ;+ATSINSargmove_tlcal(arg0, apy0) ;+ATSINSargmove_tlcal(arg1, apy1) ;+ATSINSfgoto(__patsflab_loop_18) ;+ATStailcal_end()++} ATSelse() {+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 1094(line=48, offs=17) -- 1120(line=48, offs=43)+*/+ATSINSmove(tmpret26, ATSPMVbool_false()) ;+} /* ATSendif */+} /* ATSendif */+} ATSelse() {+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 1155(line=50, offs=18) -- 1164(line=50, offs=27)+*/+ATSINSmove(tmp37, ATSLIB_056_prelude__eq_g1int_int__23__1(arg0, arg1)) ;++/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 1152(line=50, offs=15) -- 1311(line=56, offs=21)+*/+ATSif(+tmp37+) ATSthen() {+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 1189(line=51, offs=20) -- 1194(line=51, offs=25)+*/+ATSINSmove(tmp45, atspre_g0int_mod_int(env0, arg0)) ;++/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 1189(line=51, offs=20) -- 1198(line=51, offs=29)+*/+ATSINSmove(tmp42, ATSLIB_056_prelude__eq_g0int_int__7__3(tmp45, ATSPMVi0nt(0))) ;++/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 1186(line=51, offs=17) -- 1271(line=54, offs=23)+*/+ATSif(+tmp42+) ATSthen() {+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 1222(line=52, offs=19) -- 1227(line=52, offs=24)+*/+ATSINSmove(tmpret26, ATSPMVbool_false()) ;+} ATSelse() {+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 1267(line=54, offs=19) -- 1271(line=54, offs=23)+*/+ATSINSmove(tmpret26, ATSPMVbool_true()) ;+} /* ATSendif */+} ATSelse() {+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 1307(line=56, offs=17) -- 1311(line=56, offs=21)+*/+ATSINSmove(tmpret26, ATSPMVbool_true()) ;+} /* ATSendif */+} /* ATSendif */+ATSfunbody_end()+ATSreturn(tmpret26) ;+} /* end of [loop_18] */++#if(0)+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12520(line=650, offs=3) -- 12559(line=650, offs=42)+*/+/*+local: +global: lt_g1int_int$19$0(level=0)+local: +global: +*/+ATSextern()+/*+imparg = tk(4697)+tmparg = S2Evar(tk(4697))+tmpsub = None()+*/+atstkind_t0ype(atstype_bool)+ATSLIB_056_prelude__lt_g1int_int__19(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)+{+/* tmpvardeclst(beg) */+ATStmpdec(tmpret28, atstkind_t0ype(atstype_bool)) ;+ATStmpdec(tmp29, atstkind_t0ype(atstyvar_type(tk))) ;+/* tmpvardeclst(end) */+ATSfunbody_beg()+/*+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12505(line=649, offs=1) -- 12559(line=650, offs=42)+*/+ATSINSflab(__patsflab_lt_g1int_int):+/*+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12546(line=650, offs=29) -- 12557(line=650, offs=40)+*/+ATSINSmove(tmp29, PMVtmpltcst(g1int2int<S2Eextkind(atstype_int), S2Evar(tk(4697))>)(arg1)) ;++/*+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12529(line=650, offs=12) -- 12559(line=650, offs=42)+*/+ATSINSmove(tmpret28, PMVtmpltcst(g1int_lt<S2Evar(tk(4697))>)(arg0, tmp29)) ;++ATSfunbody_end()+ATSreturn(tmpret28) ;+} /* end of [ATSLIB_056_prelude__lt_g1int_int__19] */+#endif // end of [TEMPLATE]++/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12520(line=650, offs=3) -- 12559(line=650, offs=42)+*/+/*+local: +global: lt_g1int_int$19$1(level=2)+local: +global: +*/+ATSstatic()+/*+imparg = tk(4697)+tmparg = S2Evar(tk(4697))+tmpsub = Some(tk(4697) -> S2Eextkind(atstype_int))+*/+atstkind_t0ype(atstype_bool)+ATSLIB_056_prelude__lt_g1int_int__19__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)+{+/* tmpvardeclst(beg) */+ATStmpdec(tmpret28__1, atstkind_t0ype(atstype_bool)) ;+ATStmpdec(tmp29__1, atstkind_t0ype(atstype_int)) ;+/* tmpvardeclst(end) */+ATSfunbody_beg()+/*+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12505(line=649, offs=1) -- 12559(line=650, offs=42)+*/+ATSINSflab(__patsflab_lt_g1int_int):+/*+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12546(line=650, offs=29) -- 12557(line=650, offs=40)+*/+ATSINSmove(tmp29__1, atspre_g1int2int_int_int(arg1)) ;++/*+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12529(line=650, offs=12) -- 12559(line=650, offs=42)+*/+ATSINSmove(tmpret28__1, atspre_g1int_lt_int(arg0, tmp29__1)) ;++ATSfunbody_end()+ATSreturn(tmpret28__1) ;+} /* end of [ATSLIB_056_prelude__lt_g1int_int__19__1] */++/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)+*/+/*+local: +global: eq_g0int_int$7$2(level=2)+local: +global: +*/+ATSstatic()+/*+imparg = tk(4694)+tmparg = S2Evar(tk(4694))+tmpsub = Some(tk(4694) -> S2Eextkind(atstype_int))+*/+atstkind_t0ype(atstype_bool)+ATSLIB_056_prelude__eq_g0int_int__7__2(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)+{+/* tmpvardeclst(beg) */+ATStmpdec(tmpret9__2, atstkind_t0ype(atstype_bool)) ;+ATStmpdec(tmp10__2, atstkind_t0ype(atstype_int)) ;+/* tmpvardeclst(end) */+ATSfunbody_beg()+/*+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12244(line=634, offs=1) -- 12298(line=635, offs=42)+*/+ATSINSflab(__patsflab_eq_g0int_int):+/*+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)+*/+ATSINSmove(tmp10__2, atspre_g0int2int_int_int(arg1)) ;++/*+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)+*/+ATSINSmove(tmpret9__2, atspre_g0int_eq_int(arg0, tmp10__2)) ;++ATSfunbody_end()+ATSreturn(tmpret9__2) ;+} /* end of [ATSLIB_056_prelude__eq_g0int_int__7__2] */++#if(0)+/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12838(line=668, offs=3) -- 12877(line=668, offs=42)+*/+/*+local: +global: eq_g1int_int$23$0(level=0)+local: +global: +*/+ATSextern()+/*+imparg = tk(4709)+tmparg = S2Evar(tk(4709))+tmpsub = None()+*/+atstkind_t0ype(atstype_bool)+ATSLIB_056_prelude__eq_g1int_int__23(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)+{+/* tmpvardeclst(beg) */+ATStmpdec(tmpret38, atstkind_t0ype(atstype_bool)) ;+ATStmpdec(tmp39, atstkind_t0ype(atstyvar_type(tk))) ;+/* tmpvardeclst(end) */+ATSfunbody_beg()+/*+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12823(line=667, offs=1) -- 12877(line=668, offs=42)+*/+ATSINSflab(__patsflab_eq_g1int_int):+/*+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12864(line=668, offs=29) -- 12875(line=668, offs=40)+*/+ATSINSmove(tmp39, PMVtmpltcst(g1int2int<S2Eextkind(atstype_int), S2Evar(tk(4709))>)(arg1)) ;++/*+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12847(line=668, offs=12) -- 12877(line=668, offs=42)+*/+ATSINSmove(tmpret38, PMVtmpltcst(g1int_eq<S2Evar(tk(4709))>)(arg0, tmp39)) ;++ATSfunbody_end()+ATSreturn(tmpret38) ;+} /* end of [ATSLIB_056_prelude__eq_g1int_int__23] */+#endif // end of [TEMPLATE]++/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12838(line=668, offs=3) -- 12877(line=668, offs=42)+*/+/*+local: +global: eq_g1int_int$23$1(level=2)+local: +global: +*/+ATSstatic()+/*+imparg = tk(4709)+tmparg = S2Evar(tk(4709))+tmpsub = Some(tk(4709) -> S2Eextkind(atstype_int))+*/+atstkind_t0ype(atstype_bool)+ATSLIB_056_prelude__eq_g1int_int__23__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)+{+/* tmpvardeclst(beg) */+ATStmpdec(tmpret38__1, atstkind_t0ype(atstype_bool)) ;+ATStmpdec(tmp39__1, atstkind_t0ype(atstype_int)) ;+/* tmpvardeclst(end) */+ATSfunbody_beg()+/*+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12823(line=667, offs=1) -- 12877(line=668, offs=42)+*/+ATSINSflab(__patsflab_eq_g1int_int):+/*+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12864(line=668, offs=29) -- 12875(line=668, offs=40)+*/+ATSINSmove(tmp39__1, atspre_g1int2int_int_int(arg1)) ;++/*+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12847(line=668, offs=12) -- 12877(line=668, offs=42)+*/+ATSINSmove(tmpret38__1, atspre_g1int_eq_int(arg0, tmp39__1)) ;++ATSfunbody_end()+ATSreturn(tmpret38__1) ;+} /* end of [ATSLIB_056_prelude__eq_g1int_int__23__1] */++/*+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)+*/+/*+local: +global: eq_g0int_int$7$3(level=2)+local: +global: +*/+ATSstatic()+/*+imparg = tk(4694)+tmparg = S2Evar(tk(4694))+tmpsub = Some(tk(4694) -> S2Eextkind(atstype_int))+*/+atstkind_t0ype(atstype_bool)+ATSLIB_056_prelude__eq_g0int_int__7__3(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)+{+/* tmpvardeclst(beg) */+ATStmpdec(tmpret9__3, atstkind_t0ype(atstype_bool)) ;+ATStmpdec(tmp10__3, atstkind_t0ype(atstype_int)) ;+/* tmpvardeclst(end) */+ATSfunbody_beg()+/*+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12244(line=634, offs=1) -- 12298(line=635, offs=42)+*/+ATSINSflab(__patsflab_eq_g0int_int):+/*+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)+*/+ATSINSmove(tmp10__3, atspre_g0int2int_int_int(arg1)) ;++/*+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)+*/+ATSINSmove(tmpret9__3, atspre_g0int_eq_int(arg0, tmp10__3)) ;++ATSfunbody_end()+ATSreturn(tmpret9__3) ;+} /* end of [ATSLIB_056_prelude__eq_g0int_int__7__3] */++/*+/home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics-ffi.dats: 269(line=14, offs=24) -- 287(line=15, offs=13)+*/+/*+local: is_prime_17$0(level=0)+global: sqrt_bad_12$0(level=0), is_prime_17$0(level=0), is_prime_ats$27$0(level=0)+local: +global: +*/+ATSextern()+atstkind_t0ype(atstype_bool)+is_prime_ats(atstkind_t0ype(atstype_int) arg0)+{+/* tmpvardeclst(beg) */+ATStmpdec(tmpret47, atstkind_t0ype(atstype_bool)) ;+/* tmpvardeclst(end) */+ATSfunbody_beg()+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics-ffi.dats: 256(line=14, offs=11) -- 288(line=15, offs=14)+*/+ATSINSflab(__patsflab_is_prime_ats):+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics-ffi.dats: 277(line=15, offs=3) -- 287(line=15, offs=13)+*/+ATSINSmove(tmpret47, is_prime_17(arg0)) ;++ATSfunbody_end()+ATSreturn(tmpret47) ;+} /* end of [is_prime_ats] */++/*+/home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics-ffi.dats: 308(line=17, offs=19) -- 328(line=18, offs=12)+*/+/*+local: exp_0$0(level=0)+global: exp_0$0(level=0), exp_ats$28$0(level=0)+local: +global: +*/+ATSextern()+atstkind_t0ype(atstype_int)+exp_ats(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)+{+/* tmpvardeclst(beg) */+ATStmpdec(tmpret48, atstkind_t0ype(atstype_int)) ;+/* tmpvardeclst(end) */+ATSfunbody_beg()+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics-ffi.dats: 300(line=17, offs=11) -- 328(line=18, offs=12)+*/+ATSINSflab(__patsflab_exp_ats):+/*+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics-ffi.dats: 319(line=18, offs=3) -- 328(line=18, offs=12)+*/+ATSINSmove(tmpret48, exp_0(arg0, arg1)) ;++ATSfunbody_end()+ATSreturn(tmpret48) ;+} /* end of [exp_ats] */++/*+** for initialization(dynloading)+*/+ATSdynloadflag_minit(_057_home_057_vanessa_057_programming_057_haskell_057_current_057_fast_055_combinatorics_057_ats_055_src_057_numerics_055_ffi_056_dats__dynloadflag) ;+ATSextern()+atsvoid_t0ype+_057_home_057_vanessa_057_programming_057_haskell_057_current_057_fast_055_combinatorics_057_ats_055_src_057_numerics_055_ffi_056_dats__dynload()+{+ATSfunbody_beg()+ATSdynload(/*void*/)+ATSdynloadflag_sta(+_057_home_057_vanessa_057_programming_057_haskell_057_current_057_fast_055_combinatorics_057_ats_055_src_057_numerics_055_ffi_056_dats__dynloadflag+) ;+ATSif(+ATSCKiseqz(+_057_home_057_vanessa_057_programming_057_haskell_057_current_057_fast_055_combinatorics_057_ats_055_src_057_numerics_055_ffi_056_dats__dynloadflag+)+) ATSthen() {+ATSdynloadset(_057_home_057_vanessa_057_programming_057_haskell_057_current_057_fast_055_combinatorics_057_ats_055_src_057_numerics_055_ffi_056_dats__dynloadflag) ;+/*+dynexnlst-initize(beg)+*/+/*+dynexnlst-initize(end)+*/+} /* ATSendif */+ATSfunbody_end()+ATSreturn_void(tmpret_void) ;+} /* end of [*_dynload] */++/* ****** ****** */++/* end-of-compilation-unit */
fast-combinatorics.cabal view
@@ -1,5 +1,5 @@ name:                fast-combinatorics-version:             0.1.0.3+version:             0.1.0.4 synopsis:            Fast combinatorics. description:         Fast combinatorics code with a high level of safety guaranteed by writing it in ATS. homepage:            https://github.com//fast-combinatorics#readme@@ -10,7 +10,8 @@ copyright:           Copyright: (c) 2017 Vanessa McHale category:            Numerics build-type:          Custom-extra-source-files:  cbits/fast-combinatorics.c+extra-source-files:  cbits/combinatorics-ffi.c+                   , cbits/numerics-ffi.c                    , ATS2-Postiats-include-0.3.8/ccomp/runtime/pats_ccomp_config.h extra-doc-files:     README.md cabal-version:       >= 1.18@@ -31,13 +32,16 @@                  , directory  library-  c-sources:           cbits/fast-combinatorics.c+  c-sources:           cbits/combinatorics-ffi.c+                     , cbits/numerics-ffi.c   include-dirs:        ATS2-Postiats-include-0.3.8/ccomp/runtime/                      , ATS2-Postiats-include-0.3.8/   hs-source-dirs:      src   exposed-modules:     Numeric.Combinatorics-  build-depends:       base >= 4.6 && < 5-                     , composition-prelude >= 0.1.1.3+                     , Numeric.Pure.Combinatorics+                     , Numeric.Integer+  build-depends:       base >= 4.7 && < 5+                     , composition-prelude >= 0.1.1.4   default-language:    Haskell2010   if flag(development)     ghc-options:       -Werror@@ -52,8 +56,6 @@   build-depends:       base                      , fast-combinatorics                      , hspec-                     , combinatorics-                     , arithmoi   if flag(development)     ghc-options: -Werror   if impl(ghc >= 8.0)@@ -68,7 +70,6 @@   build-depends:       base                      , fast-combinatorics                      , criterion-                     , combinatorics   if flag(development)     ghc-options: -Werror   if impl(ghc >= 8.0)
+ src/Numeric/Integer.hs view
@@ -0,0 +1,10 @@+module Numeric.Integer ( integerExp+                       ) where++import           Control.Composition+import           Foreign.C++foreign import ccall unsafe exp_ats :: CInt -> CInt -> CInt++integerExp :: Int -> Int -> Int+integerExp = fromIntegral .* on exp_ats fromIntegral
+ src/Numeric/Pure/Combinatorics.hs view
@@ -0,0 +1,16 @@+module Numeric.Pure.Combinatorics ( hsIsPrime+                                  , hsFactorial+                                  , hsChoose+                                  ) where++hsIsPrime :: Int -> Bool+hsIsPrime 1 = False+hsIsPrime x = all ((/=0) . (x `mod`)) [2..m]+    where m = floor (sqrt (fromIntegral x :: Float))++hsFactorial :: Int -> Int+hsFactorial 0 = 1+hsFactorial n = n * hsFactorial (n-1)++hsChoose :: Int -> Int -> Int+hsChoose n k = product [ n + 1 - i | i <- [1..k] ] `div` hsFactorial k
test/Spec.hs view
@@ -1,18 +1,26 @@ import           Numeric.Combinatorics+import           Numeric.Integer+import           Numeric.Pure.Combinatorics import           Test.Hspec import           Test.Hspec.QuickCheck-import qualified Math.Combinatorics.Binomial as Ext-import qualified Math.Combinatorics.Factorial as Ext-import qualified Math.NumberTheory.Primes.Testing as Ext +tooBig :: Int -> Int -> Bool+tooBig x y = go x y >= 2 ^ (16 :: Integer)+    where+        go :: Int -> Int -> Integer+        go m n = fromIntegral m ^ (fromIntegral n :: Integer)+ main :: IO () main = hspec $ do     parallel $ describe "factorial" $         prop "should agree with the pure Haskell function" $-            \x -> x < 1 || x > 12 || factorial x == Ext.factorial (fromIntegral x)+            \x -> x < 1 || x > 12 || factorial x == hsFactorial x     parallel $ describe "choose" $         prop "should agree with the pure Haskell function" $-            \x y -> x < 0 || y < 0 || x > 13 || y > 11 || (x `choose` y) == (x `Ext.choose` y)+            \x y -> x < 0 || y < 0 || x > 13 || y > 11 || (x `choose` y) == (x `hsChoose` y)     parallel $ describe "isPrime" $         prop "should agree with the pure Haskell function" $-            \x -> x < 1 || isPrime x == Ext.isCertifiedPrime (fromIntegral x)+            \x -> x < 1 || isPrime x == hsIsPrime x+    parallel $ describe "integerExp" $+        prop "should agree with the pure Haskell function" $+            \a k -> a < 0 || k < 0 || tooBig a k || (a == 0 && k == 0) || integerExp a k == a ^ k