Index: trunk/psModules/src/imcombine/pmSubtraction.c
===================================================================
--- trunk/psModules/src/imcombine/pmSubtraction.c	(revision 14753)
+++ trunk/psModules/src/imcombine/pmSubtraction.c	(revision 14801)
@@ -4,6 +4,6 @@
  *  @author GLG, MHPCC
  *
- *  @version $Revision: 1.58 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2007-09-05 21:20:20 $
+ *  @version $Revision: 1.59 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2007-09-10 20:10:05 $
  *
  *  Copyright 2004-2007 Institute for Astronomy, University of Hawaii
@@ -582,7 +582,8 @@
 
 
-bool pmSubtractionCalculateEquation(psArray *stamps, const pmSubtractionKernels *kernels, int footprint)
-{
-    PS_ASSERT_ARRAY_NON_NULL(stamps, false);
+bool pmSubtractionCalculateEquation(pmSubtractionStampList *stamps, const pmSubtractionKernels *kernels,
+                                    int footprint)
+{
+    PM_ASSERT_SUBTRACTION_STAMP_LIST_NON_NULL(stamps, false);
     PS_ASSERT_PTR_NON_NULL(kernels, false);
     PS_ASSERT_VECTORS_SIZE_EQUAL(kernels->u, kernels->v, false);
@@ -601,6 +602,6 @@
     // We iterate over each stamp, allocate the matrix and vectors if
     // necessary, and then calculate those matrix/vectors.
-    for (int i = 0; i < stamps->n; i++) {
-        pmSubtractionStamp *stamp = stamps->data[i]; // Stamp of interest
+    for (int i = 0; i < stamps->num; i++) {
+        pmSubtractionStamp *stamp = stamps->stamps->data[i]; // Stamp of interest
         if (stamp->status != PM_SUBTRACTION_STAMP_CALCULATE) {
             continue;
@@ -736,12 +737,12 @@
 
 
-psVector *pmSubtractionSolveEquation(psVector *solution, const psArray *stamps)
-{
-    PS_ASSERT_ARRAY_NON_NULL(stamps, NULL);
+psVector *pmSubtractionSolveEquation(psVector *solution, const pmSubtractionStampList *stamps)
+{
+    PM_ASSERT_SUBTRACTION_STAMP_LIST_NON_NULL(stamps, NULL);
 
     // Check inputs, while summing the stamp matrices and vectors
     long numParams = -1;                // Number of parameters
-    for (int i = 0; i < stamps->n; i++) {
-        pmSubtractionStamp *stamp = stamps->data[i]; // Stamp of interest
+    for (int i = 0; i < stamps->num; i++) {
+        pmSubtractionStamp *stamp = stamps->stamps->data[i]; // Stamp of interest
         PS_ASSERT_PTR_NON_NULL(stamp, NULL);
         if (stamp->status != PM_SUBTRACTION_STAMP_USED) {
@@ -772,6 +773,6 @@
     psVectorInit(sumVector, 0.0);
     psImageInit(sumMatrix, 0.0);
-    for (int i = 0; i < stamps->n; i++) {
-        pmSubtractionStamp *stamp = stamps->data[i]; // Stamp of interest
+    for (int i = 0; i < stamps->num; i++) {
+        pmSubtractionStamp *stamp = stamps->stamps->data[i]; // Stamp of interest
         if (stamp->status == PM_SUBTRACTION_STAMP_USED) {
             (void)psBinaryOp(sumMatrix, sumMatrix, "+", stamp->matrix);
@@ -810,8 +811,8 @@
 
 
-int pmSubtractionRejectStamps(psArray *stamps, psImage *subMask, const psVector *solution,
+int pmSubtractionRejectStamps(pmSubtractionStampList *stamps, psImage *subMask, const psVector *solution,
                               int footprint, float sigmaRej, const pmSubtractionKernels *kernels)
 {
-    PS_ASSERT_ARRAY_NON_NULL(stamps, -1);
+    PM_ASSERT_SUBTRACTION_STAMP_LIST_NON_NULL(stamps, -1);
     PS_ASSERT_IMAGE_NON_EMPTY(subMask, -1);
     PS_ASSERT_IMAGE_TYPE(subMask, PS_TYPE_MASK, -1);
@@ -825,5 +826,5 @@
 
     // Measure deviations
-    psVector *deviations = psVectorAlloc(stamps->n, PS_TYPE_F32); // Mean deviation for stamps
+    psVector *deviations = psVectorAlloc(stamps->num, PS_TYPE_F32); // Mean deviation for stamps
     double totalSquareDev = 0.0;        // Total square deviation from zero
     int numStamps = 0;                  // Number of used stamps
@@ -834,6 +835,6 @@
         float background = solution->data.F64[solution->n-1]; // The difference in background
 
-        for (int i = 0; i < stamps->n; i++) {
-            pmSubtractionStamp *stamp = stamps->data[i]; // The stamp of interest
+        for (int i = 0; i < stamps->num; i++) {
+            pmSubtractionStamp *stamp = stamps->stamps->data[i]; // The stamp of interest
             if (stamp->status != PM_SUBTRACTION_STAMP_USED) {
                 continue;
@@ -899,6 +900,6 @@
 
     int numRejected = 0;
-    for (int i = 0; i < stamps->n; i++) {
-        pmSubtractionStamp *stamp = stamps->data[i]; // Stamp of interest
+    for (int i = 0; i < stamps->num; i++) {
+        pmSubtractionStamp *stamp = stamps->stamps->data[i]; // Stamp of interest
         if (stamp->status == PM_SUBTRACTION_STAMP_USED && deviations->data.F32[i] > limit) {
             // Mask out the stamp in the image so you it's not found again
