aboutsummaryrefslogtreecommitdiff
path: root/sys/vops/aglt.gx
diff options
context:
space:
mode:
authorJoe Hunkeler <jhunkeler@gmail.com>2015-08-11 16:51:37 -0400
committerJoe Hunkeler <jhunkeler@gmail.com>2015-08-11 16:51:37 -0400
commit40e5a5811c6ffce9b0974e93cdd927cbcf60c157 (patch)
tree4464880c571602d54f6ae114729bf62a89518057 /sys/vops/aglt.gx
downloadiraf-osx-40e5a5811c6ffce9b0974e93cdd927cbcf60c157.tar.gz
Repatch (from linux) of OSX IRAF
Diffstat (limited to 'sys/vops/aglt.gx')
-rw-r--r--sys/vops/aglt.gx48
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