Disclaimer: I wrote iminuit. Let me give you a bit of history.
I was a proud user of PyMinuit. I loved it and the syntax he came up with is just brilliant. However, I eventually found that I couldn't really do build a cost function programatically(and efficiently). For example, if you want to make a generic chi^2 functor which takes the data and the pdf of n parameter as the arguments and spit out a chi^2 function of n-1 parameter, it is (almost)impossible to do in PyMinuit.
So, I try to modify PyMinuit to add that exact function and to modify some print out. I found that PyMinuit code is in C which is a pain to modify. So, I rewrite it using cython.
Couple addition you will find in iminuit:
- Better integration with IPython notebook. It prints the result in a nice table and can graph you for free a couple things.
- Function signature extraction is much more forgiving than PyMinuit
- Long parameter name. Not really PyMinuit Bug but there is a bug in Minuit 1.7.x that the name length was hardcoded.
- One side limit I'm not sure but I think PyMinuit doesn't do this
- Progress printout is a bit different but it's a matter of taste. The one I have is inspired by ROOT which IMO make more sense.
- probfit integration. Remember I mention function that takes data and pdf and spit out chi^2 function for minimization? See tutorial.