Re: Unusual speedup of Table
- To: mathgroup at smc.vnet.net
- Subject: [mg25611] Re: [mg25605] Unusual speedup of Table
- From: Richard Palmer <mapsinc at bellatlantic.net>
- Date: Mon, 16 Oct 2000 03:04:36 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
on 10/11/00 3:50 AM, SATether at satether at aol.com wrote: > Timing[Table[Switch[j, _, a[[j + 1]] - 2 a[[j]] + a[[j - 1]]], {j, 2, n - > 1}];] I think the problem is you are thinking procedurally and you have an example of two procedures where one is more efficient than another. An even faster way is to let Mathematica figure it out with something like Take[ Append[Append[a, 0], 0] - 2Append[Prepend[a, 0], 0] + Prepend[Prepend[a, 0], 0], -n]; which appears to be more than twice as quick (my timing runs) as your fast alternative. The reason is I am using canned functions and they don't have to interpret Mathematica code in some looping construct to do the job. I'm sure my way won't be the fastest -- there are some smart programmers who read this list. I suspect the winner will use something like listconvolve Regards, Richard Palmer