<div dir="ltr"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">I agree that a single unified function for all the routines would be neater since all the algorithms have black-box functions as input anyway. I believe that any extra optional arguments to the global optimisation functions not already defined by `minimize` can be handled with the `options` dictionary object passed to the `minimize` function</div></blockquote><div><br></div><div>Thank you for feedback. </div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><div>One additional thought is the possibility of adding a unified `Minimizer` class to scipy.optimize. There are two reasons for this: </div><div></div></div></div></blockquote><div><br></div><div>As you may be aware this idea has been brought forward before, for the reasons you suggested and more. The idea stalled unfortunately. Because it would be a large changeset it's necessary to get everyone on board first (via a SciPEP).</div><div><a href="https://github.com/scipy/scipy/pull/8552">https://github.com/scipy/scipy/pull/8552</a> (SciPEP proposing it)<br></div><div><a href="https://github.com/scipy/scipy/pull/8414">https://github.com/scipy/scipy/pull/8414</a> (PR exploring the idea)<br></div><div>Perhaps another way to bring this about is to setup a separate implementation project and show it working before it could be incorporated. That would give time and freedom for any issues to be ironed out. The development of differential_evolution has certainly benefitted from the solver being class based, but also from being a private interface, which has allowed relatively large changes to be made to its functionality.</div></div></div>