Browse Source

Dynamic Contrast calculation and image added.

Arash Aletayeb 7 months ago
parent
commit
cd6b50e227
  1. 6
      developHw.pro
  2. 2
      developHw.pro.user
  3. 12
      kernelParams/DynContrCurves.csv
  4. 41
      kernelParams/KernelParams.cpp
  5. 37
      kernelParams/KernelParams.h
  6. 126
      mainwindow.cpp
  7. 21
      mainwindow.h
  8. 225
      mainwindow.ui

6
developHw.pro

@ -23,13 +23,15 @@ SOURCES += \
api.cpp \
$$files(src/*.cpp, true) \
$$files(hdf5Scenario/*.cpp, true) \
$$files(kernelParams/*.cpp, true) \
HEADERS += \
mainwindow.h \
qcustomplot.h \
api.h \
$$files(include/*.h, true)
$$files(hdf5Scenario/*.h, true)
$$files(include/*.h, true) \
$$files(hdf5Scenario/*.h, true) \
$$files(kernelParams/*.h, true) \
INCLUDEPATH += \
"$$PWD/include" \

2
developHw.pro.user

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 4.10.0, 2024-03-27T12:17:25. -->
<!-- Written by QtCreator 4.10.0, 2024-04-16T11:50:14. -->
<qtcreator>
<data>
<variable>EnvironmentId</variable>

12
kernelParams/DynContrCurves.csv

@ -0,0 +1,12 @@
0,0.159884254,1.169178248,2.17867424,3.188376224,4.198467718,5.209261387,6.221047205,7.233940506,8.247831302,9.262637641,10.27825461,11.29450321,12.3113833,13.32902222,14.34752198,15.36680628,16.38656879,17.40652557,18.42636322,19.44568695,20.4642729,21.48201634,22.49877857,23.51433535,24.52862964,25.54172041,26.55363012,27.5642939,28.57381299,29.58240428,30.59024853,31.59744015,32.60424137,33.61103217,34.61815898,35.62578332,36.63383182,37.64225035,38.65095394,39.65977658,40.66872518,41.67792941,42.68748998,43.69742833,44.70794055,45.71934691,46.73193998,47.74583262,48.7609071,49.7770684,50.79419296,51.81207739,52.83069118,53.85012509,54.87043806,55.89150396,56.91295961,57.93445694,58.95561087,59.97594716,60.99515452,62.01303271,63.02933928,64.043738,65.05605172,66.0662113,67.07410344,68.07952023,69.08241328,70.08284401,71.08083288,72.07631038,73.06937272,74.06023351,75.04907451,76.0359981,77.02128425,78.00534355,78.9885691,79.97118861,80.95321795,81.93471911,82.91575397,83.89633815,84.87669917,85.85723048,86.83834402,87.8203229,88.80327525,89.78739227,90.77290186,91.75992067,92.7484074,93.73842002,94.73006859,95.72336645,96.71818257,97.71449785,98.71235697,99.71171867,100.7124071,101.7143673,102.7176161,103.7220916,104.7276037,105.7340887,106.7415596,107.7499549,108.7590884,109.7689035,110.7794226,111.7905953,112.8022485,113.8143391,114.8269041,115.8399081,116.8531926,117.8667294,118.8805696,119.8946911,120.9089479,121.9233233,122.9378785,123.9526005,124.9673505,125.9821178,126.9969678,128.0118901,129.0267468,130.0415261,131.056291,132.0710265,133.0855886,134.0999576,135.1141867,136.1282498,137.1419902,138.155374,139.1684388,140.1811418,141.1933087,142.204887,143.2158953,144.2262717,145.2358224,146.244476,147.2522333,148.2590152,149.2646128,150.2689418,151.2719928,152.2736801,153.2737925,154.2722482,155.269046,156.2641153,157.2572675,158.2484521,159.2377086,160.2250182,161.2102556,162.1934469,163.1747224,164.1541693,165.1317853,166.107737,167.0823143,168.0557838,169.028344,170.0003839,170.9724386,171.9450433,172.918587,173.8932676,174.8693513,175.8471275,176.8267621,177.8082518,178.7916825,179.7771832,180.7647782,181.7543403,182.7458479,183.739338,184.7347566,185.7319114,186.7307273,187.7311979,188.733236,189.7366237,190.7412682,191.747152,192.7541817,193.7621387,194.7709331,195.7805536,196.7909161,197.801813,198.8131674,199.8249819,200.8371874,201.8495917,202.8621332,203.8748303,204.8876291,205.9003524,206.9129535,207.9254646,208.9378457,209.9499328,210.9616918,211.9731677,212.9843328,213.9950354,215.0052541,216.0150468,217.0243991,218.0331741,219.0413657,220.0490488,221.0562279,222.0627865,223.0687419,224.0741948,225.0791786,226.0836089,227.0875392,228.09111,229.094399,230.097371,231.1001329,232.1028844,233.1057672,234.1087747,235.1118689,236.1150151,237.1181825,238.1213437,239.1244745,240.1275541,241.1305647,242.1334915,243.1363228,244.1390495,245.1416653,246.1441669,247.1465534,248.1488266,249.150991,250.1530538,251.1550248,252.1569168,253.1587452,254.1605284,255
0,0.156204411,1.119881995,2.083750759,3.047817502,4.012282812,4.977497556,5.943817892,6.911460174,7.880457101,8.850917873,9.822983938,10.79678452,11.7726961,12.75129746,13.73322293,14.71901532,15.70897827,16.70312951,17.7014576,18.70387396,19.71016419,20.72024299,21.73410435,22.75166965,23.77273673,24.79723254,25.82516104,26.85644921,27.89089396,28.9284127,29.96898928,31.01251803,32.05874872,33.10753537,34.15878035,35.21227678,36.26765187,37.3246142,38.38289651,39.44219824,40.50243201,41.56366589,42.62596395,43.68932818,44.75394442,45.82012391,46.88814325,47.95808416,49.02977429,50.10303207,51.17760696,52.2531196,53.32930586,54.40595658,55.48275586,56.55922058,57.63494417,58.70953626,59.78256236,60.85378793,61.92311856,62.99043891,64.05555338,65.11843131,66.17914826,67.23772626,68.29407576,69.34824214,70.40034831,71.45043623,72.49841022,73.54428468,74.58812799,75.62990531,76.66942304,77.70657786,78.74130191,79.77350824,80.80334094,81.83112136,82.85719329,83.88186989,84.90568505,85.92934074,86.95355312,87.97889865,89.00576151,90.03458507,91.06581896,92.09976438,93.13652053,94.17623472,95.21904803,96.26493893,97.31366802,98.36502635,99.41877924,100.4746097,101.5323654,102.5920019,103.653423,104.7164234,105.7809344,106.8469658,107.9144458,108.9831619,110.0530066,111.1239175,112.1957172,113.2680531,114.3406424,115.4132118,116.4854383,117.5571931,118.6284822,119.6992849,120.7694945,121.8391629,122.9084411,123.9774181,125.0460623,126.1144657,127.1827851,128.2510812,129.3192597,130.3873162,131.4552771,132.5230388,133.5903091,134.6568517,135.7224277,136.7867362,137.8496603,138.9112082,139.9713533,141.0299763,142.0871115,143.1428887,144.1973746,145.2505157,146.3023848,147.3531245,148.4027893,149.4511871,150.4978232,151.5421482,152.5836037,153.6218706,154.6568142,155.6883283,156.7162805,157.7407632,158.7620406,159.7803942,160.7959697,161.808725,162.8186836,163.8258833,164.8303261,165.8322322,166.8319908,167.8300088,168.8266626,169.8225535,170.8184588,171.8151829,172.813407,173.8135393,174.8156665,175.8198092,176.8258723,177.8335957,178.8428088,179.8533802,180.865066,181.8774596,182.8902448,183.9031455,184.9158747,185.9283875,186.9408309,187.9533912,188.9661419,189.9789928,190.9919438,192.0050335,193.0182885,194.031977,195.0465577,196.0625273,197.0802681,198.099997,199.1220172,200.1466675,201.1741678,202.2045667,203.2379929,204.2746014,205.3144185,206.3572868,207.4031153,208.4518235,209.5031841,210.5567675,211.6121883,212.6690495,213.7268844,214.7854037,215.844438,216.9037784,217.9631189,219.022303,220.0812653,221.139873,222.1978674,223.255111,224.3115295,225.3669531,226.421059,227.4736184,228.5244393,229.5732088,230.6194358,231.6626996,232.7025939,233.7385697,234.7698808,235.7958336,236.8157331,237.8287295,238.8337654,239.82983,240.8159088,241.7908958,242.7537163,243.7033728,244.6389567,245.5596625,246.4648035,247.3538306,248.2263526,249.0821593,249.9212474,250.743848,251.5504577,252.3418711,253.1192169,253.8839736,254.637898,255,255,255,255,255,255
0,0,0.63196801,1.583515363,2.53569815,3.489006807,4.444159004,5.401956333,6.363140716,7.32825041,8.29757692,9.271425532,10.250071,11.23361117,12.22192125,13.21491161,14.21248061,15.21436536,16.22009315,17.22923652,18.24136345,19.25598711,20.27281937,21.29171964,22.31254207,23.33508378,24.35933707,25.38543705,26.41350774,27.44360922,28.47598868,29.51102699,30.54908352,31.59044192,32.63555975,33.68501327,34.73934037,35.79888279,36.86372907,37.93396083,39.00959416,40.09052013,41.17674874,42.2683478,43.36527973,44.46733877,45.57439182,46.68631412,47.80282289,48.92341155,50.04758757,51.17480542,52.304399,53.43581785,54.56855875,55.70209708,56.83612218,57.97046836,59.10494445,60.23926471,61.37328389,62.50692817,63.64002467,64.77223248,65.90327791,67.03288579,68.1607108,69.28657332,70.41039131,71.53201106,72.6511397,73.7675822,74.88117456,75.99171741,77.09921422,78.20380579,79.30560376,80.40462596,81.50103645,82.59508168,83.68702709,84.77739826,85.86691818,86.95634332,88.04629983,89.13722119,90.22958997,91.32387523,92.42036831,93.51911976,94.62018009,95.72353604,96.82904649,97.9366822,99.04646104,100.1582815,101.2718573,102.3869559,103.5033323,104.6206633,105.7387849,106.8576259,107.9770397,109.0967379,110.2165272,111.3362427,112.4556811,113.574838,114.6938405,115.81278,116.9316443,118.0505557,119.1697041,120.2891787,121.4089012,122.5288632,123.6490591,124.7694194,125.890048,127.0111549,128.1328877,129.255265,130.3784128,131.5024975,132.6275571,133.7534336,134.8800092,136.0071389,137.134481,138.2614291,139.387348,140.5116078,141.6338195,142.7537678,143.8712426,144.9859717,146.0978586,147.2069164,148.3131006,149.4162438,150.5162951,151.6132555,152.707013,153.7972783,154.883827,155.9664362,157.0448234,158.1188888,159.1886549,160.2541048,161.3151232,162.3717414,163.4240795,164.4721878,165.5159892,166.5555283,167.5909152,168.6222707,169.6499766,170.674622,171.6968483,172.717196,173.7360516,174.7539006,175.771275,176.7886008,177.8061464,178.8242751,179.8433936,180.863799,181.8856272,182.9091047,183.9344967,184.961953,185.9914558,187.0230703,188.0568914,189.0928892,190.1308542,191.1706478,192.2121475,193.2551918,194.2998297,195.3462648,196.3946987,197.4451735,198.4975156,199.5515835,200.607211,201.6641501,202.7223179,203.7817394,204.8423882,205.9041285,206.9669618,208.0309683,209.0961471,210.162358,211.2295667,212.2977862,213.366916,214.4366833,215.5068878,216.5773423,217.647813,218.7182648,219.7888011,220.8595035,221.9302704,223.0007578,224.0706238,225.139469,226.2067775,227.2721613,228.3353019,229.3957896,230.4530655,231.5066673,232.5561725,233.6010391,234.6404487,235.6732504,236.6982104,237.713958,238.718933,239.711639,240.6905934,241.6541782,242.6005947,243.5281238,244.4350856,245.3196999,246.1799496,247.0135498,247.8182887,248.5922923,249.3341038,250.0427308,250.717696,251.3590937,251.9676263,252.5445422,253.0915466,253.6107144,254.104408,254.5751994,255,255,255,255,255,255,255,255,255,255
0,0,0.278331969,1.179779922,2.082131942,2.986077214,3.892600322,4.802845354,5.717979607,6.639056732,7.56687915,8.501960984,9.444794194,10.39580941,11.35523419,12.32305148,13.299261,14.28383519,15.27657243,16.2770505,17.28488294,18.2996701,19.32094905,20.34844667,21.38202754,22.42153952,23.46675975,24.51764405,25.5742712,26.63668496,27.70483668,28.77883118,29.85886762,30.94507802,32.03746636,33.13615088,34.24130131,35.35297369,36.47104565,37.59545496,38.72613283,39.86293632,41.005884,42.15508644,43.31057448,44.4722278,45.6400069,46.8138799,47.99364697,49.17886529,50.36907737,51.56373429,52.76211819,53.96356836,55.16740249,56.37283753,57.57921434,58.78591791,59.99229749,61.19789077,62.40234398,63.60523072,64.80597225,66.00406237,67.19908973,68.39096334,69.57983438,70.76591701,71.94930966,73.12991817,74.30768352,75.48250573,76.65416828,77.8225671,78.98763588,80.14927182,81.30756615,82.46273091,83.61502621,84.76499223,85.9133774,87.06096549,88.20840302,89.35612811,90.50460363,91.65424603,92.80535416,93.95834201,95.11366711,96.27165718,97.43243788,98.59616438,99.76294819,100.9327838,102.1057786,103.2820788,104.461693,105.6444165,106.8300601,108.0183731,109.2089672,110.4015429,111.5958123,112.7914211,113.9881747,115.1859601,116.3845655,117.5836023,118.7827303,119.9815786,121.179667,122.3766317,123.5721462,124.7658428,125.9575387,127.1471581,128.3346542,129.520236,130.7042914,131.8872088,133.0691994,134.2502202,135.4302026,136.608976,137.7861917,138.9615514,140.1347319,141.3053097,142.47299,143.6375325,144.7986773,145.9563752,147.1107147,148.2617482,149.4094193,150.5537963,151.6950001,152.8330328,153.9677076,155.0988828,156.2263934,157.3499818,158.4695342,159.5850135,160.6962902,161.8030769,162.9051664,164.002367,165.0944379,166.1813306,167.2631253,168.3399694,169.4123206,170.480886,171.5464612,172.6097697,173.6713026,174.7312599,175.7897971,176.8470683,177.9034726,178.959597,180.0160571,181.0733388,182.1317405,183.1916199,184.2533364,185.3170917,186.3828717,187.450692,188.5205392,189.5923121,190.6660658,191.7419527,192.8200609,193.9003535,194.9829127,196.0678784,197.1552858,198.2450034,199.3369755,200.4311593,201.5273615,202.6251746,203.7242178,204.8240739,205.9242249,207.0242927,208.123975,209.22288,210.3204624,211.4162639,212.5098497,213.6007452,214.6886771,215.773511,216.8550877,217.9331619,219.0076445,220.0785429,221.1457988,222.2092289,223.2687699,224.3244205,225.3760815,226.4234992,227.4665122,228.5049961,229.5387063,230.5672233,231.5902031,232.6073239,233.6181325,234.6218912,235.6175273,236.6038883,237.5796928,238.5434847,239.4938912,240.4295803,241.3491171,242.2509251,243.1335537,243.9956437,244.8357949,245.6524365,246.4438025,247.208214,247.9440623,248.6496938,249.3234008,249.9637211,250.5694381,251.1395864,251.6737657,252.1721572,252.6354427,253.0647301,253.4614836,253.827459,254.1646442,254.4752042,254.76143,255,255,255,255,255,255,255,255,255,255,255,255,255
0,0,0.038246456,0.894447573,1.751721918,2.610890514,3.473119448,4.339790688,5.21237245,6.092288884,6.980788875,7.878813747,8.786965089,9.705775367,10.6356728,11.57694465,12.53000303,13.49534483,14.47340845,15.46442866,16.46828959,17.48447717,18.51233384,19.55110868,20.60020847,21.65914301,22.72736742,23.80422438,24.88918921,25.98180937,27.08164286,28.18849954,29.30237725,30.42329542,31.55122905,32.68634583,33.82893797,34.97925163,36.13731507,37.30286723,38.47558923,39.65513199,40.84134558,42.03420333,43.23362349,44.43939138,45.65138469,46.86949362,48.09343875,49.32268933,50.55668489,51.79485335,53.0368311,54.28237836,55.53119243,56.78282191,58.03688463,59.29298087,60.55060631,61.80936883,63.06890089,64.32877172,65.58870364,66.84848404,68.10787747,69.36684184,70.62544055,71.88365324,73.14128798,74.39819782,75.65419307,76.90895386,78.1622469,79.41383834,80.66340671,81.91076051,83.15585309,84.39900082,85.64079736,86.88192669,88.12297651,89.36435307,90.60650014,91.8498139,93.09455758,94.34108016,95.58973068,96.84077228,98.09460007,99.35165452,100.6122329,101.8764019,103.1442136,104.4156167,105.6903678,106.9682454,108.2489603,109.5320641,110.817163,112.1038263,113.3914942,114.6796904,115.9679298,117.2556263,118.5423049,119.8275094,121.1107105,122.3915181,123.6695903,124.9445414,126.2161563,127.4842998,128.7488269,130.009798,131.26739,132.5217068,133.7726917,135.0203445,136.2646348,137.5054161,138.7426438,139.9762907,141.2062622,142.4326165,143.6554809,144.8748679,146.0905924,147.3024943,148.5103567,149.7138259,150.9126348,152.1065236,153.2951612,154.4783711,155.6560544,156.828113,157.9946786,159.1560375,160.3124557,161.4641053,162.6112964,163.7544058,164.8937039,166.0292845,167.1612995,168.2898892,169.4151135,170.5371884,171.6564177,172.7730243,173.887084,174.9987627,176.1082502,177.2156953,178.3214437,179.4259735,180.5297289,181.632954,182.7356285,183.8377071,184.939157,186.0401978,187.1412368,188.2427043,189.3448875,190.4478665,191.5517542,192.6566321,193.7624854,194.869443,195.9777121,197.0874125,198.1985107,199.3110593,200.4251309,201.5406513,202.6573331,203.7749138,204.8930894,206.0114477,207.129706,208.2476441,209.3649365,210.4810858,211.5956602,212.7082271,213.8182873,214.9255128,216.0296822,217.1305134,218.2275996,219.3206494,220.4094228,221.4935677,222.5725571,223.6459317,224.7132397,225.7739762,226.8278289,227.8746196,228.9141463,229.9460255,230.9696375,231.9843768,232.9895999,233.9844724,234.9679198,235.9388831,236.8962729,237.8389243,238.7658594,239.6762461,240.5692596,241.4439452,242.2991855,243.1339745,243.9473909,244.7384721,245.5060921,246.2489442,246.9658312,247.6556552,248.3173096,248.9496771,249.5519359,250.1235659,250.6642584,251.1738299,251.6521411,252.0990201,252.5142922,252.8981179,253.2510323,253.5738872,253.867798,254.1340951,254.37428,254.5899849,254.7829366,254.9549243,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255
0,0,0.052819176,0.858378802,1.664938582,2.473296847,3.284610035,4.100271158,4.921787808,5.750659517,6.588254231,7.435683686,8.293778878,9.163368272,10.0452502,10.94006214,11.84824952,12.77033683,13.70689251,14.65839029,15.62506846,16.60688819,17.60379385,18.61566686,19.64227721,20.683537,21.73944751,22.80994273,23.89483198,24.99404465,26.10756853,27.2352846,28.376901,29.53218919,30.70091375,31.8827601,33.07756447,34.28523766,35.50558541,36.73822835,37.98282408,39.2389834,40.50618458,41.78399018,43.07195797,44.36955032,45.67634617,46.99194742,48.3157825,49.64701004,50.98472553,52.327964,53.6759046,55.02777014,56.38272585,57.74008184,59.09919085,60.4593456,61.81998019,63.18056701,64.54051365,65.89936401,67.25669531,68.61201522,69.96496348,71.31520958,72.66235078,74.00611482,75.34625879,76.68246856,78.01456297,79.34239438,80.66574983,81.98455709,83.29888852,84.60916845,85.91607703,87.22035323,88.52269981,89.82399281,91.12518722,92.42712133,93.73042252,95.03571716,96.3435361,97.65421984,98.96812755,100.2855415,101.6065708,102.9313592,104.2599877,105.5923771,106.9284936,108.2682501,109.6114066,110.9577747,112.3071169,113.6590458,115.0132265,116.3692754,117.7266577,119.084889,120.4434331,121.801599,123.1587426,124.5142648,125.8678137,127.219182,128.568205,129.9149632,131.2596804,132.6025222,133.9434943,135.2826469,136.6199742,137.9553146,139.2885556,140.6195339,141.9479368,143.2735077,144.5959477,145.914818,147.2297465,148.5403311,149.8460432,151.146437,152.4410536,153.729328,155.0107995,156.2850196,157.5514608,158.8097307,160.0594832,161.3003305,162.5320609,163.754554,164.9676966,166.1716048,167.3665428,168.5528436,169.7311347,170.9022617,172.0671103,173.2264311,174.3807654,175.5306766,176.6766782,177.8191623,178.9586329,180.0956355,181.230586,182.3637009,183.4952327,184.6254005,185.7543218,186.8822478,188.0094953,189.1362771,190.2626343,191.3886718,192.514491,193.6401219,194.7657591,195.8916943,197.0181473,198.1451975,199.2730208,200.4018213,201.5316619,202.6623958,203.7939025,204.9260193,206.0584723,207.1911123,208.3238454,209.4564633,210.5885742,211.7198381,212.8498982,213.9783122,215.1047881,216.2291157,217.3509978,218.4699822,219.5856989,220.6977931,221.8057578,222.9088677,224.0064186,225.0976628,226.1817457,227.2579473,228.3256206,229.38403,230.4322921,231.4696226,232.4952794,233.5084075,234.5079858,235.4930804,236.4627964,237.4161287,238.351919,239.269117,240.1667419,241.0437443,241.8989726,242.731447,243.5403323,244.3248127,245.0840718,245.8175803,246.525083,247.206489,247.8617651,248.4908332,249.0934722,249.6692232,250.2174004,250.7374102,251.2287699,251.6910303,252.123701,252.5262829,252.8986086,253.2408831,253.5536283,253.8376312,254.0938967,254.3236054,254.5280746,254.7087239,254.8670447,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255
0,0,0,0.648052596,1.400663217,2.155232602,2.913035978,3.675632944,4.444753526,5.222183501,6.00964874,6.808698312,7.62058607,8.446251916,9.286605351,10.14250275,11.01462101,11.90343029,12.80946852,13.73330921,14.67542518,15.63604976,16.61513651,17.61262047,18.62837241,19.66215024,20.713852,21.78346185,22.87089199,23.97592329,25.09844742,26.23840222,27.39560289,28.56967209,29.76027163,30.96712877,32.19026287,33.42990544,34.6863162,35.95959681,37.24960335,38.5561606,39.87896949,41.21751214,42.57125865,43.93956732,45.32158254,46.71643478,48.12313429,49.54046283,50.96716788,52.4019524,53.84366609,55.29119109,56.74332671,58.1989775,59.65713782,61.11707863,62.57822976,64.03996046,65.50146121,66.96192958,68.42055343,69.87669696,71.32988432,72.77998634,74.22710349,75.6713479,77.11272728,78.55133338,79.98722678,81.42032201,82.85057736,84.27798224,85.70274784,87.12519392,88.54563608,89.96457755,91.38259703,92.80023684,94.21819531,95.63721513,97.05787016,98.48045352,99.90516965,101.3321233,102.7615109,104.1935077,105.6281538,107.0655453,108.5057191,109.9485393,111.3938852,112.8415368,114.2910584,115.7419869,117.1938164,118.6461861,120.0987632,121.5511263,123.0029523,124.4538997,125.903492,127.3513048,128.7969508,130.2402681,131.6812043,133.1195988,134.5550688,135.9871977,137.4155227,138.8397248,140.2595159,141.6745259,143.0844947,144.4891615,145.8881537,147.2811816,148.6679295,150.0479479,151.4208503,152.7862075,154.1434425,155.4920309,156.8314998,158.1616304,159.4823587,160.7935748,162.0950264,163.3865269,164.6679628,165.9395053,167.2015186,168.4544707,169.6991491,170.9365736,172.1678097,173.3937821,174.6151912,175.8327343,177.0470237,178.2585047,179.4676789,180.6750234,181.880809,183.0850201,184.2875793,185.488369,186.6874562,187.8850134,189.0811386,190.2757764,191.4689441,192.6606532,193.8508317,195.0395506,196.226946,197.4130411,198.5976686,199.780698,200.9619592,202.1411662,203.3181447,204.4927566,205.6648243,206.8343599,208.0014904,209.1662818,210.3285639,211.4878561,212.643599,213.7951824,214.9421776,216.0842655,217.221064,218.3520583,219.4768352,220.5950146,221.7060804,222.8093141,223.9040331,224.9895264,226.0649915,227.1297769,228.1833217,229.2249959,230.2540429,231.2698291,232.2717904,233.2592794,234.2315165,235.1878469,236.1276958,237.050425,237.9552928,238.8417208,239.7092595,240.5574552,241.3857193,242.1933024,242.9795755,243.7440096,244.4860581,245.2050418,245.9001382,246.5706798,247.2161507,247.8360858,248.4299738,248.9972654,249.5376899,250.0512711,250.538246,250.9989879,251.4339329,251.8435106,252.2280792,252.5878634,252.9228965,253.2330685,253.5184805,253.7794998,254.0167171,254.2309073,254.4229933,254.5940146,254.7450977,254.8774306,254.9922403,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255
0,0,0,0.451940485,1.15306893,1.856302083,2.563025076,3.274952341,3.994021338,4.722285492,5.461806053,6.214542578,6.982241718,7.766324026,8.567869931,9.387907462,10.22739314,11.08708869,11.96753624,12.8693347,13.79310878,14.73937345,15.70839507,16.70015051,17.71458716,18.75157521,19.8108566,20.89229476,21.99581676,23.12125081,24.26826175,25.43658751,26.62596812,27.83607148,29.06672021,30.31781117,31.58923188,32.88107804,34.19356388,35.5268279,36.88083706,38.25559192,39.65102452,41.0667918,42.50216716,43.95623337,45.42786957,46.91593839,48.41916615,49.93602061,51.46489068,53.00406126,54.55188907,56.10677414,57.6673328,59.23236682,60.80103443,62.37271656,63.94678099,65.52244758,67.09895725,68.67553801,70.25157356,71.82656918,73.40032042,74.97277776,76.54381009,78.11306971,79.68016182,81.24461145,82.80603352,84.36410053,85.91871342,87.4698688,89.0175267,90.56178297,92.10283948,93.64117759,95.17742791,96.71224044,98.24645924,99.78099311,101.316585,102.8536826,104.3926132,105.9335556,107.4767141,109.0221883,110.569843,112.1194808,113.6708128,115.223631,116.7776768,118.3325087,119.8876745,121.4426804,122.9971627,124.5507558,126.1029596,127.6533116,129.2013569,130.7468201,132.2894744,133.8290108,135.3652115,136.8978201,138.4264122,139.9505702,141.469857,142.9839919,144.4927241,145.9957063,147.4926734,148.9833184,150.4671683,151.9437661,153.4126502,154.8735383,156.3262081,157.7703787,159.2058984,160.6326287,162.0503298,163.458852,164.8580243,166.2475432,167.6271688,168.9967187,170.3562655,171.7060334,173.046193,174.37676,175.6977998,177.0094297,178.3120263,179.6061296,180.8922472,182.1707614,183.4421411,184.7068511,185.9652626,187.2178686,188.465196,189.7076175,190.9452652,192.1782499,193.4066774,194.6308693,195.8512791,197.0683087,198.2822262,199.4933883,200.7021597,201.9087306,203.1130368,204.3149835,205.5143661,206.7107907,207.9038993,209.0932919,210.278448,211.4589537,212.634425,213.8044317,214.9687263,216.1271696,217.2795557,218.4255391,219.5648675,220.6973104,221.8224884,222.9398039,224.0486781,225.148484,226.2384813,227.318057,228.3866624,229.4436514,230.488221,231.519658,232.5372836,233.5402983,234.5277303,235.4986904,236.4523251,237.3876706,238.3036106,239.1991419,240.0733377,240.9252133,241.753696,242.5579024,243.3371159,244.0906653,244.8179095,245.5185295,246.1925206,246.8400873,247.4615417,248.0572064,248.6273209,249.171952,249.6910097,250.1845709,250.6529028,251.0963885,251.5154567,251.9105152,252.2818879,252.6297548,252.9540972,253.2547458,253.5317384,253.7853754,254.0161787,254.2248532,254.4122525,254.5793469,254.7271957,254.8569222,254.9696906,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255
0,0,0,0.321039731,0.979130441,1.639397486,2.30329308,2.972631335,3.649488428,4.336101933,5.034769026,5.747743217,6.477129275,7.224776001,7.992166549,8.780407402,9.590518615,10.4234167,11.27979284,12.16008906,13.06477513,13.99431762,14.94904387,15.92900232,16.93392035,17.96346262,19.01728284,20.09527458,21.19751435,22.32409951,23.475084,24.65071459,25.8513593,27.07733065,28.3288066,29.60605185,30.90933113,32.23881864,33.5948077,34.97761234,36.38736346,37.82390237,39.28697449,40.77611485,42.29052957,43.82927762,45.39124608,46.97532443,48.58027119,50.20457729,51.84663041,53.50467373,55.17696471,56.86172876,58.55731346,60.26213825,61.97484512,63.69414384,65.41865595,67.14706194,68.87804489,70.61043631,72.34315878,74.07537118,75.80641106,77.53593989,79.26378432,80.9896761,82.71309389,84.43351078,86.1506423,87.8642892,89.57418078,91.28012288,92.98194372,94.67964304,96.37333913,98.06341921,99.75038628,101.4347065,103.116961,104.7976944,106.4772632,108.1559886,109.834107,111.5119233,113.1896599,114.8673061,116.5447711,118.2218352,119.8983029,121.5739538,123.2486961,124.922416,126.5948278,128.2656275,129.9344445,131.6009959,133.2649371,134.9257128,136.5827125,138.2352236,139.8825878,141.5241559,143.1594456,144.7879962,146.4092241,148.0225837,149.6275267,151.2236649,152.8106305,154.3879378,155.9551499,157.5118446,159.0577847,160.5927849,162.1165813,163.6290058,165.1299606,166.6195956,168.0981848,169.5660037,171.0235122,172.471236,173.9095471,175.3385476,176.7582593,178.1686116,179.5696335,180.9613435,182.3436398,183.7164973,185.0799622,186.4343515,187.7801493,189.1178032,190.4476236,191.769988,193.0852426,194.3936048,195.6953716,196.9908235,198.2801308,199.5635646,200.8414038,202.1137428,203.3804002,204.6411339,205.8956528,207.1438335,208.3856326,209.6208995,210.849291,212.0704912,213.2841283,214.4896924,215.6867587,216.874908,218.0536476,219.2226388,220.3816211,221.530236,222.6679549,223.7943117,224.908833,226.0109706,227.1003396,228.1766536,229.2395618,230.2885876,231.3233756,232.3436343,233.3489813,234.3387895,235.3121376,236.268067,237.2055365,238.1233809,239.0205747,239.8961963,240.7492929,241.5788503,242.3840703,243.1643475,243.9191482,244.6478931,245.3499455,246.024907,246.6726138,247.2930349,247.886175,248.4519808,248.990354,249.5014711,249.9858044,250.4440449,250.8770296,251.2856724,251.6708992,252.0335866,252.3745033,252.6942565,252.99324,253.271586,253.5292223,253.7662354,253.9829334,254.1798103,254.3575137,254.5168147,254.6585817,254.7837559,254.8933304,254.9883311,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255
0,0,0,0.200220078,0.797068617,1.396095637,1.998799684,2.607077779,3.223134772,3.849391853,4.488393888,5.142715222,5.81486356,6.507181552,7.221745697,7.960262228,8.72406106,9.514390363,10.33240312,11.17903829,12.05499926,12.96103213,13.89789548,14.86622411,15.86638824,16.89844931,17.96241529,19.05818694,20.18549926,21.34416241,22.5339937,23.75474476,25.0063284,26.28873643,27.601953,28.9461674,30.32167809,31.72869064,33.16721232,34.63724629,36.13867672,37.67114922,39.23425084,40.82738104,42.44961821,44.09988584,45.77691144,47.47938422,49.20580434,50.95432854,52.72291623,54.50926951,56.31107447,58.12623965,59.95282815,61.78919038,63.63389237,65.4858454,67.34413009,69.20781952,71.07610549,72.94822122,74.82356613,76.70162731,78.58210317,80.46472263,82.34906381,84.23467669,86.12100268,88.00749681,89.893547,91.77859613,93.66206135,95.54345636,97.42231111,99.29829462,101.1711354,103.040745,104.9071395,106.7705637,108.6313126,110.4895519,112.3454446,114.1990741,116.0505711,117.9000373,119.7476734,121.5936018,123.4376909,125.2796826,127.1191186,128.9554685,130.7880566,132.6161912,134.4390922,136.2560219,138.0662133,139.8690036,141.663764,143.4500349,145.2273571,146.9951054,148.7526262,150.4991752,152.2340588,153.956574,155.6661538,157.3623107,159.0447854,160.7133934,162.3678735,164.0080424,165.633749,167.2450334,168.8420856,170.4254082,171.9956786,173.5535103,175.0993189,176.6334927,178.156364,179.6683835,181.169993,182.6614996,184.1432553,185.6155347,187.0784129,188.5319508,189.9760755,191.4104642,192.8348335,194.2492311,195.6539232,197.0491815,198.4351737,199.8121596,201.1803835,202.5399695,203.8911206,205.2340162,206.5687106,207.895336,209.2140041,210.5246061,211.8267163,213.1198003,214.4032225,215.6764572,216.938997,218.1902628,219.4298201,220.6572916,221.8721716,223.0737423,224.2612973,225.434062,226.5911171,227.7316271,228.8547686,229.9596599,231.0455976,232.1119927,233.1582064,234.183492,235.1872429,236.16894,237.1280008,238.0637333,238.9755974,239.8631657,240.7259865,241.5635517,242.3755727,243.1619563,243.9226818,244.6576839,245.3667373,246.0494485,246.7055541,247.3349201,247.9374431,248.5129558,249.0612376,249.582334,250.0765752,250.5444984,250.9867728,251.4041296,251.7972955,252.1669301,252.5135661,252.8375547,253.1390128,253.4178758,253.6742581,253.9085126,254.1211917,254.3130128,254.4848257,254.6375839,254.772319,254.8901174,254.9921003,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255
0,0,0,0.127904073,0.66742221,1.209058654,1.75432472,2.305158311,2.863841909,3.432919716,4.015113615,4.613237558,5.230109985,5.868463844,6.530853799,7.219560212,7.936489516,8.683172048,9.461059862,10.27151585,11.11569679,11.99453289,12.90900647,13.86012128,14.84876497,15.87556611,16.94084699,18.04487488,19.18780327,20.36960734,21.59031776,22.84994447,24.14839457,25.4856886,26.86186679,28.27688939,29.73083548,31.22379165,32.75573483,34.32671354,35.93671896,37.58544882,39.27216682,40.99586037,42.75518995,44.54863562,46.37443542,48.23072144,50.11544825,52.02651949,53.96170748,55.91877158,57.89537019,59.88927364,61.89857416,63.92158899,65.95696404,68.00347121,70.0598039,72.12467502,74.19671073,76.27454572,78.35671456,80.44184645,82.52885929,84.61684908,86.70518182,88.79328112,90.88041567,92.96579101,95.04843864,97.12740957,99.20196836,101.2714833,103.3355205,105.3937353,107.4459677,109.492136,111.5323338,113.566725,115.5956433,117.6193872,119.6380167,121.6514548,123.6593866,125.6614641,127.6575108,129.6474241,131.6312808,133.609139,135.5808417,137.546125,139.5045245,141.4554855,143.3982715,145.332178,147.2567474,149.1715797,151.0761448,152.9699001,154.8522073,156.722453,158.5799688,160.4241558,162.2544083,164.070242,165.8712217,167.6570944,169.4277206,171.1832125,172.9237683,174.6495102,176.3606285,178.0573245,179.7399595,181.4089006,183.0643695,184.7065973,186.3357781,187.9522281,189.5562419,191.1479511,192.7274886,194.2949523,195.8505732,197.3945813,198.9270728,200.4481843,201.9579631,203.4562404,204.94281,206.4174055,207.8798829,209.3301002,210.7677989,212.1927917,213.6048477,215.0035799,216.3886382,217.7596008,219.1158672,220.4568581,221.7819126,223.0901883,224.3808676,225.6530625,226.905722,228.1378466,229.3484015,230.5362325,231.7002899,232.8395516,233.952949,235.0396019,236.0987523,237.1296012,238.1312506,239.1029545,240.0440697,240.9540108,241.8325148,242.6796055,243.4954616,244.2802891,245.034199,245.7571903,246.449443,247.1113099,247.7432132,248.3455448,248.9185714,249.4624451,249.9775231,250.4643872,250.9237668,251.3564648,251.7632895,252.1449889,252.5021898,252.8353404,253.1446564,253.4301725,253.6921017,253.9308932,254.1471936,254.3418108,254.5156812,254.6698411,254.8053995,254.923516,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255
0,0,0,0.100740916,0.595144071,1.091572833,1.591526244,2.096947595,2.610149227,3.133736503,3.670530599,4.223489733,4.795628397,5.389934168,6.009281631,6.656342971,7.333494813,8.042720896,8.785611641,9.563663118,10.37826674,11.23059228,12.12156679,13.05215209,14.02331219,15.03587342,16.09047981,17.18784647,18.3287025,19.51372737,20.74378506,22.01984731,23.34280868,24.71339616,26.13237584,27.60044835,29.11813687,30.68597214,32.30436565,33.97347539,35.6933682,37.46387025,39.28440996,41.15415745,43.07185235,45.03562415,47.04321103,49.09217173,51.17978664,53.30315552,55.45908655,57.64428429,59.85553263,62.0895693,64.34326054,66.61387377,68.89924595,71.1975437,73.50702124,75.82608056,78.15312713,80.48662697,82.82495967,85.16657473,87.51014711,89.85442806,92.19829853,94.54061962,96.88028586,99.21607601,101.5468084,103.8714968,106.1892031,108.4990933,110.8002921,113.0920424,115.3738671,117.6454266,119.9065823,122.1572571,124.3975018,126.6273592,128.8469332,131.0562562,133.2553612,135.4441527,137.6224813,139.7900181,141.9463321,144.0907681,146.2226289,148.3413604,150.4464335,152.5374321,154.6139385,156.6756254,158.7221462,160.7532311,162.7685819,164.7679725,166.7511489,168.7179339,170.6681321,172.6016401,174.5183556,176.4182927,178.3014967,180.1681639,182.01846,183.8523409,185.6697817,187.4710079,189.2563238,191.0259427,192.7801248,194.5191135,196.2432776,197.9529511,199.6482754,201.3293483,202.9961716,204.648804,206.2872121,207.9111237,209.5201863,211.1139267,212.6919143,214.2536228,215.7982951,217.3251133,218.8331699,220.3216441,221.7896758,223.2362441,224.6603516,226.0610103,227.4374329,228.7889237,230.114672,231.4136497,232.6848185,233.9270355,235.1389637,236.3192911,237.4666496,238.5795394,239.656562,240.6964556,241.6983393,242.6616578,243.5860308,244.4711086,245.3165342,246.122216,246.8883023,247.6150597,248.3027586,248.9516648,249.5623419,250.1356555,250.6726807,251.1746166,251.642705,252.0781552,252.4820736,252.8553981,253.1988376,253.5129168,253.7983308,254.0559987,254.2870211,254.492641,254.6742093,254.8331538,254.9709518,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255
1 0 0.159884254 1.169178248 2.17867424 3.188376224 4.198467718 5.209261387 6.221047205 7.233940506 8.247831302 9.262637641 10.27825461 11.29450321 12.3113833 13.32902222 14.34752198 15.36680628 16.38656879 17.40652557 18.42636322 19.44568695 20.4642729 21.48201634 22.49877857 23.51433535 24.52862964 25.54172041 26.55363012 27.5642939 28.57381299 29.58240428 30.59024853 31.59744015 32.60424137 33.61103217 34.61815898 35.62578332 36.63383182 37.64225035 38.65095394 39.65977658 40.66872518 41.67792941 42.68748998 43.69742833 44.70794055 45.71934691 46.73193998 47.74583262 48.7609071 49.7770684 50.79419296 51.81207739 52.83069118 53.85012509 54.87043806 55.89150396 56.91295961 57.93445694 58.95561087 59.97594716 60.99515452 62.01303271 63.02933928 64.043738 65.05605172 66.0662113 67.07410344 68.07952023 69.08241328 70.08284401 71.08083288 72.07631038 73.06937272 74.06023351 75.04907451 76.0359981 77.02128425 78.00534355 78.9885691 79.97118861 80.95321795 81.93471911 82.91575397 83.89633815 84.87669917 85.85723048 86.83834402 87.8203229 88.80327525 89.78739227 90.77290186 91.75992067 92.7484074 93.73842002 94.73006859 95.72336645 96.71818257 97.71449785 98.71235697 99.71171867 100.7124071 101.7143673 102.7176161 103.7220916 104.7276037 105.7340887 106.7415596 107.7499549 108.7590884 109.7689035 110.7794226 111.7905953 112.8022485 113.8143391 114.8269041 115.8399081 116.8531926 117.8667294 118.8805696 119.8946911 120.9089479 121.9233233 122.9378785 123.9526005 124.9673505 125.9821178 126.9969678 128.0118901 129.0267468 130.0415261 131.056291 132.0710265 133.0855886 134.0999576 135.1141867 136.1282498 137.1419902 138.155374 139.1684388 140.1811418 141.1933087 142.204887 143.2158953 144.2262717 145.2358224 146.244476 147.2522333 148.2590152 149.2646128 150.2689418 151.2719928 152.2736801 153.2737925 154.2722482 155.269046 156.2641153 157.2572675 158.2484521 159.2377086 160.2250182 161.2102556 162.1934469 163.1747224 164.1541693 165.1317853 166.107737 167.0823143 168.0557838 169.028344 170.0003839 170.9724386 171.9450433 172.918587 173.8932676 174.8693513 175.8471275 176.8267621 177.8082518 178.7916825 179.7771832 180.7647782 181.7543403 182.7458479 183.739338 184.7347566 185.7319114 186.7307273 187.7311979 188.733236 189.7366237 190.7412682 191.747152 192.7541817 193.7621387 194.7709331 195.7805536 196.7909161 197.801813 198.8131674 199.8249819 200.8371874 201.8495917 202.8621332 203.8748303 204.8876291 205.9003524 206.9129535 207.9254646 208.9378457 209.9499328 210.9616918 211.9731677 212.9843328 213.9950354 215.0052541 216.0150468 217.0243991 218.0331741 219.0413657 220.0490488 221.0562279 222.0627865 223.0687419 224.0741948 225.0791786 226.0836089 227.0875392 228.09111 229.094399 230.097371 231.1001329 232.1028844 233.1057672 234.1087747 235.1118689 236.1150151 237.1181825 238.1213437 239.1244745 240.1275541 241.1305647 242.1334915 243.1363228 244.1390495 245.1416653 246.1441669 247.1465534 248.1488266 249.150991 250.1530538 251.1550248 252.1569168 253.1587452 254.1605284 255
2 0 0.156204411 1.119881995 2.083750759 3.047817502 4.012282812 4.977497556 5.943817892 6.911460174 7.880457101 8.850917873 9.822983938 10.79678452 11.7726961 12.75129746 13.73322293 14.71901532 15.70897827 16.70312951 17.7014576 18.70387396 19.71016419 20.72024299 21.73410435 22.75166965 23.77273673 24.79723254 25.82516104 26.85644921 27.89089396 28.9284127 29.96898928 31.01251803 32.05874872 33.10753537 34.15878035 35.21227678 36.26765187 37.3246142 38.38289651 39.44219824 40.50243201 41.56366589 42.62596395 43.68932818 44.75394442 45.82012391 46.88814325 47.95808416 49.02977429 50.10303207 51.17760696 52.2531196 53.32930586 54.40595658 55.48275586 56.55922058 57.63494417 58.70953626 59.78256236 60.85378793 61.92311856 62.99043891 64.05555338 65.11843131 66.17914826 67.23772626 68.29407576 69.34824214 70.40034831 71.45043623 72.49841022 73.54428468 74.58812799 75.62990531 76.66942304 77.70657786 78.74130191 79.77350824 80.80334094 81.83112136 82.85719329 83.88186989 84.90568505 85.92934074 86.95355312 87.97889865 89.00576151 90.03458507 91.06581896 92.09976438 93.13652053 94.17623472 95.21904803 96.26493893 97.31366802 98.36502635 99.41877924 100.4746097 101.5323654 102.5920019 103.653423 104.7164234 105.7809344 106.8469658 107.9144458 108.9831619 110.0530066 111.1239175 112.1957172 113.2680531 114.3406424 115.4132118 116.4854383 117.5571931 118.6284822 119.6992849 120.7694945 121.8391629 122.9084411 123.9774181 125.0460623 126.1144657 127.1827851 128.2510812 129.3192597 130.3873162 131.4552771 132.5230388 133.5903091 134.6568517 135.7224277 136.7867362 137.8496603 138.9112082 139.9713533 141.0299763 142.0871115 143.1428887 144.1973746 145.2505157 146.3023848 147.3531245 148.4027893 149.4511871 150.4978232 151.5421482 152.5836037 153.6218706 154.6568142 155.6883283 156.7162805 157.7407632 158.7620406 159.7803942 160.7959697 161.808725 162.8186836 163.8258833 164.8303261 165.8322322 166.8319908 167.8300088 168.8266626 169.8225535 170.8184588 171.8151829 172.813407 173.8135393 174.8156665 175.8198092 176.8258723 177.8335957 178.8428088 179.8533802 180.865066 181.8774596 182.8902448 183.9031455 184.9158747 185.9283875 186.9408309 187.9533912 188.9661419 189.9789928 190.9919438 192.0050335 193.0182885 194.031977 195.0465577 196.0625273 197.0802681 198.099997 199.1220172 200.1466675 201.1741678 202.2045667 203.2379929 204.2746014 205.3144185 206.3572868 207.4031153 208.4518235 209.5031841 210.5567675 211.6121883 212.6690495 213.7268844 214.7854037 215.844438 216.9037784 217.9631189 219.022303 220.0812653 221.139873 222.1978674 223.255111 224.3115295 225.3669531 226.421059 227.4736184 228.5244393 229.5732088 230.6194358 231.6626996 232.7025939 233.7385697 234.7698808 235.7958336 236.8157331 237.8287295 238.8337654 239.82983 240.8159088 241.7908958 242.7537163 243.7033728 244.6389567 245.5596625 246.4648035 247.3538306 248.2263526 249.0821593 249.9212474 250.743848 251.5504577 252.3418711 253.1192169 253.8839736 254.637898 255 255 255 255 255 255
3 0 0 0.63196801 1.583515363 2.53569815 3.489006807 4.444159004 5.401956333 6.363140716 7.32825041 8.29757692 9.271425532 10.250071 11.23361117 12.22192125 13.21491161 14.21248061 15.21436536 16.22009315 17.22923652 18.24136345 19.25598711 20.27281937 21.29171964 22.31254207 23.33508378 24.35933707 25.38543705 26.41350774 27.44360922 28.47598868 29.51102699 30.54908352 31.59044192 32.63555975 33.68501327 34.73934037 35.79888279 36.86372907 37.93396083 39.00959416 40.09052013 41.17674874 42.2683478 43.36527973 44.46733877 45.57439182 46.68631412 47.80282289 48.92341155 50.04758757 51.17480542 52.304399 53.43581785 54.56855875 55.70209708 56.83612218 57.97046836 59.10494445 60.23926471 61.37328389 62.50692817 63.64002467 64.77223248 65.90327791 67.03288579 68.1607108 69.28657332 70.41039131 71.53201106 72.6511397 73.7675822 74.88117456 75.99171741 77.09921422 78.20380579 79.30560376 80.40462596 81.50103645 82.59508168 83.68702709 84.77739826 85.86691818 86.95634332 88.04629983 89.13722119 90.22958997 91.32387523 92.42036831 93.51911976 94.62018009 95.72353604 96.82904649 97.9366822 99.04646104 100.1582815 101.2718573 102.3869559 103.5033323 104.6206633 105.7387849 106.8576259 107.9770397 109.0967379 110.2165272 111.3362427 112.4556811 113.574838 114.6938405 115.81278 116.9316443 118.0505557 119.1697041 120.2891787 121.4089012 122.5288632 123.6490591 124.7694194 125.890048 127.0111549 128.1328877 129.255265 130.3784128 131.5024975 132.6275571 133.7534336 134.8800092 136.0071389 137.134481 138.2614291 139.387348 140.5116078 141.6338195 142.7537678 143.8712426 144.9859717 146.0978586 147.2069164 148.3131006 149.4162438 150.5162951 151.6132555 152.707013 153.7972783 154.883827 155.9664362 157.0448234 158.1188888 159.1886549 160.2541048 161.3151232 162.3717414 163.4240795 164.4721878 165.5159892 166.5555283 167.5909152 168.6222707 169.6499766 170.674622 171.6968483 172.717196 173.7360516 174.7539006 175.771275 176.7886008 177.8061464 178.8242751 179.8433936 180.863799 181.8856272 182.9091047 183.9344967 184.961953 185.9914558 187.0230703 188.0568914 189.0928892 190.1308542 191.1706478 192.2121475 193.2551918 194.2998297 195.3462648 196.3946987 197.4451735 198.4975156 199.5515835 200.607211 201.6641501 202.7223179 203.7817394 204.8423882 205.9041285 206.9669618 208.0309683 209.0961471 210.162358 211.2295667 212.2977862 213.366916 214.4366833 215.5068878 216.5773423 217.647813 218.7182648 219.7888011 220.8595035 221.9302704 223.0007578 224.0706238 225.139469 226.2067775 227.2721613 228.3353019 229.3957896 230.4530655 231.5066673 232.5561725 233.6010391 234.6404487 235.6732504 236.6982104 237.713958 238.718933 239.711639 240.6905934 241.6541782 242.6005947 243.5281238 244.4350856 245.3196999 246.1799496 247.0135498 247.8182887 248.5922923 249.3341038 250.0427308 250.717696 251.3590937 251.9676263 252.5445422 253.0915466 253.6107144 254.104408 254.5751994 255 255 255 255 255 255 255 255 255 255
4 0 0 0.278331969 1.179779922 2.082131942 2.986077214 3.892600322 4.802845354 5.717979607 6.639056732 7.56687915 8.501960984 9.444794194 10.39580941 11.35523419 12.32305148 13.299261 14.28383519 15.27657243 16.2770505 17.28488294 18.2996701 19.32094905 20.34844667 21.38202754 22.42153952 23.46675975 24.51764405 25.5742712 26.63668496 27.70483668 28.77883118 29.85886762 30.94507802 32.03746636 33.13615088 34.24130131 35.35297369 36.47104565 37.59545496 38.72613283 39.86293632 41.005884 42.15508644 43.31057448 44.4722278 45.6400069 46.8138799 47.99364697 49.17886529 50.36907737 51.56373429 52.76211819 53.96356836 55.16740249 56.37283753 57.57921434 58.78591791 59.99229749 61.19789077 62.40234398 63.60523072 64.80597225 66.00406237 67.19908973 68.39096334 69.57983438 70.76591701 71.94930966 73.12991817 74.30768352 75.48250573 76.65416828 77.8225671 78.98763588 80.14927182 81.30756615 82.46273091 83.61502621 84.76499223 85.9133774 87.06096549 88.20840302 89.35612811 90.50460363 91.65424603 92.80535416 93.95834201 95.11366711 96.27165718 97.43243788 98.59616438 99.76294819 100.9327838 102.1057786 103.2820788 104.461693 105.6444165 106.8300601 108.0183731 109.2089672 110.4015429 111.5958123 112.7914211 113.9881747 115.1859601 116.3845655 117.5836023 118.7827303 119.9815786 121.179667 122.3766317 123.5721462 124.7658428 125.9575387 127.1471581 128.3346542 129.520236 130.7042914 131.8872088 133.0691994 134.2502202 135.4302026 136.608976 137.7861917 138.9615514 140.1347319 141.3053097 142.47299 143.6375325 144.7986773 145.9563752 147.1107147 148.2617482 149.4094193 150.5537963 151.6950001 152.8330328 153.9677076 155.0988828 156.2263934 157.3499818 158.4695342 159.5850135 160.6962902 161.8030769 162.9051664 164.002367 165.0944379 166.1813306 167.2631253 168.3399694 169.4123206 170.480886 171.5464612 172.6097697 173.6713026 174.7312599 175.7897971 176.8470683 177.9034726 178.959597 180.0160571 181.0733388 182.1317405 183.1916199 184.2533364 185.3170917 186.3828717 187.450692 188.5205392 189.5923121 190.6660658 191.7419527 192.8200609 193.9003535 194.9829127 196.0678784 197.1552858 198.2450034 199.3369755 200.4311593 201.5273615 202.6251746 203.7242178 204.8240739 205.9242249 207.0242927 208.123975 209.22288 210.3204624 211.4162639 212.5098497 213.6007452 214.6886771 215.773511 216.8550877 217.9331619 219.0076445 220.0785429 221.1457988 222.2092289 223.2687699 224.3244205 225.3760815 226.4234992 227.4665122 228.5049961 229.5387063 230.5672233 231.5902031 232.6073239 233.6181325 234.6218912 235.6175273 236.6038883 237.5796928 238.5434847 239.4938912 240.4295803 241.3491171 242.2509251 243.1335537 243.9956437 244.8357949 245.6524365 246.4438025 247.208214 247.9440623 248.6496938 249.3234008 249.9637211 250.5694381 251.1395864 251.6737657 252.1721572 252.6354427 253.0647301 253.4614836 253.827459 254.1646442 254.4752042 254.76143 255 255 255 255 255 255 255 255 255 255 255 255 255
5 0 0 0.038246456 0.894447573 1.751721918 2.610890514 3.473119448 4.339790688 5.21237245 6.092288884 6.980788875 7.878813747 8.786965089 9.705775367 10.6356728 11.57694465 12.53000303 13.49534483 14.47340845 15.46442866 16.46828959 17.48447717 18.51233384 19.55110868 20.60020847 21.65914301 22.72736742 23.80422438 24.88918921 25.98180937 27.08164286 28.18849954 29.30237725 30.42329542 31.55122905 32.68634583 33.82893797 34.97925163 36.13731507 37.30286723 38.47558923 39.65513199 40.84134558 42.03420333 43.23362349 44.43939138 45.65138469 46.86949362 48.09343875 49.32268933 50.55668489 51.79485335 53.0368311 54.28237836 55.53119243 56.78282191 58.03688463 59.29298087 60.55060631 61.80936883 63.06890089 64.32877172 65.58870364 66.84848404 68.10787747 69.36684184 70.62544055 71.88365324 73.14128798 74.39819782 75.65419307 76.90895386 78.1622469 79.41383834 80.66340671 81.91076051 83.15585309 84.39900082 85.64079736 86.88192669 88.12297651 89.36435307 90.60650014 91.8498139 93.09455758 94.34108016 95.58973068 96.84077228 98.09460007 99.35165452 100.6122329 101.8764019 103.1442136 104.4156167 105.6903678 106.9682454 108.2489603 109.5320641 110.817163 112.1038263 113.3914942 114.6796904 115.9679298 117.2556263 118.5423049 119.8275094 121.1107105 122.3915181 123.6695903 124.9445414 126.2161563 127.4842998 128.7488269 130.009798 131.26739 132.5217068 133.7726917 135.0203445 136.2646348 137.5054161 138.7426438 139.9762907 141.2062622 142.4326165 143.6554809 144.8748679 146.0905924 147.3024943 148.5103567 149.7138259 150.9126348 152.1065236 153.2951612 154.4783711 155.6560544 156.828113 157.9946786 159.1560375 160.3124557 161.4641053 162.6112964 163.7544058 164.8937039 166.0292845 167.1612995 168.2898892 169.4151135 170.5371884 171.6564177 172.7730243 173.887084 174.9987627 176.1082502 177.2156953 178.3214437 179.4259735 180.5297289 181.632954 182.7356285 183.8377071 184.939157 186.0401978 187.1412368 188.2427043 189.3448875 190.4478665 191.5517542 192.6566321 193.7624854 194.869443 195.9777121 197.0874125 198.1985107 199.3110593 200.4251309 201.5406513 202.6573331 203.7749138 204.8930894 206.0114477 207.129706 208.2476441 209.3649365 210.4810858 211.5956602 212.7082271 213.8182873 214.9255128 216.0296822 217.1305134 218.2275996 219.3206494 220.4094228 221.4935677 222.5725571 223.6459317 224.7132397 225.7739762 226.8278289 227.8746196 228.9141463 229.9460255 230.9696375 231.9843768 232.9895999 233.9844724 234.9679198 235.9388831 236.8962729 237.8389243 238.7658594 239.6762461 240.5692596 241.4439452 242.2991855 243.1339745 243.9473909 244.7384721 245.5060921 246.2489442 246.9658312 247.6556552 248.3173096 248.9496771 249.5519359 250.1235659 250.6642584 251.1738299 251.6521411 252.0990201 252.5142922 252.8981179 253.2510323 253.5738872 253.867798 254.1340951 254.37428 254.5899849 254.7829366 254.9549243 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
6 0 0 0.052819176 0.858378802 1.664938582 2.473296847 3.284610035 4.100271158 4.921787808 5.750659517 6.588254231 7.435683686 8.293778878 9.163368272 10.0452502 10.94006214 11.84824952 12.77033683 13.70689251 14.65839029 15.62506846 16.60688819 17.60379385 18.61566686 19.64227721 20.683537 21.73944751 22.80994273 23.89483198 24.99404465 26.10756853 27.2352846 28.376901 29.53218919 30.70091375 31.8827601 33.07756447 34.28523766 35.50558541 36.73822835 37.98282408 39.2389834 40.50618458 41.78399018 43.07195797 44.36955032 45.67634617 46.99194742 48.3157825 49.64701004 50.98472553 52.327964 53.6759046 55.02777014 56.38272585 57.74008184 59.09919085 60.4593456 61.81998019 63.18056701 64.54051365 65.89936401 67.25669531 68.61201522 69.96496348 71.31520958 72.66235078 74.00611482 75.34625879 76.68246856 78.01456297 79.34239438 80.66574983 81.98455709 83.29888852 84.60916845 85.91607703 87.22035323 88.52269981 89.82399281 91.12518722 92.42712133 93.73042252 95.03571716 96.3435361 97.65421984 98.96812755 100.2855415 101.6065708 102.9313592 104.2599877 105.5923771 106.9284936 108.2682501 109.6114066 110.9577747 112.3071169 113.6590458 115.0132265 116.3692754 117.7266577 119.084889 120.4434331 121.801599 123.1587426 124.5142648 125.8678137 127.219182 128.568205 129.9149632 131.2596804 132.6025222 133.9434943 135.2826469 136.6199742 137.9553146 139.2885556 140.6195339 141.9479368 143.2735077 144.5959477 145.914818 147.2297465 148.5403311 149.8460432 151.146437 152.4410536 153.729328 155.0107995 156.2850196 157.5514608 158.8097307 160.0594832 161.3003305 162.5320609 163.754554 164.9676966 166.1716048 167.3665428 168.5528436 169.7311347 170.9022617 172.0671103 173.2264311 174.3807654 175.5306766 176.6766782 177.8191623 178.9586329 180.0956355 181.230586 182.3637009 183.4952327 184.6254005 185.7543218 186.8822478 188.0094953 189.1362771 190.2626343 191.3886718 192.514491 193.6401219 194.7657591 195.8916943 197.0181473 198.1451975 199.2730208 200.4018213 201.5316619 202.6623958 203.7939025 204.9260193 206.0584723 207.1911123 208.3238454 209.4564633 210.5885742 211.7198381 212.8498982 213.9783122 215.1047881 216.2291157 217.3509978 218.4699822 219.5856989 220.6977931 221.8057578 222.9088677 224.0064186 225.0976628 226.1817457 227.2579473 228.3256206 229.38403 230.4322921 231.4696226 232.4952794 233.5084075 234.5079858 235.4930804 236.4627964 237.4161287 238.351919 239.269117 240.1667419 241.0437443 241.8989726 242.731447 243.5403323 244.3248127 245.0840718 245.8175803 246.525083 247.206489 247.8617651 248.4908332 249.0934722 249.6692232 250.2174004 250.7374102 251.2287699 251.6910303 252.123701 252.5262829 252.8986086 253.2408831 253.5536283 253.8376312 254.0938967 254.3236054 254.5280746 254.7087239 254.8670447 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
7 0 0 0 0.648052596 1.400663217 2.155232602 2.913035978 3.675632944 4.444753526 5.222183501 6.00964874 6.808698312 7.62058607 8.446251916 9.286605351 10.14250275 11.01462101 11.90343029 12.80946852 13.73330921 14.67542518 15.63604976 16.61513651 17.61262047 18.62837241 19.66215024 20.713852 21.78346185 22.87089199 23.97592329 25.09844742 26.23840222 27.39560289 28.56967209 29.76027163 30.96712877 32.19026287 33.42990544 34.6863162 35.95959681 37.24960335 38.5561606 39.87896949 41.21751214 42.57125865 43.93956732 45.32158254 46.71643478 48.12313429 49.54046283 50.96716788 52.4019524 53.84366609 55.29119109 56.74332671 58.1989775 59.65713782 61.11707863 62.57822976 64.03996046 65.50146121 66.96192958 68.42055343 69.87669696 71.32988432 72.77998634 74.22710349 75.6713479 77.11272728 78.55133338 79.98722678 81.42032201 82.85057736 84.27798224 85.70274784 87.12519392 88.54563608 89.96457755 91.38259703 92.80023684 94.21819531 95.63721513 97.05787016 98.48045352 99.90516965 101.3321233 102.7615109 104.1935077 105.6281538 107.0655453 108.5057191 109.9485393 111.3938852 112.8415368 114.2910584 115.7419869 117.1938164 118.6461861 120.0987632 121.5511263 123.0029523 124.4538997 125.903492 127.3513048 128.7969508 130.2402681 131.6812043 133.1195988 134.5550688 135.9871977 137.4155227 138.8397248 140.2595159 141.6745259 143.0844947 144.4891615 145.8881537 147.2811816 148.6679295 150.0479479 151.4208503 152.7862075 154.1434425 155.4920309 156.8314998 158.1616304 159.4823587 160.7935748 162.0950264 163.3865269 164.6679628 165.9395053 167.2015186 168.4544707 169.6991491 170.9365736 172.1678097 173.3937821 174.6151912 175.8327343 177.0470237 178.2585047 179.4676789 180.6750234 181.880809 183.0850201 184.2875793 185.488369 186.6874562 187.8850134 189.0811386 190.2757764 191.4689441 192.6606532 193.8508317 195.0395506 196.226946 197.4130411 198.5976686 199.780698 200.9619592 202.1411662 203.3181447 204.4927566 205.6648243 206.8343599 208.0014904 209.1662818 210.3285639 211.4878561 212.643599 213.7951824 214.9421776 216.0842655 217.221064 218.3520583 219.4768352 220.5950146 221.7060804 222.8093141 223.9040331 224.9895264 226.0649915 227.1297769 228.1833217 229.2249959 230.2540429 231.2698291 232.2717904 233.2592794 234.2315165 235.1878469 236.1276958 237.050425 237.9552928 238.8417208 239.7092595 240.5574552 241.3857193 242.1933024 242.9795755 243.7440096 244.4860581 245.2050418 245.9001382 246.5706798 247.2161507 247.8360858 248.4299738 248.9972654 249.5376899 250.0512711 250.538246 250.9989879 251.4339329 251.8435106 252.2280792 252.5878634 252.9228965 253.2330685 253.5184805 253.7794998 254.0167171 254.2309073 254.4229933 254.5940146 254.7450977 254.8774306 254.9922403 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
8 0 0 0 0.451940485 1.15306893 1.856302083 2.563025076 3.274952341 3.994021338 4.722285492 5.461806053 6.214542578 6.982241718 7.766324026 8.567869931 9.387907462 10.22739314 11.08708869 11.96753624 12.8693347 13.79310878 14.73937345 15.70839507 16.70015051 17.71458716 18.75157521 19.8108566 20.89229476 21.99581676 23.12125081 24.26826175 25.43658751 26.62596812 27.83607148 29.06672021 30.31781117 31.58923188 32.88107804 34.19356388 35.5268279 36.88083706 38.25559192 39.65102452 41.0667918 42.50216716 43.95623337 45.42786957 46.91593839 48.41916615 49.93602061 51.46489068 53.00406126 54.55188907 56.10677414 57.6673328 59.23236682 60.80103443 62.37271656 63.94678099 65.52244758 67.09895725 68.67553801 70.25157356 71.82656918 73.40032042 74.97277776 76.54381009 78.11306971 79.68016182 81.24461145 82.80603352 84.36410053 85.91871342 87.4698688 89.0175267 90.56178297 92.10283948 93.64117759 95.17742791 96.71224044 98.24645924 99.78099311 101.316585 102.8536826 104.3926132 105.9335556 107.4767141 109.0221883 110.569843 112.1194808 113.6708128 115.223631 116.7776768 118.3325087 119.8876745 121.4426804 122.9971627 124.5507558 126.1029596 127.6533116 129.2013569 130.7468201 132.2894744 133.8290108 135.3652115 136.8978201 138.4264122 139.9505702 141.469857 142.9839919 144.4927241 145.9957063 147.4926734 148.9833184 150.4671683 151.9437661 153.4126502 154.8735383 156.3262081 157.7703787 159.2058984 160.6326287 162.0503298 163.458852 164.8580243 166.2475432 167.6271688 168.9967187 170.3562655 171.7060334 173.046193 174.37676 175.6977998 177.0094297 178.3120263 179.6061296 180.8922472 182.1707614 183.4421411 184.7068511 185.9652626 187.2178686 188.465196 189.7076175 190.9452652 192.1782499 193.4066774 194.6308693 195.8512791 197.0683087 198.2822262 199.4933883 200.7021597 201.9087306 203.1130368 204.3149835 205.5143661 206.7107907 207.9038993 209.0932919 210.278448 211.4589537 212.634425 213.8044317 214.9687263 216.1271696 217.2795557 218.4255391 219.5648675 220.6973104 221.8224884 222.9398039 224.0486781 225.148484 226.2384813 227.318057 228.3866624 229.4436514 230.488221 231.519658 232.5372836 233.5402983 234.5277303 235.4986904 236.4523251 237.3876706 238.3036106 239.1991419 240.0733377 240.9252133 241.753696 242.5579024 243.3371159 244.0906653 244.8179095 245.5185295 246.1925206 246.8400873 247.4615417 248.0572064 248.6273209 249.171952 249.6910097 250.1845709 250.6529028 251.0963885 251.5154567 251.9105152 252.2818879 252.6297548 252.9540972 253.2547458 253.5317384 253.7853754 254.0161787 254.2248532 254.4122525 254.5793469 254.7271957 254.8569222 254.9696906 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
9 0 0 0 0.321039731 0.979130441 1.639397486 2.30329308 2.972631335 3.649488428 4.336101933 5.034769026 5.747743217 6.477129275 7.224776001 7.992166549 8.780407402 9.590518615 10.4234167 11.27979284 12.16008906 13.06477513 13.99431762 14.94904387 15.92900232 16.93392035 17.96346262 19.01728284 20.09527458 21.19751435 22.32409951 23.475084 24.65071459 25.8513593 27.07733065 28.3288066 29.60605185 30.90933113 32.23881864 33.5948077 34.97761234 36.38736346 37.82390237 39.28697449 40.77611485 42.29052957 43.82927762 45.39124608 46.97532443 48.58027119 50.20457729 51.84663041 53.50467373 55.17696471 56.86172876 58.55731346 60.26213825 61.97484512 63.69414384 65.41865595 67.14706194 68.87804489 70.61043631 72.34315878 74.07537118 75.80641106 77.53593989 79.26378432 80.9896761 82.71309389 84.43351078 86.1506423 87.8642892 89.57418078 91.28012288 92.98194372 94.67964304 96.37333913 98.06341921 99.75038628 101.4347065 103.116961 104.7976944 106.4772632 108.1559886 109.834107 111.5119233 113.1896599 114.8673061 116.5447711 118.2218352 119.8983029 121.5739538 123.2486961 124.922416 126.5948278 128.2656275 129.9344445 131.6009959 133.2649371 134.9257128 136.5827125 138.2352236 139.8825878 141.5241559 143.1594456 144.7879962 146.4092241 148.0225837 149.6275267 151.2236649 152.8106305 154.3879378 155.9551499 157.5118446 159.0577847 160.5927849 162.1165813 163.6290058 165.1299606 166.6195956 168.0981848 169.5660037 171.0235122 172.471236 173.9095471 175.3385476 176.7582593 178.1686116 179.5696335 180.9613435 182.3436398 183.7164973 185.0799622 186.4343515 187.7801493 189.1178032 190.4476236 191.769988 193.0852426 194.3936048 195.6953716 196.9908235 198.2801308 199.5635646 200.8414038 202.1137428 203.3804002 204.6411339 205.8956528 207.1438335 208.3856326 209.6208995 210.849291 212.0704912 213.2841283 214.4896924 215.6867587 216.874908 218.0536476 219.2226388 220.3816211 221.530236 222.6679549 223.7943117 224.908833 226.0109706 227.1003396 228.1766536 229.2395618 230.2885876 231.3233756 232.3436343 233.3489813 234.3387895 235.3121376 236.268067 237.2055365 238.1233809 239.0205747 239.8961963 240.7492929 241.5788503 242.3840703 243.1643475 243.9191482 244.6478931 245.3499455 246.024907 246.6726138 247.2930349 247.886175 248.4519808 248.990354 249.5014711 249.9858044 250.4440449 250.8770296 251.2856724 251.6708992 252.0335866 252.3745033 252.6942565 252.99324 253.271586 253.5292223 253.7662354 253.9829334 254.1798103 254.3575137 254.5168147 254.6585817 254.7837559 254.8933304 254.9883311 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
10 0 0 0 0.200220078 0.797068617 1.396095637 1.998799684 2.607077779 3.223134772 3.849391853 4.488393888 5.142715222 5.81486356 6.507181552 7.221745697 7.960262228 8.72406106 9.514390363 10.33240312 11.17903829 12.05499926 12.96103213 13.89789548 14.86622411 15.86638824 16.89844931 17.96241529 19.05818694 20.18549926 21.34416241 22.5339937 23.75474476 25.0063284 26.28873643 27.601953 28.9461674 30.32167809 31.72869064 33.16721232 34.63724629 36.13867672 37.67114922 39.23425084 40.82738104 42.44961821 44.09988584 45.77691144 47.47938422 49.20580434 50.95432854 52.72291623 54.50926951 56.31107447 58.12623965 59.95282815 61.78919038 63.63389237 65.4858454 67.34413009 69.20781952 71.07610549 72.94822122 74.82356613 76.70162731 78.58210317 80.46472263 82.34906381 84.23467669 86.12100268 88.00749681 89.893547 91.77859613 93.66206135 95.54345636 97.42231111 99.29829462 101.1711354 103.040745 104.9071395 106.7705637 108.6313126 110.4895519 112.3454446 114.1990741 116.0505711 117.9000373 119.7476734 121.5936018 123.4376909 125.2796826 127.1191186 128.9554685 130.7880566 132.6161912 134.4390922 136.2560219 138.0662133 139.8690036 141.663764 143.4500349 145.2273571 146.9951054 148.7526262 150.4991752 152.2340588 153.956574 155.6661538 157.3623107 159.0447854 160.7133934 162.3678735 164.0080424 165.633749 167.2450334 168.8420856 170.4254082 171.9956786 173.5535103 175.0993189 176.6334927 178.156364 179.6683835 181.169993 182.6614996 184.1432553 185.6155347 187.0784129 188.5319508 189.9760755 191.4104642 192.8348335 194.2492311 195.6539232 197.0491815 198.4351737 199.8121596 201.1803835 202.5399695 203.8911206 205.2340162 206.5687106 207.895336 209.2140041 210.5246061 211.8267163 213.1198003 214.4032225 215.6764572 216.938997 218.1902628 219.4298201 220.6572916 221.8721716 223.0737423 224.2612973 225.434062 226.5911171 227.7316271 228.8547686 229.9596599 231.0455976 232.1119927 233.1582064 234.183492 235.1872429 236.16894 237.1280008 238.0637333 238.9755974 239.8631657 240.7259865 241.5635517 242.3755727 243.1619563 243.9226818 244.6576839 245.3667373 246.0494485 246.7055541 247.3349201 247.9374431 248.5129558 249.0612376 249.582334 250.0765752 250.5444984 250.9867728 251.4041296 251.7972955 252.1669301 252.5135661 252.8375547 253.1390128 253.4178758 253.6742581 253.9085126 254.1211917 254.3130128 254.4848257 254.6375839 254.772319 254.8901174 254.9921003 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
11 0 0 0 0.127904073 0.66742221 1.209058654 1.75432472 2.305158311 2.863841909 3.432919716 4.015113615 4.613237558 5.230109985 5.868463844 6.530853799 7.219560212 7.936489516 8.683172048 9.461059862 10.27151585 11.11569679 11.99453289 12.90900647 13.86012128 14.84876497 15.87556611 16.94084699 18.04487488 19.18780327 20.36960734 21.59031776 22.84994447 24.14839457 25.4856886 26.86186679 28.27688939 29.73083548 31.22379165 32.75573483 34.32671354 35.93671896 37.58544882 39.27216682 40.99586037 42.75518995 44.54863562 46.37443542 48.23072144 50.11544825 52.02651949 53.96170748 55.91877158 57.89537019 59.88927364 61.89857416 63.92158899 65.95696404 68.00347121 70.0598039 72.12467502 74.19671073 76.27454572 78.35671456 80.44184645 82.52885929 84.61684908 86.70518182 88.79328112 90.88041567 92.96579101 95.04843864 97.12740957 99.20196836 101.2714833 103.3355205 105.3937353 107.4459677 109.492136 111.5323338 113.566725 115.5956433 117.6193872 119.6380167 121.6514548 123.6593866 125.6614641 127.6575108 129.6474241 131.6312808 133.609139 135.5808417 137.546125 139.5045245 141.4554855 143.3982715 145.332178 147.2567474 149.1715797 151.0761448 152.9699001 154.8522073 156.722453 158.5799688 160.4241558 162.2544083 164.070242 165.8712217 167.6570944 169.4277206 171.1832125 172.9237683 174.6495102 176.3606285 178.0573245 179.7399595 181.4089006 183.0643695 184.7065973 186.3357781 187.9522281 189.5562419 191.1479511 192.7274886 194.2949523 195.8505732 197.3945813 198.9270728 200.4481843 201.9579631 203.4562404 204.94281 206.4174055 207.8798829 209.3301002 210.7677989 212.1927917 213.6048477 215.0035799 216.3886382 217.7596008 219.1158672 220.4568581 221.7819126 223.0901883 224.3808676 225.6530625 226.905722 228.1378466 229.3484015 230.5362325 231.7002899 232.8395516 233.952949 235.0396019 236.0987523 237.1296012 238.1312506 239.1029545 240.0440697 240.9540108 241.8325148 242.6796055 243.4954616 244.2802891 245.034199 245.7571903 246.449443 247.1113099 247.7432132 248.3455448 248.9185714 249.4624451 249.9775231 250.4643872 250.9237668 251.3564648 251.7632895 252.1449889 252.5021898 252.8353404 253.1446564 253.4301725 253.6921017 253.9308932 254.1471936 254.3418108 254.5156812 254.6698411 254.8053995 254.923516 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
12 0 0 0 0.100740916 0.595144071 1.091572833 1.591526244 2.096947595 2.610149227 3.133736503 3.670530599 4.223489733 4.795628397 5.389934168 6.009281631 6.656342971 7.333494813 8.042720896 8.785611641 9.563663118 10.37826674 11.23059228 12.12156679 13.05215209 14.02331219 15.03587342 16.09047981 17.18784647 18.3287025 19.51372737 20.74378506 22.01984731 23.34280868 24.71339616 26.13237584 27.60044835 29.11813687 30.68597214 32.30436565 33.97347539 35.6933682 37.46387025 39.28440996 41.15415745 43.07185235 45.03562415 47.04321103 49.09217173 51.17978664 53.30315552 55.45908655 57.64428429 59.85553263 62.0895693 64.34326054 66.61387377 68.89924595 71.1975437 73.50702124 75.82608056 78.15312713 80.48662697 82.82495967 85.16657473 87.51014711 89.85442806 92.19829853 94.54061962 96.88028586 99.21607601 101.5468084 103.8714968 106.1892031 108.4990933 110.8002921 113.0920424 115.3738671 117.6454266 119.9065823 122.1572571 124.3975018 126.6273592 128.8469332 131.0562562 133.2553612 135.4441527 137.6224813 139.7900181 141.9463321 144.0907681 146.2226289 148.3413604 150.4464335 152.5374321 154.6139385 156.6756254 158.7221462 160.7532311 162.7685819 164.7679725 166.7511489 168.7179339 170.6681321 172.6016401 174.5183556 176.4182927 178.3014967 180.1681639 182.01846 183.8523409 185.6697817 187.4710079 189.2563238 191.0259427 192.7801248 194.5191135 196.2432776 197.9529511 199.6482754 201.3293483 202.9961716 204.648804 206.2872121 207.9111237 209.5201863 211.1139267 212.6919143 214.2536228 215.7982951 217.3251133 218.8331699 220.3216441 221.7896758 223.2362441 224.6603516 226.0610103 227.4374329 228.7889237 230.114672 231.4136497 232.6848185 233.9270355 235.1389637 236.3192911 237.4666496 238.5795394 239.656562 240.6964556 241.6983393 242.6616578 243.5860308 244.4711086 245.3165342 246.122216 246.8883023 247.6150597 248.3027586 248.9516648 249.5623419 250.1356555 250.6726807 251.1746166 251.642705 252.0781552 252.4820736 252.8553981 253.1988376 253.5129168 253.7983308 254.0559987 254.2870211 254.492641 254.6742093 254.8331538 254.9709518 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255

41
kernelParams/KernelParams.cpp

@ -0,0 +1,41 @@
#include "KernelParams.h"
float linear_interpolate(float output, QList<float> x, QList<float> y, qint32 num)
{
float slop = 0.0f;
if(output <= x[0])
{
output = y[0];
}
else if(output >= x[num - 1])
{
output = y[num - 1];
}
else
{
for(qint32 i = 1; i < num; i++)
{
if(output < x[i])
{
slop = (y[i] - y[i - 1]) / (x[i] - x[i - 1]);
output = y[i - 1] + ((output - x[i - 1]) * slop);
break;
}
}
}
return output;
}
float DynamicContrast(float input, DynamicContrastParameters &params)
{
float output = input + params.gain;
QList<float> log_input_level = {0, params.app_min_log_input_level, params.app_max_log_input_level, params.max_log_input_level};
QList<float> output_level = {0, params.min_output_level, params.max_output_level, 255};
output = linear_interpolate(output, log_input_level, output_level, ARRAY_SIZE(output_level));
output = linear_interpolate(output, params.const_piecewise_x, params.const_piecewise_y, ARRAY_SIZE(params.const_piecewise_x));
return output;
}

37
kernelParams/KernelParams.h

@ -0,0 +1,37 @@
#ifndef KERNELPARAMS_H
#define KERNELPARAMS_H
#include <QObject>
#include <QDebug>
#include <QByteArray>
#include <QList>
#define ARRAY_SIZE(X) X.length()
#define DYN_CNTR_CONST_PIECE_NO 256U
#define MIN_OUTPUT_LEVEL 3U
#define MAX_OUTPUT_LEVEL 252U
#define MAX_LOG_INPUT_LEVEL 24*2048
#define MIN_LOG_INPUT_DEFAULT 6U
#define MAX_LOG_INPUT_DEFAULT 21
#define GAIN_DEFAULT 4
#define CONTRAST_NUM_DEFAULT 1U
struct DynamicContrastParameters
{
float gain;
float min_output_level;
float max_output_level;
QList<float> const_piecewise_x;
QList<float> const_piecewise_y;
float max_log_input_level;
float app_min_log_input_level;
float app_max_log_input_level;
};
float linear_interpolate (float output, QList<float> x, QList<float> y, quint32 num);
float DynamicContrast(float input, DynamicContrastParameters &params);
#endif // KERNELPARAMS_H

126
mainwindow.cpp

@ -91,6 +91,11 @@ MainWindow::MainWindow(QWidget* parent)
ui->tb_scenInfo->setPlaceholderText("Scenario Information");
ui->tb_minLogInput->setPlaceholderText(QString::number(MIN_LOG_INPUT_DEFAULT));
ui->tb_maxLogInput->setPlaceholderText(QString::number(MAX_LOG_INPUT_DEFAULT));
ui->tb_dynamicGain->setPlaceholderText(QString::number(GAIN_DEFAULT));
ui->tb_contrastNum->setPlaceholderText(QString::number(CONTRAST_NUM_DEFAULT));
trxIdWrEn = false;
trxPidWrEn = false;
trxPcbVesionWrEn = false;
@ -200,6 +205,7 @@ MainWindow::MainWindow(QWidget* parent)
_firstFrameEn = false;
_discardTempTest = false;
_discardAdcLog = false;
_isDynamicContrast = false;
_programFlag = true;
_frameCount = 0;
@ -207,6 +213,13 @@ MainWindow::MainWindow(QWidget* parent)
lcdStyle(ui->lcd_biteCounter);
lcdStyle(ui->lcd_adcCounter);
dynamicContrastMinLogInput = MIN_LOG_INPUT_DEFAULT;
dynamicContrastMaxLogInput = MAX_LOG_INPUT_DEFAULT;
dynamicContrastGain = GAIN_DEFAULT;
contrastNumber = CONTRAST_NUM_DEFAULT;
readDynamicContrastParameters(dynamicContrastParams);
try
{
_trx.init();
@ -1471,6 +1484,113 @@ const QString MainWindow::enum2String(ePg state) const
return pg;
}
/*************************************************************************************************/
void MainWindow::dynamicContrastCsvRead(const QString &path)
{
QFile csvReadFile(path);
if(!csvReadFile.open(QFile::ReadOnly))
{
return;
}
qint64 readSize = 0;
QString line;
QList<float> data;
auto size = csvReadFile.size();
while(readSize < size)
{
data.clear();
line = csvReadFile.readLine();
auto sl = line.split(',');
foreach(auto &str, sl)
{
data.push_back(str.toFloat());
}
dynamicTotalData.push_back(data);
readSize += static_cast<qint64>(line.length());
}
csvReadFile.close();
}
/*************************************************************************************************/
void MainWindow::on_btn_dynConSetParams_clicked()
{
try
{
if(ui->tb_minLogInput->text().length() > 0)
{
dynamicContrastMinLogInput = ui->tb_minLogInput->text().toFloat();
}
else
{
dynamicContrastMinLogInput = MIN_LOG_INPUT_DEFAULT;
}
if(ui->tb_maxLogInput->text().length() > 0)
{
dynamicContrastMaxLogInput = ui->tb_maxLogInput->text().toFloat();
}
else
{
dynamicContrastMaxLogInput = MAX_LOG_INPUT_DEFAULT;
}
if(ui->tb_dynamicGain->text().length() > 0)
{
dynamicContrastGain = ui->tb_dynamicGain->text().toFloat();
}
else
{
dynamicContrastGain = GAIN_DEFAULT;
}
if(ui->tb_contrastNum->text().length() > 0)
{
contrastNumber = static_cast<quint8>(ui->tb_contrastNum->text().toUShort());
}
else
{
contrastNumber = CONTRAST_NUM_DEFAULT;
}
readDynamicContrastParameters(dynamicContrastParams);
}
catch(SonoException &e)
{
qDebug() << e.what();
}
}
/*************************************************************************************************/
void MainWindow::on_chk_dynamicContrast_clicked(bool checked)
{
_isDynamicContrast = checked;
}
/*************************************************************************************************/
void MainWindow::readDynamicContrastParameters(DynamicContrastParameters &params)
{
params.gain = log2(pow(10.0f, (dynamicContrastGain / 20.0f))) * pow(2.0f, 11.0f);
params.max_output_level = MAX_OUTPUT_LEVEL;
params.min_output_level = MIN_OUTPUT_LEVEL;
params.max_log_input_level = MAX_LOG_INPUT_LEVEL;
params.app_max_log_input_level = dynamicContrastMaxLogInput * pow(2.0f, 11.0f);
params.app_min_log_input_level = dynamicContrastMinLogInput * pow(2.0f, 11.0f);
params.const_piecewise_y = dynamicTotalData.at(contrastNumber - 1);
QList<float> piecewise_x;
for (auto i = 0; i < 256; i++)
{
piecewise_x.push_back(i);
}
params.const_piecewise_x = piecewise_x;
}
/*************************************************************************************************/
/*********************************************DMA*************************************************/
/*************************************************************************************************/
@ -2124,6 +2244,12 @@ void MainWindow::show3d()
{
max = val;
}
if(_isDynamicContrast)
{
val = static_cast<quint32>(DynamicContrast(val, dynamicContrastParams));
}
_colorMap->data()->setCell(lnSum + ln, pnt, double(val));
}
}

21
mainwindow.h

@ -22,10 +22,12 @@
#include <QMovie>
#include <QLCDNumber>
#include <QElapsedTimer>
#include <math.h>
#include "qcustomplot.h"
#include "include/model/hardware/core/lowLevelApi/TrxBoard.h"
#include "hdf5Scenario/hdf5Scenario.h"
#include "kernelParams/KernelParams.h"
#include "api.h"
#define MESSAGE_BOX(M) \
@ -240,6 +242,10 @@ private:
bool hvPermission();
void readDynamicContrastParameters(DynamicContrastParameters &params);
void dynamicContrastCsvRead(const QString &path);
QString _fpgaProgramFolder = "/home/hasis/Desktop/hardware/hwCode";
QString _mcsProgramFolder = "/home/hasis/Desktop/hardware/hwCode";
QString _mcsVerifyFolder = "/home/hasis/Desktop/hardware/hwCode";
@ -264,8 +270,15 @@ private:
quint32 _dmaLogCount;
quint16 _frameCount;
quint16 _batchIdBuff;
float dynamicContrastMinLogInput;
float dynamicContrastMaxLogInput;
float dynamicContrastGain;
quint8 contrastNumber;
double_t fps;
double_t fpsBuf;
bool _dmaLog;
bool _dmaRun;
bool _dmaShow;
@ -277,6 +290,10 @@ private:
bool _programFlag;
bool _discardTempTest;
bool _discardAdcLog;
bool _isDynamicContrast;
DynamicContrastParameters dynamicContrastParams;
QList<QList <float>> dynamicTotalData;
// uncrustify off
private slots:
@ -555,6 +572,10 @@ private slots:
void on_chk_sysCompatibilityCheck_clicked(bool checked);
void on_btn_dynConSetParams_clicked();
void on_chk_dynamicContrast_clicked(bool checked);
signals:
void showMessage(QString message);
void threeDReady();

225
mainwindow.ui

@ -42,7 +42,7 @@
<string/>
</property>
<property name="currentIndex">
<number>4</number>
<number>2</number>
</property>
<widget class="QWidget" name="tab_0">
<attribute name="title">
@ -1659,14 +1659,233 @@
<rect>
<x>180</x>
<y>20</y>
<width>331</width>
<height>241</height>
<width>271</width>
<height>311</height>
</rect>
</property>
<property name="readOnly">
<bool>true</bool>
</property>
</widget>
<widget class="QGroupBox" name="groupBox_19">
<property name="geometry">
<rect>
<x>520</x>
<y>20</y>
<width>241</width>
<height>331</height>
</rect>
</property>
<property name="title">
<string>Dynamic Contrast</string>
</property>
<widget class="QWidget" name="horizontalLayoutWidget">
<property name="geometry">
<rect>
<x>10</x>
<y>30</y>
<width>221</width>
<height>51</height>
</rect>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_32">
<item>
<widget class="QLabel" name="label_96">
<property name="font">
<font>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string>Min Log Input:</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="tb_minLogInput"/>
</item>
<item>
<widget class="QLabel" name="label_97">
<property name="font">
<font>
<pointsize>10</pointsize>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string>* 2 ^ 11</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="horizontalLayoutWidget_2">
<property name="geometry">
<rect>
<x>10</x>
<y>80</y>
<width>221</width>
<height>51</height>
</rect>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_33">
<item>
<widget class="QLabel" name="label_99">
<property name="font">
<font>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string>Max Log Input:</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="tb_maxLogInput"/>
</item>
<item>
<widget class="QLabel" name="label_101">
<property name="font">
<font>
<pointsize>10</pointsize>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string>* 2 ^ 11</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="horizontalLayoutWidget_8">
<property name="geometry">
<rect>
<x>10</x>
<y>130</y>
<width>221</width>
<height>51</height>
</rect>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_39">
<item>
<widget class="QLabel" name="label_102">
<property name="font">
<font>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string>Gain:</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="tb_dynamicGain"/>
</item>
<item>
<widget class="QLabel" name="label_103">
<property name="font">
<font>
<pointsize>7</pointsize>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string>dB (log2(2^(gain/20))*2^11)</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="horizontalLayoutWidget_9">
<property name="geometry">
<rect>
<x>10</x>
<y>240</y>
<width>221</width>
<height>41</height>
</rect>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_112">
<item>
<widget class="QPushButton" name="btn_dynConSetParams">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Set Parameters</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="horizontalLayoutWidget_11">
<property name="geometry">
<rect>
<x>10</x>
<y>180</y>
<width>221</width>
<height>51</height>
</rect>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_115">
<item>
<widget class="QLabel" name="label_106">
<property name="font">
<font>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string>Contrast Num:</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="tb_contrastNum"/>
</item>
<item>
<widget class="QLabel" name="label_104">
<property name="font">
<font>
<pointsize>9</pointsize>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string>[1 - 12]</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QCheckBox" name="chk_dynamicContrast">
<property name="geometry">
<rect>
<x>50</x>
<y>290</y>
<width>181</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>Dynamic Contrast</string>
</property>
</widget>
</widget>
</widget>
<widget class="QWidget" name="tab_3">
<attribute name="title">

Loading…
Cancel
Save