I found that when I passed atan2 a quantity<si::length> value for both y and x the compiler gave me an error.  Upon examination of the atan2 method in "boost/units/cmath.hpp" I found it expected both inputs to atan2 to be dimensionless.  The method atan2 can be represented simplistically as atan(y / x).   As long as both dimensions to y and x are the same the results is a dimensionless value of (y / x).  So shouldn't the inputs to boost::units::atan2 accept any dimension of y and x as long as they are the same?