Runge-Kutta with adaptive step size. Works with arbitrary state-types, performs well with high-dimensional vectors. Implemented are Dormand-Prince 5(4) and Bogacki-Shampine 5(4). Depending on the problem, one pair can significantly outperform the other.