diff --git a/requirements/run.txt b/requirements/run.txt index 33f7d26..140720c 100644 --- a/requirements/run.txt +++ b/requirements/run.txt @@ -1,3 +1,5 @@ # List required packages in this file, one per line. numpy diffpy.utils +pandas +scipy diff --git a/src/diffpy/labpdfproc/data/coefficient_list.csv b/src/diffpy/labpdfproc/data/coefficient_list.csv new file mode 100644 index 0000000..e5ad109 --- /dev/null +++ b/src/diffpy/labpdfproc/data/coefficient_list.csv @@ -0,0 +1,5 @@ +-6.543824057313183,2.517676049711881e-10,-430.98705781061807,-1390.1242894055792,-2233.6043531698424,-2624.226082870084,-2590.22123249732 +5.020666247920394,-4.676545705328227e-10,875.3743680589598,2744.521375373735,4366.230491983095,5113.620084734874,5051.51673764446 +1.8615172482459748,3.25649449911046e-10,-663.8228448830648,-2027.2101338882571,-3194.0427904869357,-3728.3876362721985,-3684.6430045258744 +-1.9688714316525813,0.9999999998992586,224.64320300800793,666.0546805817288,1038.3830530062712,1207.4338980088214,1193.1790131535502 +0.9819818977427489,1.1680695590205036e-11,-28.533774174029173,-82.17596308875525,-126.6770208129477,-146.65755463691826,-144.8506009433783 diff --git a/src/diffpy/labpdfproc/data/inverse_cve.xy b/src/diffpy/labpdfproc/data/inverse_cve.xy new file mode 100644 index 0000000..cc647bf --- /dev/null +++ b/src/diffpy/labpdfproc/data/inverse_cve.xy @@ -0,0 +1,1791 @@ +4.348536955149140404e-01 +4.348543911534908935e-01 +4.348551529524077863e-01 +4.348559808868535104e-01 +4.348568749298583613e-01 +4.348578350522919189e-01 +4.348588612228562744e-01 +4.348599534080812012e-01 +4.348611115723088894e-01 +4.348623356776515347e-01 +4.348636256838943615e-01 +4.348649815482096836e-01 +4.348664032243676481e-01 +4.348678906604804828e-01 +4.348694437936617141e-01 +4.348710625446959299e-01 +4.348727468419396058e-01 +4.348744966905253584e-01 +4.348763121706403223e-01 +4.348781933621165829e-01 +4.348801403160539869e-01 +4.348821530601705843e-01 +4.348842316060066437e-01 +4.348863759535995244e-01 +4.348885860954015414e-01 +4.348908620209583908e-01 +4.348932037227028480e-01 +4.348956112011012065e-01 +4.348980844660816358e-01 +4.349006235336819737e-01 +4.349032284206138521e-01 +4.349058991402008911e-01 +4.349086357010938930e-01 +4.349114381083724612e-01 +4.349143063659012820e-01 +4.349172404785827672e-01 +4.349202404532874211e-01 +4.349233062981199827e-01 +4.349264380207894520e-01 +4.349296356273371078e-01 +4.349328991219459373e-01 +4.349362285076678880e-01 +4.349396237871535620e-01 +4.349430849624337792e-01 +4.349466120335109820e-01 +4.349502049967588491e-01 +4.349538638450559103e-01 +4.349575885714659917e-01 +4.349613791756242742e-01 +4.349652356678552767e-01 +4.349691580668308966e-01 +4.349731463933235176e-01 +4.349772006654141210e-01 +4.349813208969221523e-01 +4.349855070977559079e-01 +4.349897592747456465e-01 +4.349940774325132820e-01 +4.349984615745596805e-01 +4.350029117045690064e-01 +4.350074278274055350e-01 +4.350120099491848191e-01 +4.350166580763871194e-01 +4.350213722145862549e-01 +4.350261523673363273e-01 +4.350309985354067766e-01 +4.350359107166601458e-01 +4.350408889072843177e-01 +4.350459331047711875e-01 +4.350510433112889097e-01 +4.350562195347427719e-01 +4.350614617866880307e-01 +4.350667700792049120e-01 +4.350721444229844748e-01 +4.350775848270089785e-01 +4.350830912993457478e-01 +4.350886638486370916e-01 +4.350943024854659336e-01 +4.351000072222688808e-01 +4.351057780710843037e-01 +4.351116150399151894e-01 +4.351175181292861183e-01 +4.351234873307515127e-01 +4.351295226295214813e-01 +4.351356240120167196e-01 +4.351417914735511427e-01 +4.351480250191065435e-01 +4.351543246591365044e-01 +4.351606904057488956e-01 +4.351671222610671852e-01 +4.351736201610019728e-01 +4.351801839054799670e-01 +4.351868135622123934e-01 +4.351935093458865755e-01 +4.352002713185846305e-01 +4.352070994771517487e-01 +4.352139937845317386e-01 +4.352209541881891797e-01 +4.352279806673341467e-01 +4.352350732561421354e-01 +4.352422320031555936e-01 +4.352494569419535497e-01 +4.352567480923053012e-01 +4.352641054667336640e-01 +4.352715290740049037e-01 +4.352790189203278315e-01 +4.352865750096099884e-01 +4.352941973432398193e-01 +4.353018859190765921e-01 +4.353096407284670621e-01 +4.353174617500257249e-01 +4.353253489455227720e-01 +4.353333022810930153e-01 +4.353413217713804073e-01 +4.353494074710971273e-01 +4.353575594281927641e-01 +4.353657776693763415e-01 +4.353740622086533785e-01 +4.353824130568175743e-01 +4.353908302256311313e-01 +4.353993137269825398e-01 +4.354078635699364930e-01 +4.354164797585970970e-01 +4.354251622920306541e-01 +4.354339111662483552e-01 +4.354427263773397727e-01 +4.354516079241878002e-01 +4.354605558094044038e-01 +4.354695700384627610e-01 +4.354786506180681194e-01 +4.354877975547417068e-01 +4.354970108539246154e-01 +4.355062905195207223e-01 +4.355156365537013463e-01 +4.355250489569080785e-01 +4.355345277280561200e-01 +4.355440728650436522e-01 +4.355536843657829005e-01 +4.355633622298743513e-01 +4.355731064605650737e-01 +4.355829170658491734e-01 +4.355927940576013180e-01 +4.356027374490304416e-01 +4.356127472520611721e-01 +4.356228234760100571e-01 +4.356329661277253962e-01 +4.356431752124953483e-01 +4.356534507348916452e-01 +4.356637926990631349e-01 +4.356742011085008026e-01 +4.356846759655473855e-01 +4.356952172709249171e-01 +4.357058250233726837e-01 +4.357164992193971464e-01 +4.357272398531273350e-01 +4.357380469163851799e-01 +4.357489203992412352e-01 +4.357598602912931551e-01 +4.357708665833516792e-01 +4.357819392682101278e-01 +4.357930783387062301e-01 +4.358042837818935644e-01 +4.358155555689726679e-01 +4.358268936450515607e-01 +4.358382979454447081e-01 +4.358497684583748089e-01 +4.358613052341039906e-01 +4.358729083249706093e-01 +4.358845777632669449e-01 +4.358963135681909740e-01 +4.359081157525637740e-01 +4.359199843256888474e-01 +4.359319192943171828e-01 +4.359439206629332486e-01 +4.359559884338246594e-01 +4.359681226071033255e-01 +4.359803231807070079e-01 +4.359925901503972079e-01 +4.360049235097659959e-01 +4.360173232502400631e-01 +4.360297893610800002e-01 +4.360423218293654757e-01 +4.360549206398912636e-01 +4.360675857747632889e-01 +4.360803172120790161e-01 +4.360931149221581871e-01 +4.361059788597804188e-01 +4.361189089613777825e-01 +4.361319051821094805e-01 +4.361449675463473508e-01 +4.361580961090926745e-01 +4.361712909008829131e-01 +4.361845519197615761e-01 +4.361978791388320675e-01 +4.362112725210794961e-01 +4.362247320446507870e-01 +4.362382577134523154e-01 +4.362518495366193849e-01 +4.362655075094166168e-01 +4.362792316182085850e-01 +4.362930218597929621e-01 +4.363068782500543197e-01 +4.363208008130613491e-01 +4.363347895686437994e-01 +4.363488445289264717e-01 +4.363629656997478068e-01 +4.363771530825795719e-01 +4.363914066757309529e-01 +4.364057264749340304e-01 +4.364201124736107329e-01 +4.364345646629942399e-01 +4.364490830322189097e-01 +4.364636675684105960e-01 +4.364783182568449660e-01 +4.364930350812258886e-01 +4.365078180241842576e-01 +4.365226670680650845e-01 +4.365375821959671110e-01 +4.365525633927327953e-01 +4.365676106454292604e-01 +4.365827239430369322e-01 +4.365979032754790379e-01 +4.366131486324912880e-01 +4.366284600027069973e-01 +4.366438373730597844e-01 +4.366592807283954936e-01 +4.366747900511578351e-01 +4.366903653211183789e-01 +4.367060065153451909e-01 +4.367217136089926455e-01 +4.367374865775648374e-01 +4.367533254003426180e-01 +4.367692300628564506e-01 +4.367852005561740358e-01 +4.368012368734917050e-01 +4.368173390067029982e-01 +4.368335069448340824e-01 +4.368497406743604983e-01 +4.368660401803370896e-01 +4.368824054471445173e-01 +4.368988364579710626e-01 +4.369153331927368988e-01 +4.369318956245586971e-01 +4.369485237146901735e-01 +4.369652174062731431e-01 +4.369819766221387791e-01 +4.369988012842822567e-01 +4.370156913547474375e-01 +4.370326468395937525e-01 +4.370496677541477748e-01 +4.370667541055446303e-01 +4.370839058932780574e-01 +4.371011231121337826e-01 +4.371184057537305101e-01 +4.371357538071249382e-01 +4.371531672590420747e-01 +4.371706460939686623e-01 +4.371881902941820996e-01 +4.372057998397733680e-01 +4.372234747086406470e-01 +4.372412148764884265e-01 +4.372590203168152945e-01 +4.372768910008963950e-01 +4.372948268977776554e-01 +4.373128279743664915e-01 +4.373308941959041518e-01 +4.373490255277013850e-01 +4.373672219395586813e-01 +4.373854834126623681e-01 +4.374038099436339255e-01 +4.374222015396744823e-01 +4.374406582080084815e-01 +4.374591799476288401e-01 +4.374777667458066843e-01 +4.374964185771224590e-01 +4.375151354026775019e-01 +4.375339171701084218e-01 +4.375527638210102710e-01 +4.375716753120285629e-01 +4.375906516299977733e-01 +4.376096927772875622e-01 +4.376287987501064070e-01 +4.376479695326010999e-01 +4.376672051016124443e-01 +4.376865054332292893e-01 +4.377058705064857391e-01 +4.377253003029972778e-01 +4.377447948044974613e-01 +4.377643539908679937e-01 +4.377839778395509751e-01 +4.378036663258914052e-01 +4.378234194239360444e-01 +4.378432371075263174e-01 +4.378631193514231912e-01 +4.378830661318512951e-01 +4.379030774259103365e-01 +4.379231532097232482e-01 +4.379432934552005552e-01 +4.379634981240260183e-01 +4.379837671549933198e-01 +4.380041004488768319e-01 +4.380244979132268957e-01 +4.380449595580556688e-01 +4.380654854325577441e-01 +4.380860755503054871e-01 +4.381067298966651036e-01 +4.381274484437271965e-01 +4.381482311574269595e-01 +4.381690780009705466e-01 +4.381899889368894296e-01 +4.382109639282855684e-01 +4.382320029392118843e-01 +4.382531059343293678e-01 +4.382742728784741471e-01 +4.382955037367819995e-01 +4.383167984753083557e-01 +4.383381570612310818e-01 +4.383595794616124697e-01 +4.383810656402923889e-01 +4.384026155529143765e-01 +4.384242291402032365e-01 +4.384459063222392317e-01 +4.384676470073637922e-01 +4.384894511275311269e-01 +4.385113186566297339e-01 +4.385332495829435961e-01 +4.385552438875187642e-01 +4.385773015432861133e-01 +4.385994225183447170e-01 +4.386216067776355088e-01 +4.386438542834020238e-01 +4.386661649947607988e-01 +4.386885388655056839e-01 +4.387109758382725655e-01 +4.387334758410751934e-01 +4.387560388170309578e-01 +4.387786647703932341e-01 +4.388013537347084103e-01 +4.388241057229863573e-01 +4.388469207231482372e-01 +4.388697987081354168e-01 +4.388927396436584361e-01 +4.389157434927508095e-01 +4.389388102180872275e-01 +4.389619397826652891e-01 +4.389851321494778191e-01 +4.390083872808642762e-01 +4.390317051380322466e-01 +4.390550856809056213e-01 +4.390785288683291543e-01 +4.391020346585845502e-01 +4.391256030101543528e-01 +4.391492338825020991e-01 +4.391729272365257342e-01 +4.391966830344530281e-01 +4.392205012392734198e-01 +4.392443818139757927e-01 +4.392683247208621911e-01 +4.392923299210456101e-01 +4.393163973741306960e-01 +4.393405270380348893e-01 +4.393647188688871164e-01 +4.393889728210073065e-01 +4.394132888469189369e-01 +4.394376668974379618e-01 +4.394621069218033749e-01 +4.394866088678740512e-01 +4.395111726822162890e-01 +4.395357983095518062e-01 +4.395604856895812818e-01 +4.395852347422899431e-01 +4.396100453054860857e-01 +4.396349171538525558e-01 +4.396598503605513852e-01 +4.396848450076080161e-01 +4.397099010752960613e-01 +4.397350185181527760e-01 +4.397601972859762620e-01 +4.397854373277793605e-01 +4.398107385917530698e-01 +4.398361010246348290e-01 +4.398615245719326161e-01 +4.398870091801836968e-01 +4.399125548009830688e-01 +4.399381613934288393e-01 +4.399638289219434117e-01 +4.399895573514500113e-01 +4.400153466438442296e-01 +4.400411967569632932e-01 +4.400671076448939845e-01 +4.400930792584973328e-01 +4.401191115456832281e-01 +4.401452044514057027e-01 +4.401713579175902669e-01 +4.401975718834572615e-01 +4.402238462869048630e-01 +4.402501810668691395e-01 +4.402765761649967691e-01 +4.403030315244095272e-01 +4.403295470859750482e-01 +4.403561227861597649e-01 +4.403827585610501916e-01 +4.404094543551641538e-01 +4.404362101245461458e-01 +4.404630258278304789e-01 +4.404899014113006217e-01 +4.405168367914781280e-01 +4.405438318458635982e-01 +4.405708864783140499e-01 +4.405980006907952440e-01 +4.406251744987330632e-01 +4.406524078794677446e-01 +4.406797007814931000e-01 +4.407070531296274352e-01 +4.407344648207683901e-01 +4.407619357368695590e-01 +4.407894658083497119e-01 +4.408170550316543590e-01 +4.408447034057723091e-01 +4.408724109068090091e-01 +4.409001774940557450e-01 +4.409280031154992341e-01 +4.409558877094450491e-01 +4.409838312044422892e-01 +4.410118335191970940e-01 +4.410398945640397472e-01 +4.410680142456263608e-01 +4.410961924750766983e-01 +4.411244291758009139e-01 +4.411527242856495556e-01 +4.411810777530735250e-01 +4.412094895317446031e-01 +4.412379595768120555e-01 +4.412664878429926052e-01 +4.412950742837216112e-01 +4.413237188507846409e-01 +4.413524214941583756e-01 +4.413811821619296194e-01 +4.414100008002582176e-01 +4.414388773533571841e-01 +4.414678117634749377e-01 +4.414968039708995762e-01 +4.415258539139455540e-01 +4.415549615289612317e-01 +4.415841267503232692e-01 +4.416133495104466733e-01 +4.416426297397845202e-01 +4.416719673668466628e-01 +4.417013623182150517e-01 +4.417308145185860901e-01 +4.417603238908465735e-01 +4.417898903562366142e-01 +4.418195138347121853e-01 +4.418491942457792310e-01 +4.418789315103900939e-01 +4.419087255546492732e-01 +4.419385763151392754e-01 +4.419684837427576007e-01 +4.419984478006240836e-01 +4.420284684563707822e-01 +4.420585456740903640e-01 +4.420886794096705041e-01 +4.421188696093203419e-01 +4.421491162096455874e-01 +4.421794191377115268e-01 +4.422097783094608436e-01 +4.422401936243167686e-01 +4.422706649592159645e-01 +4.423011921934532076e-01 +4.423317752709001738e-01 +4.423624141829916590e-01 +4.423931089066820976e-01 +4.424238593916910989e-01 +4.424546655646458548e-01 +4.424855273240598241e-01 +4.425164445313030659e-01 +4.425474170606845115e-01 +4.425784448819310435e-01 +4.426095279905816193e-01 +4.426406663443445688e-01 +4.426718598720268405e-01 +4.427031084904026748e-01 +4.427344121187086756e-01 +4.427657706873304178e-01 +4.427971841348505855e-01 +4.428286523995303425e-01 +4.428601754153912995e-01 +4.428917531142743114e-01 +4.429233854294357675e-01 +4.429550722967585674e-01 +4.429868136531570078e-01 +4.430186094342992709e-01 +4.430504595732819295e-01 +4.430823640003089259e-01 +4.431143226427642356e-01 +4.431463354252196951e-01 +4.431784022691762637e-01 +4.432105230925598160e-01 +4.432426978094275438e-01 +4.432749263309446186e-01 +4.433072085687357333e-01 +4.433395444394948592e-01 +4.433719338670812915e-01 +4.434043767802048897e-01 +4.434368731085853721e-01 +4.434694227808034794e-01 +4.435020257240708808e-01 +4.435346818648284728e-01 +4.435673911287980054e-01 +4.436001534372455146e-01 +4.436329686871537392e-01 +4.436658366793326813e-01 +4.436987572226878673e-01 +4.437317304081352942e-01 +4.437647562672452084e-01 +4.437978347540392776e-01 +4.438309658039351069e-01 +4.438641493476264133e-01 +4.438973853140941173e-01 +4.439306736311272594e-01 +4.439640142252410659e-01 +4.439974070215051416e-01 +4.440308519434034151e-01 +4.440643489127662491e-01 +4.440978978497453489e-01 +4.441314986728447933e-01 +4.441651512990057449e-01 +4.441988556437776459e-01 +4.442326116216130938e-01 +4.442664191463354673e-01 +4.443002781317795247e-01 +4.443341884925007812e-01 +4.443681501443101367e-01 +4.444021630043777926e-01 +4.444362269908143648e-01 +4.444703420219532353e-01 +4.445045080156378448e-01 +4.445387248887387455e-01 +4.445729925569683050e-01 +4.446073109350116570e-01 +4.446416799369673489e-01 +4.446760994769520803e-01 +4.447105694694069022e-01 +4.447450898284840415e-01 +4.447796604659250419e-01 +4.448142812868850493e-01 +4.448489521828206117e-01 +4.448836730221896740e-01 +4.449184436545585708e-01 +4.449532639562471248e-01 +4.449881338596111124e-01 +4.450230533109514330e-01 +4.450580222432324318e-01 +4.450930405792308253e-01 +4.451281082368785391e-01 +4.451632251312790389e-01 +4.451983911751007938e-01 +4.452336062781699355e-01 +4.452688703459432573e-01 +4.453041832765370911e-01 +4.453395449614864776e-01 +4.453749553053725219e-01 +4.454104142508452102e-01 +4.454459217620949096e-01 +4.454814777927804115e-01 +4.455170822778964923e-01 +4.455527351389425572e-01 +4.455884362899942275e-01 +4.456241856422080150e-01 +4.456599831066400119e-01 +4.456958285953790955e-01 +4.457317220213659059e-01 +4.457676632978435638e-01 +4.458036523382352123e-01 +4.458396890565364257e-01 +4.458757733676230184e-01 +4.459119051869220862e-01 +4.459480844292972312e-01 +4.459843110072178596e-01 +4.460205848276991292e-01 +4.460569057859493092e-01 +4.460932737520407754e-01 +4.461296885642371812e-01 +4.461661500955964588e-01 +4.462026583105356825e-01 +4.462392131796827366e-01 +4.462758146398904668e-01 +4.463124626076651058e-01 +4.463491569904292633e-01 +4.463858976918714250e-01 +4.464226846148229844e-01 +4.464595176629082007e-01 +4.464963967410766621e-01 +4.465333217551286649e-01 +4.465702926107205095e-01 +4.466073092124051014e-01 +4.466443714629148021e-01 +4.466814792628645003e-01 +4.467186325112587064e-01 +4.467558311072200028e-01 +4.467930749521600298e-01 +4.468303639501180480e-01 +4.468676980045366287e-01 +4.469050770125074790e-01 +4.469425008605912297e-01 +4.469799694299274595e-01 +4.470174826152042979e-01 +4.470550403375276316e-01 +4.470926425312478081e-01 +4.471302891255443668e-01 +4.471679800379200209e-01 +4.472057151741821168e-01 +4.472434944291246994e-01 +4.472813176873653429e-01 +4.473191848263490256e-01 +4.473570957234988543e-01 +4.473950502653759598e-01 +4.474330483519201040e-01 +4.474710898929732394e-01 +4.475091748023100058e-01 +4.475473029938062397e-01 +4.475854743799415059e-01 +4.476236888713757689e-01 +4.476619463768817253e-01 +4.477002468033449700e-01 +4.477385900557790399e-01 +4.477769760373370711e-01 +4.478154046493166285e-01 +4.478538757911583734e-01 +4.478923893604346840e-01 +4.479309452528179580e-01 +4.479695433620062839e-01 +4.480081835795318157e-01 +4.480468657942333621e-01 +4.480855898909569812e-01 +4.481243557480520390e-01 +4.481631632368806017e-01 +4.482020122366773274e-01 +4.482409026641671068e-01 +4.482798344702887960e-01 +4.483188076054054894e-01 +4.483578220026798733e-01 +4.483968775799040407e-01 +4.484359742447979191e-01 +4.484751118992963970e-01 +4.485142904425615251e-01 +4.485535097727511578e-01 +4.485927697874655395e-01 +4.486320703831378487e-01 +4.486714114540690801e-01 +4.487107928921589273e-01 +4.487502145882073523e-01 +4.487896764348029977e-01 +4.488291783291948889e-01 +4.488687201739085531e-01 +4.489083018746776177e-01 +4.489479233375716638e-01 +4.489875844670869753e-01 +4.490272851654790176e-01 +4.490670253327846972e-01 +4.491068048670478485e-01 +4.491466236645833554e-01 +4.491864816202952304e-01 +4.492263786281778248e-01 +4.492663145820731674e-01 +4.493062893766130994e-01 +4.493463029080280724e-01 +4.493863550744175983e-01 +4.494264457753504027e-01 +4.494665749110455244e-01 +4.495067423815148899e-01 +4.495469480859039524e-01 +4.495871919220779112e-01 +4.496274737863903970e-01 +4.496677935735536868e-01 +4.497081511765592121e-01 +4.497485464866085025e-01 +4.497889793930108238e-01 +4.498294497829666838e-01 +4.498699575410892160e-01 +4.499105025484170794e-01 +4.499510846808418285e-01 +4.499917038079386256e-01 +4.500323597957885946e-01 +4.500730525171507956e-01 +4.501137818604217244e-01 +4.501545477226028824e-01 +4.501953499934787661e-01 +4.502361885515047124e-01 +4.502770632793416383e-01 +4.503179740806456666e-01 +4.503589208714917080e-01 +4.503999035597945899e-01 +4.504409220332312169e-01 +4.504819761530770572e-01 +4.505230657606782985e-01 +4.505641907220864772e-01 +4.506053509594463713e-01 +4.506465464101508944e-01 +4.506877769967762015e-01 +4.507290426293219521e-01 +4.507703432114983366e-01 +4.508116786437749712e-01 +4.508530488244583134e-01 +4.508944536500166245e-01 +4.509358930151607381e-01 +4.509773668128675417e-01 +4.510188749343670978e-01 +4.510604172691504155e-01 +4.511019937049581818e-01 +4.511436041277840370e-01 +4.511852484218706882e-01 +4.512269264697026938e-01 +4.512686381519384615e-01 +4.513103833471929227e-01 +4.513521619312713118e-01 +4.513939737748923764e-01 +4.514358187383540333e-01 +4.514776966659876933e-01 +4.515196074036919027e-01 +4.515615508466081507e-01 +4.516035269319804146e-01 +4.516455355893628232e-01 +4.516875767276110065e-01 +4.517296502429720140e-01 +4.517717560270669841e-01 +4.518138939715162228e-01 +4.518560639694865766e-01 +4.518982659150970749e-01 +4.519404997020873282e-01 +4.519827652228073922e-01 +4.520250623677784518e-01 +4.520673910256334804e-01 +4.521097510832305377e-01 +4.521521424258468924e-01 +4.521945649374680132e-01 +4.522370185011523325e-01 +4.522795029994171045e-01 +4.523220183144313622e-01 +4.523645643277877659e-01 +4.524071409198436311e-01 +4.524497479690126611e-01 +4.524923853516471528e-01 +4.525350529430586799e-01 +4.525777506195500788e-01 +4.526204782604009158e-01 +4.526632357485462221e-01 +4.527060229697312255e-01 +4.527488398109907330e-01 +4.527916861593505038e-01 +4.528345619010224476e-01 +4.528774669210091086e-01 +4.529204011029406285e-01 +4.529633643290796874e-01 +4.530063564804591159e-01 +4.530493774372408300e-01 +4.530924270793987296e-01 +4.531355052878096035e-01 +4.531786119455081252e-01 +4.532217469383656994e-01 +4.532649101543703707e-01 +4.533081014815569243e-01 +4.533513208055957033e-01 +4.533945680082628327e-01 +4.534378429674833511e-01 +4.534811455589676799e-01 +4.535244756584567716e-01 +4.535678331423887433e-01 +4.536112178847370724e-01 +4.536546297497843772e-01 +4.536980685856035200e-01 +4.537415342350116787e-01 +4.537850265711508291e-01 +4.538285455039764993e-01 +4.538720909467632847e-01 +4.539156627999670901e-01 +4.539592609543240398e-01 +4.540028852955714789e-01 +4.540465357067133834e-01 +4.540902120687859145e-01 +4.541339142610325008e-01 +4.541776421607048864e-01 +4.542213956421723431e-01 +4.542651745742964375e-01 +4.543089788155099673e-01 +4.543528082129150714e-01 +4.543966626242677553e-01 +4.544405419484725539e-01 +4.544844461082505060e-01 +4.545283750147250945e-01 +4.545723285536160119e-01 +4.546163065618564203e-01 +4.546603087623521389e-01 +4.547043349873265417e-01 +4.547483852688000150e-01 +4.547924595374304713e-01 +4.548365576744088368e-01 +4.548806795533840153e-01 +4.549248250491364498e-01 +4.549689940404190724e-01 +4.550131864130717574e-01 +4.550574020594569391e-01 +4.551016408727868723e-01 +4.551459027415078462e-01 +4.551901875473517434e-01 +4.552344951664193395e-01 +4.552788254717193284e-01 +4.553231783358560603e-01 +4.553675536326987627e-01 +4.554119512374543155e-01 +4.554563710256600562e-01 +4.555008128720957061e-01 +4.555452766501904005e-01 +4.555897622322513385e-01 +4.556342694908556701e-01 +4.556787983011406640e-01 +4.557233485423374808e-01 +4.557679200969984579e-01 +4.558125128485406297e-01 +4.558571266790584220e-01 +4.559017614684225950e-01 +4.559464170943603456e-01 +4.559910934330097532e-01 +4.560357903597275775e-01 +4.560805077500152960e-01 +4.561252454801641987e-01 +4.561700034272060944e-01 +4.562147814681977165e-01 +4.562595794792678183e-01 +4.563043973348404059e-01 +4.563492349069928067e-01 +4.563940920648571486e-01 +4.564389686743660079e-01 +4.564838645993681276e-01 +4.565287797050711638e-01 +4.565737138625429736e-01 +4.566186669504046503e-01 +4.566636388518907075e-01 +4.567086294502535893e-01 +4.567536386261107917e-01 +4.567986662573325085e-01 +4.568437122201935430e-01 +4.568887763903726751e-01 +4.569338586431278548e-01 +4.569789588527627955e-01 +4.570240768921169372e-01 +4.570692126326831306e-01 +4.571143659455175756e-01 +4.571595367023900125e-01 +4.572047247763233457e-01 +4.572499300409338385e-01 +4.572951523688379427e-01 +4.573403916299728089e-01 +4.573856476908053637e-01 +4.574309204152266495e-01 +4.574762096674097611e-01 +4.575215153156518277e-01 +4.575668372347621027e-01 +4.576121753050655938e-01 +4.576575294087877888e-01 +4.577028994259751404e-01 +4.577482852311963724e-01 +4.577936866907759139e-01 +4.578391036595093055e-01 +4.578845359755960298e-01 +4.579299834568679173e-01 +4.579754459206040740e-01 +4.580209232362847938e-01 +4.580664153269320971e-01 +4.581119221207320402e-01 +4.581574435343022111e-01 +4.582029794764171937e-01 +4.582485298517121608e-01 +4.582940945622915874e-01 +4.583396735082620466e-01 +4.583852665879172839e-01 +4.584308736978460197e-01 +4.584764947329349472e-01 +4.585221295863349811e-01 +4.585677781495708372e-01 +4.586134403124058068e-01 +4.586591159629895831e-01 +4.587048049877399669e-01 +4.587505072713550236e-01 +4.587962226969256596e-01 +4.588419511457457189e-01 +4.588876924975205385e-01 +4.589334466300560300e-01 +4.589792134199434659e-01 +4.590249927415353537e-01 +4.590707844666066517e-01 +4.591165884689080157e-01 +4.591624046170457718e-01 +4.592082327750272586e-01 +4.592540728140360740e-01 +4.592999245956013166e-01 +4.593457879832735791e-01 +4.593916628375650513e-01 +4.594375490178650434e-01 +4.594834463814746472e-01 +4.595293547841661219e-01 +4.595752740800420622e-01 +4.596212041213728616e-01 +4.596671447587207249e-01 +4.597130958409709200e-01 +4.597590572152102650e-01 +4.598050287268682368e-01 +4.598510102195652594e-01 +4.598970015352571439e-01 +4.599430025140684442e-01 +4.599890129943908779e-01 +4.600350328127423838e-01 +4.600810618035791610e-01 +4.601270997987600975e-01 +4.601731466259343373e-01 +4.602192021048451265e-01 +4.602652660435410104e-01 +4.603113382551181076e-01 +4.603574186061289986e-01 +4.604035070154928189e-01 +4.604496034017835915e-01 +4.604957076633380830e-01 +4.605418196819789922e-01 +4.605879393280278844e-01 +4.606340664635695803e-01 +4.606802009451945734e-01 +4.607263426272799056e-01 +4.607724913660786736e-01 +4.608186470233565091e-01 +4.608648094674069884e-01 +4.609109785706941298e-01 +4.609571542060194038e-01 +4.610033362436518622e-01 +4.610495245504178663e-01 +4.610957189904755782e-01 +4.611419194269944510e-01 +4.611881257237415710e-01 +4.612343377457591709e-01 +4.612805553588358864e-01 +4.613267784283442419e-01 +4.613730068183456989e-01 +4.614192403914505469e-01 +4.614654790093348224e-01 +4.615117225332646678e-01 +4.615579708239384016e-01 +4.616042237404701654e-01 +4.616504811392516117e-01 +4.616967428740360591e-01 +4.617430087985874287e-01 +4.617892787712779001e-01 +4.618355526580560921e-01 +4.618818303307741235e-01 +4.619281116627126371e-01 +4.619743965251190132e-01 +4.620206847860847676e-01 +4.620669763107871919e-01 +4.621132709620919821e-01 +4.621595686011741311e-01 +4.622058690883063536e-01 +4.622521722838017211e-01 +4.622984780487428003e-01 +4.623447862450311696e-01 +4.623910967347432122e-01 +4.624374093792140705e-01 +4.624837240382217995e-01 +4.625300405694293682e-01 +4.625763588282931771e-01 +4.626226786689642267e-01 +4.626689999464602687e-01 +4.627153225191442121e-01 +4.627616462495026117e-01 +4.628079710026251070e-01 +4.628542966439292417e-01 +4.629006230377505360e-01 +4.629469500471150023e-01 +4.629932775343233997e-01 +4.630396053620481900e-01 +4.630859333943384559e-01 +4.631322614965541762e-01 +4.631785895337144354e-01 +4.632249173678049670e-01 +4.632712448552263051e-01 +4.633175718456851166e-01 +4.633638981841278759e-01 +4.634102237163345017e-01 +4.634565482946187420e-01 +4.635028717784121510e-01 +4.635491940311685655e-01 +4.635955149175333689e-01 +4.636418342946803106e-01 +4.636881519703622834e-01 +4.637344676507946795e-01 +4.637807812417955589e-01 +4.638270927589223103e-01 +4.638734021039408462e-01 +4.639197091298787878e-01 +4.639660136643515287e-01 +4.640123155233026320e-01 +4.640586145464259404e-01 +4.641049106146167280e-01 +4.641512036195701296e-01 +4.641974934417658627e-01 +4.642437799513230434e-01 +4.642900630129143114e-01 +4.643363424883810708e-01 +4.643826182376297740e-01 +4.644288901188223240e-01 +4.644751579882041015e-01 +4.645214216993357459e-01 +4.645676811008228602e-01 +4.646139360315875710e-01 +4.646601863177308167e-01 +4.647064317886293594e-01 +4.647526723104831725e-01 +4.647989077799634661e-01 +4.648451380886481354e-01 +4.648913631120062395e-01 +4.649375827158755414e-01 +4.649837967636794023e-01 +4.650300051196061824e-01 +4.650762076479528773e-01 +4.651224042108794698e-01 +4.651685946667630245e-01 +4.652147788701385678e-01 +4.652609566732167634e-01 +4.653071279282837147e-01 +4.653532924897929579e-01 +4.653994502150812784e-01 +4.654456009637101821e-01 +4.654917445962175049e-01 +4.655378809730269518e-01 +4.655840099537577048e-01 +4.656301313968744249e-01 +4.656762451595334307e-01 +4.657223510975851966e-01 +4.657684490657271192e-01 +4.658145389179004225e-01 +4.658606205080926266e-01 +4.659066936916332335e-01 +4.659527583267281670e-01 +4.659988142753131446e-01 +4.660448614023915415e-01 +4.660908995740549732e-01 +4.661369286554476465e-01 +4.661829485097411241e-01 +4.662289589982356874e-01 +4.662749599810748768e-01 +4.663209513178977472e-01 +4.663669328680701831e-01 +4.664129044904962162e-01 +4.664588660432354428e-01 +4.665048173831280454e-01 +4.665507583655107426e-01 +4.665966888440173377e-01 +4.666426086704623666e-01 +4.666885176948908920e-01 +4.667344157660214821e-01 +4.667803027322464660e-01 +4.668261784429705297e-01 +4.668720427492109581e-01 +4.669178955020690802e-01 +4.669637365481036362e-01 +4.670095657213376716e-01 +4.670553828351169390e-01 +4.671011876950361685e-01 +4.671469801487577733e-01 +4.671927600933286073e-01 +4.672385274275717149e-01 +4.672842820344892956e-01 +4.673300237867830109e-01 +4.673757525521747835e-01 +4.674214681956794237e-01 +4.674671705803700172e-01 +4.675128595675935306e-01 +4.675585350170354260e-01 +4.676041967867251015e-01 +4.676498447330324493e-01 +4.676954787106720191e-01 +4.677410985726946357e-01 +4.677867041704942830e-01 +4.678322953538051610e-01 +4.678778719706827016e-01 +4.679234338674153615e-01 +4.679689808882020463e-01 +4.680145128740701432e-01 +4.680600296598224075e-01 +4.681055310677371128e-01 +4.681510169052802151e-01 +4.681964869951402153e-01 +4.682419412161821226e-01 +4.682873794722237082e-01 +4.683328016473592426e-01 +4.683782075994148419e-01 +4.684235971660407061e-01 +4.684689701767478232e-01 +4.685143264734911162e-01 +4.685596659193226876e-01 +4.686049883816582606e-01 +4.686502937167003058e-01 +4.686955817735055652e-01 +4.687408524097985141e-01 +4.687861054990663523e-01 +4.688313409216324223e-01 +4.688765585544932279e-01 +4.689217582684677699e-01 +4.689669399293536212e-01 +4.690121033994947286e-01 +4.690572485387619062e-01 +4.691023752050303974e-01 +4.691474832543938711e-01 +4.691925725412618986e-01 +4.692376429184297870e-01 +4.692826942371541854e-01 +4.693277263472747651e-01 +4.693727390974511415e-01 +4.694177323355681608e-01 +4.694627059093946508e-01 +4.695076596674422342e-01 +4.695525934597951090e-01 +4.695975071385072308e-01 +4.696424005573484051e-01 +4.696872735709969882e-01 +4.697321260341003057e-01 +4.697769578005168145e-01 +4.698217687228119499e-01 +4.698665586519335524e-01 +4.699113274369469129e-01 +4.699560749248085645e-01 +4.700008009603298120e-01 +4.700455053868449751e-01 +4.700901880481113126e-01 +4.701348487911868879e-01 +4.701794874685206738e-01 +4.702241039373490916e-01 +4.702686980568418496e-01 +4.703132696852097561e-01 +4.703578186783944903e-01 +4.704023448903305038e-01 +4.704468481739008112e-01 +4.704913283815603808e-01 +4.705357853648873823e-01 +4.705802189728266471e-01 +4.706246290486661432e-01 +4.706690154257439085e-01 +4.707133779221123748e-01 +4.707577163386544306e-01 +4.708020304756533880e-01 +4.708463201676149623e-01 +4.708905852866757669e-01 +4.709348257130452353e-01 +4.709790413201275783e-01 +4.710232319749936281e-01 +4.710673975408661285e-01 +4.711115378784314633e-01 +4.711556528463521354e-01 +4.711997423014593345e-01 +4.712438060988262123e-01 +4.712878440917941947e-01 +4.713318561319835842e-01 +4.713758420692906737e-01 +4.714198017518792527e-01 +4.714637350261686732e-01 +4.715076417368159745e-01 +4.715515217267050030e-01 +4.715953748370249610e-01 +4.716392009076750824e-01 +4.716829997787673201e-01 +4.717267712944590574e-01 +4.717705153089390979e-01 +4.718142316899424649e-01 +4.718579203145584766e-01 +4.719015810600732386e-01 +4.719452137968080385e-01 +4.719888183850775021e-01 +4.720323946743280596e-01 +4.720759425024353972e-01 +4.721194616956870260e-01 +4.721629520752630427e-01 +4.722064134756515652e-01 +4.722498457579033526e-01 +4.722932487968245496e-01 +4.723366224620158538e-01 +4.723799666127083130e-01 +4.724232811019297151e-01 +4.724665657822418319e-01 +4.725098205089857117e-01 +4.725530451399548859e-01 +4.725962395332289345e-01 +4.726394035454483111e-01 +4.726825370312912056e-01 +4.727256398437753027e-01 +4.727687118349595541e-01 +4.728117528569181771e-01 +4.728547627627223693e-01 +4.728977414069320817e-01 +4.729406886450702729e-01 +4.729836043319723404e-01 +4.730264883189201353e-01 +4.730693404482742004e-01 +4.731121605421982346e-01 +4.731549483891518415e-01 +4.731977037837988842e-01 +4.732404266122765546e-01 +4.732831167958540530e-01 +4.733257742242726329e-01 +4.733683987623292788e-01 +4.734109902631750133e-01 +4.734535485746614869e-01 +4.734960735423926481e-01 +4.735385650115578327e-01 +4.735810228280539214e-01 +4.736234468388150765e-01 +4.736658368915127593e-01 +4.737081928341665416e-01 +4.737505145152588470e-01 +4.737928017842937822e-01 +4.738350544919822105e-01 +4.738772724891191501e-01 +4.739194556237649736e-01 +4.739616037367466728e-01 +4.740037166555565729e-01 +4.740457941891482729e-01 +4.740878361360070792e-01 +4.741298423162123576e-01 +4.741718125880753920e-01 +4.742137468231736319e-01 +4.742556448867307206e-01 +4.742975066368168013e-01 +4.743393319273215281e-01 +4.743811206094716848e-01 +4.744228725322381934e-01 +4.744645875419434278e-01 +4.745062654802382207e-01 +4.745479061787586939e-01 +4.745895094559389737e-01 +4.746310751442551767e-01 +4.746726031324267070e-01 +4.747140933362570259e-01 +4.747555456529694573e-01 +4.747969599570204258e-01 +4.748383361093638788e-01 +4.748796739645428366e-01 +4.749209733748727125e-01 +4.749622341925622271e-01 +4.750034562703380758e-01 +4.750446394611381185e-01 +4.750857836175166327e-01 +4.751268885911951179e-01 +4.751679542329295680e-01 +4.752089803926954348e-01 +4.752499669201692423e-01 +4.752909136654362432e-01 +4.753318204797173929e-01 +4.753726872157880701e-01 +4.754135137278848733e-01 +4.754542998711761004e-01 +4.754950455010514276e-01 +4.755357504724851414e-01 +4.755764146395636827e-01 +4.756170378551917710e-01 +4.756576199709197095e-01 +4.756981608368519576e-01 +4.757386603016177107e-01 +4.757791182123918272e-01 +4.758195344149613870e-01 +4.758599087538603611e-01 +4.759002410725455823e-01 +4.759405312134748489e-01 +4.759807790175886177e-01 +4.760209843212993008e-01 +4.760611469426136444e-01 +4.761012666221294820e-01 +4.761413430409999203e-01 +4.761813761625195429e-01 +4.762213659586064241e-01 +4.762613123053034969e-01 +4.763012150545705703e-01 +4.763410740541227373e-01 +4.763808891511586152e-01 +4.764206601923212658e-01 +4.764603870231027827e-01 +4.765000694880543453e-01 +4.765397074329444926e-01 +4.765793007085990518e-01 +4.766188491732361032e-01 +4.766583526903912515e-01 +4.766978111243159733e-01 +4.767372243366213569e-01 +4.767765921852819000e-01 +4.768159145249359354e-01 +4.768551912073750731e-01 +4.768944220818051027e-01 +4.769336069948311163e-01 +4.769727457903859547e-01 +4.770118383100416803e-01 +4.770508843943306321e-01 +4.770898838850260448e-01 +4.771288366267444347e-01 +4.771677424657488897e-01 +4.772066012463553331e-01 +4.772454128088609027e-01 +4.772841769934437206e-01 +4.773228936486916818e-01 +4.773615626345898422e-01 +4.774001838138592912e-01 +4.774387570374687417e-01 +4.774772821277160628e-01 +4.775157588692175437e-01 +4.775541870724762661e-01 +4.775925666436755535e-01 +4.776308975023423331e-01 +4.776691795311970856e-01 +4.777074125851119013e-01 +4.777455964960973800e-01 +4.777837310691165906e-01 +4.778218160947652060e-01 +4.778598514113350793e-01 +4.778978369220019951e-01 +4.779357725326799922e-01 +4.779736581271331608e-01 +4.780114935729009584e-01 +4.780492787266739652e-01 +4.780870134358682910e-01 +4.781246975385411990e-01 +4.781623308632922953e-01 +4.781999132307135913e-01 +4.782374444580325124e-01 +4.782749243671537420e-01 +4.783123527923939244e-01 +4.783497295826125151e-01 +4.783870545974138189e-01 +4.784243277018374041e-01 +4.784615487626551200e-01 +4.784987176464791103e-01 +4.785358342189275915e-01 +4.785728983442542606e-01 +4.786099098851852029e-01 +4.786468687028419544e-01 +4.786837746566990348e-01 +4.787206276045605780e-01 +4.787574274025451770e-01 +4.787941739050806111e-01 +4.788308669648925209e-01 +4.788675064330080167e-01 +4.789040921587481292e-01 +4.789406239897313067e-01 +4.789771017718784663e-01 +4.790135253494207657e-01 +4.790498945649184215e-01 +4.790862092592976240e-01 +4.791224692719278644e-01 +4.791586744407806964e-01 +4.791948246027938896e-01 +4.792309195947209721e-01 +4.792669592550373170e-01 +4.793029434276976919e-01 +4.793388719675215071e-01 +4.793747447440791509e-01 +4.794105616395726854e-01 +4.794463225410350860e-01 +4.794820273321845350e-01 +4.795176758887004786e-01 +4.795532680767309874e-01 +4.795888037529579262e-01 +4.796242827646560181e-01 +4.796597049480578745e-01 +4.796950701228219760e-01 +4.797303780859335509e-01 +4.797656286370802214e-01 +4.798008216422061656e-01 +4.798359570161264687e-01 +4.798710346591170683e-01 +4.799060544438828457e-01 +4.799410162197585983e-01 +4.799759198075017053e-01 +4.800107649899944540e-01 +4.800455515637212511e-01 +4.800802794235548010e-01 +4.801149484911686471e-01 +4.801495586495997947e-01 +4.801841097524249813e-01 +4.802186016411370550e-01 +4.802530341600793617e-01 +4.802874071654147370e-01 +4.803217205220599029e-01 +4.803559740948830648e-01 +4.803901677446666407e-01 +4.804243013302456067e-01 +4.804583747122331272e-01 +4.804923877542739974e-01 +4.805263403213783091e-01 +4.805602322775598401e-01 +4.805940634844558801e-01 +4.806278338009917217e-01 +4.806615430834528802e-01 +4.806951911854887571e-01 +4.807287779578338083e-01 +4.807623032477807423e-01 +4.807957668988622202e-01 +4.808291687518810864e-01 +4.808625086484255573e-01 +4.808957864357056300e-01 +4.809290019687450513e-01 +4.809621551079568125e-01 +4.809952457151172034e-01 +4.810282736511051760e-01 +4.810612387756759145e-01 +4.810941409480853359e-01 +4.811269800271369967e-01 +4.811597558672284780e-01 +4.811924682973555689e-01 +4.812251170450218551e-01 +4.812577018466553946e-01 +4.812902227375616682e-01 +4.813226796905110128e-01 +4.813550725964894639e-01 +4.813874013271085550e-01 +4.814196657493010068e-01 +4.814518657285008496e-01 +4.814840011291963706e-01 +4.815160718148367436e-01 +4.815480776476465663e-01 +4.815800184884836965e-01 +4.816118941967535427e-01 +4.816437046303880254e-01 +4.816754496458783286e-01 +4.817071290983581666e-01 +4.817387428417950201e-01 +4.817702907292979453e-01 +4.818017726136250567e-01 +4.818331883478683131e-01 +4.818645377862170731e-01 +4.818958207845358555e-01 +4.819270372004676450e-01 +4.819581868929866952e-01 +4.819892697216296429e-01 +4.820202855457185742e-01 +4.820512342238509329e-01 +4.820821156136986807e-01 +4.821129295721456320e-01 +4.821436759557769514e-01 +4.821743546215217502e-01 +4.822049654269876529e-01 +4.822355082297853923e-01 +4.822659828852142172e-01 +4.822963892417098664e-01 +4.823267271330812789e-01 +4.823569963683807527e-01 +4.823871967363842495e-01 +4.824173280554178711e-01 +4.824473902052889285e-01 +4.824773830813399722e-01 +4.825073065646948711e-01 +4.825371605256975061e-01 +4.825669448297393860e-01 +4.825966593394603321e-01 +4.826263039151708623e-01 +4.826558784143942238e-01 +4.826853826901901234e-01 +4.827148165878665798e-01 +4.827441799458344063e-01 +4.827734726172381863e-01 +4.828026944975478130e-01 +4.828318455063090875e-01 +4.828609255517942178e-01 +4.828899345220421524e-01 +4.829188722905611852e-01 +4.829477387230386443e-01 +4.829765336823019783e-01 +4.830052570314435356e-01 +4.830339086350575739e-01 +4.830624883590412533e-01 +4.830909960699841244e-01 +4.831194316350379547e-01 +4.831477949223530466e-01 +4.831760858014222948e-01 +4.832043041427122043e-01 +4.832324498164159432e-01 +4.832605226903954887e-01 +4.832885226267646384e-01 +4.833164494747546058e-01 +4.833443030557622033e-01 +4.833720831558771525e-01 +4.833997896006483885e-01 +4.834274223185097141e-01 +4.834549812451930939e-01 +4.834824662788662075e-01 +4.835098772952163837e-01 +4.835372141601024798e-01 +4.835644767355588014e-01 +4.835916648830342890e-01 +4.836187784652503097e-01 +4.836458173467949595e-01 +4.836727813935791653e-01 +4.836996704717204665e-01 +4.837264844464496671e-01 +4.837532231813052030e-01 +4.837798865377921365e-01 +4.838064743759654118e-01 +4.838329865564002796e-01 +4.838594229426501081e-01 +4.838857834016352388e-01 +4.839120677999457221e-01 +4.839382759972864489e-01 +4.839644078417038586e-01 +4.839904631754637365e-01 +4.840164418567388660e-01 +4.840423437743204826e-01 +4.840681688325152443e-01 +4.840939169300722544e-01 +4.841195879527251944e-01 +4.841451817731732832e-01 +4.841706982518419466e-01 +4.841961372378478234e-01 +4.842214985724606069e-01 +4.842467820973491155e-01 +4.842719876651475630e-01 +4.842971151443338784e-01 +4.843221644152099215e-01 +4.843471353630136589e-01 +4.843720278735074714e-01 +4.843968418312331603e-01 +4.844215771190426567e-01 +4.844462336180034301e-01 +4.844708112074049278e-01 +4.844953097647718976e-01 +4.845197291658769334e-01 +4.845440692847446940e-01 +4.845683299936473509e-01 +4.845925111630893234e-01 +4.846166126617735825e-01 +4.846406343565063946e-01 +4.846645761119690587e-01 +4.846884377901080621e-01 +4.847122192485954773e-01 +4.847359203378922565e-01 +4.847595409006820733e-01 +4.847830807893236948e-01 +4.848065399006321052e-01 +4.848299181719927242e-01 +4.848532155404973176e-01 +4.848764319234321052e-01 +4.848995672204490792e-01 +4.849226213197965762e-01 +4.849455941033687933e-01 +4.849684854502420706e-01 +4.849912952387519516e-01 +4.850140233470178197e-01 +4.850366696521996590e-01 +4.850592340293612414e-01 +4.850817163511598196e-01 +4.851041164893973301e-01 +4.851264343184534811e-01 +4.851486697187034070e-01 +4.851708225772436989e-01 +4.851928927854233797e-01 +4.852148802354258050e-01 +4.852367848180019760e-01 +4.852586064216756201e-01 +4.852803449327726670e-01 +4.853020002356940310e-01 +4.853235722132216434e-01 +4.853450607469086964e-01 +4.853664657176762209e-01 +4.853877870067299649e-01 +4.854090244966886014e-01 +4.854301780725551185e-01 +4.854512476220418926e-01 +4.854722330350892956e-01 +4.854931342028770413e-01 +4.855139510167905681e-01 +4.855346833676278950e-01 +4.855553311451087373e-01 +4.855758942375844045e-01 +4.855963725318921953e-01 +4.856167659132476500e-01 +4.856370742651689998e-01 +4.856572974693464939e-01 +4.856774354053765008e-01 +4.856974879501754216e-01 +4.857174549767782068e-01 +4.857373363524072341e-01 +4.857571319370569407e-01 +4.857768415869459511e-01 +4.857964651669343659e-01 +4.858160025614571831e-01 +4.858354536658968104e-01 +4.858548183672443677e-01 +4.858740965391110667e-01 +4.858932880608052840e-01 +4.859123928378936697e-01 +4.859314107916378189e-01 +4.859503418337198788e-01 +4.859691858514001983e-01 +4.859879426999326735e-01 +4.860066122105550779e-01 +4.860251942455723895e-01 +4.860436887370114811e-01 +4.860620956361864642e-01 +4.860804148766164068e-01 +4.860986463768043886e-01 +4.861167900479996251e-01 +4.861348457979607907e-01 +4.861528135322785715e-01 +4.861706931547787325e-01 +4.861884845676235356e-01 +4.862061876713279496e-01 +4.862238023647618701e-01 +4.862413285451381850e-01 +4.862587661080131074e-01 +4.862761149472833444e-01 +4.862933749551836549e-01 +4.863105460222694187e-01 +4.863276280373408644e-01 +4.863446208871585186e-01 +4.863615244554819195e-01 +4.863783386202042425e-01 +4.863950632466340629e-01 +4.864116981805300943e-01 +4.864282432701999559e-01 +4.864446984264956253e-01 +4.864610636137478017e-01 +4.864773387870818810e-01 +4.864935238760884073e-01 +4.865096187950342932e-01 +4.865256234529292678e-01 +4.865415377593599877e-01 +4.865573616264318724e-01 +4.865730949680016626e-01 +4.865887376979959322e-01 +4.866042897291331659e-01 +4.866197509723669268e-01 +4.866351213368073636e-01 +4.866504007298744772e-01 +4.866655890575427024e-01 +4.866806862247026744e-01 +4.866956921356339061e-01 +4.867106066944983933e-01 +4.867254298055722073e-01 +4.867401613729578358e-01 +4.867548012997396367e-01 +4.867693494870771742e-01 +4.867838058340585583e-01 +4.867981702390243304e-01 +4.868124426021853690e-01 +4.868266228281774022e-01 +4.868407108269218742e-01 +4.868547065125390372e-01 +4.868686098013933483e-01 +4.868824206104159780e-01 +4.868961388560782977e-01 +4.869097644538774583e-01 +4.869232973181347179e-01 +4.869367373619946093e-01 +4.869500844976132337e-01 +4.869633386366248873e-01 +4.869764996910258548e-01 +4.869895675746037655e-01 +4.870025422045608510e-01 +4.870154235023904099e-01 +4.870282113929431111e-01 +4.870409058017181048e-01 +4.870535066517255318e-01 +4.870660138615038326e-01 +4.870784273451853053e-01 +4.870907470146439433e-01 +4.871029727824291444e-01 +4.871151045626223031e-01 +4.871271422666616502e-01 +4.871390857938450170e-01 +4.871509350227821167e-01 +4.871626898258592520e-01 +4.871743501160677448e-01 +4.871859158554902036e-01 +4.871973870111744320e-01 +4.872087635339107381e-01 +4.872200453623332650e-01 +4.872312324291365182e-01 +4.872423246640615324e-01 +4.872533219948980143e-01 +4.872642243477147139e-01 +4.872750316465956355e-01 +4.872857438124367224e-01 +4.872963607594660851e-01 +4.873068823886706480e-01 +4.873173085866316923e-01 +4.873276392548536728e-01 +4.873378743503769539e-01 +4.873480138626050118e-01 +4.873580577660644453e-01 +4.873680060019830451e-01 +4.873778584469284914e-01 +4.873876148253966090e-01 +4.873972750093473749e-01 +4.874068391391678801e-01 +4.874163072199016455e-01 +4.874256791909606923e-01 +4.874349549823515648e-01 +4.874441345263181291e-01 +4.874532177611570760e-01 +4.874622046354236127e-01 +4.874710951071607457e-01 +4.874798891362238096e-01 +4.874885866767168507e-01 +4.874971876743716681e-01 +4.875056920680254091e-01 +4.875140997930684783e-01 +4.875224107850777422e-01 +4.875306249820710591e-01 +4.875387423246003160e-01 +4.875467627543826898e-01 +4.875546862128146697e-01 +4.875625126401747500e-01 +4.875702419759481709e-01 +4.875778741607332267e-01 +4.875854091393698742e-01 +4.875928468630343349e-01 +4.876001872881763344e-01 +4.876074303731520176e-01 +4.876145760752429448e-01 +4.876216243494227998e-01 +4.876285751484837894e-01 +4.876354284237890968e-01 +4.876421841264012014e-01 +4.876488422083422036e-01 +4.876554026234838357e-01 +4.876618653274846227e-01 +4.876682302767833543e-01 +4.876744974273015121e-01 +4.876806667333581369e-01 +4.876867381467939744e-01 +4.876927116161401399e-01 +4.876985870862667327e-01 +4.877043644999536909e-01 +4.877100438026774065e-01 +4.877156249488647788e-01 +4.877211079042356179e-01 +4.877264926416900459e-01 +4.877317791349262688e-01 +4.877369673547554130e-01 +4.877420572689656342e-01 +4.877470488439256679e-01 +4.877519420459927590e-01 +4.877567368417289884e-01 +4.877614331971750761e-01 +4.877660310771209651e-01 +4.877705304452975010e-01 +4.877749312656473046e-01 +4.877792335039561888e-01 +4.877834371285854620e-01 +4.877875421095465569e-01 +4.877915484162468340e-01 +4.877954560151346874e-01 +4.877992648685944288e-01 +4.878029749362307599e-01 +4.878065861789317448e-01 +4.878100985643021859e-01 +4.878135120700210492e-01 +4.878168266824141619e-01 +4.878200423913106598e-01 +4.878231591842490666e-01 +4.878261770418010346e-01 +4.878290959336472610e-01 +4.878319158139064471e-01 +4.878346366139216794e-01 +4.878372582369124855e-01 +4.878397805863403103e-01 +4.878422036413276874e-01 +4.878445274583937397e-01 +4.878467521022508135e-01 +4.878488776219053191e-01 +4.878509040559843024e-01 +4.878528314380772835e-01 +4.878546597989867895e-01 +4.878563891675250508e-01 +4.878580195707925005e-01 +4.878595510342785269e-01 +4.878609835819024410e-01 +4.878623172360262994e-01 +4.878635520174675055e-01 +4.878646879454932028e-01 +4.878657250378318766e-01 +4.878666633106662487e-01 +4.878675027786398277e-01 +4.878682434548520797e-01 +4.878688853508618140e-01 +4.878694284766869615e-01 +4.878698728408044083e-01 +4.878702184501476635e-01 +4.878704653101120781e-01 +4.878706134245489601e-01 +4.878706627957718478e-01 diff --git a/src/diffpy/labpdfproc/fast_cve.py b/src/diffpy/labpdfproc/fast_cve.py new file mode 100644 index 0000000..dedc48c --- /dev/null +++ b/src/diffpy/labpdfproc/fast_cve.py @@ -0,0 +1,81 @@ +import os + +import numpy as np +import pandas as pd +from scipy.interpolate import interp1d + +from diffpy.utils.scattering_objects.diffraction_objects import Diffraction_object + +TTH_GRID = np.arange(1, 180.1, 0.1) +MUD_LIST = [0.5, 1, 2, 3, 4, 5, 6] +CWD = os.path.dirname(os.path.abspath(__file__)) +INVERSE_CVE_DATA = np.loadtxt(CWD + "/data/inverse_cve.xy") +COEFFICIENT_LIST = np.array(pd.read_csv(CWD + "/data/coefficient_list.csv", header=None)) +INTERPOLATION_FUNCTIONS = [interp1d(MUD_LIST, coefficients, kind="quadratic") for coefficients in COEFFICIENT_LIST] + + +def fast_compute_cve(diffraction_data, mud, wavelength): + """ + use precomputed datasets to compute the cve for given diffraction data, mud and wavelength + + Parameters + ---------- + diffraction_data Diffraction_object + the diffraction pattern + mud float + the mu*D of the diffraction object, where D is the diameter of the circle + wavelength float + the wavelength of the diffraction object + + Returns + ------- + the diffraction object with cve curves + """ + + coefficient_a, coefficient_b, coefficient_c, coefficient_d, coefficient_e = [ + interpolation_function(mud) for interpolation_function in INTERPOLATION_FUNCTIONS + ] + inverse_cve = ( + coefficient_a * INVERSE_CVE_DATA**4 + + coefficient_b * INVERSE_CVE_DATA**3 + + coefficient_c * INVERSE_CVE_DATA**2 + + coefficient_d * INVERSE_CVE_DATA**1 + + coefficient_e + ) + cve = 1 / np.array(inverse_cve) + + orig_grid = diffraction_data.on_tth[0] + newcve = np.interp(orig_grid, TTH_GRID, cve) + abdo = Diffraction_object(wavelength=wavelength) + abdo.insert_scattering_quantity( + orig_grid, + newcve, + "tth", + metadata=diffraction_data.metadata, + name=f"absorption correction, cve, for {diffraction_data.name}", + wavelength=diffraction_data.wavelength, + scat_quantity="cve", + ) + + return abdo + + +def apply_fast_corr(diffraction_pattern, absorption_correction): + """ + Apply absorption correction to the given diffraction object modo with the correction diffraction object abdo + + Parameters + ---------- + diffraction_pattern Diffraction_object + the input diffraction object to which the cve will be applied + absorption_correction Diffraction_object + the diffraction object that contains the cve to be applied + + Returns + ------- + a corrected diffraction object with the correction applied through multiplication + + """ + + corrected_pattern = diffraction_pattern * absorption_correction + return corrected_pattern diff --git a/src/diffpy/labpdfproc/tests/test_fast_cve.py b/src/diffpy/labpdfproc/tests/test_fast_cve.py new file mode 100644 index 0000000..374abe4 --- /dev/null +++ b/src/diffpy/labpdfproc/tests/test_fast_cve.py @@ -0,0 +1,48 @@ +import numpy as np + +from diffpy.labpdfproc.fast_cve import apply_fast_corr, fast_compute_cve +from diffpy.utils.scattering_objects.diffraction_objects import Diffraction_object + + +def _instantiate_test_do(xarray, yarray, name="test", scat_quantity="x-ray"): + test_do = Diffraction_object(wavelength=1.54) + test_do.insert_scattering_quantity( + xarray, + yarray, + "tth", + scat_quantity=scat_quantity, + name=name, + metadata={"thing1": 1, "thing2": "thing2"}, + ) + return test_do + + +def test_fast_compute_cve(mocker): + xarray, yarray = np.array([90, 90.1, 90.2]), np.array([2, 2, 2]) + expected_cve = np.array([0.5, 0.5, 0.5]) + mocker.patch("numpy.interp", return_value=expected_cve) + input_pattern = _instantiate_test_do(xarray, yarray) + actual_abdo = fast_compute_cve(input_pattern, mud=1, wavelength=1.54) + expected_abdo = _instantiate_test_do( + xarray, + expected_cve, + name="absorption correction, cve, for test", + scat_quantity="cve", + ) + assert actual_abdo == expected_abdo + + +def test_apply_fast_corr(mocker): + xarray, yarray = np.array([90, 90.1, 90.2]), np.array([2, 2, 2]) + expected_cve = np.array([0.5, 0.5, 0.5]) + mocker.patch("numpy.interp", return_value=expected_cve) + input_pattern = _instantiate_test_do(xarray, yarray) + absorption_correction = _instantiate_test_do( + xarray, + expected_cve, + name="absorption correction, cve, for test", + scat_quantity="cve", + ) + actual_corr = apply_fast_corr(input_pattern, absorption_correction) + expected_corr = _instantiate_test_do(xarray, np.array([1, 1, 1])) + assert actual_corr == expected_corr