Index: trunk/stac/src/stacRejection.c
===================================================================
--- trunk/stac/src/stacRejection.c	(revision 2765)
+++ trunk/stac/src/stacRejection.c	(revision 3375)
@@ -1,3 +1,4 @@
 #include <stdio.h>
+#include <assert.h>
 #include "pslib.h"
 #include "stac.h"
@@ -34,5 +35,5 @@
     // Get the median
     psStats *stats = psStatsAlloc(PS_STAT_SAMPLE_MEDIAN);
-    (void)psVectorStats(stats, pixels, mask, 1);
+    (void)psVectorStats(stats, pixels, NULL, mask, 1);
     float median = stats->sampleMedian;
     psFree(stats);
@@ -53,33 +54,13 @@
 
     // Check inputs
-    if (inputs->n != rejected->n) {
-	psError("stac.rejection", "Number of input images (%d) and rejection masks (%d) does not match.\n",
-		inputs->n, rejected->n);
-	return NULL;
-    }
-    if (inputs->n != regions->n) {
-	psError("stac.rejection", "Number of input images (%d) and region masks (%d) does not match.\n",
-		inputs->n, regions->n);
-	return NULL;
-    }
-    if (inputs->n != maps->n) {
-	psError("stac.rejection", "Number of input images (%d) and transformation maps (%d) does "
-		"not match.\n", inputs->n, maps->n);
-	return NULL;
-    }
-    if (inputs->n != inverseMaps->n) {
-	psError("stac.rejection", "Number of input images (%d) and inverse transformation maps (%d) does "
-		"not match.\n", inputs->n, inverseMaps->n);
-	return NULL;
-    }
+    assert(inputs->n == rejected->n);
+    assert(inputs->n == regions->n);
+    assert(inputs->n == maps->n);
+    assert(inputs->n == inverseMaps->n);
+
     for (int i = 0; i < nImages; i++) {
-	if ((((psImage*)(inputs->data[i]))->numRows != ((psImage*)(regions->data[i]))->numRows) ||
-	    (((psImage*)(inputs->data[i]))->numCols != ((psImage*)(regions->data[i]))->numCols)) {
-	    psError("stac.rejection",
-		    "Sizes of input image (%dx%d) and region mask (%dx%d) for input %d do not match.\n",
-		    ((psImage*)(inputs->data[i]))->numCols, ((psImage*)(inputs->data[i]))->numRows,
-		    ((psImage*)(regions->data[i]))->numCols, ((psImage*)(regions->data[i]))->numRows, i);
-	    return NULL;
-	}
+	psImage *input = inputs->data[i];
+	psImage *region = regions->data[i];
+	assert(input->numRows == region->numRows && input->numCols == region->numCols);
     }
 
@@ -114,5 +95,5 @@
 	sprintf(crfile,"%s.cr",config->inputs->data[i]);
 	if ((crs = fopen(crfile, "w")) == NULL) {
-	    psError("stac.rejection","Unable to open file for detailed output, %s\n");
+	    fprintf(stderr, "Unable to open file for detailed output, %s\n");
 	    return NULL;
 	}
@@ -198,13 +179,29 @@
 #ifdef TESTING
 	// Write error image out to check
-	char maskfile[MAXCHAR];		// Filename of mask image
-	char rejmapfile[MAXCHAR]; 	// Filename of rejection image
-	char gradfile[MAXCHAR];		// Filename of gradient image
-	sprintf(maskfile,"%s.mask",config->inputs->data[i]);
-	sprintf(rejmapfile,"%s.rejmap",config->inputs->data[i]);
-	sprintf(gradfile,"%s.grad",config->inputs->data[i]);
-	psImageWriteSection(mask,0,0,0,NULL,0,maskfile);
-	psImageWriteSection(rejmap,0,0,0,NULL,0,rejmapfile);
-	psImageWriteSection(grad,0,0,0,NULL,0,gradfile);
+	char maskName[MAXCHAR];		// Filename of mask image
+	char rejmapName[MAXCHAR]; 	// Filename of rejection image
+	char gradName[MAXCHAR];		// Filename of gradient image
+	sprintf(maskName,"%s.mask",config->inputs->data[i]);
+	sprintf(rejmapName,"%s.rejmap",config->inputs->data[i]);
+	sprintf(gradName,"%s.grad",config->inputs->data[i]);
+
+	psFits *maskFile = psFitsAlloc(maskName);
+	psFits *rejmapFile = psFitsAlloc(rejmapName);
+	psFits *gradFile = psFitsAlloc(gradName);
+	if (!psFitsWriteImage(maskFile, NULL, mask, 0, NULL)) {
+	    psErrorStackPrint(stderr, "Unable to write image: %s\n", maskName);
+	}
+	psTrace("stac", 1, "Mask image written to %s\n", maskName);
+	if (!psFitsWriteImage(rejmapFile, NULL, rejmap, 0, NULL)) {
+	    psErrorStackPrint(stderr, "Unable to write image: %s\n", rejmapName);
+	}
+	psTrace("stac", 1, "Rejection map written to %s\n", rejmapName);
+	if (!psFitsWriteImage(gradFile, NULL, grad, 0, NULL)) {
+	    psErrorStackPrint(stderr, "Unable to write image: %s\n", gradName);
+	}
+	psTrace("stac", 1, "Gradient image written to %s\n", gradName);
+	psFree(maskFile);
+	psFree(rejmapFile);
+	psFree(gradFile);
 	psFree(rejmap);
 	psFree(grad);
