aboutsummaryrefslogtreecommitdiff
path: root/sys/osb/iscl64.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/osb/iscl64.c')
-rw-r--r--sys/osb/iscl64.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/sys/osb/iscl64.c b/sys/osb/iscl64.c
new file mode 100644
index 00000000..6a8b624c
--- /dev/null
+++ b/sys/osb/iscl64.c
@@ -0,0 +1,31 @@
+/* Copyright(c) 1986 Association of Universities for Research in Astronomy Inc.
+ */
+
+#define import_spp
+#define import_knames
+#include <stdlib.h>
+#include <iraf.h>
+
+
+/* ISCL64 - Scale a pixel array stored as SPP chars to the desired type.
+ */
+ISCL64 (a, b, npix, bscale, bzero)
+XCHAR *a; /* input array */
+XCHAR *b; /* output array */
+XINT *npix; /* number of bytes to swap */
+XDOUBLE *bscale, *bzero; /* scaling factors */
+{
+ int i, pix;
+ int *ip = (int *) a;
+ double *dp = (double *) calloc (*npix, sizeof (double));
+ double *tmp;
+
+ tmp = dp;
+ for (i=0; i < *npix; i++) {
+ pix = *ip;
+ *tmp = (double) (pix * (*bscale) + (*bzero));
+ tmp++, ip++;
+ }
+
+ memmove (b, dp, (*npix * sizeof (double)));
+}