From 5a0ff887b2bdb6d3643b85a7f7042ae20a30e8ab Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Sat, 6 Dec 2025 16:24:06 +0100 Subject: Use libj2 for double-max precision integers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- libquanta_bigint_divmod_small__.c | 34 ---------------------------------- 1 file changed, 34 deletions(-) delete mode 100644 libquanta_bigint_divmod_small__.c (limited to 'libquanta_bigint_divmod_small__.c') diff --git a/libquanta_bigint_divmod_small__.c b/libquanta_bigint_divmod_small__.c deleted file mode 100644 index a2c345f..0000000 --- a/libquanta_bigint_divmod_small__.c +++ /dev/null @@ -1,34 +0,0 @@ -/* See LICENSE file for copyright and license details. */ -#include "common.h" - - -uintmax_t -libquanta_bigint_divmod_small__(struct bigint *big, uintmax_t small) -{ - uintmax_t q = 0, hi, lo; - int e = 8 * (int)sizeof(small); - -#if 0 /* this would overflow (undefined behaviour) and not fit in the result */ - q = big->high / small; - q <<= 8 * (int)sizeof(small); -#endif - big->high %= small; - - while (big->high && --e) { - hi = small >> (8 * (int)sizeof(small) - e); - lo = small << e; - - if (hi > big->high) - continue; - if (hi == big->high && lo > big->low) - continue; - - q |= (uintmax_t)1 << e; - bigint_sub_small(big, lo); - big->high -= hi; - } - - q += big->low / small; - big->low %= small; - return q; -} -- cgit v1.2.3-70-g09d2