/* Copyright (C) 2015-2020, Dirk Krause SPDX-License-Identifier: BSD-3-Clause */ /* WARNING: This file was generated by the dkct program (see http://dktools.sourceforge.net/ for details). Changes you make here will be lost if dkct is run again! You should modify the original source and run dkct on it. Original source: dk4maadu.ctr */ /** @file dk4maadu.c The dk4maadu module. */ #line 137 "dk4maadu.ctr" #include "dk4conf.h" #include "dk4types.h" #include "dk4error.h" #include "dk4numco.h" #if DK4_HAVE_INTMAX_T #include "dk4maamu.h" #else #if DK4_HAVE_LONG_LONG #include "dk4maalu.h" #else #include "dk4maaul.h" #endif #endif #include "dk4maadu.h" #line 158 "dk4maadu.ctr" dk4_um_t dk4ma_um_add(dk4_um_t a, dk4_um_t b, dk4_er_t *erp) { #if DK4_HAVE_INTMAX_T return (dk4ma_uintmax_t_add(a, b, erp)); #else #if DK4_HAVE_LONG_LONG return (dk4ma_ull_add(a, b, erp)); #else return (dk4ma_ulong_add(a, b, erp)); #endif #endif } dk4_um_t dk4ma_um_sub(dk4_um_t a, dk4_um_t b, dk4_er_t *erp) { #if DK4_HAVE_INTMAX_T return (dk4ma_uintmax_t_sub(a, b, erp)); #else #if DK4_HAVE_LONG_LONG return (dk4ma_ull_sub(a, b, erp)); #else return (dk4ma_ulong_sub(a, b, erp)); #endif #endif } dk4_um_t dk4ma_um_mul(dk4_um_t a, dk4_um_t b, dk4_er_t *erp) { #if DK4_HAVE_INTMAX_T return (dk4ma_uintmax_t_mul(a, b, erp)); #else #if DK4_HAVE_LONG_LONG return (dk4ma_ull_mul(a, b, erp)); #else return (dk4ma_ulong_mul(a, b, erp)); #endif #endif } dk4_um_t dk4ma_um_div(dk4_um_t a, dk4_um_t b, dk4_er_t *erp) { #if DK4_HAVE_INTMAX_T return (dk4ma_uintmax_t_div(a, b,erp)); #else #if DK4_HAVE_LONG_LONG return (dk4ma_ull_div(a, b, erp)); #else return (dk4ma_ulong_div(a, b, erp)); #endif #endif } dk4_um_t dk4ma_um_gcd(dk4_um_t a, dk4_um_t b) { dk4_um_t h; #line 230 "dk4maadu.ctr" while (0UL < b) { h = a % b; a = b; b = h; } if (0UL == a) { a = 1UL; } #line 236 "dk4maadu.ctr" return a; } dk4_um_t dk4ma_um_lcm(dk4_um_t a, dk4_um_t b, dk4_er_t *erp) { return( dk4ma_um_mul( dk4ma_um_div(a, dk4ma_um_gcd(a, b), erp), b, erp ) ); } int dk4ma_um_isgr(dk4_um_t a, dk4_um_t b) { return ((a > b) ? ((int)1) : ((int)0)); } int dk4ma_um_isgeq(dk4_um_t a, dk4_um_t b) { return ((a >= b) ? ((int)1) : ((int)0)); } /* vim: set ai sw=4 ts=4 : */