RE: latest on Mathematica 4 bug
- To: mathgroup at smc.vnet.net
- Subject: [mg19034] RE: latest on Mathematica 4 bug
- From: "Ersek, Ted R" <ErsekTR at navair.navy.mil>
- Date: Tue, 3 Aug 1999 13:45:02 -0400
- Sender: owner-wri-mathgroup at wolfram.com
I have more on the 4.0 bug recently reported by
(slinger at signal.dera.gov.uk). The following code gives a simple yet
practical demonstration of the problem.
In[1]:=
ideal={1.5 + 0.2 I, 2.3 + 0.4 I};
output=Fourier[ideal]
Out[2]=
{2.68701 + 0.424264 I, -0.565685 - 0.141421 I}
In[3]:=
Part[output,1]=Part[ideal,1];
output
Out[4]=
{1.5 + 1.5 I, -0.565685 - 0.141421 I}
Of course the first part in Out[4] should be
(1.5 + 0.2 I)
We all agree this is a bug.
--------------------------------------
As far as I can tell we don't have the problem when ReplacePart is used (as
below). This solution allows one to keep the advantages of packed arrays,
and I think it's more direct than using Part anyway.
In[5]:=
output=Fourier[ideal];
ReplacePart[output,ideal,1,1]
Out[6]=
{1.5 + 0.2*I, -0.565686 - 0.141421 I}
In[7]:=
output=Fourier[ideal];
ReplacePart[output, 1.5+0.2I, 1]
Out[8]=
{1.5 + 0.2 I, -0.565685 - 0.141421 I}
-------------------------
We can also use an approach along the lines suggested by WRI Tech Support.
In[9]:=
output=Developer`FromPackedArray[Fourier[ideal]];
Part[output,1]=Part[ideal,1];
output
Out[11]=
{1.5 + 0.2 I, -0.565685 - 0.141421 I}
As indicated in an earlier message the error seems to
occur when attempting to set parts of complex, packed arrays.
--------------------------
Regards,
Ted Ersek