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_GAUSS.c

    r15056 r15834  
    66 * specifics of the model.  All models which are used a PSF representations share a few
    77 * parameters, for which # define names are listed in pmModel.h:
    8  
     8
    99   pure Gaussian:
    1010   exp(-z)
    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
     
    1919 *****************************************************************************/
    2020
    21 # define PM_MODEL_FUNC            pmModelFunc_GAUSS
    22 # define PM_MODEL_FLUX            pmModelFlux_GAUSS
    23 # define PM_MODEL_GUESS           pmModelGuess_GAUSS
    24 # define PM_MODEL_LIMITS          pmModelLimits_GAUSS
    25 # define PM_MODEL_RADIUS          pmModelRadius_GAUSS
    26 # define PM_MODEL_FROM_PSF        pmModelFromPSF_GAUSS
     21# define PM_MODEL_FUNC            pmModelFunc_GAUSS
     22# define PM_MODEL_FLUX            pmModelFlux_GAUSS
     23# define PM_MODEL_GUESS           pmModelGuess_GAUSS
     24# define PM_MODEL_LIMITS          pmModelLimits_GAUSS
     25# define PM_MODEL_RADIUS          pmModelRadius_GAUSS
     26# define PM_MODEL_FROM_PSF        pmModelFromPSF_GAUSS
    2727# define PM_MODEL_PARAMS_FROM_PSF pmModelParamsFromPSF_GAUSS
    2828# define PM_MODEL_FIT_STATUS      pmModelFitStatus_GAUSS
     
    7676        f2 = 1.0 / PS_SQR(params[PM_PAR_SYY]) - 1.0 / PS_SQR(params[PM_PAR_SXX]);
    7777        q1 = PS_SQR(f1)*AR_RATIO - PS_SQR(f2);
    78         q1 = PS_MAX (0.0, q1);
    79         // if q1 < 0.0, f2 ~ f1, we have a very large axis ratio near 45deg..  Saturate at that
    80         // angle and let f2,f1 fight it out
     78        q1 = PS_MAX (0.0, q1);
     79        // if q1 < 0.0, f2 ~ f1, we have a very large axis ratio near 45deg..  Saturate at that
     80        // angle and let f2,f1 fight it out
    8181        q2  = 0.5*sqrt (q1);
    8282    }
     
    111111        if (fabs(beta[nParam]) > fabs(beta_lim)) {
    112112            beta[nParam] = (beta[nParam] > 0) ? fabs(beta_lim) : -fabs(beta_lim);
    113             psTrace ("psModules.objects", 5, "|beta[nParam==%d]| > |beta_lim|; %g v. %g",
    114                      nParam, beta[nParam], beta_lim);
     113            psTrace ("psModules.objects", 5, "|beta[nParam==%d]| > |beta_lim|; %g v. %g",
     114                     nParam, beta[nParam], beta_lim);
    115115            return false;
    116116        }
     
    144144        if (params[nParam] < params_min) {
    145145            params[nParam] = params_min;
    146             psTrace ("psModules.objects", 5, "params[nParam==%d] < params_min; %g v. %g",
    147                      nParam, params[nParam], params_min);
     146            psTrace ("psModules.objects", 5, "params[nParam==%d] < params_min; %g v. %g",
     147                     nParam, params[nParam], params_min);
    148148            return false;
    149149        }
     
    177177        if (params[nParam] > params_max) {
    178178            params[nParam] = params_max;
    179             psTrace ("psModules.objects", 5, "params[nParam==%d] > params_max; %g v. %g",
    180                      nParam, params[nParam], params_max);
     179            psTrace ("psModules.objects", 5, "params[nParam==%d] > params_max; %g v. %g",
     180                     nParam, params[nParam], params_max);
    181181            return false;
    182182        }
     
    260260
    261261// construct the PSF model from the FLT model and the psf
    262 bool PM_MODEL_FROM_PSF (pmModel *modelPSF, pmModel *modelFLT, pmPSF *psf)
     262bool PM_MODEL_FROM_PSF (pmModel *modelPSF, pmModel *modelFLT, const pmPSF *psf)
    263263{
    264264    psF32 *out = modelPSF->params->data.F32;
     
    286286    // XXX user-defined value for limit?
    287287    if (!pmPSF_FitToModel (out, 0.1)) {
    288         psError(PM_ERR_PSF, false, "Failed to fit object at (r,c) = (%.1f,%.1f)",
    289                 in[PM_PAR_YPOS], in[PM_PAR_XPOS]);
    290         return false;
     288        psError(PM_ERR_PSF, false, "Failed to fit object at (r,c) = (%.1f,%.1f)",
     289                in[PM_PAR_YPOS], in[PM_PAR_XPOS]);
     290        return false;
    291291    }
    292292
     
    298298            continue;
    299299
    300         bool status = true;
     300        bool status = true;
    301301        status &= PM_MODEL_LIMITS (PS_MINIMIZE_PARAM_MIN, i, out, NULL);
    302302        status &= PM_MODEL_LIMITS (PS_MINIMIZE_PARAM_MAX, i, out, NULL);
    303         if (!status) {
    304             psTrace ("psModules.objects", 5, "Hitting parameter limits at (r,c) = (%.1f, %.1f)",
    305                      in[PM_PAR_XPOS], in[PM_PAR_YPOS]);
    306             modelPSF->flags |= PM_MODEL_STATUS_LIMITS;
    307         }
     303        if (!status) {
     304            psTrace ("psModules.objects", 5, "Hitting parameter limits at (r,c) = (%.1f, %.1f)",
     305                     in[PM_PAR_XPOS], in[PM_PAR_YPOS]);
     306            modelPSF->flags |= PM_MODEL_STATUS_LIMITS;
     307        }
    308308    }
    309309    return(true);
     
    312312// construct the PSF model from the FLT model and the psf
    313313// XXX is this sufficiently general do be a global function, not a pmModelClass function?
    314 bool PM_MODEL_PARAMS_FROM_PSF (pmModel *model, pmPSF *psf, float Xo, float Yo, float Io)
     314bool PM_MODEL_PARAMS_FROM_PSF (pmModel *model, const pmPSF *psf, float Xo, float Yo, float Io)
    315315{
    316316    psF32 *PAR = model->params->data.F32;
     
    324324    PAR[PM_PAR_XPOS] = Xo;
    325325    PAR[PM_PAR_YPOS] = Yo;
    326    
     326
    327327    // supply the model-fitted parameters, or copy from the input
    328328    for (int i = 0; i < psf->params->n; i++) {
    329         if (i == PM_PAR_SKY) continue;
    330         if (i == PM_PAR_I0) continue;
    331         if (i == PM_PAR_XPOS) continue;
    332         if (i == PM_PAR_YPOS) continue;
    333         pmTrend2D *trend = psf->params->data[i];
    334         PAR[i] = pmTrend2DEval(trend, Xo, Yo);
     329        if (i == PM_PAR_SKY) continue;
     330        if (i == PM_PAR_I0) continue;
     331        if (i == PM_PAR_XPOS) continue;
     332        if (i == PM_PAR_YPOS) continue;
     333        pmTrend2D *trend = psf->params->data[i];
     334        PAR[i] = pmTrend2DEval(trend, Xo, Yo);
    335335    }
    336336
     
    339339    // XXX user-defined value for limit?
    340340    if (!pmPSF_FitToModel (PAR, 0.1)) {
    341         psError(PM_ERR_PSF, false, "Failed to fit object at (r,c) = (%.1f,%.1f)", Xo, Yo);
    342         return false;
     341        psError(PM_ERR_PSF, false, "Failed to fit object at (r,c) = (%.1f,%.1f)", Xo, Yo);
     342        return false;
    343343    }
    344344
     
    350350            continue;
    351351
    352         bool status = true;
     352        bool status = true;
    353353        status &= PM_MODEL_LIMITS (PS_MINIMIZE_PARAM_MIN, i, PAR, NULL);
    354354        status &= PM_MODEL_LIMITS (PS_MINIMIZE_PARAM_MAX, i, PAR, NULL);
    355         if (!status) {
    356             psTrace ("psModules.objects", 5, "Hitting parameter limits at (r,c) = (%.1f, %.1f)", Xo, Yo);
    357             model->flags |= PM_MODEL_STATUS_LIMITS;
    358         }
     355        if (!status) {
     356            psTrace ("psModules.objects", 5, "Hitting parameter limits at (r,c) = (%.1f, %.1f)", Xo, Yo);
     357            model->flags |= PM_MODEL_STATUS_LIMITS;
     358        }
    359359    }
    360360    return(true);
Note: See TracChangeset for help on using the changeset viewer.