Index: trunk/psLib/src/imageops/Makefile.am
===================================================================
--- trunk/psLib/src/imageops/Makefile.am	(revision 4446)
+++ trunk/psLib/src/imageops/Makefile.am	(revision 4540)
@@ -1,43 +1,22 @@
-#Makefile for image functions of psLib
+#Makefile for image operation functions of psLib
 #
-INCLUDES = \
-	-I$(top_srcdir)/src/astro \
-	-I$(top_srcdir)/src/db \
-	-I$(top_srcdir)/src/fft \
-	-I$(top_srcdir)/src/fits \
-	-I$(top_srcdir)/src/imageops \
-	-I$(top_srcdir)/src/math \
-	-I$(top_srcdir)/src/mathtypes \
-	-I$(top_srcdir)/src/sys \
-	-I$(top_srcdir)/src/types \
-	-I$(top_srcdir)/src/xml \
-	$(all_includes)
+noinst_LTLIBRARIES = libpslibimageops.la
 
-noinst_LTLIBRARIES = libpslibimage.la
-
-libpslibimage_la_SOURCES = \
-	psImage.c \
+libpslibimageops_la_SOURCES = \
+	psImageConvolve.c \
+	psImageGeomManip.c \
 	psImagePixelExtract.c \
-	psImageStructManip.c \
-	psImageGeomManip.c \
 	psImagePixelManip.c \
 	psImageStats.c \
-	psImageFFT.c \
-	psImageConvolve.c
+	psImageStructManip.c
 
-BUILT_SOURCES = psImageErrors.h
-EXTRA_DIST = psImageErrors.dat psImageErrors.h image.i
-
-psImageErrors.h: psImageErrors.dat
-	$(top_srcdir)/src/psParseErrorCodes --data=$? $@
+EXTRA_DIST = imageops.i
 
 pslibincludedir = $(includedir)
 pslibinclude_HEADERS = \
-	psImage.h \
+	psImageConvolve.h \
+	psImageGeomManip.h \
 	psImagePixelExtract.h \
-	psImageStructManip.h \
-	psImageGeomManip.h \
 	psImagePixelManip.h \
 	psImageStats.h \
-	psImageFFT.h \
-	psImageConvolve.h
+	psImageStructManip.h
Index: trunk/psLib/src/imageops/imageops.i
===================================================================
--- trunk/psLib/src/imageops/imageops.i	(revision 4540)
+++ trunk/psLib/src/imageops/imageops.i	(revision 4540)
@@ -0,0 +1,8 @@
+/* imageops headers */
+%include "psImageConvolve.h"
+%include "psImageGeomManip.h"
+%include "psImagePixelExtract.h"
+%include "psImagePixelManip.h"
+%include "psImageStats.h"
+%include "psImageStructManip.h"
+
Index: trunk/psLib/src/imageops/psImageConvolve.c
===================================================================
--- trunk/psLib/src/imageops/psImageConvolve.c	(revision 4446)
+++ trunk/psLib/src/imageops/psImageConvolve.c	(revision 4540)
@@ -5,6 +5,6 @@
  *  @author Robert DeSonia, MHPCC
  *
- *  @version $Revision: 1.20 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2005-06-25 02:02:05 $
+ *  @version $Revision: 1.21 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2005-07-12 19:12:01 $
  *
  *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -65,8 +65,8 @@
     result->image = psImageAlloc(numCols,numRows,PS_TYPE_KERNEL);
     memset(result->image->rawDataBuffer,0,numCols*numRows*PSELEMTYPE_SIZEOF(PS_TYPE_KERNEL));
-    result->p_kernelRows = psAlloc(sizeof(psKernelType*)*numRows);
-
-    psKernelType** kernelRows = result->p_kernelRows;
-    psKernelType** imageRows = result->image->data.PS_TYPE_KERNEL_DATA;
+    result->p_kernelRows = psAlloc(sizeof(float*)*numRows);
+
+    float** kernelRows = result->p_kernelRows;
+    float** imageRows = result->image->data.PS_TYPE_KERNEL_DATA;
     for (psS32 i = 0; i < numRows; i++) {
         kernelRows[i] = imageRows[i] - xMin;
@@ -103,7 +103,7 @@
     psS32 yMax = 0;
     psS32 length = 0;
-    psKernelType normalizeTime = 1.0;  // fraction of total time for each shift clock
+    float normalizeTime = 1.0;  // fraction of total time for each shift clock
     psKernel* result = NULL;
-    psKernelType** kernel = NULL;
+    float** kernel = NULL;
 
     // got non-NULL vectors?
@@ -170,5 +170,5 @@
         } \
         \
-        normalizeTime = 1.0 / (psKernelType)(tShiftData[length-1]); \
+        normalizeTime = 1.0 / (float)(tShiftData[length-1]); \
         result = psKernelAlloc(xMin,xMax,yMin,yMax); \
         kernel = result->kernel; \
@@ -180,5 +180,5 @@
             y = lastY - yShiftData[i]; \
             \
-            kernel[y][x] += (psKernelType)t / (psKernelType)lastT; \
+            kernel[y][x] += (float)t / (float)lastT; \
             prevT = tShiftData[i]; \
         } \
@@ -216,9 +216,9 @@
         kernel = result->kernel; \
         \
-        normalizeTime = 1.0 / (psKernelType)t; \
+        normalizeTime = 1.0 / (float)t; \
         x = 0; \
         y = 0; \
         for (psS32 i = length-1; i >= 0; i--) { \
-            kernel[y][x] += (psKernelType)(tShiftData[i]) * normalizeTime; \
+            kernel[y][x] += (float)(tShiftData[i]) * normalizeTime; \
             x -= xShiftData[i]; \
             y -= yShiftData[i]; \
@@ -296,5 +296,5 @@
     psS32 yMin = kernel->yMin;
     psS32 yMax = kernel->yMax;
-    psKernelType** kData = kernel->kernel;
+    float** kData = kernel->kernel;
 
     // make the output image to the proper size and type
@@ -399,5 +399,5 @@
         // pad the kernel to the same size of paddedImage
         psImage* paddedKernel = psImageAlloc(paddedCols,paddedRows,PS_TYPE_KERNEL);
-        memset(paddedKernel->data.U8[0],0,sizeof(psKernelType)*numCols*numRows); // zero-out image
+        memset(paddedKernel->data.U8[0],0,sizeof(float)*numCols*numRows); // zero-out image
         psS32 yMax = kernel->yMax;
         psS32 xMax = kernel->xMax;
@@ -407,6 +407,6 @@
                 padRow += paddedRows;
             }
-            psKernelType* padData = paddedKernel->data.PS_TYPE_KERNEL_DATA[padRow];
-            psKernelType* kernelRow = kernel->kernel[row];
+            float* padData = paddedKernel->data.PS_TYPE_KERNEL_DATA[padRow];
+            float* kernelRow = kernel->kernel[row];
             for (psS32 col = kernel->xMin; col <= xMax; col++) {
                 if (col < 0) {
Index: trunk/psLib/src/imageops/psImageConvolve.h
===================================================================
--- trunk/psLib/src/imageops/psImageConvolve.h	(revision 4446)
+++ trunk/psLib/src/imageops/psImageConvolve.h	(revision 4540)
@@ -7,6 +7,6 @@
  *  @author Robert DeSonia, MHPCC
  *
- *  @version $Revision: 1.8 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2005-06-18 03:13:02 $
+ *  @version $Revision: 1.9 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2005-07-12 19:12:01 $
  *
  *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -25,9 +25,9 @@
 
 /** Kernel Type
- *  
+ *
  *  A floating-point data type used for storing kernel data.
- *  
+ *
  */
-typedef psF32 psKernelType;
+//typedef float psKernelType;
 
 /** A convolution kernel */
@@ -35,10 +35,10 @@
 {
     psImage* image;                    ///< Kernel data, in the form of an image
-    psS32 xMin;                          ///< Most negative x index
-    psS32 yMin;                          ///< Most negative y index
-    psS32 xMax;                          ///< Most positive x index
-    psS32 yMax;                          ///< Most positive y index
-    psKernelType** kernel;             ///< Pointer to the kernel data
-    psKernelType** p_kernelRows;       ///< Pointer to the rows of the kernel data; not intended for user use.
+    int xMin;                          ///< Most negative x index
+    int yMin;                          ///< Most negative y index
+    int xMax;                          ///< Most positive x index
+    int yMax;                          ///< Most positive y index
+    float** kernel;                    ///< Pointer to the kernel data
+    float** p_kernelRows;              ///< Pointer to the rows of the kernel data; not intended for user use.
 }
 psKernel;
Index: trunk/psLib/src/imageops/psImageGeomManip.c
===================================================================
--- trunk/psLib/src/imageops/psImageGeomManip.c	(revision 4446)
+++ trunk/psLib/src/imageops/psImageGeomManip.c	(revision 4540)
@@ -10,6 +10,6 @@
  *  @author Ross Harman, MHPCC
  *
- *  @version $Revision: 1.11 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2005-06-25 00:51:28 $
+ *  @version $Revision: 1.12 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2005-07-12 19:12:01 $
  *
  *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -196,5 +196,5 @@
     }
 
-    if (mode < PS_INTERPOLATE_FLAT || mode >= PS_INTERPOLATE_NUM_MODES) {
+    if (mode > PS_INTERPOLATE_LANCZOS4_VARIANCE ) {
         psError(PS_ERR_BAD_PARAMETER_VALUE, true,
                 PS_ERRORTEXT_psImageManip_INTERPOLATION_MODE_UNSUPPORTED,
Index: trunk/psLib/src/imageops/psImagePixelExtract.c
===================================================================
--- trunk/psLib/src/imageops/psImagePixelExtract.c	(revision 4446)
+++ trunk/psLib/src/imageops/psImagePixelExtract.c	(revision 4540)
@@ -8,6 +8,6 @@
  *  @author Robert DeSonia, MHPCC
  *
- *  @version $Revision: 1.4 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2005-06-25 00:51:28 $
+ *  @version $Revision: 1.5 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2005-07-12 19:12:01 $
  *
  *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -312,5 +312,5 @@
     }
 
-    if (mode < PS_INTERPOLATE_FLAT || mode >= PS_INTERPOLATE_NUM_MODES) {
+    if (mode < PS_INTERPOLATE_FLAT ) {
         psError(PS_ERR_BAD_PARAMETER_VALUE, true,
                 PS_ERRORTEXT_psImageManip_INTERPOLATION_MODE_UNSUPPORTED,
Index: trunk/psLib/src/imageops/psImagePixelManip.c
===================================================================
--- trunk/psLib/src/imageops/psImagePixelManip.c	(revision 4446)
+++ trunk/psLib/src/imageops/psImagePixelManip.c	(revision 4540)
@@ -10,6 +10,6 @@
  *  @author Ross Harman, MHPCC
  *
- *  @version $Revision: 1.4 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2005-06-25 00:51:28 $
+ *  @version $Revision: 1.5 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2005-07-12 19:12:01 $
  *
  *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -185,9 +185,9 @@
 }
 
-psS32 psImageOverlaySection(psImage* image,
-                            const psImage* overlay,
-                            psS32 col0,
-                            psS32 row0,
-                            const char *op)
+int psImageOverlaySection(psImage* image,
+                          const psImage* overlay,
+                          int col0,
+                          int row0,
+                          const char *op)
 {
     psU32 imageNumRows;
Index: trunk/psLib/src/imageops/psImagePixelManip.h
===================================================================
--- trunk/psLib/src/imageops/psImagePixelManip.h	(revision 4446)
+++ trunk/psLib/src/imageops/psImagePixelManip.h	(revision 4540)
@@ -8,6 +8,6 @@
  *  @author Robert DeSonia, MHPCC
  *
- *  @version $Revision: 1.6 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2005-06-25 00:51:28 $
+ *  @version $Revision: 1.7 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2005-07-12 19:12:01 $
  *
  *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -78,11 +78,11 @@
  *  function is defined for psU8, psS8, psS16, psF32, psF64, psC32, and psC64.
  *
- *  @return psS32         0 if success, non-zero if failed.
+ *  @return int         0 if success, non-zero if failed.
  */
-psS32 psImageOverlaySection(
+int psImageOverlaySection(
     psImage* image,                    ///< target image
     const psImage* overlay,            ///< the overlay image
-    psS32 col0,                        ///< the column to start overlay
-    psS32 row0,                        ///< the row to start overlay
+    int col0,                          ///< the column to start overlay
+    int row0,                          ///< the row to start overlay
     const char *op                     ///< the operation to perform for overlay
 );
Index: trunk/psLib/src/imageops/psImageStructManip.c
===================================================================
--- trunk/psLib/src/imageops/psImageStructManip.c	(revision 4446)
+++ trunk/psLib/src/imageops/psImageStructManip.c	(revision 4540)
@@ -8,6 +8,6 @@
  *  @author Robert DeSonia, MHPCC
  *
- *  @version $Revision: 1.2 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2005-05-19 05:18:20 $
+ *  @version $Revision: 1.3 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2005-07-12 19:12:01 $
  *
  *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -31,5 +31,15 @@
 {
     psU32 elementSize;          // size of image element in bytes
-    psU32 inputColOffset;       // offset in bytes to first subset pixel in input row
+    psS32 inputColOffset;       // offset in bytes to first subset pixel in input row
+
+    if ( col0 < 0 || row0 < 0 ) {
+        //        psError(PS_ERR_BAD_PARAMETER_VALUE, true,
+        //                PS_ERRORTEXT_psImage_SUBSET_RANGE_INVALID);
+        psError(PS_ERR_BAD_PARAMETER_VALUE, true,
+                PS_ERRORTEXT_psImage_SUBSET_RANGE_INVALID,
+                col0, col1-1, row0, row1-1,
+                image->numCols-1, image->numRows-1);
+        return NULL;
+    }
 
     if (image == NULL || image->data.V == NULL) {
@@ -64,4 +74,7 @@
         return NULL;
     }
+
+
+
     psS32 numRows = row1-row0;
     psS32 numCols = col1-col0;
@@ -94,7 +107,9 @@
 
     out->data.V = psRealloc(out->data.V,sizeof(psPtr)*numRows); // resize row pointer array
-    *(psType*)&out->type = image->type;
-    *(psU32*)&out->numCols = numCols;
-    *(psU32*)&out->numRows = numRows;
+    *(psMathType*)&out->type = image->type;
+    //    *(psU32*)&out->numCols = numCols;
+    //    *(psU32*)&out->numRows = numRows;
+    *(psS32*)&out->numCols = numCols;
+    *(psS32*)&out->numRows = numRows;
     *(psS32*)&out->row0 = row0;
     *(psS32*)&out->col0 = col0;
