Каковы различия между различными разреженными векторами буст-убла? - PullRequest
15 голосов
/ 03 августа 2010

В boost::numeric::ublas существует три разреженных векторных типа .

Я могу видеть, что mapped_vector по сути является stl::map от индекса к значению, который учитывает все ненайденные значения равны 0 (или какому-либо общему значению).

Но документация скудна (ха-ха) относительно информации о compressed_vector и coordinate_vector.

Может ли кто-нибудьуточнить?Я пытаюсь выяснить алгоритмическую сложность добавления элементов в различные векторы, а также точечных произведений между двумя такими векторами.

Очень полезный ответ, предлагаемый, что сжатый_вектор очень похож на сжатый_матрикс .Но, например, сжатое хранилище строк предназначено только для хранения матриц, а не только векторов.

Я вижу, что unbounded_array - это тип хранения, но я неЯ уверен, что спецификация для этого тоже.Если я создаю сжатый_вектор размером 200 000 000, но только с 5 ненулевыми местоположениями, разве это менее эффективно, чем создание сжатого_вектора с размером 10 и 5 ненулевыми местоположениями?

Большое спасибо!

1 Ответ

4 голосов
/ 03 августа 2010

заменить матрицу на вектор, и у вас есть ответы

http://www.guwi17.de/ublas/matrix_sparse_usage.html

...