问题标签 [eigen3]
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++ - 在 Visual Studio 2010 中加快 Eigen 库的性能
为了提高 Visual Studio 2010 中 Eigen 库的性能,我应该更改哪些设置以及在哪里设置?换句话说,在 gcc 中,有一个选项可以打开优化-O3
,我如何在 Visual Studio 中打开优化(如果可能的话)?
c++ - 检查类型是否为 Eigen3 类型
Eigen3 和内置类型互兼容
大家好。我遇到了编写可以同时处理 Eigen3 类型(矩阵和数组)和内置类型的例程的问题。我可以用一个例子来最好地解释这一点:假设我有一个Meter<Type>
模板类,它能够在运行时收集统计信息。
Type 类应支持以下运算符:
operator=(Scalar)
operator=(Type)
operator+(Type)
operator-(Type)
operator*(Type)
operator/(Type)
operator*(Scalar)
operator/(Scalar)
Eigen3
types 为所有这些运算符提供了两个例外:首先,如果是 的某个子类,则operator*(Type)
表示点推导;如果是Type
的某个子类,则Eigen::MatrixBase
表示系数乘积。我可以很容易地解决这个问题;其次,两者都没有实现确保正确初始化为零的要求。Type
Eigen::ArrayBase
operator=(Scalar)
我尝试实现以下仿函数类来帮助我处理区别,但我无法让它们工作:
一些结构来处理内置类型和Eigen3
类型之间的区别:
函数实现本身
专用版本set_const_impl<EigenType>
永远不会被实例化。例如,如果我打电话
我让编译器0
在线投诉
说它0
不能隐式转换为Eigen::Matrix<double, 3, 1>
,这意味着它选择了set_const_impl<Scalar, true>
仿函数的版本(其中两个参数共享一个公共类型Scalar
)。这也意味着我的is_scalar
构造在这种情况下不起作用,即使我已经使用它并在其他类上测试它没有问题。
我在其他几个类中需要这种行为,我不想明确地专门化它们中的每一个!任何人都知道我应该怎么做才能解决这个问题?
提前感谢您的帮助!
c++ - 新值的保守调整大小()为零
调整矩阵大小后如何将新值设置为零?调整矩阵大小后,新值被设置为垃圾值,而不是至少设置为零,这真的很奇怪。
结果
optimization - Eigen3:就地系数乘法
如何使用 Eigen3 执行元素乘法?
做
原地跑?或者是
在风格和性能方面更好的解决方案?
c++ - 如何从二进制文件中写入/读取特征矩阵
要将 Eigen::Matrix 写入文件,我真的很喜欢使用以下内容:
但不幸的是,没有定义可以做相反的事情:
为了规避这个问题,你怎么能读/写 Eigen::Matrix 到二进制文件呢?
c++ - 在 Visual Studio 2012 中检查特征矩阵值
我目前正在使用 Visual Studio 2012。我知道为了可视化 Eigen3 库中的矩阵条目,我必须按照此处所述进行操作。但是,当我尝试了其中描述的两种方法时,在 Visual Studio 中调试时仍然无法显示矩阵条目。有没有人有同样的问题,你是如何解决的?谢谢!
c++ - 使用 Eigen 库执行 sparseLU 并显示 L & U?
我是Eigen的新手,我正在处理稀疏 LU 问题。我发现如果我创建一个向量 b(n),Eigen可以计算 Ax=b 方程的 x(n)。
问题:
原矩阵A的因式分解结果L&U如何显示?
如何在Eigen中插入非零值?现在我只是用一些小的稀疏矩阵进行测试,所以我一个一个地插入非零,但是如果我有一个大规模的矩阵,我怎么能在我的程序中输入矩阵呢?
c++ - 矩阵向量 cwiseProduct 操作的 Eigen3 replicate()
我有以下代码:
输出:
有没有比使用replicate()
调用更有效的方法来实现这一点?
c++ - 如何在 Eigen 库中计算稀疏矩阵的逆
我对 C++ 中的 Eigen 库有疑问。实际上,我想计算稀疏矩阵的逆矩阵。当我在 Eigen 中使用密集矩阵时,我可以使用 .inverse() 运算来计算密集矩阵的逆。但是在稀疏矩阵中,我在任何地方都找不到逆运算。有谁知道计算稀疏矩阵的逆?帮我。