Auch wenn es jetzt nichts mit dem Thema zu tun hat,
aber immerhin geht es hier ja grob um "Optimierungen":
Deine Codeformatierung und vorallem die Einrückung ist grauenhaft.
Zitat:
Delphi-Quellcode:
begin
if x > 0 then
begin if x > 1 then x := 1;
xs := x - 0.42;
result := sqrt(1-x) * ((((((g*xs+f)*xs+e)*xs+d)*xs+c)*xs+b)*xs + a);
end else
begin if x < -1 then x := -1;
xs := - x - 0.42;
result := - sqrt(1+x) * ((((((g*xs+f)*xs+e)*xs+d)*xs+c)*xs+b)*xs + a) + pi;
end;
end;
Hier wollte ich dich erst darauf hinweisen, daß Result bei x <= 0 undefiniert wäre
(vorallem wegen des "übergeordneten"
if x > 0 then )
und wollte dich gleichzeitig fragen, ob da überhaupt richtige Ergebnisse rauskommen könnten.
Denn rein optisch hatte ich erst diesen Aufbau im Kopf, denn genau darauf läßt deine Formatierung auf den ersten Blick schließen.
Delphi-Quellcode:
begin
if x > 0 then
begin
if x > 1 then
begin
x := 1;
xs := x - 0.42;
result := sqrt(1-x) * ((((((g*xs+f)*xs+e)*xs+d)*xs+c)*xs+b)*xs + a);
end
else
if x < -1 then
begin
x := -1;
xs := - x - 0.42;
result := - sqrt(1+x) * ((((((g*xs+f)*xs+e)*xs+d)*xs+c)*xs+b)*xs + a) + pi;
end;
end;
end;