Collaboration

Apr 2, 2012 at 1:02 PM
Edited Apr 2, 2012 at 1:17 PM

Hi, there. First of all thanks for this great library. I'm writing an homotopy-based optimizer in C# for a class project, and your second order differentiation is just what I was needing the most. I made two tiny changes to the project, think you might be interested: wrote the code generation for the sum function, which was missing (nothing really fancy, just a simple for loop), and added two helper methods to the Function class for the creation of sums and products multiplications based on a lambda.

It looks something like this:

// F = \sum_i e^{x_i} - i 
var function = Functions.Sum( (i,xi) => Functions.Exp(xi) - i, Variables.List(20) );

... for the declaration of the Raydan function, for instance, and it really reads quite clear. I did it because I need to write lots of functions like this for testing purposes and writing for loops all the time it's not so fun. Anyway, if you want it, tell how can I make it available for you.

If you would like some help, I got some optimization code written around that you may use, for example, some classical differential equations integrators: euler, runge-kutta, adams-bashforth and some others. Maybe we could integrate this (in the software engineering sense) into your library. Whatever your answer be, thanks anyway for your work, really helpful.

Aug 31, 2013 at 5:29 AM
I'm interested in your fix for the missing code generation on the Sum function. I like your other overloads for it as well. Can you just post the code right here in the discussion? Or you can fork the source code and put in a pull request.