[Haskell-cafe] pi

David Roundy droundy at darcs.net
Wed Oct 10 13:40:57 EDT 2007

On Wed, Oct 10, 2007 at 08:49:56AM -0700, Dan Piponi wrote:
> Jules Bean said:
> > If it is true of many Floating instances that (atan 1 * 4) is an
> > accurate way to calculate pi (and it appears to be 'accurate enough'
> > for Float and Double, on my computer) then adding it as a default
> > doesn't appear to do any harm.
> Maybe this is the wrong point of view, but I think of defaults as
> impementations that are meant to be correct, but not necessarily the
> best way of doing things, leaving you the option to provide something
> better. For the case of power series as an instance of Num, using
> 4*atan 1 gives me the wrong thing as it triggers an infinite
> summation, whereas I'd want pi to simply equal the constant power
> series. Now you could counter that by saying that power series are an
> esoteric case. But apart from code in the libraries, most code I've
> seen that provides an instance of Num is doing something mildly
> esoteric.

It sounds like what you're actually saying is atan is buggy in these cases,
since it leads to an infinite summation.  Programmers who define a buggy
atan would certainly be punished by this default for pi, but those who
recognize that there is no reason to define a buggy atan at all and leave
it undefined would have the same result as when there is no default for
David Roundy
Department of Physics
Oregon State University

More information about the Haskell-Cafe mailing list