unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* sqrt with negative arg.
@ 2003-12-31 21:36 Luc Teirlinck
  2004-01-01  6:24 ` Eli Zaretskii
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Luc Teirlinck @ 2003-12-31 21:36 UTC (permalink / raw)


A few hours ago, the documentation of sqrt in numbers.texi was
changed from saying that it returns a NaN to saying that it signals a
domain-error.  It definitely returns a NaN on my machine.  What about
the following, which I could install if we agree on it:

===File ~/numbers-d31-diff==================================
*** numbers.texi.~1.32.~	Wed Dec 31 08:53:21 2003
--- numbers.texi	Wed Dec 31 15:20:59 2003
***************
*** 1146,1152 ****
  
  @defun sqrt arg
  This returns the square root of @var{arg}.  If @var{arg} is negative,
! it signals a @code{domain-error} error.
  @end defun
  
  @node Random Numbers
--- 1146,1153 ----
  
  @defun sqrt arg
  This returns the square root of @var{arg}.  If @var{arg} is negative,
! @code{sqrt} could return a NaN or signal a @code{domain-error} error,
! depending on the implementation.
  @end defun
  
  @node Random Numbers
============================================================

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: sqrt with negative arg.
  2003-12-31 21:36 sqrt with negative arg Luc Teirlinck
@ 2004-01-01  6:24 ` Eli Zaretskii
  2004-01-01 16:30 ` Richard Stallman
  2004-01-01 17:22 ` Andreas Schwab
  2 siblings, 0 replies; 6+ messages in thread
From: Eli Zaretskii @ 2004-01-01  6:24 UTC (permalink / raw)
  Cc: emacs-devel

> Date: Wed, 31 Dec 2003 15:36:31 -0600 (CST)
> From: Luc Teirlinck <teirllm@dms.auburn.edu>
> 
> A few hours ago, the documentation of sqrt in numbers.texi was
> changed from saying that it returns a NaN to saying that it signals a
> domain-error.  It definitely returns a NaN on my machine.

Really?  What system is that?  Can you debug Fsqrt and see why it
happens?

The way it's supposed to work on most modern systems is that the call
to `sqrt' in the underlying C code causes errno to be set, and Fsqrt
is supposed to check for that and signal an appropriate error.  See
the macro IN_FLOAT defined on floatfns.c.

(The last time a similar problem was reported and discussed here, we
found it was due to a bug in a particular version of glibc that was
fixed in later versions.)

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: sqrt with negative arg.
  2003-12-31 21:36 sqrt with negative arg Luc Teirlinck
  2004-01-01  6:24 ` Eli Zaretskii
@ 2004-01-01 16:30 ` Richard Stallman
  2004-01-01 16:42   ` Luc Teirlinck
  2004-01-01 17:22 ` Andreas Schwab
  2 siblings, 1 reply; 6+ messages in thread
From: Richard Stallman @ 2004-01-01 16:30 UTC (permalink / raw)
  Cc: emacs-devel

    A few hours ago, the documentation of sqrt in numbers.texi was
    changed from saying that it returns a NaN to saying that it signals a
    domain-error.  It definitely returns a NaN on my machine.

I think that is a bug--why does it not signal an error?

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: sqrt with negative arg.
  2004-01-01 16:30 ` Richard Stallman
@ 2004-01-01 16:42   ` Luc Teirlinck
  0 siblings, 0 replies; 6+ messages in thread
From: Luc Teirlinck @ 2004-01-01 16:42 UTC (permalink / raw)
  Cc: emacs-devel

Richard Stallman wrote:

       A few hours ago, the documentation of sqrt in numbers.texi was
       changed from saying that it returns a NaN to saying that it signals a
       domain-error.  It definitely returns a NaN on my machine.

   I think that is a bug--why does it not signal an error?

As Eli pointed out, it is probably due to my glibc version.  So I will
definitely _not_ install the change to numbers.texi which I proposed.

Sincerely,

Luc.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: sqrt with negative arg.
  2003-12-31 21:36 sqrt with negative arg Luc Teirlinck
  2004-01-01  6:24 ` Eli Zaretskii
  2004-01-01 16:30 ` Richard Stallman
@ 2004-01-01 17:22 ` Andreas Schwab
  2004-01-02  9:27   ` Eli Zaretskii
  2 siblings, 1 reply; 6+ messages in thread
From: Andreas Schwab @ 2004-01-01 17:22 UTC (permalink / raw)
  Cc: emacs-devel

Luc Teirlinck <teirllm@dms.auburn.edu> writes:

> A few hours ago, the documentation of sqrt in numbers.texi was
> changed from saying that it returns a NaN to saying that it signals a
> domain-error.  It definitely returns a NaN on my machine.

This is a bug either in sqrt or in matherr on your system.  ISO C
requires that a domain error occurs when sqrt is called with a
negative argument, and Emacs depends on matherr (when it is supported)
to be called.  Apparently, the availability of matherr is not enough
to guarantee this.

Andreas.

-- 
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux AG, Maxfeldstraße 5, 90409 Nürnberg, Germany
Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: sqrt with negative arg.
  2004-01-01 17:22 ` Andreas Schwab
@ 2004-01-02  9:27   ` Eli Zaretskii
  0 siblings, 0 replies; 6+ messages in thread
From: Eli Zaretskii @ 2004-01-02  9:27 UTC (permalink / raw)
  Cc: teirllm, emacs-devel

> From: Andreas Schwab <schwab@suse.de>
> Date: Thu, 01 Jan 2004 18:22:22 +0100
> 
> This is a bug either in sqrt or in matherr on your system.  ISO C
> requires that a domain error occurs when sqrt is called with a
> negative argument, and Emacs depends on matherr (when it is supported)
> to be called.  Apparently, the availability of matherr is not enough
> to guarantee this.

Actually, Emacs will do fine even if the math function only sets errno
when such problems happen.  If matherr is available, it will be used,
but it isn't necessary.  The macros on floatfns.c tell the details.

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2004-01-02  9:27 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-12-31 21:36 sqrt with negative arg Luc Teirlinck
2004-01-01  6:24 ` Eli Zaretskii
2004-01-01 16:30 ` Richard Stallman
2004-01-01 16:42   ` Luc Teirlinck
2004-01-01 17:22 ` Andreas Schwab
2004-01-02  9:27   ` Eli Zaretskii

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).