Very interesting, out is new for me

This runs a little faster here

[pascal]type
TVector4f = record
x,y,z,w: single;
end;

procedure Cross(out Result: TVector4f; const A, B: TVector4f); inline;
begin
Result.x := A.y * B.z - B.y * A.z;
Result.y := A.z * B.x - B.z * A.x;
Result.z := A.x * B.y - B.x * A.y;
Result.w := 0;
end;


const
a: TVector4f = (x:1.2; y:1.4; z:1.5; w:2.0);
b: TVector4f = (x:2.2; y:2.4; z:2.5; w:4.0);

var
c: TVector4f;
i: integer;

begin
for i := 0 to 100000000 do begin
cross(c, a, b); cross(c, b, a);
end;
end.[/pascal]