Why does the same function generate different results when coder.extrinsic is ON or OFF?
10 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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 commentaires
Réponses (1)
Angelo Yeo
le 26 Août 2022
Modifié(e) : Angelo Yeo
le 26 Août 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 commentaires
Voir également
Catégories
En savoir plus sur Simulink Functions dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!