Index: trunk/psphot/src/psphotModelWithPSF.c
===================================================================
--- trunk/psphot/src/psphotModelWithPSF.c	(revision 13976)
+++ trunk/psphot/src/psphotModelWithPSF.c	(revision 13983)
@@ -1,6 +1,3 @@
 # include "psphot.h"
-
-// XXX elevate the p_psMinLM_ functions to psMinLM_...
-
 
 bool psphotModelWithPSF_LMM (
@@ -69,5 +66,5 @@
 
         // set a new guess for Alpha, Beta, Params
-        if (!p_psMinLM_GuessABP(Alpha, Beta, Params, alpha, beta, params, paramMask, checkLimits, lambda)) {
+        if (!psMinLM_GuessABP(Alpha, Beta, Params, alpha, beta, params, paramMask, checkLimits, lambda)) {
             min->iter ++;
             lambda *= 10.0;
@@ -76,5 +73,5 @@
 
         // measure linear model prediction
-        psF32 dLinear = p_psMinLM_dLinear(Beta, beta, lambda);
+        psF32 dLinear = psMinLM_dLinear(Beta, beta, lambda);
 
         // dump some useful info if trace is defined
@@ -88,5 +85,5 @@
 
         // calculate Chisq for new guess, update Alpha & Beta
-        Chisq = p_psMinLM_SetABX(Alpha, Beta, Params, paramMask, source, func);
+        Chisq = psphotModelWithPSF_SetABX(Alpha, Beta, Params, paramMask, source, psf, func);
         if (isnan(Chisq)) {
             min->iter ++;
@@ -112,5 +109,5 @@
         /* if (Chisq < min->value) {  */
         if (rho > 0.0) {
-            min->lastDelta = (min->value - Chisq) / (dy->n - params->n);
+            min->lastDelta = (min->value - Chisq) / (source->pixels->numCols*source->pixels->numRows - params->n);
             min->value = Chisq;
             alpha  = psImageCopy(alpha, Alpha, PS_TYPE_F32);
@@ -127,5 +124,5 @@
     // construct & return the covariance matrix (if requested)
     if (covar != NULL) {
-        if (!p_psMinLM_GuessABP(covar, Beta, Params, alpha, beta, params, paramMask, NULL, 0.0)) {
+        if (!psMinLM_GuessABP(covar, Beta, Params, alpha, beta, params, paramMask, NULL, 0.0)) {
             psTrace ("psLib.math", 5, "failure to calculate covariance matrix\n");
         }
@@ -172,8 +169,4 @@
     }
 
-    psF32 chisq;
-    psF32 delta;
-    psF32 weight;
-    psF32 ymodel;
     psVector *deriv = psVectorAlloc(params->n, PS_TYPE_F32);
 
@@ -191,5 +184,4 @@
 
     // fill in the coordinate and value entries
-    nPix = 0;
     for (psS32 i = 0; i < source->pixels->numRows; i++) {
         for (psS32 j = 0; j < source->pixels->numCols; j++) {
@@ -239,5 +231,5 @@
     psImageInit (alpha, 0.0);
     psVectorInit (beta, 0.0);
-    chisq = 0.0;
+    float chisq = 0.0;
 
     for (psS32 i = 0; i < source->pixels->numRows; i++) {
@@ -257,9 +249,9 @@
             }
 
-	    ymodel  = modelConv->data.F32[i][j];
-	    yweight = 1.0 / source->weight->data.F32[i][j];
-	    delta = ymodel - source->pixels->data.F32[i][j];
-
-	    chisq += PS_SQR(delta) * var;
+	    float ymodel  = modelConv->data.F32[i][j];
+	    float yweight = 1.0 / source->weight->data.F32[i][j];
+	    float delta = ymodel - source->pixels->data.F32[i][j];
+
+	    chisq += PS_SQR(delta) * yweight;
 
 	    if (isnan(delta))
@@ -273,5 +265,5 @@
 	      }
 	      psImage *dmodel = dmodelsConv->data[n1];
-	      weight = dmodel->data.F32[i][j] * yweight;
+	      float weight = dmodel->data.F32[i][j] * yweight;
 	      for (psS32 n2 = 0; n2 <= n1; n2++) {
                 if ((paramMask != NULL) && (paramMask->data.U8[n2])) {
@@ -281,5 +273,5 @@
                 alpha->data.F32[n1][n2] += weight * dmodel->data.F32[i][j];
 	      }
-	      beta->data.F32[jn] += weight * delta;
+	      beta->data.F32[n1] += weight * delta;
 	    }
 	}
