Eigen 也可以用于 1-向量(标量)吗?
Can Eigen be used also for 1-vectors (scalars)?
我正在编写一些例程,它对于 2 向量和标量在形式上是相同的。我想写 is 作为 Eigen::Matrix<double,N,1>
的模板,为 N=2 或 N=1 实例化它(对于标量,将标量 double d
包装为 Eigen::Map<Eigen::Matrix<double,1,1>>(&d)
.
Eigen 的设计是否考虑到了这种特殊情况?它会有效吗,例如在内部为 Eigen::Matrix<double,1,1>::norm()
调用 abs(v1)
,为 squaredNorm()
调用 v1*v1
或为 normalized()
?
调用 copysign(1,v1)
size=1
没有显式特化,但由于显式展开器,大多数表达式将生成标量代码。例如,squaredNorm()
将生成 x*x
,但 norm
将生成 sqrt(x*x)
。 normalized()
.
相同
我正在编写一些例程,它对于 2 向量和标量在形式上是相同的。我想写 is 作为 Eigen::Matrix<double,N,1>
的模板,为 N=2 或 N=1 实例化它(对于标量,将标量 double d
包装为 Eigen::Map<Eigen::Matrix<double,1,1>>(&d)
.
Eigen 的设计是否考虑到了这种特殊情况?它会有效吗,例如在内部为 Eigen::Matrix<double,1,1>::norm()
调用 abs(v1)
,为 squaredNorm()
调用 v1*v1
或为 normalized()
?
copysign(1,v1)
size=1
没有显式特化,但由于显式展开器,大多数表达式将生成标量代码。例如,squaredNorm()
将生成 x*x
,但 norm
将生成 sqrt(x*x)
。 normalized()
.