Re: A faster alternative to ListIntegrate? postscript

• To: mathgroup at smc.vnet.net
• Subject: [mg35723] Re: A faster alternative to ListIntegrate? postscript
• From: Tom Burton <tburton at brahea.com>
• Date: Sat, 27 Jul 2002 06:43:35 -0400 (EDT)
• Sender: owner-wri-mathgroup at wolfram.com

```I should have checked before: Compile doesn't make any difference on my
machine. (Used too; old habits die hard;) So roughly as fast and simpler is

li[y_,d_]:=Tr[(#[[1]]+#[[2]])d/2&/@Partition[y,2,1]]

Tom Burton

------ Forwarded Message
From: Tom Burton <tomburton at earthlink.net>
To: mathgroup at smc.vnet.net
Subject: [mg35723] Re: A faster alternative to ListIntegrate?

Hello,

Below is a simple-minded implementation that delivers the factor of 10 I
previously suggested in private. It's only first order, but you could
improve it as needed easily.

Tom Burton

On 7/26/02 1:21 AM, in article ahr122\$l2v\$1 at smc.vnet.net, "Matthew Rosen"
<mrosen at cfa.harvard.edu> wrote:

> Hi Everyone;
> I've tracked down the slow operation of my Mathematica simulation code to
> lie in the ListIntegrate command:
>
> G[n_] := ListIntegrate[xsec Phi[n], 1]
>
> where both xsec and Phi[n] are 400 values long.
>
> Is there a way to speed up ListIntegrate via Compile or a similar technique?
>
> Thanks in advance and best regards,

In[2]:=
<<NumericalMath`ListIntegrate`
In[27]:=
xsec=4.0;Phi[n_]=Range[400];
In[29]:=
G1 := ListIntegrate[xsec Phi[n], 1]
In[28]:=
G1
Out[28]=
319998.
In[30]:=
Timing[Do[G1,{200}]]
Out[30]=
{7.6 Second,Null}
In[36]:=
li=Compile[{{y,_Real,1},{d,_Real,0}},
Tr[(#[[1]]+#[[2]])d/2&/@Partition[y,2,1]]
];
In[33]:=
G2:=li[xsec Phi[n],1]
In[34]:=
G2
Out[34]=
319998.
In[35]:=
Timing[Do[G2,{200}]]
Out[35]=
{0.57 Second,Null}

------ End of Forwarded Message

```

• Prev by Date: RE: Re: Question about Replace
• Next by Date: Re: A faster alternative to ListIntegrate?
• Previous by thread: RE: RE: Re: A faster alternative to ListIntegrate?
• Next by thread: More weird integration issues...