mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-12 06:41:13 +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>
|
2000-05-02 Gary Houston <ghouston@arglist.com>
|
||||||
|
|
||||||
* Makefile.am (INCLUDES): add ${INCLTDL} (thanks to Tim Mooney).
|
* 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_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 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 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_sizet scm_iint2str (long num, int rad, char *p);
|
||||||
extern SCM scm_number_to_string (SCM x, SCM radix);
|
extern SCM scm_number_to_string (SCM x, SCM radix);
|
||||||
extern int scm_print_real (SCM sexp, SCM port, scm_print_state *pstate);
|
extern int scm_print_real (SCM sexp, SCM port, scm_print_state *pstate);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue