C# linear algebra library [closed]
Asked Answered
B

7

53

Is there stable linear algebra (more specifically, vectors, matrices, multidimensional arrays and basic operations on them) library for C#?

Search yielded a few open source libraries which are either not updated for couple of years or are in an early beta stage - and Centerspace NMath. Which alternatives are worth checking?

Bimolecular answered 25/12, 2008 at 14:51 Comment(1)
There's also arex library performing some basic algebra at: arex.codeplex.comHaematoblast
R
38

Math.NET. We're using it in production.

Reducer answered 25/12, 2008 at 19:35 Comment(5)
Just be aware that there are several packages in Math.NET. Some are LGPL but a couple are GPL, which, for a commercial application, could well be an issue.Stipulate
Thanks, looks better. I still miss multidimensional lattices, matrices of custom types etc, but it should workBimolecular
Can somebody provide performance comparison of Math.NET and other libraries (like those from [@harrydev's answer] (https://mcmap.net/q/122271/-c-linear-algebra-library-closed))? Especially I'm interested in performance of matrix multiplication, matrix by scalar multiplication and vector summing operations. Are those operations paralleled on multiple cores if the computer have them?Corrosion
Looks like things have changed, most of the licenses are now MIT. They try to relicense the remaining few LGPL licenses - mainly still there because they have a hard time to contact the authors.Peta
Is the computation in Math.Net vectorized?Tumbrel
L
11

See: http://en.wikipedia.org/wiki/List_of_numerical_libraries

http://www.alglib.net/ - Open source. Multi-language library.

http://www.mathdotnet.com/ - Open source. As mentioned by others. dnAnalytics is replaced by http://numerics.mathdotnet.com/ in this.

http://www.lutzroeder.com/dotnet/ - Lutz Roeder has a open source port Mapack.Net of LAPACK.

http://www.extremeoptimization.com/ - Commercial.

Lookout answered 8/2, 2010 at 14:38 Comment(1)
This answer would be more helpful if people who need C# algebra libraries didn't know how to use google.Bimolecular
O
6

I am using ILNumerics.NET

www.ilnumerics.net

Very good support and stable. I don't have any comparison though.

Outvote answered 21/6, 2011 at 7:53 Comment(0)
S
4

We have evaluated nMath and were quite pleased with its programmability and speed. Their support staff even worked over a weekend to figure out a bug we found. We liked that they used Intel's Kernel Math library instead of rolling their own numerics. [Edited to add: have been using in production for years]

Swine answered 18/4, 2009 at 20:32 Comment(0)
P
2

Few weeks ago I found a new c# library FinMath contains implementations of many various methods and techniques including basic linear algebra, such as:

  1. Vector and Matrix implementations (easy to use high-level interfaces covering most of all BLAS functionality)
  2. Algorithms of matrix factorizations (LU, QR, SVD, Cholesky).

And many other useful things like statistics, factor and cluster analysis, linear and quadratic programming solver and etc.

Unfortunately, it's not free, but it's extremely fast, because it uses MKL for most complex computations and at the same time it distributed as single library supports both 32bit and 64bit modes and requires no special maintenance to use, like taking care about native libraries.

Pompon answered 23/11, 2011 at 20:12 Comment(0)
S
1

Have you looked into dnAnalytics?

Stipulate answered 25/12, 2008 at 15:2 Comment(4)
yes, but version "0.3.1 Beta" makes me nervous thinking about including it into important long term projectBimolecular
That's a fair point but beta means different things to different people. At one end is the Ext-GWT guy who wakes up in the morning and decides to make the alpha1 version final. At the other end is gmail, still in beta. dnAnalytics has been around since October 2007 and still active. Worth a look?Stipulate
Frankly, not. 23 lines of documentation, useless XML doc (Object object - the object), very wide feature set with gaping holes in the middle... Looks like supporting code for some other project, or may be training ground for developers.Bimolecular
DnAnalytics is no longer supported. Not it is a part of Math.NET Numerics.Minatory
A
1

Although it is not updated, not open source, and not for commercial usage, one might want to check out D* from Microsoft Research. It's a very cool symbolic math library, especially for doing derivatives, but really it's a little matlab in the hands of a .NET programmer.

http://research.microsoft.com/en-us/downloads/4714703d-782c-4e37-830d-0e3b7662f743

Annadiane answered 18/3, 2013 at 21:35 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.