/*
**
** The C code is generated by [ATS/Postiats-0-3-8]
** The starting compilation time is: 2018-1-2: 0h:11m
**
*/
/*
** 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: 281(line=13, offs=5) -- 393(line=17, 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: 281(line=13, offs=5) -- 393(line=17, offs=29)
*/
ATSINSflab(__patsflab_dfact_3):
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 328(line=14, offs=3) -- 393(line=17, offs=29)
*/
ATScaseof_beg()
/*
** ibranchlst-beg
*/
ATSbranch_beg()
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 345(line=15, offs=7) -- 346(line=15, offs=8)
*/
ATSINSlab(__atstmplab3):
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 304(line=13, offs=28) -- 305(line=13, offs=29)
*/
ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(0))) { ATSINSgoto(__atstmplab5) ; } ;
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 346(line=15, offs=8) -- 346(line=15, 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: 350(line=15, offs=12) -- 351(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: 358(line=16, offs=7) -- 359(line=16, offs=8)
*/
ATSINSlab(__atstmplab5):
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 304(line=13, offs=28) -- 305(line=13, offs=29)
*/
ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab7) ; } ;
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 359(line=16, offs=8) -- 359(line=16, 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: 363(line=16, offs=12) -- 364(line=16, offs=13)
*/
ATSINSmove(tmpret3, ATSPMVi0nt(1)) ;
ATSbranch_end()
ATSbranch_beg()
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 372(line=17, offs=8) -- 372(line=17, 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: 387(line=17, offs=23) -- 392(line=17, 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: 381(line=17, offs=17) -- 393(line=17, offs=29)
*/
ATSINSmove(tmp4, dfact_3(tmp5)) ;
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 377(line=17, offs=13) -- 393(line=17, 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: 432(line=20, offs=4) -- 792(line=32, 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: 432(line=20, offs=4) -- 792(line=32, offs=6)
*/
ATSINSflab(__patsflab_choose_4):
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 506(line=21, offs=3) -- 792(line=32, offs=6)
*/
/*
letpush(beg)
*/
/*
letpush(end)
*/
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 704(line=28, offs=5) -- 786(line=31, offs=42)
*/
ATScaseof_beg()
/*
** ibranchlst-beg
*/
ATSbranch_beg()
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 723(line=29, offs=9) -- 724(line=29, offs=10)
*/
ATSINSlab(__atstmplab13):
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 482(line=20, offs=54) -- 483(line=20, offs=55)
*/
ATSifnthen(ATSCKpat_int(arg1, ATSPMVint(0))) { ATSINSgoto(__atstmplab15) ; } ;
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 724(line=29, offs=10) -- 724(line=29, 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: 728(line=29, offs=14) -- 729(line=29, offs=15)
*/
ATSINSmove(tmpret6, ATSPMVi0nt(1)) ;
ATSbranch_end()
ATSbranch_beg()
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 738(line=30, offs=9) -- 739(line=30, offs=10)
*/
ATSINSlab(__atstmplab15):
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 482(line=20, offs=54) -- 483(line=20, offs=55)
*/
ATSifnthen(ATSCKpat_int(arg1, ATSPMVint(1))) { ATSINSgoto(__atstmplab17) ; } ;
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 739(line=30, offs=10) -- 739(line=30, 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: 743(line=30, offs=14) -- 744(line=30, offs=15)
*/
ATSINSmove(tmpret6, arg0) ;
ATSbranch_end()
ATSbranch_beg()
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 754(line=31, offs=10) -- 754(line=31, 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: 759(line=31, offs=15) -- 775(line=31, offs=31)
*/
ATSINSmove(tmp13, numerator_loop_5(arg0, arg1)) ;
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 779(line=31, offs=35) -- 785(line=31, offs=41)
*/
ATSINSmove(tmp14, fact_0(arg1)) ;
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 759(line=31, offs=15) -- 785(line=31, 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: 506(line=21, offs=3) -- 792(line=32, offs=6)
*/
/*
INSletpop()
*/
ATSfunbody_end()
ATSreturn(tmpret6) ;
} /* end of [choose_4] */
/*
/home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 518(line=22, offs=9) -- 694(line=26, 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: 518(line=22, offs=9) -- 694(line=26, offs=52)
*/
ATSINSflab(__patsflab_numerator_loop_5):
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 588(line=23, offs=7) -- 694(line=26, offs=52)
*/
ATScaseof_beg()
/*
** ibranchlst-beg
*/
ATSbranch_beg()
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 609(line=24, offs=11) -- 610(line=24, offs=12)
*/
ATSINSlab(__atstmplab8):
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 560(line=22, offs=51) -- 561(line=22, offs=52)
*/
ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab10) ; } ;
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 610(line=24, offs=12) -- 610(line=24, 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: 614(line=24, offs=16) -- 615(line=24, offs=17)
*/
ATSINSmove(tmpret7, env0) ;
ATSbranch_end()
ATSbranch_beg()
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 626(line=25, offs=11) -- 627(line=25, offs=12)
*/
ATSINSlab(__atstmplab10):
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 560(line=22, offs=51) -- 561(line=22, offs=52)
*/
ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(2))) { ATSINSgoto(__atstmplab12) ; } ;
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 627(line=25, offs=12) -- 627(line=25, 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: 632(line=25, offs=17) -- 637(line=25, 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: 631(line=25, offs=16) -- 642(line=25, 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: 654(line=26, offs=12) -- 654(line=26, 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: 660(line=26, offs=18) -- 665(line=26, 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: 660(line=26, offs=18) -- 669(line=26, offs=27)
*/
ATSINSmove(tmp9, atspre_g1int_sub_int(tmp10, arg0)) ;
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 688(line=26, offs=46) -- 693(line=26, 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: 673(line=26, offs=31) -- 694(line=26, offs=52)
*/
ATSINSmove(tmp11, numerator_loop_5(env0, tmp12)) ;
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/combinatorics.dats: 659(line=26, offs=17) -- 694(line=26, 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)
*/
/* local */
/* in of [local] */
/* end of [local] */
} /* ATSendif */
ATSfunbody_end()
ATSreturn_void(tmpret_void) ;
} /* end of [*_dynload] */
/* ****** ****** */
/* end-of-compilation-unit */