On Tue, Jul 5, 2011 at 12:15 PM, Steven Schveighoffer <[email protected]>wrote:
> On Tue, 05 Jul 2011 04:31:09 -0400, James Fisher <[email protected]> > wrote: > > Hopefully this won't be taken as frivolous. I (and possibly some of you) >> have been convinced by the argument at http://tauday.com/. It's very >> convincing, and I won't rehash it here. >> >> The use of τ instead of π will only become really convenient when one does >> not have to preface everything with "let τ = 2π". >> >> For example, in D, in order to think in terms of τ instead of π, one must >> define `enum real TAU = std.math.PI * 2;`, and possibly also TAU_2, TAU_4, >> etc. >> >> As well as being a typing inconvenience, I also think things are not that >> easy due to loss of precision (though I'm far from an expert on >> intricacies >> of floating point). >> >> There is an initiative to add TAU to the Python standard library: >> http://www.python.org/dev/**peps/pep-0628/<http://www.python.org/dev/peps/pep-0628/> >> >> To this end, I suggest adding the constant TAU to std.math, and possibly >> also TAU_2 as an alias for PI, TAU_4 as an alias for PI_2, TAU_8 as PI_4. >> >> In any case, I'd like to know what's necessary in order for me to define >> these constants without loss of precision. >> d >> > > I read an article about this recently, it's definitely interesting. The > one place where I haven't seen it mentioned is what happens when you want > the area of a circle, since that necessarily involves the radius. I'd guess > you'd have to use τ/2 * r^2, but even then, that's one formula vs. the rest. > It's probably a good tradeoff. I can definitely see the advantage when > using radians. Never thought I'd have to re-learn trig again... > > One thing I like about Pi vs Tau is that it cannot be mistaken for a normal > character. > > I'm not a floating point expert, but I would expect since floating point is > stored in binary, dividing or multiplying by 2 loses no precision at all. > But I could be wrong... > Sorry, I didn't state this very clearly. Multiplying the approximation of PI in std.math should yield the exact double of that approximation, as it should just involve increasing the exponent by 1. However, [double the approximation of the constant] is not necessarily equal to [the approximation of double the constant]. Does that make sense?
