问题标签 [boost-multi-array]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
5676 浏览

c++ - 比较 blitz++、犰狳、boost::MultiArray

我对 blitz++、armadillo、boost::MultiArray 与以下代码进行了比较(借自一篇旧帖子

在windows,VS2010上,结果是

在windows,intel c++上,结果是

奇怪的东西:

要使用 intel c++ 编译器编译 blitz++,blitz/intel/ 文件夹中需要一个名为 bzconfig.h 的文件。但是没有。我只是复制 blitz/ms/bzconfig.h 中的那个。这可能会给出非最佳配置。任何人都可以告诉我如何使用 intel c++ 编译器编译 blitz++?在手册中,它说运行 bzconfig 脚本以获取正确的 bzconfig.h。但我不明白这是什么意思。

非常感谢!

补充一些我的结论:

0 投票
1 回答
881 浏览

c++ - 提升 std::vector 的多数组

我是 Boost 的新手(也是 stackoverflow 的新手)并且想要使用向量的多数组。我是这样做的:

在互联网上,我只能找到使用 int、doule 等的多数组示例。是否可以在 mutliarray 中使用 std::vector ?我知道我可以使用 3d 多数组,但我更喜欢向量作为元素。

0 投票
0 回答
1813 浏览

c++ - Eigen::Matrix vs. boost::multi_array vs. Eigen::Map

在执行相当简单的任务来比较以下性能时,我得到了令人费解的结果:

  • 特征::矩阵
  • boost::multi_array
  • boost::multi_array 使用 Eigen::Map 映射到 Eigen::Matrix

这是我的测试代码的精简版;可以在以下网址找到更完整的版本:http: //pastebin.com/faZ7TvJG

结果如下:

如果我使用 if 语句跳过每个第二个元素,我会得到以下结果:

检查程序集表明,在顺序访问情况下,Eigen 更快,因为总和变得矢量化,而在使用原始 boost::multi_array 时则不然。

那么我的问题是:

  1. 为什么 boost::multi_array 没有向量化,而 Eigen::Matrix 是?
  2. 为什么映射到 Eigen 的 multi_array 比“本机”Eigen 数据结构更快?

对于编译,我使用以下内容:

感谢您的回答。

0 投票
3 回答
1976 浏览

c++ - 如何从提升多数组中获取最大/最小元素

我想知道一种简单的方法来查找 boost 多数组的最大/最小元素,一个具有 3 个索引的对象,如下所示:

0 投票
1 回答
119 浏览

c++ - 嵌套 boost::multi_array?

我有一个模板类,它进行一些计算并返回 multi_array,有点过于简单,如下所示:

使用简单类型实例化类T=double可以正常工作。现在,我想用“ T=boost::multi_array<double, 1>”实例化,但是结果类型是boost::multi_array<double, 3>.

该定义multi_array<multi_array<T, N>, M>>显然不会导致multi_array<T, N+M>,它只是一个 N 维 multi_array 元素是 M 维 multi_arrays ...

生成这种类型的想法是由 Boost 手册中所说的

MultiArray 是递归定义的;容器层次模型 MultiArray 的每个级别的容器也是如此。实际上,中间multi_array级别的“元素”是 type subarray

可以使用subarray生成multi_array具有有效维度的类型N+M吗?也许以某种方式沿着以下几行:

我正在寻找一个相对干净的解决方案(不是冗长的 hack),如果 multi_array 接口无法做到这一点,我会更好地重新考虑我将要实现的设计。

0 投票
3 回答
2346 浏览

c++ - 哪个最快?boost::multi_array 还是 std::vector?

哪个最快?一个boost::multi_array或一个std::vector?我将(不是恒定的)17.179.869 个元素存储在 3 个维度中,需要在for循环中非常快速且非常频繁地访问这些元素。最有表现力的会是什么?一个std::vector或一个boost::multi_array

(我不希望它在一秒钟内完成,但我希望它尽可能高效,因为纳秒的差异可以节省大量时间。)

0 投票
3 回答
288 浏览

c++ - cpp 多维向量

我想将这些字符串向量存储为 4 维向量。我已经搜索了三天,但我无法决定是否使用多维向量、提升多数组、结构数组……我对 cpp 很陌生,他们很困惑。

我应该为人口稠密的人做些什么?

0 投票
1 回答
414 浏览

c++ - 在未指定维数的类中包含 boost::multi_array

我正在创建一个 gridcell 类,它基本上是一个多单元格数组。我希望这个网格单元有任意数量的维度。这意味着在 boost::multiarray 变量的声明中我不能指定模板的第二个参数。具体来说,我的代码如下所示:

具体来说, boost::multi_array * grid; 我希望它在 Gridcell 类构造函数中指定的维数。

有什么建议或替代方案吗?

非常感谢你!

0 投票
1 回答
511 浏览

c++ - 在 boost::multi_array 中,子数组的类型是什么?

如果我有一个

以下是哪种类型?

我应该如何在函数接口中定义对它的引用?

0 投票
2 回答
1188 浏览

c++ - 如何在模板类中为“boost::array_view”创建 typedef

我想要一个与维度无关的模板(对 3d 和 4d 都有用),大多数操作将在第一维剥离的子矩阵上执行。

所以这就是我想要的

wherearray_type定义了由此类管理的数组index_type定义了用于索引数组的类型,我想`stride_type定义该数组的一个具有较少维度的切片。

现在我得到一个错误: