[Numpy-discussion] what goes wrong with cos(), sin()
Wed Feb 21 17:33:32 CST 2007
On 2/21/07, Charles R Harris <email@example.com> wrote:
> On 2/21/07, Robert Kern <firstname.lastname@example.org> wrote:
> > Christopher Barker wrote:
> > > Robert Kern wrote:
> > >> Christopher Barker wrote:
> > >>> I wonder if there are any C math libs that do a better job than
> > you'd
> > >>> expect from standard FP? (short of unlimited precision ones)
> > >> With respect to π and the zeros of sin() and cos()? Not really.
> Well, you can always use long double if it is implemented on your
> > platform. You
> > will have to construct a value for π yourself, though. I'm afraid that
> > we don't
> > really make that easy.
> > --
> pi = 3. 1415926535 8979323846 2643383279 5028841971 6939937510 5820974944
> 5923078164 0628620899 8628034825 3421170679 8214808651 *...
> I dont know what that looks like when converted to long double. Lessee,
> In : import numpy
> In : pi = numpy.float128(3.1415926535897932384626433832795028841971)
I think this is where you go wrong. Your string of digits is first a python
float and *then* is converted to a long double. In the intermediate stage it
gets truncated and you don't get the precision back.
In : numpy.pi - pi
> Out: 0.0
> In : '%25.20f'%numpy.pi
> Out: ' 3.14159265358979311600 '
> In : '%25.20f'%pi
> Out: ' 3.14159265358979311600'
> I think we have a bug. Or else extended arithmetic isn't supported on this
> Numpy-discussion mailing list
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Numpy-discussion