diff options
author | Andy Wingo <wingo@pobox.com> | 2022-01-04 13:54:12 +0100 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2022-01-13 09:37:16 +0100 |
commit | 54d77225236004cbc2d9a00b25db8bc440652e33 (patch) | |
tree | 6beeab5a3bfaaea0f4f418e6c4879d69943504ba /libguile/integers.h | |
parent | 44bee085122262cbcbf2f7fae9aa38841bd2c10b (diff) | |
download | guile-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.h | 10 |
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 */ |