I have developed a program in Octave to which I would like to add a GUI layer. I want to create an executable program in C# that I can distribute but want to stick with the linear algebra constructs of Octave without having to implement them on my own. Particularly, I want basic matrix, vector operations and optimization functions (like fminunc
and fmincg
).
What is the best way to achieve this? Appropriate C# linear algebra library, perhaps?
There are lots of math libraries for c#. Math.NET Numerics seems to be a good free alternative. There are also commercial implementations.
Another alternative is to call Octave with Process.Start
and parse the output. This saves you from rewriting your calculations but you need to able do bundle Octave with your application. If you want to tightly mix c# and math code this will be a quite complicated, but if your math code is a big calculation with a single set of inputs and a single set of outputs it might be a good alternative.