问题标签 [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.
c++ - 使用 uBLAS 动态分配稀疏矩阵
我开始将 uBLAS 用于我的稀疏矩阵。对于静态分配,我执行以下操作:
但是,我需要动态分配。在这里,他们对 uBLAS 矩阵的动态分配提出了以下建议:
但这似乎不适用于稀疏矩阵。任何想法如何动态分配稀疏矩阵?提前致谢!
c++ - 仅在 vs2012 的发布配置中按值返回 boost ublas 矩阵
我正在使用 Visual Studio 2012,我在我的代码中隔离了一个问题,但我无法解决它。在发布模式下运行它时效果很好,但如果我在调试中运行它会出错。代码是:
调试中的错误如下:
你知道问题是什么吗?
c++ - std::generate - 如何使用随机数生成器?
在我的编程中,我需要创建用户定义数量的ublas 矢量。我想用std::generate
. 但是,我收到编译器错误,这对我来说是不可能的。
我正在使用的代码:
我必须class
专门为函数调用创建一个,因为std::generate
不允许我使用带有参数的函数作为第三个参数(“gen”,请参见此处。我需要正态分布的数字,因此函数调用分布函数必须包含作为参数的随机数生成器。因为它不允许我用参数调用它,所以我必须编写一个类来为我做这件事。
我写的课:
我得到的错误
尝试编译整个内容时,出现以下错误:
我不知道编译器要我在这里做什么,也不知道为什么它在这方面有这么多麻烦。非常感谢任何建议。
c++ - 想为 ublas 的项目功能写一个 C++ 包装器
最小代码示例:
像这样编译:
它引发编译器错误:
我猜我的版本的标题project
不合适(我从 复制了最合适的/usr/include/boost/numeric/ublas/matrix_proxy.hpp
)。如何让它发挥作用?
c++ - 在 ViennaCL 中从 std::vector 转换为 ublas::compressed_matrix
我正在做一些计算,并将得到的 Jacobian NxN 矩阵和右手边向量(n)传递给 boost 的 ublas 并最终传递给 ViennaCL。
使用 copy() 向量没有问题,但是,矩阵被证明是困难的。任何帮助将不胜感激
我尝试了许多变体并查看了文档:
http://ublas.sourceforge.net/refdoc/classboost_1_1numeric_1_1ublas_1_1compressed__matrix.html
此外,ViennaCL 的示例对我不起作用:
http://viennacl.sourceforge.net/viennacl-examples-sparse-matrix.html
经过几个小时的谷歌搜索后,我决定在这里发帖,希望其他人可以破解它,以便下一个人更容易找到。
c++ - 为什么 uBLAS 没有 `operator*(matrix, vector)`?
在文档中,他们说
我们决定不使用运算符重载...
prod
相反,他们提供这些。但为什么?有什么好的理由吗?我喜欢这样做matrix * vector
(就像在大多数其他语言中一样)。我想理解为什么他们没有重载这个操作符来理解为什么自己做可能是个坏主意。或者,如果我自己超载它,它们不是任何缺点吗?
c++ - boost:使用 matrix_row 代替向量
我有一个接受向量并修改它的函数。如何将 matrix_row 实例传递给此函数?我不想做任何复制操作
取消注释 useVector(mRow) 表达式时,我得到:
c++ - Boost uBLAS 库与 GMP 的多精度浮点数相结合
我正在尝试将 uBLAS 的稀疏矩阵与 GMP 的多精度浮点数结合起来。我已将复杂的源代码简化为以下测试用例片段,由于某种原因拒绝编译:
编译命令很简单:
根据我对 GCC 错误的理解,operator()
应用于A(0,0)
无法返回f
对 type 的多精度的引用mpf_class
,并反过来应用被引用的和operator/
之间的引用。相反,似乎 uBLAS 将其视为自己的运营商,因此无法适用于f
2
operator/
operator/
f
c++ - boost ublas reverse iterators on sparse matrices
I need to iterate backwards efficiently over a sparse matrix using the boost ublas library. This is my code:
It compiles but then throws a 'boost::numeric::ublas::bad_index' error. The only information I can find about it is from this guy who says it's a bug. Anyone know how to use the reverse_iterators correctly?
c++ - 为什么 boost ublas 中的 compress_matrix 为非零元素分配了更多的内存?
我深入研究了 boost ublas 代码,发现用于内存分配的 ublas 实现compressed_matrix
不像 CSC 或 CSR 那样标准。
有一条线引起了麻烦,即
non_zeros = (std::max) (non_zeros, (std::min) (size1_,size2_));
在私有restrict_capactiy
方法中。
这是否意味着如果我创建一个稀疏矩阵,则在 boost ublas 中分配的非零数将始终大于min(nrow, ncol)
?
下面的代码我用来演示这个问题。输出将在compressed_matrix 中分配的向量的未使用部分为零。