package uk.ac.diamond.scisoft.xpdf.test; import uk.ac.diamond.scisoft.xpdf.XPDFCoordinates; import uk.ac.diamond.scisoft.xpdf.XPDFElectronCrossSections; import org.eclipse.january.dataset.Dataset; import org.eclipse.january.dataset.DatasetFactory; import org.eclipse.january.dataset.DoubleDataset; import org.eclipse.january.dataset.Maths; import junit.framework.TestCase; public class XPDFEXSTest extends TestCase { // static double re2 = 7.940787684842103e-30*1e28; static double re2 = 1.0; public void testGetThomsonCrossSection() { // 1D testing Dataset twoTheta = DatasetFactory.createRange(DoubleDataset.class, 0, Math.toRadians(45.0), Math.toRadians(0.05)); XPDFCoordinates coords = new XPDFCoordinates(); coords.setTwoTheta(twoTheta); XPDFElectronCrossSections xECS = new XPDFElectronCrossSections(); xECS.setCoordinates(coords); xECS.setBeamEnergy(76.6); Dataset oldThomson = Maths.multiply(xECS.getThomsonCrossSection(), re2); Dataset newThomson = XPDFElectronCrossSections.getThomsonCrossSection(coords); Dataset ratioExcess = Maths.subtract(Maths.divide(newThomson, oldThomson), 1); double rms = Math.sqrt((double) Maths.square(ratioExcess).mean()); double maxError = 1e-2; assertTrue("Ratio of old and new Thomson cross-sections too large: " + rms, rms < maxError); } public void testGetKleinNishinaCrossSection() { // 1D testing Dataset twoTheta = DatasetFactory.createRange(DoubleDataset.class, 0, Math.toRadians(39.02), Math.toRadians(0.02)); XPDFCoordinates coords = new XPDFCoordinates(); coords.setTwoTheta(twoTheta); XPDFElectronCrossSections xECS = new XPDFElectronCrossSections(); xECS.setCoordinates(coords); xECS.setBeamEnergy(76.6); // Dataset oldKN = Maths.multiply(xECS.getKleinNishinaCrossSection(), re2); Dataset oldKN = testKN(); Dataset newKN = XPDFElectronCrossSections.getKleinNishinaCrossSection(coords, 76.6); Dataset ratioExcess = Maths.subtract(Maths.divide(newKN, oldKN), 1); double rms = Math.sqrt((double) Maths.square(ratioExcess).mean()); double maxError = 1e-2; assertTrue("Ratio of old and new Klein-Nishina cross-sections too large: " + rms, rms < maxError); } // Values from DSK's python version for 0 to 39° in steps of 0.02° at 76.6 keV private Dataset testKN() { return DatasetFactory.createFromObject(new double[] { 1. , 0.99999992, 0.99999968, 0.99999929, 0.99999873, 0.99999802, 0.99999715, 0.99999612, 0.99999493, 0.99999359, 0.99999208, 0.99999042, 0.9999886 , 0.99998662, 0.99998448, 0.99998218, 0.99997973, 0.99997711, 0.99997434, 0.99997141, 0.99996833, 0.99996508, 0.99996167, 0.99995811, 0.99995439, 0.99995051, 0.99994647, 0.99994227, 0.99993792, 0.99993341, 0.99992873, 0.9999239 , 0.99991892, 0.99991377, 0.99990846, 0.999903 , 0.99989738, 0.9998916 , 0.99988566, 0.99987956, 0.99987331, 0.9998669 , 0.99986032, 0.99985359, 0.99984671, 0.99983966, 0.99983246, 0.99982509, 0.99981757, 0.99980989, 0.99980205, 0.99979406, 0.9997859 , 0.99977759, 0.99976912, 0.99976049, 0.9997517 , 0.99974276, 0.99973366, 0.99972439, 0.99971497, 0.9997054 , 0.99969566, 0.99968576, 0.99967571, 0.9996655 , 0.99965513, 0.9996446 , 0.99963392, 0.99962307, 0.99961207, 0.99960091, 0.9995896 , 0.99957812, 0.99956648, 0.99955469, 0.99954274, 0.99953063, 0.99951837, 0.99950594, 0.99949336, 0.99948062, 0.99946772, 0.99945466, 0.99944145, 0.99942807, 0.99941454, 0.99940085, 0.99938701, 0.999373 , 0.99935884, 0.99934452, 0.99933004, 0.9993154 , 0.99930061, 0.99928565, 0.99927054, 0.99925527, 0.99923985, 0.99922426, 0.99920852, 0.99919262, 0.99917656, 0.99916034, 0.99914397, 0.99912744, 0.99911075, 0.9990939 , 0.9990769 , 0.99905973, 0.99904241, 0.99902493, 0.9990073 , 0.9989895 , 0.99897155, 0.99895344, 0.99893517, 0.99891675, 0.99889817, 0.99887942, 0.99886053, 0.99884147, 0.99882226, 0.99880288, 0.99878336, 0.99876367, 0.99874383, 0.99872382, 0.99870366, 0.99868335, 0.99866287, 0.99864224, 0.99862145, 0.9986005 , 0.9985794 , 0.99855814, 0.99853672, 0.99851514, 0.9984934 , 0.99847151, 0.99844946, 0.99842726, 0.99840489, 0.99838237, 0.99835969, 0.99833685, 0.99831386, 0.99829071, 0.9982674 , 0.99824393, 0.99822031, 0.99819653, 0.99817259, 0.9981485 , 0.99812425, 0.99809984, 0.99807527, 0.99805055, 0.99802567, 0.99800063, 0.99797543, 0.99795008, 0.99792457, 0.9978989 , 0.99787308, 0.9978471 , 0.99782096, 0.99779467, 0.99776821, 0.99774161, 0.99771484, 0.99768792, 0.99766084, 0.9976336 , 0.99760621, 0.99757866, 0.99755095, 0.99752308, 0.99749506, 0.99746689, 0.99743855, 0.99741006, 0.99738141, 0.99735261, 0.99732364, 0.99729452, 0.99726525, 0.99723582, 0.99720623, 0.99717648, 0.99714658, 0.99711652, 0.99708631, 0.99705594, 0.99702541, 0.99699472, 0.99696388, 0.99693288, 0.99690173, 0.99687042, 0.99683895, 0.99680733, 0.99677555, 0.99674361, 0.99671152, 0.99667927, 0.99664686, 0.9966143 , 0.99658158, 0.99654871, 0.99651568, 0.99648249, 0.99644914, 0.99641565, 0.99638199, 0.99634818, 0.99631421, 0.99628009, 0.99624581, 0.99621137, 0.99617678, 0.99614203, 0.99610712, 0.99607206, 0.99603685, 0.99600148, 0.99596595, 0.99593026, 0.99589442, 0.99585843, 0.99582228, 0.99578597, 0.99574951, 0.99571289, 0.99567611, 0.99563918, 0.9956021 , 0.99556485, 0.99552746, 0.9954899 , 0.9954522 , 0.99541433, 0.99537631, 0.99533814, 0.99529981, 0.99526132, 0.99522268, 0.99518388, 0.99514493, 0.99510582, 0.99506656, 0.99502714, 0.99498756, 0.99494784, 0.99490795, 0.99486791, 0.99482772, 0.99478737, 0.99474686, 0.9947062 , 0.99466538, 0.99462441, 0.99458329, 0.99454201, 0.99450057, 0.99445898, 0.99441723, 0.99437533, 0.99433328, 0.99429107, 0.9942487 , 0.99420618, 0.99416351, 0.99412068, 0.99407769, 0.99403455, 0.99399126, 0.99394781, 0.99390421, 0.99386045, 0.99381653, 0.99377247, 0.99372825, 0.99368387, 0.99363934, 0.99359465, 0.99354981, 0.99350482, 0.99345967, 0.99341437, 0.99336891, 0.9933233 , 0.99327753, 0.99323161, 0.99318554, 0.99313931, 0.99309293, 0.99304639, 0.9929997 , 0.99295285, 0.99290586, 0.9928587 , 0.9928114 , 0.99276393, 0.99271632, 0.99266855, 0.99262063, 0.99257255, 0.99252432, 0.99247594, 0.9924274 , 0.99237871, 0.99232986, 0.99228086, 0.99223171, 0.99218241, 0.99213295, 0.99208333, 0.99203357, 0.99198365, 0.99193357, 0.99188334, 0.99183296, 0.99178243, 0.99173174, 0.9916809 , 0.99162991, 0.99157876, 0.99152746, 0.99147601, 0.9914244 , 0.99137264, 0.99132073, 0.99126866, 0.99121644, 0.99116407, 0.99111155, 0.99105887, 0.99100604, 0.99095306, 0.99089992, 0.99084663, 0.99079319, 0.99073959, 0.99068585, 0.99063195, 0.9905779 , 0.99052369, 0.99046933, 0.99041482, 0.99036016, 0.99030535, 0.99025038, 0.99019526, 0.99013999, 0.99008456, 0.99002898, 0.98997326, 0.98991737, 0.98986134, 0.98980515, 0.98974882, 0.98969233, 0.98963569, 0.98957889, 0.98952195, 0.98946485, 0.9894076 , 0.9893502 , 0.98929264, 0.98923494, 0.98917708, 0.98911907, 0.98906091, 0.9890026 , 0.98894414, 0.98888552, 0.98882675, 0.98876783, 0.98870876, 0.98864954, 0.98859017, 0.98853065, 0.98847097, 0.98841114, 0.98835117, 0.98829104, 0.98823076, 0.98817033, 0.98810974, 0.98804901, 0.98798812, 0.98792709, 0.9878659 , 0.98780456, 0.98774307, 0.98768144, 0.98761964, 0.9875577 , 0.98749561, 0.98743337, 0.98737098, 0.98730843, 0.98724574, 0.98718289, 0.9871199 , 0.98705675, 0.98699346, 0.98693001, 0.98686641, 0.98680266, 0.98673877, 0.98667472, 0.98661052, 0.98654617, 0.98648167, 0.98641702, 0.98635223, 0.98628728, 0.98622218, 0.98615693, 0.98609153, 0.98602598, 0.98596028, 0.98589444, 0.98582844, 0.98576229, 0.985696 , 0.98562955, 0.98556295, 0.98549621, 0.98542931, 0.98536227, 0.98529507, 0.98522773, 0.98516024, 0.9850926 , 0.9850248 , 0.98495686, 0.98488877, 0.98482054, 0.98475215, 0.98468361, 0.98461493, 0.98454609, 0.98447711, 0.98440798, 0.98433869, 0.98426926, 0.98419969, 0.98412996, 0.98406008, 0.98399006, 0.98391988, 0.98384956, 0.98377909, 0.98370847, 0.98363771, 0.98356679, 0.98349573, 0.98342452, 0.98335316, 0.98328165, 0.98320999, 0.98313819, 0.98306623, 0.98299413, 0.98292188, 0.98284949, 0.98277694, 0.98270425, 0.98263141, 0.98255842, 0.98248529, 0.982412 , 0.98233857, 0.982265 , 0.98219127, 0.9821174 , 0.98204338, 0.98196921, 0.98189489, 0.98182043, 0.98174582, 0.98167106, 0.98159616, 0.98152111, 0.98144591, 0.98137056, 0.98129507, 0.98121943, 0.98114365, 0.98106771, 0.98099163, 0.98091541, 0.98083903, 0.98076251, 0.98068585, 0.98060903, 0.98053207, 0.98045497, 0.98037772, 0.98030032, 0.98022277, 0.98014508, 0.98006724, 0.97998926, 0.97991113, 0.97983285, 0.97975443, 0.97967586, 0.97959715, 0.97951829, 0.97943928, 0.97936013, 0.97928084, 0.97920139, 0.9791218 , 0.97904207, 0.97896219, 0.97888217, 0.978802 , 0.97872168, 0.97864122, 0.97856061, 0.97847986, 0.97839896, 0.97831792, 0.97823673, 0.9781554 , 0.97807392, 0.9779923 , 0.97791053, 0.97782862, 0.97774656, 0.97766436, 0.97758201, 0.97749952, 0.97741689, 0.97733411, 0.97725118, 0.97716811, 0.9770849 , 0.97700154, 0.97691804, 0.97683439, 0.9767506 , 0.97666667, 0.97658259, 0.97649836, 0.976414 , 0.97632948, 0.97624483, 0.97616003, 0.97607509, 0.97599 , 0.97590477, 0.9758194 , 0.97573388, 0.97564822, 0.97556241, 0.97547647, 0.97539038, 0.97530414, 0.97521776, 0.97513124, 0.97504458, 0.97495777, 0.97487082, 0.97478373, 0.97469649, 0.97460911, 0.97452159, 0.97443392, 0.97434611, 0.97425816, 0.97417007, 0.97408183, 0.97399346, 0.97390494, 0.97381627, 0.97372747, 0.97363852, 0.97354943, 0.9734602 , 0.97337082, 0.9732813 , 0.97319165, 0.97310184, 0.9730119 , 0.97292182, 0.97283159, 0.97274122, 0.97265071, 0.97256006, 0.97246927, 0.97237833, 0.97228726, 0.97219604, 0.97210468, 0.97201318, 0.97192154, 0.97182975, 0.97173783, 0.97164576, 0.97155356, 0.97146121, 0.97136872, 0.97127609, 0.97118332, 0.97109041, 0.97099736, 0.97090417, 0.97081083, 0.97071736, 0.97062375, 0.97052999, 0.9704361 , 0.97034206, 0.97024789, 0.97015357, 0.97005912, 0.96996452, 0.96986978, 0.96977491, 0.96967989, 0.96958474, 0.96948944, 0.96939401, 0.96929843, 0.96920272, 0.96910686, 0.96901087, 0.96891473, 0.96881846, 0.96872205, 0.9686255 , 0.96852881, 0.96843198, 0.96833501, 0.9682379 , 0.96814065, 0.96804327, 0.96794574, 0.96784808, 0.96775028, 0.96765234, 0.96755426, 0.96745604, 0.96735768, 0.96725918, 0.96716055, 0.96706178, 0.96696287, 0.96686382, 0.96676463, 0.96666531, 0.96656584, 0.96646624, 0.9663665 , 0.96626663, 0.96616661, 0.96606646, 0.96596617, 0.96586574, 0.96576518, 0.96566447, 0.96556363, 0.96546266, 0.96536154, 0.96526029, 0.9651589 , 0.96505737, 0.96495571, 0.96485391, 0.96475197, 0.9646499 , 0.96454768, 0.96444534, 0.96434285, 0.96424023, 0.96413747, 0.96403458, 0.96393154, 0.96382838, 0.96372507, 0.96362163, 0.96351806, 0.96341434, 0.96331049, 0.96320651, 0.96310239, 0.96299813, 0.96289374, 0.96278921, 0.96268455, 0.96257975, 0.96247481, 0.96236974, 0.96226454, 0.96215919, 0.96205372, 0.9619481 , 0.96184236, 0.96173647, 0.96163046, 0.9615243 , 0.96141802, 0.96131159, 0.96120504, 0.96109834, 0.96099152, 0.96088455, 0.96077746, 0.96067023, 0.96056286, 0.96045536, 0.96034773, 0.96023996, 0.96013206, 0.96002402, 0.95991585, 0.95980755, 0.95969911, 0.95959054, 0.95948183, 0.95937299, 0.95926402, 0.95915491, 0.95904567, 0.9589363 , 0.95882679, 0.95871715, 0.95860737, 0.95849747, 0.95838742, 0.95827725, 0.95816694, 0.95805651, 0.95794593, 0.95783523, 0.95772439, 0.95761342, 0.95750232, 0.95739108, 0.95727971, 0.95716821, 0.95705658, 0.95694481, 0.95683292, 0.95672089, 0.95660872, 0.95649643, 0.956384 , 0.95627145, 0.95615876, 0.95604594, 0.95593298, 0.9558199 , 0.95570668, 0.95559334, 0.95547986, 0.95536625, 0.95525251, 0.95513863, 0.95502463, 0.95491049, 0.95479623, 0.95468183, 0.9545673 , 0.95445265, 0.95433786, 0.95422294, 0.95410789, 0.95399271, 0.95387739, 0.95376195, 0.95364638, 0.95353068, 0.95341485, 0.95329888, 0.95318279, 0.95306657, 0.95295022, 0.95283373, 0.95271712, 0.95260038, 0.95248351, 0.95236651, 0.95224938, 0.95213212, 0.95201473, 0.95189721, 0.95177956, 0.95166179, 0.95154388, 0.95142585, 0.95130768, 0.95118939, 0.95107097, 0.95095242, 0.95083374, 0.95071494, 0.950596 , 0.95047694, 0.95035774, 0.95023842, 0.95011897, 0.9499994 , 0.94987969, 0.94975986, 0.9496399 , 0.94951981, 0.94939959, 0.94927925, 0.94915878, 0.94903818, 0.94891745, 0.9487966 , 0.94867562, 0.94855451, 0.94843327, 0.94831191, 0.94819042, 0.9480688 , 0.94794706, 0.94782519, 0.94770319, 0.94758106, 0.94745881, 0.94733643, 0.94721393, 0.9470913 , 0.94696854, 0.94684566, 0.94672265, 0.94659952, 0.94647626, 0.94635287, 0.94622935, 0.94610572, 0.94598195, 0.94585806, 0.94573404, 0.9456099 , 0.94548564, 0.94536124, 0.94523673, 0.94511208, 0.94498732, 0.94486242, 0.9447374 , 0.94461226, 0.94448699, 0.9443616 , 0.94423608, 0.94411044, 0.94398468, 0.94385878, 0.94373277, 0.94360663, 0.94348037, 0.94335398, 0.94322747, 0.94310083, 0.94297407, 0.94284718, 0.94272018, 0.94259305, 0.94246579, 0.94233841, 0.94221091, 0.94208328, 0.94195553, 0.94182766, 0.94169967, 0.94157155, 0.94144331, 0.94131494, 0.94118645, 0.94105784, 0.94092911, 0.94080025, 0.94067128, 0.94054217, 0.94041295, 0.94028361, 0.94015414, 0.94002455, 0.93989483, 0.939765 , 0.93963504, 0.93950497, 0.93937477, 0.93924444, 0.939114 , 0.93898344, 0.93885275, 0.93872194, 0.93859101, 0.93845996, 0.93832879, 0.9381975 , 0.93806608, 0.93793455, 0.93780289, 0.93767111, 0.93753922, 0.9374072 , 0.93727506, 0.9371428 , 0.93701042, 0.93687792, 0.9367453 , 0.93661256, 0.9364797 , 0.93634672, 0.93621362, 0.9360804 , 0.93594706, 0.9358136 , 0.93568002, 0.93554632, 0.9354125 , 0.93527856, 0.93514451, 0.93501033, 0.93487603, 0.93474162, 0.93460709, 0.93447243, 0.93433766, 0.93420277, 0.93406776, 0.93393263, 0.93379739, 0.93366202, 0.93352654, 0.93339094, 0.93325522, 0.93311938, 0.93298343, 0.93284735, 0.93271116, 0.93257485, 0.93243843, 0.93230188, 0.93216522, 0.93202844, 0.93189154, 0.93175453, 0.9316174 , 0.93148015, 0.93134278, 0.9312053 , 0.9310677 , 0.93092998, 0.93079215, 0.9306542 , 0.93051613, 0.93037795, 0.93023965, 0.93010123, 0.9299627 , 0.92982405, 0.92968529, 0.92954641, 0.92940741, 0.9292683 , 0.92912907, 0.92898973, 0.92885027, 0.92871069, 0.928571 , 0.9284312 , 0.92829128, 0.92815124, 0.92801109, 0.92787082, 0.92773044, 0.92758995, 0.92744933, 0.92730861, 0.92716777, 0.92702681, 0.92688574, 0.92674456, 0.92660326, 0.92646185, 0.92632032, 0.92617868, 0.92603693, 0.92589506, 0.92575308, 0.92561098, 0.92546877, 0.92532645, 0.92518401, 0.92504146, 0.9248988 , 0.92475603, 0.92461314, 0.92447013, 0.92432702, 0.92418379, 0.92404045, 0.923897 , 0.92375343, 0.92360975, 0.92346596, 0.92332206, 0.92317804, 0.92303391, 0.92288967, 0.92274532, 0.92260085, 0.92245628, 0.92231159, 0.92216679, 0.92202188, 0.92187686, 0.92173172, 0.92158648, 0.92144112, 0.92129565, 0.92115007, 0.92100438, 0.92085858, 0.92071267, 0.92056665, 0.92042051, 0.92027427, 0.92012791, 0.91998145, 0.91983487, 0.91968819, 0.91954139, 0.91939449, 0.91924747, 0.91910035, 0.91895311, 0.91880577, 0.91865831, 0.91851075, 0.91836307, 0.91821529, 0.9180674 , 0.91791939, 0.91777128, 0.91762306, 0.91747474, 0.9173263 , 0.91717775, 0.9170291 , 0.91688033, 0.91673146, 0.91658248, 0.91643339, 0.91628419, 0.91613489, 0.91598547, 0.91583595, 0.91568632, 0.91553658, 0.91538674, 0.91523679, 0.91508673, 0.91493656, 0.91478628, 0.9146359 , 0.91448541, 0.91433481, 0.91418411, 0.9140333 , 0.91388238, 0.91373136, 0.91358023, 0.91342899, 0.91327764, 0.91312619, 0.91297464, 0.91282297, 0.9126712 , 0.91251933, 0.91236735, 0.91221526, 0.91206307, 0.91191077, 0.91175836, 0.91160585, 0.91145324, 0.91130052, 0.91114769, 0.91099476, 0.91084172, 0.91068858, 0.91053534, 0.91038198, 0.91022853, 0.91007497, 0.9099213 , 0.90976753, 0.90961366, 0.90945968, 0.9093056 , 0.90915141, 0.90899712, 0.90884273, 0.90868823, 0.90853363, 0.90837892, 0.90822411, 0.9080692 , 0.90791418, 0.90775906, 0.90760384, 0.90744851, 0.90729308, 0.90713755, 0.90698192, 0.90682618, 0.90667034, 0.9065144 , 0.90635835, 0.9062022 , 0.90604595, 0.9058896 , 0.90573315, 0.90557659, 0.90541993, 0.90526317, 0.90510631, 0.90494934, 0.90479228, 0.90463511, 0.90447784, 0.90432047, 0.904163 , 0.90400543, 0.90384776, 0.90368998, 0.90353211, 0.90337413, 0.90321606, 0.90305788, 0.9028996 , 0.90274123, 0.90258275, 0.90242417, 0.90226549, 0.90210671, 0.90194783, 0.90178886, 0.90162978, 0.9014706 , 0.90131132, 0.90115195, 0.90099247, 0.90083289, 0.90067322, 0.90051344, 0.90035357, 0.9001936 , 0.90003353, 0.89987336, 0.89971309, 0.89955272, 0.89939226, 0.8992317 , 0.89907103, 0.89891027, 0.89874942, 0.89858846, 0.89842741, 0.89826625, 0.898105 , 0.89794366, 0.89778221, 0.89762067, 0.89745903, 0.89729729, 0.89713546, 0.89697353, 0.8968115 , 0.89664937, 0.89648715, 0.89632483, 0.89616242, 0.89599991, 0.8958373 , 0.89567459, 0.89551179, 0.89534889, 0.8951859 , 0.89502281, 0.89485963, 0.89469635, 0.89453297, 0.8943695 , 0.89420593, 0.89404227, 0.89387851, 0.89371466, 0.89355071, 0.89338666, 0.89322253, 0.89305829, 0.89289396, 0.89272954, 0.89256502, 0.89240041, 0.89223571, 0.89207091, 0.89190601, 0.89174102, 0.89157594, 0.89141076, 0.89124549, 0.89108013, 0.89091467, 0.89074912, 0.89058347, 0.89041774, 0.8902519 , 0.89008598, 0.88991996, 0.88975385, 0.88958765, 0.88942135, 0.88925496, 0.88908848, 0.88892191, 0.88875524, 0.88858849, 0.88842163, 0.88825469, 0.88808766, 0.88792053, 0.88775331, 0.887586 , 0.8874186 , 0.88725111, 0.88708352, 0.88691585, 0.88674808, 0.88658022, 0.88641227, 0.88624423, 0.8860761 , 0.88590788, 0.88573957, 0.88557116, 0.88540267, 0.88523408, 0.88506541, 0.88489665, 0.88472779, 0.88455885, 0.88438981, 0.88422069, 0.88405147, 0.88388217, 0.88371278, 0.88354329, 0.88337372, 0.88320406, 0.88303431, 0.88286447, 0.88269454, 0.88252453, 0.88235442, 0.88218423, 0.88201394, 0.88184357, 0.88167311, 0.88150257, 0.88133193, 0.8811612 , 0.88099039, 0.88081949, 0.88064851, 0.88047743, 0.88030627, 0.88013502, 0.87996368, 0.87979225, 0.87962074, 0.87944914, 0.87927746, 0.87910568, 0.87893382, 0.87876188, 0.87858984, 0.87841772, 0.87824552, 0.87807322, 0.87790085, 0.87772838, 0.87755583, 0.87738319, 0.87721047, 0.87703766, 0.87686477, 0.87669179, 0.87651872, 0.87634557, 0.87617234, 0.87599902, 0.87582561, 0.87565212, 0.87547855, 0.87530489, 0.87513114, 0.87495731, 0.8747834 , 0.8746094 , 0.87443532, 0.87426115, 0.8740869 , 0.87391257, 0.87373815, 0.87356365, 0.87338906, 0.87321439, 0.87303964, 0.8728648 , 0.87268988, 0.87251488, 0.8723398 , 0.87216463, 0.87198938, 0.87181404, 0.87163862, 0.87146312, 0.87128754, 0.87111188, 0.87093613, 0.8707603 , 0.87058439, 0.8704084 , 0.87023232, 0.87005617, 0.86987993, 0.86970361, 0.86952721, 0.86935073, 0.86917416, 0.86899752, 0.86882079, 0.86864398, 0.8684671 , 0.86829013, 0.86811308, 0.86793595, 0.86775874, 0.86758145, 0.86740408, 0.86722662, 0.86704909, 0.86687148, 0.86669379, 0.86651602, 0.86633817, 0.86616024, 0.86598223, 0.86580414, 0.86562597, 0.86544772, 0.8652694 , 0.86509099, 0.86491251, 0.86473394, 0.8645553 , 0.86437658, 0.86419778, 0.8640189 , 0.86383995, 0.86366091, 0.8634818 , 0.86330261, 0.86312334, 0.862944 , 0.86276457, 0.86258507, 0.86240549, 0.86222584, 0.8620461 , 0.86186629, 0.86168641, 0.86150644, 0.8613264 , 0.86114628, 0.86096609, 0.86078581, 0.86060547, 0.86042504, 0.86024454, 0.86006397, 0.85988331, 0.85970258, 0.85952178, 0.8593409 , 0.85915994, 0.85897891, 0.8587978 , 0.85861662, 0.85843536, 0.85825403, 0.85807262, 0.85789114, 0.85770958, 0.85752795, 0.85734624, 0.85716446, 0.8569826 , 0.85680067, 0.85661867, 0.85643659, 0.85625444, 0.85607221, 0.85588991, 0.85570753, 0.85552509, 0.85534256, 0.85515997, 0.8549773 , 0.85479456, 0.85461174, 0.85442886, 0.85424589, 0.85406286, 0.85387975, 0.85369658, 0.85351332, 0.85333 , 0.8531466 , 0.85296313, 0.85277959, 0.85259598, 0.8524123 , 0.85222854, 0.85204471, 0.85186081, 0.85167684, 0.8514928 , 0.85130868, 0.8511245 , 0.85094024, 0.85075592, 0.85057152, 0.85038705, 0.85020251, 0.8500179 , 0.84983322, 0.84964847, 0.84946365, 0.84927875, 0.84909379, 0.84890876, 0.84872366, 0.84853849, 0.84835325, 0.84816794, 0.84798256, 0.84779711, 0.84761159, 0.847426 , 0.84724035, 0.84705462, 0.84686883, 0.84668296, 0.84649703, 0.84631103, 0.84612496, 0.84593882, 0.84575262, 0.84556635, 0.84538 , 0.84519359, 0.84500712, 0.84482057, 0.84463396, 0.84444728, 0.84426053, 0.84407372, 0.84388684, 0.84369989, 0.84351287, 0.84332579, 0.84313864, 0.84295142, 0.84276414, 0.84257679, 0.84238937, 0.84220189, 0.84201434, 0.84182673, 0.84163905, 0.8414513 , 0.84126349, 0.84107561, 0.84088767, 0.84069966, 0.84051159, 0.84032345, 0.84013524, 0.83994697, 0.83975864, 0.83957024, 0.83938178, 0.83919325, 0.83900466, 0.838816 , 0.83862728, 0.83843849, 0.83824964, 0.83806073, 0.83787175, 0.83768271, 0.8374936 , 0.83730444, 0.8371152 , 0.83692591, 0.83673655, 0.83654713, 0.83635764, 0.83616809, 0.83597848, 0.83578881, 0.83559907, 0.83540927, 0.83521941, 0.83502949, 0.8348395 , 0.83464945, 0.83445934, 0.83426917, 0.83407894, 0.83388864, 0.83369829, 0.83350787, 0.83331739, 0.83312685, 0.83293624, 0.83274558, 0.83255486, 0.83236407, 0.83217323, 0.83198232, 0.83179135, 0.83160032, 0.83140924, 0.83121809, 0.83102688, 0.83083561, 0.83064428, 0.83045289, 0.83026144, 0.83006994, 0.82987837, 0.82968674, 0.82949506, 0.82930331, 0.82911151, 0.82891964, 0.82872772, 0.82853574, 0.8283437 , 0.8281516 , 0.82795945, 0.82776723, 0.82757496, 0.82738263, 0.82719024, 0.82699779, 0.82680529, 0.82661272, 0.8264201 , 0.82622742, 0.82603469, 0.82584189, 0.82564904, 0.82545614, 0.82526317, 0.82507015, 0.82487707, 0.82468394, 0.82449075, 0.8242975 , 0.8241042 , 0.82391084, 0.82371742, 0.82352395, 0.82333042, 0.82313683, 0.82294319, 0.8227495 , 0.82255575, 0.82236194, 0.82216808, 0.82197416, 0.82178019, 0.82158616, 0.82139208, 0.82119794, 0.82100375, 0.8208095 , 0.8206152 , 0.82042084, 0.82022643, 0.82003197, 0.81983745, 0.81964288, 0.81944825, 0.81925357, 0.81905884, 0.81886405, 0.81866921, 0.81847432, 0.81827937, 0.81808437, 0.81788932, 0.81769422, 0.81749906, 0.81730385, 0.81710858, 0.81691326, 0.8167179 , 0.81652247, 0.816327 , 0.81613148, 0.8159359 , 0.81574027, 0.81554459, 0.81534886, 0.81515307, 0.81495724, 0.81476135, 0.81456541, 0.81436942, 0.81417338, 0.81397729, 0.81378115, 0.81358496, 0.81338871, 0.81319242, 0.81299607, 0.81279968, 0.81260323, 0.81240674, 0.8122102 , 0.8120136 , 0.81181696, 0.81162026, 0.81142352, 0.81122673, 0.81102988, 0.81083299, 0.81063605, 0.81043906, 0.81024202, 0.81004494, 0.8098478 , 0.80965062, 0.80945338, 0.8092561 , 0.80905877, 0.80886139, 0.80866397, 0.80846649, 0.80826897, 0.8080714 , 0.80787378, 0.80767612, 0.80747841, 0.80728065, 0.80708284, 0.80688499, 0.80668709, 0.80648914, 0.80629114, 0.8060931 , 0.80589501, 0.80569688, 0.8054987 , 0.80530047, 0.8051022 , 0.80490388, 0.80470551, 0.8045071 , 0.80430865, 0.80411014, 0.8039116 , 0.803713 , 0.80351436, 0.80331568, 0.80311695, 0.80291818, 0.80271936, 0.80252049, 0.80232159, 0.80212263, 0.80192364, 0.80172459, 0.80152551, 0.80132638, 0.8011272 , 0.80092798, 0.80072872, 0.80052942, 0.80033007, 0.80013067, 0.79993124, 0.79973176, 0.79953224, 0.79933267, 0.79913306, 0.79893341, 0.79873371, 0.79853398, 0.7983342 , 0.79813437, 0.79793451, 0.7977346 , 0.79753465, 0.79733466, 0.79713463, 0.79693456, 0.79673444, 0.79653428, 0.79633408, 0.79613384, 0.79593356, 0.79573323, 0.79553287, 0.79533246, 0.79513202, 0.79493153, 0.794731 , 0.79453043, 0.79432982, 0.79412917, 0.79392848, 0.79372776, 0.79352699, 0.79332618, 0.79312533, 0.79292444, 0.79272351, 0.79252254, 0.79232153, 0.79212049, 0.7919194 , 0.79171827, 0.79151711, 0.79131591, 0.79111466, 0.79091338, 0.79071207, 0.79051071, 0.79030931, 0.79010788, 0.78990641, 0.7897049 , 0.78950335, 0.78930176, 0.78910014, 0.78889848, 0.78869678, 0.78849504, 0.78829327, 0.78809146, 0.78788961, 0.78768773, 0.78748581, 0.78728385, 0.78708185, 0.78687982, 0.78667775, 0.78647565, 0.78627351, 0.78607133, 0.78586912, 0.78566687, 0.78546459, 0.78526227, 0.78505991, 0.78485752, 0.7846551 , 0.78445264, 0.78425014, 0.78404761, 0.78384504, 0.78364244, 0.7834398 , 0.78323713, 0.78303443, 0.78283169, 0.78262891, 0.78242611, 0.78222326, 0.78202039, 0.78181748, 0.78161453, 0.78141156, 0.78120855, 0.7810055 , 0.78080242, 0.78059931, 0.78039617, 0.78019299, 0.77998978, 0.77978654, 0.77958326, 0.77937995, 0.77917661, 0.77897324, 0.77876983, 0.77856639, 0.77836292, 0.77815942, 0.77795589, 0.77775232, 0.77754873, 0.7773451 , 0.77714144, 0.77693774, 0.77673402, 0.77653027, 0.77632648, 0.77612267, 0.77591882, 0.77571494, 0.77551103, 0.7753071 , 0.77510313, 0.77489913, 0.7746951 , 0.77449104, 0.77428695, 0.77408283, 0.77387868, 0.7736745 , 0.77347029, 0.77326605, 0.77306179, 0.77285749, 0.77265317, 0.77244881, 0.77224443, 0.77204002, 0.77183557, 0.7716311 , 0.77142661, 0.77122208, 0.77101753, 0.77081294, 0.77060833, 0.77040369, 0.77019903, 0.76999433, 0.76978961, 0.76958486, 0.76938008, 0.76917528, 0.76897045, 0.76876559, 0.7685607 , 0.76835579, 0.76815085, 0.76794588, 0.76774089, 0.76753587, 0.76733082, 0.76712575, 0.76692065, 0.76671553, 0.76651038, 0.7663052 , 0.7661 , 0.76589477, 0.76568952, 0.76548424, 0.76527894, 0.76507361, 0.76486825, 0.76466287, 0.76445747, 0.76425204, 0.76404659, 0.76384111, 0.76363561, 0.76343008, 0.76322453, 0.76301895, 0.76281335, 0.76260773, 0.76240208, 0.76219641, 0.76199072, 0.761785 , 0.76157926, 0.76137349, 0.7611677 , 0.76096189, 0.76075606, 0.7605502 , 0.76034432, 0.76013842, 0.75993249, 0.75972654, 0.75952057, 0.75931458, 0.75910856, 0.75890253, 0.75869647, 0.75849039, 0.75828428, 0.75807816, 0.75787201, 0.75766585, 0.75745966, 0.75725345, 0.75704722, 0.75684097, 0.75663469, 0.7564284 , 0.75622209, 0.75601575, 0.7558094 , 0.75560302, 0.75539662, 0.75519021, 0.75498377, 0.75477731, 0.75457084, 0.75436434, 0.75415783, 0.75395129, 0.75374474, 0.75353816, 0.75333157, 0.75312496, 0.75291833, 0.75271168, 0.75250501, 0.75229832, 0.75209161, 0.75188489, 0.75167814, 0.75147138 }); } }