C# linear algebra library

2019-01-13 00:33发布

问题:

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?

回答1:

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



回答2:

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.



回答3:

I am using ILNumerics.NET

www.ilnumerics.net

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



回答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]



回答5:

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.



回答6:

Have you looked into dnAnalytics?



回答7:

.Net Matrix is a similar question that you may want to look at the answers for other ideas.



回答8:

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