Hallo,
ich bin zwar nicht von Wolfram Research, aber das
> >müssen. Allerdings ist meine Erfahrung, daß dieses Unterfangen für Mma 4
> ^^^^^^^^^
> >praktisch nichts bringt, da offensichtlich der Kernel diese Form der
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> >Optimierung schon selbst vornimmt.
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>
> Vielleicht kann jemand von Wolfram Research das bestaetigen? Fuer
> meine Arbeit waere das wichtig zu wissen.
das Unsinn ist l"asst sich leicht mit
In[]:= f1 =Compile[{{x, _Real}}, Sin[x] + Sin[x]^2 - 4*x*Sin[x]^3];
f1[[4]]
Out[]={1, 3},
{95, 1, 3, 0, 0, 3, 0, 1}, (* erster Sin[] *)
{95, 1, 3, 0, 0, 3, 0, 2}, (* zweiter Sin[] *)
{34, 2, 2, 3}, {9, 4, 0},
{95, 1, 3, 0, 0, 3, 0, 4}, (* dritter Sin[] *)
{34, 4, 4, 4, 5}, {19, 1, 0, 6}, {34, 6, 0, 5, 7}, {38, 7, 8}, {30,
1, 3, 8, 9}, {4, 9}}
und
In[]:= f2 = Compile[{{x, _Real}}, Module[{y = Sin[x]}, y + y^2 -
2*x*y^3]];
f2[[4]]
Out[]={{1, 3}, {95, 1, 3, 0, 0, 3, 0, 1}, (* erster Sin[] und fertig *)
{15, 1, 2}, {34, 2, 2, 3}, {9, 4, 0},
{15, 1, 4}, {34, 4, 4, 4, 5},
{19, 1, 0, 6}, {34, 6, 0, 5, 7},
{38, 7, 8}, {30, 1, 3, 8, 9}, {4, 9}}
"uberpr"ufen. Ansonsten empfiehlt es sich, *immer* den erzeugten
code anzusehen ob nicht Function Aufrufe drin stehen, schnell ist
der Compilierte code nur wenn er nur Anweisungen f"ur die Pseudo-CPU
enth"alt und *keine* Function[]'s wie
In[]:=f3 = Compile[{{x, _Real}}, mySin[x] + mySin[x]^2 -
4*x*mySin[x]^3];
f3[[4]]
Out[]={1, 3}, {26, Function[{x}, mySin[x]], 3, 0, 0, 3, 0, 1}, {26,
Function[{x}, mySin[x]], 3, 0, 0, 3, 0, 2}, {34, 2, 2, 3}, {9, 4,
0}, {26,
Function[{x}, mySin[x]], 3, 0, 0, 3, 0, 4}, {34, 4, 4, 4, 5}, {19,
1, 0,
6}, {34, 6, 0, 5, 7}, {38, 7, 8}, {30, 1, 3, 8, 9}, {4, 9}}
Da der Compile[] so, gut wie "uberhaupt nicht dokumentiert ist, weiss
man nie
genau wann eine Funktion (wie Sin[]) einen Aufruf an eine externe
Funktion
erzeugt und wann nicht. Es gab mal, als der Compile[] Befehl eingef"uhrt
wirde
ein Tutorial auf MathSource in dem die Befehle beschrieben waren, das
ist
aber schon l"angst "uberholt und auch nicht mehr zufinden.
Gruss
Jens
Arnd Roth wrote:
>
> Stimmt das?
>
> >Es kann in bestimmten Fällen hilfreich sein, das Optimize-Package von
> >mathsource zu benutzen (mathsource.wolfram.com). Die Optimierung besteht
> >dabei darin, mehrfach auftretende Ausdrücke nur einmal berechnen zu
> >müssen. Allerdings ist meine Erfahrung, daß dieses Unterfangen für Mma 4
> ^^^^^^^^^
> >praktisch nichts bringt, da offensichtlich der Kernel diese Form der
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> >Optimierung schon selbst vornimmt.
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>
> Vielleicht kann jemand von Wolfram Research das bestaetigen? Fuer
> meine Arbeit waere das wichtig zu wissen.
>
> Viele Gruesse,
>
> Arnd
>
> ---
> Arnd Roth
> Abteilung Zellphysiologie
> Max-Planck-Institut fuer Medizinische Forschung
> Postfach 10 38 20, D-69028 Heidelberg