language-ats-1.7.0.1: test/data/stdlib/DATS/integer_long.out
(***********************************************************************)
(* *)
(* Applied Type System *)
(* *)
(***********************************************************************)
(*
** ATS/Postiats - Unleashing the Potential of Types!
** Copyright (C) 2010-2015 Hongwei Xi, ATS Trustful Software, Inc.
** All rights reserved
**
** ATS is free software; you can redistribute it and/or modify it under
** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the
** Free Software Foundation; either version 3, or (at your option) any
** later version.
**
** ATS is distributed in the hope that it will be useful, but WITHOUT ANY
** WARRANTY; without even the implied warranty of MERCHANTABILITY or
** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
** for more details.
**
** You should have received a copy of the GNU General Public License
** along with ATS; see the file COPYING. If not, please write to the
** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
** 02110-1301, USA.
*)
(* ****** ****** *)
(* Author: Hongwei Xi *)
(* Authoremail: gmhwxiATgmailDOTcom *)
(* Start time: February, 2014 *)
(* ****** ****** *)
(*
** Source:
** $PATSHOME/prelude/DATS/CODEGEN/integer_long.atxt
** Time of generation: Thu Jan 11 11:00:12 2018
*)
(* ****** ****** *)
#define ATS_DYNLOADFLAG 0
// no dynloading
(* ****** ****** *)
//
staload UN = "prelude/SATS/unsafe.sats"
//
(* ****** ****** *)
//
implement g0int2int<intknd,lintknd> =
g0int2int_int_lint
implement g1int2int<intknd,lintknd> =
g1int2int_int_lint
//
implement g0uint2int<uintknd,lintknd> =
g0uint2int_uint_lint
implement g1uint2int<uintknd,lintknd> =
g1uint2int_uint_lint
//
(* ****** ****** *)
//
implement g0int2uint<intknd,ulintknd> =
g0int2uint_int_ulint
implement g1int2uint<intknd,ulintknd> =
g1int2uint_int_ulint
//
implement g0uint2uint<uintknd,ulintknd> =
g0uint2uint_uint_ulint
implement g1uint2uint<uintknd,ulintknd> =
g1uint2uint_uint_ulint
//
(* ****** ****** *)
//
implement g0int2int<intknd,llintknd> =
g0int2int_int_llint
implement g1int2int<intknd,llintknd> =
g1int2int_int_llint
//
implement g0uint2int<uintknd,llintknd> =
g0uint2int_uint_llint
implement g1uint2int<uintknd,llintknd> =
g1uint2int_uint_llint
//
(* ****** ****** *)
//
implement g0int2uint<intknd,ullintknd> =
g0int2uint_int_ullint
implement g1int2uint<intknd,ullintknd> =
g1int2uint_int_ullint
//
implement g0uint2uint<uintknd,ullintknd> =
g0uint2uint_uint_ullint
implement g1uint2uint<uintknd,ullintknd> =
g1uint2uint_uint_ullint
//
(* ****** ****** *)
//
implement g0int2int<lintknd,lintknd> =
g0int2int_lint_lint
implement g0int2int<lintknd,llintknd> =
g0int2int_lint_llint
//
implement g0int2uint<lintknd,ulintknd> =
g0int2uint_lint_ulint
implement g0int2uint<lintknd,ullintknd> =
g0int2uint_lint_ullint
//
(* ****** ****** *)
//
implement g0uint2int<ulintknd,lintknd> =
g0uint2int_ulint_lint
implement g0uint2int<ulintknd,llintknd> =
g0uint2int_ulint_llint
//
implement g0uint2uint<ulintknd,ulintknd> =
g0uint2uint_ulint_ulint
implement g0uint2uint<ulintknd,ullintknd> =
g0uint2uint_ulint_ullint
//
(* ****** ****** *)
//
implement g0int2int<llintknd,llintknd> =
g0int2int_llint_llint
//
implement g0int2uint<llintknd,ullintknd> =
g0int2uint_llint_ullint
//
(* ****** ****** *)
//
implement g0uint2int<ullintknd,llintknd> =
g0uint2int_ullint_llint
//
implement g0uint2uint<ullintknd,ullintknd> =
g0uint2uint_ullint_ullint
//
(* ****** ****** *)
//
implement g0int2string<lintknd> =
g0int2string_lint
implement g0int2string<llintknd> =
g0int2string_llint
//
implement g0string2int<lintknd> =
g0string2int_lint
implement g0string2int<llintknd> =
g0string2int_llint
implement g0string2uint<ulintknd> =
g0string2uint_ulint
implement g0string2uint<ullintknd> =
g0string2uint_ullint
//
(* ****** ****** *)
//
implement g0int_neg<lintknd> =
g0int_neg_lint
implement g0int_abs<lintknd> =
g0int_abs_lint
implement g0int_succ<lintknd> =
g0int_succ_lint
implement g0int_pred<lintknd> =
g0int_pred_lint
implement g0int_half<lintknd> =
g0int_half_lint
implement g0int_add<lintknd> =
g0int_add_lint
implement g0int_sub<lintknd> =
g0int_sub_lint
implement g0int_mul<lintknd> =
g0int_mul_lint
implement g0int_div<lintknd> =
g0int_div_lint
implement g0int_mod<lintknd> =
g0int_mod_lint
implement g0int_asl<lintknd> =
g0int_asl_lint
implement g0int_asr<lintknd> =
g0int_asr_lint
implement g0int_isltz<lintknd> =
g0int_isltz_lint
implement g0int_isltez<lintknd> =
g0int_isltez_lint
implement g0int_isgtz<lintknd> =
g0int_isgtz_lint
implement g0int_isgtez<lintknd> =
g0int_isgtez_lint
implement g0int_iseqz<lintknd> =
g0int_iseqz_lint
implement g0int_isneqz<lintknd> =
g0int_isneqz_lint
implement g0int_lt<lintknd> =
g0int_lt_lint
implement g0int_lte<lintknd> =
g0int_lte_lint
implement g0int_gt<lintknd> =
g0int_gt_lint
implement g0int_gte<lintknd> =
g0int_gte_lint
implement g0int_eq<lintknd> =
g0int_eq_lint
implement g0int_neq<lintknd> =
g0int_neq_lint
implement g0int_compare<lintknd> =
g0int_compare_lint
implement g0int_max<lintknd> =
g0int_max_lint
implement g0int_min<lintknd> =
g0int_min_lint
//
implement fprint_val<lint> (out, x) =
fprint_lint((out, x))
//
implement g1int_neg<lintknd> =
g1int_neg_lint
implement g1int_abs<lintknd> =
g1int_abs_lint
implement g1int_succ<lintknd> =
g1int_succ_lint
implement g1int_pred<lintknd> =
g1int_pred_lint
implement g1int_half<lintknd> =
g1int_half_lint
implement g1int_add<lintknd> =
g1int_add_lint
implement g1int_sub<lintknd> =
g1int_sub_lint
implement g1int_mul<lintknd> =
g1int_mul_lint
implement g1int_div<lintknd> =
g1int_div_lint
implement g1int_nmod<lintknd> =
g1int_nmod_lint
implement g1int_isltz<lintknd> =
g1int_isltz_lint
implement g1int_isltez<lintknd> =
g1int_isltez_lint
implement g1int_isgtz<lintknd> =
g1int_isgtz_lint
implement g1int_isgtez<lintknd> =
g1int_isgtez_lint
implement g1int_iseqz<lintknd> =
g1int_iseqz_lint
implement g1int_isneqz<lintknd> =
g1int_isneqz_lint
implement g1int_lt<lintknd> =
g1int_lt_lint
implement g1int_lte<lintknd> =
g1int_lte_lint
implement g1int_gt<lintknd> =
g1int_gt_lint
implement g1int_gte<lintknd> =
g1int_gte_lint
implement g1int_eq<lintknd> =
g1int_eq_lint
implement g1int_neq<lintknd> =
g1int_neq_lint
implement g1int_compare<lintknd> =
g1int_compare_lint
implement g1int_max<lintknd> =
g1int_max_lint
implement g1int_min<lintknd> =
g1int_min_lint
//
(* ****** ****** *)
//
implement g0int_neg<llintknd> =
g0int_neg_llint
implement g0int_abs<llintknd> =
g0int_abs_llint
implement g0int_succ<llintknd> =
g0int_succ_llint
implement g0int_pred<llintknd> =
g0int_pred_llint
implement g0int_half<llintknd> =
g0int_half_llint
implement g0int_add<llintknd> =
g0int_add_llint
implement g0int_sub<llintknd> =
g0int_sub_llint
implement g0int_mul<llintknd> =
g0int_mul_llint
implement g0int_div<llintknd> =
g0int_div_llint
implement g0int_mod<llintknd> =
g0int_mod_llint
implement g0int_asl<llintknd> =
g0int_asl_llint
implement g0int_asr<llintknd> =
g0int_asr_llint
implement g0int_isltz<llintknd> =
g0int_isltz_llint
implement g0int_isltez<llintknd> =
g0int_isltez_llint
implement g0int_isgtz<llintknd> =
g0int_isgtz_llint
implement g0int_isgtez<llintknd> =
g0int_isgtez_llint
implement g0int_iseqz<llintknd> =
g0int_iseqz_llint
implement g0int_isneqz<llintknd> =
g0int_isneqz_llint
implement g0int_lt<llintknd> =
g0int_lt_llint
implement g0int_lte<llintknd> =
g0int_lte_llint
implement g0int_gt<llintknd> =
g0int_gt_llint
implement g0int_gte<llintknd> =
g0int_gte_llint
implement g0int_eq<llintknd> =
g0int_eq_llint
implement g0int_neq<llintknd> =
g0int_neq_llint
implement g0int_compare<llintknd> =
g0int_compare_llint
implement g0int_max<llintknd> =
g0int_max_llint
implement g0int_min<llintknd> =
g0int_min_llint
//
implement fprint_val<llint> (out, x) =
fprint_llint((out, x))
//
implement g1int_neg<llintknd> =
g1int_neg_llint
implement g1int_abs<llintknd> =
g1int_abs_llint
implement g1int_succ<llintknd> =
g1int_succ_llint
implement g1int_pred<llintknd> =
g1int_pred_llint
implement g1int_half<llintknd> =
g1int_half_llint
implement g1int_add<llintknd> =
g1int_add_llint
implement g1int_sub<llintknd> =
g1int_sub_llint
implement g1int_mul<llintknd> =
g1int_mul_llint
implement g1int_div<llintknd> =
g1int_div_llint
implement g1int_nmod<llintknd> =
g1int_nmod_llint
implement g1int_isltz<llintknd> =
g1int_isltz_llint
implement g1int_isltez<llintknd> =
g1int_isltez_llint
implement g1int_isgtz<llintknd> =
g1int_isgtz_llint
implement g1int_isgtez<llintknd> =
g1int_isgtez_llint
implement g1int_iseqz<llintknd> =
g1int_iseqz_llint
implement g1int_isneqz<llintknd> =
g1int_isneqz_llint
implement g1int_lt<llintknd> =
g1int_lt_llint
implement g1int_lte<llintknd> =
g1int_lte_llint
implement g1int_gt<llintknd> =
g1int_gt_llint
implement g1int_gte<llintknd> =
g1int_gte_llint
implement g1int_eq<llintknd> =
g1int_eq_llint
implement g1int_neq<llintknd> =
g1int_neq_llint
implement g1int_compare<llintknd> =
g1int_compare_llint
implement g1int_max<llintknd> =
g1int_max_llint
implement g1int_min<llintknd> =
g1int_min_llint
//
(* ****** ****** *)
//
implement g0uint_succ<ulintknd> =
g0uint_succ_ulint
implement g0uint_pred<ulintknd> =
g0uint_pred_ulint
implement g0uint_half<ulintknd> =
g0uint_half_ulint
implement g0uint_add<ulintknd> =
g0uint_add_ulint
implement g0uint_sub<ulintknd> =
g0uint_sub_ulint
implement g0uint_mul<ulintknd> =
g0uint_mul_ulint
implement g0uint_div<ulintknd> =
g0uint_div_ulint
implement g0uint_mod<ulintknd> =
g0uint_mod_ulint
implement g0uint_lsl<ulintknd> =
g0uint_lsl_ulint
implement g0uint_lsr<ulintknd> =
g0uint_lsr_ulint
implement g0uint_lnot<ulintknd> =
g0uint_lnot_ulint
implement g0uint_lor<ulintknd> =
g0uint_lor_ulint
implement g0uint_lxor<ulintknd> =
g0uint_lxor_ulint
implement g0uint_land<ulintknd> =
g0uint_land_ulint
implement g0uint_isgtz<ulintknd> =
g0uint_isgtz_ulint
implement g0uint_iseqz<ulintknd> =
g0uint_iseqz_ulint
implement g0uint_isneqz<ulintknd> =
g0uint_isneqz_ulint
implement g0uint_lt<ulintknd> =
g0uint_lt_ulint
implement g0uint_lte<ulintknd> =
g0uint_lte_ulint
implement g0uint_gt<ulintknd> =
g0uint_gt_ulint
implement g0uint_gte<ulintknd> =
g0uint_gte_ulint
implement g0uint_eq<ulintknd> =
g0uint_eq_ulint
implement g0uint_neq<ulintknd> =
g0uint_neq_ulint
implement g0uint_compare<ulintknd> =
g0uint_compare_ulint
implement g0uint_max<ulintknd> =
g0uint_max_ulint
implement g0uint_min<ulintknd> =
g0uint_min_ulint
//
implement fprint_val<ulint> (out, x) =
fprint_ulint((out, x))
//
implement g1uint_succ<ulintknd> =
g1uint_succ_ulint
implement g1uint_pred<ulintknd> =
g1uint_pred_ulint
implement g1uint_half<ulintknd> =
g1uint_half_ulint
implement g1uint_add<ulintknd> =
g1uint_add_ulint
implement g1uint_sub<ulintknd> =
g1uint_sub_ulint
implement g1uint_mul<ulintknd> =
g1uint_mul_ulint
implement g1uint_div<ulintknd> =
g1uint_div_ulint
implement g1uint_mod<ulintknd> =
g1uint_mod_ulint
implement g1uint_isgtz<ulintknd> =
g1uint_isgtz_ulint
implement g1uint_iseqz<ulintknd> =
g1uint_iseqz_ulint
implement g1uint_isneqz<ulintknd> =
g1uint_isneqz_ulint
implement g1uint_lt<ulintknd> =
g1uint_lt_ulint
implement g1uint_lte<ulintknd> =
g1uint_lte_ulint
implement g1uint_gt<ulintknd> =
g1uint_gt_ulint
implement g1uint_gte<ulintknd> =
g1uint_gte_ulint
implement g1uint_eq<ulintknd> =
g1uint_eq_ulint
implement g1uint_neq<ulintknd> =
g1uint_neq_ulint
implement g1uint_compare<ulintknd> =
g1uint_compare_ulint
implement g1uint_max<ulintknd> =
g1uint_max_ulint
implement g1uint_min<ulintknd> =
g1uint_min_ulint
//
(* ****** ****** *)
//
implement g0uint_succ<ullintknd> =
g0uint_succ_ullint
implement g0uint_pred<ullintknd> =
g0uint_pred_ullint
implement g0uint_half<ullintknd> =
g0uint_half_ullint
implement g0uint_add<ullintknd> =
g0uint_add_ullint
implement g0uint_sub<ullintknd> =
g0uint_sub_ullint
implement g0uint_mul<ullintknd> =
g0uint_mul_ullint
implement g0uint_div<ullintknd> =
g0uint_div_ullint
implement g0uint_mod<ullintknd> =
g0uint_mod_ullint
implement g0uint_lsl<ullintknd> =
g0uint_lsl_ullint
implement g0uint_lsr<ullintknd> =
g0uint_lsr_ullint
implement g0uint_lnot<ullintknd> =
g0uint_lnot_ullint
implement g0uint_lor<ullintknd> =
g0uint_lor_ullint
implement g0uint_lxor<ullintknd> =
g0uint_lxor_ullint
implement g0uint_land<ullintknd> =
g0uint_land_ullint
implement g0uint_isgtz<ullintknd> =
g0uint_isgtz_ullint
implement g0uint_iseqz<ullintknd> =
g0uint_iseqz_ullint
implement g0uint_isneqz<ullintknd> =
g0uint_isneqz_ullint
implement g0uint_lt<ullintknd> =
g0uint_lt_ullint
implement g0uint_lte<ullintknd> =
g0uint_lte_ullint
implement g0uint_gt<ullintknd> =
g0uint_gt_ullint
implement g0uint_gte<ullintknd> =
g0uint_gte_ullint
implement g0uint_eq<ullintknd> =
g0uint_eq_ullint
implement g0uint_neq<ullintknd> =
g0uint_neq_ullint
implement g0uint_compare<ullintknd> =
g0uint_compare_ullint
implement g0uint_max<ullintknd> =
g0uint_max_ullint
implement g0uint_min<ullintknd> =
g0uint_min_ullint
//
implement fprint_val<ullint> (out, x) =
fprint_ullint((out, x))
//
implement g1uint_succ<ullintknd> =
g1uint_succ_ullint
implement g1uint_pred<ullintknd> =
g1uint_pred_ullint
implement g1uint_half<ullintknd> =
g1uint_half_ullint
implement g1uint_add<ullintknd> =
g1uint_add_ullint
implement g1uint_sub<ullintknd> =
g1uint_sub_ullint
implement g1uint_mul<ullintknd> =
g1uint_mul_ullint
implement g1uint_div<ullintknd> =
g1uint_div_ullint
implement g1uint_mod<ullintknd> =
g1uint_mod_ullint
implement g1uint_isgtz<ullintknd> =
g1uint_isgtz_ullint
implement g1uint_iseqz<ullintknd> =
g1uint_iseqz_ullint
implement g1uint_isneqz<ullintknd> =
g1uint_isneqz_ullint
implement g1uint_lt<ullintknd> =
g1uint_lt_ullint
implement g1uint_lte<ullintknd> =
g1uint_lte_ullint
implement g1uint_gt<ullintknd> =
g1uint_gt_ullint
implement g1uint_gte<ullintknd> =
g1uint_gte_ullint
implement g1uint_eq<ullintknd> =
g1uint_eq_ullint
implement g1uint_neq<ullintknd> =
g1uint_neq_ullint
implement g1uint_compare<ullintknd> =
g1uint_compare_ullint
implement g1uint_max<ullintknd> =
g1uint_max_ullint
implement g1uint_min<ullintknd> =
g1uint_min_ullint
//
(* ****** ****** *)
//
implement nmod_g1int_int1<lintknd> (x, y) =
g1i2i(g1int_nmod<lintknd>(x, g1i2i(y)))
implement nmod_g1int_int1<llintknd> (x, y) =
g1i2i(g1int_nmod<llintknd>(x, g1i2i(y)))
//
(* ****** ****** *)
(* end of [integer_long.dats] *)