It would be faster -- but avoiding that was somewhat deliberate.  I was trying to avoid making the assumption that dm and dh were in the same units, in case somebody later changed one of them (hmm, should've been dm1 ** 2 / dh_2).value).  That doesn't seem all that likely, though, and it would be caught by the unit tests anyways.  So maybe not worth worrying about, and I'll accept that suggestion.