public static void Progress_yo4(LeapFrogState state, double dt)
        {
            var d = new double[] { 1.351207191959657, -1.702414383919315 };

            LeapFrogIntegrator.Progress_LeapFrog(state, dt * d[0]);
            LeapFrogIntegrator.Progress_LeapFrog(state, dt * d[1]);
            LeapFrogIntegrator.Progress_LeapFrog(state, dt * d[0]);
        }
        public static void Progress_yo8(LeapFrogState state, double dt)
        {
            var d = new double[] { 0.104242620869991e1, 0.182020630970714e1, 0.157739928123617e0, 0.244002732616735e1, -0.716989419708120e-2, -0.244699182370524e1, -0.161582374150097e1, -0.17808286265894516e1 };

            var index = new int[] { 0, 1, 2, 3, 4, 5, 6 };

            foreach (var i in index)
            {
                LeapFrogIntegrator.Progress_LeapFrog(state, dt * d[i]);
            }
            LeapFrogIntegrator.Progress_LeapFrog(state, dt * d[7]);
            foreach (var i in index)
            {
                LeapFrogIntegrator.Progress_LeapFrog(state, dt * d[i]);
            }
        }
        public static void Progress_yo6(LeapFrogState state, double dt)
        {
            var d = new double[] { 0.784513610477560e0, 0.235573213359357e0, -1.17767998417887e0, 1.31518632068391e0 };

            var index = new int[] { 0, 1, 2 };

            foreach (var i in index)
            {
                LeapFrogIntegrator.Progress_LeapFrog(state, dt * d[i]);
            }
            LeapFrogIntegrator.Progress_LeapFrog(state, dt * d[3]);
            foreach (var i in index)
            {
                LeapFrogIntegrator.Progress_LeapFrog(state, dt * d[i]);
            }
        }