有谁知道非常大的矩阵在 C# 上的 SVD 的良好可扩展实现?
问问题
5429 次
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 回答