4

有谁知道非常大的矩阵在 C# 上的 SVD 的良好可扩展实现?

4

2 回答 2

1

ILNumerics.net似乎有 SVD 等等。

功能列表:

构架

.NET 1.1、.NET 2.0,即将推出:单声道 1.2.3

语言

所有 CLI 一致:C#(推荐)、托管 C++、Visual Basic ...

数组对象

* Full OO class design
* Generic typed container classes
* single object for arbitrary array dimensions: scalar, vector, matrices, n-dim arrays
* full support for flexible array modification: subarray-/ creation, concatenation, dimension removal, serialization
* automated reference management: copy memory only if really needed
* support for cells and logical arrays

数字

* Supports all numeric types as array elements: double, float, complex, fcomplex, int16, int32,

int64, uint16, uint32, uint64, char, byte, bool * 运算符重载 (A + B,...) * 静态运算符函数 (fe Add(a,b)) * 支持特殊数值状态 (NaN, +/-信息)

处理器特定的优化

* BLAS, LAPACK
* AMD: ACML, Intel: MKL, general: netlib
* Automated detection

代数函数

* abs
* acos
* add
* all
* any
* asin
* (more...)

线性代数

* matrix multiply, -inverse, -pseudo inverse
* linear equation solver
* decompositions: LU,QR,SVD,Cholesky
* eigenvalues, eigenvectors

傅里叶变换

* 1,2,3...n dimensional
* transforms forward & backwards
* supported libraries: Intel MKL, AMD ACML, FFTW3
* 100% octave/Matlab/Scilab compatible interface

排序

* Sorting of strings (lexicographical, bucket sort)
* Sorting of numeric data (quick sort)
* generic sorting of arbitrary user defined types
  by definable keymapper (bucket sort)

错误处理

* typed exceptions

算法基类

* synchronous / asynchronous
* easily extendable for user defined derived algorithms
* full Windows.Forms.Control compatible multiple thread eventing

支持

可视化

* Plot panels, derived from Windows.Forms.Control
* Plot dialog forms
* 1D, 2D, 3D data plots
* Based on OpenGL. (DirectX: deprecated)
* Highly configurable graphs/figure properties
* Automatic user interaction: rotation, zoom, auto axis scaling

各种各样的

* Visual Studio 2005(R) AddIn: extends watch tool window
* import from / export to Matlab(R) *.mat files
* syntax vastly compatible to Matlab(R) (function naming, parameter)
* determination of extended machine properties, numerical constants
* Memory pool: automated recycling of large objects
于 2010-03-31T15:55:07.633 回答
0

我们已经非常成功地将NAG 库用于“大”矩阵 (4000x4000)。

它不是托管代码,但使用 P/Invoke 我们没有问题。

有 32 位和 64 位 Windows 的版本(还有几个 UNIX 变体)。并且有特殊的 MKL(英特尔数学内核库)和 AMCL(AMD 数学核心库)版本,它们应该可以更好地在 x64 系统上使用多个处理器。

如果这是一个问题,它也不是免费的。

于 2010-04-01T17:26:14.723 回答