-
Notifications
You must be signed in to change notification settings - Fork 31
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
amiwrap fails in R2018a #307
Comments
MATLAB changed/removed an unsupported feature that we exploited for some of the symbolic calculations. Can't really blame them for that, but there currently is no easy fix. Marking this as |
As I mentioned offline, I don't understand the connection between this issue #303 and issue #279 (swig interface), so I don't understand why this should be "won't fix".
For the first iteraction (iy==1), this can be resolved as However, when we reach this line, the variables |
As already mentioned, there is no connection between #303 and #279. You also seem to be using old code, in the newest AMICI commit the line you mentioned has been modified and the issue you are tying to fix is no longer present: |
changed to betterSym |
Now I am testing in parallel in R2017b (which works) and R2018a. But then there is a problem in getSyms line 201
In this case, changing sym to str2sym does not fix the issue, but leads to another error. Note that optimize(end) starts like this:
str2sym does not know how to deal with array(1..268, What does it mean? Does this line need some kind of string manipulation? |
Hey tom, yes this is the piece of code that I was referring to earlier.
yielded the definitions of intermediate terms. This is no longer the case due to changes to mupadmex('symobj::optimize',obj.s). This code was originally take from https://www.mathworks.com/help/symbolic/ccode.html , which should still do similar things (See Section "Write Optimized C Code to File with Comments") this is probably a good starting point to figure out how to adapt the code. |
First a quick remark about the relevance. The decision wontfix means that amiwrap is broken in R2018a and all future versions. What can AMICI do without without amiwrap? This has nothing to do with Windows - it is a problem with MATLAB R2018a on all platforms. Now to the code. "how to adapt the code" would require understanding what it does. I began by searching for documentation of symobj::optimize, but didn't find anything anywhere. Then I discovered generate::optimize in one place, and that says very little. I tried it out, and the results look a lot like symobj::optimize, but they are not quite the same. I hope that I'm just overlooking something because, if MATLAB doesn't document something, then they have no reason to support it in the future, so coding to it is dangerous. With that, I can see that fixing makeSyms line 121 is easy, but getSyms line 203 is very complex, and I don't have a fast way to fix it. |
I know, I currently do not have the capacity to further support the matlab interface. I do see the relevance, but it would be great to see some people who are going to continue working with the matlab interface to step up and fix this problem. As previously mentioned the way we used I agree that fixing getSyms line 203 is quite involved and I also do not have a quick way to fix it. This is the reason why it currently is marked as |
By now, the documentation clearly states that we require Matlab<R2018a. Therefore, I think we can close this issue. |
I don't see a connection to issue #303, so I'm filing a separate issue. I am using MATLAB R2018a on Windows 10 64-bit.
Amiwrap fails with the following error messages:
testAmiWrap.zip
My MATLAB version is
The text was updated successfully, but these errors were encountered: