CM has several other direct algorithms, but Nelder-Mead is the most common. Gradient algorithms require gradients. I've actually done some kind of large step in autodiff api (it is late here, so I will write about it tomorrow). So I think it will be possible to use those without computing derivatives by hand.