MathGroup Archive 2010

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

Search the Archive

Re: question for compiling a function

  • To: mathgroup at smc.vnet.net
  • Subject: [mg113184] Re: question for compiling a function
  • From: Ray Koopman <koopman at sfu.ca>
  • Date: Sun, 17 Oct 2010 06:05:52 -0400 (EDT)
  • References: <i95tjc$65h$1@smc.vnet.net> <i9a55i$nfq$1@smc.vnet.net>

On Oct 15, 11:05 am, Ramiro <ramiro.barran... at gmail.com>
> I got feedback from two people and it worked great:
>
> My new function based on the suggestions is the following:
>
> example2 =
>  Compile[{{n, _Real, 1}, {a, _Real}, {b, _Real}, {t, _Real, 1}},
>   Gamma[Total[n] + a]/(Times @@ (Gamma[n + 1])* Gamma[a])*b^a*
>    Times @@ (t^n)/(Total[t] + b)^(Total[n] + a)]
>
> However, over certain inputs I get the following:
>
> example2[{97.6203, 8.4788, 21.4204,  46.1755}, 1, 1,
>          {39.9342, 7.5820, 5.8656, 10.0553}]
>
> During evaluation of In[277]:= CompiledFunction::cfse: Compiled
> expression 1.33128164105707197950410345`12.920368310128088*^315
> should be a machine-size real number. >>
>
> During evaluation of In[277]:= CompiledFunction::cfex: Could not
> complete external evaluation at instruction 4; proceeding with
> uncompiled evaluation. >>
>
> What can I do?
>
> Thank you,
> Ramiro

Changing Gamma[x] to (x-1)!, and moving b^a
from the first line to the second, we have

(Tr@n+a-1)!/(Times@@(n!)*(a-1)!) *
b^a * Times@@(t^n) / (Tr@t+b)^(Tr@n+a)

The first line  = Multinomial@@Append[n,a-1].
The second line = Times@@((Append[t,b]/(Tr@t+b))^Append[n,a]).

With[{n = {97.6203, 8.4788, 21.4204, 46.1755}, a = 1, b = 1,
      t = {39.9342, 7.5820, 5.8656, 10.0553} },
     Multinomial@@Append[n,a-1] *
     Times@@((Append[t,b]/(Tr@t+b))^Append[n,a]) ]

1.06265*^-11


  • Prev by Date: Re: What generates the In/Out CellLabels and how do I change them?
  • Next by Date: Visualizing a geometric problem
  • Previous by thread: Re: question for compiling a function
  • Next by thread: A Bug in symbolic summation?