用于c ++的对称数组类数据结构

Raf*_*ini 5 c++ boost matrix data-structures

我正在进行模拟,我必须计算很多平均值,我认为使用boost :: accumulators是个好主意.问题是我想要平均的量之一是对称矩阵,其对角线事先已知.所以如果i <j,我只需要计算Q [i] [j]的平均值.

起初我得到的印象是我可以使用

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
Run Code Online (Sandbox Code Playgroud)

拿着我的蓄电池.但后来我发现这个symmetric_matrix结构可能只适用于保存数值(它们定义了算术运算)或者以某种方式针对这种数据进行了优化.这是正确的吗?

如果来自boost的symmetric_matrix不合适,我需要一个数据结构,它可以保持对称矩阵的下三角形而没有对角线,并且它必须适合保持累加器并具有类似矩阵的语法.这是从一些图书馆随处可用的吗?如果没有,这种结构是否容易实现?

yas*_*ser 1

尝试使用Boost uBLAS 三角矩阵。这是一个例子