login  home  contents  what's new  discussion  bug reports     help  links  subscribe  changes  refresh  edit

Edit detail for #79 log10 in GCL returns a bad value for log10(1000) revision 1 of 2

1 2
Editor:
Time: 2007/11/17 23:02:28 GMT-8
Note: property change

changed:
-
From BillPage Wed Jan 26 01:37:26 -0600 2005
From: Bill Page
Date: Wed, 26 Jan 2005 01:37:26 -0600
Subject: (new) log10 in GCL returns a bad value for log10(1000)
Message-ID: <20050126-073711.sv12157.60583@savannah.nongnu.org>


Update of bugs #4565 (project axiom):

                  Status:                    None => transferred            

This item URL is:

http://savannah.nongnu.org/bugs/?func=detailitem&item_id=4565


In some versions of GCL the LOG10 function returns improperly rounded values.

The symptom is:
\begin{verbatim}
(24) -> [1000]
(24) [100]
\end{verbatim}

The common lisp failure can be shown with::

  (25) -> )lisp (log10 1000)
  Value = 2.9999999999999996

This previous boot code was::

  u < MOST_-POSITIVE_-LONG_-FLOAT => 1+negative+FLOOR LOG10 u
  and should be restored when the GCL bug is fixed.
  u < MOST_-POSITIVE_-LONG_-FLOAT => 1+negative+FLOOR ((LOG10 u) + 0.0000001)


Fri 09/05/2003 at 16:23, comment !#3

From Tim:

I've already patched the output system to round (log10 1000).
The issue is still open because I need to remember to search
the sources for any other use of log10. I doubt we use it elsewhere
but I might as well do a quality job, yaknow?

David Mentré <dmentre>
Thu 09/04/2003 at 19:54, comment !#2:

From Camm Maguire:
Our lisp spec expert tells me that routines returning floating point
values like (log10...) are not required to return exact integers in
cases like these.

What you want is something like this::

  (defun logi (x y &aux i r)
  (declare (longfloat x y r))
  (declare (fixnum i))
  (multiple-value-bind (i r) (round (log x y)) i))

David Mentré <dmentre>
Wed 09/03/2003 at 20:58, comment !#1:[Added information or comment]

Remind to tell about (log10 1000) issue on GCL developer mailing list.


Message sent via/by Savannah
http://savannah.nongnu.org/


From billpage Wed Jan 26 02:19:13 -0600 2005
From: billpage
Date: Wed, 26 Jan 2005 02:19:13 -0600
Subject: property change
Message-ID: <20050126021913-0600@page.axiom-developer.org>

Category:  => lisp system 
Severity:  => normal 
Status:  => open 



From unknown Tue Mar 8 08:15:10 -0600 2005
From: 
Date: Tue, 08 Mar 2005 08:15:10 -0600
Subject: property change
Message-ID: <20050308081510-0600@page.axiom-developer.org>



Submitted by : (unknown) at: 2007-11-17T23:02:28-08:00 (16 years ago)
Name :
Axiom Version :
Category : Severity : Status :
Optional subject :  
Optional comment :

(new) log10 in GCL returns a bad value for log10(1000) --Bill Page, Wed, 26 Jan 2005 01:37:26 -0600 reply
Update of bugs #4565 (project axiom):

Status: None => transferred

This item URL is:

http://savannah.nongnu.org/bugs/?func=detailitem&item_id=4565

In some versions of GCL the LOG10 function returns improperly rounded values.

The symptom is: 
(24) -> [1000]
(24) [100]

The common lisp failure can be shown with:

  (25) -> )lisp (log10 1000)
  Value = 2.9999999999999996

This previous boot code was:

  u < MOST_-POSITIVE_-LONG_-FLOAT => 1+negative+FLOOR LOG10 u
  and should be restored when the GCL bug is fixed.
  u < MOST_-POSITIVE_-LONG_-FLOAT => 1+negative+FLOOR ((LOG10 u) + 0.0000001)

Fri 09/05/2003 at 16:23, comment #3

From Tim:

I've already patched the output system to round (log10 1000). The issue is still open because I need to remember to search the sources for any other use of log10. I doubt we use it elsewhere but I might as well do a quality job, yaknow?

David Mentré Thu 09/04/2003 at 19:54, comment #2:

From Camm Maguire: Our lisp spec expert tells me that routines returning floating point values like (log10...) are not required to return exact integers in cases like these.

What you want is something like this:

  (defun logi (x y &aux i r)
  (declare (longfloat x y r))
  (declare (fixnum i))
  (multiple-value-bind (i r) (round (log x y)) i))

David Mentré Wed 09/03/2003 at 20:58, comment #1:[Added information or comment]?

Remind to tell about (log10 1000) issue on GCL developer mailing list.

Message sent via/by Savannah http://savannah.nongnu.org/

property change --billpage, Wed, 26 Jan 2005 02:19:13 -0600 reply
Category: => lisp system Severity: => normal Status: => open

property change
Tue, 08 Mar 2005 08:15:10 -0600 reply