IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Feb 16, 2006, 4:51:07 PM (20 years ago)
Author:
eugene
Message:

fixing memory issues, converging with pslib v.10

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/psphot/src/pmSourceFitSet.c

    r6379 r6441  
    143143    psMinimization *myMin = psMinimizationAlloc(PM_SOURCE_FIT_MODEL_NUM_ITERATIONS,
    144144                            PM_SOURCE_FIT_MODEL_TOLERANCE);
     145    psMinConstrain *constrain = psMinConstrainAlloc();
     146    constrain->paramMask = paramMask;
    145147
    146148    // Set the parameter range checks
    147149    pmModelLimits modelLimits = pmModelLimits_GetFunction (model->type);
    148     psVector *beta_lim = NULL;
    149     psVector *params_min = NULL;
    150     psVector *params_max = NULL;
    151 
    152     // XXX EAM : in this implementation, I pass in the limits with the covar matrix.
    153     //           in the SDRS, I define a new psMinimization which will take these in
    154     psImage *covar = psImageAlloc (params->n, 3, PS_TYPE_F64);
    155     modelLimits (&beta_lim, &params_min, &params_max);
    156     for (int i = 0; i < nSrc; i++) {
    157         for (int n = 1; n < nPar; n++) {
    158             covar->data.F64[0][i*nPar + n] = beta_lim->data.F32[n];
    159             covar->data.F64[1][i*nPar + n] = params_min->data.F32[n];
    160             covar->data.F64[2][i*nPar + n] = params_max->data.F32[n];
    161         }
    162     }
    163     covar->data.F64[0][0] = beta_lim->data.F32[0];
    164     covar->data.F64[1][0] = params_min->data.F32[0];
    165     covar->data.F64[2][0] = params_max->data.F32[0];
     150    modelLimits (&constrain->paramDelta, &constrain->paramMin, &constrain->paramMax);
     151
     152    psImage *covar = psImageAlloc (params->n, params->n, PS_TYPE_F64);
    166153
    167154    psTrace (".pmObjects.pmSourceFitSet", 5, "fitting function\n");
    168     fitStatus = psMinimizeLMChi2(myMin, covar, params, paramMask, x, y, yErr, pmModelFitSet);
     155    fitStatus = psMinimizeLMChi2(myMin, covar, params, constrain, x, y, yErr, pmModelFitSet);
    169156
    170157    // parameter errors from the covariance matrix
     
    221208    psFree(myMin);
    222209    psFree(covar);
    223     psFree(paramMask);
     210    psFree(constrain->paramMask);
     211    psFree(constrain->paramMin);
     212    psFree(constrain->paramMax);
     213    psFree(constrain->paramDelta);
     214    psFree(constrain);
    224215    psFree(params);
    225216    psFree(dparams);
    226     psFree(params_min);
    227     psFree(params_max);
    228     psFree(beta_lim);
    229217
    230218    // free static memory used by pmModelFitSet
Note: See TracChangeset for help on using the changeset viewer.