
Noah Stein wrote:
I agree completely that we're talking about a 1-dimensional geometry. I think the issue that people are arguing is, "What space are we using?" For some, like you and Matt Calabrese, the answer is an affine space. Unfortunately, affine spaces don't directly support point combinations, so you create a function that has no meaning in your chosen space.
Others, such as I, view the natural geometry to be a Grassmann space which supports the addition and scalar weighting of points. Addition of points is a natural and proper operation. Unfortunately, the best discussion I've seen requires access to the ACM Digital Library: http://portal.acm.org/citation.cfm?id=504792 .
(long discussion omitted) This is a very cool idea for those who are willing to understand the geometry behind it all, but I suspect it's a little too mysterious for most users of the units library. Also, don't you need to store two numbers for each scalar quantity? Isn't that a little costly in both space and computation time? I think your approach makes more sense for points in more than one dimension, where storing n-dimensional points as (n+1)-vectors is less costly. I don't really remember exactly what happened, but I think the last time we discussed this, I finally decided that it would be best to just implement a pure "vector quantity" library first. The "point quantity" interface could be added later, if a consensus develops. Otherwise, each of us can easily add our own layer on top of the vector quantity library. (So I'm retracting what I said in my post responding to Andy Little.) I think this will provide a core library that will be useful to everyone.