  Computer vision and robotics problems often require representation and
estimation of poses on the SE(3) manifold. Developers of algorithms that must
run in real time face several time-consuming programming tasks, including
deriving and computing analytic derivatives and avoiding mathematical errors
when handling poses in multiple coordinate frames. To support rapid and
error-free development, we present wave_geometry, a C++ manifold geometry
library with two key contributions: expression template-based automatic
differentiation and compile-time enforcement of coordinate frame semantics. We
contrast the library with existing open source packages and show that it can
evaluate Jacobians in forward and reverse mode with little to no runtime
overhead compared to hand-coded derivatives. The library is available at
https://github.com/wavelab/wave_geometry .
