Re: I need the fastest routine
- From: "Nenad Trkulja" <nenad.nospam@xxxxxxxxx>
- Date: Sat, 5 Jul 2008 17:30:14 +0200
Hi Clément,
try this:
procedure MinMaxArray( const aArray : Array of Integer; out aMax, aMin :
integer );
var
i, m, mmod, n: Integer;
begin
aMax := 0;
aMin := 0;
if Length(aArray) > 0 then
begin
aMin := aArray[0];
aMax := aArray[0];
m := Length(aArray) div 4;
mmod := Length(aArray) mod 4;
n := 0;
for i := 0 to m -1 do
begin
if (aArray[n] < aMin) or (aArray[n+1] < aMin) or
(aArray[n+2] < aMin) or (aArray[n+3] < aMin) then
begin
if aArray[n] < aMin then
aMin := aArray[n];
if aArray[n+1] < aMin then
aMin := aArray[n+1];
if aArray[n+2] < aMin then
aMin := aArray[n+2];
if aArray[n+3] < aMin then
aMin := aArray[n+3];
end;
if (aArray[n] > aMax) or (aArray[n+1] > aMax) or
(aArray[n+2] > aMax) or (aArray[n+3] > aMax) then
begin
if aArray[n] > aMax then
aMax := aArray[n];
if aArray[n+1] > aMax then
aMax := aArray[n+1];
if aArray[n+2] > aMax then
aMax := aArray[n+2];
if aArray[n+3] > aMax then
aMax := aArray[n+3];
end;
Inc(n, 4);
end;
for i := 0 to mmod-1 do
begin
if aArray[i+n] < aMin then
aMin := aArray[i+n];
if aArray[i+n] > aMax then
aMax := aArray[i+n];
end;
end;
end;
.
- Follow-Ups:
- Re: I need the fastest routine
- From: Rudy Velthuis [TeamB]
- Re: I need the fastest routine
- From: Clément Doss
- Re: I need the fastest routine
- References:
- I need the fastest routine
- From: Clément Doss
- I need the fastest routine
- Prev by Date: Re: Working with fastMM
- Next by Date: Re: I need the fastest routine
- Previous by thread: Re: I need the fastest routine
- Next by thread: Re: I need the fastest routine
- Index(es):
Relevant Pages
|