-
-
Notifications
You must be signed in to change notification settings - Fork 190
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
upgrade to eigen 3.3.9 #2238
upgrade to eigen 3.3.9 #2238
Conversation
8539f06
to
95748de
Compare
Ok, the header tests are already showing the same issue @bgoodri posted so this should make it simpler to debug. Paging resident Eigen experts @t4c1 @andrjohns @SteveBronder @bbbales2 |
It is a backwards incompatible change relating to NumTraits:
|
That is a bit bizzare for a patch release. |
I am not sure it helps in any way but this same error pops up with 3.3.8 as well (tried locally). |
Yes I saw and am pretty sure I know the fixes. I can tackle this on Monday |
@SteveBronder If you could describe the fix, that would help me upload ASAP a StanHeaders that branches to be backwards compatible and forwards compatible with the Eigen version. |
Oh I think the only major thing I think is the general matrix matrix thing. That's the only major thing I saw when reading over dirks patches and the new eigen changes |
OK, I presume Monday is fine, but we're holding up whatever is good about
3.3.8 and 3.3.9 migrating to CRAN.
…On Sun, Dec 6, 2020 at 2:17 PM Steve Bronder ***@***.***> wrote:
Oh I think the only major thing I think is the general matrix matrix
thing. That's the only major thing I saw when reading over dirks patches
and the new eigen changes
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#2238 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAZ2XKSWUNERZXWPXNREEKLSTPKD5ANCNFSM4UPPWT7A>
.
|
Yes, general_matrix_matrix_product has gained a template parameter int ResInnerStride. This is internal Eigen stuff so take makes more sense why it could change in a patch release. Setting it to 1 enables me to run a few tests. A quick grep of the eigen files shows they always set it to 1 as well. |
Adding the following #if EIGEN_VERSION_AT_LEAST(3,3,8)
template <typename Index, int LhsStorageOrder, bool ConjugateLhs,
int RhsStorageOrder, bool ConjugateRhs, int ResInnerStride>
struct general_matrix_matrix_product<Index, stan::math::var, LhsStorageOrder,
ConjugateLhs, stan::math::var,
RhsStorageOrder, ConjugateRhs, ColMajor, ResInnerStride> {
#else
template <typename Index, int LhsStorageOrder, bool ConjugateLhs,
int RhsStorageOrder, bool ConjugateRhs>
struct general_matrix_matrix_product<Index, stan::math::var, LhsStorageOrder,
ConjugateLhs, stan::math::var,
RhsStorageOrder, ConjugateRhs, ColMajor> {
#endif instead of lines 392-396 here https://github.com/stan-dev/math/blob/develop/stan/math/rev/core/Eigen_NumTraits.hpp#L392 compiles with both 3.3.7 and 3.3.9. I am guessing you need that fix for Stan Headers? |
@rok-cesnovar Thanks. I'll put that branching into StanHeaders once our unit tests pass. |
There seems to be more stuff, unfortunately... |
d3a72bc
to
e30247a
Compare
e58504c
to
8f4d51c
Compare
With 8f4d51c this passes the full unit tests, so I think this might be it. The full test suite should be over in about 5 hours. |
Jenkins Console Log Machine informationProductName: Mac OS X ProductVersion: 10.11.6 BuildVersion: 15G22010CPU: G++: Clang: |
Changes look fine to me just need to update the readme and should be good |
Jenkins Console Log Machine informationProductName: Mac OS X ProductVersion: 10.11.6 BuildVersion: 15G22010CPU: G++: Clang: |
Summary
RcppEigen has upgraded to 3.3.9 (they skipped 3.3.8) RcppCore/RcppEigen#92 so we should too.
Hopefully, this also helps with debugging the issue @bgoodri reported here
Changelog for 3.3.9 and 3.3.8 here: http://eigen.tuxfamily.org/index.php?title=ChangeLog#Eigen_3.3.9
Tests
/
Side Effects
Hopefully none.
Release notes
Upgraded to Eigen 3.3.9.
Checklist
Math issue update to Eigen 3.3.9 #2235
Copyright holder: Rok Češnovar
The copyright holder is typically you or your assignee, such as a university or company. By submitting this pull request, the copyright holder is agreeing to the license the submitted work under the following licenses:
- Code: BSD 3-clause (https://opensource.org/licenses/BSD-3-Clause)
- Documentation: CC-BY 4.0 (https://creativecommons.org/licenses/by/4.0/)