mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-29 16:30:19 +02:00
* eq.c (scm_eqv_p, scm_equal_p): Removed uses of
SCM_SLOPPY_INEXACTP, SCM_SLOPPY_REALP and SCM_SLOPPY_COMPLEXP. * eq.c (scm_eqv_p, scm_equal_p): Reordered comparisons from 0.0==some_expression to some_expression==0.0. The latter is better readable. The former is preferred by some people, since it leads to a compiler error when confusing == with =. However, when using gcc, a warning will be issued if in an if-statement an assigment appears. Since many Guile developers are using gcc, such errors will not remain unnoticed anyway. We can therefore focus on better readability.
This commit is contained in:
parent
7e3b25bf51
commit
6b412e9171
2 changed files with 27 additions and 13 deletions
|
@ -1,3 +1,17 @@
|
||||||
|
2003-09-06 Dirk Herrmann <D.Herrmann@tu-bs.de>
|
||||||
|
|
||||||
|
* eq.c (scm_eqv_p, scm_equal_p): Removed uses of
|
||||||
|
SCM_SLOPPY_INEXACTP, SCM_SLOPPY_REALP and SCM_SLOPPY_COMPLEXP.
|
||||||
|
|
||||||
|
* eq.c (scm_eqv_p, scm_equal_p): Reordered comparisons from
|
||||||
|
0.0==some_expression to some_expression==0.0. The latter is
|
||||||
|
better readable. The former is preferred by some people, since it
|
||||||
|
leads to a compiler error when confusing == with =. However, when
|
||||||
|
using gcc, a warning will be issued if in an if-statement an
|
||||||
|
assigment appears. Since many Guile developers are using gcc,
|
||||||
|
such errors will not remain unnoticed anyway. We can therefore
|
||||||
|
focus on better readability.
|
||||||
|
|
||||||
2003-09-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
|
2003-09-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
|
||||||
|
|
||||||
* tags.h: Added description of Guile's type system. Removed some
|
* tags.h: Added description of Guile's type system. Removed some
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* Copyright (C) 1995,1996,1997,1998,2000,2001, 2003 Free Software Foundation, Inc.
|
/* Copyright (C) 1995,1996,1997,1998,2000,2001,2003 Free Software Foundation, Inc.
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
@ -80,15 +80,15 @@ SCM_PRIMITIVE_GENERIC_1 (scm_eqv_p, "eqv?", scm_tc7_rpsubr,
|
||||||
if (SCM_CELL_TYPE (x) != SCM_CELL_TYPE (y))
|
if (SCM_CELL_TYPE (x) != SCM_CELL_TYPE (y))
|
||||||
{
|
{
|
||||||
/* treat mixes of real and complex types specially */
|
/* treat mixes of real and complex types specially */
|
||||||
if (SCM_SLOPPY_INEXACTP (x))
|
if (SCM_INEXACTP (x))
|
||||||
{
|
{
|
||||||
if (SCM_SLOPPY_REALP (x))
|
if (SCM_REALP (x))
|
||||||
return SCM_BOOL (SCM_SLOPPY_COMPLEXP (y)
|
return SCM_BOOL (SCM_COMPLEXP (y)
|
||||||
&& real_eqv (SCM_REAL_VALUE (x),
|
&& real_eqv (SCM_REAL_VALUE (x),
|
||||||
SCM_COMPLEX_REAL (y))
|
SCM_COMPLEX_REAL (y))
|
||||||
&& 0.0 == SCM_COMPLEX_IMAG (y));
|
&& SCM_COMPLEX_IMAG (y) == 0.0);
|
||||||
else
|
else
|
||||||
return SCM_BOOL (SCM_SLOPPY_REALP (y)
|
return SCM_BOOL (SCM_REALP (y)
|
||||||
&& real_eqv (SCM_COMPLEX_REAL (x),
|
&& real_eqv (SCM_COMPLEX_REAL (x),
|
||||||
SCM_REAL_VALUE (y))
|
SCM_REAL_VALUE (y))
|
||||||
&& SCM_COMPLEX_IMAG (x) == 0.0);
|
&& SCM_COMPLEX_IMAG (x) == 0.0);
|
||||||
|
@ -98,8 +98,8 @@ SCM_PRIMITIVE_GENERIC_1 (scm_eqv_p, "eqv?", scm_tc7_rpsubr,
|
||||||
if (SCM_NUMP (x))
|
if (SCM_NUMP (x))
|
||||||
{
|
{
|
||||||
if (SCM_BIGP (x)) {
|
if (SCM_BIGP (x)) {
|
||||||
return SCM_BOOL (0 == scm_i_bigcmp (x, y));
|
return SCM_BOOL (scm_i_bigcmp (x, y) == 0);
|
||||||
} else if (SCM_SLOPPY_REALP (x)) {
|
} else if (SCM_REALP (x)) {
|
||||||
return SCM_BOOL (real_eqv (SCM_REAL_VALUE (x), SCM_REAL_VALUE (y)));
|
return SCM_BOOL (real_eqv (SCM_REAL_VALUE (x), SCM_REAL_VALUE (y)));
|
||||||
} else { /* complex */
|
} else { /* complex */
|
||||||
return SCM_BOOL (real_eqv (SCM_COMPLEX_REAL (x),
|
return SCM_BOOL (real_eqv (SCM_COMPLEX_REAL (x),
|
||||||
|
@ -149,14 +149,14 @@ SCM_PRIMITIVE_GENERIC_1 (scm_equal_p, "equal?", scm_tc7_rpsubr,
|
||||||
if (SCM_CELL_TYPE (x) != SCM_CELL_TYPE (y))
|
if (SCM_CELL_TYPE (x) != SCM_CELL_TYPE (y))
|
||||||
{
|
{
|
||||||
/* treat mixes of real and complex types specially */
|
/* treat mixes of real and complex types specially */
|
||||||
if (SCM_SLOPPY_INEXACTP (x))
|
if (SCM_INEXACTP (x))
|
||||||
{
|
{
|
||||||
if (SCM_SLOPPY_REALP (x))
|
if (SCM_REALP (x))
|
||||||
return SCM_BOOL (SCM_SLOPPY_COMPLEXP (y)
|
return SCM_BOOL (SCM_COMPLEXP (y)
|
||||||
&& SCM_REAL_VALUE (x) == SCM_COMPLEX_REAL (y)
|
&& SCM_REAL_VALUE (x) == SCM_COMPLEX_REAL (y)
|
||||||
&& 0.0 == SCM_COMPLEX_IMAG (y));
|
&& SCM_COMPLEX_IMAG (y) == 0.0);
|
||||||
else
|
else
|
||||||
return SCM_BOOL (SCM_SLOPPY_REALP (y)
|
return SCM_BOOL (SCM_REALP (y)
|
||||||
&& SCM_COMPLEX_REAL (x) == SCM_REAL_VALUE (y)
|
&& SCM_COMPLEX_REAL (x) == SCM_REAL_VALUE (y)
|
||||||
&& SCM_COMPLEX_IMAG (x) == 0.0);
|
&& SCM_COMPLEX_IMAG (x) == 0.0);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue