The way Mathematica 8.0.1 handles approximate complex values has changed. In the related discussion, the change only seemed to effect the way approximate complex values were displayed
In[28]:=N[8*I]
Out[28]= 0. + 8. I
This is different from prior behavior, where the answer was 8. I
Now I have found a situation where it causes a package I wrote to fail. The simplest embodiment of the problem I can find is:
In[29]:= fnc = Interpolation[{{0, 0}, {2, 2}}, InterpolationOrder -> 1];
In[30]:= fnc[1. I/I]
Out[30]= InterpolatingFunction[][1. + 0. I]
The function does not evaluate because it is expecting a real input. I can't confirm that this is new to 8.0.1 (no old installations of Mathematica around), but I have never encountered this problem with my package before.
Remember, I have reduced the problem to triviality for this posting. In the actual application, the situation is much more complex and deeply buried, so even the obvious simple workarounds are not available to me without lots of work.
Daniel
Daniel
{$Version, $ReleaseNumber}
{"8.0 for Mac OS X x86 (64-bit) (February 23, 2011)", 1}
fnc = Interpolation[{{0, 0}, {2, 2}}, InterpolationOrder -> 1];
fnc[1. I/I]
1.
Bob Hanlon
---- dr DanW <dmaxw...@gmail.com> wrote:
=============
In[621]:= 1.*I/I //Head
Out[621]= Real
In[622]:= 1.+I/I //Head
Out[622]= Real
David Bailey
http://www.dbaileyconsultancy.co.uk
Bobby
On Mon, 04 Apr 2011 05:29:05 -0500, Bob Hanlon <han...@cox.net> wrote:
> As a workaround you could either Chop the input or output
>
> fnc = Interpolation[{{0, 0}, {2, 2}}, InterpolationOrder -> 1];
>
> fnc[Chop[N[I]/I]]
>
> 1.
>
> Chop[fnc[N[I]/I]]
>
> 1.
>
> or redefine the function definition to include Chop
>
> fnc = Interpolation[{{0, 0}, {2, 2}}, InterpolationOrder -> 1][Chop[#]]
> &;
>
> fnc[N[I]/I]
>
> 1.
>
> fnc = Chop[Interpolation[{{0, 0}, {2, 2}}, InterpolationOrder -> 1][#]]
> &;
>
> fnc[N[I]/I]
>
> 1.
>
>
> Bob Hanlon
>
> ---- dr DanW <dmaxw...@gmail.com> wrote:
>
> =============