Boost logo

Boost :

From: Kevin Lynch (krlynch_at_[hidden])
Date: 2001-10-05 17:08:02

"George A. Heintzelman" wrote:
> Kevin Lynch wrote:
> No. Amount<> is not dimensionless.

Well, it depends on what your definition of "dimensionless" is, I
guess. In the language of the SI, it appears that "amount of substance"
is not defined to be dimensionless. In the terminology I've always
used, dimensionful labels (I don't want to use the term "units" here, to
avoid confusion) are those which are defined in terms of a fixed,
immutable reference object or physical definition (a "kg" is defined as
a multiple of the international standard kilogram mass, the meter is
defined in terms of a number of wavelengths of a certain reference
transition), while dimensionless labels are those which are defined
independently of a reference object ("number of something" is
independent of the "something" chosen to define it), or as ratios of
dimensionful measures where the numerator and denominator have the same
dimensions (angles are dimensionless, for example).

I would also agree that it doesn't make sense to take sin(number of
apples), but that isn't a good argument for dimensionality, I don't
think: it makes no sense to take sin(mass fraction) in most cases, but
"mass fraction" is a dimensionless quantity in both the SI definition
and my different definition. Furthermore, in some systems, like the
natural units of particle physics, some quantities are dimensionless
(for example, velocity) that would in SI be dimensionful.

But I'm perfectly happy to accept the SI definition going forward from
here, because I don't think dimensionful/dimensionless is going to be a
useful distinction for building a unit framework for C++.

> Angles, binomial coefficients, and such are examples of truly
> dimensionless numbers.

I think we need to be more careful. Binomial coefficients (and other
constants such as the Bernoulli numbers, pi, e, etc...) are not only
dimensionless (by any reasonable definition); they are pure numbers; no
units can are attached. Angles may or may not be different.

> I still think something needs to address the
> difference between an angle and other dimensionless units, but that's a
> different question.

I'll give it a shot. I'm not attached to this description, so if you
have another approach feel free to convince me :-)

"angular units" are not units in the sense that length and time units
are "units"; I will go so far as to say that, in the language that I've
been using, the names of "angular units" are just "tags" on pure
numbers, not actual units. In the SI, we have the radian as an "angular
uit", but it is a special case, and isn't like any other unit in the SI:
"when one expresses the values of derived quantities involving plane
angle or solid angle, it often aids understanding if the special names
(or symbols) "radian" (rad) or
"steradian" (sr) are used in place of the number 1."

But, radian can't really be 1! It can't be, because that would imply
that degree and grad are also 1. But degree radian and grad are all
different. In other words, radian is a special case that violates the
general rules of the unit system of the SI, and we would be much better
off for the sake of consistency if the radian was not called "a unit".

However, if angular measure is treated as a "tag" on a pure number
instead of a unit, then it can decay when we are applying a functional
to the tagged quantity that expects a pure number, and can convert to
other tags, without needing a special case in the unit system or the tag

So, in summary, I am willing to accept Amount<> as dimensionful, and I
think it is better to not call angular measure a unit, since it violates
the algorithmic rules for units, but not the algorithm for tags. Or so
I think now.

Kevin Lynch				voice:	 (617) 353-6065
Physics Department			Fax: (617) 353-6062
Boston University			office:	 PRB-565
590 Commonwealth Ave.			e-mail:	 krlynch_at_[hidden]
Boston, MA 02215 USA

Boost list run by bdawes at, gregod at, cpdaniel at, john at