A dynamic programming technique for nonlinear smoothing | Synapse