Boost logo

Boost :

From: K. R. Walker (krwalker_at_[hidden])
Date: 2007-04-03 20:01:38


Hello,

This review of Quantitative Units is by Shaun Bloom and K. R. Walker of
Stellar Science Ltd. Co. We have been following this library for
approximately two months as we are developing a new scientific
application and have committed to using compile-time dimensional
analysis where possible.

> What is your evaluation of the design?

We believe the design is good. We understand the basic concepts of
systems, dimensions, units, and quantities and could manipulate these items.

> What is your evaluation of the implementation?

We have been happy with the implementation. Some of our
template-metaprogrammers have been able to dig into the source to figure
out what's going on without spending much time.

> What is your evaluation of the documentation?

It's been a while since we thoroughly looked over the documentation. We
tend to prefer looking over the source code and examples. A brief look
at the current documentation revealed no surprises.

> What is your evaluation of the potential usefulness of the library?

This library performs compile-time dimensional analysis along with
helping to clarify and enforce API parameters and elements:
     function( const quantity< length > & )
is better than
     function( const double & )

At an early stage, we discovered a minor error in our software after
starting to use this library. This library provides greater confidence
in calculations making the pervasive use of this library highly desirable.

Our application domain involves working with vectors in different
frames-of-reference. We have recently discussed the possibility of
defining our own unit systems for these frames to prevent vectors in one
frame from being incorrectly used with vectors of another. e.g., an
Earth-Centered-Inertial (ECI) vector should not be added to an
Orbital-frame vector.

> Did you try to use the library? With what compiler?
> Did you have any problems?

We have been using version 0.7.2 of this library with Visual Studio 2005
(sp1) and gcc 4.0.1 on Mac OS X.

We have defined our own custom units and found their use to be identical
to those provided by the library. We would like to see quantities
defined using derived SI units printed using the derived units instead
of the base units (W/m^2 instead of Kg/s^3).

We had a problem with the 'pascal' symbol with Visual Studio 2005. It's
since been resolved.

The only other problems have involved mistakes in unit arithmetic when
defining values.

> How much effort did you put into your evaluation? A glance?
> A quick reading? In-depth study?

We looked closely at this library in it's early state and decided that
even in alpha, it was worth integrating into our software.

Our evaluation has been much more than a quick reading, but a bit less
than an in-depth study.

> Are you knowledgeable about the problem domain?

Yes, we have experience writing scientific software applications and
understand and can perform dimensional analysis.

> Do you think the library should be accepted as a Boost library?
> Be sure to say this explicitly so that your other
> comments don't obscure your overall opinion.

Yes. We would very much like to see this library become part of Boost.

In the unfortunate event it were not accepted, we intend to continue to
use the library.

Thank you,

-- 
Shaun Bloom <sb_at_[hidden]>
K. R. Walker <krwalker_at_[hidden]>
Stellar Science Ltd Co - Stellar Scientific Software Solutions

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk