Index: trunk/psModules/src/objects/models/pmModel_GAUSS.c
===================================================================
--- trunk/psModules/src/objects/models/pmModel_GAUSS.c	(revision 9653)
+++ trunk/psModules/src/objects/models/pmModel_GAUSS.c	(revision 9675)
@@ -4,11 +4,11 @@
 
 /******************************************************************************
-    params->data.F32[0] = So;
-    params->data.F32[1] = Zo;
-    params->data.F32[2] = Xo;
-    params->data.F32[3] = Yo;
-    params->data.F32[4] = sqrt(2.0) / SigmaX;
-    params->data.F32[5] = sqrt(2.0) / SigmaY;
-    params->data.F32[6] = Sxy;
+    params->data.F32[PM_PAR_SKY] = So;
+    params->data.F32[PM_PAR_I0] = Zo;
+    params->data.F32[PM_PAR_XPOS] = Xo;
+    params->data.F32[PM_PAR_YPOS] = Yo;
+    params->data.F32[PM_PAR_SXX] = sqrt(2.0) / SigmaX;
+    params->data.F32[PM_PAR_SYY] = sqrt(2.0) / SigmaY;
+    params->data.F32[PM_PAR_SXY] = Sxy;
 *****************************************************************************/
 
@@ -17,21 +17,21 @@
                         const psVector *x)
 {
-    psF32 X  = x->data.F32[0] - params->data.F32[2];
-    psF32 Y  = x->data.F32[1] - params->data.F32[3];
-    psF32 px = params->data.F32[4]*X;
-    psF32 py = params->data.F32[5]*Y;
-    psF32 z  = 0.5*PS_SQR(px) + 0.5*PS_SQR(py) + params->data.F32[6]*X*Y;
+    psF32 X  = x->data.F32[0] - params->data.F32[PM_PAR_XPOS];
+    psF32 Y  = x->data.F32[1] - params->data.F32[PM_PAR_YPOS];
+    psF32 px = params->data.F32[PM_PAR_SXX]*X;
+    psF32 py = params->data.F32[PM_PAR_SYY]*Y;
+    psF32 z  = 0.5*PS_SQR(px) + 0.5*PS_SQR(py) + params->data.F32[PM_PAR_SXY]*X*Y;
     psF32 r  = exp(-z);
-    psF32 q  = params->data.F32[1]*r;
-    psF32 f  = q + params->data.F32[0];
+    psF32 q  = params->data.F32[PM_PAR_I0]*r;
+    psF32 f  = q + params->data.F32[PM_PAR_SKY];
 
     if (deriv != NULL) {
-        deriv->data.F32[0] = +1.0;
-        deriv->data.F32[1] = +r;
-        deriv->data.F32[2] = q*(2*px*params->data.F32[4] + params->data.F32[6]*Y);
-        deriv->data.F32[3] = q*(2*py*params->data.F32[5] + params->data.F32[6]*X);
-        deriv->data.F32[4] = -2.0*q*px*X;
-        deriv->data.F32[5] = -2.0*q*py*Y;
-        deriv->data.F32[6] = -q*X*Y;
+        deriv->data.F32[PM_PAR_SKY] = +1.0;
+        deriv->data.F32[PM_PAR_I0] = +r;
+        deriv->data.F32[PM_PAR_XPOS] = q*(2*px*params->data.F32[PM_PAR_SXX] + params->data.F32[PM_PAR_SXY]*Y);
+        deriv->data.F32[PM_PAR_YPOS] = q*(2*py*params->data.F32[PM_PAR_SYY] + params->data.F32[PM_PAR_SXY]*X);
+        deriv->data.F32[PM_PAR_SXX] = -2.0*q*px*X;
+        deriv->data.F32[PM_PAR_SYY] = -2.0*q*py*Y;
+        deriv->data.F32[PM_PAR_SXY] = -q*X*Y;
     }
     return(f);
@@ -49,27 +49,27 @@
     (*params_max)->n = (*params_max)->nalloc;
 
-    beta_lim[0][0].data.F32[0] = 1000;
-    beta_lim[0][0].data.F32[1] = 3e6;
-    beta_lim[0][0].data.F32[2] = 5;
-    beta_lim[0][0].data.F32[3] = 5;
-    beta_lim[0][0].data.F32[4] = 0.5;
-    beta_lim[0][0].data.F32[5] = 0.5;
-    beta_lim[0][0].data.F32[6] = 0.5;
+    beta_lim[0][0].data.F32[PM_PAR_SKY] = 1000;
+    beta_lim[0][0].data.F32[PM_PAR_I0] = 3e6;
+    beta_lim[0][0].data.F32[PM_PAR_XPOS] = 5;
+    beta_lim[0][0].data.F32[PM_PAR_YPOS] = 5;
+    beta_lim[0][0].data.F32[PM_PAR_SXX] = 0.5;
+    beta_lim[0][0].data.F32[PM_PAR_SYY] = 0.5;
+    beta_lim[0][0].data.F32[PM_PAR_SXY] = 0.5;
 
-    params_min[0][0].data.F32[0] = -1000;
-    params_min[0][0].data.F32[1] = 0;
-    params_min[0][0].data.F32[2] = -100;
-    params_min[0][0].data.F32[3] = -100;
-    params_min[0][0].data.F32[4] = 0.01;
-    params_min[0][0].data.F32[5] = 0.01;
-    params_min[0][0].data.F32[6] = -5.0;
+    params_min[0][0].data.F32[PM_PAR_SKY] = -1000;
+    params_min[0][0].data.F32[PM_PAR_I0] = 0;
+    params_min[0][0].data.F32[PM_PAR_XPOS] = -100;
+    params_min[0][0].data.F32[PM_PAR_YPOS] = -100;
+    params_min[0][0].data.F32[PM_PAR_SXX] = 0.01;
+    params_min[0][0].data.F32[PM_PAR_SYY] = 0.01;
+    params_min[0][0].data.F32[PM_PAR_SXY] = -5.0;
 
-    params_max[0][0].data.F32[0] = 1e5;
-    params_max[0][0].data.F32[1] = 1e8;
-    params_max[0][0].data.F32[2] = 1e4;  // this should be set by image dimensions!
-    params_max[0][0].data.F32[3] = 1e4;  // this should be set by image dimensions!
-    params_max[0][0].data.F32[4] = 2.0;
-    params_max[0][0].data.F32[5] = 2.0;
-    params_max[0][0].data.F32[6] = +5.0;
+    params_max[0][0].data.F32[PM_PAR_SKY] = 1e5;
+    params_max[0][0].data.F32[PM_PAR_I0] = 1e8;
+    params_max[0][0].data.F32[PM_PAR_XPOS] = 1e4;  // this should be set by image dimensions!
+    params_max[0][0].data.F32[PM_PAR_YPOS] = 1e4;  // this should be set by image dimensions!
+    params_max[0][0].data.F32[PM_PAR_SXX] = 2.0;
+    params_max[0][0].data.F32[PM_PAR_SYY] = 2.0;
+    params_max[0][0].data.F32[PM_PAR_SXY] = +5.0;
 
     return (TRUE);
@@ -83,11 +83,11 @@
     psF32     *params  = model->params->data.F32;
 
-    params[0] = moments->Sky;
-    params[1] = moments->Peak - moments->Sky;
-    params[2] = moments->x;
-    params[3] = moments->y;
-    params[4] = (moments->Sx < (1.2 / 2.0)) ? 2.0 : (1.2 / moments->Sx);
-    params[5] = (moments->Sy < (1.2 / 2.0)) ? 2.0 : (1.2 / moments->Sy);
-    params[6] = 0.0;
+    params[PM_PAR_SKY] = moments->Sky;
+    params[PM_PAR_I0] = moments->Peak - moments->Sky;
+    params[PM_PAR_XPOS] = moments->x;
+    params[PM_PAR_YPOS] = moments->y;
+    params[PM_PAR_SXX] = (moments->Sx < (1.2 / 2.0)) ? 2.0 : (1.2 / moments->Sx);
+    params[PM_PAR_SYY] = (moments->Sy < (1.2 / 2.0)) ? 2.0 : (1.2 / moments->Sy);
+    params[PM_PAR_SXY] = 0.0;
     return(true);
 }
@@ -95,11 +95,11 @@
 psF64 pmModelFlux_GAUSS(const psVector *params)
 {
-    psF64 A1   = PS_SQR(params->data.F32[4]);
-    psF64 A2   = PS_SQR(params->data.F32[5]);
-    psF64 A3   = PS_SQR(params->data.F32[6]);
+    psF64 A1   = PS_SQR(params->data.F32[PM_PAR_SXX]);
+    psF64 A2   = PS_SQR(params->data.F32[PM_PAR_SYY]);
+    psF64 A3   = PS_SQR(params->data.F32[PM_PAR_SXY]);
     psF64 Area = 2.0 * M_PI / sqrt(A1*A2 - A3);
     // Area is equivalent to 2 pi sigma^2
 
-    psF64 Flux = params->data.F32[1] * Area;
+    psF64 Flux = params->data.F32[PM_PAR_I0] * Area;
 
     return(Flux);
@@ -113,11 +113,11 @@
     if (flux <= 0)
         return (1.0);
-    if (params->data.F32[1] <= 0)
+    if (params->data.F32[PM_PAR_I0] <= 0)
         return (1.0);
-    if (flux >= params->data.F32[1])
+    if (flux >= params->data.F32[PM_PAR_I0])
         return (1.0);
 
-    psF64 sigma  = sqrt(2.0) * hypot (1.0 / params->data.F32[4], 1.0 / params->data.F32[5]);
-    psF64 radius = sigma * sqrt (2.0 * log(params->data.F32[1] / flux));
+    psF64 sigma  = sqrt(2.0) * hypot (1.0 / params->data.F32[PM_PAR_SXX], 1.0 / params->data.F32[PM_PAR_SYY]);
+    psF64 radius = sigma * sqrt (2.0 * log(params->data.F32[PM_PAR_I0] / flux));
     return (radius);
 }
@@ -130,12 +130,13 @@
     psF32 *in  = modelFLT->params->data.F32;
 
-    out[0] = in[0];
-    out[1] = in[1];
-    out[2] = in[2];
-    out[3] = in[3];
+    out[PM_PAR_SKY] = in[PM_PAR_SKY];
+    out[PM_PAR_I0] = in[PM_PAR_I0];
+    out[PM_PAR_XPOS] = in[PM_PAR_XPOS];
+    out[PM_PAR_YPOS] = in[PM_PAR_YPOS];
 
+    assert (PM_PAR_YPOS + 1 == 4);  // so starting at 4 is correct
     for (int i = 4; i < 7; i++) {
         psPolynomial2D *poly = psf->params->data[i-4];
-        out[i] = psPolynomial2DEval(poly, out[2], out[3]);
+        out[i] = psPolynomial2DEval(poly, out[PM_PAR_XPOS], out[PM_PAR_YPOS]);
     }
     return(true);
@@ -153,12 +154,12 @@
 
     dP = 0;
-    dP += PS_SQR(dPAR[4] / PAR[4]);
-    dP += PS_SQR(dPAR[5] / PAR[5]);
+    dP += PS_SQR(dPAR[PM_PAR_SXX] / PAR[PM_PAR_SXX]);
+    dP += PS_SQR(dPAR[PM_PAR_SYY] / PAR[PM_PAR_SYY]);
     dP = sqrt (dP);
 
     status = true;
     status &= (dP < 0.5);
-    status &= (PAR[1] > 0);
-    status &= ((dPAR[1]/PAR[1]) < 0.5);
+    status &= (PAR[PM_PAR_I0] > 0);
+    status &= ((dPAR[PM_PAR_I0]/PAR[PM_PAR_I0]) < 0.5);
 
     if (status)
