问题标签 [ublas]

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 投票
2 回答
1948 浏览

c++ - 关于使用 BOOST uBLAS 进行子矩阵操作的新手问题

这让我困惑了几个小时,所以也许这里有人可以提供帮助。我正在尝试使用 uBLAS 将以下简单的 Matlab 程序翻译成 C++:

这是我的尝试,但它不起作用:

产生的输出是:

我不明白为什么第三行现在全为零。有人可以指出我的解决方案吗?

谢谢!

0 投票
2 回答
843 浏览

c++ - 对 Boost::uBLAS 向量执行 STL 操作

如何将函数映射到 uBLAS 中向量的每个元素(如 Mathematica 中的 Map[])?

例如; 我想采用sin()uBLAS 向量的所有元素。在 Boost、GSL 或任何其他数值库中是否有优化的方法来执行此操作,而不是简单地循环遍历向量的元素?

此外,我将如何对 uBLAS 向量执行其他高级操作,例如旋转、删除重复项或用零填充等?

0 投票
0 回答
390 浏览

boost - 从 Boost::ublas 到 ATLAS,

我使用 Boost::ublas 编写了一个程序,该程序使用了广泛的稀疏矩阵向量乘法。我对它的速度一点也不满意,我想试试 ATLAS。是否有明确的程序来转换代码?为了讨论,我在下面附上了一个非常简单的代码。

0 投票
1 回答
377 浏览

c++ - 为什么编译器选择 const 方法而不是 non-const?

我正在尝试使用来自 boost 的 uBlas 矩阵作为后端来实现一个三维张量。其中一个功能是获取对切片的引用并可以轻松分配矩阵。

下面是张量类的一个片段:

layout_type 看起来像:

用例如下:

此行存在问题:

当 trans 和 project 函数一起使用时,编译器会选择 project 和 trans 的 const 重载,我不能像上面那样进行赋值。但是,如果我只留下项目,则使用非常量方法并且一切正常。不幸的是,由于设计的存储布局(映射到二维矩阵),切片的转置是必要的。

是否有任何解决方案来指示正确的功能重载?或者我在某处犯了错误?

0 投票
2 回答
974 浏览

c++ - 将 Boost UBLAS blas-1 应用于矩阵

如何在 boost::numeric::ublas 矩阵上应用 1 级 blas?例如,我想计算最大条目或所有条目的总和。在矩阵上使用 norm_1 或 norm_inf 不会产生编译器错误,但会返回(在我看来)任意结果。我正在使用提升 1.42

0 投票
1 回答
136 浏览

c++ - 处理 boost ublas 稀疏或密集矩阵的 API

我对 Boost ublas 文档有点困惑。我似乎不清楚稀疏矩阵类和密集矩阵类共享一个共同的父类——我相信这是设计使然。但是,我如何设计一个可以接受稀疏或密集矩阵的 API,假设它只需要使用 operator() 访问器对矩阵的条目进行操作,例如。例如,像这样:

也许我对这个的想法是错误的。任何有关如何考虑 ublas 类的对象建模的指导将不胜感激!

0 投票
1 回答
175 浏览

c++ - c++ 和 ublas:创建一个不同大小的 c_vectors 数组

有没有办法创建一个不同大小的 ublas c_vectors 数组?

例如

array[0]将返回ublas::c_vector< double, 3 >(size=3) 并array[0](0)访问其第一个元素

array[1]将返回ublas::c_vector< double, 7 >(size=7) 并array[1](0)访问其第一个元素

ETC

0 投票
2 回答
750 浏览

c++ - 访问 UBLAS 稀疏向量中非零元素的索引

我如何知道 ublas 中 sparse_vector 中第一个非零元素的索引以及每个后续非零元素的索引?函数 begin() 给了我一个迭代器,它可以用来知道存储的第一个非零值,而不是它在向量中的索引。

0 投票
4 回答
6166 浏览

c++ - BOOST uBLAS 矩阵积极慢

有没有办法提高boost ublas产品的性能?

我有两个矩阵 A,B 我想乘/添加/子/...

在 MATLAB 与 C++ 中,对于 2000x2000 矩阵运算,我得到以下时间 [s]

为什么这里会有如此巨大的性能损失?

矩阵只是真正的双打。但我也需要正定、对称、矩形产品。

编辑:代码很简单

编辑 2:结果是 10 次尝试的平均值。标准差小于 0.005

我希望一个因素可能是 2-3,但不是 50(!)

编辑 3:一切都在发布( NDEBUG/MOVE_SEMANTICS/.. )模式下进行。

编辑 4:产品结果的预分配矩阵不影响运行时间。

0 投票
1 回答
220 浏览

c++ - boost::uBLAS 如何处理矩阵的嵌套乘积?

我读了一篇关于使用动态编程优化矩阵嵌套乘积的文章,我想看看它是如何在 boost::uBLAS 中实现的。

我不确定我是否理解文档(他们在页面的最后谈论它),但似乎他们处理了这个问题。当您编写时,R = prod(A, prod(B,C));库会根据和的大小计算A x (B x C)或。(A x B) x CABC

如何实现?图书馆如何“移动括号”?在编写这样的代码行时,我认为prod将评估 的参数,然后运行该函数。

FAQ提到了表达式模板的概念。有联系吗?