Zitat von
CarstenP:
Bah, warum ist das so schwer? Die einzige Möglichkeit die ich sehe, ist folgende:
function RSqrt(x: single): single;
var
r: single;
const
constZeroPointFive : single = 0.5;
asm
fld constZeroPointFive
....
Aber ist das nicht schon wieder sehr viel overhead?
Meine Frage wäre dann: Gibt es nicht einen einfacheren Weg eine KONSTANTE Gleitkommazahl in den Gleitkommastack zu werfen?
Nein, es ist optimal.
Besseren Code als Delphi in diesem Fall produziert kannst du nicht machen. Außerdem erhöht es die Lesbarkeit ungemein...
Zu der zweiten Frage: es gibt einen. fld1 glaube ich heißt der und läd 1 auf den FPU-Stack..
PS: Die FPU rechnet mit 80(!) Bit, also präziser als Double mit 64.