A couple of comments:
- There is already a Quasi-Newton implementation in GSL (using the GSL library).
- the simplest optimizer we have currently is probably core::SteepestDescent, so that might be a good one to look at for code to read to get started. core::ConjugateGradients is a bit better developed and structurally simple although the actual optimization function in it is awfully complicated to follow. We don't have an example optimizer at this point.
- the IMP_OPTIMIZER() macro simply defines some basic functions and declares do_optimize and do_show (which you then need to implement in your .cpp file). For some reason it doesn't appear in the nightly docs. Not sure why as things look ok. You have to read modules/kernel/include/optimizer_macros.h, sorry.

I added imp-dev as this topic seems of general interest.

On Mon, Jul 16, 2012 at 9:56 AM, Pia Unverdorben <unverdor@biochem.mpg.de> wrote:
Dear Ben and Daniel,

together with an intern I would like to build a quasi newton optimizer in IMP. Do you have an example or "recipe" on how to setup such an optimizer and how to use the IMP_OPTIMIZER() macro
Thanks a lot!

Cheers, 
Pia