开发者

Recommendation for C# Matrix Library [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance. Closed 10 years ago.

I need a C# library to deal with matrices. It should implement singular value decomposition, matrix inversion, etc

I've used CSML before, but this does not implement some of the features i need.

Some of the features are:

Singular 开发者_运维问答value decomposition

Matrix inversion

Trace

Determinants

Suggested Libraries (from answers)

(most of them implement the features stated above)

  • Math .NET Numerics for .NET, Silverlight and Mono (opensource)
  • Extreme Optimization Numerical Libraries (commercial, very complete)
  • IL Numerics (commercial)
  • Deltix's FinMath numerical library (commercial, uses the Intel® Math Kernel Library (MKL) and Intel® Integrated Performance Primitives (IPP))
  • Lightweight fast matrix class in C# (Strassen algorithm, LU decomposition)


Math.NET Numerics is very nice, if it supports the operations you want. The older Math.Net Iridium still supports more options. Also, dnAnalytics is quite nice, but no longer being developed. (It, as well as Iridium, are being merged into Math.NET Numerics.)

On the commercial side, there are some very good, robust options. The Extreme Optimization Numerical Libraries work very well. The Visual Numerics library also works very well (although with a royalty-based distribution...).


I believe that Math.NET has most of the features you mention. Yuu may want to look at it and see if it fits your needs.

You can take a look at the Iridium samples to see the syntax and example code.


I have been using ILNumerics a lot. Also did some contributions to the project. It by know is the only library I know of, which does not spend half the CPU time in GC for serious computations. Its fast and mature. See the full feature list.


In addition to the libraries mentioned in other posts I can say a few warm words about FinMath library. It is rather new library, but according to my experience it has several advantages. It is very easy to use this library. First, it has only one executable file (*.dll) for both 32-bit and 64-bit operating systems. Second, it is build on top of well-known Intel Math Kernel Library and therefore it provides very good performance. Managed .NET API provided by this library is also very extensive and flexible. But, it is proprietary software and costs considerable amount of money. It also lacks some functionality (e.g. compared to NMath from CenterSpace Software). Anyway, it worth time to try it.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜