summaryrefslogtreecommitdiff
path: root/libguile/integers.h
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2022-01-06 11:10:02 +0100
committerAndy Wingo <wingo@pobox.com>2022-01-13 09:37:16 +0100
commitf4db3ca3f9986477f6a8d4eddae8b88604e3f8a9 (patch)
treea289ceae1d4d36d90ba070c15efaddc34ffee7b3 /libguile/integers.h
parent7c53325c31b86198b6c021c5c2b62c3742363619 (diff)
downloadguile-f4db3ca3f9986477f6a8d4eddae8b88604e3f8a9.tar.gz
Reimplement scm_is_{un,}signed_integer for bignums
* libguile/integers.c (negative_int64): (int64_magnitude): (negative_uint64_to_int64): (positive_uint64_to_int64): (bignum_to_int64): (bignum_to_uint64): New helpers. (scm_integer_to_int64_z): (scm_integer_to_uint64_z): New internal functions. * libguile/integers.h: Declare internal functions. * libguile/numbers.c (scm_is_signed_integer): (scm_is_unsigned_integer): Simplify bigint cases.
Diffstat (limited to 'libguile/integers.h')
-rw-r--r--libguile/integers.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/libguile/integers.h b/libguile/integers.h
index bda575774..60e3ea9bd 100644
--- a/libguile/integers.h
+++ b/libguile/integers.h
@@ -199,6 +199,9 @@ SCM_INTERNAL SCM scm_integer_exact_quotient_zi (struct scm_bignum *n,
SCM_INTERNAL SCM scm_integer_exact_quotient_zz (struct scm_bignum *n,
struct scm_bignum *d);
+SCM_INTERNAL int scm_integer_to_int64_z (struct scm_bignum *z, int64_t *val);
+SCM_INTERNAL int scm_integer_to_uint64_z (struct scm_bignum *z, uint64_t *val);
+
#endif /* SCM_INTEGERS_H */