Changeset 13981
- Timestamp:
- Jun 26, 2007, 9:27:04 AM (19 years ago)
- Location:
- trunk/psLib/src/math
- Files:
-
- 2 edited
-
psMinimizeLMM.c (modified) (11 diffs)
-
psMinimizeLMM.h (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/src/math/psMinimizeLMM.c
r11686 r13981 10 10 * @author EAM, IfA 11 11 * 12 * @version $Revision: 1.3 0$ $Name: not supported by cvs2svn $13 * @date $Date: 2007-0 2-07 23:52:54 $12 * @version $Revision: 1.31 $ $Name: not supported by cvs2svn $ 13 * @date $Date: 2007-06-26 19:27:04 $ 14 14 * 15 15 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 54 54 /*****************************************************************************/ 55 55 56 bool p _psMinLM_GuessABP(56 bool psMinLM_GuessABP( 57 57 psImage *Alpha, 58 58 psVector *Beta, … … 183 183 184 184 // XXX should we give up if chisq is nan? 185 psF32 rcF32 = p _psMinLM_SetABX(alpha, beta, params, paramMask, x, y, dy, func);185 psF32 rcF32 = psMinLM_SetABX(alpha, beta, params, paramMask, x, y, dy, func); 186 186 if (isnan(rcF32)) { 187 psTrace ("psLib.math", 5, "p _psMinLM_SetABX() returned a NAN.\n");187 psTrace ("psLib.math", 5, "psMinLM_SetABX() returned a NAN.\n"); 188 188 rc = false; 189 189 } 190 psTrace("psLib.math", 5, "p _psMinLM_SetABX() was succesful\n");190 psTrace("psLib.math", 5, "psMinLM_SetABX() was succesful\n"); 191 191 // dump some useful info if trace is defined 192 192 if (psTraceGetLevel("psLib.math") >= 6) { … … 196 196 } 197 197 198 bool rcBool = p _psMinLM_GuessABP(Alpha, delta, Params, alpha, beta, params, paramMask, NULL, 0.0);198 bool rcBool = psMinLM_GuessABP(Alpha, delta, Params, alpha, beta, params, paramMask, NULL, 0.0); 199 199 if (rcBool == false) { 200 psTrace ("psLib.math", 5, "p _psMinLM_GuessABP() returned FALSE.\n");200 psTrace ("psLib.math", 5, "psMinLM_GuessABP() returned FALSE.\n"); 201 201 rc = false; 202 202 } 203 psTrace("psLib.math", 5, "p _psMinLM_GuessABP() was succesful\n");203 psTrace("psLib.math", 5, "psMinLM_GuessABP() was succesful\n"); 204 204 if (psTraceGetLevel("psLib.math") >= 6) { 205 205 p_psImagePrint(psTraceGetDestination(), Alpha, "alpha guess (1)"); … … 220 220 221 221 // measure linear model prediction 222 psF32 p _psMinLM_dLinear(222 psF32 psMinLM_dLinear( 223 223 const psVector *Beta, 224 224 const psVector *beta, … … 237 237 238 238 // alpha, beta, params are already allocated 239 psF32 p _psMinLM_SetABX(239 psF32 psMinLM_SetABX( 240 240 psImage *alpha, 241 241 psVector *beta, … … 402 402 403 403 // calculate initial alpha and beta, set chisq (min->value) 404 min->value = p _psMinLM_SetABX(alpha, beta, params, paramMask, x, y, dy, func);404 min->value = psMinLM_SetABX(alpha, beta, params, paramMask, x, y, dy, func); 405 405 if (isnan(min->value)) { 406 406 min->iter = min->maxIter; … … 422 422 423 423 // set a new guess for Alpha, Beta, Params 424 if (!p _psMinLM_GuessABP(Alpha, Beta, Params, alpha, beta, params, paramMask, checkLimits, lambda)) {424 if (!psMinLM_GuessABP(Alpha, Beta, Params, alpha, beta, params, paramMask, checkLimits, lambda)) { 425 425 min->iter ++; 426 426 lambda *= 10.0; … … 429 429 430 430 // measure linear model prediction 431 psF32 dLinear = p _psMinLM_dLinear(Beta, beta, lambda);431 psF32 dLinear = psMinLM_dLinear(Beta, beta, lambda); 432 432 433 433 // dump some useful info if trace is defined … … 441 441 442 442 // calculate Chisq for new guess, update Alpha & Beta 443 Chisq = p _psMinLM_SetABX(Alpha, Beta, Params, paramMask, x, y, dy, func);443 Chisq = psMinLM_SetABX(Alpha, Beta, Params, paramMask, x, y, dy, func); 444 444 if (isnan(Chisq)) { 445 445 min->iter ++; … … 480 480 // construct & return the covariance matrix (if requested) 481 481 if (covar != NULL) { 482 if (!p _psMinLM_GuessABP(covar, Beta, Params, alpha, beta, params, paramMask, NULL, 0.0)) {482 if (!psMinLM_GuessABP(covar, Beta, Params, alpha, beta, params, paramMask, NULL, 0.0)) { 483 483 psTrace ("psLib.math", 5, "failure to calculate covariance matrix\n"); 484 484 } -
trunk/psLib/src/math/psMinimizeLMM.h
r11668 r13981 7 7 * @author GLG, MHPCC 8 8 * 9 * @version $Revision: 1. 9$ $Name: not supported by cvs2svn $10 * @date $Date: 2007-0 2-06 21:36:09$9 * @version $Revision: 1.10 $ $Name: not supported by cvs2svn $ 10 * @date $Date: 2007-06-26 19:27:04 $ 11 11 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii 12 12 */ … … 144 144 * @return psF32: Chi-squared value for new guess 145 145 */ 146 psF32 p _psMinLM_SetABX (146 psF32 psMinLM_SetABX ( 147 147 psImage *alpha, ///< alpha guess 148 148 psVector *beta, ///< beta guess … … 156 156 157 157 158 bool p _psMinLM_GuessABP(158 bool psMinLM_GuessABP( 159 159 psImage *Alpha, 160 160 psVector *Beta, … … 168 168 ); 169 169 170 psF32 psMinLM_dLinear( 171 const psVector *Beta, 172 const psVector *beta, 173 psF32 lambda); 174 170 175 /// @} 171 176 #endif // #ifndef PS_MINIMIZE_LMM_H
Note:
See TracChangeset
for help on using the changeset viewer.
