Conversation
- make sure to create M.diagonal().transpose() as M_diag_tr - using proper type: double -> Scalar
|
There is definitely a Eigen bug to be reported there. I was waiting for someone to create a MWE and report the bug upstream before I merge the PR. We should also have a unit test to catch this use-case, to make sure we don't break it again inadvertently. |
|
@stnoh @xinyazhang this has been hanging for a while. Has anyone produced a MWE and reported the bug upstream to Eigen? |
|
Nope, I didn't because @xinyazhang said he was writing a bug report in #1230 ... |
|
It doesn't seem @xinyazhang ever reported it upstream, so maybe you can do it @stnoh? (Worst case we'll have it reported twice...). |
|
Urgh... Do you have an Eigen bugzilla account, @jdumas ? |
|
Yeah it says self-registration is disabled due to spam. But if you email the address shown on the webpage they should create an account pretty quickly. I think I got my account before they disabled self-registration due to spam. |
Sorry for the delay, Fix: I'm NOT working on Windows for the most time |
|
I have not, and I'm working on Linux most of the time, so I would appreciate if one of you could do it. Thanks! |
|
Oh, I got Eigen account now, but @xinyazhang already reported a bug. |
|
Hmm I realized I merged this but we still need to add a unit test to make sure we don't reopen the bug with a future update to Eigen. Would any of you Windows guys be willing to add that? |
|
Sorry for late reply... I may write something, but where should I start? |
|
I would suggest to start from an existing unit test, e.g. this one (I picked randomly). Copy the structure and write your own test. Let me know if you have any question! |
Check all that apply (change to
[x])Hello, I tested the fix by @xinyazhang on #1230 and #1237 in my environment (VS2017/Windows 10). Unfortunately, it still doesn't work for me. I checked it with the debugger and found that Aeq is still empty after running the original line of code (maybe this should be Eigen bug).
To fix this, I made one additional line to create M.diagonal().transpose() and make it sparse representation in the second line. Additionally, I also set the type as Scalar, not "double" to follow the original template.
I certificated that it now works in my environment.