2016-12-02 54 views
1

我正在写一些例程,它在形式上与2-矢量和标量相同。我想编写是为Eigen::Matrix<double,N,1>模板,实例化它的N = 2或N = 1(标量,包装标double dEigen::Map<Eigen::Matrix<double,1,1>>(&d)Can Eigen也可用于1矢量(标量)吗?

是设计时考虑到这种特殊情况征?你们准备好高效,如在内部号召squaredNorm()abs(v1)Eigen::Matrix<double,1,1>::norm()v1*v1copysign(1,v1)normalized()

回答

2

没有为size=1没有明确的特例,但由于明确的开卷,大多数表达式将产生标代码。例如,squaredNorm()会产生x*x ,但norm将生成sqrt(x*x)。相同的normalized()

+0

谢谢! (我必须写更多,所以说:)所以:也许一个潜在的有用的优化)。 – eudoxos