Optimization


Optimization branch
Hi,
First go at adding in Optimization routines (intended to get the discussion started, not to be final article). Added in a wrapper around MKL non-linear least squares solver (plenty of questions there about new provider versus existing linear maths providers etc). Also added Powell method (and Brent line search) in C# to have a basic derivative-less minimizer; this is a function minimizer but can also be used to fit curves in least-squares sense. Curve fitting common for all function minimizers, so split this out. Probably need separate interfaces for function-minimizers and non-linear least squares minimizers (leaving the latter for now as possible there is only ever one algorithm).
Needs a bunch more tests...
Thanks,
Joe