[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
pi.
-- 
David Roundy
Department of Physics
Oregon State University


More information about the Haskell-Cafe mailing list