c++ - Eigen 也可以用于 1- vector (标量)吗?

标签 c++ eigen eigen3

我正在编写一些例程,它对于 2 vector 和标量在形式上是相同的。我想写 is 作为 Eigen::Matrix<double,N,1> 的模板,将其实例化为 N=2 或 N=1(对于标量,将标量 double d 包装为 Eigen::Map<Eigen::Matrix<double,1,1>>(&d)

Eigen 的设计是否考虑到了这种特殊情况?它会有效吗,例如内部调用 abs(v1)对于 Eigen::Matrix<double,1,1>::norm() , v1*v1对于 squaredNorm()copysign(1,v1)对于 normalized()

最佳答案

size=1 没有显式特化,但由于显式展开器,大多数表达式将生成标量代码。例如,squaredNorm() 将生成 x*x,而 norm 将生成 sqrt(x*x) . normalized() 也是如此。

关于c++ - Eigen 也可以用于 1- vector (标量)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40927022/

相关文章:

c++ - Eigen :如果我只能计算 Aty 和 Ax,是否有可能创建类似 LeastSquareDiagonalPreconditioner 的调节器?

c++ - 将 Eigen::PermutationMatrix.indices() 转换为数组/vector

c++ - Qt 更新()不起作用

c++ - 为什么这个函数调用没有拒绝不合适的重载?

c++ - 在 C++ 中实现 >2 维的多元高斯概率密度函数

c++ - 优化的 SIMD vector 库是否由等效的标量运算执行?

C++11,常量数据成员,std::inserter,复制

c++ - 如何清除结构中的填充字节以进行比较?

c++ - 从 Eigen 调用 Lapack 函数时出现段错误

c++ - 跨 conservativeResize 将 ColXpr 维护为 MatrixXf