Changeset 6942
- Timestamp:
- Apr 21, 2006, 11:18:44 AM (20 years ago)
- File:
-
- 1 edited
-
trunk/psLib/src/math/psMinimizeLMM.c (modified) (11 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/src/math/psMinimizeLMM.c
r6901 r6942 10 10 * @author EAM, IfA 11 11 * 12 * @version $Revision: 1.1 2$ $Name: not supported by cvs2svn $13 * @date $Date: 2006-04- 19 18:31:17$12 * @version $Revision: 1.13 $ $Name: not supported by cvs2svn $ 13 * @date $Date: 2006-04-21 21:18:44 $ 14 14 * 15 15 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 62 62 psF64 lambda) 63 63 { 64 # define USE_LU_DECOMP 164 # define USE_LU_DECOMP 0 65 65 # if (USE_LU_DECOMP) 66 66 psVector *LUv = NULL; … … 115 115 116 116 if (false == psGaussJordan(Alpha, Beta)) { 117 ps Error(PS_ERR_UNKNOWN, false, "psMatrixInvert() returned NULL\n");117 psTrace (__func__, 4, "singular matrix in Guess ABP\n"); 118 118 return(false); 119 119 } … … 141 141 } 142 142 } 143 143 144 144 145 return(true); … … 178 179 psF64 rcF64 = p_psMinLM_SetABX(alpha, beta, params, paramMask, x, y, dy, func); 179 180 if (isnan(rcF64)) { 180 ps Error(PS_ERR_UNKNOWN, false, "p_psMinLM_SetABX() returned a NAN.\n");181 psTrace (__func__, 5, "p_psMinLM_SetABX() returned a NAN.\n"); 181 182 rc = false; 182 183 } … … 185 186 psBool rcBool = p_psMinLM_GuessABP(Alpha, delta, Params, alpha, beta, params, paramMask, NULL, NULL, NULL, 0.0); 186 187 if (rcBool == false) { 187 ps Error(PS_ERR_UNKNOWN, false, "p_psMinLM_GuessABP() returned FALSE.\n");188 psTrace (__func__, 5, "p_psMinLM_GuessABP() returned FALSE.\n"); 188 189 rc = false; 189 190 } … … 424 425 425 426 // set a new guess for Alpha, Beta, Params 426 p_psMinLM_GuessABP(Alpha, Beta, Params, alpha, beta, params, paramMask, 427 paramDelta, paramMin, paramMax, lambda); 427 if (!p_psMinLM_GuessABP(Alpha, Beta, Params, alpha, beta, params, paramMask, 428 paramDelta, paramMin, paramMax, lambda)) { 429 min->iter ++; 430 lambda *= 10.0; 431 continue; 432 } 428 433 429 434 // measure linear model prediction … … 486 491 // construct & return the covariance matrix (if requested) 487 492 if (covar != NULL) { 488 p_psMinLM_GuessABP(covar, Beta, Params, alpha, beta, params, paramMask, 489 paramDelta, paramMin, paramMax, 0.0); 493 if (!p_psMinLM_GuessABP(covar, Beta, Params, alpha, beta, params, paramMask, 494 paramDelta, paramMin, paramMax, 0.0)) { 495 psTrace (__func__, 5, "failure to calculate covariance matrix\n"); 496 } 490 497 } 491 498 … … 538 545 for (j = 0; j < Nx; j++) { 539 546 if (!isfinite(matrix[i][j])) { 540 ps Error(PS_ERR_UNKNOWN, false, "Input matrix contains NaNs: matrix[%d][%d] is %.2f\n", i, j, matrix[i][j]);547 psTrace (__func__, 3, "Input matrix contains NaNs: matrix[%d][%d] is %.2f\n", i, j, matrix[i][j]); 541 548 goto fescape; 542 549 } … … 551 558 } else { 552 559 if (ipiv[k] > 1) { 553 ps Error(PS_ERR_UNKNOWN, false, "Singular Matrix (1).\n");560 psTrace (__func__, 3, "Singular Matrix (1).\n"); 554 561 goto fescape; 555 562 } … … 568 575 indxc[i] = icol; 569 576 if (matrix[icol][icol] == 0.0) { 570 ps Error(PS_ERR_UNKNOWN, false, "Singular Matrix (2).\n");577 psTrace (__func__, 3, "Singular Matrix (2).\n"); 571 578 goto fescape; 572 579 }
Note:
See TracChangeset
for help on using the changeset viewer.
