Ich teste gerade mal die Fix64 Funktionen durch und bekomme bei der Wurzelfunktion einen Fehler.
Da ich leider nicht die Pro-Version habe muss ich mir einige Funktionen selber schreiben. Beim natürlichen Logarithmus, hergeleitet aus Quadratwurzeln bekomme ich dann einen Compilerfehler.
In der Zeile mit dem q:=sqrt(q); kommt der
internal assembler error 2502.
Nehme ich die Zeile raus, so lässt sich das Programm compilieren.
Laut Compilerhandbuch Seite 121 sollte aber die Sqrt-Funktion auch für Fix64 geeignet sein.
Kann man nicht die uFix64.pas public machen? Ich kann zwar keine Units verwenden, aber da dann das was ich bräuchte herauskopieren.
Da ich leider nicht die Pro-Version habe muss ich mir einige Funktionen selber schreiben. Beim natürlichen Logarithmus, hergeleitet aus Quadratwurzeln bekomme ich dann einen Compilerfehler.
Code
function Fix64Ln(const a: fix64):fix64;
var
p,q: fix64;
i: Integer;
begin
p:=1.0;
q:=a;
for i:=1 to 10 do
q:=sqrt(q);
p:=p*2/(q+1/q);
endfor;
Return(p*(a-1.0/a)/2.0);
end;
var
p,q: fix64;
i: Integer;
begin
p:=1.0;
q:=a;
for i:=1 to 10 do
q:=sqrt(q);
p:=p*2/(q+1/q);
endfor;
Return(p*(a-1.0/a)/2.0);
end;
In der Zeile mit dem q:=sqrt(q); kommt der
internal assembler error 2502.
Nehme ich die Zeile raus, so lässt sich das Programm compilieren.
Laut Compilerhandbuch Seite 121 sollte aber die Sqrt-Funktion auch für Fix64 geeignet sein.
Kann man nicht die uFix64.pas public machen? Ich kann zwar keine Units verwenden, aber da dann das was ich bräuchte herauskopieren.