From 7528034048bf1d65e94913ff88b884cf908cac1f Mon Sep 17 00:00:00 2001 From: Diyou Shen Date: Mon, 20 Apr 2026 14:09:36 +0200 Subject: [PATCH 1/4] [SW] Add 32b floating FFT kernel. --- software/tests/CMakeLists.txt | 3 + software/tests/fft-32b/data/data_1024_16.h | 22 ++ software/tests/fft-32b/data/data_256_4.h | 22 ++ software/tests/fft-32b/kernel/fft.c | 254 ++++++++++++++++ software/tests/fft-32b/kernel/fft.h | 39 +++ software/tests/fft-32b/main.c | 198 +++++++++++++ software/tests/fft-32b/script/fft.json | 11 + software/tests/fft-32b/script/gen_data.py | 320 +++++++++++++++++++++ 8 files changed, 869 insertions(+) create mode 100644 software/tests/fft-32b/data/data_1024_16.h create mode 100644 software/tests/fft-32b/data/data_256_4.h create mode 100644 software/tests/fft-32b/kernel/fft.c create mode 100644 software/tests/fft-32b/kernel/fft.h create mode 100644 software/tests/fft-32b/main.c create mode 100644 software/tests/fft-32b/script/fft.json create mode 100644 software/tests/fft-32b/script/gen_data.py diff --git a/software/tests/CMakeLists.txt b/software/tests/CMakeLists.txt index 4c745f8..c090359 100644 --- a/software/tests/CMakeLists.txt +++ b/software/tests/CMakeLists.txt @@ -114,6 +114,9 @@ add_spatz_test_threeParam(fmatmul-32b fmatmul-32b/main.c 32 32 32) add_spatz_test_threeParam(fmatmul-32b fmatmul-32b/main.c 64 64 64) add_spatz_test_threeParam(fmatmul-32b fmatmul-32b/main.c 128 128 128) +add_spatz_test_twoParam(fft-32b fft-32b/main.c 256 4) +add_spatz_test_twoParam(fft-32b fft-32b/main.c 1024 16) + ### Integer-Point add_spatz_test_oneParam(idotp-32b idotp-32b/main.c 8192) add_spatz_test_oneParam(idotp-32b idotp-32b/main.c 32768) diff --git a/software/tests/fft-32b/data/data_1024_16.h b/software/tests/fft-32b/data/data_1024_16.h new file mode 100644 index 0000000..f5ec25c --- /dev/null +++ b/software/tests/fft-32b/data/data_1024_16.h @@ -0,0 +1,22 @@ +// Copyright 2023 ETH Zurich and University of Bologna. +// Licensed under the Apache License, Version 2.0, see LICENSE for details. +// SPDX-License-Identifier: Apache-2.0 + +// This file was generated automatically. + +static uint32_t NFFT = 1024; +static uint32_t NTWI_P1 = 960; +static uint32_t NTWI_P2 = 192; +static uint32_t NTWI_TOT = 1152; +static uint32_t log2_nfft = 10; +static uint32_t log2_nfft1 = 4; +static uint32_t log2_nfft2 = 6; +static uint32_t active_cores = 16; + +float out[2048] __attribute__((section(".pdcp_src"))) = { [0 ... 2047] = 0 }; +static float samples_dram[2048] __attribute__((section(".pdcp_src"))) = {0.49671414494514465, 0.6476885676383972, -0.2341533750295639, 1.5792127847671509, -0.4694743752479553, -0.4634176790714264, 0.241962268948555, -1.7249178886413574, -1.0128310918807983, -0.9080240726470947, 1.4656487703323364, 0.06752820312976837, -0.5443827509880066, -1.1509935855865479, -0.6006386876106262, -0.6017066240310669, -0.013497225008904934, 0.8225449323654175, 0.20886360108852386, -1.32818603515625, 0.7384665608406067, -0.1156482845544815, -1.4785219430923462, -0.46063876152038574, 0.3436183035373688, 0.32408398389816284, -0.6769220232963562, 1.0309995412826538, -0.8392175436019897, 0.3312634229660034, -0.4791742265224457, -1.106334924697876, 0.8125258088111877, -0.07201012223958969, 0.3616360127925873, 0.36139559745788574, -0.03582603856921196, -2.6197450160980225, 0.08704707026481628, 0.0917607769370079, -0.21967189013957977, 1.4778940677642822, -0.8084936141967773, 0.9154021143913269, -0.5297601819038391, 0.09707754850387573, -0.7020530700683594, -0.39210814237594604, 0.296120285987854, 0.00511345686390996, -1.4153707027435303, -0.3427145183086395, -0.16128571331501007, 1.886185884475708, 0.2575503885746002, -1.9187712669372559, 0.06023021042346954, -0.19236096739768982, -0.034711770713329315, 1.1428228616714478, 0.7910319566726685, 1.402794361114502, 0.5868570804595947, -0.9905363321304321, 0.09965136647224426, -1.5506634712219238, -1.0623036623001099, -0.9194242358207703, -0.7832533121109009, 0.8135172128677368, 0.22745993733406067, -1.6074832677841187, 0.2598828077316284, -1.2369507551193237, 0.5219415426254272, 0.2504928410053253, -0.6800247430801392, 0.2930724620819092, 1.8657745122909546, -1.1913034915924072, -0.9746816754341125, 1.1585955619812012, 0.9633761048316956, 0.8220601677894592, -0.24538812041282654, -0.8895144462585449, -0.0771017074584961, 0.276690810918808, 0.013001891784369946, -0.26465684175491333, 0.6256673336029053, -1.0708924531936646, -0.2234627902507782, 0.47323763370513916, -0.8467937111854553, -0.44651496410369873, 0.21409374475479126, 0.17318092286586761, -0.8838574290275574, 0.05820871889591217, 0.3577873706817627, 1.0830512046813965, -1.377669334411621, 0.5150352716445923, 0.5150476694107056, 0.570890486240387, 0.954001784324646, -0.31526923179626465, -0.7728252410888672, -0.48536354303359985, 2.3146586418151855, 0.6862601637840271, -0.4719318747520447, 0.06428001821041107, -0.7153037190437317, -0.7303666472434998, 0.045571841299533844, 2.143944025039673, -2.0251426696777344, -0.6617864370346069, -0.7925207614898682, 0.5049872994422913, -1.200296401977539, -0.4749453067779541, 1.7654542922973633, -1.2608839273452759, 2.1221561431884766, -1.5193699598312378, 1.2669111490249634, 0.44381943345069885, -0.9269304871559143, -3.241267442703247, -0.25256815552711487, 1.6324113607406616, -0.44004449248313904, 1.4412733316421509, 1.1631637811660767, -0.9815086722373962, 0.19905969500541687, 0.06980208307504654, 0.11351734399795532, 1.5860167741775513, 2.133033275604248, -0.15178509056568146, 0.28099188208580017, -0.20812225341796875, -0.589364767074585, 0.3570154905319214, 0.8995998501777649, 0.8128620982170105, -0.8289949893951416, 0.7472935914993286, -0.020901594310998917, 1.2776648998260498, 0.547097384929657, -0.21768119931221008, 0.8254163265228271, 1.305478811264038, 0.681952953338623, 0.32416635751724243, 0.09699596464633942, -0.8182206749916077, -1.0060173273086548, 1.1581108570098877, 0.6241198182106018, -0.012246772646903992, 0.07580456137657166, 0.9751197099685669, -0.8254972100257874, 0.4129314422607422, -0.8222203850746155, 0.2449665665626526, -0.4710383117198944, -1.4480843544006348, -0.7184442281723022, 0.3109075725078583, 0.857659637928009, -0.019016208127141, -0.018513135612010956, 0.3227185606956482, 0.5193465352058411, -0.10876014828681946, 0.6901440024375916, 0.2240924835205078, 0.0976760983467102, 0.024510174989700317, 1.4511436223983765, 2.1531825065612793, 0.8723206520080566, 2.189802885055542, -0.8397218585014343, -2.1238956451416016, -0.7591326832771301, 0.3417559862136841, 0.9504238367080688, -0.898414671421051, -1.3202332258224487, 1.1794401407241821, -1.713134527206421, -0.11453984677791595, -1.5944277048110962, 0.005243699532002211, -0.4500654637813568, -1.0676203966140747, 0.12029562890529633, 0.7116149067878723, -1.534114122390747, 0.33231401443481445, 1.551151990890503, 1.1792972087860107, 2.0607478618621826, -0.24896414577960968, 0.6453759670257568, -0.9649234414100647, 1.058424472808838, -1.1832585334777832, -0.26940682530403137, 1.502357006072998, 1.6286154985427856, -1.7033824920654297, 0.3840654492378235, -2.0674421787261963, -1.3044694662094116, 0.3665982484817505, -0.5138669013977051, -0.06267909705638885, -0.9857260584831238, -0.5302576422691345, -0.10703036189079285, -0.5536493062973022, 1.964725136756897, -0.6997255086898804, -0.11232805252075195, 0.6141666769981384, -0.530501127243042, -0.27505168318748474, -1.5151910781860352, 1.6449676752090454, 0.5765569806098938, 3.078880786895752, -0.1279175877571106, -1.6064462661743164, -0.7563507556915283, -0.6465728878974915, 1.6871416568756104, -0.007972640916705132, 0.07736830413341522, 1.523124098777771, -1.0372461080551147, -0.8756182789802551, 0.9261775612831116, -1.3985675573349, -0.6506425738334656, -0.5923939347267151, 0.048521626740694046, 0.27045682072639465, -0.2389480471611023, -0.5767713189125061, 0.5009171962738037, 0.0993323028087616, -1.669405221939087, -0.6626237630844116, -0.7632591724395752, -1.627542495727539, 0.259722501039505, 0.6385924816131592, -0.06607979536056519, -0.651836097240448, -0.8604133725166321, 1.0062928199768066, 0.8356921076774597, 0.5298041701316833, -2.471644401550293, 0.5770721435546875, 0.3711458742618561, 0.08658979088068008, 1.1677820682525635, 0.3376026749610901, -0.4876062273979187, 0.39445215463638306, 0.2897748649120331, 0.8711246848106384, 1.2012139558792114, -2.0381245613098145, -1.8707919120788574, 0.01841837912797928, 0.3269273638725281, 0.8294056057929993, 0.23561455309391022, -1.478586196899414, 0.3384964168071747, 0.6327818632125854, 0.18186625838279724, -0.45936089754104614, 0.830335795879364, 0.07156623899936676, 0.47897982597351074, 1.0375399589538574, -0.2698749303817749, -0.4442932605743408, 0.7569886445999146, 0.8696058988571167, 0.4134348928928375, -0.7737892270088196, -1.7787202596664429, 0.6543656587600708, 0.27996861934661865, 2.445751905441284, 0.10939479619264603, 0.48100924491882324, -0.7904744744300842, 1.8820245265960693, 1.593186616897583, -0.9896048307418823, 0.05572491139173508, -1.6924645900726318, -0.1580079048871994, -1.0121043920516968, 0.8231706023216248, -1.2899608612060547, -0.3357847034931183, -0.25959134101867676, -0.245743066072464, -2.6968865394592285, -0.2309345304965973, 1.8489561080932617, -0.2688886821269989, 2.573359727859497, 0.013929291628301144, 0.198084756731987, -0.5736619830131531, -0.032753270119428635, -0.7128458023071289, -0.2549772262573242, -2.6509697437286377, 1.2460851669311523, -0.34268760681152344, -1.4075117111206055, -1.110575795173645, 0.9356784224510193, 0.7216720581054688, -0.5245202779769897, -1.2221277952194214, -0.24032539129257202, 0.7109599709510803, -0.36096617579460144, -1.0810632705688477, 0.5931012630462646, 0.32613301277160645, 0.9240270256996155, -0.5227230191230774, -0.7043436765670776, -1.5566291809082031, -1.2804293632507324, -2.0819294452667236, 0.21101747453212738, -0.5449190735816956, -0.037634704262018204, 0.11422764509916306, -0.36361220479011536, 0.3078017830848694, -1.348185420036316, 0.17086543142795563, 0.018433932214975357, -0.5397596955299377, 0.19584526121616364, 0.4082527458667755, 1.0291556119918823, 0.25602972507476807, 1.6654744148254395, -1.840874195098877, -0.6248185634613037, 0.5176590085029602, 0.18676675856113434, -0.6115177869796753, -0.9232332706451416, -0.9758732318878174, -0.9493988752365112, 0.4933179020881653, -0.8583577871322632, -0.5756378173828125, 2.560084581375122, 1.1492732763290405, -0.034988489001989365, -0.6269670724868774, 0.7077519297599792, 0.6324077248573303, 0.6218099594116211, -0.7271371483802795, -0.07443343102931976, 0.17770099639892578, 0.3801978528499603, 0.5597904324531555, 0.8339221477508545, -0.0701657086610794, 0.4296182096004486, 0.271578848361969, -1.0810565948486328, -0.039555154740810394, 0.0283183753490448, 0.9382838010787964, 0.09612077474594116, -0.4344962239265442, 0.22213377058506012, 1.255756139755249, -0.18687164783477783, 1.4469778537750244, 1.0318444967269897, 0.26705026626586914, 0.08228398859500885, -0.5172884464263916, 2.298898220062256, -0.44550251960754395, 1.5795722007751465, -0.4201868176460266, -1.3444504737854004, -1.0041407346725464, -0.034684889018535614, 1.550500512123108, 0.9843223690986633, -0.04946370795369148, -1.1227220296859741, 0.16645221412181854, 0.28916865587234497, -0.6377399563789368, -0.6231405138969421, -0.6373871564865112, 1.4205042123794556, -0.8323555588722229, -0.5522230267524719, 0.2029230147600174, 1.547505259513855, -0.6127886772155762, 0.2858653962612152, 0.6585443019866943, -0.176947221159935, -1.379319190979004, -0.03312697261571884, -0.5176113247871399, -0.016422895714640617, 2.52693247795105, -0.4894394278526306, 0.6818915009498596, 0.5839281678199768, 0.5906548500061035, 0.8204821944236755, 1.0666747093200684, 1.3821589946746826, -0.16711808741092682, 1.206508994102478, 0.36867329478263855, 0.02874482236802578, 0.19109906256198883, -1.359856128692627, 0.645484209060669, -0.3077782392501831, 0.24938368797302246, -0.09529553353786469, 0.6078965067863464, -0.4464336037635803, 1.073631763458252, 0.1329696774482727, 1.1950466632843018, -0.5589218735694885, 1.5655239820480347, -0.5551995038986206, -1.4480139017105103, 0.44001445174217224, -1.0212328433990479, 0.24380071461200714, -1.2803044319152832, 0.6502012014389038, 1.8466370105743408, -1.5255252122879028, -0.04558601602911949, -0.24123606085777283, -1.2515394687652588, -0.08215118199586868, 0.34272533655166626, 0.5697672963142395, 0.6427227854728699, 0.19652116298675537, -0.08973569422960281, -0.6763923168182373, -0.040157951414585114, 0.12810441851615906, 0.8406435251235962, -0.446183443069458, -0.45230633020401, -1.5839028358459473, 0.7858001589775085, -0.9669761657714844, -0.00360253918915987, 1.5033982992172241, -0.22096417844295502, 0.20838281512260437, -0.2471773773431778, -1.0016200542449951, 1.7976865768432617, -0.5711789727210999, 1.399355411529541, 0.0596303716301918, 0.6982232928276062, 0.8951932191848755, 1.0495526790618896, 1.3173940181732178, 2.075260877609253, 1.7359638214111328, -0.6514180302619934, -0.32034730911254883, 0.5228354930877686, -0.024354591965675354, 1.7275431156158447, 0.038003478199243546, 0.6135179996490479, -0.2573765516281128, 0.39922311902046204, -0.4831864535808563, -1.2257657051086426, 0.22445182502269745, 1.6839276552200317, 1.0786808729171753, -0.1726273000240326, 0.6523228883743286, 1.4765403270721436, -0.6255627274513245, 0.4940301775932312, -0.5503051280975342, -0.025554070249199867, 0.5436001420021057, 0.7716987133026123, 1.1487656831741333, -0.36244094371795654, -1.294681429862976, -0.4677011966705322, -0.04692057892680168, 0.07682189345359802, 0.9962668418884277, -1.5565818548202515, 1.5007598400115967, -0.3486521244049072, -0.32163503766059875, 0.3819354474544525, 1.0302834510803223, -0.2590421438217163, -0.0716012567281723, 0.727629542350769, 0.7326400876045227, 0.07863519340753555, 0.9163276553153992, 0.9980100989341736, 2.088374614715576, 1.1081827878952026, 0.6127738952636719, -0.6237689852714539, -0.19068239629268646, 0.8700677156448364, 0.15041890740394592, 2.4034156799316406, 0.20109905302524567, 1.1055259704589844, 0.6387302279472351, 1.6334315538406372, 0.30263546109199524, -0.06413834542036057, 0.32135722041130066, 1.6137112379074097, -0.2441566288471222, 1.1894705295562744, 0.5974000692367554, -0.29756349325180054, -0.15005558729171753, -0.17307183146476746, -1.0962750911712646, 1.5945050716400146, -0.9913923740386963, -0.6389617323875427, 1.6420152187347412, -0.6881503462791443, 0.9817655086517334, -2.4994056224823, -1.3895725011825562, 1.0225704908370972, 1.384272813796997, 0.5947543382644653, 0.7589285969734192, 0.10420110076665878, -0.7539646029472351, -1.692956805229187, -0.9885911345481873, 0.17989414930343628, 0.9183166027069092, -0.9896281361579895, -0.9824873805046082, 0.5500521063804626, 0.1053755059838295, -0.6013676524162292, -1.5929937362670898, -0.01963779889047146, 0.22391413152217865, 0.1252245008945465, 0.122297503054142, 0.04886006936430931, -0.7019916772842407, -1.4026052951812744, -1.2438632249832153, -0.7184072732925415, -0.2949496805667877, -0.6734906435012817, -0.835347056388855, -1.187598466873169, 0.6337769031524658, -0.18528765439987183, 0.04381147027015686, 0.9638791084289551, -0.5574917793273926, -0.08828204870223999, -0.803674578666687, 1.6777007579803467, 0.5689830780029297, -0.37912774085998535, -0.5816808938980103, -0.6492775678634644, 0.03408346697688103, 0.23378591239452362, 0.33088022470474243, -1.993735671043396, 1.2276690006256104, 1.672572374343872, -0.7050118446350098, 0.5583269000053406, 0.5387560129165649, 0.16936083137989044, -0.11122605949640274, -0.7355299592018127, 1.0913101434707642, -1.0923128128051758, 1.2130976915359497, 2.3193295001983643, 0.19204911589622498, 0.13354089856147766, 0.70810866355896, -0.7859894633293152, -1.8362053632736206, -1.1033666133880615, 0.3885785937309265, -0.006070911418646574, 0.08182936161756516, 0.9190765023231506, 0.2673923075199127, -0.6680904626846313, -0.17495976388454437, 0.5365098714828491, 0.028181158006191254, 1.0858955383300781, -0.02502695843577385, 1.3902075290679932, 0.010352619923651218, -1.0651136636734009, -0.609512209892273, 0.05664992332458496, -0.07049877941608429, 0.06447441130876541, -0.9393354058265686, -1.209694743156433, 1.5307508707046509, -0.2134428769350052, 0.14866745471954346, -0.6134026646614075, -0.388176828622818, 0.16057397425174713, 0.43693816661834717, 0.9495541453361511, -2.5539212226867676, -1.3668787479400635, -1.17011296749115, 0.5414627194404602, -0.5765104293823242, -0.5462444424629211, -1.4789115190505981, -0.015309848822653294, 0.11958036571741104, 1.1965714693069458, -0.02730453945696354, -0.44328224658966064, -0.17294606566429138, -1.3719011545181274, 1.4711703062057495, -0.6690727472305298, -0.6056155562400818, 0.6779258847236633, 2.1573081016540527, 0.7420953512191772, 1.3017412424087524, 0.03200414776802063, 0.4599721431732178, 2.0133872032165527, -0.365321546792984, -1.3471262454986572, 1.2004139423370361, -1.0469110012054443, 1.1857041120529175, 0.9960476756095886, -1.4218106269836426, -0.3226798474788666, 1.3281941413879395, 0.4558877646923065, -0.6435182094573975, 0.057013124227523804, 1.528468370437622, 0.538296103477478, -0.3649527430534363, -1.0448092222213745, 2.0562071800231934, -0.22125361859798431, 0.3074066936969757, 0.8604735136032104, -0.16712170839309692, -0.248691126704216, 0.49097496271133423, 0.6628812551498413, 0.1810215562582016, 0.3996879458427429, -0.5286166667938232, 1.2382830381393433, 0.3088330030441284, 0.240753173828125, 0.5655096173286438, 0.7533416152000427, 1.289752721786499, -0.13845598697662354, -0.20902325212955475, -0.5805234313011169, 1.6699044704437256, -1.19588303565979, 1.1966314315795898, -0.13401716947555542, -0.7848983407020569, -0.12094815075397491, -0.8874921798706055, 0.7223813533782959, 1.7269638776779175, 0.2246847301721573, -1.418365716934204, -1.5256563425064087, -0.551858127117157, -0.5642476081848145, 1.5421099662780762, 2.0615036487579346, 1.0240625143051147, 0.7783610820770264, -0.8181988596916199, -0.17018462717533112, 0.6963874697685242, 0.08840688318014145, -1.1416890621185303, -0.7168223261833191, -0.08268068730831146, 1.513449788093567, -1.0241868495941162, 1.2210336923599243, -0.22648410499095917, -0.37220677733421326, 1.8845863342285156, -0.4888494312763214, 0.14088624715805054, 0.32316771149635315, -0.46603649854660034, 0.5136001110076904, -1.1699168682098389, -0.027514904737472534, 1.6612591743469238, -0.6022120714187622, -0.9983854293823242, 0.7660802602767944, -0.1001540794968605, -0.8779826164245605, -0.22647888958454132, 0.9135846495628357, 1.492688536643982, -0.02136729471385479, -2.4242403507232666, 0.7368438839912415, 0.06699071824550629, -1.562545895576477, 0.7942646741867065, 0.29355794191360474, 0.4664299786090851, -1.6151318550109863, -0.7345916032791138, 0.20056919753551483, -1.0158218145370483, 0.4288164973258972, 0.17644155025482178, -0.8275902271270752, -1.072139024734497, 0.436559796333313, -2.3629324436187744, 0.6191542744636536, 0.02079370804131031, -0.1828964352607727, -0.6459642052650452, -0.4827435314655304, 0.12267031520605087, 0.32307928800582886, -0.2918112576007843, 0.8831097483634949, -0.18047991394996643, 0.29875290393829346, -0.42635759711265564, 0.11327040940523148, 0.9192289113998413, 1.8732978105545044, -0.44732189178466797, 0.06785550713539124, 0.48473280668258667, -0.6435498595237732, -0.33477532863616943, -0.9551225900650024, 2.0625250339508057, 0.024219457060098648, -0.07964139431715012, -1.0623935461044312, -0.18714426457881927, 1.1873860359191895, 0.5796331763267517, 0.19438430666923523, 0.3384838402271271, 0.16846098005771637, -1.0065425634384155, 1.317115068435669, -2.121854782104492, 1.2969945669174194, -0.9993022084236145, 0.8406200408935547, -0.23893210291862488, -0.39175814390182495, 1.6153756380081177, 1.217158555984497, 0.998310923576355, 0.4037300944328308, -0.9037018418312073, -1.1790398359298706, -0.4646173119544983, 0.2832878828048706, 0.5866938233375549, 0.871297299861908, 0.1263795793056488, -1.0003312826156616, 0.5139078497886658, 0.35063010454177856, 0.6347214579582214, 0.4098186492919922, 0.6725736856460571, -0.1326337456703186, 1.1070806980133057, -2.1726696491241455, -0.535328209400177, 0.33198031783103943, 0.7094517946243286, 0.5131058096885681, 0.7388104796409607, -0.9354386925697327, -0.5359634160995483, 0.3672873079776764, -0.22346597909927368, -0.019419606775045395, 0.799941897392273, -1.0536824464797974, 0.9503076076507568, -0.10444922000169754, 0.07005216181278229, -0.9273531436920166, 0.9751976132392883, 0.18958161771297455, -2.7032322883605957, -0.6540756821632385, 0.5112025737762451, -0.1374485194683075, 1.6122782230377197, 1.6399645805358887, 0.0754336416721344, -0.2460624873638153, 2.170942783355713, 0.123204804956913, 0.04360244795680046, -0.6226493716239929, -0.7424705624580383, -0.6117690801620483, -0.4293022155761719, -1.4063174724578857, -1.5047203302383423, 0.08243975043296814, -0.30920907855033875, 0.31917449831962585, -1.87517249584198, -0.16013279557228088, 0.21319663524627686, -0.3190539479255676, 1.0760071277618408, 1.9011906385421753, -0.7084067463874817, -1.8031396865844727, 0.2671266496181488, -1.5811907052993774, -0.4830610454082489, 1.6122206449508667, -0.26853063702583313, -2.151815414428711, -0.21113023161888123, -0.13125696778297424, -0.22485598921775818, 0.168654665350914, -1.0903990268707275, -0.09858813136816025, 0.7082144021987915, 0.9531366229057312, -0.61243736743927, -1.1437262296676636, -0.03322999179363251, -0.12853750586509705, -0.548724889755249, 0.1598563939332962, 1.2657078504562378, 0.96945720911026, -0.6462273001670837, -1.1936367750167847, 1.0005823373794556, 1.392465353012085, 0.2886936366558075, -0.13430874049663544, 0.7934887409210205, 1.3043402433395386, 1.0325461626052856, -1.0909664630889893, -1.105704665184021, -0.3080342710018158, 1.3103086948394775, -0.5621680021286011, -1.6834381818771362, 0.9648516178131104, -1.2343488931655884, -0.026405757293105125, -0.8096035122871399, -0.47383934259414673, 0.5462842583656311, -0.4363858997821808, -0.08836296200752258, -0.2587960660457611, 0.560919463634491, 0.6969544291496277, 1.1731246709823608, -0.10730214416980743, -1.570876121520996, -1.1939250230789185, 1.7325149774551392, 0.6380510926246643, -1.8010576963424683, -0.7877837419509888, -0.16814382374286652, -1.979299783706665, -1.0727430582046509, 2.074082612991333, -2.530287504196167, 1.1009596586227417, -1.2295496463775635, -0.4653104543685913, 2.644343376159668, 0.2537396550178528, 1.0857863426208496, 0.3080505430698395, 0.2691269516944885, 0.6215718984603882, 0.37710040807724, 1.1260502338409424, -1.7730324268341064, -0.905732274055481, -0.5956612825393677, -2.135674238204956, 1.0560568571090698, -0.05489400029182434, 0.5211224555969238, 0.5556044578552246, -0.19733841717243195, -0.1949082762002945, 0.5935567021369934, 0.655900776386261, -0.01870875619351864, 1.1241127252578735, -0.7728776931762695, -0.9716567397117615, -0.626717209815979, 0.9531250596046448, 0.725095808506012, -0.6414815783500671, 0.8004094958305359, 1.188913345336914, 0.3514482080936432, -0.026521259918808937, -0.16306696832180023, -0.6751782894134521, -0.7924199104309082, -1.893614649772644, 0.0012054754188284278, 0.6592456698417664, -1.6075599193572998, -0.7691423296928406, 0.8294748663902283, -0.26451483368873596, 0.6354180574417114, 0.05993263050913811, 1.3606586456298828, -3.019512176513672, 1.8005112409591675, 0.2096594125032425, 0.8071225881576538, 0.47635775804519653, 1.06020987033844, 0.39241597056388855, -0.02557431161403656, -0.6947131156921387, -0.5240883827209473, -0.8224199414253235, 0.00020706492068711668, -0.13826429843902588, 1.5230298042297363, -0.23413695394992828, 0.7674347162246704, 0.5425600409507751, -0.4657297432422638, -1.9132802486419678, -0.5622875094413757, 0.31424733996391296, -1.4123036861419678, -0.2257762998342514, -1.424748182296753, 0.11092258989810944, 0.3756980299949646, -0.2916937470436096, 1.852278232574463, -1.057710886001587, -1.2208436727523804, -1.959670066833496, 0.19686123728752136, 0.1713682860136032, -0.3011036813259125, -0.7198442220687866, 1.0571222305297852, -1.7630401849746704, -0.38508227467536926, 0.6116762757301331, 0.9312801361083984, -0.3092123866081238, 0.9755451083183289, -0.18565897643566132, -1.1962065696716309, 1.3562400341033936, 1.003532886505127, -0.6451197266578674, 1.538036584854126, 1.5646436214447021, 0.8219025135040283, -0.2990073561668396, -1.9875688552856445, 0.3571125566959381, -0.5182701945304871, -0.501757025718689, 0.3287511169910431, 0.513267457485199, 0.9686449766159058, -0.3276621401309967, -1.4635149240493774, 0.26105526089668274, -0.23458713293075562, -0.4206453263759613, -0.8022772669792175, 0.4040508568286896, 0.17457781732082367, -0.07444591820240021, -0.026513874530792236, 2.4632420539855957, 0.3015473484992981, -1.1686780452728271, 0.7519330382347107, -0.909387469291687, -1.4018510580062866, 2.190455675125122, -0.566297709941864, -0.5034756660461426, 0.06856297701597214, 0.4735924303531647, 1.5499343872070312, -0.3220615088939667, -1.2308642864227295, 1.307142734527588, 0.18463386595249176, 0.7818228602409363, -1.320456624031067, 0.2969846725463867, 0.34644821286201477, 0.23225370049476624, -0.7143514156341553, 0.4738329350948334, 0.6565536260604858, 0.7870845794677734, -0.8206823468208313, 0.4127809405326843, 1.896793007850647, -0.753736138343811, -0.8158102631568909, 0.34115198254585266, 0.8271832466125488, 1.4535341262817383, 2.7201690673828125, -0.8571575284004211, 0.48247241973876953, 0.7140005230903625, -0.07282891124486923, -1.5148472785949707, 0.8563988208770752, -1.2457387447357178, 0.3853173851966858, 0.15372510254383087, -1.142970323562622, 0.5607845187187195, 1.0538020133972168, -0.9378250241279602, 0.5137859582901001, 3.852731466293335, 1.1355656385421753, 0.6513912677764893, 0.758969247341156, -0.2368186116218567, 0.08187413960695267, -1.867265224456787, -1.6127158403396606, 1.0889506340026855, -1.077744722366333, 0.6795977354049683, 0.21645858883857727, -0.6516003608703613, 0.6339190006256104, 0.18645431101322174, 0.8524333238601685, -0.11473643779754639, 0.8657552003860474, -0.3345012366771698, -0.6533292531967163, 0.40498170256614685, 0.9178619384765625, 1.0324652194976807, -0.4842340648174286, -0.7076694369316101, 0.774634063243866, -0.05952535569667816, -1.0243875980377197, -1.2477831840515137, -1.4301413297653198, 0.13074058294296265, -1.4358621835708618, 0.010233061388134956, 0.4621034860610962, -0.6002168655395508, -0.38531360030174255, 0.6621306538581848, -1.237815499305725, -1.9520877599716187, 0.5883172154426575, -0.622699499130249, -0.49300092458724976, 0.8496021032333374, -0.6929095983505249, 0.30729952454566956, 0.6296288371086121, -0.5601810216903687, 0.6103702783584595, 0.11732738465070724, -0.5915713906288147, -0.20219264924526215, 1.0987768173217773, 0.8135096430778503, 0.0210038423538208, -0.31026676297187805, -0.13014306128025055, 0.5951570272445679, 2.0923871994018555, -1.214188575744629, 0.7916626930236816, 0.6283454895019531, -0.8972543478012085, -0.677161693572998, -0.14705738425254822, -0.32138583064079285, -0.5637245774269104, 0.2436872124671936, -0.5069431662559509, 0.23204994201660156, -1.407463788986206, -0.21344715356826782, 1.4753562211990356, -0.1599385291337967, -1.0025293827056885, -0.28865864872932434, -0.8272309303283691, 1.5327389240264893, 0.40171173214912415, -0.4012204706668854, 0.012592400424182415, -0.7730097770690918, 0.49799829721450806, 0.9592708349227905, -0.7673475742340088, 0.18334200978279114, -0.8082982897758484, -0.5993926525115967, -0.5257550477981567, 0.1503937840461731, 1.8761708736419678, -0.5769036412239075, 0.4919191598892212, 1.8314588069915771, -0.46917566657066345, 1.3538724184036255, 1.237816333770752, -0.5993750095367432, 0.0469805933535099, 0.6228499412536621, -0.14237947762012482, 0.514438807964325, -1.1246421337127686, 1.2776768207550049, -0.7484865188598633, 0.11567463725805283, 0.06751848012208939, 1.755340814590454, 0.9715709686279297, 1.3686316013336182, 0.6860514879226685, -1.7587394714355469, -2.0392322540283203, 0.7175422310829163, 0.07409477978944778, -1.3801014423370361, -0.055547699332237244, -0.032694749534130096, -0.0891200378537178, 0.6696725487709045, -0.9398797750473022, -1.0592135190963745, 0.9551423192024231, 0.5040464997291565, -0.7928728461265564, -1.0352423191070557, -1.1978778839111328, 0.0352635532617569, 0.21397991478443146, -0.22096960246562958, 0.7575076818466187, -0.5758182406425476, -2.3019211292266846, 1.3668742179870605, -0.24903604388237, 0.31125015020370483, 1.1195749044418335, -0.9555404186248779, 0.2034636288881302, -1.4222537279129028, -1.0815479755401611, 0.8816397786140442, 1.479944109916687, -0.8612841963768005, 0.5389100313186646, -0.19033867120742798, -1.382799744606018, 1.909416675567627, 0.5629692077636719, -0.4871253967285156, -0.8639907836914062, -0.830950140953064, -0.05023811012506485, -0.9075636863708496, 0.7553912401199341, -0.9775552153587341, 0.7513871192932129, 0.54336017370224, 0.5705986618995667, -1.8048820495605469, 0.04808494821190834, -0.9043166041374207, -1.661520004272461, -1.2110161781311035, 0.04739867150783539, -0.38455554842948914, -0.5768918991088867, -1.129706859588623, 1.4415686130523682, -0.7968952655792236, -0.20304538309574127, -0.6039851903915405, -0.15567722916603088, 0.25442084670066833, -0.41187697649002075, -0.43255817890167236, -0.4209844768047333, 2.0754008293151855, -0.32602351903915405, -0.40807536244392395, -1.0080863237380981, -0.35151347517967224, 1.676437258720398, -0.21910053491592407, -2.2111353874206543, 0.7708652019500732, 1.143754005432129, -0.41528791189193726, 2.270692825317383, 0.24822059273719788, -0.8498443961143494, -0.8560838103294373, -0.4776574373245239, 0.33366209268569946, -0.5100163817405701, -0.9787636995315552, 0.377300500869751, -0.9221653342247009, 1.3556379079818726, 1.876795768737793, -1.244654655456543, 1.4960442781448364, -0.05558466911315918, -1.1254889965057373, 0.12922118604183197, 0.7257665991783142, 0.22388403117656708, 0.47146835923194885, 1.345420002937317, -0.5112156867980957, -0.1257869154214859, 1.094191551208496, 1.529550313949585, -0.4268810749053955, -1.6548566818237305, 0.07331796735525131, -1.2950787544250488, 1.669021487236023, -1.5031429529190063, -0.27272355556488037, -0.05429486557841301, 0.6962063908576965, 1.1265649795532227, -1.1065258979797363, 0.05921843275427818, -0.02412508800625801, -0.14436040818691254, -0.5468589663505554, -0.5434247851371765, 0.10643022507429123, 1.503993034362793, 1.091506838798523, -2.073390245437622, -0.3714408576488495, -0.7778167128562927, 1.7522704601287842, 1.2715550661087036, -1.1290518045425415, 0.4893745481967926, 0.7129984498023987, -0.3748207986354828, 0.4442633092403412, 1.1593297719955444, 0.6159356236457825, -0.30954644083976746, -1.2511135339736938, -0.1849021315574646, 1.0490092039108276, -1.408461332321167, 0.6060099601745605, 1.7547942399978638, 1.6964563131332397, -0.0967131108045578, 0.39913612604141235, 1.1033018827438354, 0.1503017544746399, -0.056945621967315674, -1.7101683616638184, 0.7432640790939331, -0.18398334085941315, 0.3475817143917084, -0.7783046960830688, -0.9783727526664734, -1.7025835514068604, 0.47259747982025146, 0.9826909899711609, 1.014370083808899, -1.2795770168304443, 0.02609105035662651, -0.72574383020401, -0.7553829550743103, -1.4066611528396606, -1.3516845703125, 1.0536417961120605, 2.6323821544647217, 0.18483611941337585, 0.7003098726272583, 0.12200981378555298, -0.0960598960518837, -0.7031764388084412, 1.7708005905151367, 1.812448501586914, -0.5624668002128601, 0.9725544452667236, -1.5702247619628906, -0.2475186288356781, 0.6206721067428589, -1.3353443145751953, 0.6105857491493225, 1.0807807445526123, 0.45918008685112, -1.6609609127044678, 0.20768769085407257, -1.276748538017273, 1.0531527996063232, 0.6815006732940674, 0.02975613996386528, -0.5160447359085083, -0.46227529644966125, -0.309172123670578, -0.478748619556427, -0.8946073055267334, -0.43973106145858765, 0.1965547800064087, -1.485560417175293, 0.8896307945251465, 1.065480351448059, 1.409347414970398, -0.3628385663032532, 1.453384518623352, -0.522860050201416, -0.2817845940589905, -0.9186519384384155, -0.767797589302063, 0.23421473801136017, -0.9983540177345276, -0.21398884057998657, 0.6748194694519043, 0.3824097514152527, 0.4924512505531311, 2.4553000926971436, -0.5309969782829285, -0.5554771423339844, 1.189016580581665, -0.5707463026046753, 0.47141554951667786, 0.6329318284988403, -1.5157440900802612, 1.7958776950836182, -0.3877015709877014, 0.33445680141448975, 2.010204553604126, -0.7982972264289856, -0.7309300303459167, 1.794557809829712, 0.22378794848918915, 1.188393235206604, -0.5308687686920166, 1.0441608428955078, 1.8467073440551758, -0.35929208993911743, 1.10870361328125, 0.5072740316390991, 1.1692955493927002, 0.6487098932266235, 0.14671368896961212, -0.816935658454895, -0.39333879947662354, 1.278451919555664, 0.04643654823303223, 0.7462535500526428, 2.163254737854004, 0.2191503345966339, 1.5774532556533813, 0.2790215313434601, 0.18660911917686462, 0.19408999383449554, -1.026515245437622, -0.7001208066940308, -1.5231869220733643, 0.37721186876296997, -0.06575026363134384, 1.8811570405960083, -2.198806047439575, -0.5020542144775391, 0.7083564400672913, -0.5640786290168762, 0.8724573254585266, -0.09917586296796799, -1.070084810256958, -0.691908061504364, 0.2433394491672516, 0.3520554006099701, 1.443764567375183, 1.1172958612442017, 0.4567532241344452, 0.4477085471153259, 1.3291525840759277, 0.709003746509552, 1.4401172399520874, 1.8009403944015503, -1.4307750463485718, -0.6810516715049744, -0.6526239514350891, -1.889540672302246, -2.423879384994507, 0.7604146599769592, 0.42545756697654724, -0.04771135747432709, -1.1583646535873413, 0.8773623108863831, 0.02688583917915821, -2.0417349338531494, -0.6819842457771301, -0.2811003029346466, 0.640842854976654, 0.5725827813148499, 0.9246336817741394, -0.6469367742538452, 0.3934853971004486, 0.6351718306541443, -0.5352352261543274, 0.1975996047258377, -0.6891878247261047, 0.19791078567504883, -0.48388582468032837, 0.4241659343242645, -0.5737000107765198, 2.14227032661438, 0.4363236725330353, 0.12003132700920105, -1.0227925777435303, -1.6685841083526611, 0.6471959352493286, 1.5739867687225342, -1.4643748998641968, 1.0470982789993286, -0.45888426899909973, -0.038508471101522446, 0.8836599588394165, -1.5763921737670898, 1.3800913095474243, 0.3958035409450531, 0.26067376136779785, -0.6716233491897583, 1.1727290153503418, -0.37061432003974915, -2.8485426902770996, -1.7397137880325317, -1.1196699142456055, 1.1608268022537231, 0.346503883600235, 0.4770408272743225, -1.2829922437667847, -0.49375659227371216, -0.4281151592731476, 0.8502217531204224, -0.3492577075958252, 2.0767478942871094, 0.430041640996933, 0.2387891560792923, -0.1963498443365097, -0.0372222363948822, 0.05194588750600815, -0.0807165801525116, -1.9982006549835205, 0.34648847579956055, -2.8962554931640625, -0.13958962261676788, -1.0399059057235718, -1.0534155368804932, 1.9140313863754272, 0.2174328714609146, 0.49568188190460205, 0.36496099829673767, -0.057618796825408936, 1.050654411315918, 1.18703031539917, -1.1430048942565918, -1.1463453769683838, -0.7542758584022522, 0.328762412071228, 0.4219207465648651, 0.4535343050956726, 0.964087188243866, -1.2276078462600708, 0.7011727690696716, 1.3757067918777466, 0.125576451420784, 0.015579047612845898, -1.4400508403778076, -0.8469613194465637, -2.1533901691436768, -1.323089838027954, 1.009817123413086, 2.2524359226226807, -0.32483139634132385, 2.290942668914795, -1.645398736000061, 2.4397523403167725, 0.563909113407135, 0.8534155488014221, 0.2811914384365082, -0.06259312480688095, -0.28067508339881897, -0.09833962470293045, -1.1035892963409424, 1.3920023441314697, -1.5705006122589111, 0.9407711625099182, -0.22463315725326538, -0.9683444499969482, -1.334025502204895, 0.31978192925453186, 0.4404747486114502, 0.5524899363517761, 1.3641403913497925, -0.42940554022789, 0.5432980060577393, 0.04059169068932533, -0.6629009246826172, 1.7495766878128052, -0.6929051876068115, 0.8949244022369385, 1.2477420568466187, 0.2789941728115082, 2.1451492309570312, 0.3098207116127014, 0.41379910707473755, -0.12982070446014404, -0.14700199663639069, 2.2105228900909424, -1.3698029518127441, 2.57970929145813, 1.6391167640686035, -0.5535882711410522, 1.6283966302871704, -0.2035803645849228, -1.014756679534912, -1.2239402532577515, -0.7699732184410095, -1.5558956861495972, 0.8335289359092712, 0.3740565776824951, -1.2096409797668457, 0.41901901364326477, -0.05576907843351364, 0.07600539177656174, -0.9206736087799072, -1.4137145280838013, -0.9039076566696167, 1.2360931634902954, 0.6091381311416626, -0.3164084553718567, 0.14171691238880157, 0.393317848443985, -0.3091164529323578, -0.15246984362602234, 0.9567022919654846, -1.3312329053878784, 0.5079913139343262, -2.152890682220459, 2.49299955368042, 0.8384907841682434, -0.09888965636491776, -0.2902745306491852, 0.32169780135154724, 0.9920423626899719, -0.7557451725006104, -0.8984679579734802, -0.009118996560573578, 0.4746982455253601, 0.8177663087844849, 0.5578103065490723, -1.3118362426757812, -0.3052247166633606, -0.18697130680084229, 0.5296927690505981, 0.48650163412094116, -1.9754666090011597, -0.144087553024292, 0.5999287366867065, 1.2187618017196655, 1.490726113319397, -0.3370859622955322, -0.3024697005748749, 0.1704162210226059, 0.0030460201669484377, 1.1906462907791138, -1.4848979711532593, 0.9343199133872986, -0.22476540505886078, -1.8019804954528809, 0.7591551542282104, -2.5910422801971436, 0.3918040096759796, 0.18335992097854614, 0.5792915225028992, -0.9730689525604248, -0.15852957963943481, -0.9332679510116577, -0.8848026990890503, 1.711708426475525, -1.6135613918304443, -0.2093236744403839, 1.0399047136306763, 1.826009750366211, -0.4879114031791687, -0.6057149171829224, 0.29929259419441223, 1.5615111589431763, -0.7534178495407104, -0.6777153611183167, 0.13653533160686493, 0.18468031287193298, -0.9716140627861023, -0.6568942666053772, 0.5366527438163757, 0.7189533114433289, -0.7567951083183289, 1.5013335943222046, -0.25083300471305847, 0.5562300086021423, 2.1650023460388184, 0.9278401136398315, 0.2685922682285309, 0.5078357458114624, 1.072507381439209, -0.8392096757888794, -1.966356635093689, -1.1032084226608276, -0.2768132984638214, 0.8157371878623962, -0.5830774307250977, 0.2825799584388733, 1.6073455810546875, 0.7348777651786804, 1.173473834991455, -1.2968319654464722, -0.6513568758964539, 0.5863640308380127, 0.02127157710492611, 1.7022149562835693, 2.6016831398010254, -1.7607628107070923, 0.38115838170051575, 0.6731813549995422, -1.2242982387542725, -0.8505204319953918, 0.5885784029960632, 0.3946715295314789, 0.4446026682853699, -0.609782874584198, 0.01468819472938776, 0.6482804417610168, 0.41953244805336, -0.4374583065509796, -0.37283316254615784, -0.3996361792087555, 0.9325908422470093, -1.7608088254928589, 1.2625840902328491, 2.558199167251587, 0.18455129861831665, 2.0060927867889404, 1.2083662748336792, 0.5925269722938538, -0.5511857271194458, -0.003374457359313965, -0.45322805643081665, 0.9553052186965942, 1.4775301218032837, -0.1936594545841217, -1.8665366172790527, -0.12174750864505768, 0.6308116912841797, 1.8540925979614258, 0.5820977091789246, -0.959439218044281, 1.088748574256897, 1.5432435274124146, -1.1196174621582031, -1.7684394121170044, -0.14760258793830872, -1.5947030782699585, -0.5327008366584778, -2.8722622394561768, 1.7722516059875488, -0.45709624886512756, 0.4687742590904236, 0.3017919063568115, 1.226933240890503, -0.20367375016212463, -0.8268803358078003, 0.3673655092716217, -0.8031789660453796, -0.27112358808517456, -0.7472116947174072, 0.884045422077179, -0.2813275456428528, 0.5159392356872559, -0.5290526747703552, -1.2542893886566162, -1.3565818071365356, -0.03564148396253586, 1.1647393703460693, -0.8102524280548096, 1.148637294769287, 0.06167985126376152, 0.6931055784225464, -0.3670278489589691, 0.08614388108253479, -2.9213504791259766, 0.9039348363876343, -1.0097306966781616, 2.057495355606079, -0.7280029654502869, 1.3748763799667358, -0.7991920113563538, -0.9533286094665527, 1.6246784925460815, -0.2523534893989563, -1.5631908178329468, -0.07783719897270203, 3.1931076049804688, -0.7517910599708557, 1.148445725440979, -1.4382779598236084, -0.6681441068649292, 1.0800480842590332, 1.2810163497924805, 0.8527736663818359, -0.8463566303253174, 1.0299608707427979, -0.4036484658718109, 0.4235990643501282, -1.0675328969955444, 1.4122205972671509, 0.4523718059062958, 0.42830708622932434, 0.985729992389679, 2.5895636081695557, 0.32579630613327026, -0.35316628217697144, -0.2954014241695404, 1.317597508430481, 1.139878511428833, -0.11806852370500565, -0.6078220009803772, -0.022868061438202858, -0.5047749280929565, 0.546733558177948, -0.3668244183063507, -0.9224101901054382, -0.32232046127319336, 1.5213160514831543, -0.4316202998161316, -0.024195605888962746, 0.324359267950058, 1.187679409980774, 0.20115965604782104, -0.25890496373176575, -0.4749036431312561, -1.3459796905517578, 1.9389289617538452, -0.67774498462677, 0.17958177626132965, 0.4891871213912964, 1.1096998453140259, -0.2412576526403427, 1.8998819589614868, -0.9745293259620667, -0.12038116157054901, 0.8474217057228088, -0.09053327888250351, 0.1904996782541275, -0.435486376285553, -0.2595466673374176, 0.6153674721717834, 1.085982084274292, 0.8080577850341797, 1.8381836414337158, -0.34931680560112, -0.3031797707080841, -1.6163105964660645, -1.067802906036377, 1.7106133699417114, -0.16882172226905823, 1.1618783473968506, 0.23836898803710938, 0.5010941624641418, 1.001046061515808, 0.6778753399848938, -1.8306329250335693, 1.373658537864685, 0.9528745412826538, 1.3149144649505615, 0.7421274781227112, -1.6019657850265503, -0.843246579170227, -0.17588581144809723, 0.5514853596687317, 1.6950510740280151, 0.1946074515581131, -1.320022463798523, -0.037036798894405365, -0.6924209594726562, -0.08310557156801224, 0.7600559592247009, -1.4575514793395996, -0.7521563768386841, 1.340450406074524, 0.1150260791182518, 0.6713400483131409, -0.7519693374633789, -0.7960258722305298, 0.021311648190021515, -0.06066081300377846, -1.5137144327163696, -1.584135890007019, 0.5087250471115112, 0.8950383067131042, 0.14679300785064697, 0.8968393206596375, -0.8911921977996826, -0.7191533446311951, -0.9871795177459717, 0.07685188204050064, -0.6500025987625122, 0.44194063544273376, 1.4109324216842651, 0.018849622458219528, 0.23321613669395447, 0.2871241569519043, 0.3615035116672516, 0.10855970531702042, -0.20811685919761658, -1.8818490505218506, 0.0928449034690857, -1.0276751518249512, -0.8661748766899109, 0.42719435691833496, 1.7753108739852905, 0.919154167175293, -0.6706202030181885, -0.2500465214252472, 0.26032182574272156, 0.8108083009719849, -1.7485319375991821, -1.662492036819458, 1.1267051696777344, -0.4108142852783203, -0.2149210274219513, 0.7796605229377747, 1.395683765411377, -0.20922186970710754, -0.8058700561523438, 1.615582823753357, -0.59246426820755, 0.28016117215156555, 0.42406103014945984, -0.014452271163463593, 0.006422269623726606, -0.10960980504751205, -0.37001103162765503, 1.598647117614746, -0.29548031091690063, -0.3338194787502289, 0.3696421980857849, 0.44771692156791687, -1.1267675161361694, 0.1429430991411209, 2.231300115585327, 0.5008444786071777, -0.5426738262176514, -0.6208475828170776, -0.47209057211875916, 0.7479102611541748, 0.23924686014652252, -0.9193845987319946, -0.2860042154788971, 1.9583474397659302, 0.4966992139816284, -0.10594835132360458, -1.5029703378677368, 0.46769317984580994, 0.09798315167427063, -0.3916485607624054, -0.34319227933883667, -0.36961033940315247, -0.029262812808156013, -0.05139372497797012, 1.2619215250015259, -0.6537663340568542, 1.3744380474090576, 3.1377484798431396, 0.22323891520500183, 0.28555408120155334, 0.6452155709266663, 0.08958068490028381, -0.15127328038215637, 1.1337701082229614, -2.9403886795043945, 0.19473619759082794, -0.38851845264434814, 0.9475264549255371, 0.40705227851867676, -1.3796181678771973, 0.8623934984207153, 0.5130854249000549, 0.51617830991745, 0.4319225549697876, 0.7542913556098938, 0.7083038687705994, 1.0701502561569214, -0.881874680519104, -0.7449026703834534, -0.1445186734199524, -0.30796152353286743, 0.21329370141029358, -0.8170886039733887, 0.9375701546669006, -0.762724757194519, -0.9399030804634094, -0.19382613897323608, -2.0038623809814453, -1.2392584085464478, 0.2773769497871399, -1.308820366859436, 0.1838495433330536, 1.2389463186264038, -0.49163618683815, -0.9735462069511414, 0.5054701566696167, 2.759660005569458, -0.5089636445045471, -1.769075870513916, -0.4092824459075928, 0.1523548662662506, 1.1210306882858276, -0.009300321340560913}; +static float buffer_dram[2048] __attribute__((section(".pdcp_src"))) = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}; +static float twiddle_dram[8064] __attribute__((section(".pdcp_src"))) = {1.0, 0.999981164932251, 0.9999247193336487, 0.9998306035995483, 0.99969881772995, 0.9995294213294983, 0.9993223547935486, 0.9990777373313904, 0.9987954497337341, 0.9984755516052246, 0.9981181025505066, 0.9977230429649353, 0.9972904324531555, 0.9968202710151672, 0.9963126182556152, 0.9957674145698547, 0.9951847195625305, 0.9945645928382874, 0.9939069747924805, 0.9932119250297546, 0.9924795627593994, 0.9917097687721252, 0.9909026622772217, 0.990058183670044, 0.9891765117645264, 0.9882575869560242, 0.9873014092445374, 0.9863080978393555, 0.9852776527404785, 0.9842100739479065, 0.983105480670929, 0.9819638729095459, 0.9807852506637573, 0.9795697927474976, 0.978317379951477, 0.9770281314849854, 0.9757021069526672, 0.9743393659591675, 0.9729399681091309, 0.9715039134025574, 0.9700312614440918, 0.9685220718383789, 0.9669764637947083, 0.9653944373130798, 0.9637760519981384, 0.9621214270591736, 0.9604305028915405, 0.9587034583091736, 0.9569403529167175, 0.9551411867141724, 0.9533060193061829, 0.9514350295066833, 0.949528157711029, 0.9475855827331543, 0.9456073045730591, 0.943593442440033, 0.9415440559387207, 0.9394592046737671, 0.9373390078544617, 0.9351835250854492, 0.9329928159713745, 0.9307669401168823, 0.928506076335907, 0.9262102246284485, 0.9238795042037964, 0.9215140342712402, 0.9191138744354248, 0.9166790843009949, 0.91420978307724, 0.9117060303688049, 0.909168004989624, 0.9065957069396973, 0.903989315032959, 0.9013488292694092, 0.898674488067627, 0.8959662318229675, 0.89322429895401, 0.8904487490653992, 0.8876396417617798, 0.8847970962524414, 0.8819212913513184, 0.8790122270584106, 0.8760700821876526, 0.8730949759483337, 0.8700869679450989, 0.8670462369918823, 0.8639728426933289, 0.8608669638633728, 0.8577286005020142, 0.854557991027832, 0.8513551950454712, 0.8481203317642212, 0.8448535799980164, 0.8415549993515015, 0.8382247090339661, 0.8348628878593445, 0.8314695954322815, 0.8280450701713562, 0.8245893120765686, 0.821102499961853, 0.8175848126411438, 0.8140363097190857, 0.810457170009613, 0.8068475723266602, 0.803207516670227, 0.7995372414588928, 0.7958369255065918, 0.792106568813324, 0.7883464097976685, 0.7845565676689148, 0.7807372212409973, 0.7768884897232056, 0.7730104327201843, 0.7691033482551575, 0.765167236328125, 0.7612023949623108, 0.7572088241577148, 0.753186821937561, 0.7491363883018494, 0.7450577616691589, 0.7409511208534241, 0.7368165850639343, 0.7326542735099792, 0.7284643650054932, 0.7242470979690552, 0.7200025320053101, 0.7157308459281921, 0.7114322185516357, 0.7071067690849304, 0.7027547359466553, 0.6983762383460999, 0.6939714550971985, 0.6895405650138855, 0.6850836873054504, 0.6806010007858276, 0.6760926842689514, 0.6715589761734009, 0.6669999361038208, 0.6624158024787903, 0.6578066945075989, 0.6531728506088257, 0.6485143899917603, 0.6438315510749817, 0.6391244530677795, 0.6343932747840881, 0.6296382546424866, 0.6248595118522644, 0.620057225227356, 0.6152315735816956, 0.6103827953338623, 0.6055110692977905, 0.600616455078125, 0.5956993103027344, 0.5907596945762634, 0.5857978463172913, 0.5808139443397522, 0.5758081674575806, 0.5707807540893555, 0.5657318234443665, 0.5606615543365479, 0.5555702447891235, 0.5504579544067383, 0.545324981212616, 0.5401714444160461, 0.5349976420402527, 0.5298036336898804, 0.5245896577835083, 0.5193560123443604, 0.5141027569770813, 0.5088301301002502, 0.5035383701324463, 0.49822765588760376, 0.49289819598197937, 0.48755016922950745, 0.4821837842464447, 0.47679921984672546, 0.4713967442512512, 0.4659765064716339, 0.46053871512413025, 0.45508357882499695, 0.4496113359928131, 0.4441221356391907, 0.43861624598503113, 0.4330938160419464, 0.4275550842285156, 0.4220002591609955, 0.4164295494556427, 0.410843163728714, 0.40524131059646606, 0.39962419867515564, 0.39399203658103943, 0.38834503293037415, 0.3826834261417389, 0.3770074248313904, 0.37131720781326294, 0.3656129837036133, 0.3598950505256653, 0.3541635274887085, 0.3484186828136444, 0.34266072511672974, 0.3368898630142212, 0.3311063051223755, 0.32531028985977173, 0.3195020258426666, 0.3136817514896393, 0.307849645614624, 0.30200594663619995, 0.29615089297294617, 0.290284663438797, 0.28440752625465393, 0.2785196900367737, 0.27262136340141296, 0.2667127549648285, 0.26079410314559937, 0.2548656463623047, 0.24892760813236237, 0.24298018217086792, 0.23702360689640045, 0.23105810582637787, 0.22508391737937927, 0.21910123527050018, 0.2131103128194809, 0.20711137354373932, 0.20110464096069336, 0.19509032368659973, 0.18906866014003754, 0.18303988873958588, 0.17700421810150146, 0.1709618866443634, 0.1649131178855896, 0.15885815024375916, 0.15279719233512878, 0.1467304676771164, 0.14065824449062347, 0.13458070158958435, 0.1284981071949005, 0.12241067737340927, 0.11631862819194794, 0.11022220551967621, 0.104121632874012, 0.0980171412229538, 0.09190895408391953, 0.08579730987548828, 0.07968243956565857, 0.0735645666718483, 0.06744392216205597, 0.06132073700428009, 0.055195245891809464, 0.049067676067352295, 0.04293825849890709, 0.03680722415447235, 0.030674804002046585, 0.024541229009628296, 0.018406730145215988, 0.012271538376808167, 0.006135884672403336, -1.8369701465288538e-16, -0.006135884672403336, -0.012271538376808167, -0.018406730145215988, -0.024541229009628296, -0.030674804002046585, -0.03680722415447235, -0.04293825849890709, -0.049067676067352295, -0.055195245891809464, -0.06132073700428009, -0.06744392216205597, -0.0735645666718483, -0.07968243956565857, -0.08579730987548828, -0.09190895408391953, -0.0980171412229538, -0.104121632874012, -0.11022220551967621, -0.11631862819194794, -0.12241067737340927, -0.1284981071949005, -0.13458070158958435, -0.14065824449062347, -0.1467304676771164, -0.15279719233512878, -0.15885815024375916, -0.1649131178855896, -0.1709618866443634, -0.17700421810150146, -0.18303988873958588, -0.18906866014003754, -0.19509032368659973, -0.20110464096069336, -0.20711137354373932, -0.2131103128194809, -0.21910123527050018, -0.22508391737937927, -0.23105810582637787, -0.23702360689640045, -0.24298018217086792, -0.24892760813236237, -0.2548656463623047, -0.26079410314559937, -0.2667127549648285, -0.27262136340141296, -0.2785196900367737, -0.28440752625465393, -0.290284663438797, -0.29615089297294617, -0.30200594663619995, -0.307849645614624, -0.3136817514896393, -0.3195020258426666, -0.32531028985977173, -0.3311063051223755, -0.3368898630142212, -0.34266072511672974, -0.3484186828136444, -0.3541635274887085, -0.3598950505256653, -0.3656129837036133, -0.37131720781326294, -0.3770074248313904, -0.3826834261417389, -0.38834503293037415, -0.39399203658103943, -0.39962419867515564, -0.40524131059646606, -0.410843163728714, -0.4164295494556427, -0.4220002591609955, -0.4275550842285156, -0.4330938160419464, -0.43861624598503113, -0.4441221356391907, -0.4496113359928131, -0.45508357882499695, -0.46053871512413025, -0.4659765064716339, -0.4713967442512512, -0.47679921984672546, -0.4821837842464447, -0.48755016922950745, -0.49289819598197937, -0.49822765588760376, -0.5035383701324463, -0.5088301301002502, -0.5141027569770813, -0.5193560123443604, -0.5245896577835083, -0.5298036336898804, -0.5349976420402527, -0.5401714444160461, -0.545324981212616, -0.5504579544067383, -0.5555702447891235, -0.5606615543365479, -0.5657318234443665, -0.5707807540893555, -0.5758081674575806, -0.5808139443397522, -0.5857978463172913, -0.5907596945762634, -0.5956993103027344, -0.600616455078125, -0.6055110692977905, -0.6103827953338623, -0.6152315735816956, -0.620057225227356, -0.6248595118522644, -0.6296382546424866, -0.6343932747840881, -0.6391244530677795, -0.6438315510749817, -0.6485143899917603, -0.6531728506088257, -0.6578066945075989, -0.6624158024787903, -0.6669999361038208, -0.6715589761734009, -0.6760926842689514, -0.6806010007858276, -0.6850836873054504, -0.6895405650138855, -0.6939714550971985, -0.6983762383460999, -0.7027547359466553, -0.7071067690849304, -0.7114322185516357, -0.7157308459281921, -0.7200025320053101, -0.7242470979690552, -0.7284643650054932, -0.7326542735099792, -0.7368165850639343, -0.7409511208534241, -0.7450577616691589, -0.7491363883018494, -0.753186821937561, -0.7572088241577148, -0.7612023949623108, -0.765167236328125, -0.7691033482551575, -0.7730104327201843, -0.7768884897232056, -0.7807372212409973, -0.7845565676689148, -0.7883464097976685, -0.792106568813324, -0.7958369255065918, -0.7995372414588928, -0.803207516670227, -0.8068475723266602, -0.810457170009613, -0.8140363097190857, -0.8175848126411438, -0.821102499961853, -0.8245893120765686, -0.8280450701713562, -0.8314695954322815, -0.8348628878593445, -0.8382247090339661, -0.8415549993515015, -0.8448535799980164, -0.8481203317642212, -0.8513551950454712, -0.854557991027832, -0.8577286005020142, -0.8608669638633728, -0.8639728426933289, -0.8670462369918823, -0.8700869679450989, -0.8730949759483337, -0.8760700821876526, -0.8790122270584106, -0.8819212913513184, -0.8847970962524414, -0.8876396417617798, -0.8904487490653992, -0.89322429895401, -0.8959662318229675, -0.898674488067627, -0.9013488292694092, -0.903989315032959, -0.9065957069396973, -0.909168004989624, -0.9117060303688049, -0.91420978307724, -0.9166790843009949, -0.9191138744354248, -0.9215140342712402, -0.9238795042037964, -0.9262102246284485, -0.928506076335907, -0.9307669401168823, -0.9329928159713745, -0.9351835250854492, -0.9373390078544617, -0.9394592046737671, -0.9415440559387207, -0.943593442440033, -0.9456073045730591, -0.9475855827331543, -0.949528157711029, -0.9514350295066833, -0.9533060193061829, -0.9551411867141724, -0.9569403529167175, -0.9587034583091736, -0.9604305028915405, -0.9621214270591736, -0.9637760519981384, -0.9653944373130798, -0.9669764637947083, -0.9685220718383789, -0.9700312614440918, -0.9715039134025574, -0.9729399681091309, -0.9743393659591675, -0.9757021069526672, -0.9770281314849854, -0.978317379951477, -0.9795697927474976, -0.9807852506637573, -0.9819638729095459, -0.983105480670929, -0.9842100739479065, -0.9852776527404785, -0.9863080978393555, -0.9873014092445374, -0.9882575869560242, -0.9891765117645264, -0.990058183670044, -0.9909026622772217, -0.9917097687721252, -0.9924795627593994, -0.9932119250297546, -0.9939069747924805, -0.9945645928382874, -0.9951847195625305, -0.9957674145698547, -0.9963126182556152, -0.9968202710151672, -0.9972904324531555, -0.9977230429649353, -0.9981181025505066, -0.9984755516052246, -0.9987954497337341, -0.9990777373313904, -0.9993223547935486, -0.9995294213294983, -0.99969881772995, -0.9998306035995483, -0.9999247193336487, -0.999981164932251, 1.0, 0.9999247193336487, 0.99969881772995, 0.9993223547935486, 0.9987954497337341, 0.9981181025505066, 0.9972904324531555, 0.9963126182556152, 0.9951847195625305, 0.9939069747924805, 0.9924795627593994, 0.9909026622772217, 0.9891765117645264, 0.9873014092445374, 0.9852776527404785, 0.983105480670929, 0.9807852506637573, 0.978317379951477, 0.9757021069526672, 0.9729399681091309, 0.9700312614440918, 0.9669764637947083, 0.9637760519981384, 0.9604305028915405, 0.9569403529167175, 0.9533060193061829, 0.949528157711029, 0.9456073045730591, 0.9415440559387207, 0.9373390078544617, 0.9329928159713745, 0.928506076335907, 0.9238795042037964, 0.9191138744354248, 0.91420978307724, 0.909168004989624, 0.903989315032959, 0.898674488067627, 0.89322429895401, 0.8876396417617798, 0.8819212913513184, 0.8760700821876526, 0.8700869679450989, 0.8639728426933289, 0.8577286005020142, 0.8513551950454712, 0.8448535799980164, 0.8382247090339661, 0.8314695954322815, 0.8245893120765686, 0.8175848126411438, 0.810457170009613, 0.803207516670227, 0.7958369255065918, 0.7883464097976685, 0.7807372212409973, 0.7730104327201843, 0.765167236328125, 0.7572088241577148, 0.7491363883018494, 0.7409511208534241, 0.7326542735099792, 0.7242470979690552, 0.7157308459281921, 0.7071067690849304, 0.6983762383460999, 0.6895405650138855, 0.6806010007858276, 0.6715589761734009, 0.6624158024787903, 0.6531728506088257, 0.6438315510749817, 0.6343932747840881, 0.6248595118522644, 0.6152315735816956, 0.6055110692977905, 0.5956993103027344, 0.5857978463172913, 0.5758081674575806, 0.5657318234443665, 0.5555702447891235, 0.545324981212616, 0.5349976420402527, 0.5245896577835083, 0.5141027569770813, 0.5035383701324463, 0.49289819598197937, 0.4821837842464447, 0.4713967442512512, 0.46053871512413025, 0.4496113359928131, 0.43861624598503113, 0.4275550842285156, 0.4164295494556427, 0.40524131059646606, 0.39399203658103943, 0.3826834261417389, 0.37131720781326294, 0.3598950505256653, 0.3484186828136444, 0.3368898630142212, 0.32531028985977173, 0.3136817514896393, 0.30200594663619995, 0.290284663438797, 0.2785196900367737, 0.2667127549648285, 0.2548656463623047, 0.24298018217086792, 0.23105810582637787, 0.21910123527050018, 0.20711137354373932, 0.19509032368659973, 0.18303988873958588, 0.1709618866443634, 0.15885815024375916, 0.1467304676771164, 0.13458070158958435, 0.12241067737340927, 0.11022220551967621, 0.0980171412229538, 0.08579730987548828, 0.0735645666718483, 0.06132073700428009, 0.049067676067352295, 0.03680722415447235, 0.024541229009628296, 0.012271538376808167, -1.8369701465288538e-16, -0.012271538376808167, -0.024541229009628296, -0.03680722415447235, -0.049067676067352295, -0.06132073700428009, -0.0735645666718483, -0.08579730987548828, -0.0980171412229538, -0.11022220551967621, -0.12241067737340927, -0.13458070158958435, -0.1467304676771164, -0.15885815024375916, -0.1709618866443634, -0.18303988873958588, -0.19509032368659973, -0.20711137354373932, -0.21910123527050018, -0.23105810582637787, -0.24298018217086792, -0.2548656463623047, -0.2667127549648285, -0.2785196900367737, -0.290284663438797, -0.30200594663619995, -0.3136817514896393, -0.32531028985977173, -0.3368898630142212, -0.3484186828136444, -0.3598950505256653, -0.37131720781326294, -0.3826834261417389, -0.39399203658103943, -0.40524131059646606, -0.4164295494556427, -0.4275550842285156, -0.43861624598503113, -0.4496113359928131, -0.46053871512413025, -0.4713967442512512, -0.4821837842464447, -0.49289819598197937, -0.5035383701324463, -0.5141027569770813, -0.5245896577835083, -0.5349976420402527, -0.545324981212616, -0.5555702447891235, -0.5657318234443665, -0.5758081674575806, -0.5857978463172913, -0.5956993103027344, -0.6055110692977905, -0.6152315735816956, -0.6248595118522644, -0.6343932747840881, -0.6438315510749817, -0.6531728506088257, -0.6624158024787903, -0.6715589761734009, -0.6806010007858276, -0.6895405650138855, -0.6983762383460999, -0.7071067690849304, -0.7157308459281921, -0.7242470979690552, -0.7326542735099792, -0.7409511208534241, -0.7491363883018494, -0.7572088241577148, -0.765167236328125, -0.7730104327201843, -0.7807372212409973, -0.7883464097976685, -0.7958369255065918, -0.803207516670227, -0.810457170009613, -0.8175848126411438, -0.8245893120765686, -0.8314695954322815, -0.8382247090339661, -0.8448535799980164, -0.8513551950454712, -0.8577286005020142, -0.8639728426933289, -0.8700869679450989, -0.8760700821876526, -0.8819212913513184, -0.8876396417617798, -0.89322429895401, -0.898674488067627, -0.903989315032959, -0.909168004989624, -0.91420978307724, -0.9191138744354248, -0.9238795042037964, -0.928506076335907, -0.9329928159713745, -0.9373390078544617, -0.9415440559387207, -0.9456073045730591, -0.949528157711029, -0.9533060193061829, -0.9569403529167175, -0.9604305028915405, -0.9637760519981384, -0.9669764637947083, -0.9700312614440918, -0.9729399681091309, -0.9757021069526672, -0.978317379951477, -0.9807852506637573, -0.983105480670929, -0.9852776527404785, -0.9873014092445374, -0.9891765117645264, -0.9909026622772217, -0.9924795627593994, -0.9939069747924805, -0.9951847195625305, -0.9963126182556152, -0.9972904324531555, -0.9981181025505066, -0.9987954497337341, -0.9993223547935486, -0.99969881772995, -0.9999247193336487, 1.0, 0.99969881772995, 0.9987954497337341, 0.9972904324531555, 0.9951847195625305, 0.9924795627593994, 0.9891765117645264, 0.9852776527404785, 0.9807852506637573, 0.9757021069526672, 0.9700312614440918, 0.9637760519981384, 0.9569403529167175, 0.949528157711029, 0.9415440559387207, 0.9329928159713745, 0.9238795042037964, 0.91420978307724, 0.903989315032959, 0.89322429895401, 0.8819212913513184, 0.8700869679450989, 0.8577286005020142, 0.8448535799980164, 0.8314695954322815, 0.8175848126411438, 0.803207516670227, 0.7883464097976685, 0.7730104327201843, 0.7572088241577148, 0.7409511208534241, 0.7242470979690552, 0.7071067690849304, 0.6895405650138855, 0.6715589761734009, 0.6531728506088257, 0.6343932747840881, 0.6152315735816956, 0.5956993103027344, 0.5758081674575806, 0.5555702447891235, 0.5349976420402527, 0.5141027569770813, 0.49289819598197937, 0.4713967442512512, 0.4496113359928131, 0.4275550842285156, 0.40524131059646606, 0.3826834261417389, 0.3598950505256653, 0.3368898630142212, 0.3136817514896393, 0.290284663438797, 0.2667127549648285, 0.24298018217086792, 0.21910123527050018, 0.19509032368659973, 0.1709618866443634, 0.1467304676771164, 0.12241067737340927, 0.0980171412229538, 0.0735645666718483, 0.049067676067352295, 0.024541229009628296, -1.8369701465288538e-16, -0.024541229009628296, -0.049067676067352295, -0.0735645666718483, -0.0980171412229538, -0.12241067737340927, -0.1467304676771164, -0.1709618866443634, -0.19509032368659973, -0.21910123527050018, -0.24298018217086792, -0.2667127549648285, -0.290284663438797, -0.3136817514896393, -0.3368898630142212, -0.3598950505256653, -0.3826834261417389, -0.40524131059646606, -0.4275550842285156, -0.4496113359928131, -0.4713967442512512, -0.49289819598197937, -0.5141027569770813, -0.5349976420402527, -0.5555702447891235, -0.5758081674575806, -0.5956993103027344, -0.6152315735816956, -0.6343932747840881, -0.6531728506088257, -0.6715589761734009, -0.6895405650138855, -0.7071067690849304, -0.7242470979690552, -0.7409511208534241, -0.7572088241577148, -0.7730104327201843, -0.7883464097976685, -0.803207516670227, -0.8175848126411438, -0.8314695954322815, -0.8448535799980164, -0.8577286005020142, -0.8700869679450989, -0.8819212913513184, -0.89322429895401, -0.903989315032959, -0.91420978307724, -0.9238795042037964, -0.9329928159713745, -0.9415440559387207, -0.949528157711029, -0.9569403529167175, -0.9637760519981384, -0.9700312614440918, -0.9757021069526672, -0.9807852506637573, -0.9852776527404785, -0.9891765117645264, -0.9924795627593994, -0.9951847195625305, -0.9972904324531555, -0.9987954497337341, -0.99969881772995, 1.0, 0.9987954497337341, 0.9951847195625305, 0.9891765117645264, 0.9807852506637573, 0.9700312614440918, 0.9569403529167175, 0.9415440559387207, 0.9238795042037964, 0.903989315032959, 0.8819212913513184, 0.8577286005020142, 0.8314695954322815, 0.803207516670227, 0.7730104327201843, 0.7409511208534241, 0.7071067690849304, 0.6715589761734009, 0.6343932747840881, 0.5956993103027344, 0.5555702447891235, 0.5141027569770813, 0.4713967442512512, 0.4275550842285156, 0.3826834261417389, 0.3368898630142212, 0.290284663438797, 0.24298018217086792, 0.19509032368659973, 0.1467304676771164, 0.0980171412229538, 0.049067676067352295, -1.8369701465288538e-16, -0.049067676067352295, -0.0980171412229538, -0.1467304676771164, -0.19509032368659973, -0.24298018217086792, -0.290284663438797, -0.3368898630142212, -0.3826834261417389, -0.4275550842285156, -0.4713967442512512, -0.5141027569770813, -0.5555702447891235, -0.5956993103027344, -0.6343932747840881, -0.6715589761734009, -0.7071067690849304, -0.7409511208534241, -0.7730104327201843, -0.803207516670227, -0.8314695954322815, -0.8577286005020142, -0.8819212913513184, -0.903989315032959, -0.9238795042037964, -0.9415440559387207, -0.9569403529167175, -0.9700312614440918, -0.9807852506637573, -0.9891765117645264, -0.9951847195625305, -0.9987954497337341, -2.4492937051703357e-16, -0.006135884672403336, -0.012271538376808167, -0.018406730145215988, -0.024541229009628296, -0.030674804002046585, -0.03680722415447235, -0.04293825849890709, -0.049067676067352295, -0.055195245891809464, -0.06132073700428009, -0.06744392216205597, -0.0735645666718483, -0.07968243956565857, -0.08579730987548828, -0.09190895408391953, -0.0980171412229538, -0.104121632874012, -0.11022220551967621, -0.11631862819194794, -0.12241067737340927, -0.1284981071949005, -0.13458070158958435, -0.14065824449062347, -0.1467304676771164, -0.15279719233512878, -0.15885815024375916, -0.1649131178855896, -0.1709618866443634, -0.17700421810150146, -0.18303988873958588, -0.18906866014003754, -0.19509032368659973, -0.20110464096069336, -0.20711137354373932, -0.2131103128194809, -0.21910123527050018, -0.22508391737937927, -0.23105810582637787, -0.23702360689640045, -0.24298018217086792, -0.24892760813236237, -0.2548656463623047, -0.26079410314559937, -0.2667127549648285, -0.27262136340141296, -0.2785196900367737, -0.28440752625465393, -0.290284663438797, -0.29615089297294617, -0.30200594663619995, -0.307849645614624, -0.3136817514896393, -0.3195020258426666, -0.32531028985977173, -0.3311063051223755, -0.3368898630142212, -0.34266072511672974, -0.3484186828136444, -0.3541635274887085, -0.3598950505256653, -0.3656129837036133, -0.37131720781326294, -0.3770074248313904, -0.3826834261417389, -0.38834503293037415, -0.39399203658103943, -0.39962419867515564, -0.40524131059646606, -0.410843163728714, -0.4164295494556427, -0.4220002591609955, -0.4275550842285156, -0.4330938160419464, -0.43861624598503113, -0.4441221356391907, -0.4496113359928131, -0.45508357882499695, -0.46053871512413025, -0.4659765064716339, -0.4713967442512512, -0.47679921984672546, -0.4821837842464447, -0.48755016922950745, -0.49289819598197937, -0.49822765588760376, -0.5035383701324463, -0.5088301301002502, -0.5141027569770813, -0.5193560123443604, -0.5245896577835083, -0.5298036336898804, -0.5349976420402527, -0.5401714444160461, -0.545324981212616, -0.5504579544067383, -0.5555702447891235, -0.5606615543365479, -0.5657318234443665, -0.5707807540893555, -0.5758081674575806, -0.5808139443397522, -0.5857978463172913, -0.5907596945762634, -0.5956993103027344, -0.600616455078125, -0.6055110692977905, -0.6103827953338623, -0.6152315735816956, -0.620057225227356, -0.6248595118522644, -0.6296382546424866, -0.6343932747840881, -0.6391244530677795, -0.6438315510749817, -0.6485143899917603, -0.6531728506088257, -0.6578066945075989, -0.6624158024787903, -0.6669999361038208, -0.6715589761734009, -0.6760926842689514, -0.6806010007858276, -0.6850836873054504, -0.6895405650138855, -0.6939714550971985, -0.6983762383460999, -0.7027547359466553, -0.7071067690849304, -0.7114322185516357, -0.7157308459281921, -0.7200025320053101, -0.7242470979690552, -0.7284643650054932, -0.7326542735099792, -0.7368165850639343, -0.7409511208534241, -0.7450577616691589, -0.7491363883018494, -0.753186821937561, -0.7572088241577148, -0.7612023949623108, -0.765167236328125, -0.7691033482551575, -0.7730104327201843, -0.7768884897232056, -0.7807372212409973, -0.7845565676689148, -0.7883464097976685, -0.792106568813324, -0.7958369255065918, -0.7995372414588928, -0.803207516670227, -0.8068475723266602, -0.810457170009613, -0.8140363097190857, -0.8175848126411438, -0.821102499961853, -0.8245893120765686, -0.8280450701713562, -0.8314695954322815, -0.8348628878593445, -0.8382247090339661, -0.8415549993515015, -0.8448535799980164, -0.8481203317642212, -0.8513551950454712, -0.854557991027832, -0.8577286005020142, -0.8608669638633728, -0.8639728426933289, -0.8670462369918823, -0.8700869679450989, -0.8730949759483337, -0.8760700821876526, -0.8790122270584106, -0.8819212913513184, -0.8847970962524414, -0.8876396417617798, -0.8904487490653992, -0.89322429895401, -0.8959662318229675, -0.898674488067627, -0.9013488292694092, -0.903989315032959, -0.9065957069396973, -0.909168004989624, -0.9117060303688049, -0.91420978307724, -0.9166790843009949, -0.9191138744354248, -0.9215140342712402, -0.9238795042037964, -0.9262102246284485, -0.928506076335907, -0.9307669401168823, -0.9329928159713745, -0.9351835250854492, -0.9373390078544617, -0.9394592046737671, -0.9415440559387207, -0.943593442440033, -0.9456073045730591, -0.9475855827331543, -0.949528157711029, -0.9514350295066833, -0.9533060193061829, -0.9551411867141724, -0.9569403529167175, -0.9587034583091736, -0.9604305028915405, -0.9621214270591736, -0.9637760519981384, -0.9653944373130798, -0.9669764637947083, -0.9685220718383789, -0.9700312614440918, -0.9715039134025574, -0.9729399681091309, -0.9743393659591675, -0.9757021069526672, -0.9770281314849854, -0.978317379951477, -0.9795697927474976, -0.9807852506637573, -0.9819638729095459, -0.983105480670929, -0.9842100739479065, -0.9852776527404785, -0.9863080978393555, -0.9873014092445374, -0.9882575869560242, -0.9891765117645264, -0.990058183670044, -0.9909026622772217, -0.9917097687721252, -0.9924795627593994, -0.9932119250297546, -0.9939069747924805, -0.9945645928382874, -0.9951847195625305, -0.9957674145698547, -0.9963126182556152, -0.9968202710151672, -0.9972904324531555, -0.9977230429649353, -0.9981181025505066, -0.9984755516052246, -0.9987954497337341, -0.9990777373313904, -0.9993223547935486, -0.9995294213294983, -0.99969881772995, -0.9998306035995483, -0.9999247193336487, -0.999981164932251, -1.0, -0.999981164932251, -0.9999247193336487, -0.9998306035995483, -0.99969881772995, -0.9995294213294983, -0.9993223547935486, -0.9990777373313904, -0.9987954497337341, -0.9984755516052246, -0.9981181025505066, -0.9977230429649353, -0.9972904324531555, -0.9968202710151672, -0.9963126182556152, -0.9957674145698547, -0.9951847195625305, -0.9945645928382874, -0.9939069747924805, -0.9932119250297546, -0.9924795627593994, -0.9917097687721252, -0.9909026622772217, -0.990058183670044, -0.9891765117645264, -0.9882575869560242, -0.9873014092445374, -0.9863080978393555, -0.9852776527404785, -0.9842100739479065, -0.983105480670929, -0.9819638729095459, -0.9807852506637573, -0.9795697927474976, -0.978317379951477, -0.9770281314849854, -0.9757021069526672, -0.9743393659591675, -0.9729399681091309, -0.9715039134025574, -0.9700312614440918, -0.9685220718383789, -0.9669764637947083, -0.9653944373130798, -0.9637760519981384, -0.9621214270591736, -0.9604305028915405, -0.9587034583091736, -0.9569403529167175, -0.9551411867141724, -0.9533060193061829, -0.9514350295066833, -0.949528157711029, -0.9475855827331543, -0.9456073045730591, -0.943593442440033, -0.9415440559387207, -0.9394592046737671, -0.9373390078544617, -0.9351835250854492, -0.9329928159713745, -0.9307669401168823, -0.928506076335907, -0.9262102246284485, -0.9238795042037964, -0.9215140342712402, -0.9191138744354248, -0.9166790843009949, -0.91420978307724, -0.9117060303688049, -0.909168004989624, -0.9065957069396973, -0.903989315032959, -0.9013488292694092, -0.898674488067627, -0.8959662318229675, -0.89322429895401, -0.8904487490653992, -0.8876396417617798, -0.8847970962524414, -0.8819212913513184, -0.8790122270584106, -0.8760700821876526, -0.8730949759483337, -0.8700869679450989, -0.8670462369918823, -0.8639728426933289, -0.8608669638633728, -0.8577286005020142, -0.854557991027832, -0.8513551950454712, -0.8481203317642212, -0.8448535799980164, -0.8415549993515015, -0.8382247090339661, -0.8348628878593445, -0.8314695954322815, -0.8280450701713562, -0.8245893120765686, -0.821102499961853, -0.8175848126411438, -0.8140363097190857, -0.810457170009613, -0.8068475723266602, -0.803207516670227, -0.7995372414588928, -0.7958369255065918, -0.792106568813324, -0.7883464097976685, -0.7845565676689148, -0.7807372212409973, -0.7768884897232056, -0.7730104327201843, -0.7691033482551575, -0.765167236328125, -0.7612023949623108, -0.7572088241577148, -0.753186821937561, -0.7491363883018494, -0.7450577616691589, -0.7409511208534241, -0.7368165850639343, -0.7326542735099792, -0.7284643650054932, -0.7242470979690552, -0.7200025320053101, -0.7157308459281921, -0.7114322185516357, -0.7071067690849304, -0.7027547359466553, -0.6983762383460999, -0.6939714550971985, -0.6895405650138855, -0.6850836873054504, -0.6806010007858276, -0.6760926842689514, -0.6715589761734009, -0.6669999361038208, -0.6624158024787903, -0.6578066945075989, -0.6531728506088257, -0.6485143899917603, -0.6438315510749817, -0.6391244530677795, -0.6343932747840881, -0.6296382546424866, -0.6248595118522644, -0.620057225227356, -0.6152315735816956, -0.6103827953338623, -0.6055110692977905, -0.600616455078125, -0.5956993103027344, -0.5907596945762634, -0.5857978463172913, -0.5808139443397522, -0.5758081674575806, -0.5707807540893555, -0.5657318234443665, -0.5606615543365479, -0.5555702447891235, -0.5504579544067383, -0.545324981212616, -0.5401714444160461, -0.5349976420402527, -0.5298036336898804, -0.5245896577835083, -0.5193560123443604, -0.5141027569770813, -0.5088301301002502, -0.5035383701324463, -0.49822765588760376, -0.49289819598197937, -0.48755016922950745, -0.4821837842464447, -0.47679921984672546, -0.4713967442512512, -0.4659765064716339, -0.46053871512413025, -0.45508357882499695, -0.4496113359928131, -0.4441221356391907, -0.43861624598503113, -0.4330938160419464, -0.4275550842285156, -0.4220002591609955, -0.4164295494556427, -0.410843163728714, -0.40524131059646606, -0.39962419867515564, -0.39399203658103943, -0.38834503293037415, -0.3826834261417389, -0.3770074248313904, -0.37131720781326294, -0.3656129837036133, -0.3598950505256653, -0.3541635274887085, -0.3484186828136444, -0.34266072511672974, -0.3368898630142212, -0.3311063051223755, -0.32531028985977173, -0.3195020258426666, -0.3136817514896393, -0.307849645614624, -0.30200594663619995, -0.29615089297294617, -0.290284663438797, -0.28440752625465393, -0.2785196900367737, -0.27262136340141296, -0.2667127549648285, -0.26079410314559937, -0.2548656463623047, -0.24892760813236237, -0.24298018217086792, -0.23702360689640045, -0.23105810582637787, -0.22508391737937927, -0.21910123527050018, -0.2131103128194809, -0.20711137354373932, -0.20110464096069336, -0.19509032368659973, -0.18906866014003754, -0.18303988873958588, -0.17700421810150146, -0.1709618866443634, -0.1649131178855896, -0.15885815024375916, -0.15279719233512878, -0.1467304676771164, -0.14065824449062347, -0.13458070158958435, -0.1284981071949005, -0.12241067737340927, -0.11631862819194794, -0.11022220551967621, -0.104121632874012, -0.0980171412229538, -0.09190895408391953, -0.08579730987548828, -0.07968243956565857, -0.0735645666718483, -0.06744392216205597, -0.06132073700428009, -0.055195245891809464, -0.049067676067352295, -0.04293825849890709, -0.03680722415447235, -0.030674804002046585, -0.024541229009628296, -0.018406730145215988, -0.012271538376808167, -0.006135884672403336, -2.4492937051703357e-16, -0.012271538376808167, -0.024541229009628296, -0.03680722415447235, -0.049067676067352295, -0.06132073700428009, -0.0735645666718483, -0.08579730987548828, -0.0980171412229538, -0.11022220551967621, -0.12241067737340927, -0.13458070158958435, -0.1467304676771164, -0.15885815024375916, -0.1709618866443634, -0.18303988873958588, -0.19509032368659973, -0.20711137354373932, -0.21910123527050018, -0.23105810582637787, -0.24298018217086792, -0.2548656463623047, -0.2667127549648285, -0.2785196900367737, -0.290284663438797, -0.30200594663619995, -0.3136817514896393, -0.32531028985977173, -0.3368898630142212, -0.3484186828136444, -0.3598950505256653, -0.37131720781326294, -0.3826834261417389, -0.39399203658103943, -0.40524131059646606, -0.4164295494556427, -0.4275550842285156, -0.43861624598503113, -0.4496113359928131, -0.46053871512413025, -0.4713967442512512, -0.4821837842464447, -0.49289819598197937, -0.5035383701324463, -0.5141027569770813, -0.5245896577835083, -0.5349976420402527, -0.545324981212616, -0.5555702447891235, -0.5657318234443665, -0.5758081674575806, -0.5857978463172913, -0.5956993103027344, -0.6055110692977905, -0.6152315735816956, -0.6248595118522644, -0.6343932747840881, -0.6438315510749817, -0.6531728506088257, -0.6624158024787903, -0.6715589761734009, -0.6806010007858276, -0.6895405650138855, -0.6983762383460999, -0.7071067690849304, -0.7157308459281921, -0.7242470979690552, -0.7326542735099792, -0.7409511208534241, -0.7491363883018494, -0.7572088241577148, -0.765167236328125, -0.7730104327201843, -0.7807372212409973, -0.7883464097976685, -0.7958369255065918, -0.803207516670227, -0.810457170009613, -0.8175848126411438, -0.8245893120765686, -0.8314695954322815, -0.8382247090339661, -0.8448535799980164, -0.8513551950454712, -0.8577286005020142, -0.8639728426933289, -0.8700869679450989, -0.8760700821876526, -0.8819212913513184, -0.8876396417617798, -0.89322429895401, -0.898674488067627, -0.903989315032959, -0.909168004989624, -0.91420978307724, -0.9191138744354248, -0.9238795042037964, -0.928506076335907, -0.9329928159713745, -0.9373390078544617, -0.9415440559387207, -0.9456073045730591, -0.949528157711029, -0.9533060193061829, -0.9569403529167175, -0.9604305028915405, -0.9637760519981384, -0.9669764637947083, -0.9700312614440918, -0.9729399681091309, -0.9757021069526672, -0.978317379951477, -0.9807852506637573, -0.983105480670929, -0.9852776527404785, -0.9873014092445374, -0.9891765117645264, -0.9909026622772217, -0.9924795627593994, -0.9939069747924805, -0.9951847195625305, -0.9963126182556152, -0.9972904324531555, -0.9981181025505066, -0.9987954497337341, -0.9993223547935486, -0.99969881772995, -0.9999247193336487, -1.0, -0.9999247193336487, -0.99969881772995, -0.9993223547935486, -0.9987954497337341, -0.9981181025505066, -0.9972904324531555, -0.9963126182556152, -0.9951847195625305, -0.9939069747924805, -0.9924795627593994, -0.9909026622772217, -0.9891765117645264, -0.9873014092445374, -0.9852776527404785, -0.983105480670929, -0.9807852506637573, -0.978317379951477, -0.9757021069526672, -0.9729399681091309, -0.9700312614440918, -0.9669764637947083, -0.9637760519981384, -0.9604305028915405, -0.9569403529167175, -0.9533060193061829, -0.949528157711029, -0.9456073045730591, -0.9415440559387207, -0.9373390078544617, -0.9329928159713745, -0.928506076335907, -0.9238795042037964, -0.9191138744354248, -0.91420978307724, -0.909168004989624, -0.903989315032959, -0.898674488067627, -0.89322429895401, -0.8876396417617798, -0.8819212913513184, -0.8760700821876526, -0.8700869679450989, -0.8639728426933289, -0.8577286005020142, -0.8513551950454712, -0.8448535799980164, -0.8382247090339661, -0.8314695954322815, -0.8245893120765686, -0.8175848126411438, -0.810457170009613, -0.803207516670227, -0.7958369255065918, -0.7883464097976685, -0.7807372212409973, -0.7730104327201843, -0.765167236328125, -0.7572088241577148, -0.7491363883018494, -0.7409511208534241, -0.7326542735099792, -0.7242470979690552, -0.7157308459281921, -0.7071067690849304, -0.6983762383460999, -0.6895405650138855, -0.6806010007858276, -0.6715589761734009, -0.6624158024787903, -0.6531728506088257, -0.6438315510749817, -0.6343932747840881, -0.6248595118522644, -0.6152315735816956, -0.6055110692977905, -0.5956993103027344, -0.5857978463172913, -0.5758081674575806, -0.5657318234443665, -0.5555702447891235, -0.545324981212616, -0.5349976420402527, -0.5245896577835083, -0.5141027569770813, -0.5035383701324463, -0.49289819598197937, -0.4821837842464447, -0.4713967442512512, -0.46053871512413025, -0.4496113359928131, -0.43861624598503113, -0.4275550842285156, -0.4164295494556427, -0.40524131059646606, -0.39399203658103943, -0.3826834261417389, -0.37131720781326294, -0.3598950505256653, -0.3484186828136444, -0.3368898630142212, -0.32531028985977173, -0.3136817514896393, -0.30200594663619995, -0.290284663438797, -0.2785196900367737, -0.2667127549648285, -0.2548656463623047, -0.24298018217086792, -0.23105810582637787, -0.21910123527050018, -0.20711137354373932, -0.19509032368659973, -0.18303988873958588, -0.1709618866443634, -0.15885815024375916, -0.1467304676771164, -0.13458070158958435, -0.12241067737340927, -0.11022220551967621, -0.0980171412229538, -0.08579730987548828, -0.0735645666718483, -0.06132073700428009, -0.049067676067352295, -0.03680722415447235, -0.024541229009628296, -0.012271538376808167, -2.4492937051703357e-16, -0.024541229009628296, -0.049067676067352295, -0.0735645666718483, -0.0980171412229538, -0.12241067737340927, -0.1467304676771164, -0.1709618866443634, -0.19509032368659973, -0.21910123527050018, -0.24298018217086792, -0.2667127549648285, -0.290284663438797, -0.3136817514896393, -0.3368898630142212, -0.3598950505256653, -0.3826834261417389, -0.40524131059646606, -0.4275550842285156, -0.4496113359928131, -0.4713967442512512, -0.49289819598197937, -0.5141027569770813, -0.5349976420402527, -0.5555702447891235, -0.5758081674575806, -0.5956993103027344, -0.6152315735816956, -0.6343932747840881, -0.6531728506088257, -0.6715589761734009, -0.6895405650138855, -0.7071067690849304, -0.7242470979690552, -0.7409511208534241, -0.7572088241577148, -0.7730104327201843, -0.7883464097976685, -0.803207516670227, -0.8175848126411438, -0.8314695954322815, -0.8448535799980164, -0.8577286005020142, -0.8700869679450989, -0.8819212913513184, -0.89322429895401, -0.903989315032959, -0.91420978307724, -0.9238795042037964, -0.9329928159713745, -0.9415440559387207, -0.949528157711029, -0.9569403529167175, -0.9637760519981384, -0.9700312614440918, -0.9757021069526672, -0.9807852506637573, -0.9852776527404785, -0.9891765117645264, -0.9924795627593994, -0.9951847195625305, -0.9972904324531555, -0.9987954497337341, -0.99969881772995, -1.0, -0.99969881772995, -0.9987954497337341, -0.9972904324531555, -0.9951847195625305, -0.9924795627593994, -0.9891765117645264, -0.9852776527404785, -0.9807852506637573, -0.9757021069526672, -0.9700312614440918, -0.9637760519981384, -0.9569403529167175, -0.949528157711029, -0.9415440559387207, -0.9329928159713745, -0.9238795042037964, -0.91420978307724, -0.903989315032959, -0.89322429895401, -0.8819212913513184, -0.8700869679450989, -0.8577286005020142, -0.8448535799980164, -0.8314695954322815, -0.8175848126411438, -0.803207516670227, -0.7883464097976685, -0.7730104327201843, -0.7572088241577148, -0.7409511208534241, -0.7242470979690552, -0.7071067690849304, -0.6895405650138855, -0.6715589761734009, -0.6531728506088257, -0.6343932747840881, -0.6152315735816956, -0.5956993103027344, -0.5758081674575806, -0.5555702447891235, -0.5349976420402527, -0.5141027569770813, -0.49289819598197937, -0.4713967442512512, -0.4496113359928131, -0.4275550842285156, -0.40524131059646606, -0.3826834261417389, -0.3598950505256653, -0.3368898630142212, -0.3136817514896393, -0.290284663438797, -0.2667127549648285, -0.24298018217086792, -0.21910123527050018, -0.19509032368659973, -0.1709618866443634, -0.1467304676771164, -0.12241067737340927, -0.0980171412229538, -0.0735645666718483, -0.049067676067352295, -0.024541229009628296, -2.4492937051703357e-16, -0.049067676067352295, -0.0980171412229538, -0.1467304676771164, -0.19509032368659973, -0.24298018217086792, -0.290284663438797, -0.3368898630142212, -0.3826834261417389, -0.4275550842285156, -0.4713967442512512, -0.5141027569770813, -0.5555702447891235, -0.5956993103027344, -0.6343932747840881, -0.6715589761734009, -0.7071067690849304, -0.7409511208534241, -0.7730104327201843, -0.803207516670227, -0.8314695954322815, -0.8577286005020142, -0.8819212913513184, -0.903989315032959, -0.9238795042037964, -0.9415440559387207, -0.9569403529167175, -0.9700312614440918, -0.9807852506637573, -0.9891765117645264, -0.9951847195625305, -0.9987954497337341, -1.0, -0.9987954497337341, -0.9951847195625305, -0.9891765117645264, -0.9807852506637573, -0.9700312614440918, -0.9569403529167175, -0.9415440559387207, -0.9238795042037964, -0.903989315032959, -0.8819212913513184, -0.8577286005020142, -0.8314695954322815, -0.803207516670227, -0.7730104327201843, -0.7409511208534241, -0.7071067690849304, -0.6715589761734009, -0.6343932747840881, -0.5956993103027344, -0.5555702447891235, -0.5141027569770813, -0.4713967442512512, -0.4275550842285156, -0.3826834261417389, -0.3368898630142212, -0.290284663438797, -0.24298018217086792, -0.19509032368659973, -0.1467304676771164, -0.0980171412229538, -0.049067676067352295, 1.0, 0.9951847195625305, 0.9807852506637573, 0.9569403529167175, 0.9238795042037964, 0.8819212913513184, 0.8314695954322815, 0.7730104327201843, 0.7071067690849304, 0.6343932747840881, 0.5555702447891235, 0.4713967442512512, 0.3826834261417389, 0.290284663438797, 0.19509032368659973, 0.0980171412229538, -1.8369701465288538e-16, -0.0980171412229538, -0.19509032368659973, -0.290284663438797, -0.3826834261417389, -0.4713967442512512, -0.5555702447891235, -0.6343932747840881, -0.7071067690849304, -0.7730104327201843, -0.8314695954322815, -0.8819212913513184, -0.9238795042037964, -0.9569403529167175, -0.9807852506637573, -0.9951847195625305, 1.0, 0.9807852506637573, 0.9238795042037964, 0.8314695954322815, 0.7071067690849304, 0.5555702447891235, 0.3826834261417389, 0.19509032368659973, -1.8369701465288538e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, 1.0, 0.9807852506637573, 0.9238795042037964, 0.8314695954322815, 0.7071067690849304, 0.5555702447891235, 0.3826834261417389, 0.19509032368659973, -1.8369701465288538e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -2.4492937051703357e-16, -0.0980171412229538, -0.19509032368659973, -0.290284663438797, -0.3826834261417389, -0.4713967442512512, -0.5555702447891235, -0.6343932747840881, -0.7071067690849304, -0.7730104327201843, -0.8314695954322815, -0.8819212913513184, -0.9238795042037964, -0.9569403529167175, -0.9807852506637573, -0.9951847195625305, -1.0, -0.9951847195625305, -0.9807852506637573, -0.9569403529167175, -0.9238795042037964, -0.8819212913513184, -0.8314695954322815, -0.7730104327201843, -0.7071067690849304, -0.6343932747840881, -0.5555702447891235, -0.4713967442512512, -0.3826834261417389, -0.290284663438797, -0.19509032368659973, -0.0980171412229538, -2.4492937051703357e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, -1.0, -0.9807852506637573, -0.9238795042037964, -0.8314695954322815, -0.7071067690849304, -0.5555702447891235, -0.3826834261417389, -0.19509032368659973, -2.4492937051703357e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, -1.0, -0.9807852506637573, -0.9238795042037964, -0.8314695954322815, -0.7071067690849304, -0.5555702447891235, -0.3826834261417389, -0.19509032368659973, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, 1.0, 0.9951847195625305, 0.9807852506637573, 0.9569403529167175, 0.9238795042037964, 0.8819212913513184, 0.8314695954322815, 0.7730104327201843, 0.7071067690849304, 0.6343932747840881, 0.5555702447891235, 0.4713967442512512, 0.3826834261417389, 0.290284663438797, 0.19509032368659973, 0.0980171412229538, -1.8369701465288538e-16, -0.0980171412229538, -0.19509032368659973, -0.290284663438797, -0.3826834261417389, -0.4713967442512512, -0.5555702447891235, -0.6343932747840881, -0.7071067690849304, -0.7730104327201843, -0.8314695954322815, -0.8819212913513184, -0.9238795042037964, -0.9569403529167175, -0.9807852506637573, -0.9951847195625305, 1.0, 0.9807852506637573, 0.9238795042037964, 0.8314695954322815, 0.7071067690849304, 0.5555702447891235, 0.3826834261417389, 0.19509032368659973, -1.8369701465288538e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, 1.0, 0.9807852506637573, 0.9238795042037964, 0.8314695954322815, 0.7071067690849304, 0.5555702447891235, 0.3826834261417389, 0.19509032368659973, -1.8369701465288538e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -2.4492937051703357e-16, -0.0980171412229538, -0.19509032368659973, -0.290284663438797, -0.3826834261417389, -0.4713967442512512, -0.5555702447891235, -0.6343932747840881, -0.7071067690849304, -0.7730104327201843, -0.8314695954322815, -0.8819212913513184, -0.9238795042037964, -0.9569403529167175, -0.9807852506637573, -0.9951847195625305, -1.0, -0.9951847195625305, -0.9807852506637573, -0.9569403529167175, -0.9238795042037964, -0.8819212913513184, -0.8314695954322815, -0.7730104327201843, -0.7071067690849304, -0.6343932747840881, -0.5555702447891235, -0.4713967442512512, -0.3826834261417389, -0.290284663438797, -0.19509032368659973, -0.0980171412229538, -2.4492937051703357e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, -1.0, -0.9807852506637573, -0.9238795042037964, -0.8314695954322815, -0.7071067690849304, -0.5555702447891235, -0.3826834261417389, -0.19509032368659973, -2.4492937051703357e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, -1.0, -0.9807852506637573, -0.9238795042037964, -0.8314695954322815, -0.7071067690849304, -0.5555702447891235, -0.3826834261417389, -0.19509032368659973, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, 1.0, 0.9951847195625305, 0.9807852506637573, 0.9569403529167175, 0.9238795042037964, 0.8819212913513184, 0.8314695954322815, 0.7730104327201843, 0.7071067690849304, 0.6343932747840881, 0.5555702447891235, 0.4713967442512512, 0.3826834261417389, 0.290284663438797, 0.19509032368659973, 0.0980171412229538, -1.8369701465288538e-16, -0.0980171412229538, -0.19509032368659973, -0.290284663438797, -0.3826834261417389, -0.4713967442512512, -0.5555702447891235, -0.6343932747840881, -0.7071067690849304, -0.7730104327201843, -0.8314695954322815, -0.8819212913513184, -0.9238795042037964, -0.9569403529167175, -0.9807852506637573, -0.9951847195625305, 1.0, 0.9807852506637573, 0.9238795042037964, 0.8314695954322815, 0.7071067690849304, 0.5555702447891235, 0.3826834261417389, 0.19509032368659973, -1.8369701465288538e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, 1.0, 0.9807852506637573, 0.9238795042037964, 0.8314695954322815, 0.7071067690849304, 0.5555702447891235, 0.3826834261417389, 0.19509032368659973, -1.8369701465288538e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -2.4492937051703357e-16, -0.0980171412229538, -0.19509032368659973, -0.290284663438797, -0.3826834261417389, -0.4713967442512512, -0.5555702447891235, -0.6343932747840881, -0.7071067690849304, -0.7730104327201843, -0.8314695954322815, -0.8819212913513184, -0.9238795042037964, -0.9569403529167175, -0.9807852506637573, -0.9951847195625305, -1.0, -0.9951847195625305, -0.9807852506637573, -0.9569403529167175, -0.9238795042037964, -0.8819212913513184, -0.8314695954322815, -0.7730104327201843, -0.7071067690849304, -0.6343932747840881, -0.5555702447891235, -0.4713967442512512, -0.3826834261417389, -0.290284663438797, -0.19509032368659973, -0.0980171412229538, -2.4492937051703357e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, -1.0, -0.9807852506637573, -0.9238795042037964, -0.8314695954322815, -0.7071067690849304, -0.5555702447891235, -0.3826834261417389, -0.19509032368659973, -2.4492937051703357e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, -1.0, -0.9807852506637573, -0.9238795042037964, -0.8314695954322815, -0.7071067690849304, -0.5555702447891235, -0.3826834261417389, -0.19509032368659973, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, 1.0, 0.9951847195625305, 0.9807852506637573, 0.9569403529167175, 0.9238795042037964, 0.8819212913513184, 0.8314695954322815, 0.7730104327201843, 0.7071067690849304, 0.6343932747840881, 0.5555702447891235, 0.4713967442512512, 0.3826834261417389, 0.290284663438797, 0.19509032368659973, 0.0980171412229538, -1.8369701465288538e-16, -0.0980171412229538, -0.19509032368659973, -0.290284663438797, -0.3826834261417389, -0.4713967442512512, -0.5555702447891235, -0.6343932747840881, -0.7071067690849304, -0.7730104327201843, -0.8314695954322815, -0.8819212913513184, -0.9238795042037964, -0.9569403529167175, -0.9807852506637573, -0.9951847195625305, 1.0, 0.9807852506637573, 0.9238795042037964, 0.8314695954322815, 0.7071067690849304, 0.5555702447891235, 0.3826834261417389, 0.19509032368659973, -1.8369701465288538e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, 1.0, 0.9807852506637573, 0.9238795042037964, 0.8314695954322815, 0.7071067690849304, 0.5555702447891235, 0.3826834261417389, 0.19509032368659973, -1.8369701465288538e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -2.4492937051703357e-16, -0.0980171412229538, -0.19509032368659973, -0.290284663438797, -0.3826834261417389, -0.4713967442512512, -0.5555702447891235, -0.6343932747840881, -0.7071067690849304, -0.7730104327201843, -0.8314695954322815, -0.8819212913513184, -0.9238795042037964, -0.9569403529167175, -0.9807852506637573, -0.9951847195625305, -1.0, -0.9951847195625305, -0.9807852506637573, -0.9569403529167175, -0.9238795042037964, -0.8819212913513184, -0.8314695954322815, -0.7730104327201843, -0.7071067690849304, -0.6343932747840881, -0.5555702447891235, -0.4713967442512512, -0.3826834261417389, -0.290284663438797, -0.19509032368659973, -0.0980171412229538, -2.4492937051703357e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, -1.0, -0.9807852506637573, -0.9238795042037964, -0.8314695954322815, -0.7071067690849304, -0.5555702447891235, -0.3826834261417389, -0.19509032368659973, -2.4492937051703357e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, -1.0, -0.9807852506637573, -0.9238795042037964, -0.8314695954322815, -0.7071067690849304, -0.5555702447891235, -0.3826834261417389, -0.19509032368659973, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, 1.0, 0.9951847195625305, 0.9807852506637573, 0.9569403529167175, 0.9238795042037964, 0.8819212913513184, 0.8314695954322815, 0.7730104327201843, 0.7071067690849304, 0.6343932747840881, 0.5555702447891235, 0.4713967442512512, 0.3826834261417389, 0.290284663438797, 0.19509032368659973, 0.0980171412229538, -1.8369701465288538e-16, -0.0980171412229538, -0.19509032368659973, -0.290284663438797, -0.3826834261417389, -0.4713967442512512, -0.5555702447891235, -0.6343932747840881, -0.7071067690849304, -0.7730104327201843, -0.8314695954322815, -0.8819212913513184, -0.9238795042037964, -0.9569403529167175, -0.9807852506637573, -0.9951847195625305, 1.0, 0.9807852506637573, 0.9238795042037964, 0.8314695954322815, 0.7071067690849304, 0.5555702447891235, 0.3826834261417389, 0.19509032368659973, -1.8369701465288538e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, 1.0, 0.9807852506637573, 0.9238795042037964, 0.8314695954322815, 0.7071067690849304, 0.5555702447891235, 0.3826834261417389, 0.19509032368659973, -1.8369701465288538e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -2.4492937051703357e-16, -0.0980171412229538, -0.19509032368659973, -0.290284663438797, -0.3826834261417389, -0.4713967442512512, -0.5555702447891235, -0.6343932747840881, -0.7071067690849304, -0.7730104327201843, -0.8314695954322815, -0.8819212913513184, -0.9238795042037964, -0.9569403529167175, -0.9807852506637573, -0.9951847195625305, -1.0, -0.9951847195625305, -0.9807852506637573, -0.9569403529167175, -0.9238795042037964, -0.8819212913513184, -0.8314695954322815, -0.7730104327201843, -0.7071067690849304, -0.6343932747840881, -0.5555702447891235, -0.4713967442512512, -0.3826834261417389, -0.290284663438797, -0.19509032368659973, -0.0980171412229538, -2.4492937051703357e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, -1.0, -0.9807852506637573, -0.9238795042037964, -0.8314695954322815, -0.7071067690849304, -0.5555702447891235, -0.3826834261417389, -0.19509032368659973, -2.4492937051703357e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, -1.0, -0.9807852506637573, -0.9238795042037964, -0.8314695954322815, -0.7071067690849304, -0.5555702447891235, -0.3826834261417389, -0.19509032368659973, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, 1.0, 0.9951847195625305, 0.9807852506637573, 0.9569403529167175, 0.9238795042037964, 0.8819212913513184, 0.8314695954322815, 0.7730104327201843, 0.7071067690849304, 0.6343932747840881, 0.5555702447891235, 0.4713967442512512, 0.3826834261417389, 0.290284663438797, 0.19509032368659973, 0.0980171412229538, -1.8369701465288538e-16, -0.0980171412229538, -0.19509032368659973, -0.290284663438797, -0.3826834261417389, -0.4713967442512512, -0.5555702447891235, -0.6343932747840881, -0.7071067690849304, -0.7730104327201843, -0.8314695954322815, -0.8819212913513184, -0.9238795042037964, -0.9569403529167175, -0.9807852506637573, -0.9951847195625305, 1.0, 0.9807852506637573, 0.9238795042037964, 0.8314695954322815, 0.7071067690849304, 0.5555702447891235, 0.3826834261417389, 0.19509032368659973, -1.8369701465288538e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, 1.0, 0.9807852506637573, 0.9238795042037964, 0.8314695954322815, 0.7071067690849304, 0.5555702447891235, 0.3826834261417389, 0.19509032368659973, -1.8369701465288538e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -2.4492937051703357e-16, -0.0980171412229538, -0.19509032368659973, -0.290284663438797, -0.3826834261417389, -0.4713967442512512, -0.5555702447891235, -0.6343932747840881, -0.7071067690849304, -0.7730104327201843, -0.8314695954322815, -0.8819212913513184, -0.9238795042037964, -0.9569403529167175, -0.9807852506637573, -0.9951847195625305, -1.0, -0.9951847195625305, -0.9807852506637573, -0.9569403529167175, -0.9238795042037964, -0.8819212913513184, -0.8314695954322815, -0.7730104327201843, -0.7071067690849304, -0.6343932747840881, -0.5555702447891235, -0.4713967442512512, -0.3826834261417389, -0.290284663438797, -0.19509032368659973, -0.0980171412229538, -2.4492937051703357e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, -1.0, -0.9807852506637573, -0.9238795042037964, -0.8314695954322815, -0.7071067690849304, -0.5555702447891235, -0.3826834261417389, -0.19509032368659973, -2.4492937051703357e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, -1.0, -0.9807852506637573, -0.9238795042037964, -0.8314695954322815, -0.7071067690849304, -0.5555702447891235, -0.3826834261417389, -0.19509032368659973, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, 1.0, 0.9951847195625305, 0.9807852506637573, 0.9569403529167175, 0.9238795042037964, 0.8819212913513184, 0.8314695954322815, 0.7730104327201843, 0.7071067690849304, 0.6343932747840881, 0.5555702447891235, 0.4713967442512512, 0.3826834261417389, 0.290284663438797, 0.19509032368659973, 0.0980171412229538, -1.8369701465288538e-16, -0.0980171412229538, -0.19509032368659973, -0.290284663438797, -0.3826834261417389, -0.4713967442512512, -0.5555702447891235, -0.6343932747840881, -0.7071067690849304, -0.7730104327201843, -0.8314695954322815, -0.8819212913513184, -0.9238795042037964, -0.9569403529167175, -0.9807852506637573, -0.9951847195625305, 1.0, 0.9807852506637573, 0.9238795042037964, 0.8314695954322815, 0.7071067690849304, 0.5555702447891235, 0.3826834261417389, 0.19509032368659973, -1.8369701465288538e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, 1.0, 0.9807852506637573, 0.9238795042037964, 0.8314695954322815, 0.7071067690849304, 0.5555702447891235, 0.3826834261417389, 0.19509032368659973, -1.8369701465288538e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -2.4492937051703357e-16, -0.0980171412229538, -0.19509032368659973, -0.290284663438797, -0.3826834261417389, -0.4713967442512512, -0.5555702447891235, -0.6343932747840881, -0.7071067690849304, -0.7730104327201843, -0.8314695954322815, -0.8819212913513184, -0.9238795042037964, -0.9569403529167175, -0.9807852506637573, -0.9951847195625305, -1.0, -0.9951847195625305, -0.9807852506637573, -0.9569403529167175, -0.9238795042037964, -0.8819212913513184, -0.8314695954322815, -0.7730104327201843, -0.7071067690849304, -0.6343932747840881, -0.5555702447891235, -0.4713967442512512, -0.3826834261417389, -0.290284663438797, -0.19509032368659973, -0.0980171412229538, -2.4492937051703357e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, -1.0, -0.9807852506637573, -0.9238795042037964, -0.8314695954322815, -0.7071067690849304, -0.5555702447891235, -0.3826834261417389, -0.19509032368659973, -2.4492937051703357e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, -1.0, -0.9807852506637573, -0.9238795042037964, -0.8314695954322815, -0.7071067690849304, -0.5555702447891235, -0.3826834261417389, -0.19509032368659973, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, 1.0, 0.9951847195625305, 0.9807852506637573, 0.9569403529167175, 0.9238795042037964, 0.8819212913513184, 0.8314695954322815, 0.7730104327201843, 0.7071067690849304, 0.6343932747840881, 0.5555702447891235, 0.4713967442512512, 0.3826834261417389, 0.290284663438797, 0.19509032368659973, 0.0980171412229538, -1.8369701465288538e-16, -0.0980171412229538, -0.19509032368659973, -0.290284663438797, -0.3826834261417389, -0.4713967442512512, -0.5555702447891235, -0.6343932747840881, -0.7071067690849304, -0.7730104327201843, -0.8314695954322815, -0.8819212913513184, -0.9238795042037964, -0.9569403529167175, -0.9807852506637573, -0.9951847195625305, 1.0, 0.9807852506637573, 0.9238795042037964, 0.8314695954322815, 0.7071067690849304, 0.5555702447891235, 0.3826834261417389, 0.19509032368659973, -1.8369701465288538e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, 1.0, 0.9807852506637573, 0.9238795042037964, 0.8314695954322815, 0.7071067690849304, 0.5555702447891235, 0.3826834261417389, 0.19509032368659973, -1.8369701465288538e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -2.4492937051703357e-16, -0.0980171412229538, -0.19509032368659973, -0.290284663438797, -0.3826834261417389, -0.4713967442512512, -0.5555702447891235, -0.6343932747840881, -0.7071067690849304, -0.7730104327201843, -0.8314695954322815, -0.8819212913513184, -0.9238795042037964, -0.9569403529167175, -0.9807852506637573, -0.9951847195625305, -1.0, -0.9951847195625305, -0.9807852506637573, -0.9569403529167175, -0.9238795042037964, -0.8819212913513184, -0.8314695954322815, -0.7730104327201843, -0.7071067690849304, -0.6343932747840881, -0.5555702447891235, -0.4713967442512512, -0.3826834261417389, -0.290284663438797, -0.19509032368659973, -0.0980171412229538, -2.4492937051703357e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, -1.0, -0.9807852506637573, -0.9238795042037964, -0.8314695954322815, -0.7071067690849304, -0.5555702447891235, -0.3826834261417389, -0.19509032368659973, -2.4492937051703357e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, -1.0, -0.9807852506637573, -0.9238795042037964, -0.8314695954322815, -0.7071067690849304, -0.5555702447891235, -0.3826834261417389, -0.19509032368659973, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, 1.0, 0.9951847195625305, 0.9807852506637573, 0.9569403529167175, 0.9238795042037964, 0.8819212913513184, 0.8314695954322815, 0.7730104327201843, 0.7071067690849304, 0.6343932747840881, 0.5555702447891235, 0.4713967442512512, 0.3826834261417389, 0.290284663438797, 0.19509032368659973, 0.0980171412229538, -1.8369701465288538e-16, -0.0980171412229538, -0.19509032368659973, -0.290284663438797, -0.3826834261417389, -0.4713967442512512, -0.5555702447891235, -0.6343932747840881, -0.7071067690849304, -0.7730104327201843, -0.8314695954322815, -0.8819212913513184, -0.9238795042037964, -0.9569403529167175, -0.9807852506637573, -0.9951847195625305, 1.0, 0.9807852506637573, 0.9238795042037964, 0.8314695954322815, 0.7071067690849304, 0.5555702447891235, 0.3826834261417389, 0.19509032368659973, -1.8369701465288538e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, 1.0, 0.9807852506637573, 0.9238795042037964, 0.8314695954322815, 0.7071067690849304, 0.5555702447891235, 0.3826834261417389, 0.19509032368659973, -1.8369701465288538e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -2.4492937051703357e-16, -0.0980171412229538, -0.19509032368659973, -0.290284663438797, -0.3826834261417389, -0.4713967442512512, -0.5555702447891235, -0.6343932747840881, -0.7071067690849304, -0.7730104327201843, -0.8314695954322815, -0.8819212913513184, -0.9238795042037964, -0.9569403529167175, -0.9807852506637573, -0.9951847195625305, -1.0, -0.9951847195625305, -0.9807852506637573, -0.9569403529167175, -0.9238795042037964, -0.8819212913513184, -0.8314695954322815, -0.7730104327201843, -0.7071067690849304, -0.6343932747840881, -0.5555702447891235, -0.4713967442512512, -0.3826834261417389, -0.290284663438797, -0.19509032368659973, -0.0980171412229538, -2.4492937051703357e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, -1.0, -0.9807852506637573, -0.9238795042037964, -0.8314695954322815, -0.7071067690849304, -0.5555702447891235, -0.3826834261417389, -0.19509032368659973, -2.4492937051703357e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, -1.0, -0.9807852506637573, -0.9238795042037964, -0.8314695954322815, -0.7071067690849304, -0.5555702447891235, -0.3826834261417389, -0.19509032368659973, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, 1.0, 0.9951847195625305, 0.9807852506637573, 0.9569403529167175, 0.9238795042037964, 0.8819212913513184, 0.8314695954322815, 0.7730104327201843, 0.7071067690849304, 0.6343932747840881, 0.5555702447891235, 0.4713967442512512, 0.3826834261417389, 0.290284663438797, 0.19509032368659973, 0.0980171412229538, -1.8369701465288538e-16, -0.0980171412229538, -0.19509032368659973, -0.290284663438797, -0.3826834261417389, -0.4713967442512512, -0.5555702447891235, -0.6343932747840881, -0.7071067690849304, -0.7730104327201843, -0.8314695954322815, -0.8819212913513184, -0.9238795042037964, -0.9569403529167175, -0.9807852506637573, -0.9951847195625305, 1.0, 0.9807852506637573, 0.9238795042037964, 0.8314695954322815, 0.7071067690849304, 0.5555702447891235, 0.3826834261417389, 0.19509032368659973, -1.8369701465288538e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, 1.0, 0.9807852506637573, 0.9238795042037964, 0.8314695954322815, 0.7071067690849304, 0.5555702447891235, 0.3826834261417389, 0.19509032368659973, -1.8369701465288538e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -2.4492937051703357e-16, -0.0980171412229538, -0.19509032368659973, -0.290284663438797, -0.3826834261417389, -0.4713967442512512, -0.5555702447891235, -0.6343932747840881, -0.7071067690849304, -0.7730104327201843, -0.8314695954322815, -0.8819212913513184, -0.9238795042037964, -0.9569403529167175, -0.9807852506637573, -0.9951847195625305, -1.0, -0.9951847195625305, -0.9807852506637573, -0.9569403529167175, -0.9238795042037964, -0.8819212913513184, -0.8314695954322815, -0.7730104327201843, -0.7071067690849304, -0.6343932747840881, -0.5555702447891235, -0.4713967442512512, -0.3826834261417389, -0.290284663438797, -0.19509032368659973, -0.0980171412229538, -2.4492937051703357e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, -1.0, -0.9807852506637573, -0.9238795042037964, -0.8314695954322815, -0.7071067690849304, -0.5555702447891235, -0.3826834261417389, -0.19509032368659973, -2.4492937051703357e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, -1.0, -0.9807852506637573, -0.9238795042037964, -0.8314695954322815, -0.7071067690849304, -0.5555702447891235, -0.3826834261417389, -0.19509032368659973, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, 1.0, 0.9951847195625305, 0.9807852506637573, 0.9569403529167175, 0.9238795042037964, 0.8819212913513184, 0.8314695954322815, 0.7730104327201843, 0.7071067690849304, 0.6343932747840881, 0.5555702447891235, 0.4713967442512512, 0.3826834261417389, 0.290284663438797, 0.19509032368659973, 0.0980171412229538, -1.8369701465288538e-16, -0.0980171412229538, -0.19509032368659973, -0.290284663438797, -0.3826834261417389, -0.4713967442512512, -0.5555702447891235, -0.6343932747840881, -0.7071067690849304, -0.7730104327201843, -0.8314695954322815, -0.8819212913513184, -0.9238795042037964, -0.9569403529167175, -0.9807852506637573, -0.9951847195625305, 1.0, 0.9807852506637573, 0.9238795042037964, 0.8314695954322815, 0.7071067690849304, 0.5555702447891235, 0.3826834261417389, 0.19509032368659973, -1.8369701465288538e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, 1.0, 0.9807852506637573, 0.9238795042037964, 0.8314695954322815, 0.7071067690849304, 0.5555702447891235, 0.3826834261417389, 0.19509032368659973, -1.8369701465288538e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -2.4492937051703357e-16, -0.0980171412229538, -0.19509032368659973, -0.290284663438797, -0.3826834261417389, -0.4713967442512512, -0.5555702447891235, -0.6343932747840881, -0.7071067690849304, -0.7730104327201843, -0.8314695954322815, -0.8819212913513184, -0.9238795042037964, -0.9569403529167175, -0.9807852506637573, -0.9951847195625305, -1.0, -0.9951847195625305, -0.9807852506637573, -0.9569403529167175, -0.9238795042037964, -0.8819212913513184, -0.8314695954322815, -0.7730104327201843, -0.7071067690849304, -0.6343932747840881, -0.5555702447891235, -0.4713967442512512, -0.3826834261417389, -0.290284663438797, -0.19509032368659973, -0.0980171412229538, -2.4492937051703357e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, -1.0, -0.9807852506637573, -0.9238795042037964, -0.8314695954322815, -0.7071067690849304, -0.5555702447891235, -0.3826834261417389, -0.19509032368659973, -2.4492937051703357e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, -1.0, -0.9807852506637573, -0.9238795042037964, -0.8314695954322815, -0.7071067690849304, -0.5555702447891235, -0.3826834261417389, -0.19509032368659973, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, 1.0, 0.9951847195625305, 0.9807852506637573, 0.9569403529167175, 0.9238795042037964, 0.8819212913513184, 0.8314695954322815, 0.7730104327201843, 0.7071067690849304, 0.6343932747840881, 0.5555702447891235, 0.4713967442512512, 0.3826834261417389, 0.290284663438797, 0.19509032368659973, 0.0980171412229538, -1.8369701465288538e-16, -0.0980171412229538, -0.19509032368659973, -0.290284663438797, -0.3826834261417389, -0.4713967442512512, -0.5555702447891235, -0.6343932747840881, -0.7071067690849304, -0.7730104327201843, -0.8314695954322815, -0.8819212913513184, -0.9238795042037964, -0.9569403529167175, -0.9807852506637573, -0.9951847195625305, 1.0, 0.9807852506637573, 0.9238795042037964, 0.8314695954322815, 0.7071067690849304, 0.5555702447891235, 0.3826834261417389, 0.19509032368659973, -1.8369701465288538e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, 1.0, 0.9807852506637573, 0.9238795042037964, 0.8314695954322815, 0.7071067690849304, 0.5555702447891235, 0.3826834261417389, 0.19509032368659973, -1.8369701465288538e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -2.4492937051703357e-16, -0.0980171412229538, -0.19509032368659973, -0.290284663438797, -0.3826834261417389, -0.4713967442512512, -0.5555702447891235, -0.6343932747840881, -0.7071067690849304, -0.7730104327201843, -0.8314695954322815, -0.8819212913513184, -0.9238795042037964, -0.9569403529167175, -0.9807852506637573, -0.9951847195625305, -1.0, -0.9951847195625305, -0.9807852506637573, -0.9569403529167175, -0.9238795042037964, -0.8819212913513184, -0.8314695954322815, -0.7730104327201843, -0.7071067690849304, -0.6343932747840881, -0.5555702447891235, -0.4713967442512512, -0.3826834261417389, -0.290284663438797, -0.19509032368659973, -0.0980171412229538, -2.4492937051703357e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, -1.0, -0.9807852506637573, -0.9238795042037964, -0.8314695954322815, -0.7071067690849304, -0.5555702447891235, -0.3826834261417389, -0.19509032368659973, -2.4492937051703357e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, -1.0, -0.9807852506637573, -0.9238795042037964, -0.8314695954322815, -0.7071067690849304, -0.5555702447891235, -0.3826834261417389, -0.19509032368659973, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, 1.0, 0.9951847195625305, 0.9807852506637573, 0.9569403529167175, 0.9238795042037964, 0.8819212913513184, 0.8314695954322815, 0.7730104327201843, 0.7071067690849304, 0.6343932747840881, 0.5555702447891235, 0.4713967442512512, 0.3826834261417389, 0.290284663438797, 0.19509032368659973, 0.0980171412229538, -1.8369701465288538e-16, -0.0980171412229538, -0.19509032368659973, -0.290284663438797, -0.3826834261417389, -0.4713967442512512, -0.5555702447891235, -0.6343932747840881, -0.7071067690849304, -0.7730104327201843, -0.8314695954322815, -0.8819212913513184, -0.9238795042037964, -0.9569403529167175, -0.9807852506637573, -0.9951847195625305, 1.0, 0.9807852506637573, 0.9238795042037964, 0.8314695954322815, 0.7071067690849304, 0.5555702447891235, 0.3826834261417389, 0.19509032368659973, -1.8369701465288538e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, 1.0, 0.9807852506637573, 0.9238795042037964, 0.8314695954322815, 0.7071067690849304, 0.5555702447891235, 0.3826834261417389, 0.19509032368659973, -1.8369701465288538e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -2.4492937051703357e-16, -0.0980171412229538, -0.19509032368659973, -0.290284663438797, -0.3826834261417389, -0.4713967442512512, -0.5555702447891235, -0.6343932747840881, -0.7071067690849304, -0.7730104327201843, -0.8314695954322815, -0.8819212913513184, -0.9238795042037964, -0.9569403529167175, -0.9807852506637573, -0.9951847195625305, -1.0, -0.9951847195625305, -0.9807852506637573, -0.9569403529167175, -0.9238795042037964, -0.8819212913513184, -0.8314695954322815, -0.7730104327201843, -0.7071067690849304, -0.6343932747840881, -0.5555702447891235, -0.4713967442512512, -0.3826834261417389, -0.290284663438797, -0.19509032368659973, -0.0980171412229538, -2.4492937051703357e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, -1.0, -0.9807852506637573, -0.9238795042037964, -0.8314695954322815, -0.7071067690849304, -0.5555702447891235, -0.3826834261417389, -0.19509032368659973, -2.4492937051703357e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, -1.0, -0.9807852506637573, -0.9238795042037964, -0.8314695954322815, -0.7071067690849304, -0.5555702447891235, -0.3826834261417389, -0.19509032368659973, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, 1.0, 0.9951847195625305, 0.9807852506637573, 0.9569403529167175, 0.9238795042037964, 0.8819212913513184, 0.8314695954322815, 0.7730104327201843, 0.7071067690849304, 0.6343932747840881, 0.5555702447891235, 0.4713967442512512, 0.3826834261417389, 0.290284663438797, 0.19509032368659973, 0.0980171412229538, -1.8369701465288538e-16, -0.0980171412229538, -0.19509032368659973, -0.290284663438797, -0.3826834261417389, -0.4713967442512512, -0.5555702447891235, -0.6343932747840881, -0.7071067690849304, -0.7730104327201843, -0.8314695954322815, -0.8819212913513184, -0.9238795042037964, -0.9569403529167175, -0.9807852506637573, -0.9951847195625305, 1.0, 0.9807852506637573, 0.9238795042037964, 0.8314695954322815, 0.7071067690849304, 0.5555702447891235, 0.3826834261417389, 0.19509032368659973, -1.8369701465288538e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, 1.0, 0.9807852506637573, 0.9238795042037964, 0.8314695954322815, 0.7071067690849304, 0.5555702447891235, 0.3826834261417389, 0.19509032368659973, -1.8369701465288538e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -2.4492937051703357e-16, -0.0980171412229538, -0.19509032368659973, -0.290284663438797, -0.3826834261417389, -0.4713967442512512, -0.5555702447891235, -0.6343932747840881, -0.7071067690849304, -0.7730104327201843, -0.8314695954322815, -0.8819212913513184, -0.9238795042037964, -0.9569403529167175, -0.9807852506637573, -0.9951847195625305, -1.0, -0.9951847195625305, -0.9807852506637573, -0.9569403529167175, -0.9238795042037964, -0.8819212913513184, -0.8314695954322815, -0.7730104327201843, -0.7071067690849304, -0.6343932747840881, -0.5555702447891235, -0.4713967442512512, -0.3826834261417389, -0.290284663438797, -0.19509032368659973, -0.0980171412229538, -2.4492937051703357e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, -1.0, -0.9807852506637573, -0.9238795042037964, -0.8314695954322815, -0.7071067690849304, -0.5555702447891235, -0.3826834261417389, -0.19509032368659973, -2.4492937051703357e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, -1.0, -0.9807852506637573, -0.9238795042037964, -0.8314695954322815, -0.7071067690849304, -0.5555702447891235, -0.3826834261417389, -0.19509032368659973, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, 1.0, 0.9951847195625305, 0.9807852506637573, 0.9569403529167175, 0.9238795042037964, 0.8819212913513184, 0.8314695954322815, 0.7730104327201843, 0.7071067690849304, 0.6343932747840881, 0.5555702447891235, 0.4713967442512512, 0.3826834261417389, 0.290284663438797, 0.19509032368659973, 0.0980171412229538, -1.8369701465288538e-16, -0.0980171412229538, -0.19509032368659973, -0.290284663438797, -0.3826834261417389, -0.4713967442512512, -0.5555702447891235, -0.6343932747840881, -0.7071067690849304, -0.7730104327201843, -0.8314695954322815, -0.8819212913513184, -0.9238795042037964, -0.9569403529167175, -0.9807852506637573, -0.9951847195625305, 1.0, 0.9807852506637573, 0.9238795042037964, 0.8314695954322815, 0.7071067690849304, 0.5555702447891235, 0.3826834261417389, 0.19509032368659973, -1.8369701465288538e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, 1.0, 0.9807852506637573, 0.9238795042037964, 0.8314695954322815, 0.7071067690849304, 0.5555702447891235, 0.3826834261417389, 0.19509032368659973, -1.8369701465288538e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -2.4492937051703357e-16, -0.0980171412229538, -0.19509032368659973, -0.290284663438797, -0.3826834261417389, -0.4713967442512512, -0.5555702447891235, -0.6343932747840881, -0.7071067690849304, -0.7730104327201843, -0.8314695954322815, -0.8819212913513184, -0.9238795042037964, -0.9569403529167175, -0.9807852506637573, -0.9951847195625305, -1.0, -0.9951847195625305, -0.9807852506637573, -0.9569403529167175, -0.9238795042037964, -0.8819212913513184, -0.8314695954322815, -0.7730104327201843, -0.7071067690849304, -0.6343932747840881, -0.5555702447891235, -0.4713967442512512, -0.3826834261417389, -0.290284663438797, -0.19509032368659973, -0.0980171412229538, -2.4492937051703357e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, -1.0, -0.9807852506637573, -0.9238795042037964, -0.8314695954322815, -0.7071067690849304, -0.5555702447891235, -0.3826834261417389, -0.19509032368659973, -2.4492937051703357e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, -1.0, -0.9807852506637573, -0.9238795042037964, -0.8314695954322815, -0.7071067690849304, -0.5555702447891235, -0.3826834261417389, -0.19509032368659973, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, 1.0, 0.9951847195625305, 0.9807852506637573, 0.9569403529167175, 0.9238795042037964, 0.8819212913513184, 0.8314695954322815, 0.7730104327201843, 0.7071067690849304, 0.6343932747840881, 0.5555702447891235, 0.4713967442512512, 0.3826834261417389, 0.290284663438797, 0.19509032368659973, 0.0980171412229538, -1.8369701465288538e-16, -0.0980171412229538, -0.19509032368659973, -0.290284663438797, -0.3826834261417389, -0.4713967442512512, -0.5555702447891235, -0.6343932747840881, -0.7071067690849304, -0.7730104327201843, -0.8314695954322815, -0.8819212913513184, -0.9238795042037964, -0.9569403529167175, -0.9807852506637573, -0.9951847195625305, 1.0, 0.9807852506637573, 0.9238795042037964, 0.8314695954322815, 0.7071067690849304, 0.5555702447891235, 0.3826834261417389, 0.19509032368659973, -1.8369701465288538e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, 1.0, 0.9807852506637573, 0.9238795042037964, 0.8314695954322815, 0.7071067690849304, 0.5555702447891235, 0.3826834261417389, 0.19509032368659973, -1.8369701465288538e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -2.4492937051703357e-16, -0.0980171412229538, -0.19509032368659973, -0.290284663438797, -0.3826834261417389, -0.4713967442512512, -0.5555702447891235, -0.6343932747840881, -0.7071067690849304, -0.7730104327201843, -0.8314695954322815, -0.8819212913513184, -0.9238795042037964, -0.9569403529167175, -0.9807852506637573, -0.9951847195625305, -1.0, -0.9951847195625305, -0.9807852506637573, -0.9569403529167175, -0.9238795042037964, -0.8819212913513184, -0.8314695954322815, -0.7730104327201843, -0.7071067690849304, -0.6343932747840881, -0.5555702447891235, -0.4713967442512512, -0.3826834261417389, -0.290284663438797, -0.19509032368659973, -0.0980171412229538, -2.4492937051703357e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, -1.0, -0.9807852506637573, -0.9238795042037964, -0.8314695954322815, -0.7071067690849304, -0.5555702447891235, -0.3826834261417389, -0.19509032368659973, -2.4492937051703357e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, -1.0, -0.9807852506637573, -0.9238795042037964, -0.8314695954322815, -0.7071067690849304, -0.5555702447891235, -0.3826834261417389, -0.19509032368659973, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16}; +static uint16_t store_idx_dram[160] __attribute__((section(".pdcp_src"))) = {0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60, 128, 132, 136, 140, 144, 148, 152, 156, 160, 164, 168, 172, 176, 180, 184, 188, 0, 4, 8, 12, 16, 20, 24, 28, 128, 132, 136, 140, 144, 148, 152, 156, 32, 36, 40, 44, 48, 52, 56, 60, 160, 164, 168, 172, 176, 180, 184, 188, 0, 4, 8, 12, 128, 132, 136, 140, 16, 20, 24, 28, 144, 148, 152, 156, 32, 36, 40, 44, 160, 164, 168, 172, 48, 52, 56, 60, 176, 180, 184, 188, 0, 4, 128, 132, 8, 12, 136, 140, 16, 20, 144, 148, 24, 28, 152, 156, 32, 36, 160, 164, 40, 44, 168, 172, 48, 52, 176, 180, 56, 60, 184, 188, 0, 128, 4, 132, 8, 136, 12, 140, 16, 144, 20, 148, 24, 152, 28, 156, 32, 160, 36, 164, 40, 168, 44, 172, 48, 176, 52, 180, 56, 184, 60, 188}; +static uint32_t coffset_dram[16] __attribute__((section(".pdcp_src"))) = {0, 8, 4, 12, 2, 10, 6, 14, 1, 9, 5, 13, 3, 11, 7, 15}; +static float gold_out_dram[2048] __attribute__((section(".pdcp_src"))) = {30.38982582092285, 52.4919319152832, -64.93447875976562, -1.7994935512542725, 0.5312617421150208, -11.845783233642578, -11.25826358795166, -26.447200775146484, 18.520246505737305, 0.6710554957389832, -16.224323272705078, 24.73272132873535, 10.500828742980957, -25.005104064941406, 26.375139236450195, 55.130855560302734, -52.98527145385742, -99.55455017089844, -47.792816162109375, -6.361907482147217, 30.096248626708984, -2.7359507083892822, 14.0851469039917, 19.43863868713379, -10.215001106262207, 19.262540817260742, 36.93578338623047, -10.241194725036621, 16.08917808532715, 35.28187942504883, -34.48371124267578, -44.1446533203125, 7.031262397766113, 15.094441413879395, -37.46671676635742, -25.160749435424805, 19.66892433166504, -15.162410736083984, 1.7627214193344116, -13.169831275939941, 2.640871286392212, 56.30009841918945, 29.235185623168945, -0.20921719074249268, 59.452980041503906, 14.55429744720459, -42.06559753417969, -34.07062911987305, 5.642068862915039, 10.124176979064941, -21.290016174316406, 48.547088623046875, -17.803701400756836, 47.41735076904297, -1.9549849033355713, 20.87868881225586, 24.24578857421875, -10.6095609664917, -7.647822380065918, 23.013660430908203, 10.564753532409668, 24.62432289123535, -32.91133117675781, -37.923274993896484, -63.3153076171875, 59.79908752441406, 32.5206413269043, 6.885171413421631, 47.8851203918457, 46.53282928466797, 8.29708480834961, 10.517952919006348, -35.673336029052734, 12.65208625793457, 44.865882873535156, 50.411102294921875, -15.788732528686523, 28.244199752807617, 37.3781623840332, -24.202985763549805, -0.9476199746131897, 10.923133850097656, 14.70875072479248, -7.117061138153076, -19.048194885253906, 10.194897651672363, -0.5000114440917969, 26.742921829223633, 16.668960571289062, 16.601890563964844, -28.44013023376465, 9.216577529907227, -61.959022521972656, 8.689881324768066, -59.160404205322266, 22.489295959472656, -13.145289421081543, 2.0621449947357178, -41.792293548583984, 13.847508430480957, 18.123571395874023, -25.779977798461914, -8.8235445022583, -19.640066146850586, -15.772799491882324, -16.128557205200195, 32.49431228637695, -14.874480247497559, -13.077047348022461, -76.86676025390625, -7.0281453132629395, -18.541208267211914, -7.931278228759766, -18.801408767700195, 2.3116352558135986, -12.461540222167969, -9.771621704101562, 48.87181091308594, 2.9966838359832764, 11.987529754638672, 41.06984329223633, -0.656406581401825, -15.131464004516602, 15.745871543884277, -24.96202278137207, 5.901882171630859, 7.707090377807617, -0.39422470331192017, -13.195484161376953, -13.689674377441406, 34.5557975769043, -14.024221420288086, 1.75620436668396, 11.214133262634277, 5.420673370361328, 7.923540115356445, -42.82963943481445, 31.217769622802734, 26.464149475097656, -37.962799072265625, 1.0532405376434326, 23.370512008666992, 27.696449279785156, -42.4349365234375, 14.32654094696045, 37.48066329956055, 60.23787307739258, -15.290885925292969, -13.5526704788208, -5.286037445068359, -1.9566154479980469, 9.97933578491211, 11.69211196899414, -59.29701614379883, -31.946958541870117, -7.0449113845825195, 0.10742989182472229, 53.75153732299805, -11.005261421203613, -12.975703239440918, 55.6136360168457, -16.436023712158203, 27.2010498046875, 11.47144603729248, 21.080028533935547, -4.693336486816406, 29.30329704284668, 54.52040100097656, -8.780407905578613, -19.507801055908203, -0.46806415915489197, -12.679871559143066, -15.400189399719238, -29.88102149963379, -29.991455078125, 21.243152618408203, 4.321026802062988, 49.437225341796875, 4.519831657409668, -12.947175025939941, -17.565690994262695, 42.90678024291992, -8.986313819885254, -32.34327697753906, 37.24126052856445, 6.002228260040283, 76.4384765625, -10.62026596069336, -31.652902603149414, 15.59207534790039, -9.385394096374512, 20.425416946411133, -1.0460917949676514, 23.328327178955078, -29.29788589477539, -1.8601490259170532, 20.78265953063965, -6.868046283721924, 57.955963134765625, -20.11995506286621, 113.62064361572266, -62.55335998535156, -29.784683227539062, -30.134836196899414, -8.201340675354004, 45.741783142089844, 35.43132400512695, 3.5757229328155518, -2.478344678878784, -35.13006591796875, -0.09553336352109909, -32.14924240112305, -15.91334056854248, 38.3219108581543, -16.987844467163086, -32.09724807739258, 10.645455360412598, -23.5710506439209, 7.691153526306152, -17.434438705444336, -24.95379638671875, -14.95767593383789, -36.87055969238281, 12.141437530517578, 35.84382247924805, -4.6027703285217285, 14.628016471862793, 41.059242248535156, -29.088821411132812, 22.542856216430664, 6.5376458168029785, 27.467527389526367, 25.22661590576172, -33.7064094543457, 33.95758819580078, 61.205997467041016, -20.3825626373291, -50.06745910644531, 17.259021759033203, 14.08410358428955, 39.769798278808594, -11.33022403717041, 42.56198501586914, -0.5472179651260376, 14.832829475402832, -20.53400993347168, 10.814696311950684, -22.44136619567871, -30.2261905670166, -69.49264526367188, -7.724966526031494, -28.79193687438965, 19.861618041992188, 3.283924102783203, -40.467376708984375, 21.924285888671875, -4.077780246734619, 19.677297592163086, -22.2650089263916, -69.8117904663086, 33.0049934387207, -57.53940963745117, 31.04233169555664, 21.420604705810547, 21.559947967529297, -71.83209228515625, 12.085083961486816, 1.8875890970230103, -39.02857208251953, 3.624412775039673, -27.3616943359375, -12.409246444702148, -28.6527042388916, 45.4044189453125, 45.91078186035156, -7.11227560043335, -10.861435890197754, -42.37554931640625, 22.92938804626465, -15.50766658782959, -41.310699462890625, 0.12689973413944244, -31.773042678833008, 15.408442497253418, 23.022462844848633, 33.21366500854492, -29.317676544189453, -28.574275970458984, -23.286020278930664, 10.669520378112793, -4.316251754760742, 39.47056579589844, 12.427091598510742, 75.01459503173828, 26.83214569091797, 44.29405212402344, -24.717741012573242, -21.526935577392578, 2.313694477081299, 19.26749610900879, 25.003250122070312, 58.38365936279297, 48.503822326660156, 25.662973403930664, -8.768186569213867, 13.39122200012207, -17.713457107543945, -36.2427864074707, 21.288074493408203, -2.5080251693725586, -12.197999954223633, 19.472497940063477, 24.039180755615234, 28.986474990844727, -59.89807891845703, -15.817804336547852, -16.9969482421875, -16.325883865356445, -8.594147682189941, -17.815195083618164, 57.310001373291016, -9.841782569885254, -18.198062896728516, -25.780899047851562, -13.019448280334473, -63.91678237915039, -12.426958084106445, 90.20764923095703, 34.596309661865234, -12.001412391662598, -6.818112850189209, 11.326407432556152, -1.2251638174057007, 53.993812561035156, 45.33302688598633, -4.809146881103516, -15.883832931518555, -1.2931251525878906, -17.837337493896484, -11.075569152832031, -5.548623561859131, 28.348108291625977, -6.312564373016357, -15.552154541015625, -50.80936050415039, 61.77203369140625, 21.272876739501953, 11.747868537902832, 23.555553436279297, 22.597797393798828, -16.448932647705078, 20.746673583984375, -14.713722229003906, -32.09149169921875, 30.978809356689453, -40.63076400756836, -61.227264404296875, -29.824865341186523, -25.772808074951172, -37.17141342163086, -19.58641242980957, -33.63029479980469, 26.38206672668457, -7.080005645751953, 11.146652221679688, -8.181002616882324, -21.576597213745117, 22.58726692199707, -4.394047260284424, 14.706794738769531, -25.723867416381836, 30.62740707397461, -28.722332000732422, -2.1597704887390137, -18.423721313476562, -52.20005416870117, 18.937225341796875, -60.06988525390625, 45.832855224609375, 20.43189811706543, -20.000709533691406, 27.687944412231445, 19.53691864013672, -49.69329071044922, -31.27743148803711, 36.718467712402344, 9.04057788848877, -11.865164756774902, 21.109054565429688, -36.25643539428711, -33.87984085083008, -31.477251052856445, -11.995159149169922, -3.284924030303955, 40.234344482421875, -0.6030840277671814, -12.712334632873535, 22.083566665649414, -17.707775115966797, -4.373197078704834, -11.62076473236084, 67.1925048828125, 27.948884963989258, -29.81713104248047, 16.86262321472168, -68.31987762451172, -33.3768310546875, -5.634891986846924, 34.7213134765625, 36.45740509033203, -22.177658081054688, 33.363746643066406, 3.049490451812744, 7.9793548583984375, 16.724075317382812, -37.15633773803711, -50.174652099609375, 11.500628471374512, -12.092133522033691, -6.807287693023682, 11.732624053955078, -51.13719940185547, 6.528165817260742, -33.13725280761719, 44.62592697143555, 11.497196197509766, -3.450958490371704, 14.396034240722656, -10.070473670959473, -24.78923797607422, 22.255794525146484, -66.81724548339844, -16.268327713012695, -3.0812880992889404, -25.081195831298828, -56.52568054199219, 32.01549530029297, -9.714097023010254, -0.5422074794769287, -2.223917007446289, 1.9099912643432617, 32.357337951660156, -6.497528553009033, -21.676570892333984, 12.662519454956055, 44.277976989746094, 35.02933883666992, 3.406987190246582, 16.798837661743164, -64.6799087524414, 40.101539611816406, 38.7996711730957, -31.888660430908203, 23.36688995361328, -54.69098663330078, 28.215991973876953, -21.05918312072754, 51.42454147338867, -66.48027801513672, -39.270626068115234, -27.729307174682617, -3.9768002033233643, 1.1003822088241577, -3.7472243309020996, -23.33631706237793, 41.80918502807617, -30.251718521118164, -87.63188171386719, 43.604736328125, -18.138809204101562, 94.15412139892578, -12.373964309692383, 18.647768020629883, 10.93346118927002, 37.70541000366211, -1.3654859066009521, 56.93065643310547, 53.48988342285156, -3.095073938369751, -39.160011291503906, -40.45185852050781, -63.52324676513672, 18.50838851928711, -57.10224533081055, -88.29994201660156, -27.090152740478516, -30.98236656188965, -18.018264770507812, -50.96867370605469, 25.956626892089844, 5.857209205627441, -49.209983825683594, 62.375484466552734, 62.88810729980469, 2.4343302249908447, 26.47586441040039, -38.226783752441406, -7.5095534324646, -5.386425018310547, -6.976663589477539, 85.03459167480469, -10.105415344238281, -9.10916805267334, 12.359689712524414, -43.69741439819336, -14.69172477722168, 45.83854293823242, -12.611932754516602, 41.811214447021484, 5.130271911621094, -2.5436902046203613, 0.7092686295509338, 44.44910430908203, 30.58268928527832, 10.810023307800293, 19.004037857055664, -15.332728385925293, 32.85807800292969, 8.589259147644043, 2.6308419704437256, -22.286401748657227, 47.50263214111328, -42.16958999633789, 37.33756637573242, 26.82210922241211, -10.369365692138672, -32.79951477050781, -26.238710403442383, 63.89601516723633, 4.518547534942627, 39.07303237915039, -22.559886932373047, 7.9814982414245605, -40.597434997558594, -10.751870155334473, -1.0735067129135132, -5.760400295257568, 44.36627960205078, -32.59822082519531, 29.878360748291016, 57.43583679199219, -3.617452621459961, -9.76460075378418, 44.86806869506836, -77.31253051757812, -13.362045288085938, -54.89024353027344, 41.75454330444336, 11.03725814819336, 6.181026935577393, -60.47294616699219, -0.09036508202552795, 6.262687683105469, 4.908596992492676, 30.109539031982422, 3.203132152557373, 14.10075855255127, 17.323698043823242, 24.08464813232422, -30.282718658447266, 32.76548385620117, 4.277492046356201, 43.37089920043945, 30.48298454284668, -30.695301055908203, -6.53021240234375, -11.294929504394531, -24.739397048950195, 8.594111442565918, 33.64927673339844, -5.307898998260498, 25.974712371826172, 52.591819763183594, 27.389638900756836, 43.60344314575195, 40.3409538269043, -2.8914363384246826, -2.1538727283477783, 61.875370025634766, -8.085116386413574, 5.490787506103516, -16.959089279174805, 18.64356231689453, -15.714513778686523, -10.785223007202148, -17.461393356323242, 14.527501106262207, 60.44695281982422, -18.74706268310547, -11.64108943939209, 36.604034423828125, 36.61542510986328, 62.05514144897461, -29.231279373168945, 29.332216262817383, 23.22649383544922, -31.049375534057617, -4.61771297454834, 20.49258041381836, 13.553462982177734, 61.77769088745117, -20.00740623474121, -29.707305908203125, -22.679229736328125, 5.638307571411133, 18.109956741333008, 6.134506702423096, 2.533987045288086, -21.680194854736328, -51.48352813720703, 33.97454071044922, -2.836535692214966, 27.802406311035156, 71.1666030883789, -17.976390838623047, 24.719173431396484, -13.253683090209961, 0.31461453437805176, -27.071556091308594, 21.18259620666504, -5.981715202331543, -36.50979995727539, 7.547889232635498, 23.69603729248047, -30.76531982421875, -2.4087166786193848, -0.3668588101863861, 44.037933349609375, 22.8243350982666, 47.71971893310547, 14.82315444946289, 53.3250846862793, -4.836851596832275, 77.08453369140625, -21.485105514526367, -89.56346130371094, -2.3249003887176514, -30.068017959594727, 29.25523567199707, -2.7833287715911865, -1.0077917575836182, -24.433731079101562, -21.928749084472656, -53.655921936035156, -18.59251594543457, -6.855598449707031, -0.1794571876525879, 54.16160583496094, 12.124150276184082, 41.20157241821289, 19.328800201416016, -33.72182846069336, 31.888202667236328, -6.479382514953613, 11.473490715026855, -39.30207061767578, 46.06832504272461, -48.914337158203125, -14.291927337646484, 54.770904541015625, -36.207332611083984, 54.17787551879883, -12.661914825439453, -15.921741485595703, -3.2135674953460693, 3.7698333263397217, 0.7700501680374146, -20.748207092285156, -25.082035064697266, -6.909147262573242, -35.94184494018555, -9.542080879211426, -46.766746520996094, -44.42344665527344, -13.736041069030762, 22.76996612548828, 19.96965789794922, -25.624956130981445, 6.72365665435791, 3.164912223815918, 59.061920166015625, -28.507081985473633, 28.90400505065918, 8.960251808166504, -58.56135559082031, -26.409088134765625, -47.63398361206055, -57.28182601928711, 8.744938850402832, 40.929840087890625, 3.944193124771118, -32.41035842895508, 57.10382080078125, -13.864419937133789, 45.14252853393555, 55.46626663208008, 39.57969284057617, 16.55810546875, 37.542266845703125, 4.829463005065918, -47.223052978515625, -26.926027297973633, 12.749354362487793, 54.40329360961914, 55.18766403198242, -15.0532865524292, 42.84213638305664, 0.2119489312171936, -37.16535568237305, -31.22291374206543, -28.776588439941406, -21.261754989624023, 27.344388961791992, 14.110435485839844, 37.982730865478516, 11.265841484069824, -45.23672866821289, -54.286766052246094, 28.716638565063477, 10.130167961120605, -1.64193594455719, -4.144863605499268, -9.26651382446289, -69.49032592773438, 14.830257415771484, -41.682228088378906, -11.51773452758789, 49.56330871582031, 38.62425994873047, -7.364985466003418, -47.91169357299805, 9.001437187194824, 57.43301010131836, 27.34564781188965, 3.584840774536133, -23.7438907623291, 3.9701011180877686, -7.171557903289795, 61.25443649291992, 21.777860641479492, 15.578850746154785, -20.426727294921875, -6.538726806640625, -20.911588668823242, -29.910863876342773, -47.647377014160156, -5.630789756774902, -6.058784484863281, -2.2162868976593018, -35.972572326660156, -6.674973011016846, -2.9440765380859375, 21.048974990844727, -23.478206634521484, -6.480995178222656, 91.0115737915039, -15.874064445495605, 42.1212272644043, -45.3681755065918, -62.21409225463867, -21.35637664794922, 21.04701805114746, 14.55047607421875, 58.43314743041992, 39.66401672363281, -0.3525258004665375, -43.08797073364258, 10.91086196899414, 4.205819606781006, -29.501283645629883, 19.34724998474121, 15.453070640563965, -41.985389709472656, -57.58438491821289, 22.97024154663086, -28.65813636779785, 15.516410827636719, -46.2332878112793, 42.5369758605957, -95.71707153320312, -11.87922191619873, 19.132116317749023, 13.005454063415527, -60.35832595825195, -62.865455627441406, 18.72309684753418, -26.742300033569336, -56.845970153808594, 31.559701919555664, 42.24842834472656, 32.65948486328125, 12.108685493469238, -12.81543254852295, -1.2014044523239136, 11.3486328125, 31.756811141967773, 7.065295696258545, -11.230010032653809, 42.09447479248047, 22.135629653930664, 22.852622985839844, -5.9519500732421875, 43.11476135253906, 13.869848251342773, -23.879396438598633, -40.61936569213867, -0.4016021490097046, 61.321434020996094, -8.164134979248047, -6.43006706237793, 34.68213653564453, 40.158233642578125, -12.67812442779541, -0.9115983843803406, 17.498720169067383, -47.33757781982422, -30.58778190612793, 11.353656768798828, -2.171226978302002, 5.597340106964111, 6.61049747467041, -17.561885833740234, 38.29352569580078, -14.779472351074219, -6.972925662994385, 47.78377151489258, -14.396355628967285, 22.454832077026367, 70.7396469116211, 67.16130065917969, 9.56521987915039, 1.6415023803710938, 66.46475982666016, 14.697888374328613, -6.306914806365967, 40.59209442138672, -59.620452880859375, -2.0081777572631836, 17.70447540283203, -1.645006775856018, -51.106510162353516, 6.740960597991943, -0.049415864050388336, -35.47935485839844, 10.636265754699707, 22.20138168334961, 29.38077163696289, -39.5543212890625, 36.75135040283203, -29.964174270629883, -53.38729476928711, -23.97929573059082, 29.43088150024414, -27.394216537475586, -15.348445892333984, 29.424823760986328, 49.06858825683594, -43.103084564208984, -14.418046951293945, 35.740657806396484, -13.587244033813477, 6.9385457038879395, 38.22084045410156, -10.278460502624512, 18.11637306213379, 22.937843322753906, -20.066648483276367, -36.618934631347656, -5.471860885620117, -6.1864776611328125, -28.893903732299805, 9.890392303466797, 5.638457775115967, -8.544501304626465, -22.55194091796875, -44.303401947021484, -14.787630081176758, 71.79298400878906, -1.3870450258255005, -37.784873962402344, -15.494149208068848, 37.422813415527344, -32.980464935302734, -43.8489990234375, -37.91025924682617, -4.940052509307861, 3.2289371490478516, -18.62217903137207, -7.457568168640137, 15.335205078125, -43.18107604980469, -14.6784086227417, 26.064916610717773, -12.486893653869629, 21.100852966308594, -36.549346923828125, 24.453174591064453, -18.402244567871094, 31.959030151367188, -41.683895111083984, -0.6635093092918396, -28.193275451660156, -27.665571212768555, 28.752309799194336, 1.7230861186981201, 10.741132736206055, -23.696929931640625, -10.72785758972168, 92.05084991455078, 7.201746940612793, 42.39936065673828, -15.665143013000488, 16.681154251098633, -40.96495056152344, -5.598023414611816, 11.591371536254883, 38.39120101928711, -25.913738250732422, 11.054530143737793, -12.055970191955566, -29.916669845581055, 23.444610595703125, 32.962799072265625, -41.05746841430664, -28.728679656982422, 29.675140380859375, -11.049210548400879, 30.596118927001953, -2.6706833839416504, -48.222320556640625, 19.55522918701172, 5.926098346710205, -23.435949325561523, -34.8942985534668, 34.944732666015625, 36.79431915283203, -60.51356506347656, 16.385940551757812, -78.79833984375, -11.825597763061523, -7.82380485534668, -57.65352249145508, -24.78723907470703, 5.588088035583496, 0.48200660943984985, 33.32334518432617, -11.988558769226074, 9.074738502502441, 28.50767707824707, -76.89656066894531, 8.202669143676758, 25.064157485961914, 14.764930725097656, 15.002360343933105, -35.30270004272461, 34.617549896240234, -15.959022521972656, -55.294559478759766, 56.722496032714844, 0.7298219799995422, 33.192203521728516, 19.502641677856445, -24.655996322631836, -7.116942405700684, -89.9569320678711, 60.70620346069336, 56.399845123291016, 19.378686904907227, 21.095151901245117, -22.545307159423828, 30.599817276000977, -1.4708805084228516, -23.159439086914062, 68.05579376220703, -16.930702209472656, 30.881248474121094, 6.296972274780273, -0.556522786617279, 9.534024238586426, -2.194652557373047, -3.4665796756744385, -23.80758285522461, -30.04372787475586, 30.012556076049805, -19.5918025970459, 13.102316856384277, -38.97200393676758, 2.818822145462036, 12.677482604980469, 20.426496505737305, 19.528358459472656, 41.411766052246094, 7.251917362213135, 32.359127044677734, 33.9033317565918, 33.47911071777344, 31.193065643310547, 43.21883010864258, -15.850151062011719, -24.982664108276367, 9.260178565979004, -30.406185150146484, -16.050546646118164, -8.382170677185059, 20.64236068725586, 9.214627265930176, 16.130409240722656, 23.70372772216797, 8.533390998840332, -44.927886962890625, -61.91059875488281, 10.346423149108887, -20.81917953491211, -63.68513488769531, 29.857112884521484, 30.673126220703125, 11.80519962310791, 3.199239492416382, -29.844440460205078, 4.279415130615234, 2.0878756046295166, -7.252503871917725, 9.628222465515137, 7.755639553070068, -14.783489227294922, 9.699686050415039, -29.556793212890625, 29.71083641052246, 20.172317504882812, -27.537750244140625, -39.31173324584961, -12.32853889465332, 34.70823669433594, 6.844949245452881, -44.40131759643555, 10.43381404876709, -33.68618392944336, -8.882491111755371, -4.077391624450684, -12.944129943847656, -9.677940368652344, -64.46842956542969, 2.394895553588867, -0.23794247210025787, -25.677915573120117, 14.06513500213623, 13.73123550415039, -59.701969146728516, -61.62263870239258, 5.587626934051514, -5.532928466796875, -21.122472763061523, 7.572697162628174, -3.1024372577667236, -10.79825210571289, -13.817862510681152, 34.8513298034668, 6.085819721221924, -25.196060180664062, -10.587114334106445, 4.009164810180664, 21.982608795166016, -33.75154113769531, -57.76737976074219, 31.33755874633789, -11.55459976196289, -54.54804229736328, -3.3742613792419434, 8.693497657775879, -12.07876968383789, 34.989749908447266, 25.86573600769043, -4.467497825622559, -20.913082122802734, -13.610451698303223, 10.140151023864746, -10.417295455932617, -42.71298599243164, -10.807168006896973, 35.722232818603516, -13.587526321411133, 21.420276641845703, -5.148536205291748, -17.55034637451172, 38.484657287597656, -29.561931610107422, 35.50322723388672, 4.9452409744262695, 22.126943588256836, 2.624424457550049, 39.03178405761719, -23.095703125, -24.6737060546875, -71.74528503417969, 26.00613021850586, 11.424497604370117, 0.15325769782066345, -21.737117767333984, -36.69271469116211, 0.17137308418750763, 44.23153305053711, -15.362649917602539, 25.089519500732422, 38.707679748535156, -47.044334411621094, -19.438623428344727, 28.79301643371582, 10.500325202941895, -7.048440456390381, -48.49415588378906, 4.916762828826904, -39.07350540161133, 17.61198616027832, 29.689720153808594, -42.36859130859375, 43.91960525512695, -6.711815357208252, -73.19713592529297, 7.647465229034424, -33.1434440612793, 57.2241325378418, 44.51469802856445, 52.07069396972656, -16.018619537353516, -11.4232816696167, 35.140750885009766, -12.295768737792969, 35.391841888427734, -12.8064546585083, -34.998512268066406, -22.00688934326172, 57.74359893798828, 11.853630065917969, 29.55349349975586, -12.984040260314941, 63.40018844604492, -1.626303791999817, 6.143182754516602, -8.254340171813965, -16.371234893798828, 49.30348205566406, 11.16666316986084, 14.588465690612793, -48.359703063964844, -92.22029113769531, -31.463844299316406, -14.847587585449219, -16.66724395751953, 35.5726432800293, 13.194440841674805, 25.329345703125, -10.25412368774414, 1.8430339097976685, 20.674955368041992, 20.569141387939453, 50.77140426635742, -35.92190933227539, -22.246889114379883, -6.7654619216918945, -53.016963958740234, 46.010231018066406, -8.863903045654297, -92.00695037841797, 3.8651702404022217, -8.486802101135254, 16.184234619140625, 14.47881031036377, 22.337587356567383, -14.411518096923828, -11.20079517364502, -50.709373474121094, 46.63883590698242, -17.73668098449707, 16.661975860595703, 0.3088224232196808, -43.73965835571289, -27.978689193725586, -13.048844337463379, -33.155517578125, 13.404362678527832, -42.47051239013672, 23.68165397644043, -36.33982849121094, -13.729449272155762, 9.59710693359375, 27.148860931396484, -11.040682792663574, -0.07919503003358841, 8.356332778930664, -8.332365036010742, -15.307043075561523, 29.367149353027344, 35.624855041503906, 15.596348762512207, 18.539960861206055, 21.378406524658203, 3.788017749786377, -8.340230941772461, -45.76990509033203, 27.650146484375, 12.365447044372559, 49.098533630371094, -48.76692199707031, -33.85171890258789, 2.6015307903289795, 54.3192138671875, -48.0745849609375, -23.62484359741211, -33.987152099609375, 26.79170036315918, 15.093236923217773, -34.62992858886719, -12.408158302307129, -15.016279220581055, -45.8746337890625, -21.897327423095703, 0.08418198674917221, -31.515422821044922, 5.714407920837402, 31.351905822753906, -52.49008560180664, 22.06743621826172, -26.451549530029297, -22.3890323638916, 30.31171417236328, 2.437131643295288, 0.7109564542770386, 30.425748825073242, 49.01150131225586, -22.549203872680664, -45.76474380493164, 10.642104148864746, 18.137210845947266, 61.060115814208984, -2.090782403945923, 34.84312438964844, 36.5809440612793, 6.335058212280273, -18.91739845275879, -14.645041465759277, 1.1470798254013062, 7.143068313598633, -21.1218318939209, 29.89716911315918, -47.67090606689453, 21.33962631225586, 48.54807662963867, -6.598861217498779, 26.37474250793457, -26.480939865112305, -17.503528594970703, 11.919939041137695, -39.77357864379883, -28.454219818115234, -0.8177854418754578, 7.090860366821289, 34.53469467163086, -68.92385864257812, 18.27311897277832, -12.72938346862793, -39.55592346191406, -24.87112045288086, 46.408103942871094, -63.56343078613281, 6.889331817626953, 30.00667953491211, 6.539306640625, -41.47411346435547, 35.403785705566406, -11.644259452819824, 17.61440658569336, 9.010285377502441, -64.44937896728516, -6.562597751617432, -36.134422302246094, 63.58808898925781, 38.61186981201172, -3.343118906021118, 32.660797119140625, -12.847716331481934, 26.1711368560791, 26.02455711364746, -57.24940490722656, 12.595427513122559, 20.649524688720703, 19.278705596923828, 24.261688232421875, 5.352986812591553, 57.900840759277344, 4.890974044799805, 5.431053161621094, -36.2486686706543, 43.033905029296875, -9.885940551757812, 7.111036777496338, 47.94770050048828, 32.909446716308594, -12.422930717468262, -25.817184448242188, 8.018428802490234, -19.082120895385742, -35.56319808959961, 10.864108085632324, 8.286079406738281, 59.61457061767578, -53.72282028198242, -31.71713638305664, 28.763980865478516, -57.328765869140625, -7.567302703857422, 8.477165222167969, -28.306793212890625, 27.69426155090332, 28.951080322265625, -93.57333374023438, -25.27135467529297, -31.17747688293457, -22.744558334350586, 51.00212860107422, -24.148691177368164, 25.96534538269043, 1.0417861938476562, 49.70478439331055, -0.6230823397636414, 22.98863983154297, -61.248802185058594, -56.279693603515625, 47.14849853515625, 6.638595104217529, -29.228939056396484, -37.19944763183594, 36.68536376953125, 13.214158058166504, 8.444016456604004, -23.066587448120117, 53.05925369262695, 48.55501174926758, 56.45758819580078, 44.0400276184082, 17.567861557006836, 18.592100143432617, 1.414522409439087, -20.161869049072266, 1.3679397106170654, -14.317580223083496, 22.866741180419922, -66.53461456298828, 1.873679280281067, -6.847891330718994, 11.780094146728516, 3.179858922958374, -25.135623931884766, -10.979515075683594, 5.1688079833984375, -5.850103855133057, 15.441912651062012, -53.563323974609375, -3.9608044624328613, 68.50889587402344, 29.4231014251709, 32.512847900390625, -14.353959083557129, 9.348841667175293, -28.470365524291992, 51.37057876586914, 7.341941833496094, 55.600555419921875, -46.773582458496094, 27.143030166625977, -33.463890075683594, 18.058595657348633, 15.211125373840332, -45.773841857910156, -45.46225357055664, -57.09310531616211, 24.788301467895508, -72.90972137451172, 35.13088607788086, -56.76130676269531, -16.89533805847168, -4.104438781738281, -17.15865135192871, -17.281232833862305, -27.249156951904297, -14.970480918884277, -44.966697692871094, 9.609073638916016, -12.870328903198242, 21.01743507385254, -6.288907527923584, -39.0285758972168, 19.002788543701172, -9.168132781982422, -63.049163818359375, -23.357362747192383, 3.4979538917541504, 31.902870178222656, 38.08955001831055, 16.611705780029297, -13.547142028808594, -43.799232482910156, -41.501129150390625, -29.135648727416992, -4.408758640289307, -2.5942184925079346, 11.78104305267334, -3.63379168510437, -46.52483367919922, -14.256589889526367, 6.567903995513916, 33.31809616088867, -16.238435745239258, -21.62598419189453, 23.52800178527832, 27.599754333496094, -29.841703414916992, -3.415412425994873, 2.304781198501587, 35.07392501831055, -31.43979835510254, -24.995901107788086, -5.426947593688965, 44.41810989379883, 5.284108638763428, 48.439231872558594, 71.38750457763672, 4.591434001922607, 6.409441947937012, -7.495677471160889, 31.63993263244629, 14.778212547302246, 26.136428833007812, 18.168962478637695, -7.4864959716796875, 53.534366607666016, 13.381647109985352, 18.878381729125977, -24.731611251831055, 30.001924514770508, -32.73860168457031, -30.285463333129883, -0.8645781874656677, 16.81407356262207, 26.059303283691406, 41.98638916015625, 13.383223533630371, -51.64400863647461, -58.87690734863281, 4.060090065002441, -30.188491821289062, 6.111217498779297, -3.236760139465332, 33.816802978515625, -0.8885732889175415, 66.19534301757812, -25.96729850769043, 4.481071472167969, -17.167369842529297, 23.78236961364746, 12.559821128845215, -4.058795928955078, 36.296443939208984, 10.045344352722168, 35.78053283691406, 37.5812873840332, -8.310636520385742, -18.667484283447266, 39.025962829589844, 8.331840515136719, -6.8151726722717285, -8.838766098022461, -28.664121627807617, -15.932632446289062, -7.285360336303711, 29.759366989135742, 23.626548767089844, -4.791287422180176, -23.380882263183594, -14.666007995605469, -29.21908187866211, -1.2839958667755127, -25.541168212890625, 5.867888450622559, 26.628843307495117, -3.0702507495880127, 44.808414459228516, -54.19673538208008, 29.284915924072266, -9.994022369384766, -19.88618278503418, -11.843550682067871, 1.410338044166565, -58.943172454833984, 110.5713882446289, -74.11199951171875, -10.622076988220215, -13.551396369934082, 26.963205337524414, -4.856464385986328, 30.942073822021484, -2.2286155223846436, 1.3677268028259277, -30.729372024536133, -29.316408157348633, 9.934428215026855, 20.197893142700195, 42.32325744628906, -12.736859321594238, -32.21785354614258, 53.01451110839844, 11.961737632751465, 7.6688103675842285, -38.058963775634766, -48.890296936035156, -37.5340576171875, -0.9734965562820435, -6.458199501037598, 18.29006576538086, -31.21201515197754, -40.054542541503906, -24.01410675048828, 18.08285140991211, 29.15496063232422, 15.666305541992188, 6.9307966232299805, 5.539821147918701, -34.89903259277344, -27.661359786987305, -6.861081600189209, -6.272639274597168, -15.922525405883789, 27.566728591918945, -30.83807373046875, -14.928149223327637, -12.578715324401855, 57.24418258666992, -46.501285552978516, 16.00455665588379, 76.41522979736328, 56.569828033447266, 35.45503616333008, -3.629237174987793, 1.8862797021865845, -8.022059440612793, -10.526786804199219, 1.2434468269348145, -4.886309623718262, -17.73210906982422, 22.503690719604492, 33.107547760009766, -49.058475494384766, -31.69194984436035, -8.497472763061523, -14.58749008178711, 19.13364028930664, -17.276409149169922, -39.04441452026367, 13.87592887878418, 13.555644035339355, 54.63115310668945, 6.580443382263184, -47.665611267089844, -1.8600361347198486, -28.931861877441406, 6.488702297210693, -2.297093152999878, -31.375812530517578, 4.193899154663086, 2.549748659133911, -0.23248505592346191, -13.863704681396484, -45.50754165649414, -56.08494567871094, -10.77319622039795, -53.059242248535156, -4.374080657958984, 36.62470245361328, -8.415877342224121, -47.790184020996094, -56.59831619262695, 2.635486364364624, 19.365564346313477, 24.135997772216797, -39.31587600708008, 43.48545837402344, -4.298714637756348, -25.748947143554688, 23.880006790161133, -7.6412529945373535, -12.19851303100586, -37.150821685791016, -9.90937328338623, 14.778678894042969, -24.610843658447266, -10.720290184020996, -4.9838995933532715, 40.92131042480469, -15.341568946838379, 3.3946564197540283, -5.706061840057373, -8.999187469482422, 18.818166732788086, 20.4717960357666, 17.873828887939453, -2.141291618347168, 13.361233711242676, -1.0081058740615845, 33.152748107910156, 11.784483909606934, -19.43616485595703, -76.89905548095703, -14.251225471496582, -53.74473190307617, 28.84125328063965, 29.969886779785156, -0.7933849692344666, -31.59578514099121, -6.954652309417725, 26.906381607055664, 8.334290504455566, 35.606101989746094, 8.572312355041504, -32.427207946777344, -58.75034713745117, 33.77054977416992, 6.954433917999268, 64.1152114868164, 15.952493667602539, -3.958956241607666, -108.34278106689453, 30.114816665649414, 22.914480209350586, 21.96666717529297, 58.67547607421875, -14.647831916809082, -68.63465118408203, 27.20956802368164, -49.508209228515625, 16.29144287109375, 46.22052001953125, -19.66383934020996, 5.521824836730957, 5.918126106262207, 19.1645565032959, -47.26393127441406, -25.21507453918457, 29.959651947021484, -69.84446716308594, 52.04912185668945, -56.321990966796875, -28.00310707092285, 46.32307434082031, 18.138652801513672, 48.415748596191406, 70.23346710205078, 41.52629470825195, 20.646310806274414, -29.107891082763672, 19.30381965637207, -15.714296340942383, 15.15546703338623, 39.18896484375, 48.95741271972656, -52.917903900146484, 4.133459091186523, -18.664430618286133, 19.557233810424805, -18.5075626373291, -11.343433380126953, 31.747854232788086, 18.278491973876953, -20.929229736328125, -31.966970443725586, 29.453868865966797, -11.043798446655273, 2.229243516921997, 61.215431213378906, -12.691047668457031, -13.095016479492188, -1.398768424987793, 31.479976654052734, -17.672805786132812, -15.84514331817627, -31.668956756591797, 38.44218826293945, -32.18756103515625, 19.51974868774414, -0.6990933418273926, 31.380535125732422, -0.16624552011489868, 35.26125717163086, 8.771272659301758, 2.101356029510498, -10.964658737182617, -23.348609924316406, 22.213729858398438, 3.8147988319396973, 64.19286346435547, 46.419166564941406, -14.084931373596191, 45.17829513549805, -33.803165435791016, -94.29707336425781, -46.85500717163086, -1.7654348611831665, -7.476820468902588, -44.35251235961914, -46.787132263183594, -5.582213878631592, 0.10219737887382507, -13.62446117401123, -13.246835708618164, 0.10991973429918289, -24.570178985595703, 2.3031463623046875, -56.438297271728516, -2.590073585510254, -50.81691360473633, -37.931514739990234, 41.68531036376953, 29.02532196044922, -18.689653396606445, 18.96027946472168, 21.43017578125, 19.285968780517578, 4.08321475982666, -40.20400619506836, 27.510290145874023, -26.949499130249023, -0.6060711145401001, 36.59136199951172, 16.754728317260742, -25.025550842285156, -3.124239683151245, -35.19550323486328, -24.240224838256836, 23.763042449951172, -76.70467376708984, -7.229250431060791, 41.10930252075195, 47.47235107421875, 70.9964828491211, -53.592979431152344, -22.13165283203125, -12.178977966308594, 37.321022033691406, -21.55051040649414, -10.789937019348145, 14.083456039428711, -43.22451400756836, 38.5115966796875, -27.260021209716797, -12.473196983337402, 47.01280975341797, -6.201413631439209, 43.71082305908203, -19.685184478759766, 25.600576400756836, -20.219261169433594, -52.9697151184082, -6.594926357269287, 28.86669158935547, -37.44553756713867, -62.68598556518555, 7.522025108337402, 30.1093692779541, 58.62004470825195, -20.566448211669922, -39.45094680786133, 65.6551513671875, -44.16669464111328, 11.168968200683594, 62.3687858581543, 57.65843963623047, 60.18049621582031, 6.512808799743652, -15.08031940460205, 48.3937873840332, 12.570680618286133, -31.291828155517578, -36.4665412902832, -13.54675579071045, 7.565948963165283, 46.72874450683594, 29.495849609375, 6.138220310211182, -36.208770751953125, -32.69050979614258, 29.195837020874023, 19.201601028442383, -20.988842010498047, -9.807122230529785, -0.35516008734703064, -1.9557424783706665, -56.3674430847168, 34.47343826293945, -1.5255995988845825, 13.215970039367676, -16.03569221496582, 9.16751480102539, 36.904083251953125, -36.53075408935547, 16.186330795288086, -5.516717433929443, 31.470638275146484, -1.6200003623962402, 23.185441970825195, 2.339780569076538, 25.143823623657227, -14.628596305847168, 16.935976028442383, 17.55478858947754, -27.998973846435547, 38.427947998046875, -21.126426696777344, 12.759856224060059, 31.647825241088867, 11.303191184997559, 10.742276191711426, -44.549156188964844, 86.61466217041016, 15.0020112991333, -60.03311538696289, 61.82823944091797, 34.84516143798828, -48.48065185546875, 1.8680369853973389, 20.40099334716797, -13.656256675720215, 27.889232635498047, -0.6485489010810852, -29.747201919555664, -0.2693517208099365, 6.878387928009033, 10.780155181884766, 12.665331840515137, 23.683391571044922, 51.95445251464844, -23.969484329223633, 23.151657104492188, 66.09785461425781, 25.176679611206055, -17.94132423400879, 34.48830032348633, -22.806787490844727, -38.61572265625, -21.071760177612305, 22.859811782836914, -16.93267822265625, 23.738401412963867, -14.777173042297363, -45.25113296508789, 13.588252067565918, 4.027929782867432, 28.004444122314453, -9.96478271484375, -33.97005844116211, 13.21021842956543, -27.771785736083984, 49.56281280517578, 13.01721477508545, 22.86052703857422, -15.678380966186523, -14.936161994934082, -49.116336822509766, 100.9037094116211, -24.026500701904297, -46.375144958496094, -32.624935150146484, 55.11015319824219, -2.9292638301849365, 30.436038970947266, -2.0252623558044434, 39.67335891723633, 21.27581024169922, -11.005708694458008, 16.124441146850586, 16.998424530029297, -33.47844696044922, -2.2928848266601562, -45.3109016418457, -21.159528732299805, -8.646112442016602, 25.38279151916504, -27.350366592407227, -16.860458374023438, -17.309226989746094, 31.077756881713867, -37.28803253173828, -69.95774841308594, -24.355533599853516, -15.642457962036133, 30.733896255493164, 1.6670705080032349, 32.139862060546875, 29.992094039916992, -33.023277282714844, -23.443115234375, 45.808441162109375, -22.182363510131836, 37.184261322021484, 49.99237823486328, -15.578413963317871, -8.71860122680664, 64.35493469238281, 7.116894721984863, 14.197405815124512, 1.0432709455490112, -20.34511947631836, 94.19004821777344, -17.485755920410156, 16.004331588745117, -1.0247080326080322, 23.765623092651367, 29.243284225463867, 29.750463485717773, 54.00624465942383, -14.51031494140625, -5.2907538414001465, 6.173417091369629, -28.63832664489746, -11.283493041992188, -15.459351539611816, 31.500083923339844, -18.030399322509766, 9.060066223144531, -101.62721252441406, -5.414640426635742, -41.85200881958008, 23.858367919921875, 2.3570950031280518, -51.047489166259766, 29.46359634399414, 12.83670711517334, -3.7600491046905518, 32.7418098449707, 65.05026245117188, -37.08614730834961, 37.76924514770508, 13.338639259338379, -49.161251068115234, 4.821845531463623, 51.5823860168457, -23.767932891845703, -13.959707260131836, -23.321739196777344, 25.141881942749023, 68.4771728515625, 0.0688767060637474, -37.42802429199219, 51.29373550415039, 41.33728790283203, -12.372288703918457, -16.389636993408203, 7.117420196533203, -5.085729122161865, -53.43592071533203, -11.121040344238281, 23.98908233642578, 8.746460914611816, -26.273773193359375, -56.090492248535156, 19.56505584716797, -23.03610610961914, 0.30986058712005615, -15.764311790466309, -47.929161071777344, 39.43701171875, 15.201324462890625, 56.806671142578125, 7.925649166107178, 1.360703945159912, 45.88779830932617, -25.018875122070312, 2.4476447105407715, 7.846640586853027, -29.578874588012695, -25.591552734375, -6.0649333000183105, 27.844568252563477, 30.20060920715332, 9.90303897857666, 7.331185817718506, -13.352728843688965, -12.615585327148438, 8.366366386413574, 14.788712501525879, -28.705957412719727, 26.572343826293945, 61.92579650878906, 4.130484580993652, -13.399535179138184, 39.73924255371094, 6.134191036224365, -16.729644775390625, 17.052444458007812, -3.934190273284912, 24.59379005432129, 8.85992431640625, 5.485005855560303, -2.583455801010132, -5.012826919555664, 40.273582458496094, -9.284244537353516, -8.388265609741211, -9.818909645080566, 5.012824058532715, 19.40106773376465, 64.47962188720703, -6.6879401206970215, -21.215450286865234, 35.80325698852539, 8.710884094238281, -10.678022384643555, -50.51652145385742, -16.12714385986328, 37.02014923095703, -41.209293365478516, -18.62479591369629, 19.936235427856445, -21.626264572143555, 8.285609245300293, 25.365894317626953, -36.778907775878906, -47.110626220703125, -14.472453117370605, 23.895776748657227, -4.822878360748291, 7.919955730438232, 35.98277282714844, -30.89478302001953, -32.40855026245117, 31.27412223815918, -45.20038986206055, 20.97939109802246, -38.077110290527344, 32.18363571166992, -11.242378234863281, -23.64359474182129, -9.223494529724121, 12.907135009765625, -54.31597900390625, -74.0955810546875, 22.661630630493164, 25.90481948852539, 16.636436462402344, -21.157875061035156, -14.36279010772705}; diff --git a/software/tests/fft-32b/data/data_256_4.h b/software/tests/fft-32b/data/data_256_4.h new file mode 100644 index 0000000..d5c68f4 --- /dev/null +++ b/software/tests/fft-32b/data/data_256_4.h @@ -0,0 +1,22 @@ +// Copyright 2023 ETH Zurich and University of Bologna. +// Licensed under the Apache License, Version 2.0, see LICENSE for details. +// SPDX-License-Identifier: Apache-2.0 + +// This file was generated automatically. + +static uint32_t NFFT = 256; +static uint32_t NTWI_P1 = 192; +static uint32_t NTWI_P2 = 192; +static uint32_t NTWI_TOT = 384; +static uint32_t log2_nfft = 8; +static uint32_t log2_nfft1 = 2; +static uint32_t log2_nfft2 = 6; +static uint32_t active_cores = 4; + +float out[512] __attribute__((section(".pdcp_src"))) = { [0 ... 511] = 0 }; +static float samples_dram[512] __attribute__((section(".pdcp_src"))) = {0.49671414494514465, 0.6476885676383972, -0.2341533750295639, 1.5792127847671509, -0.4694743752479553, -0.4634176790714264, 0.241962268948555, -1.7249178886413574, -1.0128310918807983, -0.9080240726470947, 1.4656487703323364, 0.06752820312976837, -0.5443827509880066, -1.1509935855865479, -0.6006386876106262, -0.6017066240310669, -0.013497225008904934, 0.8225449323654175, 0.20886360108852386, -1.32818603515625, 0.7384665608406067, -0.1156482845544815, -1.4785219430923462, -0.46063876152038574, 0.3436183035373688, 0.32408398389816284, -0.6769220232963562, 1.0309995412826538, -0.8392175436019897, 0.3312634229660034, -0.4791742265224457, -1.106334924697876, 0.8125258088111877, -0.07201012223958969, 0.3616360127925873, 0.36139559745788574, -0.03582603856921196, -2.6197450160980225, 0.08704707026481628, 0.0917607769370079, -0.21967189013957977, 1.4778940677642822, -0.8084936141967773, 0.9154021143913269, -0.5297601819038391, 0.09707754850387573, -0.7020530700683594, -0.39210814237594604, 0.296120285987854, 0.00511345686390996, -1.4153707027435303, -0.3427145183086395, -0.16128571331501007, 1.886185884475708, 0.2575503885746002, -1.9187712669372559, 0.06023021042346954, -0.19236096739768982, -0.034711770713329315, 1.1428228616714478, 0.7910319566726685, 1.402794361114502, 0.5868570804595947, -0.9905363321304321, 0.09965136647224426, -1.5506634712219238, -1.0623036623001099, -0.9194242358207703, -0.7832533121109009, 0.8135172128677368, 0.22745993733406067, -1.6074832677841187, 0.2598828077316284, -1.2369507551193237, 0.5219415426254272, 0.2504928410053253, -0.6800247430801392, 0.2930724620819092, 1.8657745122909546, -1.1913034915924072, -0.9746816754341125, 1.1585955619812012, 0.9633761048316956, 0.8220601677894592, -0.24538812041282654, -0.8895144462585449, -0.0771017074584961, 0.276690810918808, 0.013001891784369946, -0.26465684175491333, 0.6256673336029053, -1.0708924531936646, -0.2234627902507782, 0.47323763370513916, -0.8467937111854553, -0.44651496410369873, 0.21409374475479126, 0.17318092286586761, -0.8838574290275574, 0.05820871889591217, 0.3577873706817627, 1.0830512046813965, -1.377669334411621, 0.5150352716445923, 0.5150476694107056, 0.570890486240387, 0.954001784324646, -0.31526923179626465, -0.7728252410888672, -0.48536354303359985, 2.3146586418151855, 0.6862601637840271, -0.4719318747520447, 0.06428001821041107, -0.7153037190437317, -0.7303666472434998, 0.045571841299533844, 2.143944025039673, -2.0251426696777344, -0.6617864370346069, -0.7925207614898682, 0.5049872994422913, -1.200296401977539, -0.4749453067779541, 1.7654542922973633, -1.2608839273452759, 2.1221561431884766, -1.5193699598312378, 1.2669111490249634, 0.44381943345069885, -0.9269304871559143, -3.241267442703247, -0.25256815552711487, 1.6324113607406616, -0.44004449248313904, 1.4412733316421509, 1.1631637811660767, -0.9815086722373962, 0.19905969500541687, 0.06980208307504654, 0.11351734399795532, 1.5860167741775513, 2.133033275604248, -0.15178509056568146, 0.28099188208580017, -0.20812225341796875, -0.589364767074585, 0.3570154905319214, 0.8995998501777649, 0.8128620982170105, -0.8289949893951416, 0.7472935914993286, -0.020901594310998917, 1.2776648998260498, 0.547097384929657, -0.21768119931221008, 0.8254163265228271, 1.305478811264038, 0.681952953338623, 0.32416635751724243, 0.09699596464633942, -0.8182206749916077, -1.0060173273086548, 1.1581108570098877, 0.6241198182106018, -0.012246772646903992, 0.07580456137657166, 0.9751197099685669, -0.8254972100257874, 0.4129314422607422, -0.8222203850746155, 0.2449665665626526, -0.4710383117198944, -1.4480843544006348, -0.7184442281723022, 0.3109075725078583, 0.857659637928009, -0.019016208127141, -0.018513135612010956, 0.3227185606956482, 0.5193465352058411, -0.10876014828681946, 0.6901440024375916, 0.2240924835205078, 0.0976760983467102, 0.024510174989700317, 1.4511436223983765, 2.1531825065612793, 0.8723206520080566, 2.189802885055542, -0.8397218585014343, -2.1238956451416016, -0.7591326832771301, 0.3417559862136841, 0.9504238367080688, -0.898414671421051, -1.3202332258224487, 1.1794401407241821, -1.713134527206421, -0.11453984677791595, -1.5944277048110962, 0.005243699532002211, -0.4500654637813568, -1.0676203966140747, 0.12029562890529633, 0.7116149067878723, -1.534114122390747, 0.33231401443481445, 1.551151990890503, 1.1792972087860107, 2.0607478618621826, -0.24896414577960968, 0.6453759670257568, -0.9649234414100647, 1.058424472808838, -1.1832585334777832, -0.26940682530403137, 1.502357006072998, 1.6286154985427856, -1.7033824920654297, 0.3840654492378235, -2.0674421787261963, -1.3044694662094116, 0.3665982484817505, -0.5138669013977051, -0.06267909705638885, -0.9857260584831238, -0.5302576422691345, -0.10703036189079285, -0.5536493062973022, 1.964725136756897, -0.6997255086898804, -0.11232805252075195, 0.6141666769981384, -0.530501127243042, -0.27505168318748474, -1.5151910781860352, 1.6449676752090454, 0.5765569806098938, 3.078880786895752, -0.1279175877571106, -1.6064462661743164, -0.7563507556915283, -0.6465728878974915, 1.6871416568756104, -0.007972640916705132, 0.07736830413341522, 1.523124098777771, -1.0372461080551147, -0.8756182789802551, 0.9261775612831116, -1.3985675573349, -0.6506425738334656, -0.5923939347267151, 0.048521626740694046, 0.27045682072639465, -0.13826429843902588, 1.5230298042297363, -0.23413695394992828, 0.7674347162246704, 0.5425600409507751, -0.4657297432422638, -1.9132802486419678, -0.5622875094413757, 0.31424733996391296, -1.4123036861419678, -0.2257762998342514, -1.424748182296753, 0.11092258989810944, 0.3756980299949646, -0.2916937470436096, 1.852278232574463, -1.057710886001587, -1.2208436727523804, -1.959670066833496, 0.19686123728752136, 0.1713682860136032, -0.3011036813259125, -0.7198442220687866, 1.0571222305297852, -1.7630401849746704, -0.38508227467536926, 0.6116762757301331, 0.9312801361083984, -0.3092123866081238, 0.9755451083183289, -0.18565897643566132, -1.1962065696716309, 1.3562400341033936, 1.003532886505127, -0.6451197266578674, 1.538036584854126, 1.5646436214447021, 0.8219025135040283, -0.2990073561668396, -1.9875688552856445, 0.3571125566959381, -0.5182701945304871, -0.501757025718689, 0.3287511169910431, 0.513267457485199, 0.9686449766159058, -0.3276621401309967, -1.4635149240493774, 0.26105526089668274, -0.23458713293075562, -0.4206453263759613, -0.8022772669792175, 0.4040508568286896, 0.17457781732082367, -0.07444591820240021, -0.026513874530792236, 2.4632420539855957, 0.3015473484992981, -1.1686780452728271, 0.7519330382347107, -0.909387469291687, -1.4018510580062866, 2.190455675125122, -0.566297709941864, -0.5034756660461426, 0.06856297701597214, 0.4735924303531647, 1.5499343872070312, -0.3220615088939667, -1.2308642864227295, 1.307142734527588, 0.18463386595249176, 0.7818228602409363, -1.320456624031067, 0.2969846725463867, 0.34644821286201477, 0.23225370049476624, -0.7143514156341553, 0.4738329350948334, 0.6565536260604858, 0.7870845794677734, -0.8206823468208313, 0.4127809405326843, 1.896793007850647, -0.753736138343811, -0.8158102631568909, 0.34115198254585266, 0.8271832466125488, 1.4535341262817383, 2.7201690673828125, -0.8571575284004211, 0.48247241973876953, 0.7140005230903625, -0.07282891124486923, -1.5148472785949707, 0.8563988208770752, -1.2457387447357178, 0.3853173851966858, 0.15372510254383087, -1.142970323562622, 0.5607845187187195, 1.0538020133972168, -0.9378250241279602, 0.5137859582901001, 3.852731466293335, 1.1355656385421753, 0.6513912677764893, 0.758969247341156, -0.2368186116218567, 0.08187413960695267, -1.867265224456787, -1.6127158403396606, 1.0889506340026855, -1.077744722366333, 0.6795977354049683, 0.21645858883857727, -0.6516003608703613, 0.6339190006256104, 0.18645431101322174, 0.8524333238601685, -0.11473643779754639, 0.8657552003860474, -0.3345012366771698, -0.6533292531967163, 0.40498170256614685, 0.9178619384765625, 1.0324652194976807, -0.4842340648174286, -0.7076694369316101, 0.774634063243866, -0.05952535569667816, -1.0243875980377197, -1.2477831840515137, -1.4301413297653198, 0.13074058294296265, -1.4358621835708618, 0.010233061388134956, 0.4621034860610962, -0.6002168655395508, -0.38531360030174255, 0.6621306538581848, -1.237815499305725, -1.9520877599716187, 0.5883172154426575, -0.622699499130249, -0.49300092458724976, 0.8496021032333374, -0.6929095983505249, 0.30729952454566956, 0.6296288371086121, -0.5601810216903687, 0.6103702783584595, 0.11732738465070724, -0.5915713906288147, -0.20219264924526215, 1.0987768173217773, 0.8135096430778503, 0.0210038423538208, -0.31026676297187805, -0.13014306128025055, 0.5951570272445679, 2.0923871994018555, -1.214188575744629, 0.7916626930236816, 0.6283454895019531, -0.8972543478012085, -0.677161693572998, -0.14705738425254822, -0.32138583064079285, -0.5637245774269104, 0.2436872124671936, -0.5069431662559509, 0.23204994201660156, -1.407463788986206, -0.21344715356826782, 1.4753562211990356, -0.1599385291337967, -1.0025293827056885, -0.28865864872932434, -0.8272309303283691, 1.5327389240264893, 0.40171173214912415, -0.4012204706668854, 0.012592400424182415, -0.7730097770690918, 0.49799829721450806, 0.9592708349227905, -0.7673475742340088, 0.18334200978279114, -0.8082982897758484, -0.5993926525115967, -0.5257550477981567, 0.1503937840461731, 1.8761708736419678, -0.5769036412239075, 0.4919191598892212, 1.8314588069915771, -0.46917566657066345, 1.3538724184036255, 1.237816333770752, -0.5993750095367432, 0.0469805933535099, 0.6228499412536621, -0.14237947762012482, 0.514438807964325, -1.1246421337127686, 1.2776768207550049, -0.7484865188598633, 0.11567463725805283, 0.06751848012208939, 1.755340814590454, 0.9715709686279297, 1.3686316013336182, 0.6860514879226685, -1.7587394714355469, -2.0392322540283203, 0.7175422310829163, 0.07409477978944778, -1.3801014423370361, -0.055547699332237244, -0.032694749534130096, -0.0891200378537178, 0.6696725487709045, -0.9398797750473022, -1.0592135190963745, 0.9551423192024231, 0.5040464997291565, -0.7928728461265564, -1.0352423191070557, -1.1978778839111328, 0.0352635532617569, 0.21397991478443146, -0.22096960246562958, 0.7575076818466187, -0.5758182406425476, -2.3019211292266846, 1.3668742179870605, -0.24903604388237, 0.31125015020370483, 1.1195749044418335, -0.9555404186248779, 0.2034636288881302, -1.4222537279129028, -1.0815479755401611, 0.8816397786140442, 1.479944109916687, -0.8612841963768005, 0.5389100313186646, -0.19033867120742798, -1.382799744606018, 1.909416675567627, 0.5629692077636719, -0.4871253967285156, -0.8639907836914062, -0.830950140953064, -0.05023811012506485}; +static float buffer_dram[512] __attribute__((section(".pdcp_src"))) = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}; +static float twiddle_dram[1920] __attribute__((section(".pdcp_src"))) = {1.0, 0.99969881772995, 0.9987954497337341, 0.9972904324531555, 0.9951847195625305, 0.9924795627593994, 0.9891765117645264, 0.9852776527404785, 0.9807852506637573, 0.9757021069526672, 0.9700312614440918, 0.9637760519981384, 0.9569403529167175, 0.949528157711029, 0.9415440559387207, 0.9329928159713745, 0.9238795042037964, 0.91420978307724, 0.903989315032959, 0.89322429895401, 0.8819212913513184, 0.8700869679450989, 0.8577286005020142, 0.8448535799980164, 0.8314695954322815, 0.8175848126411438, 0.803207516670227, 0.7883464097976685, 0.7730104327201843, 0.7572088241577148, 0.7409511208534241, 0.7242470979690552, 0.7071067690849304, 0.6895405650138855, 0.6715589761734009, 0.6531728506088257, 0.6343932747840881, 0.6152315735816956, 0.5956993103027344, 0.5758081674575806, 0.5555702447891235, 0.5349976420402527, 0.5141027569770813, 0.49289819598197937, 0.4713967442512512, 0.4496113359928131, 0.4275550842285156, 0.40524131059646606, 0.3826834261417389, 0.3598950505256653, 0.3368898630142212, 0.3136817514896393, 0.290284663438797, 0.2667127549648285, 0.24298018217086792, 0.21910123527050018, 0.19509032368659973, 0.1709618866443634, 0.1467304676771164, 0.12241067737340927, 0.0980171412229538, 0.0735645666718483, 0.049067676067352295, 0.024541229009628296, -1.8369701465288538e-16, -0.024541229009628296, -0.049067676067352295, -0.0735645666718483, -0.0980171412229538, -0.12241067737340927, -0.1467304676771164, -0.1709618866443634, -0.19509032368659973, -0.21910123527050018, -0.24298018217086792, -0.2667127549648285, -0.290284663438797, -0.3136817514896393, -0.3368898630142212, -0.3598950505256653, -0.3826834261417389, -0.40524131059646606, -0.4275550842285156, -0.4496113359928131, -0.4713967442512512, -0.49289819598197937, -0.5141027569770813, -0.5349976420402527, -0.5555702447891235, -0.5758081674575806, -0.5956993103027344, -0.6152315735816956, -0.6343932747840881, -0.6531728506088257, -0.6715589761734009, -0.6895405650138855, -0.7071067690849304, -0.7242470979690552, -0.7409511208534241, -0.7572088241577148, -0.7730104327201843, -0.7883464097976685, -0.803207516670227, -0.8175848126411438, -0.8314695954322815, -0.8448535799980164, -0.8577286005020142, -0.8700869679450989, -0.8819212913513184, -0.89322429895401, -0.903989315032959, -0.91420978307724, -0.9238795042037964, -0.9329928159713745, -0.9415440559387207, -0.949528157711029, -0.9569403529167175, -0.9637760519981384, -0.9700312614440918, -0.9757021069526672, -0.9807852506637573, -0.9852776527404785, -0.9891765117645264, -0.9924795627593994, -0.9951847195625305, -0.9972904324531555, -0.9987954497337341, -0.99969881772995, 1.0, 0.9987954497337341, 0.9951847195625305, 0.9891765117645264, 0.9807852506637573, 0.9700312614440918, 0.9569403529167175, 0.9415440559387207, 0.9238795042037964, 0.903989315032959, 0.8819212913513184, 0.8577286005020142, 0.8314695954322815, 0.803207516670227, 0.7730104327201843, 0.7409511208534241, 0.7071067690849304, 0.6715589761734009, 0.6343932747840881, 0.5956993103027344, 0.5555702447891235, 0.5141027569770813, 0.4713967442512512, 0.4275550842285156, 0.3826834261417389, 0.3368898630142212, 0.290284663438797, 0.24298018217086792, 0.19509032368659973, 0.1467304676771164, 0.0980171412229538, 0.049067676067352295, -1.8369701465288538e-16, -0.049067676067352295, -0.0980171412229538, -0.1467304676771164, -0.19509032368659973, -0.24298018217086792, -0.290284663438797, -0.3368898630142212, -0.3826834261417389, -0.4275550842285156, -0.4713967442512512, -0.5141027569770813, -0.5555702447891235, -0.5956993103027344, -0.6343932747840881, -0.6715589761734009, -0.7071067690849304, -0.7409511208534241, -0.7730104327201843, -0.803207516670227, -0.8314695954322815, -0.8577286005020142, -0.8819212913513184, -0.903989315032959, -0.9238795042037964, -0.9415440559387207, -0.9569403529167175, -0.9700312614440918, -0.9807852506637573, -0.9891765117645264, -0.9951847195625305, -0.9987954497337341, -2.4492937051703357e-16, -0.024541229009628296, -0.049067676067352295, -0.0735645666718483, -0.0980171412229538, -0.12241067737340927, -0.1467304676771164, -0.1709618866443634, -0.19509032368659973, -0.21910123527050018, -0.24298018217086792, -0.2667127549648285, -0.290284663438797, -0.3136817514896393, -0.3368898630142212, -0.3598950505256653, -0.3826834261417389, -0.40524131059646606, -0.4275550842285156, -0.4496113359928131, -0.4713967442512512, -0.49289819598197937, -0.5141027569770813, -0.5349976420402527, -0.5555702447891235, -0.5758081674575806, -0.5956993103027344, -0.6152315735816956, -0.6343932747840881, -0.6531728506088257, -0.6715589761734009, -0.6895405650138855, -0.7071067690849304, -0.7242470979690552, -0.7409511208534241, -0.7572088241577148, -0.7730104327201843, -0.7883464097976685, -0.803207516670227, -0.8175848126411438, -0.8314695954322815, -0.8448535799980164, -0.8577286005020142, -0.8700869679450989, -0.8819212913513184, -0.89322429895401, -0.903989315032959, -0.91420978307724, -0.9238795042037964, -0.9329928159713745, -0.9415440559387207, -0.949528157711029, -0.9569403529167175, -0.9637760519981384, -0.9700312614440918, -0.9757021069526672, -0.9807852506637573, -0.9852776527404785, -0.9891765117645264, -0.9924795627593994, -0.9951847195625305, -0.9972904324531555, -0.9987954497337341, -0.99969881772995, -1.0, -0.99969881772995, -0.9987954497337341, -0.9972904324531555, -0.9951847195625305, -0.9924795627593994, -0.9891765117645264, -0.9852776527404785, -0.9807852506637573, -0.9757021069526672, -0.9700312614440918, -0.9637760519981384, -0.9569403529167175, -0.949528157711029, -0.9415440559387207, -0.9329928159713745, -0.9238795042037964, -0.91420978307724, -0.903989315032959, -0.89322429895401, -0.8819212913513184, -0.8700869679450989, -0.8577286005020142, -0.8448535799980164, -0.8314695954322815, -0.8175848126411438, -0.803207516670227, -0.7883464097976685, -0.7730104327201843, -0.7572088241577148, -0.7409511208534241, -0.7242470979690552, -0.7071067690849304, -0.6895405650138855, -0.6715589761734009, -0.6531728506088257, -0.6343932747840881, -0.6152315735816956, -0.5956993103027344, -0.5758081674575806, -0.5555702447891235, -0.5349976420402527, -0.5141027569770813, -0.49289819598197937, -0.4713967442512512, -0.4496113359928131, -0.4275550842285156, -0.40524131059646606, -0.3826834261417389, -0.3598950505256653, -0.3368898630142212, -0.3136817514896393, -0.290284663438797, -0.2667127549648285, -0.24298018217086792, -0.21910123527050018, -0.19509032368659973, -0.1709618866443634, -0.1467304676771164, -0.12241067737340927, -0.0980171412229538, -0.0735645666718483, -0.049067676067352295, -0.024541229009628296, -2.4492937051703357e-16, -0.049067676067352295, -0.0980171412229538, -0.1467304676771164, -0.19509032368659973, -0.24298018217086792, -0.290284663438797, -0.3368898630142212, -0.3826834261417389, -0.4275550842285156, -0.4713967442512512, -0.5141027569770813, -0.5555702447891235, -0.5956993103027344, -0.6343932747840881, -0.6715589761734009, -0.7071067690849304, -0.7409511208534241, -0.7730104327201843, -0.803207516670227, -0.8314695954322815, -0.8577286005020142, -0.8819212913513184, -0.903989315032959, -0.9238795042037964, -0.9415440559387207, -0.9569403529167175, -0.9700312614440918, -0.9807852506637573, -0.9891765117645264, -0.9951847195625305, -0.9987954497337341, -1.0, -0.9987954497337341, -0.9951847195625305, -0.9891765117645264, -0.9807852506637573, -0.9700312614440918, -0.9569403529167175, -0.9415440559387207, -0.9238795042037964, -0.903989315032959, -0.8819212913513184, -0.8577286005020142, -0.8314695954322815, -0.803207516670227, -0.7730104327201843, -0.7409511208534241, -0.7071067690849304, -0.6715589761734009, -0.6343932747840881, -0.5956993103027344, -0.5555702447891235, -0.5141027569770813, -0.4713967442512512, -0.4275550842285156, -0.3826834261417389, -0.3368898630142212, -0.290284663438797, -0.24298018217086792, -0.19509032368659973, -0.1467304676771164, -0.0980171412229538, -0.049067676067352295, 1.0, 0.9951847195625305, 0.9807852506637573, 0.9569403529167175, 0.9238795042037964, 0.8819212913513184, 0.8314695954322815, 0.7730104327201843, 0.7071067690849304, 0.6343932747840881, 0.5555702447891235, 0.4713967442512512, 0.3826834261417389, 0.290284663438797, 0.19509032368659973, 0.0980171412229538, -1.8369701465288538e-16, -0.0980171412229538, -0.19509032368659973, -0.290284663438797, -0.3826834261417389, -0.4713967442512512, -0.5555702447891235, -0.6343932747840881, -0.7071067690849304, -0.7730104327201843, -0.8314695954322815, -0.8819212913513184, -0.9238795042037964, -0.9569403529167175, -0.9807852506637573, -0.9951847195625305, 1.0, 0.9807852506637573, 0.9238795042037964, 0.8314695954322815, 0.7071067690849304, 0.5555702447891235, 0.3826834261417389, 0.19509032368659973, -1.8369701465288538e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, 1.0, 0.9807852506637573, 0.9238795042037964, 0.8314695954322815, 0.7071067690849304, 0.5555702447891235, 0.3826834261417389, 0.19509032368659973, -1.8369701465288538e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -2.4492937051703357e-16, -0.0980171412229538, -0.19509032368659973, -0.290284663438797, -0.3826834261417389, -0.4713967442512512, -0.5555702447891235, -0.6343932747840881, -0.7071067690849304, -0.7730104327201843, -0.8314695954322815, -0.8819212913513184, -0.9238795042037964, -0.9569403529167175, -0.9807852506637573, -0.9951847195625305, -1.0, -0.9951847195625305, -0.9807852506637573, -0.9569403529167175, -0.9238795042037964, -0.8819212913513184, -0.8314695954322815, -0.7730104327201843, -0.7071067690849304, -0.6343932747840881, -0.5555702447891235, -0.4713967442512512, -0.3826834261417389, -0.290284663438797, -0.19509032368659973, -0.0980171412229538, -2.4492937051703357e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, -1.0, -0.9807852506637573, -0.9238795042037964, -0.8314695954322815, -0.7071067690849304, -0.5555702447891235, -0.3826834261417389, -0.19509032368659973, -2.4492937051703357e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, -1.0, -0.9807852506637573, -0.9238795042037964, -0.8314695954322815, -0.7071067690849304, -0.5555702447891235, -0.3826834261417389, -0.19509032368659973, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, 1.0, 0.9951847195625305, 0.9807852506637573, 0.9569403529167175, 0.9238795042037964, 0.8819212913513184, 0.8314695954322815, 0.7730104327201843, 0.7071067690849304, 0.6343932747840881, 0.5555702447891235, 0.4713967442512512, 0.3826834261417389, 0.290284663438797, 0.19509032368659973, 0.0980171412229538, -1.8369701465288538e-16, -0.0980171412229538, -0.19509032368659973, -0.290284663438797, -0.3826834261417389, -0.4713967442512512, -0.5555702447891235, -0.6343932747840881, -0.7071067690849304, -0.7730104327201843, -0.8314695954322815, -0.8819212913513184, -0.9238795042037964, -0.9569403529167175, -0.9807852506637573, -0.9951847195625305, 1.0, 0.9807852506637573, 0.9238795042037964, 0.8314695954322815, 0.7071067690849304, 0.5555702447891235, 0.3826834261417389, 0.19509032368659973, -1.8369701465288538e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, 1.0, 0.9807852506637573, 0.9238795042037964, 0.8314695954322815, 0.7071067690849304, 0.5555702447891235, 0.3826834261417389, 0.19509032368659973, -1.8369701465288538e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -2.4492937051703357e-16, -0.0980171412229538, -0.19509032368659973, -0.290284663438797, -0.3826834261417389, -0.4713967442512512, -0.5555702447891235, -0.6343932747840881, -0.7071067690849304, -0.7730104327201843, -0.8314695954322815, -0.8819212913513184, -0.9238795042037964, -0.9569403529167175, -0.9807852506637573, -0.9951847195625305, -1.0, -0.9951847195625305, -0.9807852506637573, -0.9569403529167175, -0.9238795042037964, -0.8819212913513184, -0.8314695954322815, -0.7730104327201843, -0.7071067690849304, -0.6343932747840881, -0.5555702447891235, -0.4713967442512512, -0.3826834261417389, -0.290284663438797, -0.19509032368659973, -0.0980171412229538, -2.4492937051703357e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, -1.0, -0.9807852506637573, -0.9238795042037964, -0.8314695954322815, -0.7071067690849304, -0.5555702447891235, -0.3826834261417389, -0.19509032368659973, -2.4492937051703357e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, -1.0, -0.9807852506637573, -0.9238795042037964, -0.8314695954322815, -0.7071067690849304, -0.5555702447891235, -0.3826834261417389, -0.19509032368659973, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, 1.0, 0.9951847195625305, 0.9807852506637573, 0.9569403529167175, 0.9238795042037964, 0.8819212913513184, 0.8314695954322815, 0.7730104327201843, 0.7071067690849304, 0.6343932747840881, 0.5555702447891235, 0.4713967442512512, 0.3826834261417389, 0.290284663438797, 0.19509032368659973, 0.0980171412229538, -1.8369701465288538e-16, -0.0980171412229538, -0.19509032368659973, -0.290284663438797, -0.3826834261417389, -0.4713967442512512, -0.5555702447891235, -0.6343932747840881, -0.7071067690849304, -0.7730104327201843, -0.8314695954322815, -0.8819212913513184, -0.9238795042037964, -0.9569403529167175, -0.9807852506637573, -0.9951847195625305, 1.0, 0.9807852506637573, 0.9238795042037964, 0.8314695954322815, 0.7071067690849304, 0.5555702447891235, 0.3826834261417389, 0.19509032368659973, -1.8369701465288538e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, 1.0, 0.9807852506637573, 0.9238795042037964, 0.8314695954322815, 0.7071067690849304, 0.5555702447891235, 0.3826834261417389, 0.19509032368659973, -1.8369701465288538e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -2.4492937051703357e-16, -0.0980171412229538, -0.19509032368659973, -0.290284663438797, -0.3826834261417389, -0.4713967442512512, -0.5555702447891235, -0.6343932747840881, -0.7071067690849304, -0.7730104327201843, -0.8314695954322815, -0.8819212913513184, -0.9238795042037964, -0.9569403529167175, -0.9807852506637573, -0.9951847195625305, -1.0, -0.9951847195625305, -0.9807852506637573, -0.9569403529167175, -0.9238795042037964, -0.8819212913513184, -0.8314695954322815, -0.7730104327201843, -0.7071067690849304, -0.6343932747840881, -0.5555702447891235, -0.4713967442512512, -0.3826834261417389, -0.290284663438797, -0.19509032368659973, -0.0980171412229538, -2.4492937051703357e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, -1.0, -0.9807852506637573, -0.9238795042037964, -0.8314695954322815, -0.7071067690849304, -0.5555702447891235, -0.3826834261417389, -0.19509032368659973, -2.4492937051703357e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, -1.0, -0.9807852506637573, -0.9238795042037964, -0.8314695954322815, -0.7071067690849304, -0.5555702447891235, -0.3826834261417389, -0.19509032368659973, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, 1.0, 0.9951847195625305, 0.9807852506637573, 0.9569403529167175, 0.9238795042037964, 0.8819212913513184, 0.8314695954322815, 0.7730104327201843, 0.7071067690849304, 0.6343932747840881, 0.5555702447891235, 0.4713967442512512, 0.3826834261417389, 0.290284663438797, 0.19509032368659973, 0.0980171412229538, -1.8369701465288538e-16, -0.0980171412229538, -0.19509032368659973, -0.290284663438797, -0.3826834261417389, -0.4713967442512512, -0.5555702447891235, -0.6343932747840881, -0.7071067690849304, -0.7730104327201843, -0.8314695954322815, -0.8819212913513184, -0.9238795042037964, -0.9569403529167175, -0.9807852506637573, -0.9951847195625305, 1.0, 0.9807852506637573, 0.9238795042037964, 0.8314695954322815, 0.7071067690849304, 0.5555702447891235, 0.3826834261417389, 0.19509032368659973, -1.8369701465288538e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, 1.0, 0.9807852506637573, 0.9238795042037964, 0.8314695954322815, 0.7071067690849304, 0.5555702447891235, 0.3826834261417389, 0.19509032368659973, -1.8369701465288538e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.9238795042037964, 0.7071067690849304, 0.3826834261417389, -1.8369701465288538e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, 0.7071067690849304, -1.8369701465288538e-16, -0.7071067690849304, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, -1.8369701465288538e-16, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -2.4492937051703357e-16, -0.0980171412229538, -0.19509032368659973, -0.290284663438797, -0.3826834261417389, -0.4713967442512512, -0.5555702447891235, -0.6343932747840881, -0.7071067690849304, -0.7730104327201843, -0.8314695954322815, -0.8819212913513184, -0.9238795042037964, -0.9569403529167175, -0.9807852506637573, -0.9951847195625305, -1.0, -0.9951847195625305, -0.9807852506637573, -0.9569403529167175, -0.9238795042037964, -0.8819212913513184, -0.8314695954322815, -0.7730104327201843, -0.7071067690849304, -0.6343932747840881, -0.5555702447891235, -0.4713967442512512, -0.3826834261417389, -0.290284663438797, -0.19509032368659973, -0.0980171412229538, -2.4492937051703357e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, -1.0, -0.9807852506637573, -0.9238795042037964, -0.8314695954322815, -0.7071067690849304, -0.5555702447891235, -0.3826834261417389, -0.19509032368659973, -2.4492937051703357e-16, -0.19509032368659973, -0.3826834261417389, -0.5555702447891235, -0.7071067690849304, -0.8314695954322815, -0.9238795042037964, -0.9807852506637573, -1.0, -0.9807852506637573, -0.9238795042037964, -0.8314695954322815, -0.7071067690849304, -0.5555702447891235, -0.3826834261417389, -0.19509032368659973, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.3826834261417389, -0.7071067690849304, -0.9238795042037964, -1.0, -0.9238795042037964, -0.7071067690849304, -0.3826834261417389, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -0.7071067690849304, -1.0, -0.7071067690849304, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -1.0, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16, -2.4492937051703357e-16}; +static uint16_t store_idx_dram[160] __attribute__((section(".pdcp_src"))) = {0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60, 128, 132, 136, 140, 144, 148, 152, 156, 160, 164, 168, 172, 176, 180, 184, 188, 0, 4, 8, 12, 16, 20, 24, 28, 128, 132, 136, 140, 144, 148, 152, 156, 32, 36, 40, 44, 48, 52, 56, 60, 160, 164, 168, 172, 176, 180, 184, 188, 0, 4, 8, 12, 128, 132, 136, 140, 16, 20, 24, 28, 144, 148, 152, 156, 32, 36, 40, 44, 160, 164, 168, 172, 48, 52, 56, 60, 176, 180, 184, 188, 0, 4, 128, 132, 8, 12, 136, 140, 16, 20, 144, 148, 24, 28, 152, 156, 32, 36, 160, 164, 40, 44, 168, 172, 48, 52, 176, 180, 56, 60, 184, 188, 0, 128, 4, 132, 8, 136, 12, 140, 16, 144, 20, 148, 24, 152, 28, 156, 32, 160, 36, 164, 40, 168, 44, 172, 48, 176, 52, 180, 56, 184, 60, 188}; +static uint32_t coffset_dram[4] __attribute__((section(".pdcp_src"))) = {0, 2, 1, 3}; +static float gold_out_dram[512] __attribute__((section(".pdcp_src"))) = {-0.7471740245819092, 3.0098049640655518, -6.798813819885254, 3.49985408782959, -8.249419212341309, -22.998640060424805, 13.238500595092773, 13.189834594726562, -4.113769054412842, -3.599243640899658, -1.3565630912780762, 24.4943904876709, -30.861881256103516, -5.6010823249816895, 11.65107250213623, 5.456799030303955, -22.38764190673828, 23.756237030029297, -2.1799707412719727, 2.131608724594116, 13.454630851745605, -24.048471450805664, 12.021162033081055, -13.174503326416016, 0.8419663310050964, 19.748231887817383, 13.070932388305664, -3.456519842147827, -25.00149917602539, -8.816701889038086, 11.542282104492188, 1.1601203680038452, 8.804931640625, 4.3961663246154785, 1.4591460227966309, 9.899575233459473, 13.038186073303223, 1.9355565309524536, -10.766782760620117, -21.00305938720703, 20.165454864501953, 2.067695140838623, 18.9866886138916, -14.18873405456543, -2.807342052459717, 19.45513916015625, 18.138660430908203, 7.062447547912598, -5.992419242858887, 13.116025924682617, 28.216108322143555, -39.093055725097656, 19.44324493408203, -19.44853401184082, 12.332186698913574, -10.426675796508789, -0.9657154083251953, 18.66868782043457, 23.725143432617188, 14.580484390258789, 25.770339965820312, 7.336232662200928, -6.072981357574463, -32.95755386352539, 8.84742546081543, 2.6355836391448975, 3.95536470413208, -21.162351608276367, -7.964843273162842, 27.73253059387207, -39.48453903198242, -1.2132996320724487, -37.96355056762695, 7.246119976043701, 3.9039599895477295, -1.8014743328094482, 30.543235778808594, -17.505081176757812, 14.048700332641602, -8.303909301757812, 21.314239501953125, -10.405613899230957, 3.4110255241394043, 23.109670639038086, 14.851585388183594, -5.623532772064209, 1.9182018041610718, 24.59893035888672, 29.94645118713379, -12.958707809448242, -7.540373802185059, 6.776920318603516, -4.625527858734131, 15.244444847106934, 4.316420555114746, 1.4346232414245605, 7.159987926483154, 6.162974834442139, -9.02857494354248, 2.6414928436279297, 13.64905834197998, 23.04585838317871, -19.077205657958984, 18.98931884765625, -9.092485427856445, -3.151508092880249, -1.1956522464752197, -1.2282224893569946, -16.24941635131836, -23.311708450317383, -16.371583938598633, 2.0559258460998535, 9.241589546203613, -21.521902084350586, -8.507782936096191, 8.335776329040527, 2.469766139984131, 19.909700393676758, 14.500574111938477, 4.580376625061035, 5.979329586029053, -47.513572692871094, -31.35588836669922, 29.056631088256836, -0.9800841808319092, 13.635374069213867, -5.99549674987793, 1.9397622346878052, 0.14704513549804688, 2.8677048683166504, -6.476040363311768, 13.728521347045898, 22.420400619506836, 2.354700803756714, -27.69635581970215, 15.58257007598877, -29.37498664855957, -4.3566484451293945, -1.6026946306228638, 20.808374404907227, 9.2186918258667, -4.181473559583537e-05, -18.3763427734375, 17.411954879760742, 26.7011661529541, -2.23439621925354, -16.218812942504883, -11.623770713806152, 24.464933395385742, -13.03639030456543, 15.230016708374023, -16.829763412475586, -5.013866901397705, -10.640910148620605, 4.695498943328857, -5.941717147827148, -13.73302173614502, 3.421252727508545, 40.14861297607422, -2.5538625717163086, 10.774276733398438, -24.27816390991211, 22.850589752197266, 29.045734405517578, -5.735636234283447, -22.247440338134766, 18.763195037841797, -4.897586345672607, -12.211880683898926, 2.0988614559173584, 31.293132781982422, -10.573050498962402, -10.747777938842773, 18.34076499938965, 30.53900718688965, -2.546748161315918, 37.152618408203125, 8.753586769104004, 5.195675849914551, 13.442337989807129, 4.617032527923584, -4.328210830688477, -7.916079998016357, 21.845808029174805, 11.512950897216797, 9.907195091247559, -14.983000755310059, -19.22553825378418, -22.055885314941406, 8.462660789489746, -17.81237030029297, 15.345017433166504, 6.956258773803711, -9.192066192626953, 8.760175704956055, -23.59278106689453, -39.2490348815918, -9.046874046325684, -3.2712509632110596, 3.9181981086730957, 18.715543746948242, -4.067474842071533, -3.7442498207092285, 20.853727340698242, -20.288333892822266, -3.8828721046447754, -22.486616134643555, 7.89495849609375, 20.332813262939453, -19.111642837524414, -3.6078217029571533, -5.725418567657471, 8.583396911621094, -34.345733642578125, 3.3174827098846436, -10.942824363708496, 16.750707626342773, -19.03163719177246, -4.883193016052246, -10.01175308227539, 5.1344733238220215, -6.697695255279541, -2.3333916664123535, 9.07689380645752, 18.308225631713867, -12.897915840148926, -12.179292678833008, 22.971872329711914, 8.46325397491455, -27.695587158203125, -5.2801594734191895, -21.137609481811523, 5.201837539672852, -11.253049850463867, -12.673798561096191, -12.684343338012695, -7.928609848022461, 18.5982723236084, -18.52013397216797, -1.0998607873916626, -12.540693283081055, -20.38615608215332, 17.624553680419922, 1.1844030618667603, 17.67058563232422, 11.315384864807129, -19.293113708496094, 15.218454360961914, 12.432928085327148, 30.459932327270508, 2.9724771976470947, -18.116641998291016, 9.915632247924805, -25.397977828979492, 7.215003490447998, 2.369189500808716, 1.2646960020065308, 5.020698547363281, -1.9996894598007202, -5.176010608673096, -0.3032669425010681, -9.300524711608887, -14.316868782043457, -6.269022464752197, 2.769085168838501, -1.851356863975525, -9.380842208862305, -11.03134536743164, 13.037734985351562, -5.599161624908447, 5.869235038757324, 21.537399291992188, 25.44410514831543, -3.912949323654175, -13.270929336547852, -1.8975554704666138, 4.682275772094727, 1.3865225315093994, -15.228677749633789, 0.9091625809669495, -3.9781267642974854, 6.784095287322998, -24.82160758972168, 3.2185277938842773, 12.475410461425781, 17.282943725585938, -29.31309700012207, -23.039710998535156, 0.6211974620819092, -5.578747749328613, -21.895076751708984, -30.827171325683594, -8.825693130493164, -5.303256511688232, -10.884655952453613, -20.392108917236328, 4.030759334564209, 12.88467788696289, 15.333736419677734, 13.01950740814209, -2.554774522781372, 9.167274475097656, 3.042649507522583, 12.110695838928223, -19.43399429321289, 4.6697163581848145, 0.32250311970710754, 24.847564697265625, -12.24580192565918, 30.12385368347168, -16.93815803527832, -6.597290515899658, 19.214187622070312, -13.968894004821777, 17.902957916259766, -5.387401580810547, -2.7043752670288086, 3.052297592163086, -37.7698860168457, 5.794117450714111, -2.178196907043457, -13.175000190734863, 33.00730514526367, -10.20645523071289, 16.11372947692871, -13.685755729675293, 9.82805061340332, -22.15447998046875, 1.7414216995239258, -7.894802570343018, 27.135173797607422, 8.167491912841797, -24.35495948791504, 6.582870960235596, 21.916852951049805, 38.247684478759766, -18.324634552001953, -2.265174627304077, -5.862140655517578, 0.8403552770614624, 33.83124923706055, 8.396013259887695, 21.824474334716797, -34.98994445800781, -29.403751373291016, 15.163460731506348, -10.152429580688477, -1.343285083770752, -20.04863166809082, -0.05935686081647873, -7.908519268035889, -15.770240783691406, -2.153581142425537, 3.0524816513061523, 7.721993446350098, -2.001201868057251, 10.97662353515625, 23.2197322845459, 26.604393005371094, 23.672679901123047, -11.178619384765625, 1.8911875486373901, -18.006410598754883, -10.471617698669434, -3.1129531860351562, -25.767274856567383, 15.260284423828125, -2.8359320163726807, -2.5474255084991455, -7.766386985778809, -22.97992706298828, -20.608640670776367, -14.87254524230957, -12.436271667480469, -0.3047041893005371, 27.732704162597656, -0.19519361853599548, 6.681183815002441, -1.7961095571517944, -14.006370544433594, -3.8060433864593506, 14.379325866699219, -13.765763282775879, -5.029594898223877, 1.2053699493408203, 43.28128433227539, -0.49716541171073914, -16.705738067626953, -5.8414106369018555, -18.651700973510742, 21.961261749267578, -12.270800590515137, 6.9808502197265625, -12.935718536376953, -3.6215436458587646, 8.82070255279541, 5.378571510314941, 1.615014672279358, -3.2408246994018555, 10.113715171813965, -9.908842086791992, 6.289672374725342, -1.6003732681274414, -14.082462310791016, 18.488767623901367, 25.982440948486328, 22.20285415649414, 9.974384307861328, 5.160477161407471, 4.610857009887695, -13.11594295501709, 13.092070579528809, -25.803356170654297, -9.774147033691406, 31.08518409729004, -4.686069488525391, 14.017849922180176, -21.248958587646484, 3.3942599296569824, 7.012935161590576, 18.653806686401367, -14.896625518798828, 18.612041473388672, -6.220041751861572, 20.21029281616211, 22.105976104736328, -29.40146255493164, -22.977031707763672, 1.4402592182159424, -14.522348403930664, -12.618450164794922, 19.677406311035156, -16.1492862701416, 16.834033966064453, -29.34551239013672, -1.2884877920150757, -10.541156768798828, 8.023849487304688, -25.93182373046875, 3.651831865310669, -22.221046447753906, -8.964555740356445, -27.47977638244629, 9.231252670288086, 20.486963272094727, -18.554058074951172, 9.193816184997559, 1.8811286687850952, -18.05880355834961, -2.534069538116455, 14.939605712890625, 3.44425106048584, 4.290731430053711, -11.20650577545166, 16.884733200073242, 11.16185188293457, 1.4633272886276245, -1.407851219177246, -8.390715599060059, 1.360185146331787, 21.503841400146484, 4.012045860290527, -5.157469272613525, 8.980331420898438, -22.532060623168945, 1.5771996974945068, -15.180130004882812, 5.203437328338623, 16.55423355102539, 25.990795135498047, -16.9327449798584, -0.9629546403884888, -12.096565246582031, -1.8716105222702026, 5.468402862548828, 5.630277156829834, 9.329146385192871, -0.9634941220283508, 19.82638931274414, 29.07830810546875, -5.180899620056152, -15.052895545959473, -14.877047538757324, 18.54896354675293, 22.508508682250977, 4.305923938751221, -1.9649525880813599, 3.8968448638916016, 14.37219524383545, -15.944783210754395, 9.412266731262207, -9.573575973510742, 2.19695782661438, 42.39675521850586, -18.953903198242188, 1.8731034994125366, -5.313580513000488, -3.543395757675171, 8.796149253845215, -6.377914905548096, 18.345396041870117, 0.10849461704492569, 15.608501434326172, 2.1566805839538574, -3.8595571517944336, -5.960569858551025, -6.687723636627197, -5.131514072418213, 12.569451332092285, -13.603490829467773, -24.10186004638672, -21.87165641784668}; diff --git a/software/tests/fft-32b/kernel/fft.c b/software/tests/fft-32b/kernel/fft.c new file mode 100644 index 0000000..2723e98 --- /dev/null +++ b/software/tests/fft-32b/kernel/fft.c @@ -0,0 +1,254 @@ +// Copyright 2026 ETH Zurich and University of Bologna. +// +// SPDX-License-Identifier: Apache-2.0 +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Author: Diyou Shen, Matteo Perotti, ETH Zurich + +#include "fft.h" + +/* Phase 1 of vector FFT on muti-core */ +/* This function would be run several times in main with barrier*/ + +void fft_p1 (float *src, float *buf, const float *twi, + const uint32_t nfft, const uint32_t ntwi, + const uint32_t cid, const uint32_t num_cores, + const uint32_t stage, const uint32_t len) { + + size_t avl = (size_t) len; + size_t vl; + + const float *re_twi, *im_twi; + const float *re_u_i, *im_u_i, *re_l_i, *im_l_i; + float *re_u_o, *im_u_o, *re_l_o, *im_l_o; + + const float *i_buf; + float *o_buf; + i_buf = src; + o_buf = buf; + + // Is there a more efficient way to calculate these pointers? + for (uint32_t group = 0; group < (1 << stage); group ++) { + // divide cores into 2^(stage) groups + if (cid < ((num_cores >> stage)*(group+1))) { + // stage 0: 1 group, 0; + // stage 1: 2 group, 0 : nfft/2; + // stage 2: 4 group, 0 : nfft/4 : 2*nfft/4 : 3*nfft/4; + // ...... + + // offset for different groups + uint32_t offset = (nfft >> stage) * group; + uint32_t idx = cid - (num_cores >> stage) * group; + + // inputs pointer + re_u_i = i_buf + offset + idx * len; + re_l_i = re_u_i + (nfft >> (stage + 1)); + im_u_i = re_u_i + nfft; + im_l_i = re_l_i + nfft; + + // output pointer + re_u_o = o_buf + offset + idx * len; + re_l_o = re_u_o + (nfft >> (stage + 1)); + im_u_o = re_u_o + nfft; + im_l_o = re_l_o + nfft; + + // twiddle pointer + // twiddle will not need add group offset + // main will jump to next twiddle + // each group will have the same twiddle + re_twi = twi + idx * len; + im_twi = re_twi + ntwi; + + // Once the core gets the pointer, it needs to leave the loop + break; + } + } + + // initial value of avl has been calculated earlier + for (; avl > 0; avl -= vl) { + // re_u_o = re_u_i + re_l_i; + // im_u_o = im_u_i + im_l_i; + // re_l_o = (re_u_i - re_l_i) * re_twi - (im_u_i - im_l_i) * im_twi; + // im_l_o = (re_u_i - re_l_i) * im_twi + (im_u_i - im_l_i) * re_twi; + asm volatile("vsetvli %0, %1, e32, m4, ta, ma" : "=r"(vl) : "r"(avl)); + + asm volatile("vle32.v v0, (%0);" ::"r"(re_u_i)); // v0: Re upper wing + re_u_i += vl; + asm volatile("vle32.v v4, (%0);" ::"r"(re_l_i)); // v4: Re lower wing + re_l_i += vl; + asm volatile("vfadd.vv v16, v0, v4"); // v16: Re butterfly output upper wing + asm volatile("vfsub.vv v0, v0, v4"); // v0: Re butterfly output upper wing + + asm volatile("vle32.v v8, (%0);" ::"r"(im_u_i)); // v8: Im upper wing + im_u_i += vl; + asm volatile("vle32.v v12, (%0);" ::"r"(im_l_i)); // v12: Im lower wing + im_l_i += vl; + + asm volatile("vfadd.vv v20, v8, v12"); // v20: Im butterfly output upper wing + + asm volatile("vfsub.vv v4, v8, v12"); // v4: Im butterfly output upper wing + + // Load the twiddle vector + asm volatile("vle32.v v8, (%0);" ::"r"(re_twi)); // v8: Re twi + re_twi += vl; + asm volatile("vle32.v v12, (%0);" ::"r"(im_twi)); // v12: Im twi + im_twi += vl; + + // Twiddle the lower wing + // re_l_o = - v0 * v8 - v4 * v12 + // im_l_o = v0 * v12 + v4 * v8 + // Store 1:1 the output result + // Sequence do not need to shuffle in first phase + asm volatile("vfmul.vv v24, v0, v8"); + asm volatile("vfnmsac.vv v24, v4, v12"); // v24: Re butterfly output + // twiddled lower wing + asm volatile("vse32.v v16, (%0)" ::"r"(re_u_o)); + re_u_o += vl; + asm volatile("vse32.v v20, (%0)" ::"r"(im_u_o)); + im_u_o += vl; + asm volatile("vfmul.vv v28, v0, v12"); + asm volatile("vfmacc.vv v28, v4, v8"); // v28: Im butterfly output + // twiddled lower wing + + asm volatile("vse32.v v24, (%0)" ::"r"(re_l_o)); + re_l_o += vl; + asm volatile("vse32.v v28, (%0)" ::"r"(im_l_o)); + im_l_o += vl; + } +} + +/* Phase 2 of vector FFT on muti-core */ +// DIF Cooley-Tukey algorithm +// At every iteration, we store indexed +void fft_p2(float *s, float *buf, const float *twi, float *out, + const uint16_t *seq_idx, const uint32_t nfft, + const uint32_t nfft_ori, const uint32_t log2_nfft, + const uint32_t stride, const uint32_t stride_e, const uint32_t ntwi) { + + // Always run in dual-core mode + + // Real part of the twiddles + const float *re_twi = twi; + // Img part of the twiddles + const float *im_twi = twi + ntwi; + + // Keep half of the samples in a vector register + size_t avl; + size_t vl; + + // Loop through the butterfly stages + for (uint32_t bf = 0; bf < log2_nfft; ++bf) { + // Keep half of the samples in a vector register + avl = nfft >> 1; + // Swap between the two buffers + const float *i_buf; + float *o_buf; + i_buf = !(bf & 1) ? buf : s; + o_buf = !(bf & 1) ? s : buf; + + // Last iteration + if (bf == log2_nfft - 1) + o_buf = buf; + + // Update pointers + const float *re_u_i = i_buf; + const float *im_u_i = i_buf + nfft_ori; + const float *re_l_i = re_u_i + (nfft >> 1); + const float *im_l_i = im_u_i + (nfft >> 1); + float *re_u_o = o_buf; + float *im_u_o = o_buf + nfft_ori; + float *re_l_o = re_u_o + (nfft >> 1); + float *im_l_o = im_u_o + (nfft >> 1); + + float *re_u_s = out; + float *im_u_s = out + nfft_ori; + float *re_l_s = re_u_s + (nfft_ori >> 1); + float *im_l_s = im_u_s + (nfft_ori >> 1); + + // Stripmine the whole vector for this butterfly stage + for (; avl > 0; avl -= vl) { + // re_u_o = re_u_i + re_l_i; + // im_u_o = im_u_i + im_l_i; + // re_l_o = (re_u_i - re_l_i) * re_twi - (im_u_i - im_l_i) * im_twi; + // im_l_o = (re_u_i - re_l_i) * im_twi + (im_u_i - im_l_i) * re_twi; + // Stripmine + // Group 4 registers as a larger register to improve performance + asm volatile("vsetvli %0, %1, e32, m4, ta, ma" : "=r"(vl) : "r"(avl)); + + // 2 load/store with 2 calc sometimes gives a better performance (window of 4 insn) + asm volatile("vle32.v v0, (%0);" ::"r"(re_u_i)); // v0: Re upper wing + re_u_i += vl; + asm volatile("vle32.v v4, (%0);" ::"r"(re_l_i)); // v4: Re lower wing + re_l_i += vl; + + asm volatile("vfadd.vv v16, v0, v4"); // v16: Re butterfly output upper wing + asm volatile("vfsub.vv v0, v0, v4"); // v0: Re butterfly output upper wing + + asm volatile("vle32.v v8, (%0);" ::"r"(im_u_i)); // v8: Im upper wing + im_u_i += vl; + asm volatile("vle32.v v12, (%0);" ::"r"(im_l_i)); // v12: Im lower wing + im_l_i += vl; + + asm volatile("vfadd.vv v20, v8, v12"); // v20: Im butterfly output upper wing + asm volatile("vfsub.vv v4, v8, v12"); // v4: Im butterfly output upper wing + + // Load the index vector. If last step, do strided store + // Otherwise, it's the helper index for the permutations (this is a mask + // vector) + if (bf == log2_nfft - 1) { + // Last store is a strided pattern + // use strided store instead of index store to improve performance + asm volatile("vsse32.v v16, (%0), %1" ::"r"(re_u_s),"r"(stride)); + asm volatile("vsse32.v v20, (%0), %1" ::"r"(im_u_s),"r"(stride)); + asm volatile("vsse32.v v0, (%0), %1" ::"r"(re_l_s),"r"(stride)); + asm volatile("vsse32.v v4, (%0), %1" ::"r"(im_l_s),"r"(stride)); + // update the store pointer + re_u_s += (vl << stride_e); + im_u_s += (vl << stride_e); + re_l_s += (vl << stride_e); + im_l_s += (vl << stride_e); + } else { + // TODO: Actually, there is no need to st then ld + // Can we add an insn to shuffle the elem position? + // Load the twiddle vector + asm volatile("vle32.v v8, (%0);" ::"r"(re_twi)); // v8: Re twi + re_twi += vl; + asm volatile("vle32.v v12, (%0);" ::"r"(im_twi)); // v12: Im twi + im_twi += vl; + + // Twiddle the lower wing + // re_l_o = - v0 * v8 - v4 * v12 + // im_l_o = v0 * v12 + v4 * v8 + asm volatile("vfmul.vv v24, v0, v8"); + asm volatile("vfnmsac.vv v24, v4, v12"); // v24: Re butterfly output + // twiddled lower wing + asm volatile("vfmul.vv v28, v0, v12"); + asm volatile("vfmacc.vv v28, v4, v8"); // v28: Im butterfly output + // twiddled lower wing + // Load the sequential indices dirctly + asm volatile("vle16.v v12, (%0)" ::"r"(seq_idx)); // v24: index vector + seq_idx += vl; + re_u_o = o_buf; + im_u_o = o_buf + nfft_ori; + re_l_o = re_u_o + (nfft >> 2); + im_l_o = im_u_o + (nfft >> 2); + + asm volatile("vsuxei16.v v16, (%0), v12" ::"r"(re_u_o)); + asm volatile("vsuxei16.v v20, (%0), v12" ::"r"(im_u_o)); + asm volatile("vsuxei16.v v24, (%0), v12" ::"r"(re_l_o)); + asm volatile("vsuxei16.v v28, (%0), v12" ::"r"(im_l_o)); + } + } + } +} diff --git a/software/tests/fft-32b/kernel/fft.h b/software/tests/fft-32b/kernel/fft.h new file mode 100644 index 0000000..827c380 --- /dev/null +++ b/software/tests/fft-32b/kernel/fft.h @@ -0,0 +1,39 @@ +// Copyright 2026 ETH Zurich and University of Bologna. +// +// SPDX-License-Identifier: Apache-2.0 +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Author: Diyou Shen, Matteo Perotti, ETH Zurich + +#include +#include + +#ifndef _FFT_H_ +#define _FFT_H_ + +// Phase 1 of vector FFT on muti-core +inline void fft_p1 (float *src, float *buf, const float *twi, + const uint32_t nfft, const uint32_t ntwi, + const uint32_t cid, const uint32_t num_cores, + const uint32_t stage, const uint32_t len) + __attribute__((always_inline)); + +// Phase 2 of vector FFT on muti-core +inline void fft_p2(float *s, float *buf, const float *twi, float *out, + const uint16_t *seq_idx, const uint32_t nfft, + const uint32_t nfft_ori, const uint32_t log2_nfft, + const uint32_t stride, const uint32_t stride_e, const uint32_t ntwi) + __attribute__((always_inline)); + +#endif diff --git a/software/tests/fft-32b/main.c b/software/tests/fft-32b/main.c new file mode 100644 index 0000000..d95269d --- /dev/null +++ b/software/tests/fft-32b/main.c @@ -0,0 +1,198 @@ +// Copyright 2026 ETH Zurich and University of Bologna. +// +// SPDX-License-Identifier: Apache-2.0 +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Author: Diyou Shen, ETH Zurich + +#include +#include +#include +#include +#include +#include + +#include DATAHEADER +#include "kernel/fft.c" + +static inline int fp_check(const float a, const float b) { + const float threshold = 0.01f; + + // Absolute value + float comp = a - b; + if (comp < 0) + comp = -comp; + + return comp > threshold; +} + +// max(#Core) = (NFFT/4)/(N_FU) +// Helper index in 16-bits, needs to fit in a vector word (1/2 * 1/(N_FU)) +// We also need to one additional round for strided store into bitrev order (another 1/2) +// 256 -> 16 +// 512 -> 32 +// 1024 -> 64 + +int main() { + const int measure_iter = 2; + + // twiddle layout: [re_p1, im_p1, re_p2, im_p2] + const uint32_t num_cores = snrt_cluster_core_num(); + const uint32_t cid = snrt_cluster_core_idx(); + + snrt_cluster_hw_barrier(); + const uint32_t NFFTpc = NFFT / active_cores; + // 32-bit floating, 4 byte distance in memory + const uint32_t element_size = 4; + // elements distance between two stores + const uint32_t stride_e = active_cores; + // distance in bits + const uint32_t stride = stride_e * element_size; + + const uint32_t CHECK = 1; + + // Reset timer + uint32_t timer = (uint32_t)-1; + uint32_t timer_tmp, timer_iter1; + + if (cid == 0) { + // Set xbar policy + // Currently set to fully interleave (log2(512/8)) + l1d_xbar_config(6); + } + + // Wait for all cores to finish + snrt_cluster_hw_barrier(); + + // Calculate pointers for the second butterfly onwards + float *src_p2 = samples_dram + cid * NFFTpc; + float *buf_p2 = buffer_dram + cid * NFFTpc; + // Let each core has its own twiddle copy to reduce bank conflicts + float *twi_p2 = twiddle_dram + (NTWI_P1<<1); + float *out_p2 = out + coffset_dram[cid]; + + uint32_t p2_switch = 0; + + float *src_p1 = samples_dram; + float *buf_p1 = buffer_dram; + float *twi_p1 = twiddle_dram; + const uint32_t len = (NFFTpc >> 1); + + // real and imagninary error + uint32_t rerror = 0; + uint32_t ierror = 0; + + for (int iter = 0; iter < measure_iter; iter++) { + if (cid == 0) { + start_kernel(); + } + + // Wait for all cores to finish + snrt_cluster_hw_barrier(); + + // Start timer + if (cid == 0) { + timer_tmp = benchmark_get_cycle(); + } + + for (uint32_t i = 0; i < log2_nfft1; i ++) { + if (cid < active_cores) { + fft_p1(src_p1, buf_p1, twi_p1, NFFT, NTWI_P1, cid, active_cores, i, len); + // each round will use half the twiddle than previous round + // the first round needs re/im NFFT/2 twiddles + src_p1 = (i & 1) ? samples_dram : buffer_dram; + buf_p1 = (i & 1) ? buffer_dram : samples_dram; + twi_p1 += (NFFT >> (i+1)); + p2_switch = (i & 1); + } + + // In first part of calculation, we need barrier after each round + snrt_cluster_hw_barrier(); + } + + if (cid < active_cores) { + // Fall back into the single-core case + // Each core just do a FFT on (NFFT >> stage_in_P1) data + if (p2_switch) { + fft_p2(buf_p2, src_p2, twi_p2, out_p2, store_idx_dram, (NFFT>>log2_nfft1), + NFFT, log2_nfft2, stride, log2_nfft1, NTWI_P2); + } else { + fft_p2(src_p2, buf_p2, twi_p2, out_p2, store_idx_dram, (NFFT>>log2_nfft1), + NFFT, log2_nfft2, stride, log2_nfft1, NTWI_P2); + } + } + // Wait for all cores to finish fft + snrt_cluster_hw_barrier(); + + // End timer and check if new best runtime + if (cid == 0) { + timer_tmp = benchmark_get_cycle() - timer_tmp; + timer = (timer < timer_tmp) ? timer : timer_tmp; + if (iter == 0) + timer_iter1 = timer; + + stop_kernel(); + + if ((iter == 0) && CHECK) { + l1d_flush(); + l1d_wait(); + + // Verify the real part + for (unsigned int i = 0; i < NFFT; i++) { + if (fp_check(out[i], gold_out_dram[2 * i])) { + rerror ++; + } + } + + // Verify the imac part + for (unsigned int i = 0; i < NFFT; i++) { + if (fp_check(out[i + NFFT], gold_out_dram[2 * i + 1])) { + ierror ++; + } + } + + printf ("r:%d,i:%d\n", rerror, ierror); + } + } + + snrt_cluster_hw_barrier(); + } + + // Display runtime + if (cid == 0) { + // Each stage requires: + // 2 add, 2 sub, 2 mul, 2 macc/msac + // in total 10 operations on NFFT/2 real and NFFT/2 im elements + + // Divide by two so that the utilization in macc isntead of op + long unsigned int performance = + 1000 * NFFT * 10 * log2_nfft / timer; + long unsigned int utilization = performance / (2 * active_cores * 4); + + printf("\n----- fft on %d samples -----\n", NFFT); + printf("First execution took %u cycles.\n", timer_iter1); + printf("The execution took %u cycles.\n", timer); + printf("The performance is %ld OP/1000cycle (%ld%%o utilization).\n", + performance, utilization); + + + } + + // Wait for core 0 to finish displaying results + snrt_cluster_hw_barrier(); + if ((rerror + ierror) > 0) + return 1; + else + return 0; +} diff --git a/software/tests/fft-32b/script/fft.json b/software/tests/fft-32b/script/fft.json new file mode 100644 index 0000000..06a5695 --- /dev/null +++ b/software/tests/fft-32b/script/fft.json @@ -0,0 +1,11 @@ +// Copyright 2020 ETH Zurich and University of Bologna. +// Solderpad Hardware License, Version 0.51, see LICENSE for details. +// SPDX-License-Identifier: SHL-0.51 + +// Parameters for an FFT + +{ + npoints: 256, + ncores: 4, + prec: 32 +} diff --git a/software/tests/fft-32b/script/gen_data.py b/software/tests/fft-32b/script/gen_data.py new file mode 100644 index 0000000..88b1c92 --- /dev/null +++ b/software/tests/fft-32b/script/gen_data.py @@ -0,0 +1,320 @@ +#!/usr/bin/env python3 +# Copyright 2021 ETH Zurich and University of Bologna. +# +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# arg1: input size, arg2: num_cores + +import numpy as np +import copy +import argparse +import pathlib +import hjson + +np.random.seed(42) + +FFT2_SAMPLE_DYN = 13 +FFT_TWIDDLE_DYN = 15 + + +def serialize_cmplx(vector, NFFT, dtype): + # Split the real and imaginary parts + vector_re = np.real(vector) + vector_im = np.imag(vector) + # Serialize the vectors + serial_vec = np.empty(2 * NFFT, dtype=dtype) + serial_vec[0::2] = vector_re + serial_vec[1::2] = vector_im + return serial_vec + +############ +# DATA # +############ + + +def setupInput(samples, Nfft, dyn): + with np.nditer(samples, op_flags=['readwrite']) as it: + for samp in it: + samp[...]['re'] = np.random.randn(1) + samp[...]['im'] = np.random.randn(1) + +############ +# TWIDDLES # +############ + + +def setupTwiddlesLUT(Twiddles_vec, Nfft): + Theta = (2 * np.pi) / Nfft + with np.nditer(Twiddles_vec, op_flags=['readwrite']) as it: + for idx, twi in enumerate(it): + Phi = 2 * np.pi - Theta * (idx) + twi[...]['re'] = np.cos(Phi) + twi[...]['im'] = np.sin(Phi) + + +def setupTwiddlesLUT_dif_vec(Twiddles_vec, Nfft): + # Nfft power of 2 + stages = int(np.log2(Nfft)) + Theta = (2 * np.pi) / Nfft + # Twiddle factors ([[twi0_re, twi0_im], [twi1_re, twi1_im]]) + twi = [[np.cos((2 * np.pi) - i * Theta), np.sin((2 * np.pi) - i * Theta)] + for i in range(int(Nfft / 2))] + # Write the Twiddle factors + for s in range(stages): + for t in range(int(Nfft / 2)): + Twiddles_vec[int(s * Nfft / 2 + t) + ]['re'] = twi[int((2**(s) * t) % int(Nfft / 2))][0] + Twiddles_vec[int(s * Nfft / 2 + t) + ]['im'] = twi[int((2**(s) * t) % int(Nfft / 2))][1] + return Twiddles_vec + + with np.nditer(Twiddles_vec, op_flags=['readwrite']) as it: + for idx, twi in enumerate(it): + Phi = Theta * idx + twi[...]['re'] = np.cos(Phi) + twi[...]['im'] = np.sin(Phi) + +############### +# BITREVERSAL # +############### + + +def gen_bitrev_idx(nfft): + fmt = '{:0' + str(int(np.log2(nfft))) + 'b}' + bitrev = np.zeros(nfft) + for n in np.arange(nfft): + bitrev[n] = int(fmt.format(n)[::-1], 2) + return bitrev + +def gen_core_offset(NCORE): + # Calculate the number of bits needed to represent the highest cid + max_cid = NCORE - 1 + num_bits = max_cid.bit_length() + + # Calculate and return offsets for all cores + core_offsets = [int(format(cid, f'0{num_bits}b')[::-1], 2) for cid in range(NCORE)] + return core_offsets + +def gen_store_idx(nfft): + ibuf = [] + dbuf = [] + a = [*range(nfft)] + b = np.zeros(nfft) + old_b = a + nffth = nfft >> 1 + for bf in range(int(np.log2(nffth))): + stride = nffth >> (bf + 1) + for h in range(2): + for i in range(int(nffth / (stride << 1))): + for j in range(stride): + b[h * (nffth >> 1) + i * stride + j] = old_b[h * nffth + j + 2 * i * stride] + b[h * (nffth >> 1) + i * stride + j + nffth] = old_b[h * nffth + j + 2 * i * stride + stride] + delta = [[i for i in b].index(n) for n in old_b] + ibuf += [[i for i in b]] + dbuf += [delta] + old_b = [n for n in copy.deepcopy(b)] + b = np.zeros(nfft) + idx_list = sum(ibuf, []) + delta_list = sum(dbuf, []) + return [idx_list, delta_list] + + +########## +# SCRIPT # +########## + + +def main(): + + parser = argparse.ArgumentParser(description='Generate data for kernels') + parser.add_argument( + "-c", + "--cfg", + type=pathlib.Path, + required=True, + help='Select param config file kernel' + ) + parser.add_argument( + "-v", + "--verbose", + action='store_true', + help='Set verbose' + ) + + args = parser.parse_args() + + global verbose + verbose = args.verbose + + with args.cfg.open() as f: + param = hjson.loads(f.read()) + + NFFT = param['npoints'] + CORES = param['ncores'] + NFFTpc = NFFT // CORES + NFFTh = NFFT // 2 + N_TWID_P2 = int(np.log2(NFFTpc) * NFFTpc / 2) + N_TWID_P1 = int(NFFT*(1-0.5**(np.log2(CORES)))) + # dual = param['dual'] + # dual = 0 + + dtype = np.float32 + idx_dtype = np.uint32 + # Complex data type with int16 for real and img parts + dtype_cplx = np.dtype([('re', dtype), ('im', dtype)]) + + # Vector of samples + samples = np.empty(NFFT, dtype=dtype_cplx) + twiddle = np.empty(NFFTpc, dtype=dtype_cplx) + twiddle_v = np.empty(N_TWID_P2, dtype=dtype_cplx) + gold_out = np.empty(NFFT, dtype=dtype_cplx) + + # Initialize the twiddle factors + setupTwiddlesLUT(twiddle, NFFTpc) + twiddle_v = setupTwiddlesLUT_dif_vec(twiddle_v, NFFTpc) + + # Initialize the input samples + setupInput(samples, NFFT, FFT2_SAMPLE_DYN) + + # Calculate the golden FFT + # print(samples) + # print(samples['re'] + 1j * samples['im']) + gold_out = np.fft.fft(samples['re'] + 1j * samples['im']) + # print(gold_out) + + # Serialize the complex array + samples_s = serialize_cmplx( + samples['re'] + 1j * samples['im'], NFFT, dtype) + twiddle_v_s = serialize_cmplx( + twiddle_v['re'] + 1j * twiddle_v['im'], N_TWID_P2, dtype) + gold_out_s = serialize_cmplx(gold_out, NFFT, dtype) + + # Create the sequential vectors - Real, and Imaginary + samples_reim = np.empty(2 * NFFT, dtype=dtype) + samples_reim[0:NFFT] = samples_s[0::2] + samples_reim[NFFT:2 * NFFT] = samples_s[1::2] + + twiddle_vec_reim = np.empty(2 * N_TWID_P2, dtype=dtype) + twiddle_vec_reim[0:N_TWID_P2] = twiddle_v_s[0::2] + twiddle_vec_reim[N_TWID_P2:2 * N_TWID_P2] = twiddle_v_s[1::2] + for i in range(int(np.log2(CORES))): + twiddle_vec_reim = np.concatenate((twiddle_vec_reim, twiddle_vec_reim)) + + # Generate indices for intermediate stores (if masks are not supported) + [store_idx, store_delta] = gen_store_idx(NFFTpc) + # Get the last store index vector + last_si = store_idx[-NFFTpc:] + # Convert to byte array + store_delta = [n * np.dtype(idx_dtype).itemsize for n in store_delta] + # We need only half of this vector + buf = [] + for i in range(len(store_delta) // NFFTpc): + buf += store_delta[i * NFFTpc:i * NFFTpc + NFFTpc // 2] + store_delta = buf + + # Generate the bitrev pattern + buf = gen_bitrev_idx(NFFTh) + bitrev = [[i for i in buf].index(n) for n in last_si] + bitrev = np.array([n * np.dtype(idx_dtype).itemsize for n in bitrev]) + # We need only half of this vector + bitrev = bitrev[:len(bitrev) // 2] + # If two cores, the bitrev idx vector is different and we need an additional twi layer + if CORES > 1: + # Bitrev + buf = copy.deepcopy(bitrev) + bitrev = [2 * i for i in buf] + core_offsets = gen_core_offset(CORES) + # Twi + N_T_BUF = int(np.log2(NFFTh * 2) * NFFTh) + twiddle = np.empty(NFFTh * 2, dtype=dtype_cplx) + twiddle_v = np.empty(N_T_BUF, dtype=dtype_cplx) + setupTwiddlesLUT(twiddle, 2 * NFFTh) + twiddle_v = setupTwiddlesLUT_dif_vec(twiddle_v, 2 * NFFTh) + twiddle_v_s = serialize_cmplx( + twiddle_v['re'] + 1j * twiddle_v['im'], N_T_BUF, dtype) + tbuf = np.empty(2 * N_T_BUF, dtype=dtype) + tbuf[0:N_T_BUF] = twiddle_v_s[0::2] + tbuf[N_T_BUF:2 * N_T_BUF] = twiddle_v_s[1::2] + # print(tbuf[0:N_T_BUF]) + tbuf_re = np.empty(NFFTh, dtype=dtype) + tbuf_im = np.empty(NFFTh, dtype=dtype) + tbuf_re[0:NFFTh] = tbuf[0:NFFTh] + tbuf_im[0:NFFTh] = tbuf[N_T_BUF:N_T_BUF+NFFTh] + for i in range(int(np.log2(CORES)-1)): + offset = int((i+1) * NFFTh) + size = int(NFFTh >> (i+1)) + tbuf_re = np.concatenate((tbuf_re, tbuf[offset:offset+size])) + offset += N_T_BUF + tbuf_im = np.concatenate((tbuf_im, tbuf[offset:offset+size])) + + # Attach 1bf img part + twiddle_vec_reim = np.concatenate((tbuf_im, twiddle_vec_reim)) + # Attach 1bf real part + twiddle_vec_reim = np.concatenate((tbuf_re, twiddle_vec_reim)) + + # Generate buffer for intermediate butterflies + buffer_dram = np.zeros(2 * NFFT) + + # License + emit_str = ( + "// Copyright 2023 ETH Zurich and University of Bologna.\n" + + "// Licensed under the Apache License, Version 2.0, see LICENSE for details.\n" + + "// SPDX-License-Identifier: Apache-2.0\n\n" + + "// This file was generated automatically.\n\n" + ) + + # if dual != 0: + # emit_str += '#define DUAL_LOAD\n' + + # Create the file + # Constants + emit_str += 'static uint32_t NFFT = {};\n'.format(NFFT) + emit_str += 'static uint32_t NTWI_P1 = {};\n'.format(N_TWID_P1) + emit_str += 'static uint32_t NTWI_P2 = {};\n'.format(N_TWID_P2) + emit_str += 'static uint32_t NTWI_TOT = {};\n'.format(N_TWID_P1+N_TWID_P2) + emit_str += 'static uint32_t log2_nfft = {};\n'.format(int(np.log2(NFFT))) + emit_str += 'static uint32_t log2_nfft1 = {};\n'.format(int(np.log2(CORES))) + emit_str += 'static uint32_t log2_nfft2 = {};\n'.format(int(np.log2(NFFTpc))) + emit_str += 'static uint32_t active_cores = {};\n\n'.format(CORES) + + # L1 Data + emit_str += 'float out[{}]'.format(2 * NFFT) + ' __attribute__((section(".pdcp_src"))) = { [0 ... ' + str(2 * NFFT - 1) + '] = 0 };\n' + + # L2 Data + emit_str += 'static float samples_dram[{}]'.format(2 * NFFT) + ' __attribute__((section(".pdcp_src"))) = {' + ', '.join( + map(str, samples_reim.astype(dtype).tolist())) + '};\n' + emit_str += 'static float buffer_dram[{}]'.format(2 * NFFT) + ' __attribute__((section(".pdcp_src"))) = {' + ', '.join( + map(str, buffer_dram.astype(dtype).tolist())) + '};\n' + if CORES == 1: + emit_str += 'static float twiddle_dram[{}]'.format(2 * N_TWID_P2) + ' __attribute__((section(".pdcp_src"))) = {' + ', '.join( + map(str, twiddle_vec_reim.astype(dtype).tolist())) + '};\n' + else: + emit_str += 'static float twiddle_dram[{}]'.format(2 * (CORES*N_TWID_P2 + N_TWID_P1)) + ' __attribute__((section(".pdcp_src"))) = {' + ', '.join( + map(str, twiddle_vec_reim.astype(dtype).tolist())) + '};\n' + emit_str += 'static uint16_t store_idx_dram[{}]'.format(int(np.log2(NFFTpc / 2) * NFFTpc / 2)) + ' __attribute__((section(".pdcp_src"))) = {' + ', '.join( + map(str, np.array(store_delta).astype(idx_dtype).tolist())) + '};\n' + emit_str += 'static uint32_t coffset_dram[{}]'.format(int( + CORES)) + ' __attribute__((section(".pdcp_src"))) = {' + ', '.join(map(str, core_offsets)) + '};\n' + emit_str += 'static float gold_out_dram[{}]'.format( + 2 * NFFT) + ' __attribute__((section(".pdcp_src"))) = {' + ', '.join(map(str, gold_out_s.astype(dtype).tolist())) + '};\n' + + file_path = pathlib.Path(__file__).parent.parent / 'data' + file = file_path / ('data_' + str(NFFT) + "_" + str(CORES) + ".h") + with file.open('w') as f: + f.write(emit_str) + + +if __name__ == '__main__': + main() From e76feb404c8ffe30a4e18c19fc32b95d6b828e04 Mon Sep 17 00:00:00 2001 From: Diyou Shen Date: Mon, 20 Apr 2026 14:10:02 +0200 Subject: [PATCH 2/4] [CI] Add FFT test to CI. --- util/auto-benchmark/configs-ci.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/util/auto-benchmark/configs-ci.sh b/util/auto-benchmark/configs-ci.sh index 1c9a3e9..11fe23e 100644 --- a/util/auto-benchmark/configs-ci.sh +++ b/util/auto-benchmark/configs-ci.sh @@ -1,5 +1,5 @@ # Configs and kernel suffixes (without prefix) CONFIGS="cachepool_fpu_512" -KERNELS="spin-lock load-store_M16 fdotp-32b_M32768 gemv-opt_M512_N128_K32 fmatmul-32b_M32_N32_K32 multi_producer_single_consumer_double_linked_list_M1_N1350_K10 byte-enable" +KERNELS="spin-lock load-store_M16 fdotp-32b_M32768 gemv-opt_M512_N128_K32 fmatmul-32b_M32_N32_K32 fft-32b_M1024_N16 multi_producer_single_consumer_double_linked_list_M1_N1350_K10 byte-enable" PREFIX="test-cachepool-" # common prefix for all kernels ROOT_PATH=../.. # adjust if needed (path to repo root) From dba9b41e81ac7062657f6bdb99e595eb8fc728cf Mon Sep 17 00:00:00 2001 From: Diyou Shen Date: Mon, 20 Apr 2026 14:10:31 +0200 Subject: [PATCH 3/4] [Deps] Incorporate a bug fix in Spatz for indexed stores. --- Bender.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Bender.lock b/Bender.lock index 0cfc001..9684f42 100644 --- a/Bender.lock +++ b/Bender.lock @@ -97,7 +97,7 @@ packages: - common_cells - tech_cells_generic spatz: - revision: 94ff5f6ca70e4dfef6168e0ac25b0bdd88e40132 + revision: ed25c78dd72d839db8141287f9516d78ee399b93 version: null source: Git: https://github.com/pulp-platform/spatz.git From 274f3649cc8bdd0e54d97ea5dd20861a639c8a06 Mon Sep 17 00:00:00 2001 From: Diyou Shen Date: Mon, 20 Apr 2026 14:13:32 +0200 Subject: [PATCH 4/4] [SRC] Adjust the multi-remote ports assignment for memory consistency. Now the selected ports are depending on the target tiles instead of the sender id. --- hardware/src/cachepool_group.sv | 14 +++++++++----- hardware/src/tcdm_cache_interco.sv | 25 +++++++++++++++---------- 2 files changed, 24 insertions(+), 15 deletions(-) diff --git a/hardware/src/cachepool_group.sv b/hardware/src/cachepool_group.sv index 772626f..b14d1ac 100644 --- a/hardware/src/cachepool_group.sv +++ b/hardware/src/cachepool_group.sv @@ -265,16 +265,20 @@ module cachepool_group assign tile_remote_in_rsp_valid[j][t*NumRemotePortCore+r] = tile_remote_in_rsp[t][j+r*NrTCDMPortsPerCore].p_valid; assign tile_remote_in_req_ready[j][t*NumRemotePortCore+r] = tile_remote_in_rsp[t][j+r*NrTCDMPortsPerCore].q_ready; - // Request selection: convert narrow tile_id to wide xbar index by appending - // core_id % NumRemotePortCore (available in the request channel user field) + // Request selection: route to target tile's remote-in slot based on + // target tile ID, so that all requests to the same destination tile + // travel through one pipeline — preserving write-before-read ordering. assign remote_out_sel_xbar[j][t*NumRemotePortCore+r] = remote_xbar_sel_t'( remote_out_sel_tile[t][j+r*NrTCDMPortsPerCore] * NumRemotePortCore - + tile_remote_out_req_chan[j][t*NumRemotePortCore+r].user.core_id % NumRemotePortCore); + + remote_out_sel_tile[t][j+r*NrTCDMPortsPerCore] % NumRemotePortCore); - // Response selection: recover xbar port from tile_id and core_id in response user field + // Response selection: route back to source tile's remote-out slot. + // The originator (tile_id in user field) sent on slot + // (target_tile % NumRemotePortCore). The responding tile is `t` + // (genvar), so target_tile = t. assign remote_in_sel_xbar[j][t*NumRemotePortCore+r] = remote_xbar_sel_t'( tile_remote_in_rsp_chan[j][t*NumRemotePortCore+r].user.tile_id * NumRemotePortCore - + tile_remote_in_rsp_chan[j][t*NumRemotePortCore+r].user.core_id % NumRemotePortCore); + + t % NumRemotePortCore); end end end diff --git a/hardware/src/tcdm_cache_interco.sv b/hardware/src/tcdm_cache_interco.sv index b79a8b3..ba49e11 100644 --- a/hardware/src/tcdm_cache_interco.sv +++ b/hardware/src/tcdm_cache_interco.sv @@ -218,6 +218,7 @@ module tcdm_cache_interco #( for (genvar port = 0; port < NumCores+NumRemotePort; port++) begin : gen_req_sel logic [CacheBankBits-1:0] addr_bank; + logic [TileIDWidth-1:0] addr_tile; always_comb begin // Defaults. @@ -226,6 +227,8 @@ module tcdm_cache_interco #( // Extract the raw BankSel field from the address. addr_bank = core_req[port].addr[dynamic_offset_i +: CacheBankBits]; + // Extract the target TileID from the address (used for remote port selection). + addr_tile = core_req[port].addr[(dynamic_offset_i + CacheBankBits) +: TileIDWidth]; if (num_private_cache_q == ($clog2(NumCache)+1)'(NumCache) || NumTiles == 1) begin // All-private or single-tile: every request is local. @@ -236,11 +239,13 @@ module tcdm_cache_interco #( end else if (num_private_cache_q == '0) begin // All-shared: check TileID to decide local vs. remote. // Use the full BankSel field directly (no folding needed). - local_sel[port] = - (core_req[port].addr[(dynamic_offset_i + CacheBankBits) +: TileIDWidth] == tile_id_i); + local_sel[port] = (addr_tile == tile_id_i); + // Route remote requests by target tile ID so that all accesses to the + // same tile share a single pipeline, preserving write-before-read + // ordering across barriers. core_req_sel[port] = local_sel[port] ? core_sel_t'(addr_bank) - : core_sel_t'(NumCache + (port % NumRemotePort)); + : core_sel_t'(NumCache + (addr_tile % NumRemotePort)); end else begin // Mixed: fold addr_bank into the appropriate partition via modulo. @@ -252,11 +257,10 @@ module tcdm_cache_interco #( end else begin // Shared request: check TileID to decide local vs. remote. // bank = num_private_cache_q + (addr_bank % num_shared_cache_q). - local_sel[port] = - (core_req[port].addr[(dynamic_offset_i + CacheBankBits) +: TileIDWidth] == tile_id_i); + local_sel[port] = (addr_tile == tile_id_i); core_req_sel[port] = local_sel[port] ? core_sel_t'(num_private_cache_q + (addr_bank % num_shared_cache_q)) - : core_sel_t'(NumCache + (port % NumRemotePort)); + : core_sel_t'(NumCache + (addr_tile % NumRemotePort)); end end end @@ -270,10 +274,11 @@ module tcdm_cache_interco #( always_comb begin mem_rsp_sel[port] = mem_rsp[port].user.core_id; if (mem_rsp[port].user.tile_id != tile_id_i) begin - // Response from a remote tile: forward to the remote interco port. - // Use core_id % NumRemotePort to select the correct remote-in channel, - // consistent with the request-side mapping (port % NumRemotePort). - mem_rsp_sel[port] = mem_sel_t'(NumCores + (mem_rsp[port].user.core_id % NumRemotePort)); + // Response destined for a remote tile: forward to the remote interco + // port that matches the incoming request path. The group-level xbar + // routes requests from source tile S to our remote-in slot + // (S % NumRemotePort), so responses must return via the same slot. + mem_rsp_sel[port] = mem_sel_t'(NumCores + (mem_rsp[port].user.tile_id % NumRemotePort)); end end end