Changeset 29010
- Timestamp:
- Aug 20, 2010, 3:26:20 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/haf_branches/ppMerge2010/psLib/src/math/psPolynomialMD.c
r24820 r29010 72 72 float coord = coords->data.F32[i]; // Coordinate of interest 73 73 double value = coord; // Value of polynomial stages 74 74 75 buffer->data.F64[index++] = value; 76 75 77 for (int j = 2; j <= order; j++, index++) { 76 78 value *= coord; 77 79 buffer->data.F64[index] = value; 80 78 81 } 79 82 } … … 83 86 for (int j = 0; j < i; j++) { 84 87 matrix->data.F64[i][j] = buffer->data.F64[i] * buffer->data.F64[j] * invSigma2; 88 // psTrace("psLib.math", 4, "matrix %d %d %e %f %f\n",i, j, matrix->data.F64[i][j] , matrix->data.F64[i][j], buffer->data.F64[i] ); 85 89 } 86 90 matrix->data.F64[i][i] = PS_SQR(buffer->data.F64[i]) * invSigma2; 91 // psTrace("psLib.math", 4, "matrix %d %d %e %f %f\n",i,i, matrix->data.F64[i][i] , matrix->data.F64[i][i] , buffer->data.F64[i]); 87 92 vector->data.F64[i] = value * buffer->data.F64[i] * invSigma2; 88 93 } 89 94 // psTrace("psLib.math", 4, "hey we got here %ld\n",poly->coeff->n ); 90 95 return; 91 96 } … … 120 125 for (int k = j + 1; k < numTerms; k++) { 121 126 matrix->data.F64[j][k] = matrix->data.F64[k][j]; 122 } 127 //psTrace("psLib.math", 4, "matrixjj %d %d %e %f \n",j,k, matrix->data.F64[k][j], matrix->data.F64[k][j]); 128 129 } 130 //psTrace("psLib.math", 4, "matrixjj %d %d %e %f \n",j,j, matrix->data.F64[j][j], matrix->data.F64[j][j]); 123 131 } 124 132 … … 297 305 continue; 298 306 } 299 307 308 // fprintf (stderr, "%f : ", values->data.F32[i]); 309 // for (int j = 0; j < coords->n; j++) { 310 // fprintf (stderr, "%f ", coords->data.F32[j]); 311 // } 312 //fprintf (stderr, "\n"); 300 313 float err = errors ? errors->data.F32[i] : 0.0; 301 314 polynomialMDLeastSquares(poly, poly->tmpMatrix, poly->tmpVector, coords, values->data.F32[i], err, poly->fitBuffer); … … 317 330 318 331 polynomialMDStdev(poly, poly->deviations, coordsArray, values, mask, maskVal); 319 332 psTrace("psLib.math", 7, "hey we got here %ld\n",poly->coeff->n ); 320 333 return true; 321 334 } … … 329 342 PS_ASSERT_VECTOR_NON_NULL(values, false); 330 343 PS_ASSERT_VECTOR_TYPE(values, PS_TYPE_F32, false); 344 //fprintf(stderr, "inside mdclipffit\n"); 331 345 if (errors) { 346 // fprintf(stderr, "there are errors and they are in MDClipfit!\n"); 332 347 PS_ASSERT_VECTOR_NON_NULL(errors, false); 333 348 PS_ASSERT_VECTOR_TYPE(errors, PS_TYPE_F32, false); … … 406 421 407 422 if (numClipped > 0) { 423 psTrace("psLib.math", 9, "redoing psPolynomialMDFit, clipped some points\n"); 408 424 // Need to do a final re-evaluation of the fit 409 425 if (!psPolynomialMDFit(poly, values, errors, poly->ownMask, maskVal, coordsArray)) { 426 410 427 return false; 411 428 } … … 467 484 PS_ASSERT_VECTOR_NON_NULL(values, false); 468 485 PS_ASSERT_VECTOR_TYPE(values, PS_TYPE_F32, false); 486 psTrace("psLib.math", 3, "we got here\n"); 469 487 if (errors) { 470 PS_ASSERT_VECTOR_NON_NULL(errors, false); 488 psTrace("psLib.math", 3, "errors got passed\n"); 489 PS_ASSERT_VECTOR_NON_NULL(errors, false); 471 490 PS_ASSERT_VECTOR_TYPE(errors, PS_TYPE_F32, false); 472 491 PS_ASSERT_VECTORS_SIZE_EQUAL(values, errors, false); … … 507 526 508 527 polynomialMDLeastSquares(poly, matrices->data[i], vectors->data[i], coords, values->data.F32[i], 509 errors? errors->data.F32[i] : 0.0, buffer);528 ? errors->data.F32[i] : 0.0, buffer); 510 529 } 511 530 psFree(buffer); 512 531 532 513 533 // Iterate over the solution 514 534 int numGood = numValues; // Number of good values
Note:
See TracChangeset
for help on using the changeset viewer.
