特征:数据包访问和复制

时间:2017-12-18 21:02:31

标签: eigen eigen3

我是Eigen的新手,我试图在一个简单的复制表达式的上下文中理解Packet Access的语义,该复制表达式将一个向量复制到(例如)4列。

目前,Replicate表达式和它的一元评估器都没有启用数据包访问,我试图看到,至少对于简单情况,如果我可以进行一些更改,以便在分配给矩阵时,基础操作可以得到矢量化。

我在CoreEvaluators.h中尝试了一个hack(这绝对是错误的方法):1242我在Replicate的ArgType上传播PacketAccessBit并生成矢量化代码但是我想弄清楚什么是正确的这样做的方法是。

template<typename ArgType, int RowFactor, int ColFactor> 
struct unary_evaluator<Replicate<ArgType, RowFactor, ColFactor> >
  : evaluator_base<Replicate<ArgType, RowFactor, ColFactor> >
{
 [...]
    Flags = (evaluator<ArgTypeNestedCleaned>::Flags & (HereditaryBits|LinearAccessMask|PacketAccessBit) & ~RowMajorBit) | (traits<XprType>::Flags & RowMajorBit),
 [...]

0 个答案:

没有答案