IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Dec 14, 2007, 2:58:11 PM (18 years ago)
Author:
Paul Price
Message:

Adding const in some appropriate places.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/psModules/src/objects/models/pmModel_RGAUSS.c

    r15056 r15834  
    66 * may thus vary depending on the specifics of the model.  All models which are used a PSF
    77 * representations share a few parameters, for which # define names are listed in pmModel.h:
    8  
     8
    99   power-law with fitted slope
    1010   1 / (1 + z + z^alpha)
    11  
     11
    1212 * PM_PAR_SKY 0   - local sky : note that this is unused and may be dropped in the future
    1313 * PM_PAR_I0 1    - central intensity
     
    2020 *****************************************************************************/
    2121
    22 # define PM_MODEL_FUNC            pmModelFunc_RGAUSS
    23 # define PM_MODEL_FLUX            pmModelFlux_RGAUSS
    24 # define PM_MODEL_GUESS           pmModelGuess_RGAUSS
    25 # define PM_MODEL_LIMITS          pmModelLimits_RGAUSS
    26 # define PM_MODEL_RADIUS          pmModelRadius_RGAUSS
    27 # define PM_MODEL_FROM_PSF        pmModelFromPSF_RGAUSS
     22# define PM_MODEL_FUNC            pmModelFunc_RGAUSS
     23# define PM_MODEL_FLUX            pmModelFlux_RGAUSS
     24# define PM_MODEL_GUESS           pmModelGuess_RGAUSS
     25# define PM_MODEL_LIMITS          pmModelLimits_RGAUSS
     26# define PM_MODEL_RADIUS          pmModelRadius_RGAUSS
     27# define PM_MODEL_FROM_PSF        pmModelFromPSF_RGAUSS
    2828# define PM_MODEL_PARAMS_FROM_PSF pmModelParamsFromPSF_RGAUSS
    2929# define PM_MODEL_FIT_STATUS      pmModelFitStatus_RGAUSS
     
    6262        dPAR[PM_PAR_SXY] = -q*X*Y;
    6363
    64         // this model derivative is undefined at z = 0.0, but is actually 0.0
     64        // this model derivative is undefined at z = 0.0, but is actually 0.0
    6565        dPAR[PM_PAR_7] = (z == 0.0) ? 0.0 : -5.0*t*log(z)*p*z;
    6666    }
     
    8383        f2 = 1.0 / PS_SQR(params[PM_PAR_SYY]) - 1.0 / PS_SQR(params[PM_PAR_SXX]);
    8484        q1 = PS_SQR(f1)*AR_RATIO - PS_SQR(f2);
    85         q1 = (q1 < 0.0) ? 0.0 : q1;
    86         // if q1 < 0.0, f2 ~ f1, we have a very large axis ratio near 45deg..  Saturate at that
    87         // angle and let f2,f1 fight it out
     85        q1 = (q1 < 0.0) ? 0.0 : q1;
     86        // if q1 < 0.0, f2 ~ f1, we have a very large axis ratio near 45deg..  Saturate at that
     87        // angle and let f2,f1 fight it out
    8888        q2  = 0.5*sqrt (q1);
    8989    }
     
    121121        if (fabs(beta[nParam]) > fabs(beta_lim)) {
    122122            beta[nParam] = (beta[nParam] > 0) ? fabs(beta_lim) : -fabs(beta_lim);
    123             psTrace ("psModules.objects", 5, "|beta[nParam==%d]| > |beta_lim|; %g v. %g",
    124                      nParam, beta[nParam], beta_lim);
     123            psTrace ("psModules.objects", 5, "|beta[nParam==%d]| > |beta_lim|; %g v. %g",
     124                     nParam, beta[nParam], beta_lim);
    125125            return false;
    126126        }
     
    157157        if (params[nParam] < params_min) {
    158158            params[nParam] = params_min;
    159             psTrace ("psModules.objects", 5, "params[nParam==%d] < params_min; %g v. %g",
    160                      nParam, params[nParam], params_min);
     159            psTrace ("psModules.objects", 5, "params[nParam==%d] < params_min; %g v. %g",
     160                     nParam, params[nParam], params_min);
    161161            return false;
    162162        }
     
    193193        if (params[nParam] > params_max) {
    194194            params[nParam] = params_max;
    195             psTrace ("psModules.objects", 5, "params[nParam==%d] > params_max; %g v. %g",
    196                      nParam, params[nParam], params_max);
     195            psTrace ("psModules.objects", 5, "params[nParam==%d] > params_max; %g v. %g",
     196                     nParam, params[nParam], params_max);
    197197            return false;
    198198        }
     
    337337}
    338338
    339 bool PM_MODEL_FROM_PSF (pmModel *modelPSF, pmModel *modelFLT, pmPSF *psf)
     339bool PM_MODEL_FROM_PSF (pmModel *modelPSF, pmModel *modelFLT, const pmPSF *psf)
    340340{
    341341
     
    359359    // convert to shape terms (SXX,SYY,SXY)
    360360    if (!pmPSF_FitToModel (out, 0.1)) {
    361         psError(PM_ERR_PSF, false, "Failed to fit object at (r,c) = (%.1f,%.1f)",
    362                 in[PM_PAR_YPOS], in[PM_PAR_XPOS]);
    363         return false;
     361        psError(PM_ERR_PSF, false, "Failed to fit object at (r,c) = (%.1f,%.1f)",
     362                in[PM_PAR_YPOS], in[PM_PAR_XPOS]);
     363        return false;
    364364    }
    365365
     
    371371            continue;
    372372
    373         bool status = true;
     373        bool status = true;
    374374        status &= PM_MODEL_LIMITS(PS_MINIMIZE_PARAM_MIN, i, out, NULL);
    375         status &= PM_MODEL_LIMITS(PS_MINIMIZE_PARAM_MAX, i, out, NULL);
    376         if (!status) {
    377             psTrace ("psModules.objects", 5, "Hitting parameter limits at (r,c) = (%.1f, %.1f)",
    378                      in[PM_PAR_XPOS], in[PM_PAR_YPOS]);
    379             modelPSF->flags |= PM_MODEL_STATUS_LIMITS;
    380         }
     375        status &= PM_MODEL_LIMITS(PS_MINIMIZE_PARAM_MAX, i, out, NULL);
     376        if (!status) {
     377            psTrace ("psModules.objects", 5, "Hitting parameter limits at (r,c) = (%.1f, %.1f)",
     378                     in[PM_PAR_XPOS], in[PM_PAR_YPOS]);
     379            modelPSF->flags |= PM_MODEL_STATUS_LIMITS;
     380        }
    381381    }
    382382
     
    386386// construct the PSF model from the FLT model and the psf
    387387// XXX is this sufficiently general do be a global function, not a pmModelClass function?
    388 bool PM_MODEL_PARAMS_FROM_PSF (pmModel *model, pmPSF *psf, float Xo, float Yo, float Io)
     388bool PM_MODEL_PARAMS_FROM_PSF (pmModel *model, const pmPSF *psf, float Xo, float Yo, float Io)
    389389{
    390390    psF32 *PAR = model->params->data.F32;
     
    398398    PAR[PM_PAR_XPOS] = Xo;
    399399    PAR[PM_PAR_YPOS] = Yo;
    400    
     400
    401401    // supply the model-fitted parameters, or copy from the input
    402402    for (int i = 0; i < psf->params->n; i++) {
    403         if (i == PM_PAR_SKY) continue;
    404         if (i == PM_PAR_I0) continue;
    405         if (i == PM_PAR_XPOS) continue;
    406         if (i == PM_PAR_YPOS) continue;
    407         pmTrend2D *trend = psf->params->data[i];
    408         PAR[i] = pmTrend2DEval(trend, Xo, Yo);
     403        if (i == PM_PAR_SKY) continue;
     404        if (i == PM_PAR_I0) continue;
     405        if (i == PM_PAR_XPOS) continue;
     406        if (i == PM_PAR_YPOS) continue;
     407        pmTrend2D *trend = psf->params->data[i];
     408        PAR[i] = pmTrend2DEval(trend, Xo, Yo);
    409409    }
    410410
     
    413413    // XXX user-defined value for limit?
    414414    if (!pmPSF_FitToModel (PAR, 0.1)) {
    415         psError(PM_ERR_PSF, false, "Failed to fit object at (r,c) = (%.1f,%.1f)", Xo, Yo);
    416         return false;
     415        psError(PM_ERR_PSF, false, "Failed to fit object at (r,c) = (%.1f,%.1f)", Xo, Yo);
     416        return false;
    417417    }
    418418
     
    424424            continue;
    425425
    426         bool status = true;
     426        bool status = true;
    427427        status &= PM_MODEL_LIMITS (PS_MINIMIZE_PARAM_MIN, i, PAR, NULL);
    428428        status &= PM_MODEL_LIMITS (PS_MINIMIZE_PARAM_MAX, i, PAR, NULL);
    429         if (!status) {
    430             psTrace ("psModules.objects", 5, "Hitting parameter limits at (r,c) = (%.1f, %.1f)", Xo, Yo);
    431             model->flags |= PM_MODEL_STATUS_LIMITS;
    432         }
     429        if (!status) {
     430            psTrace ("psModules.objects", 5, "Hitting parameter limits at (r,c) = (%.1f, %.1f)", Xo, Yo);
     431            model->flags |= PM_MODEL_STATUS_LIMITS;
     432        }
    433433    }
    434434    return(true);
Note: See TracChangeset for help on using the changeset viewer.