1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-10 14:00:21 +02:00

* scm_divbigbig and scm_divbigint are static now

and only return valid SCM values.
* Reordered some further dispatch sequences.
* Division by zero of inums leads to an error now.
This commit is contained in:
Dirk Herrmann 2000-05-03 12:35:56 +00:00
parent 3a6e66166a
commit f4c627b33b
3 changed files with 364 additions and 549 deletions

View file

@ -1,3 +1,31 @@
2000-05-03 Dirk Herrmann <D.Herrmann@tu-bs.de>
* numbers.c (scm_divbigbig, scm_divbigint), numbers.h
(scm_divbigbig, scm_divbigint): Don't return zero any more to
indicate that a division has a remainder, return SCM_UNDEFINED
instead. It is improbable that anyone actually used these
functions outside of numbers.c. For this reason and due to the
change in behaviour the functions are static now. Thus, if
surprisingly there are users of these functions they will at least
get alarmed.
* numbers.c: Removed #ifdef SCM_BIGDIG #endif in those functions,
that already have a clean dispatch order. Note: SCM_BIGDIG is
always defined.
* numbers.c (scm_inexact_p): Simplified.
* numbers.c (scm_num_eq_p, scm_less_p, scm_max, scm_min,
scm_product, scm_num2dbl, scm_angle): Reordered dispatch
sequence, thereby fixing some comparisons of SCM values with
integer constants.
* numbers.c (scm_divide): Division by zero of inums leads to an
error now. (Formerly, an infinite number was returned.)
Respect the fact, that scm_divbigbig does now return SCM_UNDEFINED
if a division has a remainder.
2000-05-02 Gary Houston <ghouston@arglist.com>
* Makefile.am (INCLUDES): add ${INCLTDL} (thanks to Tim Mooney).

File diff suppressed because it is too large Load diff

View file

@ -324,8 +324,6 @@ extern void scm_longdigs (long x, SCM_BIGDIG digs[]);
extern SCM scm_addbig (SCM_BIGDIG *x, scm_sizet nx, int xsgn, SCM bigy, int sgny);
extern SCM scm_mulbig (SCM_BIGDIG *x, scm_sizet nx, SCM_BIGDIG *y, scm_sizet ny, int sgn);
extern unsigned int scm_divbigdig (SCM_BIGDIG *ds, scm_sizet h, SCM_BIGDIG div);
extern SCM scm_divbigint (SCM x, long z, int sgn, int mode);
extern SCM scm_divbigbig (SCM_BIGDIG *x, scm_sizet nx, SCM_BIGDIG *y, scm_sizet ny, int sgn, int modes);
extern scm_sizet scm_iint2str (long num, int rad, char *p);
extern SCM scm_number_to_string (SCM x, SCM radix);
extern int scm_print_real (SCM sexp, SCM port, scm_print_state *pstate);