[英]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.