Boost :

From: Dan W. (danw_at_[hidden])
Date: 2004-02-11 22:10:11

Haven't been around in a while, I was just checking back to the units
and time, absolute vs. relative quantities. Now I suddenly saw the
light: "absolute" is a relative term... 0.5f * pun_intended().

I will prove this once and for all time with a simple example of a
mechanical drawing. If you've been procrastinating setting a monospaced
font for viewing messages, procrastinate no more:

____________ V0 = 000 ("datum" line)
| __
| / \
| | | -.- V1 = 150
| \__/
|
| __
| / \
| | | -.- V2 = 450
| \__/
|
| __
| / \
| | | -.- V3 = 750
| \__/
|____________ V4 = 900

(dimensions are in mils (thousands of an inch) )

assert( V4 - V3 == V1 - V0 ); // no problemo
assert( V3 - V2 == V2 - V1 ); // no problemo
assert( V1 + V2 + V3 >= V4 ); // uhhhh....???

In other words, dimensions that are all measured to the same edge are
"absolute" relative to each other. (See I'm no punster?)

So far so good.
Now, what happens if I have...

a = V2 - V1;
b = V3 - V1; //NOT V3 - V2, note...

Both we might call "relative", since they are both differences between
absolutes, right? I should be able to add them right? WRONG!!!

assert( a + b >= b ); // DOH!...

a and b are both measured from V1, and therefore, relative to each
other, they are, again, you guessed it, "absolute".

In other words, forget the whole subject. I regret I brought it up in
the first place. Leave it for the PhQS (Philosophical Quantities Library).

Cheers!