This patch implements the system variables !VALUES,
!ERROR_STATE, !ERROR, and !ERR. It also uses a
programmatic way to initialize !DPI and !PI.
Note that this routine just creates the variables, it
does not force any of the code to actually use them.
The variables are initialized with sane values.
The !VALUES of Infinity and NaN are computed
programmatically from known expressions (1/0 and sqrt(-1)).
The values of !PI and !DPI are also computed in this
way so that they aren't hardcoded. [ The hardcoded way
is a problem, for example, on different architectures
the values might be slightly different. The
programmatic way is sure to preserve trig identities.]
How does one use M_PI and so on. Can one just include
> uname -a; cat /etc/redhat-release
Linux xylo 2.4.20-20.7smp #1 SMP Mon Aug 18 14:39:05
EDT 2003 i686 unknown
Red Hat Linux release 7.1 (Seawolf)