blob: ffae877b48c35558c8d1d76fc28849a04f5348b5 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc.
include <imio.h>
# IMLOOP -- Increment the vector V from VS to VE (nested do loops cannot
# be used because of the variable number of dimensions). Return LOOP_DONE
# when V exceeds VE.
int procedure imloop (v, vs, ve, vinc, ndim)
long v[ndim], vs[ndim], ve[ndim], vinc[ndim]
int ndim, dim
begin
for (dim=2; dim <= ndim; dim=dim+1) {
v[dim] = v[dim] + vinc[dim]
if ((vinc[dim] > 0 && v[dim] - ve[dim] > 0) ||
(vinc[dim] < 0 && ve[dim] - v[dim] > 0)) {
if (dim < ndim)
v[dim] = vs[dim] # advance to next dim
else
break
} else
return (LOOP_AGAIN)
}
return (LOOP_DONE)
end
|