Why is 10^5 more expensive than 10e5?

4 visualizaciones (últimos 30 días)
Mahdi
Mahdi el 30 de Mayo de 2014
Editada: dpb el 30 de Mayo de 2014
As Jan mentioned in this post, what's the reason behind it?

Respuesta aceptada

dpb
dpb el 30 de Mayo de 2014
10^N is a computational expression whereas 10EN is a literal constant. So, the former requires computation (and the exponential is moderately compute-intensive) whereas the latter simply is a conversion from character to numeric representation. Takes (comparatively) little processing internally to do so.
  2 comentarios
Mahdi
Mahdi el 30 de Mayo de 2014
Thank you :)
dpb
dpb el 30 de Mayo de 2014
Editada: dpb el 30 de Mayo de 2014
One additional comment and a difference between compiled languages and interpreted ones is that 10^5 is, while a numeric expression, ultimately a constant. Compiled languages will evaluate this at compile-, not run- time and store the result in the object file so from a computational standpoint in that case they're the same.
The difference is that in an interpreted language, the expression is not evaluated until run-time(+) and if it were in a loop it would be evaluated every time as well.
(+) This is w/o the JIT compiler, of course, which may (or again may not, TMW doesn't and won't say :) ) be able to recognize the constant and do it only once, too. But, in general, the admonition to avoid computing constants in Matlab if possible is still a good suggestion.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre MATLAB Compiler en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by