Interfacing octave with C#

Vikesh picture Vikesh · Nov 6, 2011 · Viewed 10.4k times · Source

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?

Answer

Albin Sunnanbo picture Albin Sunnanbo · Nov 6, 2011

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.