[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Octave-bug-tracker] [bug #44310] log and functions which use log return
From: |
Michael Godfrey |
Subject: |
[Octave-bug-tracker] [bug #44310] log and functions which use log return incorrect result |
Date: |
Thu, 19 Feb 2015 14:28:13 +0000 |
User-agent: |
Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:35.0) Gecko/20100101 Firefox/35.0 |
URL:
<http://savannah.gnu.org/bugs/?44310>
Summary: log and functions which use log return incorrect
result
Project: GNU Octave
Submitted by: godfrey
Submitted on: Thu 19 Feb 2015 02:28:11 PM GMT
Category: Octave Function
Severity: 3 - Normal
Priority: 5 - Normal
Item Group: Regression
Status: None
Assigned to: None
Originator Name: godfrey
Originator Email:
Open/Closed: Open
Discussion Lock: Any
Release: dev
Operating System: GNU/Linux
_______________________________________________________
Details:
Example:
octave:1> atanh(0 -10i)
ans = 4.6717e-17 - 1.4711e+00i
octave:2>
This occurs on Fedora systems, and maybe others.
The library: /usr/lib64/libm-2.20.so contains the log function. Until fairly
recently this seemed to work correctly. But in libm-2.20.so the following
happens using:
#include <stdio.h>
#include <complex.h>
#include <math.h>
int main(void)
{
float complex z = catanh(0-10i);
printf("catanh(0-10i) = %e%+ei\n", creal(z), cimag(z));
double complex x = (0-10i);
double complex xm = (1.0 - x);
double complex xp = (1.0 + x);
double complex an = clog(xp/xm)/2.0;
long double complex anl = clogl(xp/xm)/2.0;
printf("catanh (an) = %e%+ei\n", creal(an), cimag(an));
printf("catanh (anl) = %e%+ei\n", creal(an), cimag(an));
}
gives:
address@hidden atanh]$ gcc -lm -o testt atanh_t.cc
address@hidden atanh]$ testt
catanh(0-10i) = 0.000000e+00-1.471128e+00i
catanh (an) = 4.671731e-17-1.471128e+00i
catanh (anl) = 4.671731e-17-1.471128e+00i
==================
Note that both clog and clogl fail.
Under libm-2.13.so the result for clog was:
catanh(0-10i) = 0.000000e+00-1.471128e+00i
catanh = 0.000000e+00-1.471128e+00i
While 4.671731e-17 is a small number (less than a usual eps) it
is not correct. This result causes the current Octave system to produce
incorrect results as it uses clog in its math function library.
This first showed up when using the current Fedora 21 x86_64 system.
I have attempted to report this to
sourceware.org/bugzilla but I am not sure that the report
got through. In any case the error causes errors in Octave.
_______________________________________________________
Reply to this item at:
<http://savannah.gnu.org/bugs/?44310>
_______________________________________________
Message sent via/by Savannah
http://savannah.gnu.org/
- [Octave-bug-tracker] [bug #44310] log and functions which use log return incorrect result,
Michael Godfrey <=
- [Octave-bug-tracker] [bug #44310] log and functions which use log return incorrect result, Philip Nienhuis, 2015/02/19
- [Octave-bug-tracker] [bug #44310] log and functions which use log return incorrect result, Michael Godfrey, 2015/02/19
- [Octave-bug-tracker] [bug #44310] log and functions which use log return incorrect result, Philip Nienhuis, 2015/02/19
- [Octave-bug-tracker] [bug #44310] log and functions which use log return incorrect result, Michael Godfrey, 2015/02/25
- [Octave-bug-tracker] [bug #44310] log and functions which use log return incorrect result, Michael Godfrey, 2015/02/25
- [Octave-bug-tracker] [bug #44310] log and functions which use log return incorrect result, Michael Godfrey, 2015/02/26
- [Octave-bug-tracker] [bug #44310] log and functions which use log return incorrect result, Michael Godfrey, 2015/02/26