diff --git a/auxiliary/denoise.c b/auxiliary/denoise.c index b5e9311..5c9829c 100644 --- a/auxiliary/denoise.c +++ b/auxiliary/denoise.c @@ -43,22 +43,23 @@ void visushrink(double *signal,int N,int J,char *wname,char *method,char *ext,ch } for(i = 0; i < dlen;++i) { - dout[i] = wt->output[iter+i]; + dout[i] = fabs(wt->output[iter+i]); } - sigma = mad(dout,dlen); + sigma = median(dout,dlen); dwt_len = wt->outlength; td = sqrt(2.0 * log(dwt_len)) * sigma / 0.6745; + if(!strcmp(thresh,"hard")) { - for(i = 0; i < dwt_len;++i) { + for(i = wt->length[0]; i < dwt_len;++i) { if (fabs(wt->output[i]) < td) { wt->output[i] = 0; } } } else if(!strcmp(thresh,"soft")) { - for(i = 0; i < dwt_len;++i) { + for(i = wt->length[0]; i < dwt_len;++i) { if (fabs(wt->output[i]) < td) { wt->output[i] = 0; } else { @@ -123,10 +124,10 @@ void sureshrink(double *signal,int N,int J,char *wname,char *method,char *ext,ch dwt_len = wt->length[it+1]; for(i = 0; i < dwt_len;++i) { - dout[i] = wt->output[len+i]; + dout[i] = fabs(wt->output[len+i]); } - sigma = mad(dout,dwt_len); + sigma = median(dout,dwt_len); if ( sigma < 0.00000001) { td = 0; @@ -169,13 +170,13 @@ void sureshrink(double *signal,int N,int J,char *wname,char *method,char *ext,ch td = td * sigma / 0.6745; if(!strcmp(thresh,"hard")) { - for(i = 0; i < dwt_len;++i) { + for(i = wt->length[0]; i < dwt_len;++i) { if (fabs(wt->output[len+i]) < td) { wt->output[len+i] = 0; } } } else if(!strcmp(thresh,"soft")) { - for(i = 0; i < dwt_len;++i) { + for(i = wt->length[0]; i < dwt_len;++i) { if (fabs(wt->output[len + i]) < td) { wt->output[len+i] = 0; } else { diff --git a/test/PieceRegular10.txt b/test/PieceRegular10.txt new file mode 100644 index 0000000..5b64a1a --- /dev/null +++ b/test/PieceRegular10.txt @@ -0,0 +1,1024 @@ +-7.6847 +-11.231 +-20.631 +-20.45 +-18.098 +-16.088 +-25.454 +-34.006 +-21.497 +-5.907 +-21.836 +-10.229 +-11.556 +-14.079 +-18.942 +-18.388 +-23.855 +-24.007 +-14.507 +-13.099 +-6.2173 +-21.278 +-14.523 +-9.1334 +-5.5651 +-21.878 +-26.259 +-18.707 +-14.624 +-19.166 +-12.582 +-25.171 +-10.569 +-11.402 +-14.054 +-9.6036 +-13.251 +-13.922 +-24.413 +-21.457 +-24.315 +-24.359 +-15.258 +-16.937 +-17.291 +-11.728 +-14.927 +-15.058 +-12.226 +-17.539 +-20.356 +-14.431 +-16.769 +-4.4823 +-14.829 +-18.681 +-13.839 +-3.1664 +-3.6189 +-18.111 +-11.315 +-10.136 +1.4909 +-9.1703 +0.69363 +-10.934 +-11.452 +-1.3522 +-9.5911 +-10.84 +-12.795 +-9.4 +-9.9375 +0.88939 +-11.497 +-5.2972 +-6.0478 +-22.18 +0.90037 +0.70521 +-6.0989 +-18.125 +-8.2297 +0.95947 +2.6768 +-4.3017 +6.0922 +-1.6256 +0.74579 +-6.6267 +11.186 +3.4093 +-7.0312 +-11.882 +6.0957 +5.9686 +7.8721 +4.1611 +7.4382 +6.9648 +9.1485 +14.861 +12.352 +6.6104 +8.3624 +20.774 +1.6268 +14.43 +14.945 +12.693 +10.044 +18.021 +20.982 +29.153 +17.244 +15.491 +21.574 +26.008 +14.328 +28.025 +30.405 +25.313 +26.348 +29.079 +24.462 +28.706 +34.2 +28.81 +25.071 +40.504 +35.329 +40.212 +37.793 +30.119 +45.72 +36.675 +33.18 +33.513 +38.446 +43.23 +42.513 +37.534 +39.292 +48.606 +38.906 +41.486 +22.854 +3.5299 +14.669 +9.5317 +14.761 +21.255 +16.688 +21.589 +9.0654 +21.459 +12.56 +11.606 +25.581 +9.8543 +13.208 +16.087 +17.18 +17.433 +20.289 +18.213 +14.13 +13.896 +14.374 +6.3146 +15.75 +17.278 +28.339 +19.222 +20.544 +9.7382 +12.488 +5.0472 +20.78 +12.358 +11.897 +15.327 +16.511 +19.075 +13.76 +16.958 +19.167 +14.431 +4.0472 +17.665 +13.564 +12.05 +8.21 +18.165 +2.1613 +11.718 +16.71 +8.7612 +0.2304 +8.4715 +4.0798 +19.978 +5.5817 +8.0543 +40.077 +37.04 +32.512 +41.381 +33.154 +36.201 +32.047 +23.925 +24.483 +30.709 +20.687 +32.004 +29.419 +29.978 +26.133 +31.011 +20.298 +25.92 +29.45 +21.733 +24.66 +16.025 +18.845 +9.4942 +11.377 +15.389 +6.3335 +5.4051 +13.623 +11.744 +4.9075 +16.074 +8.83 +15.221 +28.571 +12.42 +15.389 +3.2053 +12.557 +2.4822 +7.6955 +9.6821 +2.5868 +2.5445 +8.3984 +11.891 +6.9456 +-1.6542 +-1.7712 +-5.3383 +-5.4332 +6.6738 +4.0018 +-3.9668 +4.7782 +-0.24291 +8.2874 +-12.138 +1.3382 +-12.459 +-9.4595 +-0.016442 +-5.8537 +-3.2674 +-12.792 +2.1556 +-8.9884 +5.5258 +-13.463 +-18.845 +-13.718 +-8.4635 +-3.7133 +-14.607 +1.1934 +-11.957 +-7.9833 +-16.071 +-4.5199 +-19.545 +-9.3362 +-9.3319 +-10.793 +-4.3235 +-17.995 +4.979 +-16.816 +-7.9372 +-13.219 +-17.906 +-17.2 +-11.088 +-17.541 +-3.9229 +-13.755 +-19.803 +-16.563 +-13.977 +-16.924 +-12.159 +-17.513 +-13.238 +-8.005 +-17.23 +-15.358 +-5.9899 +-20.991 +-15.641 +-8.4685 +-23.093 +-24.156 +-26.136 +-23.262 +-18.072 +-29.94 +-28.378 +-26.763 +-19.406 +-11.319 +-18.355 +-21.281 +-18.636 +-5.5008 +-17.127 +-17.299 +-16.786 +-27.106 +-31.904 +-30.015 +-11.6 +-20.614 +-22.157 +-19.854 +-17.59 +-13.547 +-25.631 +-17.961 +-13.749 +-24.343 +-29.669 +-16.87 +-17.373 +-3.4023 +-18.459 +-18.207 +-21.017 +-11.203 +-17.38 +-8.3632 +-15.328 +-11.822 +-18.545 +-16.701 +-20.28 +-21.165 +-28.502 +-25.598 +-15.921 +-19.419 +-22.859 +-9.4489 +-12.177 +-19.423 +-11.371 +-23.248 +-5.0266 +-16.458 +-12.122 +-13.14 +-19.954 +-9.7025 +-12.084 +-19.728 +-13.857 +-21.785 +-16.44 +-23.12 +-17.597 +-14.95 +-7.2171 +-13.907 +-17.078 +-12.018 +-18.034 +-14.507 +-1.2591 +-8.704 +-13.192 +-8.3138 +-10.519 +-9.6224 +-5.6263 +-5.5424 +-0.62695 +9.2986 +0.63041 +2.5683 +12.057 +14.671 +16.723 +17.373 +15.153 +30.491 +30.983 +40.347 +38.25 +36.391 +26.213 +19.286 +9.9801 +8.1082 +20.715 +19.677 +-0.67893 +2.1931 +1.1659 +-3.4672 +7.8469 +-0.7887 +-8.7297 +-13.399 +-6.7837 +-7.8345 +-16.785 +-5.883 +-10.019 +-3.3955 +-12.709 +-8.9005 +-15.889 +-12.423 +-5.877 +-4.9442 +-12.576 +1.3203 +-13.557 +-5.6231 +-11.23 +-14.055 +-1.0161 +-8.8204 +-10.485 +-7.8191 +-1.7255 +1.2077 +9.0742 +8.799 +-3.8223 +-3.8432 +-16.034 +-10.711 +-11.109 +-11.052 +-8.7537 +-21.378 +-22.215 +-4.3818 +-0.86433 +-11.321 +-19.992 +-13.644 +-16.077 +-29.052 +-17.071 +-18.272 +-15.107 +-17.25 +-37.713 +-24.339 +-26.31 +-22.538 +-28.628 +-19.651 +-23.425 +-14.895 +-22.226 +-14.977 +-26.206 +-29.199 +-24.024 +-14.942 +-11.922 +-21.927 +-9.6432 +-19.19 +-17.823 +-20.182 +-21.702 +-17.081 +-15.328 +-19.769 +-33.864 +-6.3951 +-24.06 +-7.7403 +-12.89 +-33.837 +-18.703 +-17.259 +-14.2 +-15.341 +-15.433 +-17.067 +-16.404 +-9.2312 +-15.819 +-19.747 +-18.694 +-14.312 +-18.056 +-22.286 +-23.641 +-15.985 +-12.074 +-10.145 +-12.374 +-21.563 +-12.693 +-22.955 +-17.892 +-24.773 +-9.4654 +-14.362 +-11.56 +-17.436 +-14.887 +-22.616 +-23.78 +-22.109 +-5.8992 +-13.912 +-17.655 +-18.555 +-21.554 +-8.0032 +-9.6498 +-12.461 +-12.311 +-7.2889 +-8.0064 +-5.9282 +-19.662 +-17.371 +-6.6725 +-7.0403 +-6.7632 +-11.908 +-10.924 +-13.913 +-11.94 +-3.5879 +-9.2674 +-9.2504 +-7.9222 +-19.237 +2.2118 +-11.944 +3.6778 +-8.0655 +-3.7587 +-9.6049 +2.9082 +-5.0006 +-4.8877 +-1.1119 +2.6945 +-8.7117 +-9.7715 +2.7716 +1.2173 +-9.4612 +6.8131 +-1.0432 +6.1411 +11.088 +10.906 +3.0298 +7.8122 +14.551 +17.675 +15.457 +22.312 +20.454 +19.8 +14.461 +22.007 +26.515 +30.2 +26.233 +27.898 +37.097 +40.549 +35.983 +31.724 +33.29 +31.93 +32.051 +7.6583 +32.633 +12.18 +15.381 +9.5991 +12.296 +7.6177 +15.877 +20.259 +5.6158 +5.462 +1.0292 +10.71 +-1.1821 +3.9115 +-1.5536 +0.16083 +3.1303 +4.3094 +-8.0833 +-7.449 +-6.5169 +-7.1938 +-0.41841 +-7.7448 +-9.9429 +-19.213 +-8.4655 +-4.3392 +-2.3719 +-3.8863 +-12.137 +-13.464 +-1.8429 +-24.683 +-3.409 +-9.8732 +-16.545 +-8.3548 +-16.312 +-5.361 +-2.3786 +-3.0529 +-13.82 +-18.185 +-18.381 +-19.718 +-17.654 +-26.744 +-12.116 +-11.249 +-15.993 +-19.859 +-15.084 +-18.805 +-17.348 +-12.424 +-12.363 +-23.334 +-10.727 +-19.763 +-23.244 +-31.395 +-24.405 +-16.572 +-20.834 +-27.38 +-11.279 +-7.8555 +-18.097 +-15.178 +-9.6447 +-20.276 +-21.473 +-14.033 +-18.185 +-19.966 +-19.905 +-17.064 +-11.644 +-15.22 +-11.762 +-12.269 +-17.731 +-21.59 +-22.906 +-16.324 +-13.598 +-16.574 +-15.746 +-23.277 +-23.815 +-31.806 +-9.5531 +-24.58 +-16.993 +-11.982 +-18.549 +-27.85 +-29.161 +-11.65 +-24.277 +-17.287 +-13.648 +-11.478 +-17.056 +-16.039 +-18.654 +-17.986 +-21.465 +-21.956 +-19.824 +-21.391 +-18.397 +-15.774 +-18.827 +-13.912 +-20.376 +-11.746 +-24.771 +-18.281 +-26.596 +-23.491 +-24.412 +-16.305 +-20.788 +-23.389 +-18.413 +-19.216 +-21.179 +-25.85 +-15.016 +6.9259 +9.661 +13.622 +-0.97587 +7.5735 +-0.86842 +4.429 +6.6549 +-1.8887 +-1.3717 +7.3838 +6.5555 +11.209 +-4.513 +9.2507 +8.7778 +14.303 +5.8283 +7.0732 +6.1286 +0.77027 +8.689 +-2.2996 +1.1481 +6.4635 +9.6317 +10.084 +7.2657 +17.007 +14.401 +1.5875 +13.651 +9.1693 +16.971 +9.5356 +6.3234 +8.5431 +17.936 +6.2591 +-7.1 +-4.3222 +0.36871 +-1.686 +1.7611 +3.9026 +2.1118 +-3.2928 +3.9956 +10.852 +4.184 +-0.23266 +6.8284 +4.3938 +6.9993 +8.152 +-6.7917 +9.7502 +7.8735 +2.7718 +9.4869 +8.1913 +9.3361 +-1.8092 +2.4778 +2.4344 +0.55455 +5.426 +9.8597 +12.642 +11.01 +6.4999 +-0.41612 +4.898 +8.3056 +6.2217 +6.5844 +1.2503 +-3.6692 +4.9737 +10.27 +6.1253 +8.9227 +5.7239 +9.4552 +13.311 +-0.40668 +-0.74825 +-0.22187 +12.003 +10.387 +1.8128 +8.0897 +-1.301 +5.1605 +18.142 +4.9414 +9.765 +8.1299 +4.7342 +-0.097538 +-4.724 +3.9091 +30.108 +27.853 +38.475 +30.149 +35.723 +36.834 +32.749 +36.597 +43.685 +26.056 +30.824 +31.199 +25.745 +34.041 +38.613 +46.594 +41.927 +40.482 +27.919 +38.287 +40.635 +32.874 +37.779 +25.035 +38.621 +23.418 +24.587 +29.857 +32.872 +45.247 +38.027 +32.385 +38.401 +33.748 +29.529 +30.795 +31.962 +36.008 +34.366 +35.546 +36.35 +20.421 +38.117 +31.855 +34.327 +38.721 +34.949 +31.716 +42.618 +36.695 +29.031 +34.167 +30.479 +47.227 +26.724 +40.451 +27.126 +26.864 +27.705 +24.802 +32.372 +27.737 +31.867 +34.533 +19.106 +20.268 +36.726 +26.153 +23.667 +26.617 +29.622 +21.6 +28.591 +30.562 +27.681 +27.331 +19.163 +23.15 +20.421 +27.307 +24.583 +23.485 +22.407 +23.924 +20.162 +23.001 +16.505 +25.546 +18.703 +16.425 +28.759 +17.622 +25.404 +22.268 +34.255 +10.275 +24.51 +24.354 +24.771 +20.416 +19.194 +25.716 +13.278 +14.192 +18.135 +19.517 +6.391 +17.42 +16.63 +14.944 +13.731 +11.263 +22.543 +22.345 +7.4859 +13.815 +12.126 +15.012 +9.0674 +6.272 +8.4092 +-0.36265 +5.3729 +-4.5527 +13.265 +1.4587 +7.3708 +13.413 +-3.4876 +-1.4651 +-3.8824 +-3.3166 +2.8976 +-14.436 +1.5479 +-1.8009 +-5.9535 +-4.6427 +-11.426 +-3.0276 +-11.282 +-16.579 +-16.727 +-7.8784 +-17.085 +-20.235 +-16.184 +-19.428 +-16.83 +-19.815 +-16.021 +-11.244 +-21.282 +-15.179 +-21.297 +-20.906 +-19.289 +-20.479 +-22.248 +-26.946 +-24.99 +-15.793 +-10.536 +-25.973 +-21.688 +-14.489 +-19.481 +-12.162 +-23.22 +-21.266 +-28.985 +-24.655 +-12.203 +-17.233 +-21.637 +-17.207 +-22.513 +-15.916 +-29.208 +-12.728 +-18.17 +-15.629 +-22.636 +-26.006 +-26.206 +-29.566 +-17.842 +-27.159 +-11.942 \ No newline at end of file diff --git a/test/denoisetest.c b/test/denoisetest.c index c64377b..3a15f3c 100644 --- a/test/denoisetest.c +++ b/test/denoisetest.c @@ -4,19 +4,60 @@ #include #include "../header/denoise.h" +static double rmse(int N,double *x,double *y) { + double rms; + int i; + + rms = 0.0; + + for(i = 0; i < N;++i) { + rms += (x[i] - y[i]) * (x[i] - y[i]); + } + + rms = sqrt(rms/(double)N); + + return rms; +} + +static double corrcoef(int N,double *x,double *y) { + double cc,xm,ym,tx,ty,num,den1,den2; + int i; + xm = ym = 0.0; + for(i = 0; i < N;++i) { + xm += x[i]; + ym += y[i]; + } + + xm = xm/N; + ym = ym / N; + num = den1 = den2 = 0.0; + + for(i = 0; i < N;++i) { + tx = x[i] - xm; + ty = y[i] - ym; + num += (tx*ty); + den1 += (tx*tx); + den2 += (ty*ty); + } + + cc = num / sqrt(den1*den2); + + return cc; +} + int main() { // gcc -Wall -I../header -L../Bin denoisetest.c -o denoise -lwauxlib -lwavelib -lm - double *inp,*oup; + double *sig,*inp,*oup; int i,N,J; FILE *ifp,*ofp; double temp[2400]; - char *wname = "sym8"; - char *method = "swt"; + char *wname = "sym6"; + char *method = "dwt"; char *ext = "sym"; char *thresh = "soft"; - ifp = fopen("noisybumps.txt", "r"); + ifp = fopen("pieceregular1024.txt", "r"); i = 0; if (!ifp) { printf("Cannot Open File"); @@ -33,24 +74,49 @@ int main() { N = i; J = 6; + sig = (double*)malloc(sizeof(double)* N); inp = (double*)malloc(sizeof(double)* N); oup = (double*)malloc(sizeof(double)* N); for(i = 0; i < N;++i) { - inp[i] = temp[i]; + sig[i] = temp[i]; } - //visushrink(inp,N,wname,method,ext,thresh,oup); - sureshrink(inp,N,J,wname,method,ext,thresh,oup); + ifp = fopen("PieceRegular10.txt", "r"); + i = 0; + if (!ifp) { + printf("Cannot Open File"); + exit(100); + } - ofp = fopen("denoiseds.txt", "w"); + while (!feof(ifp)) { + fscanf(ifp, "%lf \n", &temp[i]); + i++; + } + + fclose(ifp); for(i = 0; i < N;++i) { - fprintf(ofp,"%g \n",oup[i]); + inp[i] = temp[i]; + } + //visushrink(inp,N,J,wname,method,ext,thresh,oup); + sureshrink(inp,N,J,wname,method,ext,thresh,oup); + + //ofp = fopen("denoiseds.txt", "w"); + + for(i = 0; i < N;++i) { + //fprintf(ofp,"%g \n",oup[i]); } - fclose(ofp); + //fclose(ofp); + printf("RMSE %g\n",rmse(N,sig,inp)); + printf("Corr Coeff %g\n",corrcoef(N,sig,inp)); + + printf("RMSE %g\n",rmse(N,sig,oup)); + printf("Corr Coeff %g\n",corrcoef(N,sig,oup)); + + free(sig); free(inp); free(oup); return 0; diff --git a/test/pieceregular1024.txt b/test/pieceregular1024.txt new file mode 100644 index 0000000..6a04e15 --- /dev/null +++ b/test/pieceregular1024.txt @@ -0,0 +1,1024 @@ +-18.654 +-18.634 +-18.614 +-18.592 +-18.569 +-18.545 +-18.519 +-18.492 +-18.463 +-18.433 +-18.401 +-18.367 +-18.331 +-18.293 +-18.253 +-18.211 +-18.167 +-18.12 +-18.071 +-18.019 +-17.965 +-17.908 +-17.848 +-17.784 +-17.718 +-17.648 +-17.575 +-17.498 +-17.417 +-17.333 +-17.244 +-17.152 +-17.055 +-16.953 +-16.847 +-16.736 +-16.62 +-16.499 +-16.373 +-16.241 +-16.103 +-15.96 +-15.81 +-15.654 +-15.492 +-15.323 +-15.148 +-14.965 +-14.775 +-14.578 +-14.373 +-14.16 +-13.94 +-13.711 +-13.474 +-13.228 +-12.973 +-12.71 +-12.437 +-12.155 +-11.864 +-11.563 +-11.252 +-10.931 +-10.6 +-10.258 +-9.9057 +-9.5429 +-9.1692 +-8.7845 +-8.3887 +-7.9817 +-7.5634 +-7.1336 +-6.6923 +-6.2393 +-5.7746 +-5.2981 +-4.8098 +-4.3096 +-3.7974 +-3.2734 +-2.7374 +-2.1895 +-1.6296 +-1.0579 +-0.4744 +0.12087 +0.72781 +1.3463 +1.9763 +2.6175 +3.27 +3.9334 +4.6077 +5.2925 +5.9878 +6.6932 +7.4085 +8.1334 +8.8675 +9.6107 +10.363 +11.123 +11.891 +12.666 +13.449 +14.239 +15.034 +15.836 +16.643 +17.454 +18.27 +19.09 +19.912 +20.738 +21.565 +22.394 +23.224 +24.054 +24.884 +25.712 +26.539 +27.364 +28.185 +29.002 +29.816 +30.624 +31.426 +32.221 +33.009 +33.79 +34.561 +35.323 +36.075 +36.816 +37.545 +38.262 +38.966 +39.656 +40.332 +40.993 +41.638 +42.266 +42.878 +43.471 +12.552 +12.83 +13.098 +13.356 +13.604 +13.842 +14.068 +14.283 +14.487 +14.679 +14.859 +15.028 +15.184 +15.328 +15.459 +15.578 +15.683 +15.776 +15.856 +15.922 +15.976 +16.016 +16.042 +16.056 +16.056 +16.042 +16.016 +15.976 +15.922 +15.856 +15.776 +15.683 +15.578 +15.459 +15.328 +15.184 +15.028 +14.859 +14.679 +14.487 +14.283 +14.068 +13.842 +13.604 +13.356 +13.098 +12.83 +12.552 +12.264 +11.968 +11.662 +11.348 +11.025 +10.695 +10.357 +10.012 +9.6599 +9.3014 +36.816 +36.075 +35.323 +34.561 +33.79 +33.009 +32.221 +31.426 +30.624 +29.816 +29.002 +28.185 +27.364 +26.539 +25.712 +24.884 +24.054 +23.224 +22.394 +21.565 +20.738 +19.912 +19.09 +18.27 +17.454 +16.643 +15.836 +15.034 +14.239 +13.449 +12.666 +11.891 +11.123 +10.363 +9.6107 +8.8675 +8.1334 +7.4085 +6.6932 +5.9878 +5.2925 +4.6077 +3.9334 +3.27 +2.6175 +1.9763 +1.3463 +0.72781 +0.12087 +-0.4744 +-1.0579 +-1.6296 +-2.1895 +-2.7374 +-3.2734 +-3.7974 +-4.3096 +-4.8098 +-5.2981 +-5.7746 +-6.2393 +-6.6923 +-7.1336 +-7.5634 +-7.9817 +-8.3887 +-8.7845 +-9.1692 +-9.5429 +-9.9057 +-10.258 +-10.6 +-10.931 +-11.252 +-11.563 +-11.864 +-12.155 +-12.437 +-12.71 +-12.973 +-13.228 +-13.474 +-13.711 +-13.94 +-14.16 +-14.373 +-14.578 +-14.775 +-14.965 +-15.148 +-15.323 +-15.492 +-15.654 +-15.81 +-15.96 +-16.103 +-16.241 +-16.373 +-16.499 +-16.62 +-16.736 +-16.847 +-16.953 +-17.055 +-17.152 +-17.244 +-17.333 +-17.417 +-17.498 +-17.575 +-17.648 +-17.718 +-17.784 +-17.848 +-17.908 +-17.965 +-18.019 +-18.071 +-18.12 +-18.167 +-18.211 +-18.253 +-18.293 +-18.331 +-18.367 +-18.401 +-18.433 +-18.463 +-18.492 +-18.519 +-18.545 +-18.569 +-18.592 +-18.614 +-18.634 +-18.654 +-18.672 +-18.327 +-18.302 +-18.276 +-18.249 +-18.22 +-18.19 +-18.157 +-18.123 +-18.087 +-18.049 +-18.009 +-17.966 +-17.921 +-17.873 +-17.822 +-17.768 +-17.71 +-17.649 +-17.584 +-17.515 +-17.441 +-17.362 +-17.279 +-17.189 +-17.093 +-16.991 +-16.881 +-16.764 +-16.638 +-16.502 +-16.357 +-16.2 +-16.031 +-15.85 +-15.653 +-15.441 +-15.211 +-14.962 +-14.692 +-14.399 +-14.08 +-13.732 +-13.352 +-12.938 +-12.484 +-11.986 +-11.439 +-10.838 +-10.175 +-9.4423 +-8.6318 +-7.7329 +-6.7339 +-5.6209 +-4.3782 +-2.987 +-1.4256 +0.3316 +2.3149 +4.56 +7.1097 +10.015 +13.336 +17.148 +21.54 +26.621 +32.525 +39.417 +40.934 +33.829 +27.75 +22.525 +18.013 +14.102 +10.698 +7.7246 +5.1192 +2.8287 +0.80923 +-0.97616 +-2.5584 +-3.9638 +-5.2143 +-6.3289 +-7.3233 +-8.2111 +-9.0038 +-9.7108 +-10.34 +-10.899 +-11.391 +-11.821 +-12.191 +-12.503 +-12.755 +-12.945 +-13.067 +-13.113 +-13.07 +-12.92 +-12.634 +-12.172 +-11.473 +-10.448 +-8.9581 +-6.7859 +-3.5808 +1.2436 +8.7092 +9.7536 +1.6311 +-3.6846 +-7.2902 +-9.8125 +-11.626 +-12.961 +-13.965 +-14.735 +-15.337 +-15.814 +-16.198 +-16.512 +-16.771 +-16.988 +-17.171 +-17.327 +-17.462 +-17.579 +-17.681 +-17.771 +-17.851 +-17.923 +-17.987 +-18.045 +-18.097 +-18.145 +-18.188 +-18.228 +-18.265 +-18.299 +-18.331 +-18.36 +-18.387 +-18.412 +-18.436 +-18.458 +-18.479 +-18.498 +-18.517 +-18.534 +-18.55 +-18.566 +-18.58 +-18.594 +-18.607 +-18.62 +-18.631 +-18.643 +-18.653 +-18.664 +-18.673 +-18.682 +-18.691 +-18.7 +-18.708 +-18.715 +-18.723 +-18.73 +-18.737 +-18.743 +-18.749 +-17.894 +-17.844 +-17.791 +-17.735 +-17.677 +-17.616 +-17.552 +-17.485 +-17.415 +-17.342 +-17.264 +-17.184 +-17.099 +-17.01 +-16.917 +-16.819 +-16.717 +-16.61 +-16.497 +-16.379 +-16.256 +-16.127 +-15.991 +-15.849 +-15.7 +-15.543 +-15.38 +-15.208 +-15.028 +-14.839 +-14.642 +-14.434 +-14.217 +-13.989 +-13.751 +-13.501 +-13.238 +-12.964 +-12.675 +-12.374 +-12.057 +-11.725 +-11.377 +-11.013 +-10.631 +-10.23 +-9.8107 +-9.3706 +-8.9094 +-8.426 +-7.9193 +-7.3882 +-6.8314 +-6.2479 +-5.6362 +-4.9951 +-4.323 +-3.6186 +-2.8802 +-2.1063 +-1.2951 +-0.44476 +0.44653 +1.3808 +2.36 +3.3864 +4.4623 +5.5901 +6.7721 +8.0112 +9.3099 +10.671 +12.098 +13.594 +15.161 +16.805 +18.527 +20.333 +22.225 +24.209 +26.288 +28.467 +30.751 +33.146 +35.656 +35.656 +33.146 +30.751 +28.467 +26.288 +24.209 +22.225 +20.333 +18.527 +16.805 +15.161 +13.594 +12.098 +10.671 +9.3099 +8.0112 +6.7721 +5.5901 +4.4623 +3.3864 +2.36 +1.3808 +0.44653 +-0.44476 +-1.2951 +-2.1063 +-2.8802 +-3.6186 +-4.323 +-4.9951 +-5.6362 +-6.2479 +-6.8314 +-7.3882 +-7.9193 +-8.426 +-8.9094 +-9.3706 +-9.8107 +-10.23 +-10.631 +-11.013 +-11.377 +-11.725 +-12.057 +-12.374 +-12.675 +-12.964 +-13.238 +-13.501 +-13.751 +-13.989 +-14.217 +-14.434 +-14.642 +-14.839 +-15.028 +-15.208 +-15.38 +-15.543 +-15.7 +-15.849 +-15.991 +-16.127 +-16.256 +-16.379 +-16.497 +-16.61 +-16.717 +-16.819 +-16.917 +-17.01 +-17.099 +-17.184 +-17.264 +-17.342 +-17.415 +-17.485 +-17.552 +-17.616 +-17.677 +-17.735 +-17.791 +-17.844 +-17.894 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +34.628 +34.599 +34.57 +34.54 +34.509 +34.477 +34.444 +34.411 +34.376 +34.341 +34.304 +34.266 +34.228 +34.188 +34.147 +34.106 +34.062 +34.018 +33.973 +33.926 +33.878 +33.829 +33.778 +33.726 +33.672 +33.617 +33.56 +33.502 +33.442 +33.381 +33.318 +33.253 +33.186 +33.117 +33.047 +32.974 +32.9 +32.823 +32.745 +32.664 +32.581 +32.495 +32.408 +32.317 +32.225 +32.129 +32.031 +31.931 +31.827 +31.721 +31.612 +31.499 +31.384 +31.265 +31.143 +31.018 +30.889 +30.757 +30.621 +30.481 +30.337 +30.189 +30.037 +29.881 +29.721 +29.556 +29.387 +29.213 +29.034 +28.85 +28.661 +28.466 +28.267 +28.061 +27.85 +27.634 +27.411 +27.182 +26.946 +26.705 +26.456 +26.2 +25.938 +25.668 +25.39 +25.105 +24.812 +24.511 +24.201 +23.883 +23.556 +23.22 +22.875 +22.52 +22.155 +21.78 +21.395 +20.998 +20.591 +20.173 +19.743 +19.301 +18.847 +18.38 +17.9 +17.407 +16.9 +16.379 +15.843 +15.293 +14.728 +14.146 +13.549 +12.935 +12.304 +11.655 +10.988 +10.303 +9.599 +8.8753 +8.1314 +7.3669 +6.5811 +5.7736 +4.9436 +4.0905 +3.2137 +2.3126 +1.3865 +0.43463 +-0.54367 +-1.5491 +-2.5825 +-3.6446 +-4.7363 +-5.8582 +-7.0113 +-8.1964 +-9.4144 +-10.666 +-11.953 +-13.275 +-14.634 +-16.031 +-17.467 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.592 +-18.614 +-18.634 +-18.654 \ No newline at end of file