Реализация алгоритма SVD - PullRequest
4 голосов
/ 31 марта 2010

Кто-нибудь знает хорошую масштабируемую реализацию SVD на C # для очень большой матрицы?

Ответы [ 2 ]

1 голос
/ 31 марта 2010

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, ...) * статические операторные функции (например, Add (a, b)) * поддержка специальных числовых состояний (NaN, +/- Inf)

Оптимизация для процессора

* 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
0 голосов
/ 01 апреля 2010

Мы успешно использовали библиотеку NAG с «большими» матрицами (4000x4000).

Это не управляемый код, но при использовании P / Invoke у нас не было проблем.

Есть версия для 32-битной и 64-битной Windows (также пара вариантов UNIX). И есть специальные версии MKL (Intel Math Kernel Library) и AMCL (AMD Math Core Library), которые должны лучше использовать несколько процессоров в системах x64.

Это также не бесплатно, если это проблема.

...