Симметричная массивоподобная структура данных для c ++ - PullRequest
5 голосов
/ 08 июня 2011

Я делаю симуляцию, в которой я должен вычислить много средних, и я подумал, что использование boost :: аккумуляторов было бы хорошей идеей.Проблема в том, что одной из величин, которые я хочу усреднить, является симметричная матрица, диагональ которой известна заранее.Так что мне просто нужно вычислить средние значения для Q [i] [j], если i

Сначала у меня сложилось впечатление, что я могу использовать

using namespace boost::accumulators;
using namespace boost::numeric::ublas;
typedef accumulator_set<double, stats<tag::mean> > accumulator;

symmetric_matrix<accumulator, lower> foo;  // a symmetric matrix of accumulators

для хранения своих аккумуляторов.Но потом мне пришло в голову, что эта структура симметричного_матрицы может быть достаточной для хранения только числовых значений (для них определены арифметические операции) или каким-то образом оптимизирована для такого рода данных.Это правильно?

Если symbric_matrix от boost не адекватны, мне нужна структура данных, которая может содержать нижний треугольник симметричной матрицы без диагонали, и она должна подходить для хранения аккумуляторов и иметь хорошийматрица, как синтаксис.Это легко доступно из какой-то библиотеки?Если нет, то есть ли легкая реализация для такой структуры вокруг?

1 Ответ

1 голос
/ 09 июня 2011

Попробуйте Boost UBLAS Треугольная матрица .Вот пример .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...