Why does the same function generate different results when coder.extrinsic is ON or OFF?
3 views (last 30 days)
Show older comments
In the attached file, there is a simulink block that:
- Calls a TestFunction directly
- Calls the TestFunction through a wrapper
at the end the result of the two function calls are compared.
If the following line:
coder.extrinsic('wrapper');
is commented, the two function calls give the same results. However, if that line is not commented very small differences arise.
Where do these difference come from? And more importantly, how can I get exactly the same result by having following line not commented?
coder.extrinsic('wrapper');
I have performed the test under Matlab 2013a 32bit and 2014a 32bit.
0 Comments
Answers (1)
Angelo Yeo
on 26 Aug 2022
Edited: Angelo Yeo
on 26 Aug 2022
This is because math kernel libraries for code-gen fmincon and MATLAB engine's are different. This is explained in the doc "fmincon".
https://www.mathworks.com/help/optim/ug/fmincon.html#refsect-extended-capabilities:~:text=Code%20generation%20targets%20do%20not%20use%20the%20same%20math%20kernel%20libraries%20as%20MATLAB%20solvers.%20Therefore%2C%20code%20generation%20solutions%20can%20vary%20from%20solver%20solutions%2C%20especially%20for%20poorly%20conditioned%20problems.
0 Comments
See Also
Categories
Find more on Cluster Configuration in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!