[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Guile-commits] 59/69: Remove dead bignum frexp code from numbers.c
From: |
Andy Wingo |
Subject: |
[Guile-commits] 59/69: Remove dead bignum frexp code from numbers.c |
Date: |
Fri, 7 Jan 2022 08:27:23 -0500 (EST) |
wingo pushed a commit to branch wip-inline-digits
in repository guile.
commit 2bfb43114e5c8b232ebc04a127abb42b5b7440ba
Author: Andy Wingo <wingo@pobox.com>
AuthorDate: Fri Jan 7 10:37:29 2022 +0100
Remove dead bignum frexp code from numbers.c
* libguile/numbers.c (scm_i_big2dbl_2exp): Remove unused function.
---
libguile/numbers.c | 46 ----------------------------------------------
1 file changed, 46 deletions(-)
diff --git a/libguile/numbers.c b/libguile/numbers.c
index 7eaac3dc4..98aff6e1f 100644
--- a/libguile/numbers.c
+++ b/libguile/numbers.c
@@ -338,52 +338,6 @@ scm_i_clonebig (SCM src_big, int same_sign_p)
return z;
}
-static SCM round_rsh (SCM n, SCM count);
-
-/* scm_i_big2dbl_2exp() is like frexp for bignums: it converts the
- bignum b into a normalized significand and exponent such that
- b = significand * 2^exponent and 1/2 <= abs(significand) < 1.
- The return value is the significand rounded to the closest
- representable double, and the exponent is placed into *expon_p.
- If b is zero, then the returned exponent and significand are both
- zero. */
-
-static double
-scm_i_big2dbl_2exp (SCM b, long *expon_p)
-{
- size_t bits = mpz_sizeinbase (SCM_I_BIG_MPZ (b), 2);
- size_t shift = 0;
-
- if (bits > DBL_MANT_DIG)
- {
- shift = bits - DBL_MANT_DIG;
- b = round_rsh (b, scm_from_size_t (shift));
- if (SCM_I_INUMP (b))
- {
- int expon;
- double signif = frexp (SCM_I_INUM (b), &expon);
- *expon_p = expon + shift;
- return signif;
- }
- }
-
- {
- long expon;
- double signif;
-#if SCM_ENABLE_MINI_GMP
- int iexpon;
- signif = mpz_get_d (SCM_I_BIG_MPZ (b));
- signif = frexp (signif, &iexpon);
- expon = (long) iexpon;
-#else
- signif = mpz_get_d_2exp (&expon, SCM_I_BIG_MPZ (b));
-#endif
- scm_remember_upto_here_1 (b);
- *expon_p = expon + shift;
- return signif;
- }
-}
-
/* scm_i_big2dbl() rounds to the closest representable double,
in accordance with R5RS exact->inexact. */
double
- [Guile-commits] 31/69: Implement scm_bit_extract with new integer library, (continued)
- [Guile-commits] 31/69: Implement scm_bit_extract with new integer library, Andy Wingo, 2022/01/07
- [Guile-commits] 34/69: Implement scm_integer_length with new integer library, Andy Wingo, 2022/01/07
- [Guile-commits] 42/69: Clean up scm_sum, Andy Wingo, 2022/01/07
- [Guile-commits] 43/69: Simplify scm_difference, use integer lib, Andy Wingo, 2022/01/07
- [Guile-commits] 44/69: Simplify scm_product, use integer lib, Andy Wingo, 2022/01/07
- [Guile-commits] 52/69: Reimplement scm_{to,from}_{int64,uint64}, Andy Wingo, 2022/01/07
- [Guile-commits] 53/69: Implement scm_{to,from}_wchar inline, Andy Wingo, 2022/01/07
- [Guile-commits] 60/69: divide2double refactor, Andy Wingo, 2022/01/07
- [Guile-commits] 65/69: Avoid scm_i_mkbig outside numbers.c., Andy Wingo, 2022/01/07
- [Guile-commits] 57/69: Refactor scm_sqrt in terms of integers.[ch], Andy Wingo, 2022/01/07
- [Guile-commits] 59/69: Remove dead bignum frexp code from numbers.c,
Andy Wingo <=
- [Guile-commits] 47/69: Fix deprecated bit-count* when counting 0 bits, Andy Wingo, 2022/01/07
- [Guile-commits] 49/69: Reimplement scm_is_{un, }signed_integer for bignums, Andy Wingo, 2022/01/07
- [Guile-commits] 51/69: Reimplement scm_{to,from}_{int32,uint32}, Andy Wingo, 2022/01/07
- [Guile-commits] 45/69: Remove support for allowing exact numbers to be divided by zero, Andy Wingo, 2022/01/07
- [Guile-commits] 50/69: Reimplement scm_from_int8 etc, Andy Wingo, 2022/01/07
- [Guile-commits] 56/69: Reimplement exact-integer-sqrt with integers.[ch], Andy Wingo, 2022/01/07
- [Guile-commits] 55/69: scm_to_mpz uses integer lib, Andy Wingo, 2022/01/07
- [Guile-commits] 62/69: Remove last non-admin SCM_I_BIG_MPZ uses in numbers.c, Andy Wingo, 2022/01/07
- [Guile-commits] 61/69: Simplify scm_exact_integer_quotient, Andy Wingo, 2022/01/07
- [Guile-commits] 63/69: Simplify magnitude, angle, Andy Wingo, 2022/01/07