summaryrefslogtreecommitdiff
path: root/libguile/integers.h
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2022-01-04 12:01:56 +0100
committerAndy Wingo <wingo@pobox.com>2022-01-13 09:37:16 +0100
commit44bee085122262cbcbf2f7fae9aa38841bd2c10b (patch)
tree6be638a22f482fb12c5862ccf55980b266c254d0 /libguile/integers.h
parentef5ade30f91093d2bb8be9e4ca457d4da53ee408 (diff)
downloadguile-44bee085122262cbcbf2f7fae9aa38841bd2c10b.tar.gz
Reimplement = on integer lib, clean up scm_num_eq_p
* libguile/integers.h: * libguile/integers.c (scm_is_integer_equal_ir): (scm_is_integer_equal_ic): (scm_is_integer_equal_zz): (scm_is_integer_equal_zr): (scm_is_integer_equal_zc): New internal functions. * libguile/numbers.c (scm_num_eq_p): Rework to tail-recurse if we need to swap arguments, to reduce duplication, and use the new integer lib.
Diffstat (limited to 'libguile/integers.h')
-rw-r--r--libguile/integers.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/libguile/integers.h b/libguile/integers.h
index 8ac4ca55f..dca255175 100644
--- a/libguile/integers.h
+++ b/libguile/integers.h
@@ -147,6 +147,15 @@ SCM_INTERNAL SCM scm_integer_length_z (struct scm_bignum *n);
SCM_INTERNAL SCM scm_integer_to_string_i (scm_t_inum n, int base);
SCM_INTERNAL SCM scm_integer_to_string_z (struct scm_bignum *n, int base);
+SCM_INTERNAL int scm_is_integer_equal_ir (scm_t_inum x, double y);
+SCM_INTERNAL int scm_is_integer_equal_ic (scm_t_inum x,
+ double real, double imag);
+SCM_INTERNAL int scm_is_integer_equal_zz (struct scm_bignum *x,
+ struct scm_bignum *y);
+SCM_INTERNAL int scm_is_integer_equal_zr (struct scm_bignum *x, double y);
+SCM_INTERNAL int scm_is_integer_equal_zc (struct scm_bignum *x,
+ double real, double imag);
+
#endif /* SCM_INTEGERS_H */