我正在编写一些例程,它对于 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/