Re: Compile
- To: mathgroup at yoda.physics.unc.edu
- Subject: Re: Compile
- From: Jerry Keiper <keiper>
- Date: Tue, 28 Jun 1994 07:46:12 -0500
> f = Compile[ {{x, _Real}}, x/10^8 ]
>
> Evaluating it:
>
> f[1.0] -> "CompiledFunction::cfn: Numerical error
> encountered at instruction 6; proceeding with uncompiled
> evaluation."
> I assume it's a bug, or have I missed something ?
The latter, although this has been improved for the next version.
Compile has the Attribute HoldAll. As such there are two operations
in the expression x/10^8: integer exponentiation and floating-point
division. You are getting integer overflow with 10^8. The best
fix (in terma of speed) would be to use
f = Compile[ {{x, _Real}}, 0.00000001 x]
or
f = Compile[ {{x, _Real}}, Evaluate[x/N[10^8]]]
Jerry B. Keiper
keiper at wri.com
Wolfram Research, Inc.