From 40e5a5811c6ffce9b0974e93cdd927cbcf60c157 Mon Sep 17 00:00:00 2001 From: Joe Hunkeler Date: Tue, 11 Aug 2015 16:51:37 -0400 Subject: Repatch (from linux) of OSX IRAF --- sys/imio/imloop.x | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 sys/imio/imloop.x (limited to 'sys/imio/imloop.x') diff --git a/sys/imio/imloop.x b/sys/imio/imloop.x new file mode 100644 index 00000000..ffae877b --- /dev/null +++ b/sys/imio/imloop.x @@ -0,0 +1,30 @@ +# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. + +include + +# 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 -- cgit