SMS dit: Structure-preserving algorithms for oscillatory differential equations /