Commit 4198e3befbfe3d734b92e0ba688ddac5c8d6a502

Authored by dmayerich
1 parent 29e744fa

Added polystyrene.

CMakeLists.txt
... ... @@ -52,8 +52,10 @@ file(GLOB SRC_CU "*.cu")
52 52  
53 53 #set up copying data files
54 54 configure_file(kPMMA.txt ${CMAKE_CURRENT_BINARY_DIR}/kPMMA.txt @ONLY)
  55 +configure_file(eta_polystyreneK.txt ${CMAKE_CURRENT_BINARY_DIR}/eta_polystyreneK.txt @ONLY)
55 56 configure_file(eta_TolueneK.txt ${CMAKE_CURRENT_BINARY_DIR}/eta_TolueneK.txt @ONLY)
56 57 configure_file(eta_TolueneN.txt ${CMAKE_CURRENT_BINARY_DIR}/eta_TolueneN.txt @ONLY)
  58 +configure_file(source_midIR.txt ${CMAKE_CURRENT_BINARY_DIR}/source_midIR.txt @ONLY)
57 59  
58 60 #determine which source files have to be moc'd
59 61 Qt4_wrap_cpp(UI_MOC ${SRC_H})
... ...
FileIO.cpp
... ... @@ -14,7 +14,7 @@ vector<SpecPair> LoadSpectrum(string filename)
14 14 //open the file
15 15 ifstream inFile(filename.c_str());
16 16  
17   -
  17 + //read all elements of the file
18 18 SpecPair temp;
19 19 while(!inFile.eof()){
20 20 inFile>>temp.nu;
... ... @@ -55,6 +55,7 @@ vector<SpecPair> LoadSpectrum(string filename)
55 55 while(j < (int)S.size()-1 && S[j].nu <= nu)
56 56 j++;
57 57  
  58 +
58 59 lowVal = S[j-1].nu;
59 60 highVal = S[j].nu;
60 61 a = (nu - lowVal)/(highVal - lowVal);
... ...
SimulateSpectrum.cpp
... ... @@ -2,7 +2,7 @@
2 2 #include <complex>
3 3 #include <iostream>
4 4 #include <fstream>
5   -#include "globals.h"
  5 +#include "globals.h"
6 6 #include <QProgressDialog>
7 7 #include <stdlib.h>
8 8 //#include "cufft.h"
... ... @@ -352,11 +352,16 @@ void updateSpectrum(double* I, double I0, int n)
352 352  
353 353 //set the spectrum value based on the current display type
354 354 if(dispSimType == AbsorbanceSpecType)
  355 + {
355 356 temp.A = -log10(I[i]/I0);
356   - else
  357 + //cout<<temp.nu<<" "<<I[i]<<endl;
  358 + }
  359 + else
357 360 {
358   - temp.A = I[i];
359   - }
  361 + temp.A = I[i];
  362 + if(useSourceSpectrum)
  363 + temp.A *= SourceResampled[i].A;
  364 + }
360 365  
361 366 SimSpectrum.push_back(temp);
362 367 }
... ... @@ -457,6 +462,7 @@ void gpuDetectorSpectrum(int numSamples)
457 462 computeBArray(B, Nl, nLambda);
458 463  
459 464  
  465 +
460 466 //allocate temporary space for the spectrum
461 467 double* I = (double*)malloc(sizeof(double) * EtaK.size());
462 468  
... ... @@ -525,14 +531,14 @@ double intensityDistortion(){
525 531 void DistortionMap(float* distortionMap, int nSteps){
526 532 ofstream outFile("distortion.txt");
527 533  
528   - //set the parameters for the distortion simulation
  534 + //set the parameters for the distortion simulation
529 535 double range = 0.4;
530 536 double step = (range)/(nSteps-1);
531 537  
532 538 oNAi = 0.2;
533   - oNAo = 0.5;
534   -
535   - double startNAi = 0.0;
  539 + oNAo = 0.5;
  540 +
  541 + double startNAi = 0.0;
536 542 double startNAo = 0.3;
537 543  
538 544 //compute the optical parameters
... ... @@ -553,24 +559,24 @@ void DistortionMap(float* distortionMap, int nSteps){
553 559 complex<double>* B = (complex<double>*)malloc(sizeof(complex<double>) * Nl * nLambda);
554 560 computeBArray(B, Nl, nLambda);
555 561  
556   - QProgressDialog progress("Computing distortion map...", "Stop", 0, nSteps * nSteps);
  562 + QProgressDialog progress("Computing distortion map...", "Stop", 0, nSteps * nSteps);
557 563 progress.setWindowModality(Qt::WindowModal);
558 564  
559 565 double D;
560   - double e = 0.001;
561   - int i, o;
562   - for(i=0; i<nSteps; i++)
563   - {
  566 + double e = 0.001;
  567 + int i, o;
  568 + for(i=0; i<nSteps; i++)
  569 + {
564 570 for(o=0; o<nSteps; o++)
565   - {
566   - //update the progress bar and check for an exit
567   - progress.setValue(i * nSteps + o);
568   - if (progress.wasCanceled())
569   - break;
  571 + {
  572 + //update the progress bar and check for an exit
  573 + progress.setValue(i * nSteps + o);
  574 + if (progress.wasCanceled())
  575 + break;
570 576  
571 577 //set the current optical parameters
572 578 cNAi = startNAi + i * step;
573   - cNAo = startNAo + o * step;
  579 + cNAo = startNAo + o * step;
574 580 //cout<<cNAi<<" "<<cNAo<<endl;
575 581  
576 582 //set the current optical parameters
... ... @@ -597,15 +603,15 @@ void DistortionMap(float* distortionMap, int nSteps){
597 603 D = -1.0;
598 604 else
599 605 D = intensityDistortion();
600   - }
  606 + }
601 607 distortionMap[o * nSteps + i] = D;
602 608 outFile<<D<<" ";
603 609 }
604 610 outFile<<endl;
605   - //cout<<i<<endl;
  611 + //cout<<i<<endl;
606 612 }
607   -
608   - progress.setValue(nSteps * nSteps);
  613 +
  614 + progress.setValue(nSteps * nSteps);
609 615  
610 616 outFile.close();
611   -}
  617 +}
... ...
cudaKK.h
... ... @@ -58,7 +58,7 @@ __global__ void devComputeSpectrum(double* I, double2* B, double* alpha, int Nl,
58 58 int nSamples, int nLambda, double oThetaI, double oThetaO, double cThetaI, double cThetaO)
59 59 {
60 60 int i = blockIdx.x * blockDim.x + threadIdx.x;
61   - if(i >= nLambda-1)
  61 + if(i >= nLambda)
62 62 return;
63 63  
64 64 //compute the delta-theta value
... ... @@ -155,6 +155,7 @@ void cudaComputeSpectrum(double* cpuI, double* cpuB, double* cpuAlpha,
155 155 HANDLE_ERROR(cudaMalloc(&gpuB, sizeof(double2) * nLambda * Nl));
156 156 HANDLE_ERROR(cudaMemcpy(gpuB, cpuB, sizeof(double2) * nLambda * Nl, cudaMemcpyHostToDevice));
157 157  
  158 +
158 159 double* gpuAlpha;
159 160 HANDLE_ERROR(cudaMalloc(&gpuAlpha, sizeof(double) * Nl));
160 161 HANDLE_ERROR(cudaMemcpy(gpuAlpha, cpuAlpha, sizeof(double) * Nl, cudaMemcpyHostToDevice));
... ...
eta_polystyreneK.txt 0 โ†’ 100644
  1 +898.826141 0.019116
  2 +900.754953 0.055527
  3 +902.683764 0.098452
  4 +904.612576 0.136831
  5 +906.541387 0.156627
  6 +908.470199 0.148732
  7 +910.39901 0.117418
  8 +912.327822 0.076677
  9 +914.256633 0.038751
  10 +916.185445 0.009591
  11 +918.114256 -0.010209
  12 +920.043068 -0.023033
  13 +921.971879 -0.031537
  14 +923.90069 -0.037414
  15 +925.829502 -0.041293
  16 +927.758313 -0.042979
  17 +929.687125 -0.042103
  18 +931.615936 -0.038145
  19 +933.544748 -0.031093
  20 +935.473559 -0.021914
  21 +937.402371 -0.011949
  22 +939.331182 -0.002791
  23 +941.259994 0.003752
  24 +943.188805 0.005688
  25 +945.117617 0.002738
  26 +947.046428 -0.002821
  27 +948.97524 -0.00827
  28 +950.904051 -0.011879
  29 +952.832862 -0.012962
  30 +954.761674 -0.011105
  31 +956.690485 -0.0056
  32 +958.619297 0.004797
  33 +960.548108 0.019407
  34 +962.47692 0.033174
  35 +964.405731 0.039614
  36 +966.334543 0.036064
  37 +968.263354 0.025338
  38 +970.192166 0.013163
  39 +972.120977 0.005366
  40 +974.049789 0.004951
  41 +975.9786 0.010871
  42 +977.907411 0.018766
  43 +979.836223 0.023503
  44 +981.765034 0.022789
  45 +983.693846 0.017146
  46 +985.622657 0.009046
  47 +987.551469 0.001536
  48 +989.48028 -0.003576
  49 +991.409092 -0.006299
  50 +993.337903 -0.007164
  51 +995.266715 -0.005695
  52 +997.195526 0.000076
  53 +999.124338 0.01503
  54 +1001.053149 0.037412
  55 +1002.98196 0.050995
  56 +1004.910772 0.046953
  57 +1006.839583 0.037742
  58 +1008.768395 0.035056
  59 +1010.697206 0.039667
  60 +1012.626018 0.049282
  61 +1014.554829 0.062634
  62 +1016.483641 0.08028
  63 +1018.412452 0.103098
  64 +1020.341264 0.132867
  65 +1022.270075 0.174146
  66 +1024.198887 0.233886
  67 +1026.127698 0.306859
  68 +1028.056509 0.352951
  69 +1029.985321 0.332845
  70 +1031.914132 0.253422
  71 +1033.842944 0.15337
  72 +1035.771755 0.075206
  73 +1037.700567 0.031441
  74 +1039.629378 0.01182
  75 +1041.55819 0.004927
  76 +1043.487001 0.003838
  77 +1045.415813 0.005858
  78 +1047.344624 0.009609
  79 +1049.273436 0.014563
  80 +1051.202247 0.020806
  81 +1053.131058 0.02831
  82 +1055.05987 0.037254
  83 +1056.988681 0.047803
  84 +1058.917493 0.060849
  85 +1060.846304 0.077346
  86 +1062.775116 0.098218
  87 +1064.703927 0.122229
  88 +1066.632739 0.144019
  89 +1068.56155 0.155908
  90 +1070.490362 0.152919
  91 +1072.419173 0.136414
  92 +1074.347985 0.112283
  93 +1076.276796 0.089477
  94 +1078.205607 0.072866
  95 +1080.134419 0.059604
  96 +1082.06323 0.046156
  97 +1083.992042 0.032763
  98 +1085.920853 0.021442
  99 +1087.849665 0.013006
  100 +1089.778476 0.007043
  101 +1091.707288 0.002791
  102 +1093.636099 -0.00074
  103 +1095.564911 -0.00408
  104 +1097.493722 -0.007335
  105 +1099.422534 -0.010612
  106 +1101.351345 -0.013687
  107 +1103.280156 -0.016017
  108 +1105.208968 -0.017002
  109 +1107.137779 -0.016168
  110 +1109.066591 -0.013881
  111 +1110.995402 -0.011752
  112 +1112.924214 -0.011588
  113 +1114.853025 -0.014376
  114 +1116.781837 -0.019884
  115 +1118.710648 -0.026342
  116 +1120.63946 -0.031825
  117 +1122.568271 -0.035456
  118 +1124.497083 -0.037312
  119 +1126.425894 -0.037953
  120 +1128.354706 -0.037725
  121 +1130.283517 -0.036904
  122 +1132.212328 -0.035615
  123 +1134.14114 -0.033845
  124 +1136.069951 -0.031363
  125 +1137.998763 -0.027797
  126 +1139.927574 -0.0228
  127 +1141.856386 -0.016049
  128 +1143.785197 -0.007725
  129 +1145.714009 0.002497
  130 +1147.64282 0.01699
  131 +1149.571632 0.041497
  132 +1151.500443 0.07804
  133 +1153.429255 0.111111
  134 +1155.358066 0.116425
  135 +1157.286877 0.092129
  136 +1159.215689 0.060068
  137 +1161.1445 0.037319
  138 +1163.073312 0.025925
  139 +1165.002123 0.02154
  140 +1166.930935 0.020725
  141 +1168.859746 0.022127
  142 +1170.788558 0.025461
  143 +1172.717369 0.031735
  144 +1174.646181 0.044191
  145 +1176.574992 0.06768
  146 +1178.503804 0.100886
  147 +1180.432615 0.12747
  148 +1182.361426 0.12922
  149 +1184.290238 0.110556
  150 +1186.219049 0.090473
  151 +1188.147861 0.07943
  152 +1190.076672 0.076068
  153 +1192.005484 0.07608
  154 +1193.934295 0.077001
  155 +1195.863107 0.077681
  156 +1197.791918 0.076518
  157 +1199.72073 0.07196
  158 +1201.649541 0.064291
  159 +1203.578353 0.055144
  160 +1205.507164 0.046329
  161 +1207.435975 0.038878
  162 +1209.364787 0.032932
  163 +1211.293598 0.028246
  164 +1213.22241 0.024716
  165 +1215.151221 0.022392
  166 +1217.080033 0.021147
  167 +1219.008844 0.020953
  168 +1220.937656 0.021648
  169 +1222.866467 0.022672
  170 +1224.795279 0.023299
  171 +1226.72409 0.022969
  172 +1228.652902 0.021782
  173 +1230.581713 0.020246
  174 +1232.510524 0.019099
  175 +1234.439336 0.018863
  176 +1236.368147 0.019646
  177 +1238.296959 0.021471
  178 +1240.22577 0.02385
  179 +1242.154582 0.026303
  180 +1244.083393 0.028557
  181 +1246.012205 0.030419
  182 +1247.941016 0.031848
  183 +1249.869828 0.033047
  184 +1251.798639 0.034626
  185 +1253.727451 0.037155
  186 +1255.656262 0.041643
  187 +1257.585073 0.049886
  188 +1259.513885 0.066247
  189 +1261.442696 0.09833
  190 +1263.371508 0.150898
  191 +1265.300319 0.198542
  192 +1267.229131 0.186024
  193 +1269.157942 0.128142
  194 +1271.086754 0.085322
  195 +1273.015565 0.069549
  196 +1274.944377 0.06766
  197 +1276.873188 0.070867
  198 +1278.802 0.074763
  199 +1280.730811 0.077356
  200 +1282.659622 0.078091
  201 +1284.588434 0.078463
  202 +1286.517245 0.07974
  203 +1288.446057 0.082769
  204 +1290.374868 0.086921
  205 +1292.30368 0.090579
  206 +1294.232491 0.093192
  207 +1296.161303 0.095148
  208 +1298.090114 0.098445
  209 +1300.018926 0.104318
  210 +1301.947737 0.112521
  211 +1303.876549 0.121499
  212 +1305.80536 0.130266
  213 +1307.734172 0.139144
  214 +1309.662983 0.147148
  215 +1311.591794 0.152134
  216 +1313.520606 0.1521
  217 +1315.449417 0.148157
  218 +1317.378229 0.143551
  219 +1319.30704 0.141058
  220 +1321.235852 0.142198
  221 +1323.164663 0.147204
  222 +1325.093475 0.155233
  223 +1327.022286 0.163276
  224 +1328.951098 0.166549
  225 +1330.879909 0.161526
  226 +1332.808721 0.150535
  227 +1334.737532 0.13887
  228 +1336.666343 0.130617
  229 +1338.595155 0.127828
  230 +1340.523966 0.129919
  231 +1342.452778 0.135934
  232 +1344.381589 0.144426
  233 +1346.310401 0.153022
  234 +1348.239212 0.159704
  235 +1350.168024 0.163903
  236 +1352.096835 0.16632
  237 +1354.025647 0.168823
  238 +1355.954458 0.173767
  239 +1357.88327 0.18194
  240 +1359.812081 0.192458
  241 +1361.740892 0.202613
  242 +1363.669704 0.210208
  243 +1365.598515 0.215759
  244 +1367.527327 0.221325
  245 +1369.456138 0.226778
  246 +1371.38495 0.230758
  247 +1373.313761 0.231634
  248 +1375.242573 0.225132
  249 +1377.171384 0.211963
  250 +1379.100196 0.197043
  251 +1381.029007 0.183587
  252 +1382.957819 0.171175
  253 +1384.88663 0.15737
  254 +1386.815441 0.1414
  255 +1388.744253 0.122888
  256 +1390.673064 0.104874
  257 +1392.601876 0.091083
  258 +1394.530687 0.08126
  259 +1396.459499 0.073743
  260 +1398.38831 0.068515
  261 +1400.317122 0.064433
  262 +1402.245933 0.060761
  263 +1404.174745 0.059405
  264 +1406.103556 0.058546
  265 +1408.032368 0.057872
  266 +1409.961179 0.058331
  267 +1411.88999 0.059098
  268 +1413.818802 0.060997
  269 +1415.747613 0.064104
  270 +1417.676425 0.069983
  271 +1419.605236 0.075169
  272 +1421.534048 0.076623
  273 +1423.462859 0.079539
  274 +1425.391671 0.085871
  275 +1427.320482 0.0967
  276 +1429.249294 0.114646
  277 +1431.178105 0.142209
  278 +1433.106917 0.182598
  279 +1435.035728 0.239951
  280 +1436.964539 0.311419
  281 +1438.893351 0.38584
  282 +1440.822162 0.465127
  283 +1442.750974 0.559225
  284 +1444.679785 0.673053
  285 +1446.608597 0.800697
  286 +1448.537408 0.94843
  287 +1450.46622 1.148421
  288 +1452.395031 1.296248
  289 +1454.323843 1.058714
  290 +1456.252654 0.645584
  291 +1458.181466 0.370692
  292 +1460.110277 0.238045
  293 +1462.039089 0.179208
  294 +1463.9679 0.151525
  295 +1465.896711 0.135497
  296 +1467.825523 0.124548
  297 +1469.754334 0.120067
  298 +1471.683146 0.121014
  299 +1473.611957 0.123711
  300 +1475.540769 0.127333
  301 +1477.46958 0.136369
  302 +1479.398392 0.154027
  303 +1481.327203 0.186162
  304 +1483.256015 0.242567
  305 +1485.184826 0.335084
  306 +1487.113638 0.478748
  307 +1489.042449 0.702249
  308 +1490.97126 1.035018
  309 +1492.900072 1.314579
  310 +1494.828883 1.088169
  311 +1496.757695 0.668532
  312 +1498.686506 0.383451
  313 +1500.615318 0.233235
  314 +1502.544129 0.159438
  315 +1504.472941 0.125684
  316 +1506.401752 0.108663
  317 +1508.330564 0.092218
  318 +1510.259375 0.079381
  319 +1512.188187 0.072439
  320 +1514.116998 0.068085
  321 +1516.045809 0.066147
  322 +1517.974621 0.065145
  323 +1519.903432 0.066505
  324 +1521.832244 0.068129
  325 +1523.761055 0.066589
  326 +1525.689867 0.067278
  327 +1527.618678 0.069721
  328 +1529.54749 0.07302
  329 +1531.476301 0.080217
  330 +1533.405113 0.089788
  331 +1535.333924 0.09914
  332 +1537.262736 0.110433
  333 +1539.191547 0.12399
  334 +1541.120358 0.127162
  335 +1543.04917 0.12121
  336 +1544.977981 0.114064
  337 +1546.906793 0.105082
  338 +1548.835604 0.097572
  339 +1550.764416 0.089909
  340 +1552.693227 0.083611
  341 +1554.622039 0.078764
  342 +1556.55085 0.076508
  343 +1558.479662 0.079169
  344 +1560.408473 0.075715
  345 +1562.337285 0.068477
  346 +1564.266096 0.067407
  347 +1566.194907 0.069866
  348 +1568.123719 0.074403
  349 +1570.05253 0.080782
  350 +1571.981342 0.087721
  351 +1573.910153 0.099806
  352 +1575.838965 0.118145
  353 +1577.767776 0.141011
  354 +1579.696588 0.185645
  355 +1581.625399 0.250284
  356 +1583.554211 0.273177
  357 +1585.483022 0.233469
  358 +1587.411834 0.193808
  359 +1589.340645 0.189695
  360 +1591.269456 0.21428
  361 +1593.198268 0.258517
  362 +1595.127079 0.327737
  363 +1597.055891 0.438573
  364 +1598.984702 0.585889
  365 +1600.913514 0.686477
  366 +1602.842325 0.638357
  367 +1604.771137 0.48614
  368 +1606.699948 0.336817
  369 +1608.62876 0.231431
  370 +1610.557571 0.169635
  371 +1612.486383 0.136046
  372 +1614.415194 0.119059
  373 +1616.344005 0.111357
  374 +1618.272817 0.102592
  375 +1620.201628 0.095256
  376 +1622.13044 0.093313
  377 +1624.059251 0.09145
  378 +1625.988063 0.08831
  379 +1627.916874 0.085677
  380 +1629.845686 0.083334
  381 +1631.774497 0.081142
  382 +1633.703309 0.082511
  383 +1635.63212 0.084804
  384 +1637.560932 0.082263
  385 +1639.489743 0.079602
  386 +1641.418555 0.079711
  387 +1643.347366 0.081492
  388 +1645.276177 0.085877
  389 +1647.204989 0.088839
  390 +1649.1338 0.08828
  391 +1651.062612 0.093733
  392 +1652.991423 0.102457
  393 +1654.920235 0.100559
  394 +1656.849046 0.096972
  395 +1658.777858 0.099424
  396 +1660.706669 0.103812
  397 +1662.635481 0.108472
  398 +1664.564292 0.110364
  399 +1666.493104 0.111515
  400 +1668.421915 0.114413
  401 +1670.350726 0.114846
  402 +1672.279538 0.112838
  403 +1674.208349 0.112469
  404 +1676.137161 0.111224
  405 +1678.065972 0.107351
  406 +1679.994784 0.104967
  407 +1681.923595 0.105127
  408 +1683.852407 0.107257
  409 +1685.781218 0.103914
  410 +1687.71003 0.095695
  411 +1689.638841 0.092176
  412 +1691.567653 0.089217
  413 +1693.496464 0.089235
  414 +1695.425275 0.093072
  415 +1697.354087 0.092908
  416 +1699.282898 0.094532
  417 +1701.21171 0.094565
  418 +1703.140521 0.089751
  419 +1705.069333 0.088036
  420 +1706.998144 0.086649
  421 +1708.926956 0.084416
  422 +1710.855767 0.0836
  423 +1712.784579 0.083932
  424 +1714.71339 0.086557
  425 +1716.642202 0.090393
  426 +1718.571013 0.091167
  427 +1720.499824 0.088747
  428 +1722.428636 0.088906
  429 +1724.357447 0.091216
  430 +1726.286259 0.093318
  431 +1728.21507 0.096921
  432 +1730.143882 0.101145
  433 +1732.072693 0.108343
  434 +1734.001505 0.117106
  435 +1735.930316 0.120457
  436 +1737.859128 0.124114
  437 +1739.787939 0.131207
  438 +1741.716751 0.136288
  439 +1743.645562 0.139941
  440 +1745.574373 0.142775
  441 +1747.503185 0.144048
  442 +1749.431996 0.143985
  443 +1751.360808 0.140993
  444 +1753.289619 0.134565
  445 +1755.218431 0.128032
  446 +1757.147242 0.122382
  447 +1759.076054 0.116046
  448 +1761.004865 0.111332
  449 +1762.933677 0.106691
  450 +1764.862488 0.101762
  451 +1766.7913 0.100145
  452 +1768.720111 0.09994
  453 +1770.648922 0.101965
  454 +1772.577734 0.105371
  455 +1774.506545 0.10536
  456 +1776.435357 0.103826
  457 +1778.364168 0.102677
  458 +1780.29298 0.101695
  459 +1782.221791 0.101443
  460 +1784.150603 0.103013
  461 +1786.079414 0.106595
  462 +1788.008226 0.112037
  463 +1789.937037 0.121362
  464 +1791.865849 0.134189
  465 +1793.79466 0.146862
  466 +1795.723471 0.158872
  467 +1797.652283 0.171361
  468 +1799.581094 0.181932
  469 +1801.509906 0.188218
  470 +1803.438717 0.189858
  471 +1805.367529 0.187906
  472 +1807.29634 0.183832
  473 +1809.225152 0.178212
  474 +1811.153963 0.171829
  475 +1813.082775 0.16489
  476 +1815.011586 0.15827
  477 +1816.940398 0.151991
  478 +1818.869209 0.145724
  479 +1820.798021 0.139621
  480 +1822.726832 0.1338
  481 +1824.655643 0.128593
  482 +1826.584455 0.122792
  483 +1828.513266 0.117736
  484 +1830.442078 0.113421
  485 +1832.370889 0.108464
  486 +1834.299701 0.104862
  487 +1836.228512 0.102651
  488 +1838.157324 0.101362
  489 +1840.086135 0.100761
  490 +1842.014947 0.10182
  491 +1843.943758 0.104352
  492 +1845.87257 0.105103
  493 +1847.801381 0.105917
  494 +1849.730192 0.108669
  495 +1851.659004 0.112554
  496 +1853.587815 0.118007
  497 +1855.516627 0.125107
  498 +1857.445438 0.134214
  499 +1859.37425 0.145106
  500 +1861.303061 0.157258
  501 +1863.231873 0.169641
  502 +1865.160684 0.18088
  503 +1867.089496 0.190347
  504 +1869.018307 0.19634
  505 +1870.947119 0.197752
  506 +1872.87593 0.196181
  507 +1874.804741 0.193735
  508 +1876.733553 0.190785
  509 +1878.662364 0.187648
  510 +1880.591176 0.184607
  511 +1882.519987 0.181433
  512 +1884.448799 0.17786
  513 +1886.37761 0.173383
  514 +1888.306422 0.168076
  515 +1890.235233 0.161315
  516 +1892.164045 0.153433
  517 +1894.092856 0.14591
  518 +1896.021668 0.138753
  519 +1897.950479 0.13221
  520 +1899.87929 0.126761
  521 +1901.808102 0.122409
  522 +1903.736913 0.119208
  523 +1905.665725 0.117002
  524 +1907.594536 0.115688
  525 +1909.523348 0.115047
  526 +1911.452159 0.115034
  527 +1913.380971 0.11573
  528 +1915.309782 0.117364
  529 +1917.238594 0.120266
  530 +1919.167405 0.123393
  531 +1921.096217 0.126729
  532 +1923.025028 0.131173
  533 +1924.953839 0.135966
  534 +1926.882651 0.141533
  535 +1928.811462 0.148687
  536 +1930.740274 0.1579
  537 +1932.669085 0.170189
  538 +1934.597897 0.185288
  539 +1936.526708 0.202183
  540 +1938.45552 0.218642
  541 +1940.384331 0.23199
  542 +1942.313143 0.239913
  543 +1944.241954 0.240784
  544 +1946.170766 0.235857
  545 +1948.099577 0.227507
  546 +1950.028388 0.218213
  547 +1951.9572 0.209827
  548 +1953.886011 0.203169
  549 +1955.814823 0.19817
  550 +1957.743634 0.193839
  551 +1959.672446 0.189185
  552 +1961.601257 0.183474
  553 +1963.530069 0.17645
  554 +1965.45888 0.168196
  555 +1967.387692 0.159124
  556 +1969.316503 0.149953
  557 +1971.245315 0.141606
  558 +1973.174126 0.134931
  559 +1975.102938 0.130401
  560 +1977.031749 0.128004
  561 +1978.96056 0.127125
  562 +1980.889372 0.127123
  563 +1982.818183 0.127531
  564 +1984.746995 0.127861
  565 +1986.675806 0.127208
  566 +1988.604618 0.125152
  567 +1990.533429 0.122585
  568 +1992.462241 0.120088
  569 +1994.391052 0.117806
  570 +1996.319864 0.116174
  571 +1998.248675 0.115282
  572 +2000.177487 0.114829
  573 +2002.106298 0.114681
  574 +2004.035109 0.11471
  575 +2005.963921 0.114685
  576 +2007.892732 0.114603
  577 +2009.821544 0.114448
  578 +2011.750355 0.114134
  579 +2013.679167 0.113768
  580 +2015.607978 0.11359
  581 +2017.53679 0.113511
  582 +2019.465601 0.113379
  583 +2021.394413 0.113442
  584 +2023.323224 0.113706
  585 +2025.252036 0.114022
  586 +2027.180847 0.114388
  587 +2029.109658 0.114717
  588 +2031.03847 0.114901
  589 +2032.967281 0.114965
  590 +2034.896093 0.115033
  591 +2036.824904 0.115173
  592 +2038.753716 0.115357
  593 +2040.682527 0.115465
  594 +2042.611339 0.115548
  595 +2044.54015 0.115773
  596 +2046.468962 0.116096
  597 +2048.397773 0.116457
  598 +2050.326585 0.11686
  599 +2052.255396 0.117286
  600 +2054.184207 0.117697
  601 +2056.113019 0.11799
  602 +2058.04183 0.118142
  603 +2059.970642 0.118333
  604 +2061.899453 0.118544
  605 +2063.828265 0.118669
  606 +2065.757076 0.118798
  607 +2067.685888 0.119036
  608 +2069.614699 0.119321
  609 +2071.543511 0.119443
  610 +2073.472322 0.119571
  611 +2075.401134 0.119765
  612 +2077.329945 0.119856
  613 +2079.258756 0.12003
  614 +2081.187568 0.120261
  615 +2083.116379 0.120473
  616 +2085.045191 0.120706
  617 +2086.974002 0.120945
  618 +2088.902814 0.121293
  619 +2090.831625 0.121745
  620 +2092.760437 0.122188
  621 +2094.689248 0.122528
  622 +2096.61806 0.122864
  623 +2098.546871 0.12338
  624 +2100.475683 0.123921
  625 +2102.404494 0.12433
  626 +2104.333305 0.124752
  627 +2106.262117 0.125216
  628 +2108.190928 0.125629
  629 +2110.11974 0.126068
  630 +2112.048551 0.126586
  631 +2113.977363 0.127033
  632 +2115.906174 0.127327
  633 +2117.834986 0.127651
  634 +2119.763797 0.128046
  635 +2121.692609 0.128417
  636 +2123.62142 0.128735
  637 +2125.550232 0.128931
  638 +2127.479043 0.129081
  639 +2129.407854 0.129399
  640 +2131.336666 0.129826
  641 +2133.265477 0.130184
  642 +2135.194289 0.130585
  643 +2137.1231 0.131051
  644 +2139.051912 0.131452
  645 +2140.980723 0.131866
  646 +2142.909535 0.132322
  647 +2144.838346 0.132709
  648 +2146.767158 0.133002
  649 +2148.695969 0.133256
  650 +2150.624781 0.133439
  651 +2152.553592 0.133691
  652 +2154.482404 0.134037
  653 +2156.411215 0.134244
  654 +2158.340026 0.134446
  655 +2160.268838 0.134624
  656 +2162.197649 0.134692
  657 +2164.126461 0.134876
  658 +2166.055272 0.135194
  659 +2167.984084 0.135596
  660 +2169.912895 0.136069
  661 +2171.841707 0.136522
  662 +2173.770518 0.136875
  663 +2175.69933 0.137345
  664 +2177.628141 0.138167
  665 +2179.556953 0.139162
  666 +2181.485764 0.140071
  667 +2183.414575 0.1408
  668 +2185.343387 0.141255
  669 +2187.272198 0.141298
  670 +2189.20101 0.141049
  671 +2191.129821 0.14076
  672 +2193.058633 0.140542
  673 +2194.987444 0.14043
  674 +2196.916256 0.14046
  675 +2198.845067 0.140652
  676 +2200.773879 0.140877
  677 +2202.70269 0.141177
  678 +2204.631502 0.141823
  679 +2206.560313 0.142721
  680 +2208.489124 0.143428
  681 +2210.417936 0.143859
  682 +2212.346747 0.144136
  683 +2214.275559 0.144284
  684 +2216.20437 0.144371
  685 +2218.133182 0.14446
  686 +2220.061993 0.144749
  687 +2221.990805 0.14516
  688 +2223.919616 0.145514
  689 +2225.848428 0.145954
  690 +2227.777239 0.146458
  691 +2229.706051 0.146915
  692 +2231.634862 0.147219
  693 +2233.563673 0.147547
  694 +2235.492485 0.14805
  695 +2237.421296 0.148552
  696 +2239.350108 0.149096
  697 +2241.278919 0.149705
  698 +2243.207731 0.150462
  699 +2245.136542 0.151414
  700 +2247.065354 0.152388
  701 +2248.994165 0.153342
  702 +2250.922977 0.154234
  703 +2252.851788 0.154944
  704 +2254.7806 0.155397
  705 +2256.709411 0.155562
  706 +2258.638222 0.155398
  707 +2260.567034 0.155148
  708 +2262.495845 0.154919
  709 +2264.424657 0.154622
  710 +2266.353468 0.154399
  711 +2268.28228 0.154044
  712 +2270.211091 0.153605
  713 +2272.139903 0.153435
  714 +2274.068714 0.153447
  715 +2275.997526 0.153611
  716 +2277.926337 0.153907
  717 +2279.855149 0.154279
  718 +2281.78396 0.154837
  719 +2283.712771 0.155643
  720 +2285.641583 0.156634
  721 +2287.570394 0.157822
  722 +2289.499206 0.159261
  723 +2291.428017 0.160673
  724 +2293.356829 0.161805
  725 +2295.28564 0.162821
  726 +2297.214452 0.163992
  727 +2299.143263 0.165372
  728 +2301.072075 0.166928
  729 +2303.000886 0.168824
  730 +2304.929698 0.171254
  731 +2306.858509 0.174292
  732 +2308.78732 0.177547
  733 +2310.716132 0.179742
  734 +2312.644943 0.17986
  735 +2314.573755 0.178195
  736 +2316.502566 0.175897
  737 +2318.431378 0.174145
  738 +2320.360189 0.173305
  739 +2322.289001 0.173397
  740 +2324.217812 0.174666
  741 +2326.146624 0.177102
  742 +2328.075435 0.180741
  743 +2330.004247 0.185733
  744 +2331.933058 0.191719
  745 +2333.86187 0.197679
  746 +2335.790681 0.201897
  747 +2337.719492 0.202656
  748 +2339.648304 0.200019
  749 +2341.577115 0.195394
  750 +2343.505927 0.18993
  751 +2345.434738 0.184271
  752 +2347.36355 0.17885
  753 +2349.292361 0.175881
  754 +2351.221173 0.17721
  755 +2353.149984 0.181051
  756 +2355.078796 0.185152
  757 +2357.007607 0.188466
  758 +2358.936419 0.19061
  759 +2360.86523 0.191621
  760 +2362.794041 0.191254
  761 +2364.722853 0.189712
  762 +2366.651664 0.187154
  763 +2368.580476 0.183936
  764 +2370.509287 0.180617
  765 +2372.438099 0.177401
  766 +2374.36691 0.174623
  767 +2376.295722 0.172417
  768 +2378.224533 0.17078
  769 +2380.153345 0.169606
  770 +2382.082156 0.168838
  771 +2384.010968 0.168405
  772 +2385.939779 0.168107
  773 +2387.86859 0.167967
  774 +2389.797402 0.167976
  775 +2391.726213 0.168171
  776 +2393.655025 0.168357
  777 +2395.583836 0.168372
  778 +2397.512648 0.168458
  779 +2399.441459 0.168707
  780 +2401.370271 0.168968
  781 +2403.299082 0.16905
  782 +2405.227894 0.169069
  783 +2407.156705 0.169168
  784 +2409.085517 0.169362
  785 +2411.014328 0.169469
  786 +2412.943139 0.169276
  787 +2414.871951 0.169003
  788 +2416.800762 0.168762
  789 +2418.729574 0.168597
  790 +2420.658385 0.168553
  791 +2422.587197 0.168569
  792 +2424.516008 0.168771
  793 +2426.44482 0.169129
  794 +2428.373631 0.169535
  795 +2430.302443 0.169982
  796 +2432.231254 0.170372
  797 +2434.160066 0.170749
  798 +2436.088877 0.171109
  799 +2438.017688 0.171304
  800 +2439.9465 0.171559
  801 +2441.875311 0.171954
  802 +2443.804123 0.172252
  803 +2445.732934 0.172533
  804 +2447.661746 0.172919
  805 +2449.590557 0.173285
  806 +2451.519369 0.173546
  807 +2453.44818 0.173746
  808 +2455.376992 0.17378
  809 +2457.305803 0.173798
  810 +2459.234615 0.173936
  811 +2461.163426 0.174041
  812 +2463.092237 0.174331
  813 +2465.021049 0.174773
  814 +2466.94986 0.17525
  815 +2468.878672 0.175969
  816 +2470.807483 0.1769
  817 +2472.736295 0.177884
  818 +2474.665106 0.178806
  819 +2476.593918 0.179689
  820 +2478.522729 0.18058
  821 +2480.451541 0.181513
  822 +2482.380352 0.182431
  823 +2484.309164 0.183214
  824 +2486.237975 0.183838
  825 +2488.166786 0.184415
  826 +2490.095598 0.185024
  827 +2492.024409 0.185536
  828 +2493.953221 0.186041
  829 +2495.882032 0.186511
  830 +2497.810844 0.186784
  831 +2499.739655 0.187141
  832 +2501.668467 0.187968
  833 +2503.597278 0.189047
  834 +2505.52609 0.18986
  835 +2507.454901 0.190469
  836 +2509.383713 0.19085
  837 +2511.312524 0.191022
  838 +2513.241336 0.19108
  839 +2515.170147 0.19102
  840 +2517.098958 0.191158
  841 +2519.02777 0.191464
  842 +2520.956581 0.191788
  843 +2522.885393 0.191736
  844 +2524.814204 0.191262
  845 +2526.743016 0.190801
  846 +2528.671827 0.190289
  847 +2530.600639 0.189953
  848 +2532.52945 0.189923
  849 +2534.458262 0.190123
  850 +2536.387073 0.190408
  851 +2538.315885 0.190636
  852 +2540.244696 0.191161
  853 +2542.173507 0.191933
  854 +2544.102319 0.192745
  855 +2546.03113 0.193325
  856 +2547.959942 0.193318
  857 +2549.888753 0.193002
  858 +2551.817565 0.192718
  859 +2553.746376 0.192498
  860 +2555.675188 0.1924
  861 +2557.603999 0.192423
  862 +2559.532811 0.192543
  863 +2561.461622 0.192815
  864 +2563.390434 0.193051
  865 +2565.319245 0.193201
  866 +2567.248056 0.193367
  867 +2569.176868 0.193569
  868 +2571.105679 0.193981
  869 +2573.034491 0.194771
  870 +2574.963302 0.196257
  871 +2576.892114 0.198574
  872 +2578.820925 0.201146
  873 +2580.749737 0.202697
  874 +2582.678548 0.202301
  875 +2584.60736 0.200499
  876 +2586.536171 0.198662
  877 +2588.464983 0.197755
  878 +2590.393794 0.197753
  879 +2592.322605 0.198564
  880 +2594.251417 0.200231
  881 +2596.180228 0.202582
  882 +2598.10904 0.205336
  883 +2600.037851 0.207771
  884 +2601.966663 0.209284
  885 +2603.895474 0.209494
  886 +2605.824286 0.208434
  887 +2607.753097 0.206518
  888 +2609.681909 0.204271
  889 +2611.61072 0.202505
  890 +2613.539532 0.201388
  891 +2615.468343 0.20087
  892 +2617.397154 0.200874
  893 +2619.325966 0.20132
  894 +2621.254777 0.20257
  895 +2623.183589 0.204249
  896 +2625.1124 0.206349
  897 +2627.041212 0.209383
  898 +2628.970023 0.212561
  899 +2630.898835 0.214577
  900 +2632.827646 0.214551
  901 +2634.756458 0.212755
  902 +2636.685269 0.21033
  903 +2638.614081 0.208151
  904 +2640.542892 0.206805
  905 +2642.471703 0.206382
  906 +2644.400515 0.206505
  907 +2646.329326 0.206569
  908 +2648.258138 0.206509
  909 +2650.186949 0.206611
  910 +2652.115761 0.206585
  911 +2654.044572 0.206457
  912 +2655.973384 0.206433
  913 +2657.902195 0.20652
  914 +2659.831007 0.206635
  915 +2661.759818 0.206556
  916 +2663.68863 0.206633
  917 +2665.617441 0.207076
  918 +2667.546253 0.207667
  919 +2669.475064 0.208329
  920 +2671.403875 0.20878
  921 +2673.332687 0.208903
  922 +2675.261498 0.209098
  923 +2677.19031 0.20965
  924 +2679.119121 0.210366
  925 +2681.047933 0.211134
  926 +2682.976744 0.211863
  927 +2684.905556 0.212134
  928 +2686.834367 0.212008
  929 +2688.763179 0.211882
  930 +2690.69199 0.211709
  931 +2692.620802 0.21151
  932 +2694.549613 0.211354
  933 +2696.478424 0.21121
  934 +2698.407236 0.211133
  935 +2700.336047 0.211036
  936 +2702.264859 0.21097
  937 +2704.19367 0.210949
  938 +2706.122482 0.211134
  939 +2708.051293 0.211489
  940 +2709.980105 0.211672
  941 +2711.908916 0.21201
  942 +2713.837728 0.212475
  943 +2715.766539 0.212949
  944 +2717.695351 0.21329
  945 +2719.624162 0.21325
  946 +2721.552973 0.213415
  947 +2723.481785 0.213619
  948 +2725.410596 0.213512
  949 +2727.339408 0.213249
  950 +2729.268219 0.212902
  951 +2731.197031 0.212687
  952 +2733.125842 0.212272
  953 +2735.054654 0.211618
  954 +2736.983465 0.211068
  955 +2738.912277 0.210601
  956 +2740.841088 0.210235
  957 +2742.7699 0.210209
  958 +2744.698711 0.210417
  959 +2746.627522 0.210385
  960 +2748.556334 0.210534
  961 +2750.485145 0.211143
  962 +2752.413957 0.211694
  963 +2754.342768 0.21216
  964 +2756.27158 0.212735
  965 +2758.200391 0.213578
  966 +2760.129203 0.214508
  967 +2762.058014 0.215202
  968 +2763.986826 0.21594
  969 +2765.915637 0.216926
  970 +2767.844449 0.218196
  971 +2769.77326 0.219802
  972 +2771.702071 0.221598
  973 +2773.630883 0.223649
  974 +2775.559694 0.225961
  975 +2777.488506 0.228074
  976 +2779.417317 0.229335
  977 +2781.346129 0.229735
  978 +2783.27494 0.229882
  979 +2785.203752 0.22995
  980 +2787.132563 0.230202
  981 +2789.061375 0.230892
  982 +2790.990186 0.231852
  983 +2792.918998 0.233036
  984 +2794.847809 0.234589
  985 +2796.77662 0.236532
  986 +2798.705432 0.238525
  987 +2800.634243 0.240706
  988 +2802.563055 0.243102
  989 +2804.491866 0.245332
  990 +2806.420678 0.247576
  991 +2808.349489 0.249618
  992 +2810.278301 0.251003
  993 +2812.207112 0.252009
  994 +2814.135924 0.253037
  995 +2816.064735 0.254085
  996 +2817.993547 0.255422
  997 +2819.922358 0.257341
  998 +2821.851169 0.259794
  999 +2823.779981 0.263176
  1000 +2825.708792 0.267807
  1001 +2827.637604 0.27419
  1002 +2829.566415 0.283196
  1003 +2831.495227 0.296172
  1004 +2833.424038 0.315686
  1005 +2835.35285 0.344361
  1006 +2837.281661 0.384354
  1007 +2839.210473 0.436541
  1008 +2841.139284 0.498027
  1009 +2843.068096 0.561707
  1010 +2844.996907 0.618233
  1011 +2846.925719 0.658652
  1012 +2848.85453 0.679409
  1013 +2850.783341 0.68151
  1014 +2852.712153 0.667253
  1015 +2854.640964 0.641157
  1016 +2856.569776 0.607785
  1017 +2858.498587 0.571429
  1018 +2860.427399 0.535204
  1019 +2862.35621 0.501943
  1020 +2864.285022 0.475122
  1021 +2866.213833 0.455775
  1022 +2868.142645 0.443466
  1023 +2870.071456 0.43825
  1024 +2872.000268 0.439521
  1025 +2873.929079 0.446169
  1026 +2875.85789 0.456948
  1027 +2877.786702 0.470209
  1028 +2879.715513 0.484989
  1029 +2881.644325 0.500983
  1030 +2883.573136 0.517427
  1031 +2885.501948 0.533856
  1032 +2887.430759 0.550845
  1033 +2889.359571 0.569251
  1034 +2891.288382 0.589674
  1035 +2893.217194 0.613596
  1036 +2895.146005 0.641645
  1037 +2897.074817 0.673848
  1038 +2899.003628 0.711088
  1039 +2900.932439 0.751862
  1040 +2902.861251 0.793443
  1041 +2904.790062 0.833036
  1042 +2906.718874 0.870131
  1043 +2908.647685 0.905128
  1044 +2910.576497 0.936179
  1045 +2912.505308 0.96319
  1046 +2914.43412 0.985373
  1047 +2916.362931 1.003475
  1048 +2918.291743 1.016608
  1049 +2920.220554 1.024552
  1050 +2922.149366 1.030211
  1051 +2924.078177 1.031873
  1052 +2926.006988 1.030041
  1053 +2927.9358 1.024755
  1054 +2929.864611 1.01501
  1055 +2931.793423 0.998587
  1056 +2933.722234 0.972668
  1057 +2935.651046 0.937253
  1058 +2937.579857 0.893389
  1059 +2939.508669 0.843892
  1060 +2941.43748 0.790927
  1061 +2943.366292 0.737193
  1062 +2945.295103 0.683793
  1063 +2947.223915 0.632823
  1064 +2949.152726 0.586355
  1065 +2951.081537 0.544135
  1066 +2953.010349 0.507495
  1067 +2954.93916 0.475596
  1068 +2956.867972 0.447569
  1069 +2958.796783 0.423856
  1070 +2960.725595 0.403321
  1071 +2962.654406 0.385648
  1072 +2964.583218 0.370736
  1073 +2966.512029 0.358245
  1074 +2968.440841 0.348571
  1075 +2970.369652 0.341879
  1076 +2972.298464 0.337982
  1077 +2974.227275 0.336502
  1078 +2976.156086 0.335731
  1079 +2978.084898 0.333503
  1080 +2980.013709 0.329817
  1081 +2981.942521 0.326341
  1082 +2983.871332 0.324608
  1083 +2985.800144 0.325078
  1084 +2987.728955 0.328491
  1085 +2989.657767 0.335994
  1086 +2991.586578 0.349101
  1087 +2993.51539 0.370721
  1088 +2995.444201 0.403891
  1089 +2997.373013 0.448325
  1090 +2999.301824 0.49167
  1091 +3001.230635 0.513568
  1092 +3003.159447 0.507323
  1093 +3005.088258 0.485496
  1094 +3007.01707 0.465665
  1095 +3008.945881 0.458921
  1096 +3010.874693 0.469955
  1097 +3012.803504 0.500276
  1098 +3014.732316 0.551436
  1099 +3016.661127 0.626723
  1100 +3018.589939 0.726168
  1101 +3020.51875 0.839311
  1102 +3022.447562 0.940348
  1103 +3024.376373 1.003036
  1104 +3026.305185 1.023267
  1105 +3028.233996 1.007083
  1106 +3030.162807 0.956869
  1107 +3032.091619 0.877489
  1108 +3034.02043 0.786078
  1109 +3035.949242 0.702611
  1110 +3037.878053 0.63608
  1111 +3039.806865 0.586712
  1112 +3041.735676 0.55271
  1113 +3043.664488 0.533079
  1114 +3045.593299 0.527991
  1115 +3047.522111 0.537437
  1116 +3049.450922 0.559581
  1117 +3051.379734 0.592104
  1118 +3053.308545 0.635706
  1119 +3055.237356 0.691724
  1120 +3057.166168 0.751354
  1121 +3059.094979 0.793975
  1122 +3061.023791 0.800709
  1123 +3062.952602 0.768546
  1124 +3064.881414 0.711666
  1125 +3066.810225 0.6495
  1126 +3068.739037 0.597714
  1127 +3070.667848 0.563478
  1128 +3072.59666 0.546634
  1129 +3074.525471 0.547037
  1130 +3076.454283 0.566624
  1131 +3078.383094 0.605132
  1132 +3080.311905 0.650679
  1133 +3082.240717 0.675797
  1134 +3084.169528 0.657847
  1135 +3086.09834 0.601596
  1136 +3088.027151 0.531414
  1137 +3089.955963 0.469621
  1138 +3091.884774 0.4255
  1139 +3093.813586 0.39929
  1140 +3095.742397 0.388242
  1141 +3097.671209 0.388808
  1142 +3099.60002 0.396983
  1143 +3101.528832 0.406444
  1144 +3103.457643 0.408685
  1145 +3105.386454 0.398199
  1146 +3107.315266 0.376667
  1147 +3109.244077 0.350701
  1148 +3111.172889 0.326748
  1149 +3113.1017 0.307953
  1150 +3115.030512 0.293916
  1151 +3116.959323 0.283324
  1152 +3118.888135 0.275449
  1153 +3120.816946 0.269777
  1154 +3122.745758 0.265618
  1155 +3124.674569 0.26233
  1156 +3126.603381 0.260145
  1157 +3128.532192 0.258629
  1158 +3130.461003 0.257142
  1159 +3132.389815 0.255911
  1160 +3134.318626 0.254784
  1161 +3136.247438 0.254084
  1162 +3138.176249 0.253781
  1163 +3140.105061 0.253515
  1164 +3142.033872 0.253558
  1165 +3143.962684 0.253668
  1166 +3145.891495 0.253615
  1167 +3147.820307 0.253611
  1168 +3149.749118 0.25411
  1169 +3151.67793 0.254765
  1170 +3153.606741 0.255316
  1171 +3155.535552 0.256769
  1172 +3157.464364 0.259264
  1173 +3159.393175 0.262176
  1174 +3161.321987 0.264613
  1175 +3163.250798 0.265147
  1176 +3165.17961 0.263051
  1177 +3167.108421 0.259509
  1178 +3169.037233 0.256449
  1179 +3170.966044 0.254302
  1180 +3172.894856 0.252767
  1181 +3174.823667 0.25166
  1182 +3176.752479 0.251085
  1183 +3178.68129 0.251061
  1184 +3180.610102 0.25123
  1185 +3182.538913 0.251486
  1186 +3184.467724 0.251497
  1187 +3186.396536 0.251189
  1188 +3188.325347 0.250996
  1189 +3190.254159 0.251151
  1190 +3192.18297 0.251305
  1191 +3194.111782 0.251456
  1192 +3196.040593 0.252199
  1193 +3197.969405 0.252932
  1194 +3199.898216 0.253134
  1195 +3201.827028 0.253039
  1196 +3203.755839 0.252719
  1197 +3205.684651 0.252311
  1198 +3207.613462 0.251783
  1199 +3209.542273 0.251237
  1200 +3211.471085 0.250747
  1201 +3213.399896 0.250256
  1202 +3215.328708 0.249763
  1203 +3217.257519 0.249408
  1204 +3219.186331 0.249207
  1205 +3221.115142 0.249078
  1206 +3223.043954 0.249008
  1207 +3224.972765 0.248706
  1208 +3226.901577 0.248731
  1209 +3228.830388 0.249071
  1210 +3230.7592 0.249003
  1211 +3232.688011 0.249042
  1212 +3234.616822 0.249081
  1213 +3236.545634 0.249047
  1214 +3238.474445 0.249236
  1215 +3240.403257 0.249073
  1216 +3242.332068 0.248752
  1217 +3244.26088 0.248831
  1218 +3246.189691 0.249126
  1219 +3248.118503 0.249288
  1220 +3250.047314 0.249432
  1221 +3251.976126 0.249651
  1222 +3253.904937 0.249615
  1223 +3255.833749 0.249736
  1224 +3257.76256 0.250085
  1225 +3259.691371 0.250079
  1226 +3261.620183 0.250027
  1227 +3263.548994 0.249888
  1228 +3265.477806 0.24964
  1229 +3267.406617 0.249626
  1230 +3269.335429 0.249694
  1231 +3271.26424 0.249807
  1232 +3273.193052 0.249828
  1233 +3275.121863 0.249878
  1234 +3277.050675 0.249895
  1235 +3278.979486 0.249785
  1236 +3280.908298 0.249808
  1237 +3282.837109 0.249813
  1238 +3284.76592 0.249789
  1239 +3286.694732 0.249659
  1240 +3288.623543 0.249551
  1241 +3290.552355 0.249511
  1242 +3292.481166 0.249615
  1243 +3294.409978 0.249728
  1244 +3296.338789 0.249376
  1245 +3298.267601 0.249414
  1246 +3300.196412 0.249722
  1247 +3302.125224 0.249944
  1248 +3304.054035 0.250497
  1249 +3305.982847 0.250587
  1250 +3307.911658 0.250259
  1251 +3309.840469 0.250169
  1252 +3311.769281 0.250324
  1253 +3313.698092 0.250552
  1254 +3315.626904 0.250761
  1255 +3317.555715 0.250865
  1256 +3319.484527 0.250767
  1257 +3321.413338 0.250802
  1258 +3323.34215 0.251016
  1259 +3325.270961 0.251139
  1260 +3327.199773 0.251185
  1261 +3329.128584 0.251276
  1262 +3331.057396 0.251407
  1263 +3332.986207 0.25179
  1264 +3334.915018 0.252033
  1265 +3336.84383 0.251727
  1266 +3338.772641 0.251556
  1267 +3340.701453 0.251753
  1268 +3342.630264 0.252262
  1269 +3344.559076 0.252683
  1270 +3346.487887 0.252646
  1271 +3348.416699 0.252296
  1272 +3350.34551 0.25207
  1273 +3352.274322 0.252352
  1274 +3354.203133 0.252539
  1275 +3356.131945 0.252763
  1276 +3358.060756 0.253006
  1277 +3359.989568 0.252986
  1278 +3361.918379 0.253007
  1279 +3363.84719 0.252939
  1280 +3365.776002 0.25309
  1281 +3367.704813 0.253287
  1282 +3369.633625 0.253479
  1283 +3371.562436 0.253799
  1284 +3373.491248 0.254206
  1285 +3375.420059 0.254653
  1286 +3377.348871 0.25457
  1287 +3379.277682 0.254679
  1288 +3381.206494 0.255121
  1289 +3383.135305 0.255261
  1290 +3385.064117 0.255358
  1291 +3386.992928 0.255286
  1292 +3388.921739 0.255274
  1293 +3390.850551 0.255694
  1294 +3392.779362 0.255877
  1295 +3394.708174 0.255563
  1296 +3396.636985 0.255615
  1297 +3398.565797 0.255856
  1298 +3400.494608 0.25586
  1299 +3402.42342 0.256101
  1300 +3404.352231 0.25634
  1301 +3406.281043 0.256481
  1302 +3408.209854 0.256665
  1303 +3410.138666 0.256483
  1304 +3412.067477 0.256245
  1305 +3413.996288 0.256456
  1306 +3415.9251 0.256582
  1307 +3417.853911 0.256522
  1308 +3419.782723 0.256677
  1309 +3421.711534 0.256881
  1310 +3423.640346 0.257059
  1311 +3425.569157 0.257258
  1312 +3427.497969 0.25749
  1313 +3429.42678 0.257935
  1314 +3431.355592 0.258744
  1315 +3433.284403 0.259481
  1316 +3435.213215 0.260036
  1317 +3437.142026 0.260535
  1318 +3439.070837 0.260679
  1319 +3440.999649 0.260811
  1320 +3442.92846 0.260901
  1321 +3444.857272 0.260856
  1322 +3446.786083 0.260984
  1323 +3448.714895 0.260841
  1324 +3450.643706 0.260145
  1325 +3452.572518 0.259617
  1326 +3454.501329 0.259693
  1327 +3456.430141 0.259702
  1328 +3458.358952 0.259525
  1329 +3460.287764 0.259429
  1330 +3462.216575 0.259422
  1331 +3464.145386 0.259446
  1332 +3466.074198 0.259472
  1333 +3468.003009 0.259609
  1334 +3469.931821 0.259817
  1335 +3471.860632 0.259894
  1336 +3473.789444 0.259374
  1337 +3475.718255 0.258983
  1338 +3477.647067 0.259068
  1339 +3479.575878 0.259013
  1340 +3481.50469 0.259009
  1341 +3483.433501 0.258929
  1342 +3485.362313 0.258826
  1343 +3487.291124 0.258528
  1344 +3489.219935 0.258262
  1345 +3491.148747 0.258164
  1346 +3493.077558 0.257725
  1347 +3495.00637 0.257706
  1348 +3496.935181 0.257967
  1349 +3498.863993 0.257689
  1350 +3500.792804 0.257153
  1351 +3502.721616 0.257073
  1352 +3504.650427 0.257325
  1353 +3506.579239 0.257281
  1354 +3508.50805 0.256852
  1355 +3510.436862 0.256399
  1356 +3512.365673 0.256466
  1357 +3514.294484 0.256362
  1358 +3516.223296 0.25611
  1359 +3518.152107 0.256116
  1360 +3520.080919 0.256034
  1361 +3522.00973 0.256203
  1362 +3523.938542 0.256201
  1363 +3525.867353 0.255988
  1364 +3527.796165 0.255956
  1365 +3529.724976 0.255846
  1366 +3531.653788 0.255404
  1367 +3533.582599 0.254767
  1368 +3535.511411 0.254451
  1369 +3537.440222 0.2543
  1370 +3539.369034 0.254254
  1371 +3541.297845 0.254355
  1372 +3543.226656 0.254244
  1373 +3545.155468 0.254172
  1374 +3547.084279 0.254359
  1375 +3549.013091 0.254317
  1376 +3550.941902 0.254242
  1377 +3552.870714 0.254103
  1378 +3554.799525 0.253573
  1379 +3556.728337 0.253407
  1380 +3558.657148 0.25348
  1381 +3560.58596 0.253492
  1382 +3562.514771 0.253358
  1383 +3564.443583 0.253551
  1384 +3566.372394 0.254747
  1385 +3568.301205 0.255163
  1386 +3570.230017 0.25428
  1387 +3572.158828 0.253699
  1388 +3574.08764 0.253773
  1389 +3576.016451 0.254271
  1390 +3577.945263 0.25483
  1391 +3579.874074 0.254679
  1392 +3581.802886 0.254425
  1393 +3583.731697 0.255135
  1394 +3585.660509 0.256356
  1395 +3587.58932 0.257263
  1396 +3589.518132 0.256772
  1397 +3591.446943 0.255803
  1398 +3593.375754 0.255819
  1399 +3595.304566 0.256054
  1400 +3597.233377 0.255773
  1401 +3599.162189 0.25528
  1402 +3601.091 0.255251
  1403 +3603.019812 0.254996
  1404 +3604.948623 0.255051
  1405 +3606.877435 0.256482
  1406 +3608.806246 0.257963
  1407 +3610.735058 0.258522
  1408 +3612.663869 0.259151
  1409 +3614.592681 0.26058
  1410 +3616.521492 0.262244
  1411 +3618.450303 0.264738
  1412 +3620.379115 0.265618
  1413 +3622.307926 0.26391
  1414 +3624.236738 0.262285
  1415 +3626.165549 0.26115
  1416 +3628.094361 0.262381
  1417 +3630.023172 0.262429
  1418 +3631.951984 0.259598
  1419 +3633.880795 0.258709
  1420 +3635.809607 0.258965
  1421 +3637.738418 0.260228
  1422 +3639.66723 0.262695
  1423 +3641.596041 0.265404
  1424 +3643.524852 0.26818
  1425 +3645.453664 0.270802
  1426 +3647.382475 0.27363
  1427 +3649.311287 0.274622
  1428 +3651.240098 0.271483
  1429 +3653.16891 0.266054
  1430 +3655.097721 0.263491
  1431 +3657.026533 0.261932
  1432 +3658.955344 0.258654
  1433 +3660.884156 0.256573
  1434 +3662.812967 0.254977
  1435 +3664.741779 0.253986
  1436 +3666.67059 0.253401
  1437 +3668.599401 0.254312
  1438 +3670.528213 0.256004
  1439 +3672.457024 0.254381
  1440 +3674.385836 0.254559
  1441 +3676.314647 0.255483
  1442 +3678.243459 0.252471
  1443 +3680.17227 0.249771
  1444 +3682.101082 0.248125
  1445 +3684.029893 0.246623
  1446 +3685.958705 0.246366
  1447 +3687.887516 0.248095
  1448 +3689.816328 0.248218
  1449 +3691.745139 0.245389
  1450 +3693.673951 0.243725
  1451 +3695.602762 0.243162
  1452 +3697.531573 0.243436
  1453 +3699.460385 0.244072
  1454 +3701.389196 0.244301
  1455 +3703.318008 0.24342
  1456 +3705.246819 0.2412
  1457 +3707.175631 0.240421
  1458 +3709.104442 0.240497
  1459 +3711.033254 0.241228
  1460 +3712.962065 0.24115
  1461 +3714.890877 0.239598
  1462 +3716.819688 0.23986
  1463 +3718.7485 0.24061
  1464 +3720.677311 0.241384
  1465 +3722.606122 0.241321
  1466 +3724.534934 0.240372
  1467 +3726.463745 0.239636
  1468 +3728.392557 0.237948
  1469 +3730.321368 0.23778
  1470 +3732.25018 0.238936
  1471 +3734.178991 0.239709
  1472 +3736.107803 0.239734
  1473 +3738.036614 0.238466
  1474 +3739.965426 0.236643
  1475 +3741.894237 0.237455
  1476 +3743.823049 0.242549
  1477 +3745.75186 0.2433
  1478 +3747.680671 0.240203
  1479 +3749.609483 0.241657
  1480 +3751.538294 0.243012
  1481 +3753.467106 0.240684
  1482 +3755.395917 0.238131
  1483 +3757.324729 0.237837
  1484 +3759.25354 0.23892
  1485 +3761.182352 0.23859
  1486 +3763.111163 0.237856
  1487 +3765.039975 0.238135
  1488 +3766.968786 0.238153
  1489 +3768.897598 0.238484
  1490 +3770.826409 0.238652
  1491 +3772.75522 0.237498
  1492 +3774.684032 0.237079
  1493 +3776.612843 0.237217
  1494 +3778.541655 0.237599
  1495 +3780.470466 0.23797
  1496 +3782.399278 0.237532
  1497 +3784.328089 0.237757
  1498 +3786.256901 0.238346
  1499 +3788.185712 0.238503
  1500 +3790.114524 0.238668
  1501 +3792.043335 0.239108
  1502 +3793.972147 0.239609
  1503 +3795.900958 0.24104
  1504 +3797.829769 0.241815
  1505 +3799.758581 0.243009
  1506 +3801.687392 0.24618
  1507 +3803.616204 0.244929
  1508 +3805.545015 0.243843
  1509 +3807.473827 0.244824
  1510 +3809.402638 0.243046
  1511 +3811.33145 0.242455
  1512 +3813.260261 0.242738
  1513 +3815.189073 0.24515
  1514 +3817.117884 0.246156
  1515 +3819.046696 0.244228
  1516 +3820.975507 0.245432
  1517 +3822.904318 0.244765
  1518 +3824.83313 0.242847
  1519 +3826.761941 0.242498
  1520 +3828.690753 0.241547
  1521 +3830.619564 0.241577
  1522 +3832.548376 0.242268
  1523 +3834.477187 0.242685
  1524 +3836.405999 0.243988
  1525 +3838.33481 0.245163
  1526 +3840.263622 0.24324
  1527 +3842.192433 0.241368
  1528 +3844.121245 0.240875
  1529 +3846.050056 0.239652
  1530 +3847.978867 0.239064
  1531 +3849.907679 0.239793
  1532 +3851.83649 0.244034
  1533 +3853.765302 0.248298
  1534 +3855.694113 0.24531
  1535 +3857.622925 0.240264
  1536 +3859.551736 0.239155
  1537 +3861.480548 0.239752
  1538 +3863.409359 0.240839
  1539 +3865.338171 0.241668
  1540 +3867.266982 0.241459
  1541 +3869.195794 0.242998
  1542 +3871.124605 0.243305
  1543 +3873.053417 0.241417
  1544 +3874.982228 0.24086
  1545 +3876.911039 0.239827
  1546 +3878.839851 0.240324
  1547 +3880.768662 0.241877
  1548 +3882.697474 0.241282
  1549 +3884.626285 0.241929
  1550 +3886.555097 0.242656
  1551 +3888.483908 0.241613
  1552 +3890.41272 0.242198
  1553 +3892.341531 0.24312
  1554 +3894.270343 0.242116
  1555 +3896.199154 0.241481
  1556 +3898.127966 0.242428
  1557 +3900.056777 0.243632
  1558 +3901.985588 0.244157
  1559 +3903.9144 0.244304
  1560 +3905.843211 0.243462
  1561 +3907.772023 0.242105
  1562 +3909.700834 0.241705
  1563 +3911.629646 0.24168
  1564 +3913.558457 0.242043
  1565 +3915.487269 0.242775
  1566 +3917.41608 0.243375
  1567 +3919.344892 0.243552
  1568 +3921.273703 0.243481
  1569 +3923.202515 0.244007
  1570 +3925.131326 0.244584
  1571 +3927.060137 0.244901
  1572 +3928.988949 0.245435
  1573 +3930.91776 0.246559
  1574 +3932.846572 0.247214
  1575 +3934.775383 0.246821
  1576 +3936.704195 0.24683
  1577 +3938.633006 0.24675
  1578 +3940.561818 0.246403
  1579 +3942.490629 0.24631
  1580 +3944.419441 0.245622
  1581 +3946.348252 0.244668
  1582 +3948.277064 0.244235
  1583 +3950.205875 0.244027
  1584 +3952.134686 0.243988
  1585 +3954.063498 0.244113
  1586 +3955.992309 0.24393
  1587 +3957.921121 0.243837
  1588 +3959.849932 0.244301
  1589 +3961.778744 0.244997
  1590 +3963.707555 0.24535
  1591 +3965.636367 0.245396
  1592 +3967.565178 0.24548
  1593 +3969.49399 0.2458
  1594 +3971.422801 0.24641
  1595 +3973.351613 0.246738
  1596 +3975.280424 0.247094
  1597 +3977.209235 0.247439
  1598 +3979.138047 0.247471
  1599 +3981.066858 0.247241
  1600 +3982.99567 0.246602
  1601 +3984.924481 0.24633
  1602 +3986.853293 0.246618
  1603 +3988.782104 0.247495
  1604 +3990.710916 0.248448
  1605 +3992.639727 0.249797
  1606 +3994.568539 0.251938
  1607 +3996.49735 0.253329
  1608 +3998.426162 0.25474
  1609 +4000.354973 0.256031
... ...
globals.h
... ... @@ -4,7 +4,7 @@
4 4 #include <vector>
5 5 #include <string>
6 6 #include <iostream>
7   -#include "PerformanceData.h"
  7 +#include "PerformanceData.h"
8 8 #include <complex>
9 9 using namespace std;
10 10  
... ... @@ -80,13 +80,17 @@ extern double cA;
80 80 extern vector<SpecPair> EtaK;
81 81 extern vector<SpecPair> EtaN;
82 82 extern bool applyMaterial;
83   -//extern vector<SpecPair> KMaterial;
84   -//extern vector<SpecPair> NMaterial;
85 83 extern vector<Material> MaterialList;
86 84 extern int currentMaterial;
87 85 void ChangeAbsorbance();
88 86 void SetMaterial();
89 87  
  88 +//source parameters
  89 +extern vector<SpecPair> SourceSpectrum;
  90 +extern vector<SpecPair> SourceResampled;
  91 +void ResampleSource(); //resample a source profile to match the sample points of the current material
  92 +extern bool useSourceSpectrum;
  93 +
90 94 //optical parameters
91 95 extern double cNAi;
92 96 extern double cNAo;
... ... @@ -102,13 +106,13 @@ extern int maxFitIter;
102 106 void EstimateMaterial();
103 107 extern double scaleI0;
104 108 extern double refSlope;
105   -
106   -
  109 +
  110 +
107 111 //distortion maps
108 112 double ComputeDistortion();
109   -void DistortionMap(float* distortionMap, int nSteps);
110   -
  113 +void DistortionMap(float* distortionMap, int nSteps);
  114 +
111 115  
112 116  
113 117  
114   -#endif
  118 +#endif
... ...
interactivemie.h
... ... @@ -5,19 +5,19 @@
5 5 #include <QDragEnterEvent>
6 6 #include <qfiledialog.h>
7 7 #include <qinputdialog.h>
8   -#include "ui_interactivemie.h"
  8 +#include "ui_interactivemie.h"
9 9 #include "qtDistortionDialog.h"
10   -#include "globals.h"
11   -
12   -extern qtDistortionDialog* distortionDialog;
13   -
  10 +#include "globals.h"
  11 +
  12 +extern qtDistortionDialog* distortionDialog;
  13 +
14 14 class InteractiveMie : public QMainWindow
15 15 {
16 16 Q_OBJECT
17 17  
18 18 public:
19 19 InteractiveMie(QWidget *parent = 0, Qt::WFlags flags = 0);
20   - ~InteractiveMie();
  20 + ~InteractiveMie();
21 21 void closeEvent(QCloseEvent *event);
22 22 bool updating;
23 23  
... ... @@ -290,8 +290,8 @@ public slots:
290 290 }
291 291 void on_btnDistortion_clicked(){
292 292 //ComputeDistortion();
293   - //DistortionMap();
294   - cout<<"Distortion"<<endl;
  293 + //DistortionMap();
  294 + cout<<"Distortion"<<endl;
295 295 distortionDialog->show();
296 296 }
297 297 void on_btnTimings_clicked(){
... ... @@ -332,6 +332,16 @@ public slots:
332 332 //add the new material to the combo box
333 333 refreshUI();
334 334 }
  335 + void on_mnuLoadSource_triggered(){
  336 + cout<<"Load source."<<endl;
  337 + }
  338 + void on_chkSourceSpectrum_clicked(bool b){
  339 +
  340 + useSourceSpectrum = b;
  341 + SimulateSpectrum();
  342 + UpdateDisplay();
  343 +
  344 + }
335 345  
336 346 void on_mnuSaveSim_triggered(){
337 347 //first load the imaginary part
... ...
interactivemie.ui
... ... @@ -6,8 +6,8 @@
6 6 <rect>
7 7 <x>0</x>
8 8 <y>0</y>
9   - <width>511</width>
10   - <height>525</height>
  9 + <width>502</width>
  10 + <height>607</height>
11 11 </rect>
12 12 </property>
13 13 <property name="acceptDrops">
... ... @@ -21,9 +21,9 @@
21 21 <property name="geometry">
22 22 <rect>
23 23 <x>20</x>
24   - <y>140</y>
  24 + <y>170</y>
25 25 <width>151</width>
26   - <height>181</height>
  26 + <height>161</height>
27 27 </rect>
28 28 </property>
29 29 <property name="title">
... ... @@ -154,8 +154,8 @@
154 154 <rect>
155 155 <x>20</x>
156 156 <y>10</y>
157   - <width>241</width>
158   - <height>131</height>
  157 + <width>261</width>
  158 + <height>151</height>
159 159 </rect>
160 160 </property>
161 161 <property name="title">
... ... @@ -164,7 +164,7 @@
164 164 <widget class="QLabel" name="label_7">
165 165 <property name="geometry">
166 166 <rect>
167   - <x>5</x>
  167 + <x>15</x>
168 168 <y>50</y>
169 169 <width>81</width>
170 170 <height>20</height>
... ... @@ -177,7 +177,7 @@
177 177 <widget class="QDoubleSpinBox" name="spinCondNAi">
178 178 <property name="geometry">
179 179 <rect>
180   - <x>90</x>
  180 + <x>110</x>
181 181 <y>20</y>
182 182 <width>62</width>
183 183 <height>22</height>
... ... @@ -193,7 +193,7 @@
193 193 <widget class="QLabel" name="label_6">
194 194 <property name="geometry">
195 195 <rect>
196   - <x>5</x>
  196 + <x>15</x>
197 197 <y>20</y>
198 198 <width>91</width>
199 199 <height>20</height>
... ... @@ -206,7 +206,7 @@
206 206 <widget class="QDoubleSpinBox" name="spinCondNAo">
207 207 <property name="geometry">
208 208 <rect>
209   - <x>160</x>
  209 + <x>190</x>
210 210 <y>20</y>
211 211 <width>62</width>
212 212 <height>22</height>
... ... @@ -225,7 +225,7 @@
225 225 <widget class="QDoubleSpinBox" name="spinObjNAo">
226 226 <property name="geometry">
227 227 <rect>
228   - <x>160</x>
  228 + <x>190</x>
229 229 <y>50</y>
230 230 <width>62</width>
231 231 <height>22</height>
... ... @@ -244,7 +244,7 @@
244 244 <widget class="QDoubleSpinBox" name="spinObjNAi">
245 245 <property name="geometry">
246 246 <rect>
247   - <x>90</x>
  247 + <x>110</x>
248 248 <y>50</y>
249 249 <width>62</width>
250 250 <height>22</height>
... ... @@ -260,7 +260,7 @@
260 260 <widget class="QRadioButton" name="radTransmissionOptics">
261 261 <property name="geometry">
262 262 <rect>
263   - <x>20</x>
  263 + <x>30</x>
264 264 <y>80</y>
265 265 <width>111</width>
266 266 <height>17</height>
... ... @@ -276,7 +276,7 @@
276 276 <widget class="QRadioButton" name="radReflectionOptics">
277 277 <property name="geometry">
278 278 <rect>
279   - <x>150</x>
  279 + <x>170</x>
280 280 <y>80</y>
281 281 <width>91</width>
282 282 <height>17</height>
... ... @@ -289,9 +289,9 @@
289 289 <widget class="QCheckBox" name="chkPointDetector">
290 290 <property name="geometry">
291 291 <rect>
292   - <x>150</x>
  292 + <x>170</x>
293 293 <y>100</y>
294   - <width>101</width>
  294 + <width>91</width>
295 295 <height>17</height>
296 296 </rect>
297 297 </property>
... ... @@ -302,9 +302,9 @@
302 302 <widget class="QSpinBox" name="spinObjectiveSamples">
303 303 <property name="geometry">
304 304 <rect>
305   - <x>1</x>
  305 + <x>10</x>
306 306 <y>100</y>
307   - <width>51</width>
  307 + <width>61</width>
308 308 <height>22</height>
309 309 </rect>
310 310 </property>
... ... @@ -318,7 +318,7 @@
318 318 <widget class="QLabel" name="label_12">
319 319 <property name="geometry">
320 320 <rect>
321   - <x>60</x>
  321 + <x>80</x>
322 322 <y>100</y>
323 323 <width>81</width>
324 324 <height>16</height>
... ... @@ -328,13 +328,26 @@
328 328 <string>Obj. Samples</string>
329 329 </property>
330 330 </widget>
  331 + <widget class="QCheckBox" name="chkSourceSpectrum">
  332 + <property name="geometry">
  333 + <rect>
  334 + <x>30</x>
  335 + <y>130</y>
  336 + <width>141</width>
  337 + <height>19</height>
  338 + </rect>
  339 + </property>
  340 + <property name="text">
  341 + <string>Source Spectrum</string>
  342 + </property>
  343 + </widget>
331 344 </widget>
332 345 <widget class="QGroupBox" name="groupBox_3">
333 346 <property name="geometry">
334 347 <rect>
335   - <x>280</x>
336   - <y>20</y>
337   - <width>181</width>
  348 + <x>290</x>
  349 + <y>10</y>
  350 + <width>191</width>
338 351 <height>411</height>
339 352 </rect>
340 353 </property>
... ... @@ -346,7 +359,7 @@
346 359 <rect>
347 360 <x>80</x>
348 361 <y>70</y>
349   - <width>71</width>
  362 + <width>101</width>
350 363 <height>22</height>
351 364 </rect>
352 365 </property>
... ... @@ -406,7 +419,7 @@
406 419 <rect>
407 420 <x>80</x>
408 421 <y>40</y>
409   - <width>71</width>
  422 + <width>101</width>
410 423 <height>22</height>
411 424 </rect>
412 425 </property>
... ... @@ -469,7 +482,7 @@
469 482 <rect>
470 483 <x>10</x>
471 484 <y>230</y>
472   - <width>151</width>
  485 + <width>171</width>
473 486 <height>17</height>
474 487 </rect>
475 488 </property>
... ... @@ -485,7 +498,7 @@
485 498 <rect>
486 499 <x>10</x>
487 500 <y>170</y>
488   - <width>151</width>
  501 + <width>161</width>
489 502 <height>17</height>
490 503 </rect>
491 504 </property>
... ... @@ -517,7 +530,7 @@
517 530 <rect>
518 531 <x>80</x>
519 532 <y>100</y>
520   - <width>71</width>
  533 + <width>101</width>
521 534 <height>22</height>
522 535 </rect>
523 536 </property>
... ... @@ -552,7 +565,7 @@
552 565 <rect>
553 566 <x>80</x>
554 567 <y>130</y>
555   - <width>71</width>
  568 + <width>101</width>
556 569 <height>22</height>
557 570 </rect>
558 571 </property>
... ... @@ -652,7 +665,7 @@
652 665 <rect>
653 666 <x>10</x>
654 667 <y>380</y>
655   - <width>70</width>
  668 + <width>91</width>
656 669 <height>17</height>
657 670 </rect>
658 671 </property>
... ... @@ -665,7 +678,7 @@
665 678 <rect>
666 679 <x>50</x>
667 680 <y>190</y>
668   - <width>101</width>
  681 + <width>111</width>
669 682 <height>17</height>
670 683 </rect>
671 684 </property>
... ... @@ -709,8 +722,8 @@
709 722 <widget class="QPushButton" name="btnFit">
710 723 <property name="geometry">
711 724 <rect>
712   - <x>180</x>
713   - <y>150</y>
  725 + <x>190</x>
  726 + <y>190</y>
714 727 <width>75</width>
715 728 <height>23</height>
716 729 </rect>
... ... @@ -722,8 +735,8 @@
722 735 <widget class="QPushButton" name="btnSave">
723 736 <property name="geometry">
724 737 <rect>
725   - <x>180</x>
726   - <y>180</y>
  738 + <x>190</x>
  739 + <y>220</y>
727 740 <width>75</width>
728 741 <height>23</height>
729 742 </rect>
... ... @@ -735,8 +748,8 @@
735 748 <widget class="QPushButton" name="btnReset">
736 749 <property name="geometry">
737 750 <rect>
738   - <x>180</x>
739   - <y>210</y>
  751 + <x>190</x>
  752 + <y>250</y>
740 753 <width>75</width>
741 754 <height>23</height>
742 755 </rect>
... ... @@ -751,8 +764,8 @@
751 764 </property>
752 765 <property name="geometry">
753 766 <rect>
754   - <x>180</x>
755   - <y>240</y>
  767 + <x>190</x>
  768 + <y>280</y>
756 769 <width>75</width>
757 770 <height>23</height>
758 771 </rect>
... ... @@ -764,8 +777,8 @@
764 777 <widget class="QPushButton" name="btnTimings">
765 778 <property name="geometry">
766 779 <rect>
767   - <x>180</x>
768   - <y>270</y>
  780 + <x>190</x>
  781 + <y>310</y>
769 782 <width>75</width>
770 783 <height>23</height>
771 784 </rect>
... ... @@ -778,7 +791,7 @@
778 791 <property name="geometry">
779 792 <rect>
780 793 <x>20</x>
781   - <y>320</y>
  794 + <y>340</y>
782 795 <width>201</width>
783 796 <height>111</height>
784 797 </rect>
... ... @@ -818,9 +831,9 @@
818 831 <widget class="QDoubleSpinBox" name="spinError">
819 832 <property name="geometry">
820 833 <rect>
821   - <x>20</x>
  834 + <x>0</x>
822 835 <y>70</y>
823   - <width>71</width>
  836 + <width>101</width>
824 837 <height>22</height>
825 838 </rect>
826 839 </property>
... ... @@ -883,8 +896,8 @@
883 896 <rect>
884 897 <x>0</x>
885 898 <y>0</y>
886   - <width>511</width>
887   - <height>25</height>
  899 + <width>502</width>
  900 + <height>22</height>
888 901 </rect>
889 902 </property>
890 903 <widget class="QMenu" name="menuFile">
... ... @@ -893,6 +906,7 @@
893 906 </property>
894 907 <addaction name="mnuLoadReference"/>
895 908 <addaction name="mnuLoadMaterial"/>
  909 + <addaction name="mnuLoadSource"/>
896 910 </widget>
897 911 <widget class="QMenu" name="menuSave">
898 912 <property name="title">
... ... @@ -945,6 +959,11 @@
945 959 <string>n</string>
946 960 </property>
947 961 </action>
  962 + <action name="mnuLoadSource">
  963 + <property name="text">
  964 + <string>Load Source Spectrum</string>
  965 + </property>
  966 + </action>
948 967 </widget>
949 968 <layoutdefault spacing="6" margin="11"/>
950 969 <resources>
... ...
main.cpp
1 1 #include <fstream>
  2 +#include <iostream>
2 3 using namespace std;
3 4 #include "interactivemie.h"
4   -#include <QtGui/QApplication>
5   -#include <QGraphicsScene>
6   -#include <QGraphicsView>
  5 +#include <QtGui/QApplication>
  6 +#include <QGraphicsScene>
  7 +#include <QGraphicsView>
7 8 #include <QGraphicsPixmapItem>
  9 +#include <QLayout>
8 10 #include "qtSpectrumDisplay.h"
9 11 #include "globals.h"
10 12 #include "rtsGUIConsole.h"
... ... @@ -14,16 +16,24 @@ using namespace std;
14 16  
15 17 PerformanceData PD;
16 18  
17   -qtSpectrumDisplay* gpSpectrumDisplay;
18   -
19   -QGraphicsScene* distortionScene = NULL;
20   -QGraphicsView* distortionWindow = NULL;
  19 +qtSpectrumDisplay* gpSpectrumDisplay;
  20 +
  21 +QGraphicsScene* distortionScene = NULL;
  22 +QGraphicsView* distortionWindow = NULL;
21 23 QGraphicsPixmapItem* pixmapItem = NULL;
22 24  
23 25 vector<vector<SpecPair> > RefSpectrum;
24 26 vector<SpecPair> SimSpectrum;
25 27 vector<SpecPair> EtaK;
26 28 vector<SpecPair> EtaN;
  29 +
  30 +//source spectrum
  31 +bool useSourceSpectrum = false;
  32 +vector<SpecPair> SourceSpectrum;
  33 +
  34 +//resample the source based on the material samples (EtaK and EtaN)
  35 +vector<SpecPair> SourceResampled;
  36 +
27 37 int currentSpec = 0;
28 38  
29 39 double nuMin = 800;
... ... @@ -109,7 +119,6 @@ void LoadMaterial(string fileNameK, string fileNameN, string materialName)
109 119 newMaterial.eta.push_back(eta);
110 120 }
111 121 MaterialList.push_back(newMaterial);
112   -
113 122 }
114 123  
115 124 void LoadMaterial(string fileNameK, string materialName){
... ... @@ -149,6 +158,49 @@ void LoadMaterial(string fileNameK, string materialName){
149 158 MaterialList.push_back(newMaterial);
150 159 }
151 160  
  161 +void LoadSource(string fileNameSource)
  162 +{
  163 + SourceSpectrum = LoadSpectrum(fileNameSource);
  164 +}
  165 +
  166 +void ResampleSource()
  167 +{
  168 + //clear the current resampled spectrum
  169 + SourceResampled.clear();
  170 +
  171 + //get the number of source and material samples
  172 + int nMatSamples = EtaK.size();
  173 + int nSourceSamples = SourceSpectrum.size();
  174 +
  175 + float nu, I;
  176 + for(int i=0; i<nMatSamples; i++)
  177 + {
  178 + SpecPair newSample;
  179 + newSample.nu = EtaK[i].nu;
  180 +
  181 + //iterate through the SourceSpectrum to find the bounding wavelengths
  182 + if(newSample.nu < SourceSpectrum[0].nu)
  183 + newSample.A = 0.0;
  184 + else if(newSample.nu > SourceSpectrum[nSourceSamples-1].nu)
  185 + newSample.A = 0.0;
  186 + else
  187 + {
  188 + int k=1;
  189 + while(SourceSpectrum[k].nu < newSample.nu)
  190 + k++;
  191 +
  192 + //interpolate
  193 + float a = (newSample.nu - SourceSpectrum[k-1].nu)/(SourceSpectrum[k].nu - SourceSpectrum[k-1].nu);
  194 + newSample.A = a * SourceSpectrum[k].A + (1.0 - a) * SourceSpectrum[k-1].A;
  195 + }
  196 +
  197 + //insert the new spectral point into the resampled spectrum
  198 + SourceResampled.push_back(newSample);
  199 + //cout<<newSample.nu<<" "<<newSample.A<<endl;
  200 + }
  201 +
  202 +}
  203 +
152 204 void FitDisplay(){
153 205 double minA = 99999.0;
154 206 double maxA = -99999.0;
... ... @@ -280,6 +332,10 @@ void SetMaterial()
280 332 EtaN.push_back(temp);
281 333 }
282 334 cA = 1.0;
  335 +
  336 + //resample the source spectrum
  337 + if(SourceSpectrum.size() != 0)
  338 + ResampleSource();
283 339  
284 340 }
285 341  
... ... @@ -295,42 +351,48 @@ int main(int argc, char *argv[])
295 351 //load the default materials
296 352 LoadMaterial("eta_TolueneK.txt", "eta_TolueneN.txt", "Toluene");
297 353 LoadMaterial("kPMMA.txt", "PMMA");
  354 + LoadMaterial("eta_polystyreneK.txt", "Polystyrene");
298 355 //LoadMaterial("../../../../data/materials/rtsSU8_k.txt", "../../../../data/materials/rtsSU8_n.txt", "SU8");
299 356 SetMaterial();
  357 +
  358 + //load a mid-infrared source
  359 + LoadSource("source_midIR.txt");
  360 + ResampleSource();
300 361  
301 362 //compute the analytical solution for the Mie scattered spectrum
302 363 SimulateSpectrum();
303 364  
304   - QApplication a(argc, argv);
305   -
306   - //create and position the UI window
  365 + QApplication a(argc, argv);
  366 +
307 367 InteractiveMie w;
308   - w.show();
  368 + w.show() ;
309 369 w.move(0, 0);
310   - QRect uiFrame = w.frameGeometry();
311   - QRect uiNoFrame = w.geometry();
  370 + QSize uiFrame = w.frameSize() + QSize(10, 10);
  371 + cout<<"Frame: "<<uiFrame.width()<<endl;
  372 + QSize uiNoFrame = w.size();
  373 + cout<<"No Frame: "<<uiNoFrame.width()<<endl;
312 374 int frameHeight = uiFrame.height() - uiNoFrame.height();
313 375  
314 376 //activate a console for output
315   - RedirectIOToConsole(0, uiFrame.height(), uiFrame.width(), 400);
316   - printf("Frame height: %d\n", frameHeight);
317   -
318   - //set the size and position of the spectrum window
  377 + RedirectIOToConsole(0, uiFrame.height(), uiFrame.width(), 400);
  378 + printf("Frame height: %d\n", frameHeight);
  379 +
  380 + //set the size and position of the spectrum window
319 381 int visWinSize = uiFrame.height()/2 - frameHeight;
320 382 //create the far field window
321 383 gpSpectrumDisplay = new qtSpectrumDisplay();
322 384 gpSpectrumDisplay->resize(visWinSize*2, visWinSize);
323 385 gpSpectrumDisplay->move(uiFrame.width(), 0);
324   - gpSpectrumDisplay->show();
325   -
326   - //distortion dialog box
327   - distortionDialog = new qtDistortionDialog();
328   - distortionDialog->move(0, 0);
329   -
330   - //display the distortion map
331   - distortionScene = new QGraphicsScene();
332   - distortionWindow = new QGraphicsView(distortionScene);
333   - distortionWindow->move(uiFrame.width(), visWinSize);
  386 + gpSpectrumDisplay->show();
  387 +
  388 + //distortion dialog box
  389 + distortionDialog = new qtDistortionDialog();
  390 + distortionDialog->move(0, 0);
  391 +
  392 + //display the distortion map
  393 + distortionScene = new QGraphicsScene();
  394 + distortionWindow = new QGraphicsView(distortionScene);
  395 + distortionWindow->move(uiFrame.width(), visWinSize);
334 396  
335 397 //refresh the UI
336 398 w.refreshUI();
... ...
source_midIR.txt 0 โ†’ 100644
  1 + 898.665771 0.196227
  2 + 902.522705 0.207933
  3 + 906.379639 0.218853
  4 + 910.236572 0.229278
  5 + 914.093506 0.239895
  6 + 917.950439 0.252144
  7 + 921.807373 0.263879
  8 + 925.664307 0.273570
  9 + 929.521240 0.284858
  10 + 933.378174 0.298487
  11 + 937.235107 0.312094
  12 + 941.092041 0.325800
  13 + 944.948975 0.340324
  14 + 948.805908 0.354003
  15 + 952.662842 0.366424
  16 + 956.519775 0.379229
  17 + 960.376709 0.391242
  18 + 964.233643 0.401185
  19 + 968.090576 0.410705
  20 + 971.947510 0.420869
  21 + 975.804443 0.429901
  22 + 979.661377 0.437795
  23 + 983.518311 0.446571
  24 + 987.375244 0.455127
  25 + 991.232178 0.463834
  26 + 995.089111 0.472215
  27 + 998.946045 0.478527
  28 + 1002.802979 0.486165
  29 + 1006.659912 0.494883
  30 + 1010.516846 0.501833
  31 + 1014.373779 0.507649
  32 + 1018.230713 0.512300
  33 + 1022.087646 0.517685
  34 + 1025.944580 0.523520
  35 + 1029.801514 0.526614
  36 + 1033.658447 0.529842
  37 + 1037.515381 0.535331
  38 + 1041.372314 0.540368
  39 + 1045.229248 0.544854
  40 + 1049.086182 0.549423
  41 + 1052.943115 0.553986
  42 + 1056.800049 0.559133
  43 + 1060.656982 0.564271
  44 + 1064.513916 0.569276
  45 + 1068.370850 0.574210
  46 + 1072.227783 0.578073
  47 + 1076.084717 0.582969
  48 + 1079.941650 0.588808
  49 + 1083.798584 0.592551
  50 + 1087.655518 0.598405
  51 + 1091.512451 0.608196
  52 + 1095.369385 0.616455
  53 + 1099.226318 0.623627
  54 + 1103.083252 0.632403
  55 + 1106.940186 0.640811
  56 + 1110.797119 0.647617
  57 + 1114.654053 0.654493
  58 + 1118.510986 0.661529
  59 + 1122.367920 0.668473
  60 + 1126.224854 0.675395
  61 + 1130.081787 0.681317
  62 + 1133.938721 0.687106
  63 + 1137.795654 0.691284
  64 + 1141.652588 0.693295
  65 + 1145.509521 0.697508
  66 + 1149.366455 0.703402
  67 + 1153.223389 0.709345
  68 + 1157.080322 0.715839
  69 + 1160.937256 0.720988
  70 + 1164.794189 0.726381
  71 + 1168.651123 0.734673
  72 + 1172.508057 0.742796
  73 + 1176.364990 0.749452
  74 + 1180.221924 0.756486
  75 + 1184.078857 0.764033
  76 + 1187.935791 0.771270
  77 + 1191.792725 0.776412
  78 + 1195.649658 0.779656
  79 + 1199.506592 0.782932
  80 + 1203.363525 0.786472
  81 + 1207.220459 0.790205
  82 + 1211.077393 0.793150
  83 + 1214.934326 0.796196
  84 + 1218.791260 0.800203
  85 + 1222.648193 0.802349
  86 + 1226.505249 0.804624
  87 + 1230.362061 0.809727
  88 + 1234.219116 0.813920
  89 + 1238.076050 0.817154
  90 + 1241.932861 0.820684
  91 + 1245.789917 0.823186
  92 + 1249.646851 0.826081
  93 + 1253.503784 0.827715
  94 + 1257.360718 0.825420
  95 + 1261.217651 0.824206
  96 + 1265.074585 0.825879
  97 + 1268.931519 0.826656
  98 + 1272.788452 0.829775
  99 + 1276.645386 0.835048
  100 + 1280.502319 0.836434
  101 + 1284.359253 0.834562
  102 + 1288.216187 0.833610
  103 + 1292.073120 0.837521
  104 + 1295.930054 0.841644
  105 + 1299.786987 0.843328
  106 + 1303.643921 0.845585
  107 + 1307.500854 0.845590
  108 + 1311.357788 0.842181
  109 + 1315.214722 0.834671
  110 + 1319.071655 0.835801
  111 + 1322.928589 0.848150
  112 + 1326.785522 0.854175
  113 + 1330.642456 0.854040
  114 + 1334.499390 0.831417
  115 + 1338.356323 0.799091
  116 + 1342.213257 0.813070
  117 + 1346.070190 0.841063
  118 + 1349.927124 0.838420
  119 + 1353.784058 0.834346
  120 + 1357.640991 0.815108
  121 + 1361.497925 0.780951
  122 + 1365.354858 0.792507
  123 + 1369.211792 0.808626
  124 + 1373.068726 0.784984
  125 + 1376.925659 0.796319
  126 + 1380.782593 0.823899
  127 + 1384.639526 0.801234
  128 + 1388.496460 0.782696
  129 + 1392.353394 0.762765
  130 + 1396.210327 0.727260
  131 + 1400.067261 0.751427
  132 + 1403.924194 0.787689
  133 + 1407.781128 0.803963
  134 + 1411.638062 0.813447
  135 + 1415.494995 0.742551
  136 + 1419.351929 0.685433
  137 + 1423.208862 0.730669
  138 + 1427.065796 0.775669
  139 + 1430.922729 0.758888
  140 + 1434.779663 0.710901
  141 + 1438.636597 0.739278
  142 + 1442.493530 0.799569
  143 + 1446.350464 0.791992
  144 + 1450.207397 0.762096
  145 + 1454.064331 0.665702
  146 + 1457.921265 0.598916
  147 + 1461.778198 0.685768
  148 + 1465.635132 0.746188
  149 + 1469.492065 0.694261
  150 + 1473.348999 0.638822
  151 + 1477.205933 0.702550
  152 + 1481.062866 0.798297
  153 + 1484.919800 0.745962
  154 + 1488.776733 0.675704
  155 + 1492.633667 0.669731
  156 + 1496.490601 0.672737
  157 + 1500.347534 0.678042
  158 + 1504.204468 0.581820
  159 + 1508.061401 0.510445
  160 + 1511.918335 0.603729
  161 + 1515.775269 0.612279
  162 + 1519.632202 0.520633
  163 + 1523.489136 0.544888
  164 + 1527.346069 0.623953
  165 + 1531.203003 0.655827
  166 + 1535.059937 0.596197
  167 + 1538.916870 0.473790
  168 + 1542.773804 0.477275
  169 + 1546.630737 0.611737
  170 + 1550.487671 0.667929
  171 + 1554.344604 0.546965
  172 + 1558.201538 0.438791
  173 + 1562.058472 0.542528
  174 + 1565.915405 0.663468
  175 + 1569.772339 0.657576
  176 + 1573.629272 0.638404
  177 + 1577.486206 0.667601
  178 + 1581.343140 0.751624
  179 + 1585.200073 0.798418
  180 + 1589.057007 0.788293
  181 + 1592.913940 0.782993
  182 + 1596.770874 0.781056
  183 + 1600.627808 0.780906
  184 + 1604.484741 0.764023
  185 + 1608.341675 0.756827
  186 + 1612.198608 0.715579
  187 + 1616.055542 0.648217
  188 + 1619.912476 0.641239
  189 + 1623.769409 0.647518
  190 + 1627.626343 0.678568
  191 + 1631.483276 0.653493
  192 + 1635.340210 0.576889
  193 + 1639.197144 0.621380
  194 + 1643.054077 0.642719
  195 + 1646.911011 0.541749
  196 + 1650.767944 0.456552
  197 + 1654.624878 0.505926
  198 + 1658.481812 0.644898
  199 + 1662.338745 0.685250
  200 + 1666.195679 0.639791
  201 + 1670.052612 0.592342
  202 + 1673.909546 0.592354
  203 + 1677.766479 0.626454
  204 + 1681.623413 0.554664
  205 + 1685.480347 0.523860
  206 + 1689.337280 0.635061
  207 + 1693.194214 0.616993
  208 + 1697.051147 0.487230
  209 + 1700.908081 0.476804
  210 + 1704.765015 0.575534
  211 + 1708.621948 0.670165
  212 + 1712.478882 0.641016
  213 + 1716.335815 0.553706
  214 + 1720.192749 0.614536
  215 + 1724.049683 0.736431
  216 + 1727.906738 0.711089
  217 + 1731.763550 0.599377
  218 + 1735.620605 0.571977
  219 + 1739.477539 0.627342
  220 + 1743.334473 0.649931
  221 + 1747.191406 0.617436
  222 + 1751.048340 0.622318
  223 + 1754.905273 0.675941
  224 + 1758.762207 0.687082
  225 + 1762.619141 0.691393
  226 + 1766.476074 0.680236
  227 + 1770.333008 0.609650
  228 + 1774.189941 0.626126
  229 + 1778.046875 0.698773
  230 + 1781.903809 0.719199
  231 + 1785.760742 0.723180
  232 + 1789.617676 0.682504
  233 + 1793.474609 0.654468
  234 + 1797.331543 0.680635
  235 + 1801.188477 0.700926
  236 + 1805.045410 0.723400
  237 + 1808.902344 0.729948
  238 + 1812.759277 0.730232
  239 + 1816.616211 0.748878
  240 + 1820.473145 0.737278
  241 + 1824.330078 0.690014
  242 + 1828.187012 0.657628
  243 + 1832.043945 0.681731
  244 + 1835.900879 0.724360
  245 + 1839.757812 0.702947
  246 + 1843.614746 0.654370
  247 + 1847.471680 0.676652
  248 + 1851.328613 0.730644
  249 + 1855.185547 0.739898
  250 + 1859.042480 0.738392
  251 + 1862.899414 0.720345
  252 + 1866.756348 0.668056
  253 + 1870.613281 0.669127
  254 + 1874.470215 0.716509
  255 + 1878.327148 0.730486
  256 + 1882.184082 0.723811
  257 + 1886.041016 0.706837
  258 + 1889.897949 0.689677
  259 + 1893.754883 0.696657
  260 + 1897.611816 0.710234
  261 + 1901.468750 0.714719
  262 + 1905.325684 0.705419
  263 + 1909.182617 0.697143
  264 + 1913.039551 0.694995
  265 + 1916.896484 0.676892
  266 + 1920.753418 0.669110
  267 + 1924.610352 0.690376
  268 + 1928.467285 0.705479
  269 + 1932.324219 0.707718
  270 + 1936.181152 0.703849
  271 + 1940.038086 0.683556
  272 + 1943.895020 0.671686
  273 + 1947.751953 0.686308
  274 + 1951.608887 0.693794
  275 + 1955.465820 0.688986
  276 + 1959.322754 0.688719
  277 + 1963.179688 0.681658
  278 + 1967.036621 0.673000
  279 + 1970.893555 0.678196
  280 + 1974.750488 0.685476
  281 + 1978.607422 0.686061
  282 + 1982.464355 0.685207
  283 + 1986.321289 0.676624
  284 + 1990.178223 0.662820
  285 + 1994.035156 0.662925
  286 + 1997.892090 0.671566
  287 + 2001.749023 0.672158
  288 + 2005.605957 0.669704
  289 + 2009.462891 0.668946
  290 + 2013.319824 0.663061
  291 + 2017.176758 0.656150
  292 + 2021.033691 0.657385
  293 + 2024.890625 0.660424
  294 + 2028.747559 0.659121
  295 + 2032.604492 0.657460
  296 + 2036.461426 0.655844
  297 + 2040.318359 0.652959
  298 + 2044.175293 0.651836
  299 + 2048.032227 0.652501
  300 + 2051.889160 0.651325
  301 + 2055.746094 0.648695
  302 + 2059.603027 0.644656
  303 + 2063.459961 0.640125
  304 + 2067.316895 0.639878
  305 + 2071.173828 0.640445
  306 + 2075.030762 0.638156
  307 + 2078.887695 0.637794
  308 + 2082.744629 0.637912
  309 + 2086.601562 0.635038
  310 + 2090.458496 0.632823
  311 + 2094.315430 0.632498
  312 + 2098.172363 0.632050
  313 + 2102.029297 0.631381
  314 + 2105.886230 0.630392
  315 + 2109.743164 0.628773
  316 + 2113.600098 0.626989
  317 + 2117.457031 0.625757
  318 + 2121.313965 0.624314
  319 + 2125.170898 0.622129
  320 + 2129.027832 0.620875
  321 + 2132.884766 0.619852
  322 + 2136.741699 0.618192
  323 + 2140.598633 0.617050
  324 + 2144.455566 0.616132
  325 + 2148.312500 0.615712
  326 + 2152.169434 0.615677
  327 + 2156.026367 0.615602
  328 + 2159.883301 0.615284
  329 + 2163.740234 0.614014
  330 + 2167.597168 0.613128
  331 + 2171.454102 0.612511
  332 + 2175.311035 0.611466
  333 + 2179.167969 0.611296
  334 + 2183.024902 0.611215
  335 + 2186.881836 0.610390
  336 + 2190.738770 0.609768
  337 + 2194.595703 0.608551
  338 + 2198.452637 0.605899
  339 + 2202.309570 0.603909
  340 + 2206.166504 0.603230
  341 + 2210.023438 0.602597
  342 + 2213.880371 0.602044
  343 + 2217.737305 0.601362
  344 + 2221.594238 0.600290
  345 + 2225.451172 0.599428
  346 + 2229.308105 0.599910
  347 + 2233.165039 0.600941
  348 + 2237.021973 0.600930
  349 + 2240.878906 0.600775
  350 + 2244.735840 0.599930
  351 + 2248.592773 0.597954
  352 + 2252.449707 0.595457
  353 + 2256.306641 0.591206
  354 + 2260.163574 0.587124
  355 + 2264.020508 0.585276
  356 + 2267.877441 0.584142
  357 + 2271.734375 0.583486
  358 + 2275.591309 0.583411
  359 + 2279.448242 0.584158
  360 + 2283.305176 0.584678
  361 + 2287.162109 0.581980
  362 + 2291.019043 0.575961
  363 + 2294.875977 0.566745
  364 + 2298.732910 0.553140
  365 + 2302.589844 0.534748
  366 + 2306.446777 0.510267
  367 + 2310.303711 0.478340
  368 + 2314.160645 0.440838
  369 + 2318.017578 0.400127
  370 + 2321.874512 0.360108
  371 + 2325.731445 0.327151
  372 + 2329.588379 0.301550
  373 + 2333.445312 0.287366
  374 + 2337.302246 0.279186
  375 + 2341.159180 0.276747
  376 + 2345.016113 0.313348
  377 + 2348.873047 0.348284
  378 + 2352.729980 0.304962
  379 + 2356.586914 0.235612
  380 + 2360.443848 0.208089
  381 + 2364.300781 0.214393
  382 + 2368.157715 0.247215
  383 + 2372.014648 0.305847
  384 + 2375.871582 0.387479
  385 + 2379.728516 0.474743
  386 + 2383.585449 0.538086
  387 + 2387.442383 0.569826
  388 + 2391.299316 0.580270
  389 + 2395.156250 0.582376
  390 + 2399.013184 0.582054
  391 + 2402.870117 0.581203
  392 + 2406.727051 0.581691
  393 + 2410.583984 0.581988
  394 + 2414.440918 0.581725
  395 + 2418.297852 0.582137
  396 + 2422.154785 0.582671
  397 + 2426.011719 0.581738
  398 + 2429.868652 0.581663
  399 + 2433.725586 0.583042
  400 + 2437.582520 0.581780
  401 + 2441.439453 0.579739
  402 + 2445.296387 0.579889
  403 + 2449.153320 0.580173
  404 + 2453.010254 0.579550
  405 + 2456.867432 0.578990
  406 + 2460.724121 0.579084
  407 + 2464.581299 0.579852
  408 + 2468.437988 0.580642
  409 + 2472.294922 0.580310
  410 + 2476.152100 0.579659
  411 + 2480.008789 0.579746
  412 + 2483.865967 0.579867
  413 + 2487.722900 0.580264
  414 + 2491.579834 0.581114
  415 + 2495.436768 0.581738
  416 + 2499.293701 0.582030
  417 + 2503.150635 0.582214
  418 + 2507.007568 0.582051
  419 + 2510.864502 0.580685
  420 + 2514.721436 0.578848
  421 + 2518.578369 0.577873
  422 + 2522.435303 0.577517
  423 + 2526.292236 0.577284
  424 + 2530.149170 0.576961
  425 + 2534.006104 0.576424
  426 + 2537.863037 0.575596
  427 + 2541.719971 0.575394
  428 + 2545.576904 0.576315
  429 + 2549.433838 0.577145
  430 + 2553.290771 0.577490
  431 + 2557.147705 0.577967
  432 + 2561.004639 0.578784
  433 + 2564.861572 0.578520
  434 + 2568.718506 0.577357
  435 + 2572.575439 0.577422
  436 + 2576.432373 0.576814
  437 + 2580.289307 0.574005
  438 + 2584.146240 0.571516
  439 + 2588.003174 0.570293
  440 + 2591.860107 0.568882
  441 + 2595.717041 0.567365
  442 + 2599.573975 0.566915
  443 + 2603.430908 0.566464
  444 + 2607.287842 0.566014
  445 + 2611.144775 0.567179
  446 + 2615.001709 0.568828
  447 + 2618.858643 0.569467
  448 + 2622.715576 0.569085
  449 + 2626.572510 0.567791
  450 + 2630.429443 0.566904
  451 + 2634.286377 0.567991
  452 + 2638.143311 0.568579
  453 + 2642.000244 0.565883
  454 + 2645.857178 0.562745
  455 + 2649.714111 0.562020
  456 + 2653.571045 0.561671
  457 + 2657.427979 0.558974
  458 + 2661.284912 0.555346
  459 + 2665.141846 0.553615
  460 + 2668.998779 0.553611
  461 + 2672.855713 0.553477
  462 + 2676.712646 0.552405
  463 + 2680.569580 0.551878
  464 + 2684.426514 0.550930
  465 + 2688.283447 0.549427
  466 + 2692.140381 0.551940
  467 + 2695.997314 0.554912
  468 + 2699.854248 0.553160
  469 + 2703.711182 0.550163
  470 + 2707.568115 0.547766
  471 + 2711.425049 0.546143
  472 + 2715.281982 0.544361
  473 + 2719.138916 0.540876
  474 + 2722.995850 0.537322
  475 + 2726.852783 0.534876
  476 + 2730.709717 0.533369
  477 + 2734.566650 0.531250
  478 + 2738.423584 0.529185
  479 + 2742.280518 0.529209
  480 + 2746.137451 0.529883
  481 + 2749.994385 0.530004
  482 + 2753.851318 0.529136
  483 + 2757.708252 0.527899
  484 + 2761.565186 0.527130
  485 + 2765.422119 0.526335
  486 + 2769.279053 0.524805
  487 + 2773.135986 0.521504
  488 + 2776.992920 0.518246
  489 + 2780.849854 0.515980
  490 + 2784.706787 0.512066
  491 + 2788.563721 0.507128
  492 + 2792.420654 0.503861
  493 + 2796.277588 0.501897
  494 + 2800.134521 0.499721
  495 + 2803.991455 0.497080
  496 + 2807.848389 0.494668
  497 + 2811.705322 0.493610
  498 + 2815.562256 0.493511
  499 + 2819.419189 0.493395
  500 + 2823.276123 0.492364
  501 + 2827.133057 0.490612
  502 + 2830.989990 0.489761
  503 + 2834.846924 0.486698
  504 + 2838.703857 0.480848
  505 + 2842.560791 0.476354
  506 + 2846.417725 0.471369
  507 + 2850.274658 0.466157
  508 + 2854.131592 0.463690
  509 + 2857.988525 0.461405
  510 + 2861.845459 0.458523
  511 + 2865.702393 0.456424
  512 + 2869.559326 0.454132
  513 + 2873.416260 0.451843
  514 + 2877.273193 0.450755
  515 + 2881.130127 0.451220
  516 + 2884.987061 0.452172
  517 + 2888.843994 0.450664
  518 + 2892.700928 0.447447
  519 + 2896.557861 0.446199
  520 + 2900.414795 0.446241
  521 + 2904.271729 0.444231
  522 + 2908.128662 0.438370
  523 + 2911.985596 0.429459
  524 + 2915.842529 0.421152
  525 + 2919.699463 0.417226
  526 + 2923.556396 0.415077
  527 + 2927.413330 0.410551
  528 + 2931.270264 0.407603
  529 + 2935.127197 0.409559
  530 + 2938.984131 0.412162
  531 + 2942.841064 0.410827
  532 + 2946.697998 0.407245
  533 + 2950.554932 0.405837
  534 + 2954.411865 0.406032
  535 + 2958.268799 0.405579
  536 + 2962.125732 0.404655
  537 + 2965.982666 0.405027
  538 + 2969.839600 0.406843
  539 + 2973.696533 0.406376
  540 + 2977.553467 0.403345
  541 + 2981.410400 0.402373
  542 + 2985.267334 0.403359
  543 + 2989.124268 0.401836
  544 + 2992.981201 0.398296
  545 + 2996.838135 0.395620
  546 + 3000.695068 0.394953
  547 + 3004.552002 0.396477
  548 + 3008.408936 0.393747
  549 + 3012.265869 0.385867
  550 + 3016.122803 0.382761
  551 + 3019.979736 0.384393
  552 + 3023.836670 0.385577
  553 + 3027.693604 0.384672
  554 + 3031.550537 0.381318
  555 + 3035.407471 0.380553
  556 + 3039.264404 0.380294
  557 + 3043.121338 0.376366
  558 + 3046.978271 0.374424
  559 + 3050.835205 0.372841
  560 + 3054.692139 0.369731
  561 + 3058.549072 0.369792
  562 + 3062.406006 0.367833
  563 + 3066.262939 0.363086
  564 + 3070.119873 0.363296
  565 + 3073.976807 0.362847
  566 + 3077.833740 0.356556
  567 + 3081.690674 0.352485
  568 + 3085.547607 0.352755
  569 + 3089.404541 0.353262
  570 + 3093.261475 0.352675
  571 + 3097.118408 0.350612
  572 + 3100.975342 0.349564
  573 + 3104.832275 0.348722
  574 + 3108.689209 0.345357
  575 + 3112.546143 0.340894
  576 + 3116.403076 0.334047
  577 + 3120.260010 0.328698
  578 + 3124.116943 0.330124
  579 + 3127.973877 0.331530
  580 + 3131.830811 0.329844
  581 + 3135.687744 0.327751
  582 + 3139.544678 0.325641
  583 + 3143.401611 0.325815
  584 + 3147.258545 0.325466
  585 + 3151.115479 0.322039
  586 + 3154.972412 0.321508
  587 + 3158.829346 0.323793
  588 + 3162.686279 0.322978
  589 + 3166.543213 0.320492
  590 + 3170.400146 0.319111
  591 + 3174.257080 0.316716
  592 + 3178.114014 0.312871
  593 + 3181.970947 0.309265
  594 + 3185.827881 0.306713
  595 + 3189.684814 0.305312
  596 + 3193.541748 0.302889
  597 + 3197.398682 0.299048
  598 + 3201.255615 0.295910
  599 + 3205.112549 0.293878
  600 + 3208.969482 0.292464
  601 + 3212.826416 0.289641
  602 + 3216.683350 0.286486
  603 + 3220.540283 0.286122
  604 + 3224.397217 0.285477
  605 + 3228.254150 0.282978
  606 + 3232.111084 0.280659
  607 + 3235.968018 0.278732
  608 + 3239.824951 0.277178
  609 + 3243.681885 0.274860
  610 + 3247.538818 0.271823
  611 + 3251.395752 0.269614
  612 + 3255.252686 0.268343
  613 + 3259.109619 0.268040
  614 + 3262.966553 0.267725
  615 + 3266.823486 0.264373
  616 + 3270.680420 0.257898
  617 + 3274.537354 0.254968
  618 + 3278.394287 0.257330
  619 + 3282.251221 0.258091
  620 + 3286.108154 0.256065
  621 + 3289.965088 0.252759
  622 + 3293.822021 0.249369
  623 + 3297.678955 0.249658
  624 + 3301.535889 0.248271
  625 + 3305.392822 0.241184
  626 + 3309.249756 0.237625
  627 + 3313.106689 0.239889
  628 + 3316.963623 0.241573
  629 + 3320.820557 0.240210
  630 + 3324.677490 0.236303
  631 + 3328.534424 0.233380
  632 + 3332.391357 0.231396
  633 + 3336.248291 0.227130
  634 + 3340.105225 0.224573
  635 + 3343.962158 0.225203
  636 + 3347.819092 0.224252
  637 + 3351.676025 0.222443
  638 + 3355.532959 0.221824
  639 + 3359.389893 0.219856
  640 + 3363.246826 0.215096
  641 + 3367.103760 0.210327
  642 + 3370.960693 0.209750
  643 + 3374.817627 0.211804
  644 + 3378.674561 0.210863
  645 + 3382.531494 0.208682
  646 + 3386.388428 0.206737
  647 + 3390.245361 0.202227
  648 + 3394.102295 0.198531
  649 + 3397.959229 0.195722
  650 + 3401.816162 0.192525
  651 + 3405.673096 0.192009
  652 + 3409.530029 0.192024
  653 + 3413.386963 0.190945
  654 + 3417.243896 0.188091
  655 + 3421.100830 0.186171
  656 + 3424.957764 0.188692
  657 + 3428.814697 0.188568
  658 + 3432.671631 0.184613
  659 + 3436.528564 0.183832
  660 + 3440.385498 0.184251
  661 + 3444.242432 0.180078
  662 + 3448.099609 0.177852
  663 + 3451.956299 0.183303
  664 + 3455.813232 0.185303
  665 + 3459.670410 0.181096
  666 + 3463.527100 0.176844
  667 + 3467.384277 0.172532
  668 + 3471.241211 0.172007
  669 + 3475.098145 0.174464
  670 + 3478.955078 0.172764
  671 + 3482.812012 0.169614
  672 + 3486.668945 0.169786
  673 + 3490.525879 0.170988
  674 + 3494.382812 0.171672
  675 + 3498.239746 0.167869
  676 + 3502.096680 0.159913
  677 + 3505.953613 0.157802
  678 + 3509.810547 0.161080
  679 + 3513.667480 0.165410
  680 + 3517.524414 0.168767
  681 + 3521.381348 0.161646
  682 + 3525.238281 0.148526
  683 + 3529.095215 0.148001
  684 + 3532.952148 0.156285
  685 + 3536.809082 0.160611
  686 + 3540.666016 0.157645
  687 + 3544.522949 0.143701
  688 + 3548.379883 0.136603
  689 + 3552.236816 0.144584
  690 + 3556.093750 0.154575
  691 + 3559.950684 0.159989
  692 + 3563.807617 0.134118
  693 + 3567.664551 0.104126
  694 + 3571.521484 0.122199
  695 + 3575.378418 0.148054
  696 + 3579.235352 0.156562
  697 + 3583.092285 0.148381
  698 + 3586.949219 0.117129
  699 + 3590.806152 0.109916
  700 + 3594.663086 0.121637
  701 + 3598.520020 0.123104
  702 + 3602.376953 0.135912
  703 + 3606.233887 0.131771
  704 + 3610.090820 0.110964
  705 + 3613.947754 0.100526
  706 + 3617.804688 0.086204
  707 + 3621.661621 0.100117
  708 + 3625.518555 0.106009
  709 + 3629.375488 0.068525
  710 + 3633.232422 0.075520
  711 + 3637.089355 0.121616
  712 + 3640.946289 0.154950
  713 + 3644.803223 0.141961
  714 + 3648.660156 0.072637
  715 + 3652.517090 0.047540
  716 + 3656.374023 0.079725
  717 + 3660.230957 0.116971
  718 + 3664.087891 0.153315
  719 + 3667.944824 0.142181
  720 + 3671.801758 0.087182
  721 + 3675.658691 0.042480
  722 + 3679.515625 0.056400
  723 + 3683.372559 0.109665
  724 + 3687.229492 0.093650
  725 + 3691.086426 0.050486
  726 + 3694.943359 0.078813
  727 + 3698.800293 0.109129
  728 + 3702.657227 0.114369
  729 + 3706.514160 0.122932
  730 + 3710.371094 0.094360
  731 + 3714.228027 0.074966
  732 + 3718.084961 0.108665
  733 + 3721.941895 0.117191
  734 + 3725.798828 0.114044
  735 + 3729.655762 0.129371
  736 + 3733.512695 0.103350
  737 + 3737.369629 0.073132
  738 + 3741.226562 0.084164
  739 + 3745.083496 0.071838
  740 + 3748.940430 0.027810
  741 + 3752.797363 0.006315
  742 + 3756.654297 0.020322
  743 + 3760.511230 0.048386
  744 + 3764.368164 0.069165
  745 + 3768.225098 0.066825
  746 + 3772.082031 0.069544
  747 + 3775.938965 0.091394
  748 + 3779.795898 0.094109
  749 + 3783.652832 0.089592
  750 + 3787.509766 0.104688
  751 + 3791.366699 0.128153
  752 + 3795.223633 0.136477
  753 + 3799.080566 0.113925
  754 + 3802.937500 0.076704
  755 + 3806.794434 0.060072
  756 + 3810.651367 0.084428
  757 + 3814.508301 0.111674
  758 + 3818.365234 0.091109
  759 + 3822.222168 0.057195
  760 + 3826.079102 0.063312
  761 + 3829.936035 0.095574
  762 + 3833.792969 0.109077
  763 + 3837.649902 0.088916
  764 + 3841.506836 0.057421
  765 + 3845.363770 0.074963
  766 + 3849.220703 0.123836
  767 + 3853.077637 0.098914
0 768 \ No newline at end of file
... ...