IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Jun 13, 2007, 1:41:51 PM (19 years ago)
Author:
magnier
Message:

replaced pmModel.status with pmModel.flags; using bit values instead of ints; names are now of the form PM_MODEL_STATUS_XXX; no error on limit saturation for model parameters

Location:
trunk/psModules/src/objects/models
Files:
3 edited

Legend:

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

    r13424 r13803  
    104104        if (fabs(beta[nParam]) > fabs(beta_lim)) {
    105105            beta[nParam] = (beta[nParam] > 0) ? fabs(beta_lim) : -fabs(beta_lim);
     106            psTrace ("psModules.objects", 5, "|beta[nParam==%d]| > |beta_lim|; %g v. %g",
     107                     nParam, beta[nParam], beta_lim);
    106108            return false;
    107109        }
     
    135137        if (params[nParam] < params_min) {
    136138            params[nParam] = params_min;
     139            psTrace ("psModules.objects", 5, "params[nParam==%d] < params_min; %g v. %g",
     140                     nParam, params[nParam], params_min);
    137141            return false;
    138142        }
     
    166170        if (params[nParam] > params_max) {
    167171            params[nParam] = params_max;
     172            psTrace ("psModules.objects", 5, "params[nParam==%d] > params_max; %g v. %g",
     173                     nParam, params[nParam], params_max);
    168174            return false;
    169175        }
     
    285291        if (psf->params_NEW->data[i] == NULL)
    286292            continue;
    287         PM_MODEL_LIMITS (PS_MINIMIZE_PARAM_MIN, i, out, NULL);
    288         PM_MODEL_LIMITS (PS_MINIMIZE_PARAM_MAX, i, out, NULL);
     293
     294        bool status = true;
     295        status &= PM_MODEL_LIMITS (PS_MINIMIZE_PARAM_MIN, i, out, NULL);
     296        status &= PM_MODEL_LIMITS (PS_MINIMIZE_PARAM_MAX, i, out, NULL);
     297        if (!status) {
     298            psTrace ("psModules.objects", 5, "Hitting parameter limits at (r,c) = (%.1f, %.1f)",
     299                     in[PM_PAR_XPOS], in[PM_PAR_YPOS]);
     300            modelPSF->flags |= PM_MODEL_STATUS_LIMITS;
     301        }
    289302    }
    290303    return(true);
  • trunk/psModules/src/objects/models/pmModel_PGAUSS.c

    r13424 r13803  
    106106        if (fabs(beta[nParam]) > fabs(beta_lim)) {
    107107            beta[nParam] = (beta[nParam] > 0) ? fabs(beta_lim) : -fabs(beta_lim);
     108            psTrace ("psModules.objects", 5, "|beta[nParam==%d]| > |beta_lim|; %g v. %g",
     109                     nParam, beta[nParam], beta_lim);
    108110            return false;
    109111        }
     
    137139        if (params[nParam] < params_min) {
    138140            params[nParam] = params_min;
     141            psTrace ("psModules.objects", 5, "params[nParam==%d] < params_min; %g v. %g",
     142                     nParam, params[nParam], params_min);
    139143            return false;
    140144        }
     
    168172        if (params[nParam] > params_max) {
    169173            params[nParam] = params_max;
     174            psTrace ("psModules.objects", 5, "params[nParam==%d] > params_max; %g v. %g",
     175                     nParam, params[nParam], params_max);
    170176            return false;
    171177        }
     
    305311        if (psf->params_NEW->data[i] == NULL)
    306312            continue;
    307         PM_MODEL_LIMITS (PS_MINIMIZE_PARAM_MIN, i, out, NULL);
    308         PM_MODEL_LIMITS (PS_MINIMIZE_PARAM_MAX, i, out, NULL);
     313
     314        bool status = true;
     315        status &= PM_MODEL_LIMITS (PS_MINIMIZE_PARAM_MIN, i, out, NULL);
     316        status &= PM_MODEL_LIMITS (PS_MINIMIZE_PARAM_MAX, i, out, NULL);
     317        if (!status) {
     318            psTrace ("psModules.objects", 5, "Hitting parameter limits at (r,c) = (%.1f, %.1f)",
     319                     in[PM_PAR_XPOS], in[PM_PAR_YPOS]);
     320            modelPSF->flags |= PM_MODEL_STATUS_LIMITS;
     321        }
    309322    }
    310323    return(true);
  • trunk/psModules/src/objects/models/pmModel_QGAUSS.c

    r13567 r13803  
    127127        if (fabs(beta[nParam]) > fabs(beta_lim)) {
    128128            beta[nParam] = (beta[nParam] > 0) ? fabs(beta_lim) : -fabs(beta_lim);
    129             psError(PM_ERR_PSF, true, "|beta[nParam==%d]| > |beta_lim|; %g v. %g",
    130                     nParam, beta[nParam], beta_lim);
     129            psTrace ("psModules.objects", 5, "|beta[nParam==%d]| > |beta_lim|; %g v. %g",
     130                     nParam, beta[nParam], beta_lim);
    131131            return false;
    132132        }
     
    163163        if (params[nParam] < params_min) {
    164164            params[nParam] = params_min;
    165             psError(PM_ERR_PSF, true, "params[nParam==%d] < params_min; %g v. %g",
    166                     nParam, params[nParam], params_min);
     165            psTrace ("psModules.objects", 5, "params[nParam==%d] < params_min; %g v. %g",
     166                     nParam, params[nParam], params_min);
    167167            return false;
    168168        }
     
    199199        if (params[nParam] > params_max) {
    200200            params[nParam] = params_max;
    201             psError(PM_ERR_PSF, true, "params[nParam==%d] > params_max; %g v. %g",
    202                     nParam, params[nParam], params_max);
     201            psTrace ("psModules.objects", 5, "params[nParam==%d] > params_max; %g v. %g",
     202                     nParam, params[nParam], params_max);
    203203            return false;
    204204        }
     
    372372            continue;
    373373
    374         if (!PM_MODEL_LIMITS(PS_MINIMIZE_PARAM_MIN, i, out, NULL) ||
    375             !PM_MODEL_LIMITS(PS_MINIMIZE_PARAM_MAX, i, out, NULL)) {
    376             psError(PM_ERR_PSF, false, "Setting limits at (r,c) = (%.1f, %.1f)",
    377                     in[PM_PAR_XPOS], in[PM_PAR_YPOS]);
    378             return false;
     374        bool status = true;
     375        status &= PM_MODEL_LIMITS(PS_MINIMIZE_PARAM_MIN, i, out, NULL);
     376        status &= PM_MODEL_LIMITS(PS_MINIMIZE_PARAM_MAX, i, out, NULL);
     377        if (!status) {
     378            psTrace ("psModules.objects", 5, "Hitting parameter limits at (r,c) = (%.1f, %.1f)",
     379                     in[PM_PAR_XPOS], in[PM_PAR_YPOS]);
     380            modelPSF->flags |= PM_MODEL_STATUS_LIMITS;
    379381        }
    380382    }
    381383
    382     return(true);
     384    return true;
    383385}
    384386
Note: See TracChangeset for help on using the changeset viewer.