Extended ist eh ungünstig ... 10 Byte bei 32 Bit
Zitat von
quendolineDD:
Und wenn man die GPU zur Berechnung nimmt?
Das dürfte dann nochmal einiges schneller als die CPU sein :p
probier es doch einfach mal
ich hatte vorhin mal den Fall, daß ich die Testschleife so definierte
... man beachte, daß Delphi
Point nicht in eine Konstante umwandelt, sonder daß da die Funktion Point aufgerufen wird, was das Ergebnis schön verfällscht
Delphi-Quellcode:
C := GetTickCount;
for i := 0 to 100000000 do
if PointInCircle(Point(10, 20), Point(20, 30), 30) = 0 then ;
Caption := Caption + ' ' + IntToStr(GetTickCount - C);
[add]
der absolute Overkill, im Verhältnis zu allen anderen Versionen:
3,3 Sekunden
ohne const-Parameter sogar
4,5 Sekunden
und Single ist nur minimal schleller als Extended
Delphi-Quellcode:
type TExtendedPoint = record x, y: Extended; end;
function PointInCircle2_(const a,b:TExtendedPoint; const radius:extended):integer;
begin
result := Sign(Sqr(radius) - Sqr(a.x-b.x) - Sqr(a.y-b.y));
end;