Potenz Wurzel oder Logarithmus
-
Hätte da mal ne Anfängerfrage:
Ich habe gerade eine Asm-Befehlsreferenz durchgelesen und finde kein Befehl fürs
Potenzieren Wurzel ziehen oder Logarithmieren. Da muss es doch einige geben.
-
Ich nehme mal die Kristallkugel, und sie sagt mir, dass du x86 meinst.
Wurzel - FSQRT
Logarithmus - FYL2X
-
Ok aber mit FSQRT kann man doch nur die 2^n te Wurzel ausrechnen und wie potenziere ich ?
Gibt es kein Befehl der aus 2 Operanden den Logarithmus berechnet? Klar ich könnte durch umformen jeden mögl. Log bekommen, aber das ist doch bestimmt langsamer.
-
zum Logarithmus kannst du ja folgende Umformung verwenden: logab = ln b/ln b
-
denke mal CStoll meinte:
loga(b) = ln (b)/ln (a)
loga = log zur basis a
-
OK. Danke, Logarithmus wäre geklärt.
Aber Poten und Wurzel. Was wäre programmieren ohne Poten und Wurzel.Es muss doch einfach einen Befehl geben, der die n-te Potenz oder Wurzel ausrechnet
-
Anscheinend mit F2XM1. Da muss man auch erst ein bisschen herumrechnen...
-
In meiner Referenz steht für F2XM1 ,dass er 2^St-1 ausrechnet wobei -1<St<1 sein muss.Mir fällt bei bestem Willen nicht ein, wie man daraus mit beliebigen Basen potenzieren kann.
Na ja, was solls.
-
Das Intel-Manual verräts:
x^y = 2^(y * log_2 x)
und den Logarithmus kann man ja ausrechnen
-
Danke, so würde es klappen. Das heißt jetzt aber,dass -1<St<1 nicht gelten muss, oder ?
-
er schrieb:
Danke, so würde es klappen. Das heißt jetzt aber,dass -1<St<1 nicht gelten muss, oder ?
das gilt trotzdem, aber du könntest z.b. fxtract benutzen, um das argument in einen gültigen bereich zu bringen, den exponenten verechnest du extra (wenn du in den potengesetzen fit bist
) und setzt das ganze dann mit fscale wieder zusammen.