diff options
author | Joe Hunkeler <jhunkeler@gmail.com> | 2015-08-11 16:51:37 -0400 |
---|---|---|
committer | Joe Hunkeler <jhunkeler@gmail.com> | 2015-08-11 16:51:37 -0400 |
commit | 40e5a5811c6ffce9b0974e93cdd927cbcf60c157 (patch) | |
tree | 4464880c571602d54f6ae114729bf62a89518057 /sys/vops/aglt.gx | |
download | iraf-osx-40e5a5811c6ffce9b0974e93cdd927cbcf60c157.tar.gz |
Repatch (from linux) of OSX IRAF
Diffstat (limited to 'sys/vops/aglt.gx')
-rw-r--r-- | sys/vops/aglt.gx | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/sys/vops/aglt.gx b/sys/vops/aglt.gx new file mode 100644 index 00000000..54f6ee2f --- /dev/null +++ b/sys/vops/aglt.gx @@ -0,0 +1,48 @@ +# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. + +# AGLT -- Given a list of ranges, replace the value of each input pixel +# which falls within a given range by applying the corresponding linear +# transformation (b = a * kmul + kadd). If KMUL is identically zero, +# B is replaced by the constant KADD. + +procedure aglt$t (a, b, npix, low, high, kmul, kadd, nrange) + +PIXEL a[ARB], b[ARB], pixval +int npix, i +PIXEL low[nrange], high[nrange] # range limits +$if (datatype == dl) +double kmul[nrange], kadd[nrange] # linear transformation +$else +real kmul[nrange], kadd[nrange] +$endif +$if (datatype == x) +real abs_pixval +$endif +int nrange, nr + +begin + do i = 1, npix { + pixval = a[i] + b[i] = pixval + $if (datatype == x) + abs_pixval = abs (pixval) + $endif + do nr = 1, nrange + $if (datatype == x) + if (abs_pixval >= abs (low[nr]) && + abs_pixval <= abs (high[nr])) { + $else + if (pixval >= low[nr] && pixval <= high[nr]) { + $endif + $if (datatype == dl) + if (kmul[nr] == 0.0D0) + $else + if (kmul[nr] == 0.0) + $endif + b[i] = kadd[nr] + else + b[i] = (pixval * kmul[nr]) + kadd[nr] + break + } + } +end |