繁体   English   中英

SVD算法实现

[英]SVD algorithm implementation

对于非常大的矩阵,有没有人知道C#上SVD的良好可扩展实现?

ILNumerics.net似乎还有其他的SVD。

功能列表:

构架

.NET 1.1,.NET 2.0,即将推出:mono 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 

NUMERICS

 * 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 

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM