Der Martin: Kann nicht auf "style"-Attribut zugreifen

Beitrag lesen

Hallo Daniela,

Beim Sinus kann man wirklich net viel einsparen, hab ich gerade feststellen müssen, weil da kommt man um die FPU net herum (glaub ich zumindest, so gut bin ich in Mathe auch net).

tatsächlich? Ich hab vor Jahren mal für eine Grafikanwendung, bei der es auch nicht auf absolute Genauigkeit ankam, eine schnelle Sinusfunktion in Assembler geschrieben. Der wesentliche Knackpunkt war, dass ich eine Tabelle mit Stützpunkten (wegen der Symmetrie reicht der Bereich 0..90°) verwendet habe und Werte dazwischen einfach linear interpoliert habe. Damit reduzierte sich eine "Sinus"-Berechnung auf einen Arrayzugriff, eine Verhältnisbildung und eine Addition.

Ganzzahl-Wurzelziehen von großen Zahlen kann dagegen sehr schnell gehen, sofern man es nur näherungsweise braucht (wenn die Zahl nur gerade Bits hat, ist es sogar ganz exakt).

Wie meinst du das? Dass nur gerade Zweierpotenzen auftreten? Etwa sowas wie
 84 = 2^6 + 2^4 + 2^2 ?
Dann verrate mir doch bitte mal, wie du die Wurzel aus 84 "ganz exakt" berechnen willst. Nee, es interessiert mich ehrlich, auch wenn das jetzt vielleicht spöttisch klingen mag.

Doch, kann man. Sehr gut sogar, dafür gibt's eigene OPcodes, und jeder, der direkt mit der FPU arbeitet, kommt um die wohl net herum. Damit verschiebt man doch eigentlich nur das Komma um eine Binärstelle, mehr ist es nicht.

Und das geht in Assembler sogar ohne FPU schnell und effizient. :-)

Schönen Abend noch,
 Martin

--
Schon gewusst, dass Aftershave trotz des Namens eigentlich eher fürs Gesicht gedacht ist?