Incorrect evaluation of expression? [duplicate]

Possible Duplicate:
How can I work around this TikZ bug?

I am plotting points on function f(x)=1-x^2/2+x^4/16. Obviously f(x)=-f(x), but PGF does not think so.

\documentclass{minimal}
\usepackage{tikz}
\begin{document}
\tikz{
\draw[very thin, gray] (-2,0) grid (2,2);
\draw[->] (-2.2,0) -- (2.2,0) node[right] {$x$};
\draw[->] (0,-.2) -- (0,2.2) node[right] {$y$};
\def\wExpr{1-.5*(\x^2)+(1/16.)*(\x^4)}     %%%%% <<<
\foreach\x in {-1.9,-1.3,-.8,-.2,.4,.9,1.5,2.0}{
\fill (\x,{\wExpr}) circle (2pt);
}
}
\end{document}


What am I missing?

PS: I am able to work around it with abs around the exponentiation, but why does this work?

-

marked as duplicate by Jake, Joseph Wright♦Nov 30 '11 at 12:53

\def\wExpr{1-.5*((\x)^2)+(1/16.)*((\x)^4)}

Calling it a bug might be a bit harsh. I would assume that \foreach just performs string replacements, and -1.9^2 is -3.61, as it should be. – Mikael Öhman Nov 9 '11 at 14:55
no, Mikael is right! -2^2=-4 is from the mathematical definition correct. if the minus should be part of the 2 we have to write (-2)^2=4 – Herbert Nov 9 '11 at 21:11
@Herbert: But x^2=4 for x=-2, and that's what the OP correctly expected. In the problem the variable should not be interpreted as a string of characters, but as an entity. – Jake Nov 9 '11 at 22:44