Summary: | Lazy evaluation handles transpose expression wrong | ||
---|---|---|---|
Product: | Eigen | Reporter: | Magnus Lindhé <lindhee> |
Component: | Core - general | Assignee: | Nobody <eigen.nobody> |
Status: | NEW --- | ||
Severity: | enhancement | CC: | chtz, gael.guennebaud, jacob.benoit.1, jitseniesen |
Priority: | Normal | ||
Version: | 3.1 | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Bug Depends on: | 99 | ||
Bug Blocks: |
Description
Magnus Lindhé
2012-12-06 10:11:11 UTC
I guess detecting this would require a much more complex check than at the moment. Basically, as soon as the assignment is performed it is required to check if A appears transposed() anywhere in the expression (actually, one could check at the same time if it appears in a product or in overlapping block-expressions). Maybe the expression evaluator will solve this one day ... The goal of this aliasing detection mechanism was only to detect most common use cases, and we never claimed it was thorough. Detecting all nested transposed matrices would not be very complicated to implement, but 1) this would increase compilation time quite a lot, and 2) there exist many other aliasing situations that are much more complicated to detect (think about sub matrices or permuted sub matrices...). Overall, I'm tempted to say "wont fix". I agree that its almost impossible to detect all kinds of aliasing. I'd still think that an advanced alias-checker could be nice sometimes (maybe only enabled by a compile flag). But that would definitely be low priority. Maybe we can postpone the decision until the expression evaluator is more or less stable and see how complicate it will be to integrate? -- GitLab Migration Automatic Message -- This bug has been migrated to gitlab.com's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.com/libeigen/eigen/issues/536. |