MathGroup Archive 2007

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Reproducible kernel crash

  • To: mathgroup at smc.vnet.net
  • Subject: [mg80160] Re: Reproducible kernel crash
  • From: j.f.b.payne at tesco.net
  • Date: Tue, 14 Aug 2007 06:56:04 -0400 (EDT)
  • References: <f9p4qn$qmi$1@smc.vnet.net>

On 13 Aug, 09:30, "Andrew Moylan" <andrew.j.moy... at gmail.com> wrote:
> The following code crashes the kernel the *second* time it is executed:
>
> makeNoise[psd_] := InverseFourier[
>      Sqrt[Join[psd, {1}, Take[Reverse[psd], Length[psd] - 1]]]*
>        Fourier[RandomReal[NormalDistribution[0, 1], 2*Length[psd]]]]
> psd = Join[Table[0, {8}], Table[2, {16}], Table[0, {8}]];
> (ListCorrelate[#1, #1, 1] & )[makeNoise[psd]]
>
> Can anyone figure out why?

It is a Mathematica bug (v6, Windows XP at least). There is a weird
interaction between ListCorrelate and your makeNoise.

Try this

tmp = RandomReal[{-1, 1}, 64];

ListCorrelate[tmp, tmp, 1]

makeNoise[psd_] :=
 InverseFourier[
  Sqrt[Join[psd, {1}, Take[Reverse[psd], Length[psd] - 1]]]*
   Fourier[RandomReal[NormalDistribution[0, 1], 2*Length[psd]]]]

psd1 = Join[Table[0, {8}], Table[2, {16}], Table[0, {8}]];
makeNoise[psd1];

The makeNoise[psd1]; statement crashes it.
If you repeat the above without evaluating tmp and ListCorrelate, all
is well.

So the reason your version crashed second time was that you evaluated
ListCorrelate between 1st and 2nd evaluations of makeNoise

John Payne







  • Prev by Date: Re: Projectile motion
  • Next by Date: [Mathematics 6] How to modify Table created using Insert->New table?
  • Previous by thread: Re: Reproducible kernel crash
  • Next by thread: Re: Reproducible kernel crash