summaryrefslogtreecommitdiff
path: root/libguile/integers.h
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2022-01-04 13:54:12 +0100
committerAndy Wingo <wingo@pobox.com>2022-01-13 09:37:16 +0100
commit54d77225236004cbc2d9a00b25db8bc440652e33 (patch)
tree6beeab5a3bfaaea0f4f418e6c4879d69943504ba /libguile/integers.h
parent44bee085122262cbcbf2f7fae9aa38841bd2c10b (diff)
downloadguile-54d77225236004cbc2d9a00b25db8bc440652e33.tar.gz
Clean up <, reimplement in terms of integer lib
* libguile/numbers.c (scm_is_less_than, scm_is_greater_than): (scm_is_less_than_or_equal, scm_is_greater_than_or_equal): New internal functions. (scm_less_p, scm_gr_p, scm_leq_p, scm_geq_p): Use new helpers. Dispatch to generics if operands aren't real -- a tightening relative to the previous check which was just for numbers. * libguile/integers.h: * libguile/integers.c (scm_is_integer_less_than_ir): (scm_is_integer_less_than_ri): (scm_is_integer_less_than_zz): (scm_is_integer_less_than_zr): (scm_is_integer_less_than_rz): (scm_is_integer_positive_z): (scm_is_integer_negative_z): New internal functions.
Diffstat (limited to 'libguile/integers.h')
-rw-r--r--libguile/integers.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/libguile/integers.h b/libguile/integers.h
index dca255175..bd9f528b0 100644
--- a/libguile/integers.h
+++ b/libguile/integers.h
@@ -156,6 +156,16 @@ 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);
+SCM_INTERNAL int scm_is_integer_less_than_ir (scm_t_inum x, double y);
+SCM_INTERNAL int scm_is_integer_less_than_ri (double x, scm_t_inum y);
+SCM_INTERNAL int scm_is_integer_less_than_zz (struct scm_bignum *x,
+ struct scm_bignum *y);
+SCM_INTERNAL int scm_is_integer_less_than_zr (struct scm_bignum *x, double y);
+SCM_INTERNAL int scm_is_integer_less_than_rz (double y, struct scm_bignum *x);
+
+SCM_INTERNAL int scm_is_integer_positive_z (struct scm_bignum *x);
+SCM_INTERNAL int scm_is_integer_negative_z (struct scm_bignum *x);
+
#endif /* SCM_INTEGERS_H */