Skip to content

Fix unrolled assignment evaluator

Reference issue

What does this implement/fix?

Small fixed size arrays and matrices utilize a specialized unrolled evaluation loop for assignment ops, e.g. A = B.cwiseAbs2(). Currently, the unrolled loop will always use the 2d interface coeff(row,col) and packet(row,col) instead of the linear interface coeff(index) and packet(index), even if linear access is requested. This is probably not an issue for most cases but could lead to unpredictable data access patterns. At the very least, it was creating confusing debugging scenarios for this contributor.

This patch adds an analogous unrolling strategy that uses the linear access coeff and packet functions. Changed a few template parameter names that were identical to a local typedef.

Additional information

Edited by Charles Schlosser

Merge request reports

Loading