IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Sep 22, 2006, 2:29:31 AM (20 years ago)
Author:
rhl
Message:

[Start to] provide symbolic names for parameters

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/psphot/src/models/pmModel_PGAUSS.c

    r5593 r8882  
    1616    psF32 *PAR = params->data.F32;
    1717
    18     psF32 X  = x->data.F32[0] - PAR[2];
    19     psF32 Y  = x->data.F32[1] - PAR[3];
    20     psF32 px = PAR[4]*X;
    21     psF32 py = PAR[5]*Y;
    22     psF32 z  = 0.5*PS_SQR(px) + 0.5*PS_SQR(py) + PAR[6]*X*Y;
     18    psF32 X  = x->data.F32[0] - PAR[PM_PAR_XPOS];
     19    psF32 Y  = x->data.F32[1] - PAR[PM_PAR_YPOS];
     20    psF32 px = PAR[PM_PAR_SXX]*X;
     21    psF32 py = PAR[PM_PAR_SYY]*Y;
     22    psF32 z  = 0.5*PS_SQR(px) + 0.5*PS_SQR(py) + PAR[PM_PAR_SXY]*X*Y;
    2323    psF32 t  = 1 + z + z*z/2.0;
    2424    psF32 r  = 1.0 / (t + z*z*z/6.0); /* exp (-Z) */
    25     psF32 f  = PAR[1]*r + PAR[0];
     25    psF32 f  = PAR[PM_PAR_FLUX]*r + PAR[PM_PAR_SKY];
    2626
    2727    if (deriv != NULL) {
    28         // note difference from a pure gaussian: q = PAR[1]*r
    29         psF32 q = PAR[1]*r*r*t;
     28        // note difference from a pure gaussian: q = PAR[PM_PAR_FLUX]*r
     29        psF32 q = PAR[PM_PAR_FLUX]*r*r*t;
    3030        deriv->data.F32[0] = +1.0;
    3131        deriv->data.F32[1] = +r;
    32         deriv->data.F32[2] = q*(2.0*px*PAR[4] + PAR[6]*Y);
    33         deriv->data.F32[3] = q*(2.0*py*PAR[5] + PAR[6]*X);
     32        deriv->data.F32[2] = q*(2.0*px*PAR[PM_PAR_SXX] + PAR[PM_PAR_SXY]*Y);
     33        deriv->data.F32[3] = q*(2.0*py*PAR[PM_PAR_SYY] + PAR[PM_PAR_SXY]*X);
    3434        deriv->data.F32[4] = -2.0*q*px*X;
    3535        deriv->data.F32[5] = -2.0*q*py*Y;
     
    7878    psF32 *PAR = params->data.F32;
    7979
    80     psF64 A1   = PS_SQR(PAR[4]);
    81     psF64 A2   = PS_SQR(PAR[5]);
    82     psF64 A3   = PS_SQR(PAR[6]);
     80    psF64 A1   = PS_SQR(PAR[PM_PAR_SXX]);
     81    psF64 A2   = PS_SQR(PAR[PM_PAR_SYY]);
     82    psF64 A3   = PS_SQR(PAR[PM_PAR_SXY]);
    8383    psF64 Area = 2.0 * M_PI / sqrt(A1*A2 - A3);
    8484    // Area is equivalent to 2 pi sigma^2
     
    9292    norm *= 0.01;
    9393   
    94     psF64 Flux = params->data.F32[1] * Area * norm;
     94    psF64 Flux = params->data.F32[PM_PAR_FLUX] * Area * norm;
    9595
    9696    return(Flux);
     
    154154
    155155    dP = 0;
    156     dP += PS_SQR(dPAR[4] / PAR[4]);
    157     dP += PS_SQR(dPAR[5] / PAR[5]);
     156    dP += PS_SQR(dPAR[PM_PAR_SXX] / PAR[PM_PAR_SXX]);
     157    dP += PS_SQR(dPAR[PM_PAR_SYY] / PAR[PM_PAR_SYY]);
    158158    dP = sqrt (dP);
    159159
    160160    status = true;
    161161    status &= (dP < 0.5);
    162     status &= (PAR[1] > 0);
    163     status &= ((dPAR[1]/PAR[1]) < 0.5);
     162    status &= (PAR[PM_PAR_FLUX] > 0);
     163    status &= ((dPAR[PM_PAR_FLUX]/PAR[PM_PAR_FLUX]) < 0.5);
    164164
    165165    if (status) return true;
Note: See TracChangeset for help on using the changeset viewer.