Eigen 3.3 Support
It seems that the new expression handling in Eigen 3.3 breaks SymmetricBlockMatrixExpr. This would not be a too big issue for now but it seems that they decided to use Eigen 3.3 in Ubuntu 16.04 LTS. Are there plans to look into that?
Comments (11)
-
-
reporter Thanks for the feedback. I looked into the issue but I have way not enough practice in Eigen extensions to quickly fix that one, it might be a no-brainer for someone who has experience, I can't really tell. I will work with 3.2 for now.
-
I'm very motivated to fix it. I'm not an expert in extending Eigen, either. If you know of someone on your side that is, pls let me know.
-
reporter I've asked around but somehow no one did touch the Eigen internals yet ;)
-
Working on this at Skydio. Eigen 3.3 has some nasty behavior, BTW.
A = B + A*C
seems to do the incorrect thing now, because Eigen no longer detects aliasing on A. -
Sorry to bump up an old issue. Has this been resolved?
-
Hmmm, I don't remember whether a fix was pushed from Skydio before I left (about 4 months after comments above). Unfortunately at this point in time I have no spare cycles to look into it myself. I think my comment on aliasing might be a clue, might have to use .noalias(). @kyelok feel free to create a PR :-) :-)
-
Someone has tried the latest Eigen (3.3.4) at Fyusion, and from what I understand it worked. The issues noted above might have been resolved, but I haven't had a chance to try it myself. I might be able to try this coming weekend.
-
Thanks Frank and Chris :D I don't think the issue's fixed for Eigen 3.2.92 (3.3-beta1) shipped with 16.04 LTS since SymmetricBlockMatrixExpr is breaking on my 16.04 machine. Anyway, I'll poke around a little more.
-
-
assigned issue to
-
assigned issue to
-
- changed status to resolved
Fixed! We're using Eigen 3.3.7.
- Log in to comment
As far as I know nobody has looked into Eigen 3.3 yet. Does it look like the errors are simple to fix? We'd certainly welcome a PR if you want to give it a try. We need to continue to support Eigen 3.2 for a while, so any API changes would have to be wrapped in #ifdef blocks.