Re: Compilation options question
- To: mathgroup at smc.vnet.net
- Subject: [mg115870] Re: Compilation options question
- From: Ray Koopman <koopman at sfu.ca>
- Date: Sun, 23 Jan 2011 05:37:13 -0500 (EST)
- References: <ihbjs8$dhm$1@smc.vnet.net>
On Jan 21, 1:32 am, Ramiro <ramiro.barran... at gmail.com> wrote: > [...] > p.s. My main program is basically multiplying the function in question > (exampleN) many many times, that's why I put multiply over the same > call. > > In[170]:= > example0 = > Compile[{{n, _Real, 1}, {a, _Real}, {b, _Real}, {t, _Real, 1}}, > With[{tn = Total[n]}, > b^a*Exp[LogGamma[ > tn + a] - (Total[LogGamma[n + 1]] + LogGamma[a]) + > Total[n*Log[t]] - (tn + a)*Log[Total[t] + b]]]]; > Times @@ Table[ > example0[{1, 1, 1, 1}, 1, 1, {3, 3, 3, 3}], {i, > 10000}] // AbsoluteTiming > [...] Then why not change b^a*Exp[...] to a*Log@b + ..., add the results instead of multiplying them, and exponentiate the sum? Also, and independently, why not change Total[n*Log[t]] to n.Log@t?