(***********************************************************************) (* *) (* 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 = g0int2int_int_lint implement g1int2int = g1int2int_int_lint // implement g0uint2int = g0uint2int_uint_lint implement g1uint2int = g1uint2int_uint_lint // (* ****** ****** *) // implement g0int2uint = g0int2uint_int_ulint implement g1int2uint = g1int2uint_int_ulint // implement g0uint2uint = g0uint2uint_uint_ulint implement g1uint2uint = g1uint2uint_uint_ulint // (* ****** ****** *) // implement g0int2int = g0int2int_int_llint implement g1int2int = g1int2int_int_llint // implement g0uint2int = g0uint2int_uint_llint implement g1uint2int = g1uint2int_uint_llint // (* ****** ****** *) // implement g0int2uint = g0int2uint_int_ullint implement g1int2uint = g1int2uint_int_ullint // implement g0uint2uint = g0uint2uint_uint_ullint implement g1uint2uint = g1uint2uint_uint_ullint // (* ****** ****** *) // implement g0int2int = g0int2int_lint_lint implement g0int2int = g0int2int_lint_llint // implement g0int2uint = g0int2uint_lint_ulint implement g0int2uint = g0int2uint_lint_ullint // (* ****** ****** *) // implement g0uint2int = g0uint2int_ulint_lint implement g0uint2int = g0uint2int_ulint_llint // implement g0uint2uint = g0uint2uint_ulint_ulint implement g0uint2uint = g0uint2uint_ulint_ullint // (* ****** ****** *) // implement g0int2int = g0int2int_llint_llint // implement g0int2uint = g0int2uint_llint_ullint // (* ****** ****** *) // implement g0uint2int = g0uint2int_ullint_llint // implement g0uint2uint = g0uint2uint_ullint_ullint // (* ****** ****** *) // implement g0int2string = g0int2string_lint implement g0int2string = g0int2string_llint // implement g0string2int = g0string2int_lint implement g0string2int = g0string2int_llint implement g0string2uint = g0string2uint_ulint implement g0string2uint = g0string2uint_ullint // (* ****** ****** *) // implement g0int_neg = g0int_neg_lint implement g0int_abs = g0int_abs_lint implement g0int_succ = g0int_succ_lint implement g0int_pred = g0int_pred_lint implement g0int_half = g0int_half_lint implement g0int_add = g0int_add_lint implement g0int_sub = g0int_sub_lint implement g0int_mul = g0int_mul_lint implement g0int_div = g0int_div_lint implement g0int_mod = g0int_mod_lint implement g0int_asl = g0int_asl_lint implement g0int_asr = g0int_asr_lint implement g0int_isltz = g0int_isltz_lint implement g0int_isltez = g0int_isltez_lint implement g0int_isgtz = g0int_isgtz_lint implement g0int_isgtez = g0int_isgtez_lint implement g0int_iseqz = g0int_iseqz_lint implement g0int_isneqz = g0int_isneqz_lint implement g0int_lt = g0int_lt_lint implement g0int_lte = g0int_lte_lint implement g0int_gt = g0int_gt_lint implement g0int_gte = g0int_gte_lint implement g0int_eq = g0int_eq_lint implement g0int_neq = g0int_neq_lint implement g0int_compare = g0int_compare_lint implement g0int_max = g0int_max_lint implement g0int_min = g0int_min_lint // implement fprint_val (out, x) = fprint_lint (out, x)// implement g1int_neg = g1int_neg_lint implement g1int_abs = g1int_abs_lint implement g1int_succ = g1int_succ_lint implement g1int_pred = g1int_pred_lint implement g1int_half = g1int_half_lint implement g1int_add = g1int_add_lint implement g1int_sub = g1int_sub_lint implement g1int_mul = g1int_mul_lint implement g1int_div = g1int_div_lint implement g1int_nmod = g1int_nmod_lint implement g1int_isltz = g1int_isltz_lint implement g1int_isltez = g1int_isltez_lint implement g1int_isgtz = g1int_isgtz_lint implement g1int_isgtez = g1int_isgtez_lint implement g1int_iseqz = g1int_iseqz_lint implement g1int_isneqz = g1int_isneqz_lint implement g1int_lt = g1int_lt_lint implement g1int_lte = g1int_lte_lint implement g1int_gt = g1int_gt_lint implement g1int_gte = g1int_gte_lint implement g1int_eq = g1int_eq_lint implement g1int_neq = g1int_neq_lint implement g1int_compare = g1int_compare_lint implement g1int_max = g1int_max_lint implement g1int_min = g1int_min_lint // (* ****** ****** *) // implement g0int_neg = g0int_neg_llint implement g0int_abs = g0int_abs_llint implement g0int_succ = g0int_succ_llint implement g0int_pred = g0int_pred_llint implement g0int_half = g0int_half_llint implement g0int_add = g0int_add_llint implement g0int_sub = g0int_sub_llint implement g0int_mul = g0int_mul_llint implement g0int_div = g0int_div_llint implement g0int_mod = g0int_mod_llint implement g0int_asl = g0int_asl_llint implement g0int_asr = g0int_asr_llint implement g0int_isltz = g0int_isltz_llint implement g0int_isltez = g0int_isltez_llint implement g0int_isgtz = g0int_isgtz_llint implement g0int_isgtez = g0int_isgtez_llint implement g0int_iseqz = g0int_iseqz_llint implement g0int_isneqz = g0int_isneqz_llint implement g0int_lt = g0int_lt_llint implement g0int_lte = g0int_lte_llint implement g0int_gt = g0int_gt_llint implement g0int_gte = g0int_gte_llint implement g0int_eq = g0int_eq_llint implement g0int_neq = g0int_neq_llint implement g0int_compare = g0int_compare_llint implement g0int_max = g0int_max_llint implement g0int_min = g0int_min_llint // implement fprint_val (out, x) = fprint_llint (out, x)// implement g1int_neg = g1int_neg_llint implement g1int_abs = g1int_abs_llint implement g1int_succ = g1int_succ_llint implement g1int_pred = g1int_pred_llint implement g1int_half = g1int_half_llint implement g1int_add = g1int_add_llint implement g1int_sub = g1int_sub_llint implement g1int_mul = g1int_mul_llint implement g1int_div = g1int_div_llint implement g1int_nmod = g1int_nmod_llint implement g1int_isltz = g1int_isltz_llint implement g1int_isltez = g1int_isltez_llint implement g1int_isgtz = g1int_isgtz_llint implement g1int_isgtez = g1int_isgtez_llint implement g1int_iseqz = g1int_iseqz_llint implement g1int_isneqz = g1int_isneqz_llint implement g1int_lt = g1int_lt_llint implement g1int_lte = g1int_lte_llint implement g1int_gt = g1int_gt_llint implement g1int_gte = g1int_gte_llint implement g1int_eq = g1int_eq_llint implement g1int_neq = g1int_neq_llint implement g1int_compare = g1int_compare_llint implement g1int_max = g1int_max_llint implement g1int_min = g1int_min_llint // (* ****** ****** *) // implement g0uint_succ = g0uint_succ_ulint implement g0uint_pred = g0uint_pred_ulint implement g0uint_half = g0uint_half_ulint implement g0uint_add = g0uint_add_ulint implement g0uint_sub = g0uint_sub_ulint implement g0uint_mul = g0uint_mul_ulint implement g0uint_div = g0uint_div_ulint implement g0uint_mod = g0uint_mod_ulint implement g0uint_lsl = g0uint_lsl_ulint implement g0uint_lsr = g0uint_lsr_ulint implement g0uint_lnot = g0uint_lnot_ulint implement g0uint_lor = g0uint_lor_ulint implement g0uint_lxor = g0uint_lxor_ulint implement g0uint_land = g0uint_land_ulint implement g0uint_isgtz = g0uint_isgtz_ulint implement g0uint_iseqz = g0uint_iseqz_ulint implement g0uint_isneqz = g0uint_isneqz_ulint implement g0uint_lt = g0uint_lt_ulint implement g0uint_lte = g0uint_lte_ulint implement g0uint_gt = g0uint_gt_ulint implement g0uint_gte = g0uint_gte_ulint implement g0uint_eq = g0uint_eq_ulint implement g0uint_neq = g0uint_neq_ulint implement g0uint_compare = g0uint_compare_ulint implement g0uint_max = g0uint_max_ulint implement g0uint_min = g0uint_min_ulint // implement fprint_val (out, x) = fprint_ulint (out, x)// implement g1uint_succ = g1uint_succ_ulint implement g1uint_pred = g1uint_pred_ulint implement g1uint_half = g1uint_half_ulint implement g1uint_add = g1uint_add_ulint implement g1uint_sub = g1uint_sub_ulint implement g1uint_mul = g1uint_mul_ulint implement g1uint_div = g1uint_div_ulint implement g1uint_mod = g1uint_mod_ulint implement g1uint_isgtz = g1uint_isgtz_ulint implement g1uint_iseqz = g1uint_iseqz_ulint implement g1uint_isneqz = g1uint_isneqz_ulint implement g1uint_lt = g1uint_lt_ulint implement g1uint_lte = g1uint_lte_ulint implement g1uint_gt = g1uint_gt_ulint implement g1uint_gte = g1uint_gte_ulint implement g1uint_eq = g1uint_eq_ulint implement g1uint_neq = g1uint_neq_ulint implement g1uint_compare = g1uint_compare_ulint implement g1uint_max = g1uint_max_ulint implement g1uint_min = g1uint_min_ulint // (* ****** ****** *) // implement g0uint_succ = g0uint_succ_ullint implement g0uint_pred = g0uint_pred_ullint implement g0uint_half = g0uint_half_ullint implement g0uint_add = g0uint_add_ullint implement g0uint_sub = g0uint_sub_ullint implement g0uint_mul = g0uint_mul_ullint implement g0uint_div = g0uint_div_ullint implement g0uint_mod = g0uint_mod_ullint implement g0uint_lsl = g0uint_lsl_ullint implement g0uint_lsr = g0uint_lsr_ullint implement g0uint_lnot = g0uint_lnot_ullint implement g0uint_lor = g0uint_lor_ullint implement g0uint_lxor = g0uint_lxor_ullint implement g0uint_land = g0uint_land_ullint implement g0uint_isgtz = g0uint_isgtz_ullint implement g0uint_iseqz = g0uint_iseqz_ullint implement g0uint_isneqz = g0uint_isneqz_ullint implement g0uint_lt = g0uint_lt_ullint implement g0uint_lte = g0uint_lte_ullint implement g0uint_gt = g0uint_gt_ullint implement g0uint_gte = g0uint_gte_ullint implement g0uint_eq = g0uint_eq_ullint implement g0uint_neq = g0uint_neq_ullint implement g0uint_compare = g0uint_compare_ullint implement g0uint_max = g0uint_max_ullint implement g0uint_min = g0uint_min_ullint // implement fprint_val (out, x) = fprint_ullint (out, x)// implement g1uint_succ = g1uint_succ_ullint implement g1uint_pred = g1uint_pred_ullint implement g1uint_half = g1uint_half_ullint implement g1uint_add = g1uint_add_ullint implement g1uint_sub = g1uint_sub_ullint implement g1uint_mul = g1uint_mul_ullint implement g1uint_div = g1uint_div_ullint implement g1uint_mod = g1uint_mod_ullint implement g1uint_isgtz = g1uint_isgtz_ullint implement g1uint_iseqz = g1uint_iseqz_ullint implement g1uint_isneqz = g1uint_isneqz_ullint implement g1uint_lt = g1uint_lt_ullint implement g1uint_lte = g1uint_lte_ullint implement g1uint_gt = g1uint_gt_ullint implement g1uint_gte = g1uint_gte_ullint implement g1uint_eq = g1uint_eq_ullint implement g1uint_neq = g1uint_neq_ullint implement g1uint_compare = g1uint_compare_ullint implement g1uint_max = g1uint_max_ullint implement g1uint_min = g1uint_min_ullint // (* ****** ****** *) // implement nmod_g1int_int1 (x, y) = g1i2i(g1int_nmod(x, g1i2i(y))) implement nmod_g1int_int1 (x, y) = g1i2i(g1int_nmod(x, g1i2i(y))) // (* ****** ****** *) (* end of [integer_long.dats] *)