Я пишу некоторую процедуру, которая формально идентична для 2-векторов, а также для скаляров. Я хотел бы написать 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()
?