问题标签 [boost-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++ - 如何将 CSR 矩阵直接加载到 boostcompressed_matrix 中?
我想将矩阵从应用程序 A(使用 LDU 格式的矩阵)传输到应用程序 B(使用 boost ublascompressed_matrix,CSR 格式)。
我有一个将 LDU 格式转换为 CSR 格式的功能。ldu2csr 函数为我提供了以 CSR 格式存储稀疏矩阵所需的三个数组(可以在此处找到 CSR 格式的详细信息:compressed_matrix in boost 分配的空间): ... values[idx] = matrix.upper()[i ]; cols[idx] = 列;行[行]++;
如何将这些数组直接加载到 boost ublascompressed_matrix 的相应数组中?
c++ - 在 boost::ublas 中禁用警告日志
在用我反转矩阵时,boost::ublas
有时会在日志中出现此错误:
在第 298 行的文件 /usr/include/boost/numeric/ublas/lu.hpp 中检查失败:detail::expression_type_check (prod (triangular_adaptor (m), e), cm2)
我知道这通常是有用的信息,但对我来说不是。有没有办法抑制该消息(以某种方式配置提升或使用编译器标志)?BOOST_UBLAS_NDEBUG
不削减它。
c++ - identity_matrix/zero_matrix:他们分配了吗?
矩阵类identity_matrix
和zero_matrix
模板ALLOC
作为第二个参数。但是他们真的分配内存吗?
c++ - 带升压 ublas 的常数矩阵
我想用这样的 boost 定义一个恒定的 3x3 矩阵,它在执行过程中永远不会改变:
这个矩阵将是一个类的成员。那么,我可以像原始类型一样将常量矩阵变量定义和初始化为类成员吗?当我尝试为 someMatrix 变量键入 const 时,我无法在构造函数中分配矩阵数据并收到此错误:
以下是代码:
测试.h
测试.cpp
主文件
我真正想要的是找到一种方法来定义 someMatrix 像这样:
c++ - 封装 ublas 并重载对 operator() 的 const 引用
考虑以下玩具示例,我在其中声明了一个ublas
从boost 库中封装的类:
我期待输出
但我得到了
我究竟做错了什么?如何正确跟踪何时mtr_
可以更改其值?
c++ - typedef 固定大小的向量和 boost::numeric::ublas::vector
我的意思是typedef
一个具有固定大小的向量/提升向量的名称,然后是相应的迭代器。我能做的是(见下文)
这个想法是稍后在我的代码中使用类似
问题1:这可能与
std::vector<double>
boost::numeric::ublas::vector<double>
?
如果不可能:
问题2:什么是替代实现?(以下除外)。
问题 3:我将如何
typedef
使用迭代器?
截至目前,由于我找不到方法,我定义了自己的类(见下文)。但这带来了(至少)必须重新定义我自己的begin
和end
迭代器(例如this)的负担。我的意思是避免这种情况。
问题 4:operator+=
我在(见下文)
的定义中将两条替代行放在一起。其中之一不工作。问题是什么?
c++ - Boost 矩阵的 iterator1 和 iterator2 是什么以及如何使用?
我正在寻找一种使用迭代器迭代 Boost 矩阵元素的方法。文档报告返回 iterator1 和 iterator2 的 Matrix 方法:
我尝试遍历它们,并且 iterator1 遍历矩阵的第一列(仅),而 iterator2 遍历第一行(仅)。
这些 iterator1 和 iterator2 是如何使用的?
c++ - 将按值返回向量的函数作为 ublas::element_prod() 的参数传递有什么问题?
我似乎无法理解为什么直接将函数作为参数传递给 ublas::element_prod() 会产生错误的结果。
如果我运行以下代码:
我得到以下输出:
谁能告诉我为什么第二种编码风格会产生错误的结果,而没有编译错误?
c++ - 在 Boost.uBLAS 中直接使用 vector_expression
我们有一个性能问题,首先将表达式转换为 Boost.uBLAS 向量,然后进行评估。如果可以跳过向量创建并且直接使用vector_expression,则会有所不同。如果允许,我在 Boost.uBLAS 文档中找不到。事实上,文档中的示例是使用容器类而不是直接使用表达式。它只提到 Boost.uBLAS 使用表达式模板,理论上应该使案例工作。norm_2 函数接受 vector_expression 作为参数,这可能是第二条线索。
一个简化的情况是这样的,其中计算矩阵行之间的范数:
有谁知道这是否允许?
c++ - 提升矩阵矩阵产品定义
这是我正在运行或更好地尝试运行的示例代码。长话短说,它没有按预期工作。
它给出了以下错误。
基本上有很多这样的。为什么这不被接受?我需要将 qvm 转换为矩阵表达式吗?如果是怎么办?我想在将来使用 axpy_prod,但如果这不起作用,那就没有意义了。