Einzelnen Beitrag anzeigen

Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.840 Beiträge
 
Delphi 10 Seattle Enterprise
 
#17

Re: Die Zahl e, aber wie in Pascal?

  Alt 23. Mär 2005, 08:20
Zitat von alcaeus:
Manchmal wundere ich mich ueber die Fantasielosigkeit der Programmierer:
Delphi-Quellcode:
var
  e: Extended;
//...
e := Exp(1);
Hier wird aber auch eine Konstante benutzt.

Die FPU des Prozessors bietet eine Konstante FLDL2E.

FLDL2E entspricht log2(e)

Exp(1) macht also "nur" ein 2^log2(e)
-> also 2 ^ FLDL2E-Konstante

(Anmerkung: ^ = hoch bzw Power() )

Ich perönlich bevorzuge da eine Konstante wie schon weiter oben beschrieben.

Das ist der ASM Code von Exp()
Delphi-Quellcode:
asm
        {       e**x = 2**(x*log2(e))   }

        FLDL2E { y := x*log2e;      }
        FMUL
        FLD ST(0) { i := round(y);     }
        FRNDINT
        FSUB ST(1), ST { f := y - i;        }
        FXCH ST(1) { z := 2**f          }
        F2XM1
        FLD1
        FADD
        FSCALE { result := z * 2**i }
        FSTP ST(1)
end;
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat