diff --git a/CMakeLists.txt b/CMakeLists.txt index a7b82f4..1a299a7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -52,8 +52,10 @@ file(GLOB SRC_CU "*.cu") #set up copying data files configure_file(kPMMA.txt ${CMAKE_CURRENT_BINARY_DIR}/kPMMA.txt @ONLY) +configure_file(eta_polystyreneK.txt ${CMAKE_CURRENT_BINARY_DIR}/eta_polystyreneK.txt @ONLY) configure_file(eta_TolueneK.txt ${CMAKE_CURRENT_BINARY_DIR}/eta_TolueneK.txt @ONLY) configure_file(eta_TolueneN.txt ${CMAKE_CURRENT_BINARY_DIR}/eta_TolueneN.txt @ONLY) +configure_file(source_midIR.txt ${CMAKE_CURRENT_BINARY_DIR}/source_midIR.txt @ONLY) #determine which source files have to be moc'd Qt4_wrap_cpp(UI_MOC ${SRC_H}) diff --git a/FileIO.cpp b/FileIO.cpp index 8e5ddff..21d7796 100644 --- a/FileIO.cpp +++ b/FileIO.cpp @@ -14,7 +14,7 @@ vector LoadSpectrum(string filename) //open the file ifstream inFile(filename.c_str()); - + //read all elements of the file SpecPair temp; while(!inFile.eof()){ inFile>>temp.nu; @@ -55,6 +55,7 @@ vector LoadSpectrum(string filename) while(j < (int)S.size()-1 && S[j].nu <= nu) j++; + lowVal = S[j-1].nu; highVal = S[j].nu; a = (nu - lowVal)/(highVal - lowVal); diff --git a/SimulateSpectrum.cpp b/SimulateSpectrum.cpp index 52a33af..bc7629d 100644 --- a/SimulateSpectrum.cpp +++ b/SimulateSpectrum.cpp @@ -2,7 +2,7 @@ #include #include #include -#include "globals.h" +#include "globals.h" #include #include //#include "cufft.h" @@ -352,11 +352,16 @@ void updateSpectrum(double* I, double I0, int n) //set the spectrum value based on the current display type if(dispSimType == AbsorbanceSpecType) + { temp.A = -log10(I[i]/I0); - else + //cout<* B = (complex*)malloc(sizeof(complex) * Nl * nLambda); computeBArray(B, Nl, nLambda); - QProgressDialog progress("Computing distortion map...", "Stop", 0, nSteps * nSteps); + QProgressDialog progress("Computing distortion map...", "Stop", 0, nSteps * nSteps); progress.setWindowModality(Qt::WindowModal); double D; - double e = 0.001; - int i, o; - for(i=0; i= nLambda-1) + if(i >= nLambda) return; //compute the delta-theta value @@ -155,6 +155,7 @@ void cudaComputeSpectrum(double* cpuI, double* cpuB, double* cpuAlpha, HANDLE_ERROR(cudaMalloc(&gpuB, sizeof(double2) * nLambda * Nl)); HANDLE_ERROR(cudaMemcpy(gpuB, cpuB, sizeof(double2) * nLambda * Nl, cudaMemcpyHostToDevice)); + double* gpuAlpha; HANDLE_ERROR(cudaMalloc(&gpuAlpha, sizeof(double) * Nl)); HANDLE_ERROR(cudaMemcpy(gpuAlpha, cpuAlpha, sizeof(double) * Nl, cudaMemcpyHostToDevice)); diff --git a/eta_polystyreneK.txt b/eta_polystyreneK.txt new file mode 100644 index 0000000..726195d --- /dev/null +++ b/eta_polystyreneK.txt @@ -0,0 +1,1609 @@ +898.826141 0.019116 +900.754953 0.055527 +902.683764 0.098452 +904.612576 0.136831 +906.541387 0.156627 +908.470199 0.148732 +910.39901 0.117418 +912.327822 0.076677 +914.256633 0.038751 +916.185445 0.009591 +918.114256 -0.010209 +920.043068 -0.023033 +921.971879 -0.031537 +923.90069 -0.037414 +925.829502 -0.041293 +927.758313 -0.042979 +929.687125 -0.042103 +931.615936 -0.038145 +933.544748 -0.031093 +935.473559 -0.021914 +937.402371 -0.011949 +939.331182 -0.002791 +941.259994 0.003752 +943.188805 0.005688 +945.117617 0.002738 +947.046428 -0.002821 +948.97524 -0.00827 +950.904051 -0.011879 +952.832862 -0.012962 +954.761674 -0.011105 +956.690485 -0.0056 +958.619297 0.004797 +960.548108 0.019407 +962.47692 0.033174 +964.405731 0.039614 +966.334543 0.036064 +968.263354 0.025338 +970.192166 0.013163 +972.120977 0.005366 +974.049789 0.004951 +975.9786 0.010871 +977.907411 0.018766 +979.836223 0.023503 +981.765034 0.022789 +983.693846 0.017146 +985.622657 0.009046 +987.551469 0.001536 +989.48028 -0.003576 +991.409092 -0.006299 +993.337903 -0.007164 +995.266715 -0.005695 +997.195526 0.000076 +999.124338 0.01503 +1001.053149 0.037412 +1002.98196 0.050995 +1004.910772 0.046953 +1006.839583 0.037742 +1008.768395 0.035056 +1010.697206 0.039667 +1012.626018 0.049282 +1014.554829 0.062634 +1016.483641 0.08028 +1018.412452 0.103098 +1020.341264 0.132867 +1022.270075 0.174146 +1024.198887 0.233886 +1026.127698 0.306859 +1028.056509 0.352951 +1029.985321 0.332845 +1031.914132 0.253422 +1033.842944 0.15337 +1035.771755 0.075206 +1037.700567 0.031441 +1039.629378 0.01182 +1041.55819 0.004927 +1043.487001 0.003838 +1045.415813 0.005858 +1047.344624 0.009609 +1049.273436 0.014563 +1051.202247 0.020806 +1053.131058 0.02831 +1055.05987 0.037254 +1056.988681 0.047803 +1058.917493 0.060849 +1060.846304 0.077346 +1062.775116 0.098218 +1064.703927 0.122229 +1066.632739 0.144019 +1068.56155 0.155908 +1070.490362 0.152919 +1072.419173 0.136414 +1074.347985 0.112283 +1076.276796 0.089477 +1078.205607 0.072866 +1080.134419 0.059604 +1082.06323 0.046156 +1083.992042 0.032763 +1085.920853 0.021442 +1087.849665 0.013006 +1089.778476 0.007043 +1091.707288 0.002791 +1093.636099 -0.00074 +1095.564911 -0.00408 +1097.493722 -0.007335 +1099.422534 -0.010612 +1101.351345 -0.013687 +1103.280156 -0.016017 +1105.208968 -0.017002 +1107.137779 -0.016168 +1109.066591 -0.013881 +1110.995402 -0.011752 +1112.924214 -0.011588 +1114.853025 -0.014376 +1116.781837 -0.019884 +1118.710648 -0.026342 +1120.63946 -0.031825 +1122.568271 -0.035456 +1124.497083 -0.037312 +1126.425894 -0.037953 +1128.354706 -0.037725 +1130.283517 -0.036904 +1132.212328 -0.035615 +1134.14114 -0.033845 +1136.069951 -0.031363 +1137.998763 -0.027797 +1139.927574 -0.0228 +1141.856386 -0.016049 +1143.785197 -0.007725 +1145.714009 0.002497 +1147.64282 0.01699 +1149.571632 0.041497 +1151.500443 0.07804 +1153.429255 0.111111 +1155.358066 0.116425 +1157.286877 0.092129 +1159.215689 0.060068 +1161.1445 0.037319 +1163.073312 0.025925 +1165.002123 0.02154 +1166.930935 0.020725 +1168.859746 0.022127 +1170.788558 0.025461 +1172.717369 0.031735 +1174.646181 0.044191 +1176.574992 0.06768 +1178.503804 0.100886 +1180.432615 0.12747 +1182.361426 0.12922 +1184.290238 0.110556 +1186.219049 0.090473 +1188.147861 0.07943 +1190.076672 0.076068 +1192.005484 0.07608 +1193.934295 0.077001 +1195.863107 0.077681 +1197.791918 0.076518 +1199.72073 0.07196 +1201.649541 0.064291 +1203.578353 0.055144 +1205.507164 0.046329 +1207.435975 0.038878 +1209.364787 0.032932 +1211.293598 0.028246 +1213.22241 0.024716 +1215.151221 0.022392 +1217.080033 0.021147 +1219.008844 0.020953 +1220.937656 0.021648 +1222.866467 0.022672 +1224.795279 0.023299 +1226.72409 0.022969 +1228.652902 0.021782 +1230.581713 0.020246 +1232.510524 0.019099 +1234.439336 0.018863 +1236.368147 0.019646 +1238.296959 0.021471 +1240.22577 0.02385 +1242.154582 0.026303 +1244.083393 0.028557 +1246.012205 0.030419 +1247.941016 0.031848 +1249.869828 0.033047 +1251.798639 0.034626 +1253.727451 0.037155 +1255.656262 0.041643 +1257.585073 0.049886 +1259.513885 0.066247 +1261.442696 0.09833 +1263.371508 0.150898 +1265.300319 0.198542 +1267.229131 0.186024 +1269.157942 0.128142 +1271.086754 0.085322 +1273.015565 0.069549 +1274.944377 0.06766 +1276.873188 0.070867 +1278.802 0.074763 +1280.730811 0.077356 +1282.659622 0.078091 +1284.588434 0.078463 +1286.517245 0.07974 +1288.446057 0.082769 +1290.374868 0.086921 +1292.30368 0.090579 +1294.232491 0.093192 +1296.161303 0.095148 +1298.090114 0.098445 +1300.018926 0.104318 +1301.947737 0.112521 +1303.876549 0.121499 +1305.80536 0.130266 +1307.734172 0.139144 +1309.662983 0.147148 +1311.591794 0.152134 +1313.520606 0.1521 +1315.449417 0.148157 +1317.378229 0.143551 +1319.30704 0.141058 +1321.235852 0.142198 +1323.164663 0.147204 +1325.093475 0.155233 +1327.022286 0.163276 +1328.951098 0.166549 +1330.879909 0.161526 +1332.808721 0.150535 +1334.737532 0.13887 +1336.666343 0.130617 +1338.595155 0.127828 +1340.523966 0.129919 +1342.452778 0.135934 +1344.381589 0.144426 +1346.310401 0.153022 +1348.239212 0.159704 +1350.168024 0.163903 +1352.096835 0.16632 +1354.025647 0.168823 +1355.954458 0.173767 +1357.88327 0.18194 +1359.812081 0.192458 +1361.740892 0.202613 +1363.669704 0.210208 +1365.598515 0.215759 +1367.527327 0.221325 +1369.456138 0.226778 +1371.38495 0.230758 +1373.313761 0.231634 +1375.242573 0.225132 +1377.171384 0.211963 +1379.100196 0.197043 +1381.029007 0.183587 +1382.957819 0.171175 +1384.88663 0.15737 +1386.815441 0.1414 +1388.744253 0.122888 +1390.673064 0.104874 +1392.601876 0.091083 +1394.530687 0.08126 +1396.459499 0.073743 +1398.38831 0.068515 +1400.317122 0.064433 +1402.245933 0.060761 +1404.174745 0.059405 +1406.103556 0.058546 +1408.032368 0.057872 +1409.961179 0.058331 +1411.88999 0.059098 +1413.818802 0.060997 +1415.747613 0.064104 +1417.676425 0.069983 +1419.605236 0.075169 +1421.534048 0.076623 +1423.462859 0.079539 +1425.391671 0.085871 +1427.320482 0.0967 +1429.249294 0.114646 +1431.178105 0.142209 +1433.106917 0.182598 +1435.035728 0.239951 +1436.964539 0.311419 +1438.893351 0.38584 +1440.822162 0.465127 +1442.750974 0.559225 +1444.679785 0.673053 +1446.608597 0.800697 +1448.537408 0.94843 +1450.46622 1.148421 +1452.395031 1.296248 +1454.323843 1.058714 +1456.252654 0.645584 +1458.181466 0.370692 +1460.110277 0.238045 +1462.039089 0.179208 +1463.9679 0.151525 +1465.896711 0.135497 +1467.825523 0.124548 +1469.754334 0.120067 +1471.683146 0.121014 +1473.611957 0.123711 +1475.540769 0.127333 +1477.46958 0.136369 +1479.398392 0.154027 +1481.327203 0.186162 +1483.256015 0.242567 +1485.184826 0.335084 +1487.113638 0.478748 +1489.042449 0.702249 +1490.97126 1.035018 +1492.900072 1.314579 +1494.828883 1.088169 +1496.757695 0.668532 +1498.686506 0.383451 +1500.615318 0.233235 +1502.544129 0.159438 +1504.472941 0.125684 +1506.401752 0.108663 +1508.330564 0.092218 +1510.259375 0.079381 +1512.188187 0.072439 +1514.116998 0.068085 +1516.045809 0.066147 +1517.974621 0.065145 +1519.903432 0.066505 +1521.832244 0.068129 +1523.761055 0.066589 +1525.689867 0.067278 +1527.618678 0.069721 +1529.54749 0.07302 +1531.476301 0.080217 +1533.405113 0.089788 +1535.333924 0.09914 +1537.262736 0.110433 +1539.191547 0.12399 +1541.120358 0.127162 +1543.04917 0.12121 +1544.977981 0.114064 +1546.906793 0.105082 +1548.835604 0.097572 +1550.764416 0.089909 +1552.693227 0.083611 +1554.622039 0.078764 +1556.55085 0.076508 +1558.479662 0.079169 +1560.408473 0.075715 +1562.337285 0.068477 +1564.266096 0.067407 +1566.194907 0.069866 +1568.123719 0.074403 +1570.05253 0.080782 +1571.981342 0.087721 +1573.910153 0.099806 +1575.838965 0.118145 +1577.767776 0.141011 +1579.696588 0.185645 +1581.625399 0.250284 +1583.554211 0.273177 +1585.483022 0.233469 +1587.411834 0.193808 +1589.340645 0.189695 +1591.269456 0.21428 +1593.198268 0.258517 +1595.127079 0.327737 +1597.055891 0.438573 +1598.984702 0.585889 +1600.913514 0.686477 +1602.842325 0.638357 +1604.771137 0.48614 +1606.699948 0.336817 +1608.62876 0.231431 +1610.557571 0.169635 +1612.486383 0.136046 +1614.415194 0.119059 +1616.344005 0.111357 +1618.272817 0.102592 +1620.201628 0.095256 +1622.13044 0.093313 +1624.059251 0.09145 +1625.988063 0.08831 +1627.916874 0.085677 +1629.845686 0.083334 +1631.774497 0.081142 +1633.703309 0.082511 +1635.63212 0.084804 +1637.560932 0.082263 +1639.489743 0.079602 +1641.418555 0.079711 +1643.347366 0.081492 +1645.276177 0.085877 +1647.204989 0.088839 +1649.1338 0.08828 +1651.062612 0.093733 +1652.991423 0.102457 +1654.920235 0.100559 +1656.849046 0.096972 +1658.777858 0.099424 +1660.706669 0.103812 +1662.635481 0.108472 +1664.564292 0.110364 +1666.493104 0.111515 +1668.421915 0.114413 +1670.350726 0.114846 +1672.279538 0.112838 +1674.208349 0.112469 +1676.137161 0.111224 +1678.065972 0.107351 +1679.994784 0.104967 +1681.923595 0.105127 +1683.852407 0.107257 +1685.781218 0.103914 +1687.71003 0.095695 +1689.638841 0.092176 +1691.567653 0.089217 +1693.496464 0.089235 +1695.425275 0.093072 +1697.354087 0.092908 +1699.282898 0.094532 +1701.21171 0.094565 +1703.140521 0.089751 +1705.069333 0.088036 +1706.998144 0.086649 +1708.926956 0.084416 +1710.855767 0.0836 +1712.784579 0.083932 +1714.71339 0.086557 +1716.642202 0.090393 +1718.571013 0.091167 +1720.499824 0.088747 +1722.428636 0.088906 +1724.357447 0.091216 +1726.286259 0.093318 +1728.21507 0.096921 +1730.143882 0.101145 +1732.072693 0.108343 +1734.001505 0.117106 +1735.930316 0.120457 +1737.859128 0.124114 +1739.787939 0.131207 +1741.716751 0.136288 +1743.645562 0.139941 +1745.574373 0.142775 +1747.503185 0.144048 +1749.431996 0.143985 +1751.360808 0.140993 +1753.289619 0.134565 +1755.218431 0.128032 +1757.147242 0.122382 +1759.076054 0.116046 +1761.004865 0.111332 +1762.933677 0.106691 +1764.862488 0.101762 +1766.7913 0.100145 +1768.720111 0.09994 +1770.648922 0.101965 +1772.577734 0.105371 +1774.506545 0.10536 +1776.435357 0.103826 +1778.364168 0.102677 +1780.29298 0.101695 +1782.221791 0.101443 +1784.150603 0.103013 +1786.079414 0.106595 +1788.008226 0.112037 +1789.937037 0.121362 +1791.865849 0.134189 +1793.79466 0.146862 +1795.723471 0.158872 +1797.652283 0.171361 +1799.581094 0.181932 +1801.509906 0.188218 +1803.438717 0.189858 +1805.367529 0.187906 +1807.29634 0.183832 +1809.225152 0.178212 +1811.153963 0.171829 +1813.082775 0.16489 +1815.011586 0.15827 +1816.940398 0.151991 +1818.869209 0.145724 +1820.798021 0.139621 +1822.726832 0.1338 +1824.655643 0.128593 +1826.584455 0.122792 +1828.513266 0.117736 +1830.442078 0.113421 +1832.370889 0.108464 +1834.299701 0.104862 +1836.228512 0.102651 +1838.157324 0.101362 +1840.086135 0.100761 +1842.014947 0.10182 +1843.943758 0.104352 +1845.87257 0.105103 +1847.801381 0.105917 +1849.730192 0.108669 +1851.659004 0.112554 +1853.587815 0.118007 +1855.516627 0.125107 +1857.445438 0.134214 +1859.37425 0.145106 +1861.303061 0.157258 +1863.231873 0.169641 +1865.160684 0.18088 +1867.089496 0.190347 +1869.018307 0.19634 +1870.947119 0.197752 +1872.87593 0.196181 +1874.804741 0.193735 +1876.733553 0.190785 +1878.662364 0.187648 +1880.591176 0.184607 +1882.519987 0.181433 +1884.448799 0.17786 +1886.37761 0.173383 +1888.306422 0.168076 +1890.235233 0.161315 +1892.164045 0.153433 +1894.092856 0.14591 +1896.021668 0.138753 +1897.950479 0.13221 +1899.87929 0.126761 +1901.808102 0.122409 +1903.736913 0.119208 +1905.665725 0.117002 +1907.594536 0.115688 +1909.523348 0.115047 +1911.452159 0.115034 +1913.380971 0.11573 +1915.309782 0.117364 +1917.238594 0.120266 +1919.167405 0.123393 +1921.096217 0.126729 +1923.025028 0.131173 +1924.953839 0.135966 +1926.882651 0.141533 +1928.811462 0.148687 +1930.740274 0.1579 +1932.669085 0.170189 +1934.597897 0.185288 +1936.526708 0.202183 +1938.45552 0.218642 +1940.384331 0.23199 +1942.313143 0.239913 +1944.241954 0.240784 +1946.170766 0.235857 +1948.099577 0.227507 +1950.028388 0.218213 +1951.9572 0.209827 +1953.886011 0.203169 +1955.814823 0.19817 +1957.743634 0.193839 +1959.672446 0.189185 +1961.601257 0.183474 +1963.530069 0.17645 +1965.45888 0.168196 +1967.387692 0.159124 +1969.316503 0.149953 +1971.245315 0.141606 +1973.174126 0.134931 +1975.102938 0.130401 +1977.031749 0.128004 +1978.96056 0.127125 +1980.889372 0.127123 +1982.818183 0.127531 +1984.746995 0.127861 +1986.675806 0.127208 +1988.604618 0.125152 +1990.533429 0.122585 +1992.462241 0.120088 +1994.391052 0.117806 +1996.319864 0.116174 +1998.248675 0.115282 +2000.177487 0.114829 +2002.106298 0.114681 +2004.035109 0.11471 +2005.963921 0.114685 +2007.892732 0.114603 +2009.821544 0.114448 +2011.750355 0.114134 +2013.679167 0.113768 +2015.607978 0.11359 +2017.53679 0.113511 +2019.465601 0.113379 +2021.394413 0.113442 +2023.323224 0.113706 +2025.252036 0.114022 +2027.180847 0.114388 +2029.109658 0.114717 +2031.03847 0.114901 +2032.967281 0.114965 +2034.896093 0.115033 +2036.824904 0.115173 +2038.753716 0.115357 +2040.682527 0.115465 +2042.611339 0.115548 +2044.54015 0.115773 +2046.468962 0.116096 +2048.397773 0.116457 +2050.326585 0.11686 +2052.255396 0.117286 +2054.184207 0.117697 +2056.113019 0.11799 +2058.04183 0.118142 +2059.970642 0.118333 +2061.899453 0.118544 +2063.828265 0.118669 +2065.757076 0.118798 +2067.685888 0.119036 +2069.614699 0.119321 +2071.543511 0.119443 +2073.472322 0.119571 +2075.401134 0.119765 +2077.329945 0.119856 +2079.258756 0.12003 +2081.187568 0.120261 +2083.116379 0.120473 +2085.045191 0.120706 +2086.974002 0.120945 +2088.902814 0.121293 +2090.831625 0.121745 +2092.760437 0.122188 +2094.689248 0.122528 +2096.61806 0.122864 +2098.546871 0.12338 +2100.475683 0.123921 +2102.404494 0.12433 +2104.333305 0.124752 +2106.262117 0.125216 +2108.190928 0.125629 +2110.11974 0.126068 +2112.048551 0.126586 +2113.977363 0.127033 +2115.906174 0.127327 +2117.834986 0.127651 +2119.763797 0.128046 +2121.692609 0.128417 +2123.62142 0.128735 +2125.550232 0.128931 +2127.479043 0.129081 +2129.407854 0.129399 +2131.336666 0.129826 +2133.265477 0.130184 +2135.194289 0.130585 +2137.1231 0.131051 +2139.051912 0.131452 +2140.980723 0.131866 +2142.909535 0.132322 +2144.838346 0.132709 +2146.767158 0.133002 +2148.695969 0.133256 +2150.624781 0.133439 +2152.553592 0.133691 +2154.482404 0.134037 +2156.411215 0.134244 +2158.340026 0.134446 +2160.268838 0.134624 +2162.197649 0.134692 +2164.126461 0.134876 +2166.055272 0.135194 +2167.984084 0.135596 +2169.912895 0.136069 +2171.841707 0.136522 +2173.770518 0.136875 +2175.69933 0.137345 +2177.628141 0.138167 +2179.556953 0.139162 +2181.485764 0.140071 +2183.414575 0.1408 +2185.343387 0.141255 +2187.272198 0.141298 +2189.20101 0.141049 +2191.129821 0.14076 +2193.058633 0.140542 +2194.987444 0.14043 +2196.916256 0.14046 +2198.845067 0.140652 +2200.773879 0.140877 +2202.70269 0.141177 +2204.631502 0.141823 +2206.560313 0.142721 +2208.489124 0.143428 +2210.417936 0.143859 +2212.346747 0.144136 +2214.275559 0.144284 +2216.20437 0.144371 +2218.133182 0.14446 +2220.061993 0.144749 +2221.990805 0.14516 +2223.919616 0.145514 +2225.848428 0.145954 +2227.777239 0.146458 +2229.706051 0.146915 +2231.634862 0.147219 +2233.563673 0.147547 +2235.492485 0.14805 +2237.421296 0.148552 +2239.350108 0.149096 +2241.278919 0.149705 +2243.207731 0.150462 +2245.136542 0.151414 +2247.065354 0.152388 +2248.994165 0.153342 +2250.922977 0.154234 +2252.851788 0.154944 +2254.7806 0.155397 +2256.709411 0.155562 +2258.638222 0.155398 +2260.567034 0.155148 +2262.495845 0.154919 +2264.424657 0.154622 +2266.353468 0.154399 +2268.28228 0.154044 +2270.211091 0.153605 +2272.139903 0.153435 +2274.068714 0.153447 +2275.997526 0.153611 +2277.926337 0.153907 +2279.855149 0.154279 +2281.78396 0.154837 +2283.712771 0.155643 +2285.641583 0.156634 +2287.570394 0.157822 +2289.499206 0.159261 +2291.428017 0.160673 +2293.356829 0.161805 +2295.28564 0.162821 +2297.214452 0.163992 +2299.143263 0.165372 +2301.072075 0.166928 +2303.000886 0.168824 +2304.929698 0.171254 +2306.858509 0.174292 +2308.78732 0.177547 +2310.716132 0.179742 +2312.644943 0.17986 +2314.573755 0.178195 +2316.502566 0.175897 +2318.431378 0.174145 +2320.360189 0.173305 +2322.289001 0.173397 +2324.217812 0.174666 +2326.146624 0.177102 +2328.075435 0.180741 +2330.004247 0.185733 +2331.933058 0.191719 +2333.86187 0.197679 +2335.790681 0.201897 +2337.719492 0.202656 +2339.648304 0.200019 +2341.577115 0.195394 +2343.505927 0.18993 +2345.434738 0.184271 +2347.36355 0.17885 +2349.292361 0.175881 +2351.221173 0.17721 +2353.149984 0.181051 +2355.078796 0.185152 +2357.007607 0.188466 +2358.936419 0.19061 +2360.86523 0.191621 +2362.794041 0.191254 +2364.722853 0.189712 +2366.651664 0.187154 +2368.580476 0.183936 +2370.509287 0.180617 +2372.438099 0.177401 +2374.36691 0.174623 +2376.295722 0.172417 +2378.224533 0.17078 +2380.153345 0.169606 +2382.082156 0.168838 +2384.010968 0.168405 +2385.939779 0.168107 +2387.86859 0.167967 +2389.797402 0.167976 +2391.726213 0.168171 +2393.655025 0.168357 +2395.583836 0.168372 +2397.512648 0.168458 +2399.441459 0.168707 +2401.370271 0.168968 +2403.299082 0.16905 +2405.227894 0.169069 +2407.156705 0.169168 +2409.085517 0.169362 +2411.014328 0.169469 +2412.943139 0.169276 +2414.871951 0.169003 +2416.800762 0.168762 +2418.729574 0.168597 +2420.658385 0.168553 +2422.587197 0.168569 +2424.516008 0.168771 +2426.44482 0.169129 +2428.373631 0.169535 +2430.302443 0.169982 +2432.231254 0.170372 +2434.160066 0.170749 +2436.088877 0.171109 +2438.017688 0.171304 +2439.9465 0.171559 +2441.875311 0.171954 +2443.804123 0.172252 +2445.732934 0.172533 +2447.661746 0.172919 +2449.590557 0.173285 +2451.519369 0.173546 +2453.44818 0.173746 +2455.376992 0.17378 +2457.305803 0.173798 +2459.234615 0.173936 +2461.163426 0.174041 +2463.092237 0.174331 +2465.021049 0.174773 +2466.94986 0.17525 +2468.878672 0.175969 +2470.807483 0.1769 +2472.736295 0.177884 +2474.665106 0.178806 +2476.593918 0.179689 +2478.522729 0.18058 +2480.451541 0.181513 +2482.380352 0.182431 +2484.309164 0.183214 +2486.237975 0.183838 +2488.166786 0.184415 +2490.095598 0.185024 +2492.024409 0.185536 +2493.953221 0.186041 +2495.882032 0.186511 +2497.810844 0.186784 +2499.739655 0.187141 +2501.668467 0.187968 +2503.597278 0.189047 +2505.52609 0.18986 +2507.454901 0.190469 +2509.383713 0.19085 +2511.312524 0.191022 +2513.241336 0.19108 +2515.170147 0.19102 +2517.098958 0.191158 +2519.02777 0.191464 +2520.956581 0.191788 +2522.885393 0.191736 +2524.814204 0.191262 +2526.743016 0.190801 +2528.671827 0.190289 +2530.600639 0.189953 +2532.52945 0.189923 +2534.458262 0.190123 +2536.387073 0.190408 +2538.315885 0.190636 +2540.244696 0.191161 +2542.173507 0.191933 +2544.102319 0.192745 +2546.03113 0.193325 +2547.959942 0.193318 +2549.888753 0.193002 +2551.817565 0.192718 +2553.746376 0.192498 +2555.675188 0.1924 +2557.603999 0.192423 +2559.532811 0.192543 +2561.461622 0.192815 +2563.390434 0.193051 +2565.319245 0.193201 +2567.248056 0.193367 +2569.176868 0.193569 +2571.105679 0.193981 +2573.034491 0.194771 +2574.963302 0.196257 +2576.892114 0.198574 +2578.820925 0.201146 +2580.749737 0.202697 +2582.678548 0.202301 +2584.60736 0.200499 +2586.536171 0.198662 +2588.464983 0.197755 +2590.393794 0.197753 +2592.322605 0.198564 +2594.251417 0.200231 +2596.180228 0.202582 +2598.10904 0.205336 +2600.037851 0.207771 +2601.966663 0.209284 +2603.895474 0.209494 +2605.824286 0.208434 +2607.753097 0.206518 +2609.681909 0.204271 +2611.61072 0.202505 +2613.539532 0.201388 +2615.468343 0.20087 +2617.397154 0.200874 +2619.325966 0.20132 +2621.254777 0.20257 +2623.183589 0.204249 +2625.1124 0.206349 +2627.041212 0.209383 +2628.970023 0.212561 +2630.898835 0.214577 +2632.827646 0.214551 +2634.756458 0.212755 +2636.685269 0.21033 +2638.614081 0.208151 +2640.542892 0.206805 +2642.471703 0.206382 +2644.400515 0.206505 +2646.329326 0.206569 +2648.258138 0.206509 +2650.186949 0.206611 +2652.115761 0.206585 +2654.044572 0.206457 +2655.973384 0.206433 +2657.902195 0.20652 +2659.831007 0.206635 +2661.759818 0.206556 +2663.68863 0.206633 +2665.617441 0.207076 +2667.546253 0.207667 +2669.475064 0.208329 +2671.403875 0.20878 +2673.332687 0.208903 +2675.261498 0.209098 +2677.19031 0.20965 +2679.119121 0.210366 +2681.047933 0.211134 +2682.976744 0.211863 +2684.905556 0.212134 +2686.834367 0.212008 +2688.763179 0.211882 +2690.69199 0.211709 +2692.620802 0.21151 +2694.549613 0.211354 +2696.478424 0.21121 +2698.407236 0.211133 +2700.336047 0.211036 +2702.264859 0.21097 +2704.19367 0.210949 +2706.122482 0.211134 +2708.051293 0.211489 +2709.980105 0.211672 +2711.908916 0.21201 +2713.837728 0.212475 +2715.766539 0.212949 +2717.695351 0.21329 +2719.624162 0.21325 +2721.552973 0.213415 +2723.481785 0.213619 +2725.410596 0.213512 +2727.339408 0.213249 +2729.268219 0.212902 +2731.197031 0.212687 +2733.125842 0.212272 +2735.054654 0.211618 +2736.983465 0.211068 +2738.912277 0.210601 +2740.841088 0.210235 +2742.7699 0.210209 +2744.698711 0.210417 +2746.627522 0.210385 +2748.556334 0.210534 +2750.485145 0.211143 +2752.413957 0.211694 +2754.342768 0.21216 +2756.27158 0.212735 +2758.200391 0.213578 +2760.129203 0.214508 +2762.058014 0.215202 +2763.986826 0.21594 +2765.915637 0.216926 +2767.844449 0.218196 +2769.77326 0.219802 +2771.702071 0.221598 +2773.630883 0.223649 +2775.559694 0.225961 +2777.488506 0.228074 +2779.417317 0.229335 +2781.346129 0.229735 +2783.27494 0.229882 +2785.203752 0.22995 +2787.132563 0.230202 +2789.061375 0.230892 +2790.990186 0.231852 +2792.918998 0.233036 +2794.847809 0.234589 +2796.77662 0.236532 +2798.705432 0.238525 +2800.634243 0.240706 +2802.563055 0.243102 +2804.491866 0.245332 +2806.420678 0.247576 +2808.349489 0.249618 +2810.278301 0.251003 +2812.207112 0.252009 +2814.135924 0.253037 +2816.064735 0.254085 +2817.993547 0.255422 +2819.922358 0.257341 +2821.851169 0.259794 +2823.779981 0.263176 +2825.708792 0.267807 +2827.637604 0.27419 +2829.566415 0.283196 +2831.495227 0.296172 +2833.424038 0.315686 +2835.35285 0.344361 +2837.281661 0.384354 +2839.210473 0.436541 +2841.139284 0.498027 +2843.068096 0.561707 +2844.996907 0.618233 +2846.925719 0.658652 +2848.85453 0.679409 +2850.783341 0.68151 +2852.712153 0.667253 +2854.640964 0.641157 +2856.569776 0.607785 +2858.498587 0.571429 +2860.427399 0.535204 +2862.35621 0.501943 +2864.285022 0.475122 +2866.213833 0.455775 +2868.142645 0.443466 +2870.071456 0.43825 +2872.000268 0.439521 +2873.929079 0.446169 +2875.85789 0.456948 +2877.786702 0.470209 +2879.715513 0.484989 +2881.644325 0.500983 +2883.573136 0.517427 +2885.501948 0.533856 +2887.430759 0.550845 +2889.359571 0.569251 +2891.288382 0.589674 +2893.217194 0.613596 +2895.146005 0.641645 +2897.074817 0.673848 +2899.003628 0.711088 +2900.932439 0.751862 +2902.861251 0.793443 +2904.790062 0.833036 +2906.718874 0.870131 +2908.647685 0.905128 +2910.576497 0.936179 +2912.505308 0.96319 +2914.43412 0.985373 +2916.362931 1.003475 +2918.291743 1.016608 +2920.220554 1.024552 +2922.149366 1.030211 +2924.078177 1.031873 +2926.006988 1.030041 +2927.9358 1.024755 +2929.864611 1.01501 +2931.793423 0.998587 +2933.722234 0.972668 +2935.651046 0.937253 +2937.579857 0.893389 +2939.508669 0.843892 +2941.43748 0.790927 +2943.366292 0.737193 +2945.295103 0.683793 +2947.223915 0.632823 +2949.152726 0.586355 +2951.081537 0.544135 +2953.010349 0.507495 +2954.93916 0.475596 +2956.867972 0.447569 +2958.796783 0.423856 +2960.725595 0.403321 +2962.654406 0.385648 +2964.583218 0.370736 +2966.512029 0.358245 +2968.440841 0.348571 +2970.369652 0.341879 +2972.298464 0.337982 +2974.227275 0.336502 +2976.156086 0.335731 +2978.084898 0.333503 +2980.013709 0.329817 +2981.942521 0.326341 +2983.871332 0.324608 +2985.800144 0.325078 +2987.728955 0.328491 +2989.657767 0.335994 +2991.586578 0.349101 +2993.51539 0.370721 +2995.444201 0.403891 +2997.373013 0.448325 +2999.301824 0.49167 +3001.230635 0.513568 +3003.159447 0.507323 +3005.088258 0.485496 +3007.01707 0.465665 +3008.945881 0.458921 +3010.874693 0.469955 +3012.803504 0.500276 +3014.732316 0.551436 +3016.661127 0.626723 +3018.589939 0.726168 +3020.51875 0.839311 +3022.447562 0.940348 +3024.376373 1.003036 +3026.305185 1.023267 +3028.233996 1.007083 +3030.162807 0.956869 +3032.091619 0.877489 +3034.02043 0.786078 +3035.949242 0.702611 +3037.878053 0.63608 +3039.806865 0.586712 +3041.735676 0.55271 +3043.664488 0.533079 +3045.593299 0.527991 +3047.522111 0.537437 +3049.450922 0.559581 +3051.379734 0.592104 +3053.308545 0.635706 +3055.237356 0.691724 +3057.166168 0.751354 +3059.094979 0.793975 +3061.023791 0.800709 +3062.952602 0.768546 +3064.881414 0.711666 +3066.810225 0.6495 +3068.739037 0.597714 +3070.667848 0.563478 +3072.59666 0.546634 +3074.525471 0.547037 +3076.454283 0.566624 +3078.383094 0.605132 +3080.311905 0.650679 +3082.240717 0.675797 +3084.169528 0.657847 +3086.09834 0.601596 +3088.027151 0.531414 +3089.955963 0.469621 +3091.884774 0.4255 +3093.813586 0.39929 +3095.742397 0.388242 +3097.671209 0.388808 +3099.60002 0.396983 +3101.528832 0.406444 +3103.457643 0.408685 +3105.386454 0.398199 +3107.315266 0.376667 +3109.244077 0.350701 +3111.172889 0.326748 +3113.1017 0.307953 +3115.030512 0.293916 +3116.959323 0.283324 +3118.888135 0.275449 +3120.816946 0.269777 +3122.745758 0.265618 +3124.674569 0.26233 +3126.603381 0.260145 +3128.532192 0.258629 +3130.461003 0.257142 +3132.389815 0.255911 +3134.318626 0.254784 +3136.247438 0.254084 +3138.176249 0.253781 +3140.105061 0.253515 +3142.033872 0.253558 +3143.962684 0.253668 +3145.891495 0.253615 +3147.820307 0.253611 +3149.749118 0.25411 +3151.67793 0.254765 +3153.606741 0.255316 +3155.535552 0.256769 +3157.464364 0.259264 +3159.393175 0.262176 +3161.321987 0.264613 +3163.250798 0.265147 +3165.17961 0.263051 +3167.108421 0.259509 +3169.037233 0.256449 +3170.966044 0.254302 +3172.894856 0.252767 +3174.823667 0.25166 +3176.752479 0.251085 +3178.68129 0.251061 +3180.610102 0.25123 +3182.538913 0.251486 +3184.467724 0.251497 +3186.396536 0.251189 +3188.325347 0.250996 +3190.254159 0.251151 +3192.18297 0.251305 +3194.111782 0.251456 +3196.040593 0.252199 +3197.969405 0.252932 +3199.898216 0.253134 +3201.827028 0.253039 +3203.755839 0.252719 +3205.684651 0.252311 +3207.613462 0.251783 +3209.542273 0.251237 +3211.471085 0.250747 +3213.399896 0.250256 +3215.328708 0.249763 +3217.257519 0.249408 +3219.186331 0.249207 +3221.115142 0.249078 +3223.043954 0.249008 +3224.972765 0.248706 +3226.901577 0.248731 +3228.830388 0.249071 +3230.7592 0.249003 +3232.688011 0.249042 +3234.616822 0.249081 +3236.545634 0.249047 +3238.474445 0.249236 +3240.403257 0.249073 +3242.332068 0.248752 +3244.26088 0.248831 +3246.189691 0.249126 +3248.118503 0.249288 +3250.047314 0.249432 +3251.976126 0.249651 +3253.904937 0.249615 +3255.833749 0.249736 +3257.76256 0.250085 +3259.691371 0.250079 +3261.620183 0.250027 +3263.548994 0.249888 +3265.477806 0.24964 +3267.406617 0.249626 +3269.335429 0.249694 +3271.26424 0.249807 +3273.193052 0.249828 +3275.121863 0.249878 +3277.050675 0.249895 +3278.979486 0.249785 +3280.908298 0.249808 +3282.837109 0.249813 +3284.76592 0.249789 +3286.694732 0.249659 +3288.623543 0.249551 +3290.552355 0.249511 +3292.481166 0.249615 +3294.409978 0.249728 +3296.338789 0.249376 +3298.267601 0.249414 +3300.196412 0.249722 +3302.125224 0.249944 +3304.054035 0.250497 +3305.982847 0.250587 +3307.911658 0.250259 +3309.840469 0.250169 +3311.769281 0.250324 +3313.698092 0.250552 +3315.626904 0.250761 +3317.555715 0.250865 +3319.484527 0.250767 +3321.413338 0.250802 +3323.34215 0.251016 +3325.270961 0.251139 +3327.199773 0.251185 +3329.128584 0.251276 +3331.057396 0.251407 +3332.986207 0.25179 +3334.915018 0.252033 +3336.84383 0.251727 +3338.772641 0.251556 +3340.701453 0.251753 +3342.630264 0.252262 +3344.559076 0.252683 +3346.487887 0.252646 +3348.416699 0.252296 +3350.34551 0.25207 +3352.274322 0.252352 +3354.203133 0.252539 +3356.131945 0.252763 +3358.060756 0.253006 +3359.989568 0.252986 +3361.918379 0.253007 +3363.84719 0.252939 +3365.776002 0.25309 +3367.704813 0.253287 +3369.633625 0.253479 +3371.562436 0.253799 +3373.491248 0.254206 +3375.420059 0.254653 +3377.348871 0.25457 +3379.277682 0.254679 +3381.206494 0.255121 +3383.135305 0.255261 +3385.064117 0.255358 +3386.992928 0.255286 +3388.921739 0.255274 +3390.850551 0.255694 +3392.779362 0.255877 +3394.708174 0.255563 +3396.636985 0.255615 +3398.565797 0.255856 +3400.494608 0.25586 +3402.42342 0.256101 +3404.352231 0.25634 +3406.281043 0.256481 +3408.209854 0.256665 +3410.138666 0.256483 +3412.067477 0.256245 +3413.996288 0.256456 +3415.9251 0.256582 +3417.853911 0.256522 +3419.782723 0.256677 +3421.711534 0.256881 +3423.640346 0.257059 +3425.569157 0.257258 +3427.497969 0.25749 +3429.42678 0.257935 +3431.355592 0.258744 +3433.284403 0.259481 +3435.213215 0.260036 +3437.142026 0.260535 +3439.070837 0.260679 +3440.999649 0.260811 +3442.92846 0.260901 +3444.857272 0.260856 +3446.786083 0.260984 +3448.714895 0.260841 +3450.643706 0.260145 +3452.572518 0.259617 +3454.501329 0.259693 +3456.430141 0.259702 +3458.358952 0.259525 +3460.287764 0.259429 +3462.216575 0.259422 +3464.145386 0.259446 +3466.074198 0.259472 +3468.003009 0.259609 +3469.931821 0.259817 +3471.860632 0.259894 +3473.789444 0.259374 +3475.718255 0.258983 +3477.647067 0.259068 +3479.575878 0.259013 +3481.50469 0.259009 +3483.433501 0.258929 +3485.362313 0.258826 +3487.291124 0.258528 +3489.219935 0.258262 +3491.148747 0.258164 +3493.077558 0.257725 +3495.00637 0.257706 +3496.935181 0.257967 +3498.863993 0.257689 +3500.792804 0.257153 +3502.721616 0.257073 +3504.650427 0.257325 +3506.579239 0.257281 +3508.50805 0.256852 +3510.436862 0.256399 +3512.365673 0.256466 +3514.294484 0.256362 +3516.223296 0.25611 +3518.152107 0.256116 +3520.080919 0.256034 +3522.00973 0.256203 +3523.938542 0.256201 +3525.867353 0.255988 +3527.796165 0.255956 +3529.724976 0.255846 +3531.653788 0.255404 +3533.582599 0.254767 +3535.511411 0.254451 +3537.440222 0.2543 +3539.369034 0.254254 +3541.297845 0.254355 +3543.226656 0.254244 +3545.155468 0.254172 +3547.084279 0.254359 +3549.013091 0.254317 +3550.941902 0.254242 +3552.870714 0.254103 +3554.799525 0.253573 +3556.728337 0.253407 +3558.657148 0.25348 +3560.58596 0.253492 +3562.514771 0.253358 +3564.443583 0.253551 +3566.372394 0.254747 +3568.301205 0.255163 +3570.230017 0.25428 +3572.158828 0.253699 +3574.08764 0.253773 +3576.016451 0.254271 +3577.945263 0.25483 +3579.874074 0.254679 +3581.802886 0.254425 +3583.731697 0.255135 +3585.660509 0.256356 +3587.58932 0.257263 +3589.518132 0.256772 +3591.446943 0.255803 +3593.375754 0.255819 +3595.304566 0.256054 +3597.233377 0.255773 +3599.162189 0.25528 +3601.091 0.255251 +3603.019812 0.254996 +3604.948623 0.255051 +3606.877435 0.256482 +3608.806246 0.257963 +3610.735058 0.258522 +3612.663869 0.259151 +3614.592681 0.26058 +3616.521492 0.262244 +3618.450303 0.264738 +3620.379115 0.265618 +3622.307926 0.26391 +3624.236738 0.262285 +3626.165549 0.26115 +3628.094361 0.262381 +3630.023172 0.262429 +3631.951984 0.259598 +3633.880795 0.258709 +3635.809607 0.258965 +3637.738418 0.260228 +3639.66723 0.262695 +3641.596041 0.265404 +3643.524852 0.26818 +3645.453664 0.270802 +3647.382475 0.27363 +3649.311287 0.274622 +3651.240098 0.271483 +3653.16891 0.266054 +3655.097721 0.263491 +3657.026533 0.261932 +3658.955344 0.258654 +3660.884156 0.256573 +3662.812967 0.254977 +3664.741779 0.253986 +3666.67059 0.253401 +3668.599401 0.254312 +3670.528213 0.256004 +3672.457024 0.254381 +3674.385836 0.254559 +3676.314647 0.255483 +3678.243459 0.252471 +3680.17227 0.249771 +3682.101082 0.248125 +3684.029893 0.246623 +3685.958705 0.246366 +3687.887516 0.248095 +3689.816328 0.248218 +3691.745139 0.245389 +3693.673951 0.243725 +3695.602762 0.243162 +3697.531573 0.243436 +3699.460385 0.244072 +3701.389196 0.244301 +3703.318008 0.24342 +3705.246819 0.2412 +3707.175631 0.240421 +3709.104442 0.240497 +3711.033254 0.241228 +3712.962065 0.24115 +3714.890877 0.239598 +3716.819688 0.23986 +3718.7485 0.24061 +3720.677311 0.241384 +3722.606122 0.241321 +3724.534934 0.240372 +3726.463745 0.239636 +3728.392557 0.237948 +3730.321368 0.23778 +3732.25018 0.238936 +3734.178991 0.239709 +3736.107803 0.239734 +3738.036614 0.238466 +3739.965426 0.236643 +3741.894237 0.237455 +3743.823049 0.242549 +3745.75186 0.2433 +3747.680671 0.240203 +3749.609483 0.241657 +3751.538294 0.243012 +3753.467106 0.240684 +3755.395917 0.238131 +3757.324729 0.237837 +3759.25354 0.23892 +3761.182352 0.23859 +3763.111163 0.237856 +3765.039975 0.238135 +3766.968786 0.238153 +3768.897598 0.238484 +3770.826409 0.238652 +3772.75522 0.237498 +3774.684032 0.237079 +3776.612843 0.237217 +3778.541655 0.237599 +3780.470466 0.23797 +3782.399278 0.237532 +3784.328089 0.237757 +3786.256901 0.238346 +3788.185712 0.238503 +3790.114524 0.238668 +3792.043335 0.239108 +3793.972147 0.239609 +3795.900958 0.24104 +3797.829769 0.241815 +3799.758581 0.243009 +3801.687392 0.24618 +3803.616204 0.244929 +3805.545015 0.243843 +3807.473827 0.244824 +3809.402638 0.243046 +3811.33145 0.242455 +3813.260261 0.242738 +3815.189073 0.24515 +3817.117884 0.246156 +3819.046696 0.244228 +3820.975507 0.245432 +3822.904318 0.244765 +3824.83313 0.242847 +3826.761941 0.242498 +3828.690753 0.241547 +3830.619564 0.241577 +3832.548376 0.242268 +3834.477187 0.242685 +3836.405999 0.243988 +3838.33481 0.245163 +3840.263622 0.24324 +3842.192433 0.241368 +3844.121245 0.240875 +3846.050056 0.239652 +3847.978867 0.239064 +3849.907679 0.239793 +3851.83649 0.244034 +3853.765302 0.248298 +3855.694113 0.24531 +3857.622925 0.240264 +3859.551736 0.239155 +3861.480548 0.239752 +3863.409359 0.240839 +3865.338171 0.241668 +3867.266982 0.241459 +3869.195794 0.242998 +3871.124605 0.243305 +3873.053417 0.241417 +3874.982228 0.24086 +3876.911039 0.239827 +3878.839851 0.240324 +3880.768662 0.241877 +3882.697474 0.241282 +3884.626285 0.241929 +3886.555097 0.242656 +3888.483908 0.241613 +3890.41272 0.242198 +3892.341531 0.24312 +3894.270343 0.242116 +3896.199154 0.241481 +3898.127966 0.242428 +3900.056777 0.243632 +3901.985588 0.244157 +3903.9144 0.244304 +3905.843211 0.243462 +3907.772023 0.242105 +3909.700834 0.241705 +3911.629646 0.24168 +3913.558457 0.242043 +3915.487269 0.242775 +3917.41608 0.243375 +3919.344892 0.243552 +3921.273703 0.243481 +3923.202515 0.244007 +3925.131326 0.244584 +3927.060137 0.244901 +3928.988949 0.245435 +3930.91776 0.246559 +3932.846572 0.247214 +3934.775383 0.246821 +3936.704195 0.24683 +3938.633006 0.24675 +3940.561818 0.246403 +3942.490629 0.24631 +3944.419441 0.245622 +3946.348252 0.244668 +3948.277064 0.244235 +3950.205875 0.244027 +3952.134686 0.243988 +3954.063498 0.244113 +3955.992309 0.24393 +3957.921121 0.243837 +3959.849932 0.244301 +3961.778744 0.244997 +3963.707555 0.24535 +3965.636367 0.245396 +3967.565178 0.24548 +3969.49399 0.2458 +3971.422801 0.24641 +3973.351613 0.246738 +3975.280424 0.247094 +3977.209235 0.247439 +3979.138047 0.247471 +3981.066858 0.247241 +3982.99567 0.246602 +3984.924481 0.24633 +3986.853293 0.246618 +3988.782104 0.247495 +3990.710916 0.248448 +3992.639727 0.249797 +3994.568539 0.251938 +3996.49735 0.253329 +3998.426162 0.25474 +4000.354973 0.256031 diff --git a/globals.h b/globals.h index 6a7474d..8b742d2 100644 --- a/globals.h +++ b/globals.h @@ -4,7 +4,7 @@ #include #include #include -#include "PerformanceData.h" +#include "PerformanceData.h" #include using namespace std; @@ -80,13 +80,17 @@ extern double cA; extern vector EtaK; extern vector EtaN; extern bool applyMaterial; -//extern vector KMaterial; -//extern vector NMaterial; extern vector MaterialList; extern int currentMaterial; void ChangeAbsorbance(); void SetMaterial(); +//source parameters +extern vector SourceSpectrum; +extern vector SourceResampled; +void ResampleSource(); //resample a source profile to match the sample points of the current material +extern bool useSourceSpectrum; + //optical parameters extern double cNAi; extern double cNAo; @@ -102,13 +106,13 @@ extern int maxFitIter; void EstimateMaterial(); extern double scaleI0; extern double refSlope; - - + + //distortion maps double ComputeDistortion(); -void DistortionMap(float* distortionMap, int nSteps); - +void DistortionMap(float* distortionMap, int nSteps); + -#endif +#endif diff --git a/interactivemie.h b/interactivemie.h index 0755ec7..2644ed0 100644 --- a/interactivemie.h +++ b/interactivemie.h @@ -5,19 +5,19 @@ #include #include #include -#include "ui_interactivemie.h" +#include "ui_interactivemie.h" #include "qtDistortionDialog.h" -#include "globals.h" - -extern qtDistortionDialog* distortionDialog; - +#include "globals.h" + +extern qtDistortionDialog* distortionDialog; + class InteractiveMie : public QMainWindow { Q_OBJECT public: InteractiveMie(QWidget *parent = 0, Qt::WFlags flags = 0); - ~InteractiveMie(); + ~InteractiveMie(); void closeEvent(QCloseEvent *event); bool updating; @@ -290,8 +290,8 @@ public slots: } void on_btnDistortion_clicked(){ //ComputeDistortion(); - //DistortionMap(); - cout<<"Distortion"<show(); } void on_btnTimings_clicked(){ @@ -332,6 +332,16 @@ public slots: //add the new material to the combo box refreshUI(); } + void on_mnuLoadSource_triggered(){ + cout<<"Load source."< 0 0 - 511 - 525 + 502 + 607 @@ -21,9 +21,9 @@ 20 - 140 + 170 151 - 181 + 161 @@ -154,8 +154,8 @@ 20 10 - 241 - 131 + 261 + 151 @@ -164,7 +164,7 @@ - 5 + 15 50 81 20 @@ -177,7 +177,7 @@ - 90 + 110 20 62 22 @@ -193,7 +193,7 @@ - 5 + 15 20 91 20 @@ -206,7 +206,7 @@ - 160 + 190 20 62 22 @@ -225,7 +225,7 @@ - 160 + 190 50 62 22 @@ -244,7 +244,7 @@ - 90 + 110 50 62 22 @@ -260,7 +260,7 @@ - 20 + 30 80 111 17 @@ -276,7 +276,7 @@ - 150 + 170 80 91 17 @@ -289,9 +289,9 @@ - 150 + 170 100 - 101 + 91 17 @@ -302,9 +302,9 @@ - 1 + 10 100 - 51 + 61 22 @@ -318,7 +318,7 @@ - 60 + 80 100 81 16 @@ -328,13 +328,26 @@ Obj. Samples + + + + 30 + 130 + 141 + 19 + + + + Source Spectrum + + - 280 - 20 - 181 + 290 + 10 + 191 411 @@ -346,7 +359,7 @@ 80 70 - 71 + 101 22 @@ -406,7 +419,7 @@ 80 40 - 71 + 101 22 @@ -469,7 +482,7 @@ 10 230 - 151 + 171 17 @@ -485,7 +498,7 @@ 10 170 - 151 + 161 17 @@ -517,7 +530,7 @@ 80 100 - 71 + 101 22 @@ -552,7 +565,7 @@ 80 130 - 71 + 101 22 @@ -652,7 +665,7 @@ 10 380 - 70 + 91 17 @@ -665,7 +678,7 @@ 50 190 - 101 + 111 17 @@ -709,8 +722,8 @@ - 180 - 150 + 190 + 190 75 23 @@ -722,8 +735,8 @@ - 180 - 180 + 190 + 220 75 23 @@ -735,8 +748,8 @@ - 180 - 210 + 190 + 250 75 23 @@ -751,8 +764,8 @@ - 180 - 240 + 190 + 280 75 23 @@ -764,8 +777,8 @@ - 180 - 270 + 190 + 310 75 23 @@ -778,7 +791,7 @@ 20 - 320 + 340 201 111 @@ -818,9 +831,9 @@ - 20 + 0 70 - 71 + 101 22 @@ -883,8 +896,8 @@ 0 0 - 511 - 25 + 502 + 22 @@ -893,6 +906,7 @@ + @@ -945,6 +959,11 @@ n + + + Load Source Spectrum + + diff --git a/main.cpp b/main.cpp index ac06f65..8c12d47 100644 --- a/main.cpp +++ b/main.cpp @@ -1,10 +1,12 @@ #include +#include using namespace std; #include "interactivemie.h" -#include -#include -#include +#include +#include +#include #include +#include #include "qtSpectrumDisplay.h" #include "globals.h" #include "rtsGUIConsole.h" @@ -14,16 +16,24 @@ using namespace std; PerformanceData PD; -qtSpectrumDisplay* gpSpectrumDisplay; - -QGraphicsScene* distortionScene = NULL; -QGraphicsView* distortionWindow = NULL; +qtSpectrumDisplay* gpSpectrumDisplay; + +QGraphicsScene* distortionScene = NULL; +QGraphicsView* distortionWindow = NULL; QGraphicsPixmapItem* pixmapItem = NULL; vector > RefSpectrum; vector SimSpectrum; vector EtaK; vector EtaN; + +//source spectrum +bool useSourceSpectrum = false; +vector SourceSpectrum; + +//resample the source based on the material samples (EtaK and EtaN) +vector SourceResampled; + int currentSpec = 0; double nuMin = 800; @@ -109,7 +119,6 @@ void LoadMaterial(string fileNameK, string fileNameN, string materialName) newMaterial.eta.push_back(eta); } MaterialList.push_back(newMaterial); - } void LoadMaterial(string fileNameK, string materialName){ @@ -149,6 +158,49 @@ void LoadMaterial(string fileNameK, string materialName){ MaterialList.push_back(newMaterial); } +void LoadSource(string fileNameSource) +{ + SourceSpectrum = LoadSpectrum(fileNameSource); +} + +void ResampleSource() +{ + //clear the current resampled spectrum + SourceResampled.clear(); + + //get the number of source and material samples + int nMatSamples = EtaK.size(); + int nSourceSamples = SourceSpectrum.size(); + + float nu, I; + for(int i=0; i SourceSpectrum[nSourceSamples-1].nu) + newSample.A = 0.0; + else + { + int k=1; + while(SourceSpectrum[k].nu < newSample.nu) + k++; + + //interpolate + float a = (newSample.nu - SourceSpectrum[k-1].nu)/(SourceSpectrum[k].nu - SourceSpectrum[k-1].nu); + newSample.A = a * SourceSpectrum[k].A + (1.0 - a) * SourceSpectrum[k-1].A; + } + + //insert the new spectral point into the resampled spectrum + SourceResampled.push_back(newSample); + //cout<resize(visWinSize*2, visWinSize); gpSpectrumDisplay->move(uiFrame.width(), 0); - gpSpectrumDisplay->show(); - - //distortion dialog box - distortionDialog = new qtDistortionDialog(); - distortionDialog->move(0, 0); - - //display the distortion map - distortionScene = new QGraphicsScene(); - distortionWindow = new QGraphicsView(distortionScene); - distortionWindow->move(uiFrame.width(), visWinSize); + gpSpectrumDisplay->show(); + + //distortion dialog box + distortionDialog = new qtDistortionDialog(); + distortionDialog->move(0, 0); + + //display the distortion map + distortionScene = new QGraphicsScene(); + distortionWindow = new QGraphicsView(distortionScene); + distortionWindow->move(uiFrame.width(), visWinSize); //refresh the UI w.refreshUI(); diff --git a/source_midIR.txt b/source_midIR.txt new file mode 100644 index 0000000..a7beaaf --- /dev/null +++ b/source_midIR.txt @@ -0,0 +1,767 @@ + 898.665771 0.196227 + 902.522705 0.207933 + 906.379639 0.218853 + 910.236572 0.229278 + 914.093506 0.239895 + 917.950439 0.252144 + 921.807373 0.263879 + 925.664307 0.273570 + 929.521240 0.284858 + 933.378174 0.298487 + 937.235107 0.312094 + 941.092041 0.325800 + 944.948975 0.340324 + 948.805908 0.354003 + 952.662842 0.366424 + 956.519775 0.379229 + 960.376709 0.391242 + 964.233643 0.401185 + 968.090576 0.410705 + 971.947510 0.420869 + 975.804443 0.429901 + 979.661377 0.437795 + 983.518311 0.446571 + 987.375244 0.455127 + 991.232178 0.463834 + 995.089111 0.472215 + 998.946045 0.478527 + 1002.802979 0.486165 + 1006.659912 0.494883 + 1010.516846 0.501833 + 1014.373779 0.507649 + 1018.230713 0.512300 + 1022.087646 0.517685 + 1025.944580 0.523520 + 1029.801514 0.526614 + 1033.658447 0.529842 + 1037.515381 0.535331 + 1041.372314 0.540368 + 1045.229248 0.544854 + 1049.086182 0.549423 + 1052.943115 0.553986 + 1056.800049 0.559133 + 1060.656982 0.564271 + 1064.513916 0.569276 + 1068.370850 0.574210 + 1072.227783 0.578073 + 1076.084717 0.582969 + 1079.941650 0.588808 + 1083.798584 0.592551 + 1087.655518 0.598405 + 1091.512451 0.608196 + 1095.369385 0.616455 + 1099.226318 0.623627 + 1103.083252 0.632403 + 1106.940186 0.640811 + 1110.797119 0.647617 + 1114.654053 0.654493 + 1118.510986 0.661529 + 1122.367920 0.668473 + 1126.224854 0.675395 + 1130.081787 0.681317 + 1133.938721 0.687106 + 1137.795654 0.691284 + 1141.652588 0.693295 + 1145.509521 0.697508 + 1149.366455 0.703402 + 1153.223389 0.709345 + 1157.080322 0.715839 + 1160.937256 0.720988 + 1164.794189 0.726381 + 1168.651123 0.734673 + 1172.508057 0.742796 + 1176.364990 0.749452 + 1180.221924 0.756486 + 1184.078857 0.764033 + 1187.935791 0.771270 + 1191.792725 0.776412 + 1195.649658 0.779656 + 1199.506592 0.782932 + 1203.363525 0.786472 + 1207.220459 0.790205 + 1211.077393 0.793150 + 1214.934326 0.796196 + 1218.791260 0.800203 + 1222.648193 0.802349 + 1226.505249 0.804624 + 1230.362061 0.809727 + 1234.219116 0.813920 + 1238.076050 0.817154 + 1241.932861 0.820684 + 1245.789917 0.823186 + 1249.646851 0.826081 + 1253.503784 0.827715 + 1257.360718 0.825420 + 1261.217651 0.824206 + 1265.074585 0.825879 + 1268.931519 0.826656 + 1272.788452 0.829775 + 1276.645386 0.835048 + 1280.502319 0.836434 + 1284.359253 0.834562 + 1288.216187 0.833610 + 1292.073120 0.837521 + 1295.930054 0.841644 + 1299.786987 0.843328 + 1303.643921 0.845585 + 1307.500854 0.845590 + 1311.357788 0.842181 + 1315.214722 0.834671 + 1319.071655 0.835801 + 1322.928589 0.848150 + 1326.785522 0.854175 + 1330.642456 0.854040 + 1334.499390 0.831417 + 1338.356323 0.799091 + 1342.213257 0.813070 + 1346.070190 0.841063 + 1349.927124 0.838420 + 1353.784058 0.834346 + 1357.640991 0.815108 + 1361.497925 0.780951 + 1365.354858 0.792507 + 1369.211792 0.808626 + 1373.068726 0.784984 + 1376.925659 0.796319 + 1380.782593 0.823899 + 1384.639526 0.801234 + 1388.496460 0.782696 + 1392.353394 0.762765 + 1396.210327 0.727260 + 1400.067261 0.751427 + 1403.924194 0.787689 + 1407.781128 0.803963 + 1411.638062 0.813447 + 1415.494995 0.742551 + 1419.351929 0.685433 + 1423.208862 0.730669 + 1427.065796 0.775669 + 1430.922729 0.758888 + 1434.779663 0.710901 + 1438.636597 0.739278 + 1442.493530 0.799569 + 1446.350464 0.791992 + 1450.207397 0.762096 + 1454.064331 0.665702 + 1457.921265 0.598916 + 1461.778198 0.685768 + 1465.635132 0.746188 + 1469.492065 0.694261 + 1473.348999 0.638822 + 1477.205933 0.702550 + 1481.062866 0.798297 + 1484.919800 0.745962 + 1488.776733 0.675704 + 1492.633667 0.669731 + 1496.490601 0.672737 + 1500.347534 0.678042 + 1504.204468 0.581820 + 1508.061401 0.510445 + 1511.918335 0.603729 + 1515.775269 0.612279 + 1519.632202 0.520633 + 1523.489136 0.544888 + 1527.346069 0.623953 + 1531.203003 0.655827 + 1535.059937 0.596197 + 1538.916870 0.473790 + 1542.773804 0.477275 + 1546.630737 0.611737 + 1550.487671 0.667929 + 1554.344604 0.546965 + 1558.201538 0.438791 + 1562.058472 0.542528 + 1565.915405 0.663468 + 1569.772339 0.657576 + 1573.629272 0.638404 + 1577.486206 0.667601 + 1581.343140 0.751624 + 1585.200073 0.798418 + 1589.057007 0.788293 + 1592.913940 0.782993 + 1596.770874 0.781056 + 1600.627808 0.780906 + 1604.484741 0.764023 + 1608.341675 0.756827 + 1612.198608 0.715579 + 1616.055542 0.648217 + 1619.912476 0.641239 + 1623.769409 0.647518 + 1627.626343 0.678568 + 1631.483276 0.653493 + 1635.340210 0.576889 + 1639.197144 0.621380 + 1643.054077 0.642719 + 1646.911011 0.541749 + 1650.767944 0.456552 + 1654.624878 0.505926 + 1658.481812 0.644898 + 1662.338745 0.685250 + 1666.195679 0.639791 + 1670.052612 0.592342 + 1673.909546 0.592354 + 1677.766479 0.626454 + 1681.623413 0.554664 + 1685.480347 0.523860 + 1689.337280 0.635061 + 1693.194214 0.616993 + 1697.051147 0.487230 + 1700.908081 0.476804 + 1704.765015 0.575534 + 1708.621948 0.670165 + 1712.478882 0.641016 + 1716.335815 0.553706 + 1720.192749 0.614536 + 1724.049683 0.736431 + 1727.906738 0.711089 + 1731.763550 0.599377 + 1735.620605 0.571977 + 1739.477539 0.627342 + 1743.334473 0.649931 + 1747.191406 0.617436 + 1751.048340 0.622318 + 1754.905273 0.675941 + 1758.762207 0.687082 + 1762.619141 0.691393 + 1766.476074 0.680236 + 1770.333008 0.609650 + 1774.189941 0.626126 + 1778.046875 0.698773 + 1781.903809 0.719199 + 1785.760742 0.723180 + 1789.617676 0.682504 + 1793.474609 0.654468 + 1797.331543 0.680635 + 1801.188477 0.700926 + 1805.045410 0.723400 + 1808.902344 0.729948 + 1812.759277 0.730232 + 1816.616211 0.748878 + 1820.473145 0.737278 + 1824.330078 0.690014 + 1828.187012 0.657628 + 1832.043945 0.681731 + 1835.900879 0.724360 + 1839.757812 0.702947 + 1843.614746 0.654370 + 1847.471680 0.676652 + 1851.328613 0.730644 + 1855.185547 0.739898 + 1859.042480 0.738392 + 1862.899414 0.720345 + 1866.756348 0.668056 + 1870.613281 0.669127 + 1874.470215 0.716509 + 1878.327148 0.730486 + 1882.184082 0.723811 + 1886.041016 0.706837 + 1889.897949 0.689677 + 1893.754883 0.696657 + 1897.611816 0.710234 + 1901.468750 0.714719 + 1905.325684 0.705419 + 1909.182617 0.697143 + 1913.039551 0.694995 + 1916.896484 0.676892 + 1920.753418 0.669110 + 1924.610352 0.690376 + 1928.467285 0.705479 + 1932.324219 0.707718 + 1936.181152 0.703849 + 1940.038086 0.683556 + 1943.895020 0.671686 + 1947.751953 0.686308 + 1951.608887 0.693794 + 1955.465820 0.688986 + 1959.322754 0.688719 + 1963.179688 0.681658 + 1967.036621 0.673000 + 1970.893555 0.678196 + 1974.750488 0.685476 + 1978.607422 0.686061 + 1982.464355 0.685207 + 1986.321289 0.676624 + 1990.178223 0.662820 + 1994.035156 0.662925 + 1997.892090 0.671566 + 2001.749023 0.672158 + 2005.605957 0.669704 + 2009.462891 0.668946 + 2013.319824 0.663061 + 2017.176758 0.656150 + 2021.033691 0.657385 + 2024.890625 0.660424 + 2028.747559 0.659121 + 2032.604492 0.657460 + 2036.461426 0.655844 + 2040.318359 0.652959 + 2044.175293 0.651836 + 2048.032227 0.652501 + 2051.889160 0.651325 + 2055.746094 0.648695 + 2059.603027 0.644656 + 2063.459961 0.640125 + 2067.316895 0.639878 + 2071.173828 0.640445 + 2075.030762 0.638156 + 2078.887695 0.637794 + 2082.744629 0.637912 + 2086.601562 0.635038 + 2090.458496 0.632823 + 2094.315430 0.632498 + 2098.172363 0.632050 + 2102.029297 0.631381 + 2105.886230 0.630392 + 2109.743164 0.628773 + 2113.600098 0.626989 + 2117.457031 0.625757 + 2121.313965 0.624314 + 2125.170898 0.622129 + 2129.027832 0.620875 + 2132.884766 0.619852 + 2136.741699 0.618192 + 2140.598633 0.617050 + 2144.455566 0.616132 + 2148.312500 0.615712 + 2152.169434 0.615677 + 2156.026367 0.615602 + 2159.883301 0.615284 + 2163.740234 0.614014 + 2167.597168 0.613128 + 2171.454102 0.612511 + 2175.311035 0.611466 + 2179.167969 0.611296 + 2183.024902 0.611215 + 2186.881836 0.610390 + 2190.738770 0.609768 + 2194.595703 0.608551 + 2198.452637 0.605899 + 2202.309570 0.603909 + 2206.166504 0.603230 + 2210.023438 0.602597 + 2213.880371 0.602044 + 2217.737305 0.601362 + 2221.594238 0.600290 + 2225.451172 0.599428 + 2229.308105 0.599910 + 2233.165039 0.600941 + 2237.021973 0.600930 + 2240.878906 0.600775 + 2244.735840 0.599930 + 2248.592773 0.597954 + 2252.449707 0.595457 + 2256.306641 0.591206 + 2260.163574 0.587124 + 2264.020508 0.585276 + 2267.877441 0.584142 + 2271.734375 0.583486 + 2275.591309 0.583411 + 2279.448242 0.584158 + 2283.305176 0.584678 + 2287.162109 0.581980 + 2291.019043 0.575961 + 2294.875977 0.566745 + 2298.732910 0.553140 + 2302.589844 0.534748 + 2306.446777 0.510267 + 2310.303711 0.478340 + 2314.160645 0.440838 + 2318.017578 0.400127 + 2321.874512 0.360108 + 2325.731445 0.327151 + 2329.588379 0.301550 + 2333.445312 0.287366 + 2337.302246 0.279186 + 2341.159180 0.276747 + 2345.016113 0.313348 + 2348.873047 0.348284 + 2352.729980 0.304962 + 2356.586914 0.235612 + 2360.443848 0.208089 + 2364.300781 0.214393 + 2368.157715 0.247215 + 2372.014648 0.305847 + 2375.871582 0.387479 + 2379.728516 0.474743 + 2383.585449 0.538086 + 2387.442383 0.569826 + 2391.299316 0.580270 + 2395.156250 0.582376 + 2399.013184 0.582054 + 2402.870117 0.581203 + 2406.727051 0.581691 + 2410.583984 0.581988 + 2414.440918 0.581725 + 2418.297852 0.582137 + 2422.154785 0.582671 + 2426.011719 0.581738 + 2429.868652 0.581663 + 2433.725586 0.583042 + 2437.582520 0.581780 + 2441.439453 0.579739 + 2445.296387 0.579889 + 2449.153320 0.580173 + 2453.010254 0.579550 + 2456.867432 0.578990 + 2460.724121 0.579084 + 2464.581299 0.579852 + 2468.437988 0.580642 + 2472.294922 0.580310 + 2476.152100 0.579659 + 2480.008789 0.579746 + 2483.865967 0.579867 + 2487.722900 0.580264 + 2491.579834 0.581114 + 2495.436768 0.581738 + 2499.293701 0.582030 + 2503.150635 0.582214 + 2507.007568 0.582051 + 2510.864502 0.580685 + 2514.721436 0.578848 + 2518.578369 0.577873 + 2522.435303 0.577517 + 2526.292236 0.577284 + 2530.149170 0.576961 + 2534.006104 0.576424 + 2537.863037 0.575596 + 2541.719971 0.575394 + 2545.576904 0.576315 + 2549.433838 0.577145 + 2553.290771 0.577490 + 2557.147705 0.577967 + 2561.004639 0.578784 + 2564.861572 0.578520 + 2568.718506 0.577357 + 2572.575439 0.577422 + 2576.432373 0.576814 + 2580.289307 0.574005 + 2584.146240 0.571516 + 2588.003174 0.570293 + 2591.860107 0.568882 + 2595.717041 0.567365 + 2599.573975 0.566915 + 2603.430908 0.566464 + 2607.287842 0.566014 + 2611.144775 0.567179 + 2615.001709 0.568828 + 2618.858643 0.569467 + 2622.715576 0.569085 + 2626.572510 0.567791 + 2630.429443 0.566904 + 2634.286377 0.567991 + 2638.143311 0.568579 + 2642.000244 0.565883 + 2645.857178 0.562745 + 2649.714111 0.562020 + 2653.571045 0.561671 + 2657.427979 0.558974 + 2661.284912 0.555346 + 2665.141846 0.553615 + 2668.998779 0.553611 + 2672.855713 0.553477 + 2676.712646 0.552405 + 2680.569580 0.551878 + 2684.426514 0.550930 + 2688.283447 0.549427 + 2692.140381 0.551940 + 2695.997314 0.554912 + 2699.854248 0.553160 + 2703.711182 0.550163 + 2707.568115 0.547766 + 2711.425049 0.546143 + 2715.281982 0.544361 + 2719.138916 0.540876 + 2722.995850 0.537322 + 2726.852783 0.534876 + 2730.709717 0.533369 + 2734.566650 0.531250 + 2738.423584 0.529185 + 2742.280518 0.529209 + 2746.137451 0.529883 + 2749.994385 0.530004 + 2753.851318 0.529136 + 2757.708252 0.527899 + 2761.565186 0.527130 + 2765.422119 0.526335 + 2769.279053 0.524805 + 2773.135986 0.521504 + 2776.992920 0.518246 + 2780.849854 0.515980 + 2784.706787 0.512066 + 2788.563721 0.507128 + 2792.420654 0.503861 + 2796.277588 0.501897 + 2800.134521 0.499721 + 2803.991455 0.497080 + 2807.848389 0.494668 + 2811.705322 0.493610 + 2815.562256 0.493511 + 2819.419189 0.493395 + 2823.276123 0.492364 + 2827.133057 0.490612 + 2830.989990 0.489761 + 2834.846924 0.486698 + 2838.703857 0.480848 + 2842.560791 0.476354 + 2846.417725 0.471369 + 2850.274658 0.466157 + 2854.131592 0.463690 + 2857.988525 0.461405 + 2861.845459 0.458523 + 2865.702393 0.456424 + 2869.559326 0.454132 + 2873.416260 0.451843 + 2877.273193 0.450755 + 2881.130127 0.451220 + 2884.987061 0.452172 + 2888.843994 0.450664 + 2892.700928 0.447447 + 2896.557861 0.446199 + 2900.414795 0.446241 + 2904.271729 0.444231 + 2908.128662 0.438370 + 2911.985596 0.429459 + 2915.842529 0.421152 + 2919.699463 0.417226 + 2923.556396 0.415077 + 2927.413330 0.410551 + 2931.270264 0.407603 + 2935.127197 0.409559 + 2938.984131 0.412162 + 2942.841064 0.410827 + 2946.697998 0.407245 + 2950.554932 0.405837 + 2954.411865 0.406032 + 2958.268799 0.405579 + 2962.125732 0.404655 + 2965.982666 0.405027 + 2969.839600 0.406843 + 2973.696533 0.406376 + 2977.553467 0.403345 + 2981.410400 0.402373 + 2985.267334 0.403359 + 2989.124268 0.401836 + 2992.981201 0.398296 + 2996.838135 0.395620 + 3000.695068 0.394953 + 3004.552002 0.396477 + 3008.408936 0.393747 + 3012.265869 0.385867 + 3016.122803 0.382761 + 3019.979736 0.384393 + 3023.836670 0.385577 + 3027.693604 0.384672 + 3031.550537 0.381318 + 3035.407471 0.380553 + 3039.264404 0.380294 + 3043.121338 0.376366 + 3046.978271 0.374424 + 3050.835205 0.372841 + 3054.692139 0.369731 + 3058.549072 0.369792 + 3062.406006 0.367833 + 3066.262939 0.363086 + 3070.119873 0.363296 + 3073.976807 0.362847 + 3077.833740 0.356556 + 3081.690674 0.352485 + 3085.547607 0.352755 + 3089.404541 0.353262 + 3093.261475 0.352675 + 3097.118408 0.350612 + 3100.975342 0.349564 + 3104.832275 0.348722 + 3108.689209 0.345357 + 3112.546143 0.340894 + 3116.403076 0.334047 + 3120.260010 0.328698 + 3124.116943 0.330124 + 3127.973877 0.331530 + 3131.830811 0.329844 + 3135.687744 0.327751 + 3139.544678 0.325641 + 3143.401611 0.325815 + 3147.258545 0.325466 + 3151.115479 0.322039 + 3154.972412 0.321508 + 3158.829346 0.323793 + 3162.686279 0.322978 + 3166.543213 0.320492 + 3170.400146 0.319111 + 3174.257080 0.316716 + 3178.114014 0.312871 + 3181.970947 0.309265 + 3185.827881 0.306713 + 3189.684814 0.305312 + 3193.541748 0.302889 + 3197.398682 0.299048 + 3201.255615 0.295910 + 3205.112549 0.293878 + 3208.969482 0.292464 + 3212.826416 0.289641 + 3216.683350 0.286486 + 3220.540283 0.286122 + 3224.397217 0.285477 + 3228.254150 0.282978 + 3232.111084 0.280659 + 3235.968018 0.278732 + 3239.824951 0.277178 + 3243.681885 0.274860 + 3247.538818 0.271823 + 3251.395752 0.269614 + 3255.252686 0.268343 + 3259.109619 0.268040 + 3262.966553 0.267725 + 3266.823486 0.264373 + 3270.680420 0.257898 + 3274.537354 0.254968 + 3278.394287 0.257330 + 3282.251221 0.258091 + 3286.108154 0.256065 + 3289.965088 0.252759 + 3293.822021 0.249369 + 3297.678955 0.249658 + 3301.535889 0.248271 + 3305.392822 0.241184 + 3309.249756 0.237625 + 3313.106689 0.239889 + 3316.963623 0.241573 + 3320.820557 0.240210 + 3324.677490 0.236303 + 3328.534424 0.233380 + 3332.391357 0.231396 + 3336.248291 0.227130 + 3340.105225 0.224573 + 3343.962158 0.225203 + 3347.819092 0.224252 + 3351.676025 0.222443 + 3355.532959 0.221824 + 3359.389893 0.219856 + 3363.246826 0.215096 + 3367.103760 0.210327 + 3370.960693 0.209750 + 3374.817627 0.211804 + 3378.674561 0.210863 + 3382.531494 0.208682 + 3386.388428 0.206737 + 3390.245361 0.202227 + 3394.102295 0.198531 + 3397.959229 0.195722 + 3401.816162 0.192525 + 3405.673096 0.192009 + 3409.530029 0.192024 + 3413.386963 0.190945 + 3417.243896 0.188091 + 3421.100830 0.186171 + 3424.957764 0.188692 + 3428.814697 0.188568 + 3432.671631 0.184613 + 3436.528564 0.183832 + 3440.385498 0.184251 + 3444.242432 0.180078 + 3448.099609 0.177852 + 3451.956299 0.183303 + 3455.813232 0.185303 + 3459.670410 0.181096 + 3463.527100 0.176844 + 3467.384277 0.172532 + 3471.241211 0.172007 + 3475.098145 0.174464 + 3478.955078 0.172764 + 3482.812012 0.169614 + 3486.668945 0.169786 + 3490.525879 0.170988 + 3494.382812 0.171672 + 3498.239746 0.167869 + 3502.096680 0.159913 + 3505.953613 0.157802 + 3509.810547 0.161080 + 3513.667480 0.165410 + 3517.524414 0.168767 + 3521.381348 0.161646 + 3525.238281 0.148526 + 3529.095215 0.148001 + 3532.952148 0.156285 + 3536.809082 0.160611 + 3540.666016 0.157645 + 3544.522949 0.143701 + 3548.379883 0.136603 + 3552.236816 0.144584 + 3556.093750 0.154575 + 3559.950684 0.159989 + 3563.807617 0.134118 + 3567.664551 0.104126 + 3571.521484 0.122199 + 3575.378418 0.148054 + 3579.235352 0.156562 + 3583.092285 0.148381 + 3586.949219 0.117129 + 3590.806152 0.109916 + 3594.663086 0.121637 + 3598.520020 0.123104 + 3602.376953 0.135912 + 3606.233887 0.131771 + 3610.090820 0.110964 + 3613.947754 0.100526 + 3617.804688 0.086204 + 3621.661621 0.100117 + 3625.518555 0.106009 + 3629.375488 0.068525 + 3633.232422 0.075520 + 3637.089355 0.121616 + 3640.946289 0.154950 + 3644.803223 0.141961 + 3648.660156 0.072637 + 3652.517090 0.047540 + 3656.374023 0.079725 + 3660.230957 0.116971 + 3664.087891 0.153315 + 3667.944824 0.142181 + 3671.801758 0.087182 + 3675.658691 0.042480 + 3679.515625 0.056400 + 3683.372559 0.109665 + 3687.229492 0.093650 + 3691.086426 0.050486 + 3694.943359 0.078813 + 3698.800293 0.109129 + 3702.657227 0.114369 + 3706.514160 0.122932 + 3710.371094 0.094360 + 3714.228027 0.074966 + 3718.084961 0.108665 + 3721.941895 0.117191 + 3725.798828 0.114044 + 3729.655762 0.129371 + 3733.512695 0.103350 + 3737.369629 0.073132 + 3741.226562 0.084164 + 3745.083496 0.071838 + 3748.940430 0.027810 + 3752.797363 0.006315 + 3756.654297 0.020322 + 3760.511230 0.048386 + 3764.368164 0.069165 + 3768.225098 0.066825 + 3772.082031 0.069544 + 3775.938965 0.091394 + 3779.795898 0.094109 + 3783.652832 0.089592 + 3787.509766 0.104688 + 3791.366699 0.128153 + 3795.223633 0.136477 + 3799.080566 0.113925 + 3802.937500 0.076704 + 3806.794434 0.060072 + 3810.651367 0.084428 + 3814.508301 0.111674 + 3818.365234 0.091109 + 3822.222168 0.057195 + 3826.079102 0.063312 + 3829.936035 0.095574 + 3833.792969 0.109077 + 3837.649902 0.088916 + 3841.506836 0.057421 + 3845.363770 0.074963 + 3849.220703 0.123836 + 3853.077637 0.098914 \ No newline at end of file -- libgit2 0.21.4