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:
parent
3a6e66166a
commit
f4c627b33b
3 changed files with 364 additions and 549 deletions
|
@ -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
|
@ -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);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue