Função eval

eval('expression') converte uma expressão analítica em notação numérica.

O SMath utiliza o seu motor simbólico, e a maioria das funções pode ser obtida em notação analítica ou numérica. Estas podem ser avaliadas com o operador simbólico "→" ou com o operador numérico "=". Quando se utiliza o "=" numérico, o resultado é apresentado em vírgula flutuante, mas a expressão é primeiro calculada simbolicamente. Por vezes, isto pode demorar muito tempo e reduzir drasticamente a velocidade de cálculo. Se apenas forem necessários valores numéricos, é possível utilizar eval() para evitar o cálculo simbólico, o que aumenta significativamente a velocidade de cálculo.

Exemplo:

Observe o exemplo abaixo, que utiliza eval() (repare no tempo de cálculo).

Utilização de eval()

Ao apontar para a expressão, o resultado do cálculo simbólico aparece também numa descrição. Compare a notação simbólica (descrição) com a numérica ("=").

Compare agora o tempo de cálculo do mesmo exemplo sem eval(). Ao apontar para a expressão, aparece também uma descrição a indicar que é demasiado grande para ser apresentada.

Sem eval()

Por fim, para tornar isto mais claro, vamos simplificar o cálculo anterior, para que se veja como o cálculo simbólico pode tornar-se complicado.

Exemplo simplificado

Esta página baseia-se num artigo da antiga wiki, escrito por Radovan Omorjan.