diff options
author | Andy Wingo <wingo@pobox.com> | 2022-01-07 09:57:50 +0100 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2022-01-13 09:37:17 +0100 |
commit | 124d8892274e7293f12ac4d1c4bf0053d6d3a51d (patch) | |
tree | c04a78940a6238118eac398b76ee12ad17688950 /libguile/integers.h | |
parent | 63a18a6c1a2eae570c5de2b9eb866b20bc5e5e5e (diff) | |
download | guile-124d8892274e7293f12ac4d1c4bf0053d6d3a51d.tar.gz |
Refactor scm_sqrt in terms of integers.[ch]
* libguile/integers.h:
* libguile/integers.c (scm_is_integer_perfect_square_i):
(scm_is_integer_perfect_square_z):
(scm_integer_floor_sqrt_i):
(scm_integer_floor_sqrt_z):
(scm_integer_inexact_sqrt_i):
(scm_integer_inexact_sqrt_z): New internal functions.
* libguile/numbers.c (scm_sqrt): Reimplement.
Diffstat (limited to 'libguile/integers.h')
-rw-r--r-- | libguile/integers.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/libguile/integers.h b/libguile/integers.h index 1bba509ea..00706d553 100644 --- a/libguile/integers.h +++ b/libguile/integers.h @@ -216,6 +216,13 @@ SCM_INTERNAL void scm_integer_exact_sqrt_i (scm_t_inum k, SCM *s, SCM *r); SCM_INTERNAL void scm_integer_exact_sqrt_z (struct scm_bignum *k, SCM *s, SCM *r); +SCM_INTERNAL int scm_is_integer_perfect_square_i (scm_t_inum k); +SCM_INTERNAL int scm_is_integer_perfect_square_z (struct scm_bignum *k); +SCM_INTERNAL SCM scm_integer_floor_sqrt_i (scm_t_inum k); +SCM_INTERNAL SCM scm_integer_floor_sqrt_z (struct scm_bignum *k); +SCM_INTERNAL double scm_integer_inexact_sqrt_i (scm_t_inum k); +SCM_INTERNAL double scm_integer_inexact_sqrt_z (struct scm_bignum *k); + #endif /* SCM_INTEGERS_H */ |