Структура данных для представления разреженного тензора? - PullRequest
4 голосов
/ 10 августа 2010

Какова подходящая структура данных для представления разреженного теснора в C ++?Первый вариант, который приходит на ум, - boost::unordered_map, поскольку он позволяет выполнять такие операции, как быстрая установка и извлечение элемента, как показано ниже:

A(i,j,k,l) = 5

Однако я также хотел бы иметь возможность сокращатьодин индекс, который будет включать суммирование по одному из индексов

C(i,j,k,m) = A(i,j,k,l)*B(l,m)

Насколько легко было бы реализовать этот оператор с boost::unordered_map?Есть ли более подходящая структура данных?

1 Ответ

0 голосов
/ 10 августа 2010

Доступны тензорные библиотеки, такие как:

http://www.codeproject.com/KB/recipes/tensor.aspx

и

http://cadadr.org/fm/package/ftensor.html

Есть ли проблемы с этими?Вы получите больше тензорных операций, чем при использовании карты.

...