Geometric numerical integration structure-preserving algorithms for ordinary differential equations - Hairer, E. (Ernst) (Springer, 2002)