Changeset 6945
- Timestamp:
- Apr 21, 2006, 11:29:47 AM (20 years ago)
- File:
-
- 1 edited
-
trunk/psModules/src/objects/pmSourceFitModel.c (modified) (11 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psModules/src/objects/pmSourceFitModel.c
r6872 r6945 6 6 * @author GLG, MHPCC 7 7 * 8 * @version $Revision: 1. 2$ $Name: not supported by cvs2svn $9 * @date $Date: 2006-04- 17 18:01:05$8 * @version $Revision: 1.3 $ $Name: not supported by cvs2svn $ 9 * @date $Date: 2006-04-21 21:29:47 $ 10 10 * 11 11 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 91 91 92 92 psVector *coord = psVectorAlloc(2, PS_TYPE_F32); 93 coord->n = 2; 93 94 94 95 // Convert i/j to image space: … … 123 124 // set parameter mask based on fitting mode 124 125 paramMask = psVectorAlloc (params->n, PS_TYPE_U8); 126 paramMask->n = params->n; 125 127 psVectorInit (paramMask, 1); 126 128 … … 175 177 modelLimits (&constrain->paramDelta, &constrain->paramMin, &constrain->paramMax); 176 178 179 // force the floating parameters to fall within the contraint ranges 180 for (int i = 0; i < params->n; i++) { 181 if (constrain->paramMask->data.U8[i]) 182 continue; 183 params->data.F32[i] = PS_MIN(constrain->paramMax->data.F32[i], params->data.F32[i]); 184 params->data.F32[i] = PS_MAX(constrain->paramMin->data.F32[i], params->data.F32[i]); 185 } 186 177 187 psImage *covar = psImageAlloc (params->n, params->n, PS_TYPE_F64); 178 188 … … 194 204 if (paramMask != NULL) { 195 205 psVector *delta = psVectorAlloc (params->n, PS_TYPE_F64); 206 delta->n = params->n; 196 207 psMinimizeGaussNewtonDelta(delta, params, NULL, x, y, yErr, modelFunc); 197 208 for (int i = 0; i < dparams->n; i++) { … … 257 268 onePar = psVectorAlloc (nPar, PS_DATA_F32); 258 269 oneDeriv = psVectorAlloc (nPar, PS_DATA_F32); 270 onePar->n = oneDeriv->n = nPar; 259 271 260 272 return true; … … 341 353 psVector *params = psVectorAlloc (nSrc*nPar + 1, PS_TYPE_F32); 342 354 psVector *dparams = psVectorAlloc (nSrc*nPar + 1, PS_TYPE_F32); 355 params->n = params->nalloc; 356 dparams->n = dparams->nalloc; 343 357 344 358 pmModelLimits modelLimits = pmModelLimits_GetFunction (model->type); … … 355 369 constrain->paramMask = psVectorAlloc (nSrc*nPar + 1, PS_TYPE_U8); 356 370 constrain->paramDelta = psVectorAlloc (nSrc*nPar + 1, PS_TYPE_F32); 371 constrain->paramMin->n = constrain->paramMin->nalloc; 372 constrain->paramMax->n = constrain->paramMax->nalloc; 373 constrain->paramMask->n = constrain->paramMask->nalloc; 374 constrain->paramDelta->n = constrain->paramDelta->nalloc; 357 375 358 376 // set the parameter guesses and constraints for the multiple models … … 422 440 } 423 441 442 // force the floating parameters to fall within the contraint ranges 443 for (int i = 0; i < params->n; i++) { 444 if (constrain->paramMask->data.U8[i]) 445 continue; 446 params->data.F32[i] = PS_MIN(constrain->paramMax->data.F32[i], params->data.F32[i]); 447 params->data.F32[i] = PS_MAX(constrain->paramMin->data.F32[i], params->data.F32[i]); 448 } 449 424 450 // maximum number of valid pixels 425 451 psS32 nPix = source->pixels->numRows * source->pixels->numCols; … … 445 471 } 446 472 psVector *coord = psVectorAlloc(2, PS_TYPE_F32); 473 coord->n = 2; 447 474 448 475 // Convert i/j to image space: … … 498 525 if (constrain->paramMask != NULL) { 499 526 psVector *delta = psVectorAlloc (params->n, PS_TYPE_F64); 527 delta->n = params->n; 500 528 psMinimizeGaussNewtonDelta(delta, params, NULL, x, y, yErr, pmModelFitSet); 501 529 for (int i = 0; i < dparams->n; i++) {
Note:
See TracChangeset
for help on using the changeset viewer.
