[Numpy-discussion] Ticket #1113, change title?
Pauli Virtanen
pav@iki...
Sat May 23 13:33:37 CDT 2009
Sat, 23 May 2009 09:28:08 -0400, David Warde-Farley wrote:
> On 23-May-09, at 8:54 AM, David Cournapeau wrote:
>
>> I have not looked at the code, but if the precision is indeed single
>> precision, a tolerance of 1e-15 may not make much sense (single
>> precision has 7 significant digits in normal representation)
Yes, it should be `max(5*eps, 1e-15)`, and not 1e-15. It just happens
that on x86 the code computes the correct value down to machine precision
for complex64. Actually, I'm a bit perplexed about why this doesn't
upcast:
>>> p = np.complex128(9.999999999333333333e-6 + 1.000000000066666666e-5j)
>>> np.arctanh(np.array([1e-5 + 1e-5j], dtype=np.complex64))/p
array([ 1.+0.j], dtype=complex64)
> Yes, I was wondering about that too, though notably the tests pass on
> x86, and in fact the result on ppc was nowhere near 0 when I checked it.
What do you mean by "nowhere near"? What does the following output for
you:
>>> np.arctanh(np.array([1e-5 + 1e-5j], np.complex64))
array([ 9.99999975e-06 +9.99999975e-06j], dtype=complex64)
--
Pauli Virtanen
More information about the Numpy-discussion
mailing list