Thread WxPerl: Pixel färben schnell gemacht
(29 answers)
Opened by Mampfgnom at 2010-11-16 11:40
Zeile 64 kannst du die Wurtzel weg lassen.
Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 sub iterieren { my $x1 = $_[0]; my $xN = 0; my $y1 = $_[1]; my $yN = 0; my $count = 0; for my $i (1..$_[2]){ my $xNplus = $xN**2 - $yN**2 + $x1; my $yNplus = 2 * $xN * $yN + $y1; my $rec = $xNplus**2 + $yNplus**2; $xN = $xNplus; $yN = $yNplus; if ($rec > 4){$count = $i;last;} } return $count; } Und "$a" (und "$b") sollte man nicht benutzen, da es für "sort" benutzt wird. Wenn du es noch schneller machen willst solltest du den Inhalt der Funktion in die verschachtelten schleifen packen. Der Funktionsaufruf selber braucht auch etwas Zeit. Leider ist Perl bei rein mathematischen Berechnungen nicht besonders schnell. Das Problem ist, das bei jeder Rechnung der Variablentyp neu festgestellt werden muss. Darum habe ich den Teil auch in Inline-C geschrieben, das beschleunigt die Rechnung um den Faktor 100. |