How do we choose which algorithm to use from NLopt?