Changeset 36296 for trunk/psLib
- Timestamp:
- Nov 22, 2013, 1:52:43 PM (13 years ago)
- File:
-
- 1 edited
-
trunk/psLib/src/math/psMinimizePolyFit.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/src/math/psMinimizePolyFit.c
r36237 r36296 715 715 sigma = (sorted->data.F64[3 * sorted->n / 4] - sorted->data.F64[sorted->n / 4]); 716 716 psFree(sorted); 717 718 if ((!isfinite(median))|| 719 (!isfinite(sigma))) { 720 median = 0.0; 721 sigma = 1.0; 722 } 723 if ((median == 0.0)&&(sigma == 1.0)) { 724 scale = false; 725 } 717 726 // I can't see a way to not clobber x if it's already F64, so make a copy.x 718 727 z64 = psVectorCopy(NULL,x64,PS_TYPE_F64); … … 726 735 727 736 result = VectorFitPolynomial1DOrd(poly, mask, maskValue, f64, fErr64, z64); 737 psFree(z64); // Done with this. 728 738 } 729 739 else { … … 736 746 737 747 if (scale) { 738 psFree(z64); // Done with this.739 740 748 // Undo scaling in the polynomial values. 741 psF64 *Zcoeff = psAlloc((1 + poly->nX) * sizeof(psF64 *));742 psF64 *ZcoeffErr = psAlloc((1 + poly->nX) * sizeof(psF64 *));749 psF64 *Zcoeff = psAlloc((1 + poly->nX) * sizeof(psF64)); 750 psF64 *ZcoeffErr = psAlloc((1 + poly->nX) * sizeof(psF64)); 743 751 744 752 for (psS32 i = 0; i <= poly->nX; i++) { … … 757 765 #if (CZW) 758 766 printf(" %d %d %f %f %f %f => %f\n", 759 i,j,Zcoeff[j],pow(1.0 / sigma,j) * pow(-1,j - i),pow(median,j - i),1.0 * psBinomialCoeff(j,i), 767 i,j,Zcoeff[j], 768 pow(1.0 / sigma,j) * pow(-1,j - i), 769 pow(median,j - i), 770 1.0 * psBinomialCoeff(j,i), 760 771 Zcoeff[j] * pow(1.0 / sigma,j) * pow(-1,j -i) * pow(median,j - i) * 1.0 * psBinomialCoeff(j,i) 761 772 );
Note:
See TracChangeset
for help on using the changeset viewer.
