diff --git a/datasets/data1.csv b/datasets/data1.csv new file mode 100644 index 0000000..fc64cdb --- /dev/null +++ b/datasets/data1.csv @@ -0,0 +1,301 @@ +theta,r +0.21743239078547108,3.7049570010101727 +0.34395168123887115,4.860279731608299 +0.16175573158664985,5.375158031441472 +0.06633883694584776,5.647453142946209 +6.230651920827327,5.587867073585066 +5.830826209437275,3.8177015350642414 +6.123061238876947,5.695800419755927 +0.37174344257504227,4.296841798482563 +5.916671259050992,3.6690650819949036 +6.205769273631405,5.816692542039702 +6.209604998096377,4.493116049734717 +0.047907882897336496,4.999470387557574 +0.19202044217418932,5.006997047914623 +6.1399523109737215,5.893700401607992 +5.807643792248766,5.728415130590736 +6.16186711928074,3.5120248035304398 +5.990175263439852,4.914947855958803 +0.0827301691393105,7.193983942964165 +0.058592204318615976,4.42675336972382 +6.18250009228456,5.681949102714368 +6.052170492474965,4.971209462540594 +0.09013614733487053,5.649516268750801 +6.0888123269243035,5.729509505186744 +0.4990422659264003,5.20034179952834 +0.24568054410747928,5.192716385011428 +0.3907241647023987,5.12745558247503 +0.4221323363748441,5.4596422897477535 +0.16368314665202074,5.469882926698828 +0.07125503203784542,3.744819643196842 +5.9981976035125415,3.7233240624966712 +5.661725926866476,5.340922399328994 +5.829042080319255,4.845249654820369 +6.009214562265898,3.150155366001389 +0.24606409554535916,5.375445289952208 +6.207481837230903,5.791684830786408 +0.32190509370038933,4.686054640155429 +0.01889782226488366,4.788356180314306 +0.4185584262463656,3.1195878334366887 +6.188240443639321,5.200428811278333 +5.862976233198102,6.193632715614481 +0.07712151572761423,5.083550318468597 +0.012078857518329593,4.42653105683558 +0.02986475796361413,6.423881794750087 +0.08306844655769069,4.376918390132994 +0.17856844477240416,5.735906276887787 +0.33222536656866436,5.1004624842321835 +0.12331682596544868,3.843022286939701 +0.2542813685703029,4.991963103432413 +5.938301191156631,5.3150205429858834 +0.4835906295050351,4.65971997919264 +0.21992274075323973,3.0291281557362324 +6.003321361475514,5.370173821711407 +6.063327281882319,5.285622408457669 +0.12295722555033027,4.749927245883119 +0.16325443119720975,3.234873505008345 +0.11973510024386833,3.7920434693484637 +5.50850548159658,5.370857003466496 +0.10668709944873428,5.472167483891396 +0.11906835666788457,6.23461114209559 +6.217839527749563,4.5367492664884725 +0.25378877857792015,3.0343569909353256 +5.909374435167993,2.8547604942112965 +0.10808141328918912,5.1847790925909205 +6.165433533553598,5.303262872340187 +5.841337617608928,4.096784546276501 +0.41858858398147664,5.697803980915362 +6.011235615357569,4.537047892466453 +0.034658246793279356,4.079035668981481 +0.0498426855023242,5.621463354124888 +0.3523952073423611,4.686622146783084 +5.854484765163824,4.361833258478528 +0.22563322888425463,3.203070671249053 +0.0056760629397248725,3.089662339762362 +6.239747257344018,5.225369693441866 +6.058721309525739,6.351551090185451 +6.137107248230974,3.935493749388523 +0.520476069039469,3.438137094741938 +0.5090602927337112,3.1711379162097595 +6.194356509708078,4.6409464596807375 +0.3809041452481642,6.211982624896392 +5.843925594074966,5.315904545619519 +0.2954260855312408,6.134846569402048 +0.11354279551964791,4.670505594650272 +0.3170530533915265,5.035661034060121 +5.685769374751747,5.124485116048216 +0.12648715409836214,3.8076785219373552 +5.932564962627061,4.398155597544735 +0.30359396124263616,5.278383771234068 +5.95340299687779,4.561085264125083 +6.175730160971839,6.350797939218955 +6.1246692775179525,5.9927636705077365 +6.163374407825412,4.85357084172303 +0.016839408613062292,4.586452335315413 +6.068436870548652,3.9319202048095123 +5.971451328947524,4.462429962215751 +6.189032679364676,5.0158762461020165 +5.843203987775722,3.7885864023079776 +6.170777480928046,5.760494085984628 +5.693752973211673,3.9119770112747707 +6.101708701972779,5.689438756094091 +2.7441397854544696,1.241580643006312 +3.8353954105279855,0.7005134854714877 +3.477811144836098,0.6781879089131262 +3.9895442949629922,0.9425989797853399 +2.690961908274228,0.8809168897637676 +3.048843987337313,1.3208578693900108 +3.153628839200112,0.9358218688828741 +2.3246450876087934,1.026323095758281 +2.6646686336026706,1.3176143623493108 +3.87152610711056,0.9013602854993692 +3.299818487163256,1.0844778869383012 +4.610293086266212,1.0122321197171598 +2.4162887525125267,1.212840168679953 +3.141020088287348,1.1419931383144317 +3.3887141140841996,0.8534028957384636 +2.8832512789160267,0.8144923933552046 +3.7877669671121588,1.2785892519652595 +2.79900789791376,0.8141067230886357 +4.245141206667477,1.3303899276049302 +3.6273178189410653,0.7583465466292004 +3.2918997417517186,1.0991225058573548 +2.9927294124937345,1.2082937807456837 +3.5353234428249505,1.0828371840857962 +2.2058856800055917,1.0845115119241973 +3.055953609975032,0.8707660318115409 +3.526305721582862,0.9269756845677392 +3.35422422465394,1.1864338786907975 +4.565725599460156,1.0722287554996888 +3.2950971252458823,1.1898520833995132 +2.61740513652917,0.8573420870974784 +2.7914050802771375,1.171254281322966 +2.800901715201877,0.8073320704171371 +2.8548376006184455,1.2978609265956353 +3.255591690099257,0.8299124296657974 +4.2328815653155605,1.0966523418718428 +4.299405890076786,1.2329645778267633 +3.1074357133853967,0.6029663757885468 +1.7605063895264526,0.6172928094798686 +4.4030197280477825,1.2310528385559785 +2.7789920994570174,1.2472407620615282 +4.204544466472886,1.2929794979282352 +2.636944430837567,0.8612437851454784 +3.67542110370975,0.8737058532397151 +3.3642387842289825,1.2206046147785385 +3.5236098551686976,0.9170060445544482 +2.4656872460137786,0.9790678972190401 +1.9815406249344283,0.8932261637423913 +2.107474707118034,1.2844706484620354 +2.8911737909932076,1.1530559631266046 +4.182399832932957,1.0308917406111575 +3.1552466721100867,0.505469168787289 +3.7899600101127504,1.045051000985333 +3.7383117361040097,0.7477525708709084 +4.290583730447793,0.854699365166705 +3.2708330326393313,0.9639519141839674 +4.7492333281040064,0.6877070863965923 +3.156187731162684,0.8731388968019433 +2.7674718687122253,1.1312091705765048 +3.0636467180765776,0.7340949336031763 +3.219607396400738,1.2172499416137748 +2.361248518250078,1.246489263764466 +3.6111717967239505,0.9606447505763678 +1.4599839705388298,1.023622356818353 +4.050738890679425,0.8791896376459502 +3.295077520038712,1.2128772977521316 +1.6051405046768157,0.8791946570236 +3.8160810447555775,1.2288849374920452 +2.8721319479992125,1.0492650137683504 +3.8191150067306303,1.0640540488862786 +3.441586189859438,0.9512186477230516 +4.350397787698394,0.6741638397296683 +3.2835733570138883,0.6204515835506521 +3.435321339858835,1.3132358409551017 +3.5607085749332628,1.0713267579707362 +4.2236034361990615,0.885982844231083 +3.2751000512224744,0.811902580469395 +3.448650156393349,0.9795703654947044 +2.8439197754654253,1.0760360891914127 +3.363759200719923,1.4024130720714532 +3.9873105760003895,0.892832660619 +3.8743259600463666,0.8528297578143389 +3.158484037947462,1.1156259521465288 +3.4446924007040307,1.200530256130441 +4.30838325663547,0.6536478185733322 +3.0714634436516315,0.8287023338036617 +3.519499474153478,1.2218949710518638 +3.0632454713473747,1.2432102483429806 +3.7936690146351744,1.0278101997302957 +2.1516948819990627,1.1189568507038261 +2.948827055875623,1.3079101182926565 +3.5339882422137574,0.9082906328465157 +4.632395321204169,0.8567970521737409 +2.9817029722892356,1.0203990469078248 +4.219226402575489,0.836590998461711 +3.5697682092701646,1.1774566862712108 +3.8082736609109196,0.8872881138688007 +3.7374987922512686,0.8680030038268116 +4.046816218601393,1.3944156810051835 +3.31157092405274,1.1634544372083442 +3.6501794200340165,1.0248328320874946 +2.820539484701498,1.3272460550685556 +3.6579448108256756,0.6486143325657538 +2.99627865070203,1.3642595939664983 +3.2972254879861285,1.0715613499680101 +3.6206286557591705,1.4092304018180077 +3.7053919698619135,0.8949815377167218 +3.2176295355358007,0.914773237318475 +3.6303907779821984,1.1622488011302685 +3.1049380752654576,1.0410879524453336 +2.1323583833345756,1.1207997290978868 +2.041293448620883,1.1212459073814665 +3.448421502382983,0.7519555292967878 +3.2971750949410716,0.9915612599210327 +3.362080683270219,0.9027962877102603 +2.1157618676282843,1.033326315886339 +3.8370428974867337,1.3164865013603089 +2.5508841564111626,1.1945779956509628 +3.0273244377264086,1.125300875101892 +3.0263378915067363,0.6089938466560378 +2.3646285467889205,0.9275632607788254 +3.229225414418119,1.130680636788467 +4.221260684806895,1.1299499828843613 +3.6685386873190065,1.360205485582241 +3.010452256679645,0.8074643543810647 +3.268768698640072,0.4879747549403016 +2.22226190917719,1.039834892986806 +4.6832372669496225,1.012967934102682 +3.107587253027274,0.842423878800804 +3.445637031438038,0.9683925701295262 +2.9520401448543407,0.5650855010614277 +2.939129176018353,1.2061190763495655 +3.649081091210776,1.2443567319551008 +2.697120891588093,0.7617356375279334 +2.835096614221054,0.8470526378918962 +1.9572096543022088,1.1828994196883398 +2.4851231716956352,1.0802392474419036 +2.8951154127214282,0.8466158208377517 +3.133656145862748,0.9555141183125513 +2.742630829757773,1.258058473271556 +2.5331460395655783,0.8570602518811161 +2.1555615031630873,1.1908753880963894 +2.7794661586181832,0.8450105224534898 +3.6632553312217784,1.1698362831110791 +3.4894750130248613,1.0188734831677009 +3.1193907850691147,1.0628278767046933 +3.1182490511564094,0.9108359844196294 +3.6392764915403375,1.0848922178278153 +3.046619839009258,1.1400611165011072 +2.997500367107694,0.6621619974966675 +2.5759728367764647,1.0712490792597122 +2.40014137704475,0.7781872821136974 +3.087814154790587,0.8795435884065291 +4.225981264393691,1.1022195801180892 +2.640490110432699,0.9627777286824459 +2.764278453366909,1.0331077040397374 +2.4826987495749266,0.8929399969077371 +3.2528433380011155,0.6569123042253429 +3.402151788422032,1.3349647355505545 +3.992904022279065,0.9440821718363379 +3.875472831764731,0.7572890834760806 +2.8533879569031355,1.0607269742559093 +2.291224481127635,1.0865071492960388 +3.392733769770361,0.9403376366303854 +3.668225433043086,0.8109394410904144 +1.6365552900630629,1.0002250425243255 +3.6213435513272914,0.8911009674864132 +2.7685376319470967,1.1538047275607304 +2.5807494753519093,0.962050060056304 +4.544694105310267,1.0560673057018357 +2.545600998479812,0.8216296724020347 +3.842620003120551,1.0262521613546831 +3.3302299906616315,0.8999177085459455 +3.4392018590242093,0.941644678052077 +3.0667923112116204,0.9042965308796831 +2.7395500091841596,0.7674873802264608 +2.5909531419914176,1.0489877870826687 +3.0859889693452742,1.1657494220246027 +2.839088997940098,1.1896525498764563 +3.307934451975471,0.7267254421904603 +1.1430254226430363,0.8042344387380438 +3.4396767609397982,1.122582614190232 +2.589212796674384,0.9099768922025431 +3.253601207774965,0.8315737001965986 +4.005091778604977,1.031683518625862 +4.755454434442016,0.6560338521197593 +3.573819394600848,1.0661267315019114 +3.8270371810101604,1.062127595815888 +2.339299023789481,1.0679643745036138 +2.9069182887383116,0.7680337657575704 +3.588352892141033,0.8616470354565612 +3.461306720422963,0.8158460968805223 +4.044327867610103,0.9584313442745677 +3.1762129241465917,1.02885345156132 +3.429524571240249,0.993469817415 +4.460336332809263,0.9642233512349416 +4.051709344073507,1.1312312684017576 +3.5647042514849328,0.7706310847627258 +3.762591625766344,0.8144051556794875 +3.6269194681868795,0.9017155818405969 +3.5505784566543053,0.8462062870238176 diff --git a/datasets/data2.csv b/datasets/data2.csv new file mode 100644 index 0000000..fd89ff2 --- /dev/null +++ b/datasets/data2.csv @@ -0,0 +1,801 @@ +theta,r +0.3080976808530261,5.9136562902149326 +0.23763440278889136,5.637673572076048 +0.021962707370338726,4.613493716783221 +6.151067071334318,5.708671981971251 +6.144705974047258,5.477851763249735 +0.19683026189626043,4.5520337638732435 +5.78628787507482,4.62609578652658 +0.37967300532922926,3.9609885518542516 +6.004799295880712,6.633331642586435 +0.016756841556543268,4.186416524419351 +0.17348334359554207,4.613874642130035 +6.1031985094703085,5.66400381657142 +0.1185292735165511,6.656655938167285 +0.3381517136097112,6.468747201995287 +6.162141025060064,3.11823487863644 +0.42873821367528236,6.05411591524389 +6.280497094094892,4.189155875648565 +5.724478232820537,4.801491895762599 +0.07902486297167234,4.885853415453513 +6.220368279798727,5.515461027855434 +6.213700036022924,4.146369435470491 +6.2059590697864975,6.1283921687640595 +0.05101758172754892,7.798199223214899 +6.09515471245396,3.693586294680662 +5.795355615744797,5.452860628324414 +0.2890633251632396,5.163169020153801 +6.060372455710887,5.8945915102493345 +6.2831252408074825,5.377753426865926 +0.5182109417448697,6.8778076788975735 +6.157224562276602,4.435603085492511 +6.243406158835751,3.326028847100284 +5.796000862411232,4.8985313953682095 +0.5158923688942957,5.428423079074512 +0.06314714864264954,4.352124001229279 +5.87905006047678,5.491637522830434 +6.0350431871489905,5.042384144483086 +0.21444362519489207,3.6360149461266547 +5.7437642978132315,3.3975156221843807 +6.101585989030225,5.5102052739051866 +6.127368386372092,6.485433810600767 +6.054379112455495,4.944231102412839 +0.2268634266401662,6.0456108936270425 +5.835250987147241,3.8197364559197267 +0.17114290654983622,4.888370147232154 +0.10585494941056721,4.68595571393536 +0.3948289185332932,6.29479989659361 +0.0036888378288021844,6.104962904840205 +0.022748177012558372,4.998212965971247 +6.267382441807558,7.370938472044369 +6.121570106858819,6.041729998237688 +0.42425082594275526,4.811707940642238 +0.253775084686501,6.35748528126204 +0.12830155245668956,6.204078309198907 +0.23386244852938312,3.4645219796595383 +6.25693881205174,4.818920587457052 +6.225013147176183,5.608781403548457 +0.03821606868635168,4.58286777673546 +0.2626019442611258,5.628515142767951 +0.1520467040920633,5.827590606319083 +6.001787967026782,6.381670460466404 +6.2827881410513955,2.6010158467127753 +6.207773969126889,6.545867485859088 +6.25483954764101,4.386589989578669 +5.858462470140124,4.978835591805352 +5.577721215712479,6.220801892536802 +5.882982762072019,4.328991837557717 +0.6515265025442996,3.474292645735428 +0.4435908563771529,5.387736591562755 +0.035821516698142764,3.4993649961164195 +6.246643550487412,4.801483713437932 +6.171943916112194,4.45118756186128 +0.44631706244593466,4.1799401792614574 +0.005091816576412221,4.988876696300694 +5.9323551239603844,4.42747976887059 +6.168868342747234,6.974350228014788 +0.1872532363767789,6.539550735428644 +6.2655169703391556,5.567791913578322 +6.251445777018719,6.251632464806083 +0.40819537528946176,5.47506230917121 +0.6494545539743617,5.867034732754775 +0.09386282020475897,3.767277891136211 +6.1150914452684315,5.533983114894835 +6.208250009776565,4.832193294018346 +0.03181421954045678,5.821992431337551 +0.23890653604531586,3.323625821666037 +6.268857917160214,6.596540678809121 +0.41775632626871123,5.315374481602658 +6.040463650711403,4.656517553345292 +0.16307651405909868,6.57712424997208 +0.24776788468823624,3.3759172441531327 +0.11920303395333777,3.9539684116981366 +5.941118958013597,3.519026082502408 +0.34960238396809723,3.3812354771429693 +5.851363228413312,5.616681290367571 +0.2986167927010636,5.015563348828036 +0.15537421281099378,5.414381273882442 +6.249998512386994,5.692096726148203 +0.2740668329918137,6.4163764338083356 +6.199365515662685,3.714581578703472 +6.053696682676306,3.3982914503362887 +6.104412003564699,4.6109445700941905 +0.007777838285929738,4.965445153034301 +0.017247659351831986,4.505214383744427 +0.6527397590821709,5.272015495216358 +5.881723013744789,5.625621687904472 +0.22890908960534104,5.5726719584911155 +6.204640121615684,6.024427634780715 +5.807703468361447,5.267220564327059 +6.077714801771767,6.713765432276487 +0.21401433040181064,5.670928374062134 +6.054071762945761,6.725271391352054 +6.216089005684588,3.318827044096601 +0.1265446696858908,6.07744211256661 +0.23294435785638984,4.699168965565811 +6.197343563423564,4.8273964808849055 +6.209400462118514,4.4819635977006715 +6.160138204554709,4.288963326391599 +0.37170758229326334,2.92633758446146 +0.0011338601132388957,4.0992389161239196 +6.229927839829511,2.024209699275502 +6.234349904834361,4.433734067364952 +5.947193001393018,3.6933521495065142 +0.246011234424629,4.090745164100245 +0.058631216970069934,4.7254243671943605 +0.05392535594036262,4.580278340354669 +5.97728846281153,3.627335049707484 +6.205454269138719,5.024110425935389 +0.06451641444672672,5.112206355274398 +5.598041940414272,5.25579235836147 +0.05913900976521506,5.214137095489246 +0.3370181370089474,6.468674215424848 +0.36990518557744145,5.19596767902067 +0.24830128846258104,4.31246096492033 +0.2597869260674331,5.184277762906547 +6.261626024136325,4.762011946722817 +0.03516147739911471,6.573399645109434 +6.279326127492837,6.635768784066274 +0.04987689984963449,5.940848571160818 +0.3329572113620825,4.061643182748613 +0.15704763327141927,3.7704924546384 +5.964984373084288,3.993470724394789 +6.243934434449976,4.442943708904068 +0.1088330076443647,4.7233806679803845 +0.035194667367926286,5.943356042079953 +6.140025557224946,4.691072357525686 +6.246964543492515,6.0805998541307344 +0.1927872304808239,5.447026077787645 +0.20212723661269982,5.140119126627727 +5.663809242261139,4.4464953788577395 +6.038867306547432,4.942134637102803 +6.225998233776152,3.434370064864293 +6.238865803877934,4.030517853687918 +6.186225267382842,5.864039827996068 +6.1614839543211986,3.8997899549677646 +0.19537604434705896,4.89349382855527 +0.2184106660453825,6.162489109078719 +6.148174734991182,4.812756430579747 +0.08545473557691144,2.3777872545072536 +6.14862671690978,3.8831075881615873 +0.8274304988802275,6.636655794765579 +6.068303860804818,4.06015559528583 +5.833463630621934,4.7734890194441375 +6.07001603792222,5.980174348157048 +5.944580019551308,5.229200149917579 +6.101401336490161,6.020285276939921 +6.234131684406387,4.075921784520873 +0.07695580787571332,4.671347481261436 +0.10326920430656804,5.5776977679175825 +0.1841301247757576,2.9860276955979326 +0.08021646545271523,4.513397076524175 +0.03967540499091397,6.604528605889518 +6.035049315688018,3.2674310484358164 +6.204682354948957,4.375153145660427 +6.040708299118736,4.242725059227425 +5.9152094033920815,4.972978769901339 +0.18033434296768103,4.683089539007126 +0.39432712043260504,5.548923794319618 +6.067220939863943,5.274764890552222 +0.47533305279427884,4.381083972042263 +5.852316949756034,5.057383770843085 +0.21488750039546914,5.2863197938639335 +5.966458296738526,4.483143372500331 +0.1434706378598047,4.1031532476716635 +6.23462297141767,5.845175753376904 +0.10298156499238081,5.889662855940205 +6.054447790064125,4.872234425460647 +0.018100452918483126,5.3736580767794875 +0.20042180998361675,4.523210639396553 +0.2916746399461651,4.972447771285713 +5.815376688721586,5.798933380731084 +0.32714280428034165,5.268106501061261 +0.2616393639398397,6.28391028414333 +0.04761504848711217,5.177128049950127 +5.96348161179448,4.823062866038069 +6.150614657810293,4.41266270926871 +0.36026856138674734,5.276055840438417 +0.02358588720063914,5.453702111941425 +0.16834206107769525,3.0608923897654257 +6.187805997391489,6.902254815141375 +5.958769197649726,4.109536925099897 +6.21050404867235,6.098127503843722 +5.792606295780143,5.427803039509473 +5.973802000308566,2.597721215634008 +6.164870666103602,4.404252120153684 +5.726711233891749,5.602641192823189 +6.183083910147095,4.183721064649154 +0.05549481839123384,6.062615537956495 +6.101963953087972,5.426340826974199 +6.163807327504153,4.572939759221908 +5.968358072118879,5.449235380344331 +6.2107517201503795,3.2511723585984753 +6.052890890665916,5.279763521144623 +0.04008986057932047,4.375919307921182 +5.9633761159898215,4.930814938919366 +5.853727219163036,6.840707813194512 +0.2888771678587085,5.674400791544364 +6.27096199599151,5.327671221539606 +0.09301672210421477,6.482601670697525 +6.025550567048644,5.345702654471673 +0.07258775571852352,4.7874392590133095 +6.130727069559947,6.580547853912827 +0.12132363683990491,5.192316878180448 +0.2352588503054217,3.8137867106473236 +6.137298452200727,4.921556537671481 +0.24327645820021362,3.9997448126990376 +6.223212669149834,3.878737856784097 +0.1523740290026857,4.6096673860596775 +0.10414192009095552,6.072617934536987 +0.315215527823949,4.0461898029897485 +6.159098824839844,5.661833959273035 +6.012438650134696,6.088807484951295 +6.15383271341614,2.0151238557927247 +6.181309322980172,5.538627679539036 +0.17888406003197616,5.226371769036168 +5.901840892421385,5.965311648346287 +0.2581596952691057,5.932556174147885 +5.893390522610035,5.492587086667584 +0.43226491274987683,5.716943338141223 +6.196644932349113,4.997941134187314 +0.018601031518458776,4.072349099826917 +6.058432981359978,3.244092627596592 +0.3417537022612874,4.1838162967338945 +6.159462253488608,4.461963013489909 +6.154601343537031,4.557285835158427 +6.022842785427751,5.860082714701092 +5.701650573169679,4.610082917710624 +0.23140161796925693,2.2690278534019797 +5.796139953129727,4.534336039358739 +0.5359334658299804,6.01867782555575 +0.11330120961869257,4.0759073301528215 +6.016429348757277,4.90279792355692 +6.263686648690799,4.933507091712385 +0.06968692035103329,4.304096021827972 +0.3225460529545507,5.3426120106077795 +6.032826965632855,6.204620854419202 +0.8801512297707973,5.614788495603378 +6.05489109778846,5.350961283780043 +6.250404426380862,5.148182907272992 +6.11197652772004,5.294992241843304 +0.20811082434800532,5.918324282607884 +6.045582575020054,5.848775433007695 +0.15544033889140527,6.668192727782214 +0.027475926164418827,4.976384720801454 +6.236604808423962,6.471145345586866 +0.676888282491326,3.927102959468728 +0.06452849282180795,4.639430358757025 +0.011726124517028463,4.107657184788234 +6.203842325172703,4.808029087055934 +5.837331839355263,5.044752444883719 +5.63473080683022,4.49857111966955 +0.5255534417866607,3.500990002462809 +0.0210759767818049,4.221046966642102 +5.685953610102269,5.402864165358561 +6.114515197021579,4.67960044819266 +6.131659620559271,5.896452618623435 +6.011336379750235,4.33700717531259 +0.19934177317710475,4.596127794826943 +6.2154073827723115,5.583799961397815 +5.81943400968998,5.191444926344661 +0.22851691085000866,3.9835756116801257 +0.6159605203968583,5.346618676550716 +0.019279325757292978,5.483237685221973 +0.016984869938077265,4.566088799523129 +5.736054491621736,3.2991555697842463 +6.2486864818765335,3.9180119189940177 +0.14170606297659785,4.961449362856964 +0.3714598653788352,3.6438608380250472 +0.23420320302507638,4.34904015300603 +0.322219738393384,5.197142231885309 +6.226373254616254,5.8477825965865815 +0.09840929186966073,3.468723148717093 +5.883939686363055,3.992998490395496 +5.966394929340272,3.858243104538315 +0.012417134865037994,3.8241719156557537 +0.11479709079391076,5.237240527149294 +0.051231699492066025,4.763015139337521 +6.0383486043147965,5.261550003890984 +0.13149937362539563,3.540859061080586 +0.0012819141192674853,6.945999533413395 +5.990953320803502,3.6450653805088584 +0.8107366800869084,4.179465790232456 +0.7962187753517573,2.9362088582963564 +0.9990874415631954,4.149603675459825 +0.5112363697224273,4.149692140866541 +0.9486955628724089,4.001691104459469 +0.5310112389432393,4.66895566974479 +1.064825544183472,3.234330771248904 +0.7389400121384617,4.429002614080926 +1.025535854783939,3.6906532833674603 +0.9509976797328512,3.1087563738934025 +0.9451240472681162,4.4105094118597945 +0.8021835563695138,3.8152915319622926 +1.183304357323113,4.29958613038821 +1.15954712615744,3.78298723727369 +0.7519543584337094,3.915011109189371 +0.5425737550522262,3.6184909233499383 +0.7805834366302309,3.548264954054119 +0.6867388476111516,4.4814463602584755 +0.6046546812876914,3.916432371552115 +1.0169750792726113,3.83688256573787 +0.8909156657725341,4.517215701724147 +0.926428664594512,4.381437901382339 +0.554886967854145,3.1028219434837654 +0.46396238542617857,4.706998792946275 +0.7046827664486094,3.0737855870402755 +0.7872053394647613,3.9142613963887456 +0.9267857294814997,4.258306941038266 +0.683694105378104,3.9487317991521746 +0.9712477377819804,4.3848890706665005 +0.7084199184680058,4.107954901241001 +0.9280751957413422,3.7036837161784613 +0.70943727513349,4.368905006228972 +0.6661012611321728,4.010632602198626 +0.6401499379636755,3.3095798274856447 +0.46468381016024685,2.7604824444414104 +0.832408939955789,4.564727668237098 +0.7276921680617121,3.9736693107260126 +0.649842000055175,4.772571980317486 +0.7479683079959101,3.55804753695352 +0.471537914605302,4.106268087001526 +0.9722765979785288,3.3909419926509194 +0.296003332119721,3.0585001358593034 +0.8988460362602193,4.350803414248032 +0.5617961858987438,4.798568378740841 +0.5644388881126622,4.0335409057216145 +0.8678008114436799,3.9679222745783904 +0.9152190526047088,3.3615291894708337 +1.1580940417769996,4.661399789061961 +0.38223387610021253,3.9683158230296516 +0.8832364743831367,3.8729203006500286 +0.6634190957033024,3.682827648261108 +0.9443048400136324,4.291719669553172 +0.7148661909433563,3.876563676903689 +0.6104438788202992,3.5958293724268247 +0.14252077603414826,4.15052208047114 +1.0959688586562422,4.348581474689973 +0.6840764974014113,4.3191798965663635 +0.32700126875390045,4.8925449833242505 +0.5064822612986842,3.4194685999804104 +0.7533912616764795,3.2975023601937465 +0.48244876181672214,4.240186171100567 +0.5405239178317095,3.093011986963727 +0.5488247225552153,3.6925582017882443 +0.833192339626314,4.4517019188625016 +1.3000535664928499,3.6156445082428883 +0.6182309588399725,4.579886808825973 +0.6058535811002688,5.231108236538562 +0.9359394473032934,3.9743202230679313 +0.8225055020021982,4.035950941809531 +0.5615968366653995,3.846094364564325 +1.4579749798219337,4.495838292562905 +0.7970763575073541,3.7285943643153643 +0.7526614849461972,4.4833475329812895 +1.1165742868235116,4.062162451738493 +0.8833492828970242,3.9762760891442217 +0.6469181861397758,4.149882445065628 +0.7171719786209853,4.251514547446616 +0.7163997748691984,4.6941168781832285 +1.0005413430548598,4.258044959408811 +0.6091593057681902,3.2488492363994754 +0.6459767667921558,4.090336882159647 +0.6375399568401378,3.7633158693131823 +1.0559883987128147,3.4411699094731905 +0.8777908537022122,3.967040815115595 +0.6683162278148636,4.057198068241503 +0.8464846682961377,3.9833030508026432 +0.8079957926538927,4.396924619492254 +0.9106795113223206,3.9404033466097728 +0.9257648953302462,3.278601866388144 +1.0641215697524455,4.023345212097946 +0.5365089436301513,4.566297781121933 +0.8012870509004097,4.439228065867084 +0.8787694150531418,4.697485052587974 +0.8151292963488247,4.716213699848226 +0.9177218063554151,3.625676869392637 +0.7975023878780498,4.666541409778221 +0.5838509270750923,3.9659706012753655 +0.9248757154157891,4.1351550340512135 +0.8432449062800504,4.035612485350524 +0.8021563995517901,3.2931954769439167 +0.808267949814022,3.6896504490289277 +0.4622473798452514,5.091263712542344 +1.067236533405573,3.763985355331243 +0.881279606401322,4.019393032890292 +0.9422752219250881,3.130416456861722 +0.7434964825834711,3.4052041775713997 +0.39815885666753054,3.5097229629738145 +0.701255698920112,3.4052904259242593 +0.9179520480349252,5.2304769099702755 +0.7962304543805373,4.567820440344773 +0.6183526736747408,4.138851690801854 +1.1715766242891317,3.8142082749721737 +0.8290316536772219,3.517489772250138 +1.3294720365856176,3.7865277899236505 +0.8775645160398613,4.278376641174197 +0.7407807972897358,3.7695005080416886 +0.6433696111242968,4.510594632850597 +0.7796875286608456,3.5912545436542773 +0.8325687277697562,4.863909443413753 +0.6642960170562464,3.835116157286415 +1.054945632165497,3.948525887244447 +0.7727233271483586,4.804877924434187 +0.7141228427694984,4.134997191315436 +0.8785687756007636,3.6811878410766994 +0.7157733078344832,3.737806502817834 +0.5606685806016732,4.44630101282127 +0.5219647758063636,4.250019403841178 +0.7262145176644342,4.270875368054689 +0.8255400394931673,4.472297513056557 +0.6699357600650463,4.132887645016232 +0.7685835225709724,4.079970976246285 +0.9202062077265991,4.579069025997708 +0.970744134974092,4.534787879161559 +0.9303085202505442,4.790952939884945 +0.9985486440215657,2.815271393946264 +0.5542352164253962,4.568479844477863 +0.7145503118461284,4.681062481310768 +0.8894409994766971,3.2100258863527014 +0.8510181226279879,3.4029882792580537 +0.7367738822808427,4.045057161319518 +0.8498644658442811,3.9810987084776244 +0.8218911379176859,4.210918280100544 +0.7316894593890446,3.6460226307669843 +0.47801653310068254,4.2424375697737 +0.7493366744626689,4.171727741703576 +0.9659460208924712,3.8317602517335234 +0.523331926497353,4.095741034039996 +0.68117880015924,3.951598425628387 +0.3502445017421098,4.222188916280515 +0.6312752254885028,4.661417846788023 +0.80151519616238,3.0870748357775244 +0.849232798699002,3.7204066827595836 +0.576009713048298,4.711054814006387 +1.2720352302433846,4.864098621583442 +0.7222372130486843,3.863092737080763 +0.8701007052156996,4.275114423715257 +0.7380742584070381,4.117933060438964 +1.074261881417777,3.240453270972026 +0.8389470794343628,3.059532067647533 +0.6046680249034823,4.415173957445919 +1.1208547859673619,4.089172201676126 +0.7840896156623279,3.6064587269846005 +1.1322938168051948,4.45888409414552 +0.8743844174929268,4.340987614561894 +0.9280196216819061,3.929534132726793 +0.6939899390018056,3.895465645556791 +1.248247302741083,2.9160606332822887 +1.0408896156937524,4.4552842789986835 +1.0086451555320377,3.8613584721033773 +1.2254226249703872,4.02956441115222 +0.7673658750249595,4.704704536760662 +0.7846575918038698,3.996106842663657 +0.2638975362683925,3.5248958552955663 +1.2140656129349752,3.9709765706939093 +0.9512565734187992,2.985395738112751 +0.47613730816662825,3.459178161658405 +0.9429502252809365,4.14805913598885 +0.9386553779960887,4.030772552694463 +0.5587194027068876,4.076237762416543 +1.0043143346527743,4.020308168480721 +0.7545103841624948,5.240709453299429 +1.1889410524277426,4.445222766201525 +0.9260726424228847,3.69609507065305 +0.8998926117219345,4.120555234591745 +1.2110189428677958,4.161028445285802 +0.7696723964351502,4.620727319710437 +0.6355190306358465,4.183624171794052 +0.8540991331167824,4.389999384987645 +0.8722662959127094,4.253639169626478 +0.6816992408177008,3.8354814631563383 +0.9109594271637971,4.7562844830836015 +1.0502821624639673,3.7036759862701443 +0.9505503388477644,3.691165889308223 +0.7348927286919043,3.80199881341156 +0.460072895290754,4.075188706006583 +0.5969956787965052,4.127456911686901 +0.9636446962049268,4.024952943868289 +0.9577728417801811,3.526684806175602 +0.584203947784005,3.6407617673148724 +0.8325938880208876,4.5309684396428125 +0.970283439706151,4.431348469585219 +0.15117527109616424,4.08112776860649 +0.9495140287873723,3.6951841689171205 +0.6625900747415547,3.994068128480538 +0.5230347674349491,3.5229951696897666 +0.6461896134850128,3.7247827869277037 +1.2377449615582965,4.018718238171332 +0.6409675239816703,4.137221585713257 +0.8633923458165383,4.326795292145741 +1.046035471466122,4.815025418205603 +0.6722865930366355,4.076498036791481 +1.4073918248167023,3.104685775562419 +1.2425506425806327,2.8725836720991946 +0.6856360985757626,3.5238786261480715 +0.9449411399629384,4.065951524030359 +0.7694021016540991,4.657719937221015 +0.5146420460825458,4.486951795519988 +0.517259490416664,4.310118303853788 +0.9720483255578236,3.200454641249852 +0.6680334857689916,3.3594407414525143 +0.7527886339196375,4.915454703997024 +0.6516913495673334,3.468565513254933 +0.8114885275084633,3.2723768306642023 +0.5662135240673287,3.872964087019689 +1.1349031556081053,3.7917318991215376 +0.6199735440921642,3.991286841779255 +0.7286987702432556,3.0543260175722087 +0.7456925784517231,3.664749916753565 +0.6888186776737721,3.8865814303556676 +1.1603028680433942,3.6644383219018906 +0.8912220138728583,4.708559191179753 +0.7578900591017949,4.059472007003835 +0.7001816128580145,3.2952672655215474 +0.3367809870683735,3.9987280482776497 +0.8082555428002106,3.677127885078054 +0.7495995922505926,3.6224362466500835 +0.7970417164384811,3.7357254499918455 +0.5940703358257612,4.52195965098848 +0.9969147507846349,4.133848450413328 +0.8192904119528748,4.581979923634665 +0.7805581601819037,3.5522942407161455 +0.4933731989326691,4.862883420240431 +0.5477204148513761,3.834899673252404 +0.7504553209614497,3.9797248651644566 +0.6917920744138513,3.61706471669349 +1.1326960386576372,4.084015380381918 +0.9976812805287635,2.9630374822670955 +0.5563961088463905,4.2277988938429445 +1.0200179533248974,4.243516835748057 +0.7593771757268416,4.483323477547718 +0.6809631599297533,4.2550649592063845 +0.6831577980604457,3.558053278674485 +0.824549397885087,3.742176471602044 +0.5278772493266011,5.461723381023547 +0.8871593702977794,4.050549090421537 +0.6525919652510546,5.026217496395379 +0.8020582118462367,4.362306266692355 +0.5562879409676386,4.462753586258148 +0.4261551894175306,3.743228114053684 +0.6881694527195477,3.605172857895277 +0.8107908820430204,4.56174893289628 +0.5179704480230063,4.38779736112791 +1.1295033018400207,3.9806464596191224 +0.6164391159469852,4.247331241963354 +0.7304620443081429,5.160908461385698 +0.6365489942564666,4.053546518229647 +1.3050680943243487,3.97731913434925 +0.527947557862452,3.0675894234318415 +0.3971212581104937,3.7153346736831705 +0.5588888350750996,3.5065702167484383 +0.8238689877306927,3.3228500972326778 +0.30674735851156815,3.8458549197241285 +0.9796516295282978,4.113837990320692 +1.1259662529459404,4.072056635218732 +1.1094921532221969,4.791750707582982 +1.0111397851270845,3.834817017618684 +0.9029303220965876,4.028729403614049 +0.7110120209368386,4.967876101182886 +0.955349046854413,4.20066238735218 +0.9650500741712739,4.039809621945899 +0.8590414322195228,3.43301264966592 +0.4974360921092512,3.5393196916572873 +0.4469268345466861,4.291600872715677 +0.8946658454819508,5.165732602463223 +0.778593609544893,4.572691714693519 +1.0462935287003292,3.8096863043004547 +0.6832131813225826,4.3260996898939155 +0.835411215537212,4.1836091864883 +0.4780005384997737,3.7691799958439227 +0.602493105732611,4.254768599730383 +0.7632572646192812,3.772318552849976 +0.6119556893366461,4.4804028116446135 +1.1439117690646543,4.394140975264587 +0.6736111526990142,3.8274238532919367 +1.0408177507867018,3.4487812080124796 +0.6959513966319522,4.227409826604822 +0.9180366533956985,3.244283933828383 +0.5986637335837288,3.3929117070780754 +0.6135172168895444,4.988016191920463 +0.627647826665062,3.9891779142628687 +0.8386071812094048,3.989261804741145 +0.4986869732174377,3.1152265760520788 +0.8591747735004764,3.7358461423365754 +0.9354829228402838,5.1039829633576606 +0.867105309863386,4.17873717973412 +0.9801140084653838,3.2919340257696623 +0.5555146733750205,3.63216136088823 +0.8741742676334341,3.2991122427740085 +1.0614579123230417,4.179932929406539 +0.8776891805336632,5.347120513418162 +0.6975061595526735,3.6595100125522073 +1.0808168529072049,4.0651947780543445 +0.8940590959862531,3.145142143389834 +1.0545534177779474,3.8562380419301854 +0.9478351610243353,3.9730905019636107 +0.9965460775057062,3.470827944939302 +0.40781227718225854,4.064849008799526 +1.0000499696329324,3.8775440723811503 +0.7133482769983617,4.396179542409665 +0.6434160343997426,4.803168293545379 +0.9024136974374444,4.189495435998934 +1.1799110680198495,3.3887586188658574 +0.8763398060674832,3.804393093665747 +1.0973520339517977,4.563354855011951 +1.0505822507042737,3.5417956889796707 +0.9273598563060544,4.670780892272828 +0.9047343050230792,3.6763758543356815 +0.87769085639109,4.177933512017889 +0.9822468728384336,4.480899975729827 +0.4894650654647999,3.6628046417930054 +0.8021348133986012,4.72704529106744 +0.5238643968088466,2.7645727759947856 +0.6779172966794649,3.9894007639846913 +1.0388825547642342,3.469916448834184 +0.9733775556070046,4.1504540126824425 +0.3566918511204621,4.23842333409924 +0.9608414193636476,4.001141566360137 +0.9707139253288438,4.210874878894896 +0.5308668809375008,4.930440389088917 +0.8807549326446436,3.727619518617592 +0.40518195025219184,3.9319748748843755 +0.6686873567531219,4.121998836857139 +0.8858497486636646,3.959448679819178 +1.0406936478832607,3.453664767920635 +0.48759798502395496,3.4989582590095263 +0.692690005025754,4.439190788789016 +0.7011205942578339,4.315398871735666 +0.9414191072087956,3.0651195365468595 +0.4249320704113815,4.9508216943265495 +0.5959000866659278,4.018340765385221 +0.7413420523147394,5.0835219897216835 +1.064966465078862,4.155802763105865 +1.0502217156939873,3.4615961504174737 +0.9644099412911373,4.3191603656685995 +0.8697462141200261,4.46528515990956 +1.0447389122998354,4.07503486886498 +1.1247990689104206,4.386630078959521 +0.5673676267439562,3.9615304464465733 +0.905394490666554,4.300750812519853 +0.9957736565708135,4.77898198044127 +0.7319377354293258,3.8465716305846884 +0.9130366029509976,3.459793511773541 +0.9775087355328147,3.4578601923177352 +0.9795871386147288,4.44555140341981 +0.8196925347543085,3.4772826673504915 +0.7117746735354438,3.508454816535571 +0.6236176548472792,3.8640829246373136 +1.177623772436254,2.6905320680553135 +0.5969209685604056,4.182042416088197 +0.9003485677882901,4.109505755381724 +0.6117199438098658,3.0452121648208523 +0.7393418771040131,4.422274422024934 +0.7905628162727633,3.4677924764718693 +0.521354811584638,4.305004414915087 +0.35626827283992357,4.141003218587897 +0.916192068275776,3.7323038410703484 +0.6611172272759538,3.6711110874565294 +0.5549589350367168,4.081635948910739 +0.8429837504906651,4.171585530296911 +0.8874427539421457,2.9880297138566547 +0.6277187559688369,4.4243635767893315 +0.855939611143266,3.8700132001551086 +0.880093837361733,4.410108078994737 +0.601572662192543,4.959184831640326 +0.7535060125024188,4.542982494705959 +0.882452506066875,3.7526423166521097 +0.7501915374474497,4.302797186321672 +0.4065310037789138,4.333985990240235 +0.8380182126818662,3.7297837991183926 +1.0257509826796758,5.239568102709266 +0.6041063182947624,3.2518255412015433 +1.0300604668757138,3.8369273874935867 +0.7742839976981089,4.2046632045647225 +1.0916818652744549,3.8855976505839718 +0.731262101586073,3.643835342483482 +0.7320944269749472,3.5195427744495924 +1.0616615865065404,3.9393757425690095 +0.8486705720218863,4.262960688881398 +0.936643744914792,4.533324933411878 +0.6874291259074132,3.6915968279622957 +0.5673655394389296,3.309261883192063 +0.8816194840361745,4.722337700702705 +0.7553218957845836,4.341291491177603 +0.6456695153704461,3.8954329934172844 +0.776972632846046,3.9601612904707735 +0.8342059841584553,4.449924274284977 +0.6512920029798084,3.4970228148392044 +0.6497538408412635,3.6810225524167177 +0.77211212390213,3.204767446875938 +0.7916931652959825,5.048088442633858 +0.8639926192193991,4.2621779968942155 +0.7433690757204372,4.502225121236457 +0.6960158172153683,3.4734147638370434 +1.2966958642524498,3.5255088496225953 +0.6724007859467319,4.343786347715537 +0.8275805442578091,2.8177106235630394 +0.7372093410855084,3.7976103740479825 +0.6734052608940491,3.1720336886048406 +0.893692585363351,3.9895994721735053 +0.823569045933036,3.7650121333509428 +0.8688475309442363,4.858253537391005 +1.0318068347793006,4.049097999517546 +0.6550547037945446,3.6697337559823526 +0.8741575195156511,4.2111881158335756 +0.7302906109436175,4.233571596940074 +0.9680021891966444,4.107600045722633 +1.0258938348778648,3.194676462585833 +0.6111226222512107,3.1391476793925652 +1.306268463466374,3.6923741445659255 +0.569010220652034,4.424679750445949 +0.827940555681736,4.106432984465981 +0.8271976586054829,3.109575805430735 +0.5477007103080284,3.5299056143483094 +0.7156011366849834,3.5559845699245765 +0.7699521362877482,4.432183131288325 +0.38979730236296306,4.807135245664597 +0.8676825351456154,2.6276291260990603 +0.7623552727783434,3.401636190702432 +0.9003635449836079,4.212912983320241 +1.2819123752454662,4.0123238787539846 +0.898554308791602,4.356419662006174 +0.8814414419653059,4.246775435570259 +0.5636382667828499,3.8096916412039517 +0.6988076443660374,2.760439871800763 +0.780516094046806,3.0227571845098806 +1.2471686478576347,3.9143765667761734 +0.6229478351103441,3.9524953656617927 +0.9259389567069352,4.0520237734882105 +1.0434645305274985,3.2850979606780606 +0.8641933482413455,2.786605164596562 +0.6084687398123899,4.328368275934379 +0.5808685473595666,3.96299769238377 +0.6628678983644587,3.5578013482988653 +0.6777414036150187,3.6392670552179256 +1.0709164866811465,4.078911011702183 +0.5054113718617697,4.849728530189454 +0.9577790330649498,4.347783728624456 +1.0751597192444433,4.077464362505878 +0.4954948392900036,4.751060583249515 +0.8926121915153504,4.540998724852377 +1.1191247753566778,4.404531767735971 +0.9921986323842642,3.5528314340697147 +0.7232143166322447,4.114643441156167 +0.9854111738010425,4.06003190405986 +0.5592014126017,4.530968573357745 +0.882053379608139,3.7176800090124074 +0.38490850530500564,4.681687617748917 +0.8553793273771624,3.482072337543365 +0.6889300810575842,3.9824703599964297 +0.752813401746271,4.273450272768647 +0.8176526762431975,3.755197739205833 +0.6198861083616684,4.548836854115306 +0.5355086224918902,3.9366056274828676 +1.0065389899777042,4.395062021042165 +0.8215887291298244,3.811307434592155 +0.9471420716086337,4.179195743181743 +0.6383548738435791,4.684177405324782 +0.5920701571019867,4.678917026946305 +0.6811073293780575,4.086816714429669 +0.16605828423624736,4.087153787059799 +0.6487630730054615,4.514563650532042 +0.8865121293362358,4.046866752386864 +0.8720971119188539,4.507040966043982 +0.9388118026773858,3.9859316064297934 +0.591540789166264,3.39994036847228 +0.37678319700150636,4.203000947415576 +0.8254178045949191,4.603802211666925 +0.4422895360443446,3.2076878459332363 +1.0944804453976689,5.502543433156933 +0.48087439221774253,4.290089638443247 +0.5187598708548039,3.5263817986639676 +0.9424271568377752,3.57155434912101 +0.7808146307614952,4.185976134070049 +0.6997566184484129,3.8158251704368333 +0.6483358894572375,4.250818969552983 +0.7102880939097641,3.2242948887954386 +1.1242512134028189,3.654530236137452 +0.9295809706814309,4.754093371723036 +0.6502823479304385,4.235268421389172 +0.775306140141901,3.9751336942498146 diff --git a/datasets/data3.csv b/datasets/data3.csv new file mode 100644 index 0000000..146fe3f --- /dev/null +++ b/datasets/data3.csv @@ -0,0 +1,1001 @@ +theta,r +6.167313138725148,4.403578087606598 +0.41842979205713776,3.0297036902810612 +0.03070602854162268,5.263920909343654 +5.92451099034761,5.652696983622958 +0.1324104069235789,5.081763275990494 +0.2750181559905457,6.315210275008522 +6.168620856604908,5.459885245068932 +0.04092990075668554,5.38222259502451 +5.978883575046501,5.9691971302470215 +0.02194056315533066,5.679120093631037 +0.3063116120819985,4.984795637759535 +0.07274420685097639,5.363311507087823 +6.083440098267133,4.694259256315776 +0.33667448954189094,5.740304966836582 +0.5267202898941158,3.2960274668192993 +5.860363780746269,4.846571414394595 +5.632443001858114,4.914141264333935 +0.04745981267340494,6.29676210220712 +5.833402793442708,6.078634129623751 +0.32561813604837386,3.2060289375960833 +5.968343536826198,5.616929481958012 +0.4899864433862089,5.708588427098752 +6.152041246743747,5.178805132916186 +0.13970387919666513,4.160342875718701 +0.2086066652576528,5.898945640816039 +0.15861207558037352,6.5997508893209655 +0.2443376951897655,1.5423170724435464 +6.025383987293373,3.861404565615552 +6.04530144196611,4.719385108976789 +0.018340119002074485,3.9635783007585483 +0.1546536122456029,5.735875830300035 +6.15020827862204,4.384253094941623 +0.23075479727261794,7.253832597938374 +0.7029400229631041,5.532206303787684 +5.495102886545556,5.765715691308618 +0.30469441494411936,3.9901664991963006 +6.27444377743342,5.457873476289433 +6.258425944904341,3.4123474870084816 +5.769073005096928,3.703768601413532 +0.38851305332435976,4.117295836199482 +0.7313191207682624,5.363886288875529 +0.10261003283326237,5.39116976940106 +5.806555508184627,4.693095643471103 +6.120757938432208,5.327724104391742 +0.5042027859464346,6.291796677662847 +6.224656343608175,4.312936789094808 +6.264063037352135,5.664741318883618 +0.4397462552539561,6.117996881881967 +6.275347733326714,4.851161327108775 +5.624509822395926,2.8071651908645485 +0.2737278877390487,3.785001044389416 +0.6192335999733772,4.061400793791413 +6.090261519905569,4.326572449738691 +6.280075904811829,6.17322679210878 +0.2420209413827892,3.5855368972272927 +0.15003725869911663,5.176922444892087 +6.114732686116132,3.794145888098673 +5.700870523870619,5.950015756735199 +6.272695995937596,5.74964652457749 +0.2678677793852482,4.685185728173818 +6.122099510584175,5.456276051782792 +0.18193127572054507,6.403889320708456 +0.19209535432382538,6.594195508168597 +6.282009678671704,6.046720665218029 +0.3086843977355624,4.98772251826888 +0.32440225259623484,5.906416653561905 +0.4415893078699386,6.074712368236247 +6.1780697650899015,3.244895379984909 +0.31273908757565083,4.471978525175319 +0.012922940346530644,3.417247590517401 +5.982648543907056,3.515380854437869 +5.976428748475966,4.026729521100152 +0.12989002305583708,4.235372678151464 +5.702769440279316,4.758850331748819 +5.9139329415317965,5.972250162670334 +5.888822445353788,4.985401946130297 +0.16363341817281082,5.303718316290046 +6.213871133920858,5.358525784123684 +0.0007960692585609626,5.088636489847956 +5.99843032703657,3.728964174030722 +6.281762933281817,4.640535514474651 +0.061336858039270255,3.517477004146807 +6.1475638477111945,3.5509860874259074 +6.129007853777246,5.16150593536061 +0.5384051497252452,4.846880914866661 +0.23283076402945244,4.882059010050123 +5.794181286949556,3.0765585609428507 +6.248668953519579,5.800458625760589 +5.983945006761768,3.477060891413501 +0.172478227978229,2.8105064006176352 +6.182918696112566,4.000739667378184 +5.954069736928272,5.371217641441281 +0.07518963320350446,6.107851346320131 +0.2044249536762691,4.316735001642398 +0.31692570181002666,6.236165964851203 +0.2064009016301648,3.7920160291573635 +6.113187656221514,5.828895422984886 +6.1713128057206,6.569299802193779 +0.1511547091445095,4.647490710309893 +0.22556749452603453,5.199322751185516 +5.835316959401727,4.581676417937819 +5.797644492797244,6.255875219867167 +0.5366564601252123,6.116196125474984 +6.132422446636499,6.053916748424873 +6.274944216056257,3.812495644065594 +0.04546631703386928,6.023234634038634 +0.16236687812051778,4.953010388125148 +0.10190562682346854,4.886338675697874 +6.219726201743119,6.630951957952106 +6.178966493631291,5.187614797249268 +6.191543648600244,4.723273795077143 +0.02000372647563284,4.298644849455976 +0.12656537858280983,4.3056036769072 +6.1788223164511,4.50470079134097 +6.2369583374600595,3.5726576195835213 +0.07623660190511164,5.693133245380945 +6.020772694919852,4.650467538980103 +0.22979735378470784,4.203380038575534 +6.277149184534275,6.522206443913009 +6.169259166743284,4.880598590173349 +0.2610588059208324,4.852183248863934 +0.5850088564061875,4.674103683004506 +0.4516833384023212,5.45590197361669 +0.49474451603017394,5.945258939479963 +0.1668083568752889,3.6625790244580374 +0.2739258184634989,4.978613073406857 +5.92659483644101,5.206913387886421 +0.24077831950433426,3.598395081677346 +0.3990073293463012,3.355070183213697 +5.8620540189998405,4.9836983168380105 +0.030291369280675717,5.359333270214491 +5.960386897644283,4.921612584624343 +0.10840357878060493,5.348768524662247 +6.029363617205887,4.465035703631111 +0.01212201454589097,6.20484746971601 +0.4107499331537069,4.790284035788582 +6.172789263361011,5.289578439423166 +0.33537608112136824,4.535133338405166 +0.3857647311316281,5.6122702446943435 +0.1813499963139069,5.034881431611587 +0.06496446184604482,5.900631076729219 +0.12956947985118406,5.4537784560109355 +0.4633060379728941,6.427033649424057 +0.06539988205967011,5.533070419395745 +6.185130902246501,5.940339039974555 +0.38164419495984914,7.07957437305006 +6.20271603953322,5.4770115997144 +0.538668156688804,4.086326723381113 +6.265414846756118,3.5030415282416247 +6.048221345314689,6.250312582459129 +0.15077512399226956,5.02437360548905 +6.092552150359034,3.007526191368858 +0.3786647414497864,5.491646609752079 +6.215554727382521,6.389179762948093 +0.24688504240373088,3.2170686940978155 +0.07830624959980972,4.098895283969066 +0.22178053764032787,3.9072747779681647 +0.00672061334736085,5.475536430984934 +5.866773712389248,5.22335074089844 +0.18077793753864815,6.048498505917863 +6.249300151439052,5.701459604319751 +6.036455259993686,5.205339524089496 +6.071245776672267,5.845872382939878 +0.2979854064983747,5.611280633237224 +6.070792664643839,4.767803600200393 +6.2749381062349725,6.7397665774839695 +0.09830297432480102,4.522128744583562 +0.08036242047190098,8.047317648160979 +6.263325937121543,6.853256611579083 +5.943397214324391,4.5862378613439985 +0.12186072625984198,4.7752372399268594 +0.2556346229923719,6.088171322055922 +5.951902622248435,5.376928379684001 +0.6050825774262036,6.733493286550358 +6.240095553749996,6.0533240650745075 +6.165224665306841,3.1177065984250882 +5.996775638921632,7.109813431295139 +5.764897421894123,5.1082572832991975 +6.278382995454369,5.159080407037125 +6.231757475754095,4.505680837974795 +6.2344771402148345,5.597092379413784 +6.1399069994889,5.114610317990821 +0.6185264275468058,5.284308642276796 +5.994031500317314,5.97277436091795 +6.2371985872564455,3.1879044078728427 +0.16564583882745562,4.786492436900086 +5.9124728304928045,4.229369006486775 +6.090569889604654,5.074472466670694 +0.014989881774323248,5.040276998610479 +6.123546082944494,5.335216306146236 +6.014089934924068,3.5571095012361535 +5.93805686082185,3.3719454419834554 +6.2769035712429,4.568870219683991 +0.6963019273343736,5.404170018039429 +0.21088340030206545,4.033416049900951 +0.07939882527544107,7.453907999734543 +5.907607109610042,5.397585788564061 +6.1644094704049515,6.437435560783168 +5.7628608081964865,2.906632342506306 +6.209895001338629,5.8787496084434085 +0.0203164087168485,4.682568255569505 +0.38099229305202725,5.1705539310252355 +5.83648679988841,3.2038784533556557 +5.991228032776406,4.699195126550929 +6.129389637943999,4.195685479078844 +6.049514916457202,5.511010410617454 +6.2429423915589695,6.041467557533043 +6.210917981655064,6.162177347798794 +0.5055144081671804,5.133296673225244 +0.3256704024412473,4.908388374941842 +0.23746708431976632,6.631416306202764 +0.10397899186210473,4.596787423350643 +5.993036708241206,4.522886968071214 +6.0572373521797935,3.2306756665707725 +0.025504413467904555,5.465784606243604 +0.06758425694438454,4.9120654440104605 +6.17319058708226,5.106336248856896 +6.068504460710715,4.936971485014181 +0.38435935476142863,4.000824934671488 +0.02145472524425299,5.497818044681152 +0.12416114261728546,5.8742602063106375 +0.012601579666399708,6.159959996534127 +0.14908881067627097,4.6450767196211435 +0.05110960292872401,4.161630820641474 +0.37788564871593705,4.605376442768658 +0.32435152247078847,4.937390204490323 +0.09863141360327916,5.665878681004417 +5.755589379986137,6.542513001840409 +5.999161373124811,3.8734656447672293 +0.16852051088206907,5.1988210972790165 +0.21773233976857348,4.0185399735667495 +0.051256337449731265,5.350272236009194 +5.871374915055266,3.4218400200641907 +0.12464127011188715,3.701422125032568 +5.8285757610137905,4.8182576183242185 +0.12431689006767482,6.0989463226731795 +0.09186970807322196,4.206312403766204 +0.4873879816948202,5.592018054530905 +6.041202953854983,4.525863092498926 +6.201888576211138,4.8457920004881805 +0.06218466377765918,5.23070180623469 +5.957575900818134,5.752142824237444 +0.17685623102499914,4.256807571162797 +5.754007810226711,3.721286048592625 +6.094973920375481,5.653438695733285 +6.002924485736399,5.638662117830809 +5.895156071681363,6.16537700573295 +6.23027152273758,3.735052104396572 +6.031063759806197,7.05478576110461 +0.030878832411343277,3.6608344659349523 +6.231243590140219,6.541415998313156 +6.116458516120342,4.82366955036662 +0.5029263392410013,6.192804099170768 +5.839782771065263,4.908810161613506 +0.21699464034558352,3.474568584417156 +0.22717344567951855,4.572650697116386 +0.09433878240760053,4.9818832765752585 +5.610023782834456,5.599132298220714 +6.097672074016406,4.733682320403712 +6.05306327818141,4.003482245692592 +0.037911357578199426,6.321010933305518 +0.11569067191089406,4.039564530128793 +5.782309214321577,4.336227281757643 +0.1354281212979172,5.279267169879447 +0.010801645646437805,3.97577262389944 +0.5695409347209291,3.6653793254360085 +0.38075288732823354,6.204234120299115 +0.1142761475621354,3.4675819513971646 +6.269831825223955,4.320348763763541 +0.13366342604097842,5.11100733095662 +0.14593518863746752,4.546013107067844 +6.096891850597287,5.930442715761378 +0.006941166598333237,5.362647388917704 +5.962497700158504,2.390017544515878 +6.156900214728643,4.639401808572802 +0.225531063151111,5.567926309782068 +6.132323905197721,3.612825361395984 +0.283044953049,7.480086230355402 +6.152974747851431,5.062895202697236 +6.090726190779261,5.059386247866513 +6.20586113897912,4.7366492958078235 +0.1362488583169431,6.024052872106617 +6.1243619496558175,3.5456339910290997 +0.6358899917913926,4.625823371815702 +0.050066710776425695,7.279430777736778 +5.903392826231159,4.76572561708922 +0.18095030374106055,6.7092655017855884 +0.04145841826033834,5.95333336931271 +5.89234626904839,5.151786106819121 +0.2953041696974313,5.270362499878815 +0.009981931073898975,4.204883130973127 +6.130819887594859,3.7777655591136865 +6.116508043584817,4.212520069127661 +5.88822660415155,5.098345447511847 +5.881683134188548,4.6230061063850725 +0.027026165592319105,6.032846259790888 +5.879857686086245,6.8717953501239775 +6.110194421237752,4.979831958496973 +0.10014776763372081,5.128879547832561 +6.067304248542857,5.780374208010064 +2.208784540149574,2.914406586807747 +2.481111083662232,5.375669511338456 +2.9479288880794936,3.962086386522022 +2.4242134087093032,5.041396470203399 +2.3071173745566247,4.321818071572381 +2.3943535395635642,3.6183291651923497 +2.438965605941309,3.6654453975335133 +2.6311684395394925,4.385095294897685 +2.4180063198336272,4.071511989478288 +2.64774481976969,4.909770327463831 +2.413907397762422,4.004223948355979 +2.202764492176485,4.038571537463312 +2.300182340199103,5.043409374515963 +2.4553226612108623,4.343767090335794 +1.9921991543919293,3.5310978528171475 +2.578759560155067,3.9624468275024736 +2.205285997531494,4.0524286930469 +2.4285419934202075,3.5856304633792773 +2.5972513860688022,4.32735343068167 +2.3043889231736796,4.66908599152298 +2.3725392326546615,3.4928757976458176 +2.482312772524999,4.17199526605134 +2.1706935809159993,4.041823644006731 +2.3326473287893665,3.940575997738831 +2.7355755474969286,4.153723679473365 +2.5797576316084703,3.3416489255852295 +2.1201450973700156,4.285962371052271 +2.4965127531926057,4.40305046743744 +2.498337977911539,3.467568160013173 +2.472978637204491,3.6944729372940923 +2.677793967153751,3.5336925306895197 +2.4597683249516127,4.221257657731365 +2.2490252056350837,4.479963491517351 +2.4138296889388946,4.097798481805306 +1.9700247372059831,3.694721971652499 +2.29193532174999,3.0106876202474466 +2.504107260577701,3.995401440847707 +2.4236995216305885,4.481806172406349 +2.477340617089777,5.098265238537942 +2.4855736924374066,4.03249119730214 +2.1765795431035317,3.9005843614026285 +2.211008267525921,3.946080474876691 +2.006401584648488,3.978559264351138 +1.9810785686797747,4.375202422878229 +1.924453273765606,4.00694745470339 +2.4912752944860186,4.489917833318361 +2.5876368061881467,3.8269727292266107 +2.3704280545508456,3.890265816099318 +2.1417616406783297,4.315575166800665 +2.0226845192563627,3.944537338798359 +2.4213017195557938,3.5859034824773217 +2.63642312797223,3.6976061743941906 +2.3438419045215717,4.35955953366372 +2.368582393711391,3.9381592455396555 +2.2484942141876587,3.3145381762730373 +2.202404173309315,3.7114609129197604 +2.2752167818116726,3.745046571313048 +2.5000759221978273,4.193052714729639 +2.397799677099965,4.144550065784365 +2.557999818196019,4.452728829912586 +2.2425692822147645,3.8183177769075654 +2.3860693975506684,4.8342823943711934 +2.068324204202672,4.051574788685395 +2.2934467800908087,3.6508188001889326 +2.461384352086079,4.564339751606429 +1.7820623436253298,3.4938435699938517 +2.315242489938111,4.003981341445263 +2.34015818357396,4.012628832321753 +2.5173005092424225,4.178291759131009 +2.341728691390033,4.449355523899472 +2.4013175985576467,3.8608280786636504 +2.1963030252073517,2.8764120103368143 +2.3527480255135544,3.267205690066482 +2.0955831460183836,3.8691114421142823 +2.819545614821426,4.53714309137414 +2.3266636404874665,4.112000931113064 +2.2256814721492426,4.627142281421182 +1.9725572830987603,3.663416520611941 +2.197572543235432,3.876864561877289 +1.7999933340088297,4.749959177008724 +2.426539316223707,4.277116227020408 +2.6516169144580064,4.0605720969355446 +2.6148659024486403,4.0715744068953095 +2.1692119918082673,3.072323927784672 +2.415080262255535,3.921445288116791 +2.188281074431728,4.621054018118567 +2.44596733555976,3.3641324456025985 +2.7863960763805,4.2267537798673755 +2.551420151416134,2.6875320069155526 +2.2221441607650654,3.64829339943 +2.4506871276063986,4.509071213044043 +2.235980398858912,3.636114049191012 +2.2636500103430373,4.751080524019818 +2.306446557323432,3.45838200514625 +2.212616225840009,4.1183133085552415 +2.0599591156914285,4.454890390011499 +2.3672240334903925,4.340000061036956 +2.4121174493077517,4.711826276708399 +2.532828662307327,4.922452090029848 +2.6209476901744453,3.3608518644622385 +2.6199375337627737,4.200166659623331 +1.7354188719944141,3.7531893675665566 +2.2564092052600757,3.7370710933206754 +2.3032598779599667,3.5635301577435903 +2.279462793743849,4.243077418098136 +2.3340724423004997,4.945484775857733 +1.986772913903084,4.175599066254099 +2.3430124635497256,3.820253378174579 +2.2264418821535976,5.035184036706517 +2.264974684561891,4.126370846154684 +2.5009955150680514,3.7906902148919714 +2.5317130197544544,4.127211042293929 +2.259051044126852,4.148546751480668 +2.595227266324151,4.179206605521218 +2.4872044212250817,3.421726598697745 +2.6950993235454,2.901501972449023 +2.675854460113923,3.9445926887273 +2.312101825886551,4.15608246292233 +2.3273915525514877,3.643532547651983 +2.345661322806869,3.5008707814597915 +2.3088898523160073,4.032711764373646 +2.642592349482408,4.456223751017816 +2.31529927904555,4.367402311518751 +2.314603588859485,4.495853095637131 +2.7092389059342903,3.8517426477670127 +2.665113524290566,3.9127573175604624 +2.245174544629433,4.705354002394187 +2.549902962500828,4.021275683028521 +2.18191197277049,3.803395063076733 +2.103634054659046,3.3939958053299617 +2.0107688308384173,4.108251242888282 +2.1709488825251686,4.231191107881952 +2.366378829482376,2.702887737806453 +2.372307401995739,5.233055046340907 +2.1819048958717078,3.795643585679532 +2.480555326353393,4.177405679315106 +2.433054137102681,4.477475327517803 +2.2564100883895724,3.8284295297696453 +2.564066598142437,3.8654366405870615 +2.4053652681991613,3.2667462452999736 +2.3430921848824764,3.504006698037761 +2.523027783753267,3.8502733504242483 +2.6557535146767233,3.3381974221987774 +2.1760289974674523,3.354751020641139 +2.4278393533886433,4.530819521734629 +2.3064719033900967,5.074398318933548 +2.669964894879816,4.641159901445871 +2.243030366665212,4.339839521894239 +2.292155651984208,3.3601473897250784 +2.7578619947261243,4.166447909572362 +2.4655775671852287,4.194656142827268 +2.802976159953347,4.441216547706994 +2.5509451529818428,3.906156230162687 +2.321229087042237,4.151946621408921 +2.2484128590558923,4.59006866217821 +2.5831485269514185,3.3956263441674457 +2.6163882991438974,4.389156257894977 +2.0555568165158276,3.571517072493424 +2.6259296762118995,3.6529553360035543 +2.484655525997126,3.732115317996503 +2.340661748728001,3.33062484042933 +2.3053801641944545,4.273902013380342 +2.71333537735568,3.7962676884894013 +2.5995249272555006,4.658198598040041 +1.9128018636697413,3.748243320583669 +2.350144846139097,4.014765141069842 +2.1265847529791704,4.107043199514962 +2.262893433139075,4.216089654656679 +2.063925471470595,4.730702373352452 +2.2451314471558286,4.121705085445875 +2.4948946952081954,4.1982377403787945 +2.295245720326561,4.686150738777858 +2.2857025016171133,4.019451393853712 +2.305069362187568,4.531448443257796 +2.2989359671529406,4.4908316468996095 +2.404090254535884,3.9408179335702727 +2.219252624746649,3.7280201330277394 +2.2150815793658616,4.635787226306406 +2.4165270572581736,4.743230563845313 +2.3211822106157967,3.898460002258737 +2.121961603995987,3.7018750694384597 +2.348328031605307,4.23044731854079 +2.237229290031702,3.287915125351979 +2.3179879171149564,4.158249154610066 +2.024301433939277,4.183636113429457 +2.4358792743654885,4.742352342909033 +2.1073871656605627,4.599147877358344 +2.293360338093728,3.7747455261256033 +2.097682704712273,4.030248263349866 +2.425723847033697,3.82938005425402 +2.6019403647467647,3.4867415325003144 +2.001635379001011,3.8343310494106713 +2.5615906826990344,3.865921452366092 +2.3365348343467316,3.714294830656058 +2.5333147871519945,3.8838835652743997 +2.2179657252498766,3.587870360761377 +2.129383975081551,3.4673128137071583 +2.2876607692485162,3.6948400697932247 +1.9924389397426323,3.5690156180971044 +2.4933154724611044,3.4037611129541485 +2.623113255561622,4.088606515805485 +2.324780963548942,3.6346093574235545 +2.23316938237287,3.3242878993692915 +1.9262338797880996,4.790726757528963 +2.0183752305490206,4.854010342617878 +2.5197182956221655,3.688748971179751 +2.345540348391225,4.731832965079659 +2.198964720657163,4.463962622997053 +2.1472680937560376,3.387490704805681 +2.4945781785152246,4.472604942191994 +2.227455120441191,4.124278987408116 +2.1947908760016226,3.0422851930727606 +2.6756207094749924,4.5588394397541325 +2.623091824298518,3.6541292201408657 +2.5329052849090345,3.9342177727216843 +2.384294514101671,3.1750686314866696 +2.4604129815294975,4.35288161345269 +2.3072335853259496,4.4790996524717945 +2.5802708599376167,3.7030480834413204 +2.538311049598166,3.7997060310067807 +2.46873037421071,3.173726208715122 +2.469893135599198,4.622315752875123 +2.246899493346315,3.5564165538789667 +2.329563111383062,4.980608928271149 +2.547951475500092,4.711564503047007 +1.9000415301186457,3.6498963797535366 +2.620132183854991,4.142615649273365 +2.562798565761591,3.801220785637406 +2.386229731413428,3.8119265047379285 +2.384029901271865,3.772376674468607 +2.378840500715959,3.839072720547099 +2.1731764410776817,4.614480862327328 +2.673624062241426,4.547484338379496 +2.434033486406807,4.186408403735922 +2.583129139151919,4.022404976770402 +2.5074855604193123,3.5677494139464283 +2.1463731575585414,3.8312451069664046 +2.2672559527691485,4.482214588541689 +2.5204752679087004,4.6233859317734325 +2.1632301440448205,4.421894973202527 +2.4525814305383,3.367528120386341 +2.6763066626871987,4.428480615011484 +2.5261281259988912,4.491417388085749 +2.38345034058648,3.5194628099708067 +2.1114181889707777,3.975937837162631 +2.137163051789083,4.640646524736734 +2.398118100167561,3.5408266337418666 +2.4980837161983147,2.931776552599472 +2.4083275038318708,3.357150715626475 +2.1978989551050554,3.8032968206796793 +2.3722401168612963,3.640817747272559 +2.046415406821401,3.4415127964490058 +2.09478406754654,4.425731264389732 +2.4044553752138667,3.947590314246175 +2.2709037713003712,4.078741844686955 +2.2361550339299137,4.373329275975404 +2.3593171094410113,2.8983537396330945 +2.5813604570142608,4.053577146716382 +2.4718935153235826,3.7010287218260953 +2.543691877479705,4.263781261701252 +2.2801177069595813,3.9390958625955577 +2.280965704691997,2.99884612183864 +2.2578652323876915,3.851403116637783 +2.3201514937881584,4.509459895446109 +2.3708927191628533,3.557275986201092 +2.733758214704907,4.330250498969433 +2.2386765152128567,2.8525735982593927 +2.5426468569093044,3.5235641920700034 +2.3821478687731217,3.8285138098873595 +2.565594641280443,3.6638068413063833 +2.4635544009885417,4.163407973259167 +2.383551743050141,4.807497089915223 +2.2519064077257043,4.2696741970508025 +2.4084322475018136,4.3133836452480425 +2.3271749523074603,4.166315151840287 +2.309666427364616,4.018180184768406 +2.325687155229593,3.7369296167925135 +2.2838681744248337,4.6803961676241785 +2.2896443570063227,3.922935191055041 +2.379854295283797,4.131849209709222 +2.2874971471709595,3.12088315792371 +2.4622314601130135,4.751474914827524 +2.206078026610024,4.140070734249034 +2.1700166150140237,3.315289326599487 +2.6371127305863666,4.140929921907604 +2.557005126575149,3.4526461952560967 +2.4778133339425295,4.041798717545444 +2.3830322468779146,3.9283349582568174 +2.385726098934855,4.0952547963373425 +2.038857064637797,4.356096124519077 +2.6466778981088717,3.6149105002429156 +2.1986237274430644,3.614671950786782 +2.2904231304681564,4.591309466870337 +2.421300117941995,3.5886111374209193 +1.903359712642586,4.242823873049759 +2.6925925736829264,4.308068290726627 +2.146115456216373,3.891024733310744 +2.685104271830373,3.10579681053626 +2.699149713154976,4.494759091455324 +2.015108741267291,4.1107524310526555 +2.620441057854967,4.153198892198983 +2.364096433936532,3.4313063367945134 +2.495291466717508,2.95927832991526 +2.146902237368534,4.776537724244825 +2.304220338082204,3.641091204669768 +2.493108870461844,3.980974106695676 +2.4150471165730987,4.695425706287236 +2.4907279507280373,5.586705419795203 +2.438106000703374,4.245903219000044 +2.611971637152761,3.8690804504834526 +2.954872768576585,4.223028113732811 +2.4736987185371895,3.794176380691249 +2.4772657366341355,4.3735868377587375 +2.486931063875852,3.460537664100657 +2.3264061647038665,3.9395316517196264 +2.313276642190481,2.7058772723477387 +2.230709274858394,2.7452138256723755 +2.3179514227285174,3.646521213109624 +2.4948364160810463,3.66670518073225 +2.477187799318059,3.2089639059913733 +2.5826243821457187,4.503876321059282 +2.3343941163439754,3.844016168866165 +2.180176595152628,4.059054570796574 +2.4879195771243876,4.126574399036193 +2.3443600067151897,3.7114191916370456 +2.474243119019066,5.1307060553529915 +1.9254309256364701,4.160004238510087 +2.1011278917215233,4.050298791947036 +2.603959294604604,4.8372624719881925 +2.3852208479913486,3.7465442119709165 +2.7435424981034475,3.5773576049407487 +2.427078778212738,3.85323958668546 +2.6261717447456605,3.730834465616386 +2.214601874837302,3.375010734921797 +2.263761746798288,4.09539957898878 +2.264783572207934,4.2358762703536055 +2.4644543557440235,4.0418439231320455 +2.443440879891258,3.474100948056032 +2.4340403010695724,4.02022187920175 +2.2594641663702317,4.75111993768372 +2.3176604680204576,4.2497748864826415 +2.2963592396659838,3.889090571206541 +2.213631607122987,3.5361997496210673 +2.473724792649446,3.8554426102558916 +2.4193566232316415,4.421057801455591 +2.3295987636162967,4.208370605199103 +2.311211307099009,4.05569099602536 +2.101786902990893,4.3004803016911595 +2.2527472134933975,3.466414485767157 +1.8219492559076678,3.667629578067802 +2.4879625575811355,3.890689489797322 +2.408750799985928,3.9223366939984237 +1.9520948364494348,3.4880860607864848 +2.6140284614317313,3.489023697735099 +2.2821074297004666,3.570266774530421 +2.5348998234953917,3.8143258861291267 +2.5401136830094515,3.8240725126193147 +2.4894482791006483,3.2959657218278995 +2.5800123011159157,3.1846054046797487 +1.8299738671743857,4.360295856790453 +1.9335036844155675,4.699273138422452 +2.2257593360229255,4.325035461709421 +2.1960913491516227,5.137338222524798 +2.3564668184698534,4.338011074731563 +2.4172103288879287,4.972687523550348 +2.5894461864726077,3.725237872380295 +2.1029553109628893,3.619185650677817 +2.2272653801464517,3.789482271525265 +2.559779490064803,3.645789062221013 +1.966068213640122,3.8119382626079727 +2.339096417993468,4.1564269661494455 +2.399638923337453,3.610933739854935 +1.8043419712616244,3.297411265255982 +2.356563319702746,3.6235642994787916 +2.026961640268105,4.503490366005751 +2.1972085319473584,4.236025976376418 +2.517823165804353,4.363316939020571 +2.0497988848720095,3.1748828293733444 +2.5887939652323038,3.41879907247648 +2.5711811803447313,4.378634651902149 +2.519494731487351,3.779829658769175 +1.975905117632017,3.84313262658613 +2.361796279660047,5.1245420115768106 +2.3058745145699864,4.466815198635557 +2.4993157091618903,4.54982331623091 +2.4611967608758816,5.023600691635748 +2.5857934863414203,4.1021161812613185 +2.48704142373842,4.409369154021231 +2.472390229288702,3.635463335786728 +2.6075288866032666,4.394477025644143 +2.5036100801771384,4.0749214995497525 +2.094365309514089,3.8661566733241743 +2.697208398345034,3.5737593791128663 +2.5230902913470663,3.8965152219943686 +2.222589446253515,4.651629263462133 +2.1292523679472897,4.0465415482074905 +2.2883423402602103,4.128895323550057 +2.0500832757540444,4.215204461854555 +2.208164290913311,4.620000966688249 +2.484826702048129,3.326256636212996 +2.3657824094700715,4.453878484959847 +2.2474152090586097,2.9746290871304835 +2.293198689772228,3.94073242859071 +2.080040597244304,3.8257597630681457 +2.399233564971384,3.187693782861608 +1.9941953002454287,5.315568295697126 +2.2412988266020837,3.8565009591150354 +2.1433540242142612,4.6327934442306695 +2.4398003515413964,3.5936857776176114 +2.790171614987912,3.752116775753653 +2.5399944636341645,4.2363867193493725 +2.3791340216871855,3.2305574889548265 +2.733665998895238,4.32738759955005 +2.167811010814061,3.5105003280933085 +2.2198552861897594,3.8687268511105266 +2.267143065888707,3.5823239206485344 +2.0918906172500575,5.106780817088117 +2.1589468133135425,4.416368177306916 +2.0048158088298,4.388254848856312 +2.565748850692644,4.686034132826515 +2.67111569788959,3.735137369795776 +2.4395634626660536,3.636114051503744 +2.26939270228563,4.866204911773524 +2.2830773895847565,4.793971180994558 +2.0846195572688795,3.718199198014986 +2.6594459311638605,3.7312021387814784 +2.225908606911126,3.9851427718553514 +2.4032771346021273,4.178005593389496 +2.4740999722000683,4.182563633433281 +2.3788530888993082,3.989631957158772 +2.0944445749122007,2.5827123065953472 +2.534306963721923,2.7372840628531856 +2.0500443890591122,4.425821945246936 +1.962858581254709,3.9562602229114363 +2.350404224007676,3.509863920733669 +2.149959481966831,5.284787954454383 +2.197315817528632,4.635683867711865 +2.261180102850602,3.509305114526681 +2.3904804926968315,4.036968728521979 +2.7597758797315306,4.218255306241962 +2.244910906063933,3.5694329869375783 +2.441897570001026,3.7888003703447324 +2.3771194841709744,4.151067394471056 +2.4080020936515205,4.384096009576848 +2.2439605172132904,4.174419314394151 +2.442562445271624,3.946276292606476 +2.665755743506797,4.136912167732129 +1.9938631255462969,3.576522659451476 +2.191619702169788,4.62060869773464 +2.231930543133815,4.003589350646264 +2.2804868626214003,4.191688518130715 +2.286224585068744,3.705474413936886 +2.4010805841320435,4.027232404733074 +2.370345033862626,3.4616685179590037 +2.2974147760934516,4.942934122437512 +2.304555142095622,4.199777642382012 +2.1384404620996937,3.557132301612225 +2.195007212375364,3.8762131440650918 +2.135027514293609,4.161302391886965 +2.3459048060082006,4.390854539767408 +2.1122496453910546,4.468026098568907 +2.6172895570035974,5.080525383334058 +2.375819593072976,5.010336027399588 +2.2693636939388773,4.496534718074455 +2.7369297116459634,3.4624602309177654 +2.2598292027509976,3.646077644344272 +2.450442647225295,4.3485637505407695 +2.4438922653710815,4.060892737560872 +2.2998006185231454,4.310732277463489 +2.2540319032178613,3.430910644838976 +2.664504494412074,3.9725418913516486 +2.4500446468676618,4.300946665251743 +2.5123626909269596,4.146504943939997 +2.2089930880112516,4.214123899825544 +2.261933404028055,4.0505520361639356 +2.460868813304046,3.425353190758883 +1.9270372859870382,4.031679326104878 +2.2949215485020207,4.011400623418387 +2.5408295104295457,3.4569314891304668 +2.462397947553327,4.266580949382654 +2.2629398940781256,3.59592858932272 +2.471148246447648,4.014052866311673 +2.4153694859662727,3.861389511469352 +2.322265106262327,3.4057637842095687 +2.41493647161922,3.667977879880018 +2.396804957445126,3.111762700468637 +2.411944728398628,3.535641126554882 +2.4057415346439193,3.9917062981864704 +2.4308705181063823,4.0931584360147735 +2.3999849423735298,2.9572541713088967 +2.4962021441916673,4.202844467854695 +2.434926650664239,4.446990221674566 +2.7195023504750253,4.667864518657444 +2.5593944441122667,3.6371799772115367 +2.439587005148932,4.254063447813203 +2.8682310121753773,3.4717843654012235 +2.1554998205220843,4.0110484711542576 +2.646839576629087,4.557835960647188 +2.2520999742999366,3.570394969148292 +2.827990016110707,4.741698883514016 +2.4882170952120335,2.109318226378037 +3.570947347728717,1.0691567485273499 +3.7499373698993494,1.1213813020996921 +3.1853618182423937,2.552074136471539 +2.990003240307588,2.329511243906362 +2.91244489344462,3.356838046276562 +3.030708405384909,1.6495837741230317 +3.0383371318065353,1.538352335106567 +3.485094676832462,3.4258769797786357 +2.8551301437670817,1.6083088202876308 +2.678960715935483,2.429847653500464 +3.196054648347962,0.7778762777861619 +3.5780508543274436,2.0003582578593915 +2.9401112051121543,1.8639745229327487 +3.1060216371712395,2.564149991393802 +3.0881323420074693,2.0142701040857656 +2.653302551376669,1.9576469327465695 +2.9288993068007176,2.2754948204370935 +3.25836663198253,3.3277337134140925 +3.115063636468299,1.1311509330875686 +2.4926935981095593,1.7777700897365865 +3.5594307193496686,2.0045437675520814 +3.2988028119444004,2.1970862501002197 +2.9626589592323875,1.429582404456545 +3.2669085933183744,1.931243025878158 +2.938632225260605,1.8851788127508788 +3.4758949660653187,0.8798113497629891 +2.738142701551738,3.3431657489684445 +4.185997795967041,2.333876476277895 +3.054601931354354,2.0910189594961093 +3.42650368785229,2.526747561634 +3.129636750801268,0.14733279117797538 +3.1305331102195506,2.0407907848985474 +3.1046659589069994,2.492083105929952 +2.870890957000176,0.5977987498821329 +3.0817026408212267,1.5431591424484392 +3.535679686595145,2.352040096951934 +3.066594857471984,2.9661526153254707 +2.7447051722842972,1.8682130642186026 +2.9102173297190763,2.2275083738720363 +3.1110597368103763,2.838498478173619 +3.13570050072109,3.1678930018403495 +3.497858577532206,2.052149590887808 +3.5848363823897875,2.7467965995448314 +3.553813063677133,2.38895047328481 +3.6104854790551992,1.7926186900170997 +3.3602758320481296,1.3313110402853523 +2.7359405514646564,1.4224563196317233 +3.5005709949729535,2.2996689002030775 +3.1844983490841705,2.323866859005182 +2.6992577251619196,3.0193517727285126 +3.1938596192472537,3.1549353995324974 +2.993257198556374,1.7524148745145824 +3.3626937411784543,2.3782251205603138 +3.115315044578706,2.9862549535466782 +3.5383939348715243,0.9839680117051157 +2.928185352114544,1.5306805989844219 +2.813683186279327,2.7325442519873344 +3.411066658479341,2.119324785210606 +3.238994965226587,2.869069339938137 +3.7889053719110883,2.1197225818131704 +3.1949045599716537,0.8409965621760729 +3.0768357319833544,2.146000262511387 +3.506022308276851,2.41855388662471 +2.7422672424019825,2.902301507443375 +3.0333595608653994,2.689315934455313 +3.0592465534678315,1.8325342261138453 +3.088184459209194,1.8457034417298004 +2.9977021258112404,2.0630821524593492 +2.9182372633187272,1.5206935479644759 +3.8482015964269345,1.9626276999496037 +2.495958406878346,1.7928624198260217 +2.966579814938309,1.6254461079191045 +2.255726082680055,3.4196756593497213 +2.8781825187310477,0.8500445931034131 +2.898796540523503,1.7989549181581985 +3.4544252849296764,0.8864623515535233 +2.7607734954667777,2.374270450295098 +2.8958357283296356,1.8361881587182698 +3.218107584523023,1.5624538818180336 +2.6767232510805585,2.23293555793524 +3.2543347065857344,2.10376862922843 +3.3143167084795717,1.6933710434409084 +3.2590325170267898,3.069670931826627 +4.139128347186924,2.2811277065031943 +3.2231867197189925,2.5197196316473263 +3.493149555689562,0.5719193260969793 +3.8647988464495073,1.3268462966655283 +3.288639337647655,2.330113146878374 +3.37121093677075,2.7355260070589256 +2.7494302056052766,2.0088485458150003 +3.045745115216844,2.3294659424255872 +3.1694371346166155,2.702771488249592 +2.520823635332408,1.9404415412843257 +2.9382942490945925,1.5551754867888652 +3.2330217362755596,1.0965262416610462 +3.049189243907209,2.2631613920673335 +2.462622827116981,2.707679191910665 +3.7905190012003214,2.3317456248887196 +3.6140204076168567,2.229744632980709 +3.1620458461251832,2.098710168748612 +2.5996888362567585,3.3489301141038847 +2.8814138708562953,2.709744771562946 +3.3681020944783846,1.2085336013969938 +2.981284578439643,3.5494953776298193 +3.0581778360652576,1.1227797125189865 +2.860292655587757,1.0247404541199672 +3.050855104624474,0.6775703036902467 +2.9016637917977395,2.219556762700897 +3.115006165917116,2.863866318366039 +3.722000498843861,1.6085150428068542 +2.685369837217455,2.4278639251944694 +3.5362103967117338,1.9268358179337726 +3.1214704878934434,0.584836243923911 +2.9713352757240727,2.690261615650866 +2.6865477549074273,2.837321507468016 +2.403286732276826,1.4916077887501906 +3.299193175909257,2.325391534232167 +2.7927936170843553,1.4796091705222087 +2.361061161026409,1.8634414484935409 +2.171180235787787,1.31356412846685 +3.2487959329162797,2.702784556630232 +2.9023387433611525,1.3827043352673245 +3.1442889323392698,1.8344910256812497 +2.7027245074868413,2.370262641247198 +3.2190622124911097,1.98190730541128 +3.460596434762359,1.330634778663235 +3.056250276921721,0.7399143240058312 +3.2160077413641743,0.6254637407430477 +3.6538430022075143,2.687914265409773 +2.7779775198808996,1.7413250570288847 +3.4021883128989754,1.1408660854928143 +3.530335360348066,1.2180298303375054 +3.2090755249065084,2.736426705080722 +2.601753248877617,2.7991105914662806 +3.2305002472545468,1.6849255196214858 +2.585422225765259,2.000659299911309 +3.327932917101044,1.5032914725348263 +3.11222705104463,2.7094145063334234 +3.4802258071310592,1.4519789652843849 +2.585624859580131,1.4997263166677595 +3.041702229490833,1.830138215773863 +4.02123312899073,3.823676666830791 +2.725565477278675,1.3835329265526968 +2.986557665304023,2.384938926911917 +3.313512132611847,1.4835141718638696 +3.672046385442408,1.1866566914641816 +3.1466114356163466,1.0864285546096286 +2.844775869302095,2.9397164554337287 +2.675817675348193,2.026005729856552 +3.2149355725922737,2.509465556594918 +3.2935955247307684,1.3003097645885635 +3.674294299424354,0.921453997541021 +3.7244573765631936,1.8704951627508084 +3.3202518636539256,2.394999374663888 +2.81635826346196,2.9958922987866274 +2.5083557788410813,2.349578399168364 +2.7631107161737685,0.9677975428735714 +3.7868927317860046,2.031820923525641 +3.631125614680531,1.8281660479215864 +3.3755784911506694,2.6419772843144553 +3.639621084330009,3.126750232620147 +3.072126920046125,0.7778421441336578 +3.5855828056291665,1.9970295047224462 +2.1487829498454882,1.455257554145313 +3.659248180625795,2.259180860647791 +2.714111411572178,1.7921659596453439 +3.3945952117174034,2.119278825967074 +3.45020877468024,2.526390262986718 +2.8011054301901455,2.0155708404400063 +3.1273611026514936,2.905519888187098 +2.525706567722652,3.029289908121285 +3.3869787017792525,1.5164738948140561 +2.6284465996845,1.92463495552167 +3.410133300162009,2.851928896199833 +3.49694496902412,1.839397245937438 +3.337374611773005,2.1465737884416627 +3.620079987281357,3.8600562704321484 +3.0597344948905367,2.346437290572869 +3.6489025972140703,1.5483047639505567 +3.8602695297174874,2.183016485256641 +3.189698772588797,1.9458640361192416 +2.8016605405630712,2.0820513907460865 +2.9333150746689336,0.9261810150088765 +2.4726724002928324,1.6848416478602304 +3.5770295763071682,1.518190360727619 +3.23349640289692,2.2021881001799377 +3.5894090425403413,1.9697131308538962 +2.2748425501925946,1.5038520514859655 +2.5094527472509753,1.11491453874386 +2.924701455471722,0.9032613809882377 +2.773024685445599,2.4162597879121854 +2.702099087674007,1.759736993004224 +3.480029282765095,1.1806332411268223 +3.525025936025947,2.325470401672251 +2.1459328078866484,2.481779536308135 +2.9574709771297054,3.3947507588838928 +3.000229482405844,0.9456890063266326 +3.5969143501711134,0.9754694562825816 +3.0585078432801653,1.3334496614295874 diff --git a/datasets/data4.csv b/datasets/data4.csv new file mode 100644 index 0000000..97da6fa --- /dev/null +++ b/datasets/data4.csv @@ -0,0 +1,801 @@ +theta,r +0.1268684497492143,5.099599105153882 +5.923481992976997,6.375792129669298 +5.991968004997461,5.8636584534423 +0.3834010055423324,5.362914813785348 +0.27874958955066154,5.997928100220232 +0.5946710603399411,6.0685033941295465 +6.230695532199918,3.8160746188469066 +6.2007886956006475,6.038047721598355 +0.21281569540491613,4.298209033364747 +0.032482762458589366,5.095639032980341 +0.5274561784152213,5.180205765988055 +6.134887487127257,4.776898207798344 +5.8437035553748515,3.508009561933691 +5.951852602153162,5.688780102781026 +6.152961875429936,3.6984630574420896 +6.278217939282884,4.732854140437265 +0.6964206048911172,4.772027321804894 +6.185433769612004,6.033819816293774 +5.960767717712483,4.958265453158196 +6.018656065853382,5.08762156874202 +6.274141449140837,4.290438530272027 +6.2387590492752185,3.945467235993789 +6.250693496555625,5.708887101509702 +0.2522185616578491,4.195619789278651 +6.131340633867282,6.047434177789121 +6.149345309555741,4.358125083039592 +0.038714633363290625,3.959712229286053 +0.09840084004582325,5.092044579724176 +0.6218913575583358,5.474493276620051 +6.100684357282059,4.950099195342615 +6.05532329356634,5.437309227685155 +0.0858698493912168,6.473187130492188 +0.536089545903598,4.544402454969835 +0.05453179618457077,4.637768241326608 +0.3614213170021185,3.198342569845987 +0.27956883860489856,4.1619870770886305 +0.0063664942245621695,3.5940846448738117 +0.2564061190599092,5.29397218612766 +0.4826180841014163,6.766391244836814 +0.11429227897563331,4.776390836182539 +0.3969369440883525,5.2612799119715685 +6.178715728462784,4.955891194326986 +0.15988453956415435,3.7338550114582034 +6.177675178901791,4.108142223044476 +5.882637334385644,5.645809657439781 +0.2865336297247349,5.434388236052877 +0.04626350731803145,4.225341140240819 +0.056355238974950046,6.155457750676719 +6.044545490842555,4.526469195287132 +0.25415849114131933,4.585088085125079 +0.05896797443581205,6.123039625809673 +0.08374877094002915,5.4351622205705254 +6.194866944991442,3.8535021900122204 +6.254090923761398,3.4980679196856097 +0.13623951816662955,7.137452644901321 +6.105969472731508,5.164684740113299 +0.34120113770129806,5.373023542590201 +5.667793309531333,5.7108997999512745 +6.169820947866792,5.476052935615259 +6.167951876166468,4.00101962207831 +6.12737282368811,3.4243474052174063 +0.35454631377552204,3.547919262465016 +0.3630239505570502,4.80987213201622 +6.133889893193972,5.03506546756274 +0.17024132509654705,4.776147951024894 +6.143975186117479,4.534398423854768 +0.05983564549418476,3.5933847549075404 +5.932006671195576,5.770497940612327 +0.26719379186584086,4.464310645765798 +0.0225437080130087,5.393242010972009 +5.901301133022482,5.022664868133132 +0.04775344129124222,3.9386315253798205 +0.11799090795595168,3.6536780859912477 +6.076890356911026,5.595492409691809 +6.194293157891711,3.9218231727108597 +6.265683332981939,5.731287001793321 +6.055970640002821,4.814933230191269 +0.26709212664017123,4.788028199140491 +0.23531424558795636,4.920817082611106 +6.03136539068826,5.243789041686706 +5.951086749284967,5.437534899091678 +0.14840090050305504,4.309801202059497 +5.668169661333096,5.210341479264916 +6.2205069020349635,4.978129922114841 +5.988874422999415,3.841110801525467 +6.161769153597154,4.537986002791974 +0.3657011431101067,5.607917522690478 +6.075437665805418,4.211529002754825 +0.43247904349313226,4.717052826617806 +5.782997779722815,6.562132786201574 +0.14381188592133604,5.62926954506478 +5.660586568019132,4.03840623083167 +0.26938537483099206,4.820511483140128 +0.23695945753608968,5.330173814428251 +0.15816849831913674,5.455651885673746 +6.241735964174751,6.875236858907151 +6.186833744048237,6.578625816777853 +5.602415176030948,2.0367101502185236 +6.2772250810911565,6.377722850274834 +0.14195309607117304,4.301324513091529 +0.06143683825637748,4.5765225851362 +0.38530919930033475,2.8578788957595864 +5.971493668109404,4.702093271912234 +6.094907068428769,4.882356925399595 +5.975641528263157,5.2492410989492075 +6.228477615009217,5.069901370078743 +0.16768548929533184,6.279842340649873 +5.8854044856413905,3.4682268494196555 +5.959498361042372,4.818005007347417 +0.01989171532802308,4.6295049722441295 +6.153674124011179,5.23102160605504 +0.1852969121830501,3.483104713414261 +0.3822321029620177,4.885962577841944 +6.217787944185142,6.6487990194574795 +0.4878253590717392,5.014606410166472 +0.23284479873546912,5.047995755096167 +0.13799729198305807,4.6640740626493375 +0.22539527135983597,3.841308515552403 +0.207449309508681,3.960900749466207 +6.018394194375734,4.480969202399712 +0.6854727474712629,5.950106916999972 +6.117190999612705,4.978787923652999 +0.29329064033011926,3.6641662129608683 +6.251374961440577,5.109799514897241 +5.831048429048019,5.551376456839109 +0.10954737976879401,4.92211204692553 +0.21345414961002032,2.6322742530296948 +0.1277818707086128,4.191595320144973 +6.211263356038998,4.443449930650989 +0.05560284688095255,4.869132067898769 +5.822866365175715,4.342371454122111 +0.04927811173911324,5.338281573109502 +5.841954142903974,6.15284172235847 +5.979830766881916,4.772098863734631 +0.09704177204141974,7.234661304711588 +0.0332650610357587,6.4814620423296105 +0.07653113226478218,3.3227083715039236 +0.21789795450287847,4.52843118101143 +5.913859565637982,5.2564659917815115 +0.2215690677106547,5.154196630607423 +0.19221262651433846,5.526201422183074 +0.023271288849533944,4.466833786049243 +6.280519247413502,3.773547737467764 +0.20775959323026516,3.6501216717335554 +0.018689262428621848,5.1862113682086095 +6.12021288310713,5.32454422132026 +5.915421765563426,4.582080075252827 +6.156112594495142,6.527403724148765 +0.12675657331106743,5.467903282449349 +6.183985214305795,5.473748661424697 +0.44224601089997523,4.62502493828421 +0.08334706972623569,5.075032008558219 +6.233044136585208,4.463546753231385 +6.068716726036247,4.28452923782884 +6.098145541891887,3.7309429757685093 +0.4001362199944147,4.583802272622265 +0.41164578992411166,7.133059759481972 +5.966101932015066,6.724412033173152 +0.11059149181793033,4.773600846930596 +5.7195963934810905,4.2981778554712555 +6.061227508136515,4.368108456786434 +6.040359765747313,5.614081836714816 +5.989240169656799,5.311361905280649 +6.075096154578384,4.4379273705704145 +0.35159979801848673,5.852777046148789 +0.3575993083393317,4.37213023006105 +0.11705097854703775,4.846907381158266 +0.46145569162961375,4.207131810965277 +0.12191161392908903,6.949834053191713 +6.121208705289911,6.203324820069922 +0.025366873033376532,4.573192061853855 +6.260573911570438,5.2420210823495035 +0.13414000950111019,5.119549699709122 +6.189120432847388,5.7212679745410355 +6.252755594405074,5.539617334509261 +6.072359803509178,5.495732551364001 +5.790967835215575,4.034200245691813 +0.2745830207691339,6.252425305353871 +0.16796955249328877,4.1119530395429225 +0.12565462442915243,6.067366481568176 +0.32614702763074066,4.341787349775226 +6.125375112153794,5.20207601026209 +5.972706661374339,5.065040722527181 +6.172052608769365,7.393725561766532 +6.265606134359397,5.024484884880369 +5.805403153181047,5.354136350100399 +5.644228892398276,5.438389951258657 +0.3182152454418805,6.852921128175122 +0.27940008184246334,6.09318467962237 +6.034566580919016,5.626801768424196 +0.30958099022039576,5.315984612382937 +6.28030721616542,5.165144595930301 +0.20340363050648327,5.852378213811879 +0.09615048452548021,4.956754447995234 +6.262517032363034,7.2774420611301185 +6.224594517489666,4.016732328247013 +5.9044276544936,3.939626062183326 +6.144119841671421,5.583667704662584 +0.3331906332852222,5.696514925145301 +0.5321577389314566,6.3098063684406185 +0.30219958715601863,5.723863061637702 +5.860167393206315,4.987983429108985 +0.39301811064846154,4.675855516408416 +6.273761773097585,5.255762840505221 +5.919936282337087,5.952595736938459 +5.702140535022454,6.231636060284678 +6.035650359772237,3.5823125113077188 +0.11771595304776142,5.926018309568355 +6.041954931340613,3.592950174310151 +0.2748079743130974,2.912886937287178 +6.194087282708833,5.761402188559247 +6.141924009752038,5.769149417795827 +6.22372029241286,4.1499953963087 +6.1649631418904525,3.545722024355997 +0.3667414848380735,5.819433992955361 +0.018467736527066462,5.007609574869147 +5.882907936008512,3.4864670761895713 +0.28895634095817374,3.1302345178410214 +6.1825799410282505,5.06292992145934 +0.27435248632317316,6.711795765911358 +0.001272003204690398,3.914466606162042 +6.017471495495913,3.2134188459942044 +0.6030382412618049,7.423843538490923 +6.265066630794857,5.355545222271125 +6.249416868376469,3.8982762343128243 +0.03692766233382857,6.635098296922821 +0.10975408653363541,5.166034010633807 +0.2836080859205635,5.679117045891106 +6.037247530211164,5.936762992311706 +6.05702601466851,3.8331143307557376 +6.214403048479357,2.9042514855451604 +6.093341941151952,5.912815706120221 +5.761666154247914,3.1995621340082985 +0.05428283255150802,5.365343162023892 +5.684313219172631,4.04600468159672 +0.414866012134475,4.404129601031646 +6.126242815578195,5.3243085869483435 +6.0185654806526205,4.85558883398801 +5.955975929270538,5.574420919217873 +0.04276336621863666,5.703992708161691 +5.70948593219312,5.91316686345581 +5.727255077240441,6.606144683485875 +5.898497924964187,4.953425096645338 +6.194895906133335,5.817519655324659 +6.077202719502605,5.827277644173682 +0.09930039185843707,6.135149847214744 +6.103890031362033,4.527385834339552 +6.044975519321976,3.776029091481533 +5.581265448898064,6.457527453893401 +0.07628479634902598,4.2433418256656275 +6.1094931648826165,5.5605949611425896 +5.8416651637951755,6.130936556664244 +0.100596105178176,4.808376329026013 +5.94265952041023,3.273519554170373 +6.171837640858877,4.768688259848193 +6.228717871582806,4.333913126347559 +0.36249052013908073,3.4957542395804397 +6.2623649442770715,3.375446320185764 +0.5021957840724645,5.9538916227737575 +0.4747579453331511,3.6996174842559624 +0.012344357687811038,4.309412018905878 +0.5594253998912593,5.123835079068937 +0.6100647219468455,5.743876181942706 +5.838825023524539,4.477634001466578 +6.12459785320098,6.570524626693809 +6.182480021325267,5.169777922701211 +5.745710181568269,6.565101230849322 +6.194457059549678,8.041216458044659 +0.7569285522123356,4.9804263145625765 +6.146801771033304,4.896007291494991 +0.29239508405378867,7.509035739437418 +5.67897698904512,3.762305635477899 +5.774706496593232,4.53201161809371 +0.26608098896369214,6.891910809418572 +0.2585918550221542,3.546171145405129 +6.2313479687952515,4.874956145033796 +0.030624553653623317,4.036894743779605 +0.3826302730270418,5.730641107815684 +0.2187013185160531,5.307761231647266 +6.160824673883889,6.2753821891672334 +0.06619054954608224,4.828193274990889 +0.10178011538379383,3.792098802249794 +6.214497715118101,6.311553126115863 +6.040346802833881,5.6096447656755135 +6.0720251622672485,6.080872507567823 +6.214826913824375,3.7927515067693642 +5.831444172717118,4.986160688255957 +0.7048653529407588,5.913216877895419 +0.10305511494210495,6.155623900859759 +6.118915602657165,6.251970205815768 +5.812804033193151,6.734008374423786 +0.1827398919598572,2.8133418745236 +0.5042311889345388,3.8189126766622534 +0.14517700356564986,6.086053307247499 +0.6356317325715546,4.070765473271242 +5.9405812256527755,4.16686614263548 +5.885331844972612,4.825339727385707 +6.259353990770056,3.838534074093161 +0.3100433974383224,4.823809106850879 +0.1859430885965578,4.825300317762296 +2.988807490668637,0.8197046813457272 +3.0484465346792744,0.45086215707004174 +3.0799182162977403,2.417830374009622 +3.4870920647379293,2.248629846746555 +3.245270222022002,2.66638040548111 +3.454333568879157,2.3516409410232937 +2.7704364954520804,2.409035094479556 +3.105833548941548,1.8181788859933248 +3.0322998777186823,2.0280401608607206 +3.1036395287429257,1.854019551647483 +2.9258384951805043,1.904604317932839 +2.9901349743318186,1.7587262232400198 +2.8523090184233473,2.6537791137384854 +2.984651362438664,2.19817379502706 +2.960941638920351,2.201730367679807 +3.028113521973276,1.4009201866402177 +3.0694504721906757,2.3182974594565042 +3.2196736391730627,1.4015795389606227 +3.0762068679123216,1.8826698187004474 +3.047339702649841,1.9093313593275139 +3.1185588663448747,1.8192652877315947 +3.0400813109264164,1.5629237153740545 +3.3055033310580906,0.9777282340763431 +3.054862879931599,2.288394904981379 +3.083058421725613,1.4660249829161633 +2.9859260788830353,1.9586961216244962 +3.5846538045743688,1.995522484149283 +3.0653411011981904,2.0670711209716317 +3.055954088072517,2.4471929939598405 +3.2305429216106827,2.1662070362630406 +3.3604650862680225,2.2933280164207135 +3.0516922374275985,3.224813125956347 +3.0443096392450775,1.9493284924562013 +3.0346097700773043,2.308443088462674 +3.1886882626749067,1.9995071755196558 +3.0966261103619983,2.9735460745454265 +3.1937616844356294,1.604009300990925 +3.204764008347191,1.464255189460597 +2.879266037830469,1.6166718738736672 +3.147727466632699,1.4365474748018494 +2.925480271165247,2.226614187609837 +3.0839304500593756,2.016986937180378 +2.8742458854084405,2.185211537181334 +3.084360054906866,1.4812201408688344 +3.1620892490287345,2.2227797891155197 +3.4114247245253027,2.280220237213575 +3.538203789245183,2.079081439885033 +3.0109219087746255,2.2211548048142973 +3.2476278383152137,3.1859604287281096 +2.878375927338486,2.4928241099211133 +3.4021236994580146,1.6587512777781666 +3.1256635914817648,1.6078817810560484 +3.3232448705532565,1.43729077725333 +3.3872589873659957,2.0746857834413874 +3.069348847425287,2.401584990633852 +3.306375796556077,1.362975667256138 +2.9974082165916385,2.726112670948188 +3.12023319528627,1.6343986299632203 +3.4929071652359744,2.223708138593677 +3.0466171451148196,2.34233782972892 +3.110056434792093,1.5219707525862125 +3.314576855124024,1.6505006316555528 +3.218412441898104,2.6772857560505443 +3.1224969220905905,1.6148839692501125 +3.0370727722303075,2.6158634775505156 +2.9918763117678426,2.107383144933308 +3.0499473437953637,1.0957103206285246 +3.5283977765862495,2.042581293266692 +2.9322776107278337,2.0248674997947074 +3.0831413803341334,2.6700919824190734 +3.4833890281737947,1.7581818173247716 +3.3173878865620816,2.3437798615749417 +3.598330126770271,2.571839149268242 +3.0704095625220607,2.6206426180378255 +3.3234158653414605,2.2367652874642414 +2.984796165394726,2.2424145424895103 +3.117349472407901,1.7273521736295492 +3.3601510660155234,1.973589397131366 +3.331168284774281,0.9348872776906638 +3.2350694325347336,2.423848217234324 +3.040858713305576,1.7083444665392489 +2.790957978202359,1.1227683271239755 +3.496596979974052,2.288380499108155 +3.1267064710793,1.9398499060460235 +2.946395786846199,1.6515618016502833 +3.335957797679118,1.705391333108007 +3.1931238809410423,1.9421382272074568 +3.2625887003894816,3.0901373679680133 +3.1835913892826704,1.2873274837465953 +3.393885377282203,2.0423264862480393 +3.2547228659267486,1.9862672213282362 +2.996561881779857,2.3093386260345303 +2.943716305007463,2.051606917454513 +2.7896082877226016,2.1530395196965517 +2.8657145714677097,2.3778709609765554 +3.4505446224127696,1.9124020385951448 +2.7402994497843345,1.8731551344788542 +3.172709156658593,1.2987663505902525 +2.8274330123091813,1.2866684966921493 +3.039461720203944,2.68737475878477 +3.471773704348169,2.969876921985227 +3.338634210698616,3.0425805921320306 +3.082897243684572,2.005675687870349 +3.028992010004784,2.028292367887318 +3.108949230325473,1.876001379103171 +3.4698467138555866,1.0193357728577381 +2.9002683957892157,0.655769638657461 +3.3281487392086535,1.9089606980069114 +3.0804714507776265,2.635782283584166 +2.953320364636614,1.9391032500114573 +3.246138522756233,2.3820629965596147 +3.199265982277342,2.180223417104826 +2.973877327362885,2.761678079037522 +3.5371904513544346,1.6039197034017858 +3.314349761646512,1.7567280851179055 +3.2767150913492116,2.0251633403357894 +3.3738885221450694,2.4126820468308297 +3.1291183009278822,2.919354880299697 +3.365198945431417,1.9844007767052767 +2.9757470493106974,3.166116865846325 +2.9167991758045044,0.7971689319649 +3.1649224593393233,2.284797038306016 +2.8384883832410344,2.7674213644782943 +3.234160650395985,1.2871246540325196 +2.9808633211278477,1.7140242662387442 +3.3968611529040995,0.784724636626817 +2.800138725466273,1.7033395065724688 +3.0520646699455507,1.6551163212238342 +3.4076451353885053,2.145621926706746 +3.05993149309837,2.0991882528901695 +3.0064393966811305,2.0118870067483154 +3.374935480277412,2.153011429399112 +2.842834542353917,1.6366744054972013 +3.0479955248472725,2.5063368093209033 +3.201153611291979,2.5261045215860904 +3.517160544705111,1.9102830168111613 +3.212304975870198,2.7688690823232847 +3.4386666061085,2.2174458989152566 +3.324208715134971,1.7353319117595873 +3.05066742868449,2.7048976132926494 +2.514673659732638,1.756638741424812 +3.1610255814695987,0.684421821505278 +3.3822355390108214,2.4976477489749787 +3.0931521961636634,2.183879204435658 +3.3829916439276886,1.2693918609352952 +2.8912719736223718,1.9712044576667975 +3.322900200717607,2.569889374149171 +3.2540497812481752,2.131434178840984 +3.1379341430242467,1.741629991884773 +3.598804991602356,2.069381001294832 +2.8454921777456974,1.1930544001254173 +3.168442188487581,1.8934217209776238 +3.2165053945797566,1.9931513086997033 +3.1010196793119578,1.6136306925651198 +3.1878787626186376,2.1235088323383677 +2.8508966539482388,1.6205601256040842 +2.901283818478447,2.413361476620749 +3.2903584222581115,2.5237678470037324 +3.0238676350401335,1.0219552171380808 +3.1929340226630165,2.2497368804272044 +3.2723565789607756,1.9675783570702998 +3.2587441586087844,2.043320423399647 +3.2855090899772255,2.292452789807492 +3.167653858573317,1.3510831150467029 +3.0240396052908847,2.3433697948575056 +3.142166052943886,2.002721553732691 +3.344986954388523,2.398670559781137 +3.2357525262520412,1.8018655149824705 +3.1683428105314255,1.6597166951275288 +3.313852739507281,2.699548772202887 +2.9542799141508125,1.3515168388994008 +2.941923657778959,1.483870567876878 +3.109462877868534,1.3406947362872124 +3.181214293758134,2.5690630954493 +3.1066478606612913,2.111155302232487 +3.16688262393003,2.5040741239961744 +3.1261087746779186,1.184928452605159 +3.218881509314642,1.6564437870981004 +3.19452839031087,2.4861190060157545 +3.2949542996369203,2.202332434920973 +3.216657672713944,1.7627326171281104 +3.3757244402941056,1.2112500837132092 +2.9296816703794746,1.7431787665118539 +3.2731800421038058,2.9981346707773664 +3.177794912364855,2.5083963804334237 +3.100162303790366,2.0814405874909485 +3.4029535805924542,1.7151457329126696 +3.4788789501368202,2.5290961834875563 +3.006973136177653,2.291534050127677 +3.308991905693016,2.896669768540014 +2.9546580839790284,1.7374494915826686 +3.089745355386991,1.9784477906166618 +3.063224412810254,1.7752267269416961 +3.534396649194205,2.430574339183895 +3.4056917482537927,1.12927834395045 +3.1166691705835454,1.470058286570056 +3.3511423405646763,1.8757199604221133 +3.245755385617344,2.1724445247983537 +3.442653421271779,2.5191699435836497 +3.3863789044095927,2.371968088649117 +3.5266049241940487,1.40941149984212 +3.132897759747988,2.166531818583283 +3.281467711721615,2.8374237055985105 +3.167266530066955,1.54806768150141 +2.925717142291329,2.8035250732075303 +3.2634779249174675,1.8599466160985725 +2.903410209753206,2.768925137371249 +3.3442204221197738,1.4908209228258182 +3.0889000369180875,1.7525360340646206 +2.9941615387732434,1.4999410207495254 +3.474661039817596,1.7753682585443828 +2.878880946766812,1.7610190547424462 +2.9516055525388727,2.2040116267950363 +2.945171698658058,2.4660704496237202 +3.047946981486163,1.5109713013448198 +3.3220505833672997,2.5493639905296517 +2.9143652302951972,1.5441689576216118 +3.1194703795255188,1.8787205393370314 +2.934826889133175,1.5702701153678462 +3.5591353171705733,2.1305820416375347 +3.434758762968868,1.7684266697720408 +3.2090333808686085,1.5884570284799633 +3.0741775352755325,1.4822506933894017 +3.2679986886630283,1.2166055068565809 +3.021173006471242,2.280855516605354 +3.1127382250181324,3.146275092309911 +3.001741884386253,1.6175389838883645 +3.062073225507839,2.2662875528956747 +3.305714262952008,2.3602058252453295 +3.3191765784657004,2.132681359990576 +3.09214146796582,1.6025147414825214 +2.928209547751563,2.7097135356230906 +3.0306102063363594,1.8207700917754084 +2.769921800369484,1.5602696458145968 +3.1711788959894807,1.4891355298436182 +3.167356460480303,2.572695797989465 +3.3549575758319845,1.6342449317470398 +3.0438906374445596,2.164129070192573 +3.5450078481328067,2.4360079603269065 +2.99009310649022,2.359966394081973 +3.3504870499042796,1.7537440893078522 +3.128441243590643,2.6220737914459344 +3.2186029590415584,2.9104586011120492 +2.9063659140035196,1.8345062073121188 +2.6174347862535434,2.976511546880933 +3.101574424744676,1.9510045438580557 +3.0868646184981197,1.8168415287424315 +3.4551967670392005,2.039143759536913 +3.204530736123484,2.6553329889530652 +2.999158206327465,2.1611192196250384 +3.0948382713950147,2.839475902374221 +2.880549104551627,2.108593413394662 +2.787558653436672,2.359285954697233 +2.995966874908938,1.228059775535516 +3.005464743100958,1.9626739912573987 +3.082623302373386,1.8875061916253462 +2.953688767090714,2.8903339092609355 +3.261595843906407,1.9912256158148862 +3.3933996951608543,1.8372675850811615 +3.696832324201458,2.625700071693017 +3.2652555946538357,1.4920796893744646 +3.2511206287764,1.790882255073517 +3.173928777980627,2.088575172259805 +2.961507354475221,1.6374113013817952 +3.312460961383059,2.569968559037904 +2.934388030923828,2.0804971651821536 +3.4845493226665334,2.1215028094693618 +3.34340033718128,2.072519856415155 +3.086022964178638,1.8261426229304443 +3.389438843730309,1.4943317276655808 +2.9204261776323417,1.466677791830437 +3.3534071481235768,1.034363459373937 +3.381567185897874,2.600554034741123 +3.351020520989929,1.8176690802315012 +3.5522612370331257,1.3691581178994667 +3.0938151912767577,1.5397525489959019 +3.063408490106174,2.0573893846489817 +2.9326426594869295,2.5000661961220527 +3.7264624315948036,1.5785335556805125 +2.7871444864388377,2.4060356634035136 +3.132976834977262,2.249541411034903 +3.3982326010234005,1.670420605188265 +3.5049179015579326,1.6076270900669622 +3.1656034960484676,2.1335586331151024 +3.0362127912027748,1.6920069028385165 +3.157435098831988,1.8292010974272659 +3.228240055126728,1.927279706031235 +3.330244009800431,1.9102100252169636 +3.203305355794849,2.371777148119757 +3.239691997248498,2.3558671872559995 +3.260109379315456,2.487947564915544 +2.931314413313175,1.7364819451003108 +3.058298765904152,1.8511980120954412 +3.107217555057433,1.2350881228233277 +3.15556713030937,2.4171170988377257 +3.0580518063909903,2.0272610978820556 +3.3680103390917235,1.690587154444531 +2.985406517852701,1.9621906656864194 +2.9459391829766766,2.1563676237156786 +3.2062706625766153,2.3839475335247604 +3.073268881204034,1.1447189265215942 +2.700891986175699,2.1715586104758335 +3.257693927054531,1.9023286009394018 +2.9341233879077544,1.6274940746090454 +3.20099705597085,2.093858834652741 +2.9576729998662716,2.7604823693450946 +3.4234924948752576,2.908406504698127 +2.8262031855242347,1.7796642303438384 +2.8186048360851794,2.3711882274014355 +3.172526652651029,2.051545631126371 +3.6518461688153585,0.9310052308730539 +2.9671274501722866,1.8312795017062349 +2.722733566487768,1.7953145374237158 +3.4831411673154014,1.0654493110855292 +3.1012170299804125,2.1165739096475917 +3.252293850001294,1.981912449783329 +3.2424966416692986,2.2251884012977374 +3.287044516611797,1.543979394762192 +3.022568780522023,1.5646948079164071 +2.9223988621890893,1.1780372427837464 +3.284644824081205,2.202081362472986 +2.9622010015064286,2.102866071482592 +3.2456229713288787,1.9850102020083902 +3.2383827798981764,2.6421091514546746 +2.970882563872732,2.210015251397935 +3.182755173545522,1.4896512546399654 +3.597786128008042,2.380455175004018 +2.968112234587858,2.4221502475523886 +3.253482242383053,2.6188323838848007 +3.0081119902985827,2.4008408914407173 +3.1717729877794842,2.300749227440945 +3.247611402576498,2.2618510017779982 +3.3032737175150615,2.0735368222014223 +3.224501688458365,1.0330613826218848 +3.4720945456396874,1.9667377858397668 +3.0589339178596537,2.190710651795063 +3.4934029970867364,2.806538034545241 +2.9547089334442735,2.4684366648764033 +3.1102235935069795,2.0133528341535993 +3.068759952083822,2.0493500146446975 +3.2571956087403247,2.2737042560101584 +2.6713996032173535,2.719853854985465 +3.2658098435553,1.2707125859637547 +3.127127039827153,2.583059946756644 +3.0841514039295532,2.2506401007813484 +3.112875252933169,1.4857456430356126 +3.148058648186243,1.502860984850984 +3.251161545411589,2.042031965152896 +3.4407069900144966,2.1525673069851883 +2.7378209763819488,2.4152734570860557 +3.2921527432810214,2.35416035291359 +3.383888901070642,2.123559731143599 +3.0269704550910315,2.0436593029341794 +2.9881678299788677,2.1347461081959205 +2.958002852344331,2.3926560140734927 +3.0402675365657044,2.559697717559515 +3.3465930932693206,2.229140070663447 +2.840127942124947,2.1946829045125056 +3.213279164875622,1.5634348289767548 +3.055253641077976,2.4201734033081683 +2.9751827415418957,1.9855530708467772 +2.8254087230388025,1.390414383752938 +3.193686201032276,2.191151029740192 +3.0596916979421622,0.8070284043710487 +2.776487421007687,1.6484642584719726 +3.2834827521178136,1.860507272505417 +3.1742028750589797,3.0964895256825806 +3.021063577119444,1.7959010957200312 +3.052887638801473,1.898121755416133 +3.3721705668000594,2.064325575762513 +3.3330546362910107,1.9563105338928903 +2.821351076480052,1.5585873241848616 +3.002973079937235,2.0257855257912474 +3.322559748527118,2.178719772214246 +3.139004471633689,2.081756904485085 +3.075347248583042,1.1635222692058744 +3.5644877894628237,1.633144230502522 +3.3611013665890956,1.9354495873888553 +3.5150666689464387,2.305012850168569 +3.282026781644246,2.0179556577587245 +3.1690682285011804,2.8826057948351442 +3.1210958547866756,1.1116486998289525 +3.0069007003697092,1.7376852107754635 +2.969401964515555,1.8782433749954874 +2.9279899437012853,2.0957423236569728 +3.06697591266285,1.2144467570890254 +2.802513529093714,1.0280200612703068 +3.0250384860416353,1.9396163663621178 +3.1700649304550352,2.0666879487087018 +3.448096532878321,1.8356434413024694 +3.030567140135607,1.4437483666306115 +3.143561804964531,0.8852608855066846 +3.258163414386359,2.2619982646758268 +2.811130835847379,1.1227824652360685 +3.1570437015284787,2.26852030015866 +2.833787720742066,1.5734255192640119 +2.86712589240171,2.260393779602146 +3.0023816339305114,1.480756066321427 +2.7584851968185764,1.5277228214523701 +3.336658785922165,2.8376064028254255 +3.320217655612062,1.8051355074609654 +3.5589130854266626,2.5746539702163176 +3.2534575270177264,1.940073895532077 +2.746317153240535,1.3930753998332261 +2.8057983662178,2.556784231240903 +3.3367318935485435,1.8940855005872106 +3.1737577013475304,2.2284596943856614 +3.1413435599672104,1.2153956905747536 +3.000542220554812,2.010522304941798 +3.174079556199373,2.65621373370878 +3.1490183882392975,2.839072279072911 +3.10697803763884,2.001221070972564 +3.1416985886089814,1.3648197124962191 +2.8629967310803037,2.036602281246462 +2.911023890944661,2.2808294925186625 +3.0848733251813942,2.1275754469639425 +3.584571618478293,1.1341107400458845 +3.048090430050356,1.7686984398208236 +3.1326261974575518,2.1443603580454353 +3.3215643568355118,1.7250696557861351 +3.175102886360053,1.698046524852403 +2.8250709871303763,1.7726127917622867 +3.093377795518529,1.9587719719103311 +3.4016446483309104,1.2419949829357888 +3.1231392740425368,2.300462656371784 +3.2309761812487725,1.4212345533093456 +3.426058630532494,2.238692142421188 +3.3506610081504755,1.0543972324403483 +3.1101028812699565,2.1837045834055013 +2.889747402901792,2.6466375399021658 +3.19586413280299,1.3912689066090582 +3.1841462336725974,2.8145408324461765 +3.555738275591647,1.6020517074952 +3.1331233228861377,1.9162733723220609 +3.38071237002129,2.372266801346954 +2.9701693879043316,1.4446182315569378 +3.2080422521213614,1.6152240541997087 +3.166142522495936,1.5767839982846983 +3.2715927220301793,1.770392976689342 +3.224498780497474,2.6643554848125337 +3.116932224589347,2.8185990593169525 +3.0831412896765578,2.0969146538189674 +3.334871005953754,1.8504744657465952 +3.3456014495232775,1.8672787165685214 +2.9657843504491357,2.220650553073084 +3.132123518554411,1.7809963340325177 +3.085981756403317,2.0495273679920922 +3.405768335635248,2.621443457417146 +3.0720667065805665,2.3994221341360387 +3.091113069786875,1.6430649158070074 +3.045804163076111,2.3157003630739306 +3.2925906653067396,1.5248105708181543 +3.369158430732065,1.3487195273013743 +2.6139395167396335,1.328162702977573 +3.1401636561933577,2.8335951958138303 +2.9823821224180356,2.1402998710121395 +3.3725731016980594,2.2516247698809004 +3.5345586549474555,2.090491595609178 +3.1407964199321294,2.520138756084658 +3.1896218789183983,1.019502002045905 +3.232176328074734,2.1004228566894163 +3.394587879286852,1.760630670722914 +3.3332047243777616,1.6347674464902036 +3.1638524484387425,0.8757643710160883 +2.780906510890868,2.026657608492228 +3.522979053237401,1.7662017064133964 +2.89263792443472,2.2492374603916003 +3.2236866150889103,1.7435312284469788 +2.9129369232041484,2.2576825131272553 +3.102847819206674,2.843910360272617 +3.066745350411551,2.0601417397139867 +3.3303040899281626,1.879569588937597 +3.3133778208564824,1.2880334701435445 +2.917843319294547,2.3350644715431375 +3.0819948567290463,2.3691486823823644 +3.1183206919665363,1.7740140540124578 +3.1564858908098246,1.8797724309666473 +3.2058212387234954,1.2825828860084865 +3.0113747591240085,1.2534549138182793 +3.2797048960158426,1.0863800989326549 +2.9545544460179096,2.2130791965879544 +3.148296327606298,1.9685833697803754 +2.940021730314893,1.80229301842733 +3.1149592046390406,2.487312134507336 +2.5902229683306324,2.4862921652246768 +3.348850748210139,1.7820808199283982 +2.993611748099971,2.2489355005889635 +2.992349653880744,2.704122665888479 +3.3646266948989196,1.4986929234713968 +3.0993611526863996,1.9472203634581697 +2.886570926802436,1.5891205158821067 +3.0402021831471444,2.2077397441475095 +2.8602714151704736,1.0234902401865407 +2.96872020126621,2.2367403281860194 +3.131708411526423,1.3047443113327422 +2.979320255747532,2.2489366109102775 +3.2897492592765905,2.540282415881603 +2.6290089615459804,1.3046299046472285 +3.0250565104534597,1.7829064323584314 +3.131057098408129,2.49364018405443 diff --git a/datasets/data5.csv b/datasets/data5.csv new file mode 100644 index 0000000..adacbe0 --- /dev/null +++ b/datasets/data5.csv @@ -0,0 +1,601 @@ +theta,r +1.7805006555993912,9.365797929570352 +4.072808230761173,8.615037751567204 +1.9147225486294241,9.170847681460375 +5.126277184162205,8.61387332269224 +0.3339862373411273,8.11427892570752 +3.6490827481053536,9.279276005441693 +0.8802715378553947,8.932517882925723 +5.425633279116275,9.561944197711627 +4.430305704456903,8.936000476624391 +4.6433074184657865,9.735798021590377 +5.046470504133997,9.766364423434677 +3.2806511542078223,8.370858302019752 +2.1935799380814616,9.584405189446938 +4.930875214702903,9.68865325114075 +0.9713149685227317,9.754052119747865 +0.34563497074195654,9.036006378998636 +0.822873904116464,9.655995941636203 +2.1493316656873658,9.730817102667228 +0.6737568934218419,8.547943075946963 +1.7936210462047335,9.55400101034444 +0.42955642454511417,9.814352302989498 +3.8273537871738657,8.095821640486735 +2.396006949157797,9.365884027220083 +3.625032917159818,9.197321278273144 +4.452922078261653,8.528485803555178 +4.717288904913022,9.919317833609483 +0.3934464936912014,8.07020723084786 +3.1961216382266406,9.289926664705614 +2.5474552818710565,9.339124453350495 +3.4290933582568033,8.864958847899649 +0.38365043952220906,8.867801462266783 +1.8751756732950624,8.010589252543447 +2.5696605170860667,8.615035736129276 +0.09161801244603364,8.902129136407993 +0.4478464122678383,9.928934947321782 +0.5129035075058725,8.255104847663405 +5.750029060331844,8.971690668214308 +4.095105669803018,8.822101677163678 +3.118631074668754,8.559085093902569 +0.8666050415997273,8.735549303078505 +6.04743103485391,8.667774445300076 +4.6109199503678004,8.14483026342073 +4.908354433365547,8.95197168080356 +0.9655160359748829,9.765837409203924 +0.4495544617133716,9.508728891023797 +2.5186037008601865,8.28340211627855 +6.167315697409339,8.046123460153003 +1.4993811787009073,9.276607611276503 +3.279276283339393,8.697713748201222 +4.421040928392071,8.770896593505048 +0.24619318359724227,9.602022015924884 +1.2902142395754523,9.160883543754426 +3.2142775961246297,9.834771926351047 +3.18097126130412,9.814443817527 +3.5961610905191996,8.178760370803781 +5.395610337785609,9.582961536019782 +0.7674840675287672,9.093203073941345 +5.4044058171593825,8.102030276472167 +2.7996721346419764,9.42201661595957 +4.445784327804393,9.256767911447866 +0.6354315038209147,8.226731936616899 +2.5924362226867594,9.861754626025487 +4.252825366948563,8.350825035603243 +0.7801871106513284,9.301918680997883 +4.087737679261625,9.499534136141172 +0.10419735372548405,8.65508498255096 +0.9708734461861069,8.6359193961329 +3.6005925758415085,9.117490053348368 +1.3808523134486146,9.2753328345833 +4.643852942441383,8.050554887645776 +5.467937707034902,9.088788460559037 +2.937284011615914,9.634076207015369 +0.843016164008578,8.751150612090841 +4.729267725259653,8.49167441264969 +4.2155927132577915,8.57396818021168 +0.7684445299883728,8.24648106421579 +2.0594713493103005,9.227065168884968 +1.4571550273441334,9.722853689003195 +4.0719859679866985,9.849898150268897 +3.33493490524185,9.972217351434528 +0.9079634218982101,8.940934605377631 +5.463811280061673,8.096699912695955 +5.13083596776334,9.723552945730285 +3.9092566228642833,8.100508157765919 +3.4025316761064492,8.164604174454809 +4.726133995541092,8.794303117424402 +1.596886134605568,9.094197407197488 +0.960630872247668,9.73705016443255 +4.547683210504463,8.940764874603094 +2.1545949957069883,9.060929893024324 +3.9793683818326624,8.960317791294585 +0.09033574674805976,8.85497244520031 +1.9485030677843775,8.69275491719502 +0.1817333906868869,8.283131570490244 +3.2025577764481277,8.00423778495151 +0.8734312128423712,9.77621245831722 +2.765647427074219,8.812989641545032 +6.191216123051775,8.172781144147862 +6.283027933090162,8.13897058722216 +0.5059630310704171,9.818881469499642 +0.872697594946361,9.472965037918781 +1.0531137829181223,9.691823007660675 +0.42731688922782085,8.693046520601047 +4.679625547022252,9.706725247291926 +1.4981295262102323,9.846328771305625 +2.1181957159721203,8.197836099306018 +3.971486836042035,9.560731951247813 +2.424442091008082,9.746421302803267 +3.04428419997304,8.227987362548483 +5.907100239633333,9.41394209390112 +3.428723451504467,9.045701308631587 +2.4568692472360745,8.759168544008356 +5.8703045231784765,8.582443650892182 +5.457843756919805,9.860598333421517 +2.2466298394801303,9.554573878511281 +4.473148526054876,8.638407887630805 +5.188647944988948,8.641759422773465 +1.7637774080774027,9.62264068148586 +5.98390930980577,9.68392534830349 +5.762287305917113,8.133302492147077 +6.087347092985903,9.391995283081862 +2.877467985266197,8.286905512400432 +1.900904571909166,8.29920071301338 +4.391961213912367,8.313523949470872 +5.1132190665645965,8.706548723870872 +6.264400702889321,9.557522101865692 +0.5501021569997472,8.509481552711604 +0.9436056006906955,8.226263785960837 +6.1901158747338885,8.939816459807652 +2.907126915511857,9.208571399229543 +3.793204213834831,8.526002119233112 +5.5334327539621055,9.562146063290934 +3.554841261023206,8.892811661698783 +1.5884807773903011,8.237251941243901 +2.59661178790377,9.85459546057944 +2.5183425260693024,8.735318021205956 +0.24890419210967193,9.012563784273892 +3.4433836841582997,8.568761263704703 +5.756091347532201,8.787453586961414 +0.7957925940267235,8.74612966851317 +0.8041165574346648,9.558796060309934 +4.421510200751279,9.878231358162825 +2.7590757441522955,9.814457193096702 +5.421553263487773,9.327950992239867 +2.2290220338388145,9.074746389681371 +0.7815856755427153,9.15909982587072 +0.7107793216468413,8.530126623228647 +2.5222506080808773,8.925456643777647 +1.5562366950883824,9.147265136154772 +5.809793880595745,9.839157128724434 +2.337553497823721,9.273887741427464 +6.204716000631478,9.45392331510227 +0.8326732146599172,9.714460253039135 +1.906496087513732,9.862477190222593 +2.1965489171149426,9.106692812174739 +0.10575158158496833,9.75698247829799 +4.690715327602133,9.661943608159781 +6.140503055215076,8.509791827583795 +5.235177488629387,8.623602856706453 +2.536475104776855,9.31036041155268 +3.2886959844865165,8.275072477498504 +3.061017180278699,9.47628913262622 +1.6410740173072795,8.932857998026323 +6.1091481173598225,9.008352801220777 +0.6800271011569899,8.419888405455373 +3.6934083663735144,9.795549387664641 +0.5123403482090932,8.839204170858324 +3.542688231301337,9.917502682004223 +1.960837351234494,9.823073999292117 +1.3099202673817734,8.536044867525675 +1.1246802752285696,8.300712868372544 +4.23489349866444,8.569107274193128 +5.592769233408338,9.597234589568938 +1.132321554886391,8.928236335349043 +4.8866154875444305,8.284862526083952 +5.2497343353877195,8.68126072741245 +2.284921982018068,9.385827799013763 +5.7368069689248,9.426616138717554 +5.146941690914983,8.14805916048151 +5.683809714473885,9.200658768456812 +3.8391151518787034,9.681330607197884 +1.4926396047118855,8.72226012259141 +2.9614591874111666,9.984653727740964 +1.4702191276947605,9.081178059501505 +3.3644859970356915,9.519508304587985 +0.5763944651731847,8.789513295930684 +3.1577959865558403,9.748448499211161 +1.0992660142145667,8.769435043288794 +4.497172722814983,9.205598399441802 +3.909075882790981,9.221364584448672 +0.4257947370834765,8.992786252642562 +1.095104569070331,9.812733152144858 +3.2609311083870978,9.103660441720356 +3.275969538489945,9.378064809191045 +3.2747451699565655,9.056796612431663 +3.853979535513031,9.160340590391733 +4.493020013539907,9.84217374399389 +3.154160898072375,8.743343671901485 +0.508783143315308,9.164286003516084 +5.391191132408318,9.108024110442543 +0.3555992998097361,8.08405565977062 +4.247754435561526,9.217110484340111 +5.184147278021485,9.943847223584791 +1.3002251022887352,8.464969639427624 +5.314910672299136,9.104816509479575 +2.9747877656621147,9.53994568371449 +6.231385635332807,9.957740258826265 +4.923114602952469,8.431222166264899 +4.122190380834731,8.792021485830855 +5.243105368267622,8.777108662388622 +1.4642186218014002,8.391700288488776 +3.3991420891464577,9.158891237099157 +0.8897832384769001,9.208239997964892 +5.1476523497196505,8.24801495791024 +3.143401659821792,9.985758939280663 +1.6936994929710696,9.681237963061985 +0.16345316756700123,9.18187059993035 +5.615172681587161,9.769681578405923 +2.967196281826643,9.566015275472186 +2.0676651871435543,9.484196244876873 +0.773591721437857,9.204578872834587 +4.501718495325246,9.78571776341568 +2.8079118107071066,8.219483493069397 +4.4817457249183,8.046092715665836 +4.62330454116795,9.522893542889854 +2.622947475481453,8.60407820813045 +1.2508384044103225,8.068531732305809 +3.9379815451119624,9.96954825987201 +2.177408717778972,8.384198376055593 +6.12910711317116,8.995069262439863 +4.169494552317885,9.58544528021274 +3.351045939068425,8.936742173525372 +0.12168831294033382,8.241240081117297 +4.597841963909918,9.192449621325649 +1.6597569875022908,9.519262578009526 +1.4116105873512057,8.866515233811663 +1.3954477347800092,9.635624948479077 +5.15475960187861,8.994292929601624 +2.944996089995256,8.976954504574922 +3.3424630626675396,8.511907782753578 +5.536620051793582,9.591408819072997 +0.18251741616785927,8.006687406257724 +3.0930521840869027,8.751791545448993 +0.027237031775747492,9.695909301327642 +2.2328187009998555,9.537847210511593 +4.688769084724038,9.078522140901985 +5.4647107114839795,9.887451819433386 +3.7934760221850183,8.970916545371097 +2.7834508977561443,9.541923890058612 +3.5842801862484968,8.017867000607968 +3.0966111994121475,8.847961738862855 +5.595364232146179,8.365574146232237 +1.4124579241053252,8.245045282229563 +3.2711192544267034,8.22144650586056 +1.779518719954267,9.453981280024006 +4.656087230314589,8.087520158985766 +3.6073114287574715,8.724836096427271 +3.672489643280715,8.077651503805908 +4.660792348940801,8.376759884700407 +5.018524643186245,9.791679794324017 +1.095793460933941,9.320390549325936 +0.9863454930091056,8.357661306479748 +3.7996241397050046,9.860033083419014 +0.7106651398668627,8.92239878638621 +4.590428978229986,8.750728461337632 +0.6885007181662188,8.964591594158229 +1.9845181204225173,9.877132069083405 +2.837098428045661,8.294252943659124 +2.72362352104344,8.681103691214782 +0.768914275961652,9.278149384283312 +1.5528048982078413,9.251034752354306 +2.2001201604254943,8.60898453160564 +2.707024605091532,8.000819089733469 +4.751274776130301,8.946106906927229 +3.1699210265205364,9.369813804707636 +2.2379488825260325,9.976737963252315 +0.7313547150639377,9.812820401451296 +0.2083775950204065,8.187107860563165 +1.2980796907299188,8.011512362763845 +2.446433936664238,9.87162840311121 +6.1702029468273984,8.832282860681486 +4.252333548980841,8.8602176692609 +1.189805538401893,9.259103924652987 +5.482335043349594,8.560246227287644 +2.8308054080596725,9.073069833605112 +4.450137037872124,8.040703372528316 +1.8722003041455013,8.876962202088976 +4.8938981562144095,9.454231022653463 +0.9244398956655796,9.583746762035517 +3.6307448533937277,9.487395756497559 +2.8824473089351375,8.876075903540658 +4.34779616318476,8.294965630451442 +5.875275167813442,9.142318367902776 +4.590591816154738,8.907351347753696 +1.3582582980504565,8.552565287255295 +5.752205250069394,9.808687512783093 +0.8406108224567775,9.791917043381252 +3.431172025512553,8.638361023831218 +1.5540072058827321,9.01762952677729 +3.019704051598326,9.06819477613075 +3.9346927625090555,4.553550648538888 +2.306879537327403,5.003137707786468 +5.234297405426591,4.133863012286174 +5.511501397652677,4.727316669864791 +5.388176676574318,4.445692052929712 +6.229246942649649,4.1129813368676285 +3.2090915676163685,4.379060042932005 +3.580189232387844,5.280122987649146 +5.7256195246442525,5.023301859864864 +5.161836019538093,4.371508197938169 +4.957999126889744,5.273758688430348 +0.7228054141244566,4.638649504968697 +3.603540151150551,4.643850218701142 +4.128334008942014,4.694864562264006 +0.11941403364051842,5.624546321222667 +1.9527531328787666,4.694338570342764 +2.1216607656873747,5.380743202813697 +5.596996962129508,4.964678093227164 +0.74193905206479,4.2388915674165 +2.426033687540669,5.231019712743549 +0.6082225383217083,4.094752775156351 +2.5307771864697743,5.138570835045251 +1.534577148333626,4.529019761830956 +5.736772882547478,5.325500682443073 +3.9343725266140157,4.021929297014752 +6.077386678657482,5.6278072410528575 +5.496944899319336,4.509753036138642 +5.682941706282099,4.968415893930472 +3.038223376078539,5.723376070539942 +1.4275307550798355,5.1850124922362095 +0.20433106946756277,5.994885149462819 +5.2566494712831595,4.57948229272624 +4.072722778981229,5.433175857559817 +1.014509457813866,4.171107207320337 +5.785279422715776,5.060576189111697 +5.967138942866926,5.731607853929759 +1.200150152782105,4.522313834038643 +3.5324143742826544,5.088393299166118 +0.9400872664649212,5.1180422320654095 +0.07267019634998984,4.504130446968592 +6.215213074035542,5.889466688929715 +5.251919988207545,4.413444593747382 +5.768274476811962,4.5866620567088585 +2.878470753869928,5.343499929407029 +3.6382925849931205,4.516219239789991 +5.461324091208477,4.033836452208806 +5.021278242756181,4.314220757138034 +4.163051712544491,5.961439000270065 +6.281735682759517,4.8078038785873165 +0.4028485428243593,4.290784437162376 +0.49085888437767355,5.0637539715045055 +5.304630735917304,4.171006506196381 +2.42305844508183,4.947951745648215 +0.201818149708942,4.200296426677246 +3.9222026759261435,4.95515788659933 +5.5504688608173005,5.755601197866735 +3.750422040081152,5.073974871488527 +1.2510194425496317,4.19145118674987 +2.797866519034609,5.62521098633506 +1.447034210850477,4.533140414578138 +2.699982238118935,4.42294417405057 +1.6260248057700653,4.744998115315966 +2.095033590029171,5.521984687020716 +4.786040575640599,4.361718594302442 +4.310447067691596,4.941791524107475 +4.734436522119151,5.510669207727012 +0.8775175262480919,4.302084982292663 +0.3277980617430753,4.73869363552084 +5.742561066522126,4.451165275603088 +1.538921902213251,4.356049247063863 +4.570636752878384,4.318733769553154 +3.263608376155814,4.672470211744431 +0.7182233445466049,4.935156210995057 +5.339854317502531,5.850322217243216 +2.1708258571317898,5.0593088134432955 +2.1898556003931327,4.202767827632972 +6.039876167424719,4.669187963377931 +1.2849307813456294,5.345302470225468 +4.703260353333034,4.796643369241071 +4.297203460777675,4.260151482873493 +0.8398440975018524,5.481266703992892 +0.23203136916881334,5.283428532670882 +5.891763608320624,5.549584157875838 +4.6974533548652735,4.796276614671469 +2.015211762384576,4.8856311122417555 +5.378410449889782,4.62181207349374 +1.7675693859301598,4.712943078524073 +5.046128976804039,4.599480813594159 +3.3525979870070963,5.757055142205662 +4.353213284354719,5.1633502261345985 +0.8042194966726668,5.5188656047631035 +0.695348855379725,4.7584901306201814 +4.0038324959032146,5.36093850033112 +6.20516002014775,4.6154801256176565 +1.5794428862599856,4.81359184400579 +3.147817397854986,4.67062244391569 +4.854923921487224,5.702792605380867 +0.015534696112090034,4.203204994842736 +6.1510372771328035,5.380330276829698 +4.519160260945322,4.580910715720344 +4.2769642908506675,5.341564970121754 +3.836444640252297,5.119236293364044 +4.493181095125201,5.122653257249528 +5.504797296804352,5.536820287743453 +1.4755539748963107,5.86718086477807 +5.839445754368116,5.26420370869809 +3.0436806187762957,4.864926464118328 +3.1526942267641824,5.432936293580145 +1.932256284306423,5.778160427329478 +4.084270165972923,5.047159282595469 +0.5081092383254403,5.460195292004945 +4.153731941725402,5.355779302080689 +5.014003066321476,5.238184378461801 +5.511417329064069,4.837247520167772 +2.1073414125672825,4.272274693620837 +1.2987843432147632,5.978689916100255 +4.59582978863182,5.502104848249749 +4.362830274981087,5.925030902828438 +3.156145229046202,4.909499061962764 +3.061732916473466,4.9776593925270625 +2.3550664897631264,5.022740929863767 +0.07160791395946083,4.24710001633782 +2.2776084545472592,5.6776020612496225 +4.9034334907137875,4.483123268337435 +5.185305451419363,5.689194667000748 +1.8682553036852618,4.905134917383354 +5.95247662265844,4.800722377535322 +0.8718155979622829,4.272185631689691 +1.081960828540174,5.140165772565966 +6.206664836641496,5.704790312937726 +0.8095784317779864,4.247087021150397 +4.557733065361667,5.633324455953403 +0.05191945623456043,4.81930374183372 +0.26458706017821715,5.209339086545852 +3.119088049748224,5.945111759564022 +3.481259750528527,4.2356447958427745 +1.9002865502714321,4.3373674744159025 +1.7144725839359831,5.764125691833273 +4.33917975771102,4.91734338810199 +5.348024050333847,4.562874030477709 +2.3594984543505193,5.196636638120099 +2.3694315640525576,4.365612069102766 +0.3371593516920126,5.768712188286351 +1.0911420699861674,4.537285213897238 +5.585492365130984,4.976485809335603 +0.7213941425770649,5.757244418647918 +2.764656125002333,5.451540408786736 +2.4666854306976087,5.75312590086636 +4.23901246866325,4.565500332720297 +4.908691489441065,4.629679009315565 +0.15696432013762746,4.7783747599413084 +3.1450605900823905,4.811163010947967 +1.1122079947416457,4.243848690492671 +4.396375929602133,4.067671113797583 +6.202963527208269,4.45928507790823 +0.9076630460794556,4.635354555208372 +1.598855606473763,5.926030579765389 +1.9292368036884773,4.422709353775761 +3.187157466173668,5.325870780162793 +3.2436652129088808,4.048659156613563 +0.927685224856804,5.715939286364309 +2.8957137284418684,5.396791802278916 +0.6726244296386555,5.72986106757915 +1.0123731087106156,4.839577088084089 +5.878986892739432,5.155831272631626 +3.169000195482825,5.368344636954465 +4.672100136088381,5.215445781468388 +0.14801874109755087,5.052761111904086 +5.295281518474636,4.620429924524101 +1.9993095742706,5.472943786147288 +6.242464253851565,4.06891065703738 +1.0300480799354903,5.76936149018392 +2.688968770641923,5.519112087167646 +5.794307052135313,4.882639505512309 +0.5264352437556961,5.095177467039841 +0.9834952427483961,4.6686051256722925 +1.00597038424765,5.5509216804991555 +1.2950852562833326,4.031609929065032 +6.004736924907343,4.506170121772573 +3.4570795538477905,5.201132757517366 +1.5192285321847818,5.309455921373207 +5.703573543598423,5.347853169869214 +1.8782080761649165,4.602993710731858 +5.0275842663756976,5.608554453229105 +5.014235680268231,5.082978637999563 +1.5582900337912524,5.87022917333625 +4.576256982861734,4.962796716011879 +3.301245645215573,4.635053726018981 +2.5985368906085413,5.965955189819411 +2.163686801263474,5.607827611151472 +5.841176891646149,5.35825056363153 +3.7758005526286422,4.959225522538802 +3.3881244528016325,4.43786386510345 +0.6159373563046129,4.592335474081454 +5.601711805485425,5.685185039745797 +5.8614823253811155,4.890963762541555 +2.0177526042491456,4.976626972064048 +2.2557226944437794,4.495177608855133 +5.2918921735705755,4.707835721946905 +1.9067268106842516,5.070238541342612 +2.36532154406619,4.437995085639104 +3.4749948535101756,5.895762341197312 +3.3251921509577103,4.084565000285612 +0.617785042047607,4.323055349648531 +0.911612826163969,5.853374410542459 +1.0584209385497252,4.7029401796384125 +6.0726837314949424,4.722358892917909 +6.036659758741423,4.0079742049527995 +1.1225476670214474,5.24998286481982 +1.5040224513056406,4.041142050481481 +5.389716918492278,4.849189974395653 +4.064139653351009,4.260066581749827 +2.217764379743121,4.5717861242888915 +3.5814513561578707,4.754425290144575 +1.7659209818509871,4.297243376165955 +4.631414495831695,4.82910164333178 +1.2281436744404763,4.344982210962525 +1.4552235862605636,4.2315884155645564 +3.3656135425146316,5.8834017551225095 +5.748158367639542,4.18804550631943 +0.9684937094650581,5.9156553995256225 +1.9366813776843785,4.618360633803902 +2.421190035549832,5.612194573890466 +3.590420008815451,5.519602487525842 +1.250402606401143,4.203864273559484 +1.9398382559199032,5.037873535916989 +1.268762425115344,4.036550429180341 +1.8266202387400852,5.963153357026018 +5.95157903195464,4.0004976146540345 +3.3145042407814245,4.538215103627467 +5.401160881995217,4.499897561924811 +1.9124249524564925,4.672455926458048 +2.586183585926501,5.694552527292185 +0.9757477171131952,4.518440595706789 +5.454441211320569,5.9758253818003535 +2.6085052419826993,5.134918821583248 +2.243574873612178,5.065739285824973 +1.5923807216454344,4.793470616323487 +2.647196150810496,4.129582097352682 +1.6999326971163917,5.433824433820446 +4.242819078797683,4.552701130572889 +3.689131309675304,5.526982349828523 +1.838283289877441,5.3632872568135195 +3.6439958383697575,5.293610750683503 +1.8758803286766612,5.296467091947581 +1.482489856651566,4.877492271660472 +3.095302539866812,5.196836731773464 +0.9433375568849882,4.34297298493502 +1.8641243960332619,5.570091444015327 +5.429627885090315,4.152709597581202 +2.8631891980270674,4.044792871990662 +5.554017502755888,5.105609513479254 +5.995698042592597,4.739331403439545 +5.7410608361687805,5.34496218160788 +2.342865454336793,5.540295926527191 +5.1232702441399915,5.7912021019953945 +4.40704855583862,5.054643338890117 +6.17187561658482,4.553616093282918 +1.7326453789127998,5.9954253419434105 +5.808834113074136,5.789628615390359 +2.8277132491281916,4.609182298684576 +5.225360672581347,4.951249375305492 +2.2570681271666144,4.939172813807145 +5.608999083380924,5.268137295953251 +3.5598493971976115,4.628214236349396 +1.7330087379275392,4.427752953796841 +6.082595204965435,5.866971142055366 +3.419142599748089,5.838765208055024 +2.5121109757760456,4.433238142148056 +2.6549486771223463,4.167849479642744 +0.7678977942594907,4.021711554801705 +1.1594481466944409,5.533439604442863 +3.038063362908757,4.67675564922775 +4.969498159059598,4.727217829090689 +4.335606244965433,5.842070071460895 +4.246131385285523,5.191380518003606 +0.8836987659297394,4.935904390841455 +1.9207244229641776,5.98679461086015 +3.292783185555961,5.376449864075712 +2.7177693451027687,5.688928524372169 +3.4204538104168987,4.227285631860658 +3.430244025980031,4.622030823963499 +3.4662402351637582,4.592805071655796 +2.6610802112342116,4.8759374015084305 +1.8302955844782123,4.695836328177248 +4.897822390077376,4.888442822008111 +1.205794066469946,4.427041337572729 +0.4694418997667248,4.50682455494742 +5.089007435897372,4.8337626404070795 +5.826099018362176,4.924323199186675 +6.2364557003415975,5.713051566745803 +1.3651132515776512,5.367494145540859 +1.0524292284887824,4.327441131765005 +5.534031271929536,4.12713528420338 +0.006972367326265949,4.549512173213189 +2.630566960857555,4.9732737380883805 +0.7558816335538269,4.442607417018818 +0.6021673535264029,5.8616723929995995 +4.858429919109536,5.721553960775944 +4.345309606904738,4.643543751322781 diff --git a/example.py b/example.py new file mode 100644 index 0000000..ce8ba90 --- /dev/null +++ b/example.py @@ -0,0 +1,32 @@ +from mean_shift.mean_shift import MeanShift +import numpy as np + + +def save_input(file_name): + with open(file_name, "r") as f: + input_string = f.read() + return input_string.splitlines()[1:] + + +def main(): + # Read from input file and convert to numpy.ndarray + file_name = "datasets/data1.csv" + input_data = save_input(file_name) + dataset = np.array([list(map(float, line.split(","))) for line in input_data]) + + # To apply mean shift cluster to given dataset + mean_shifter = MeanShift(kernel="flat", kernel_parameters=[3], data_type="circular-linear") + mean_shifter.fit(dataset) + + # To get cluster centers and labels for all samples in dataset + cluster_centers, labels = mean_shifter.cluster_centers_, mean_shifter.labels_ + + # To get cluster(mode) information + cluster_info = mean_shifter.get_cluster_info(cluster_centers[0]) + + # To predict the clusters of a dataset + cluster_res = mean_shifter.predict(dataset) + + +if __name__ == "__main__": + main() diff --git a/mean_shift/__init__.py b/mean_shift/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/mean_shift/exceptions.py b/mean_shift/exceptions.py new file mode 100644 index 0000000..0dcbbba --- /dev/null +++ b/mean_shift/exceptions.py @@ -0,0 +1,8 @@ +class NotFittedError(Exception): + # Exception class to raise if mean-shift is used before fitting. + pass + + +class KernelInputError(ValueError): + # Exception class to raise if given kernel info is not correct. + pass diff --git a/mean_shift/mean_shift.py b/mean_shift/mean_shift.py new file mode 100644 index 0000000..647c1f3 --- /dev/null +++ b/mean_shift/mean_shift.py @@ -0,0 +1,223 @@ +import math +from typing import List, Tuple, Any + +import numpy as np + +from joblib import Parallel # type: ignore +from sklearn.utils.fixes import delayed # type: ignore + +from mean_shift.validate import validate_fitted_instance, validate_data, validate_kernel_inputs +from mean_shift import utils + + +class MeanShift: + dataset_: np.ndarray + cluster_centers_: np.ndarray + labels_: np.ndarray + n_iter_: int + + def __init__( + self, + *, + kernel: str = "flat", + kernel_parameters: List[float] = None, + max_iter: int = 300, + data_type: str = "circular_linear", + cluster_all: bool = True, + ) -> None: + self.kernel = kernel + self.kernel_parameters = kernel_parameters if kernel_parameters else [] + self.max_iter = max_iter + self.data_type = data_type + self.cluster_all = cluster_all + + def fit(self, dataset: np.ndarray) -> None: + # Perform clustering. + # + # Parameters + # ---------- + # dataset : array-like of shape (n_samples, n_features) + # Samples to cluster. + # + # Returns + # ------- + # None + validate_kernel_inputs(self.kernel, self.kernel_parameters) + self.dataset_ = validate_data(dataset, self.data_type) + + # Execute iterations on all seeds. + seeds = self._generate_seeds() + + # all_res = [self._mean_shift_single_seed(seed) for seed in seeds] + all_res = Parallel()(delayed(self._mean_shift_single_seed)(seed) for seed in seeds) + + # copy results in a dictionary + center_intensity_dict = {} + for i in range(len(seeds)): + if all_res[i][1]: # i.e. len(points_within) > 0 + center_intensity_dict[all_res[i][0]] = all_res[i][1] + + self.n_iter_ = max([x[2] for x in all_res]) + + if not center_intensity_dict: + # nothing near seeds + raise ValueError( + "No point was within bandwidth=%f of any seed. Try a different seeding" + " strategy or increase the bandwidth." % self.kernel_parameters[0] + ) + + # POST PROCESSING: remove near duplicate points + # If the distance between two kernels is less than the bandwidth, + # then we have to remove one because it is a duplicate. Remove the + # one with fewer points. + sorted_by_intensity = sorted( + center_intensity_dict.items(), + key=lambda tup: (tup[1], tup[0]), + reverse=True, + ) + sorted_centers = np.array([tup[0] for tup in sorted_by_intensity]) + cluster_centers_list = [sorted_centers[0]] + + if self.kernel in ["flat", "truncated_gaussian"]: + bandwidth = self.kernel_parameters[0] + else: + bandwidth = math.sqrt(1 / (2 * self.kernel_parameters[0])) + for sorted_center in sorted_centers[1:]: + if any(utils.get_euclidean_distance(x, sorted_center) < bandwidth + for x in cluster_centers_list): + continue + cluster_centers_list.append(sorted_center) + cluster_centers = np.round(np.array(cluster_centers_list), 2) + + # ASSIGN LABELS: a point belongs to the cluster that it is closest to + n_samples = dataset.shape[0] + labels = np.zeros(n_samples, dtype=int) + distances, indices = self._get_nearest_cluster_center_and_distance(cluster_centers) + if self.cluster_all: + labels = indices.flatten() + else: + labels.fill(-1) + bool_selector = distances.flatten() <= self.kernel_parameters[0] + labels[bool_selector] = indices.flatten()[bool_selector] + + self.cluster_centers_, self.labels_ = cluster_centers, labels + + def predict(self, dataset: np.ndarray) -> np.ndarray: + # Predict the closest cluster each sample in X belongs to. + # + # Parameters + # ---------- + # dataset : array-like of shape (n_samples, n_features) + # New data to predict. + # + # Returns + # ------- + # labels : ndarray of shape (n_samples,) + # Index of the cluster each sample belongs to. + validate_fitted_instance(self) + dataset = validate_data(dataset, self.data_type) + indices = np.array( + [np.argmin([utils.get_euclidean_distance(sample, cluster_center) # type: ignore + for cluster_center in self.cluster_centers_]) for sample in dataset]) + + return indices + + def get_cluster_info( + self, cluster_center: np.ndarray + ) -> Tuple[np.ndarray, np.ndarray, np.ndarray]: + # In the given dataset, get information of one cluster + # + # Parameters + # ---------- + # cluster_center : ndarray of shape + # Position of cluster center + # + # Returns + # ------- + # cluster_info : tuple + # (mean, variance, covariance) + validate_fitted_instance(self) + index = np.where(np.all(self.cluster_centers_ == cluster_center, axis=1))[0] + if not len(index): + raise ValueError("The given cluster center does not exist.") + data = self.dataset_[self.labels_ == index] + + mean = np.mean(data, axis=0) + variance = np.var(data, axis=0) + cov = np.cov(data) + + return mean, variance, cov + + def _generate_seeds(self) -> np.ndarray: + seeds = self.dataset_ + return seeds + + def _mean_shift_single_seed(self, seed: np.ndarray) -> Tuple[Any, int, int]: + # A separate function for each seed's iterative loop + # For each seed, climb gradient until convergence or max_iter + # convergence_threshold = 1e-3 * self.kernel_parameters[0] # when mean has converged + convergence_threshold = 1e-6 + # params initialization + completed_iterations = 0 + current_mean = seed + mean_shift = np.inf + + while mean_shift > convergence_threshold and completed_iterations < self.max_iter: + previous_mean = current_mean + current_mean = self._get_mean_value(current_mean) + mean_shift = np.linalg.norm(current_mean - previous_mean) + completed_iterations += 1 + + neighbor_count = self._get_nearest_neighbor_by_radius(current_mean) + + return tuple(current_mean), neighbor_count, completed_iterations + + def _get_mean_value(self, cluster_center: np.ndarray) -> np.ndarray: + kernel_res = self._apply_kernel(cluster_center) + mean = np.dot(kernel_res, self.dataset_) / sum(kernel_res) + + return mean + + def _apply_kernel(self, cluster_center: np.ndarray) -> np.ndarray: + # Get weighted points based on kernel options + if self.kernel == "flat": + return utils.get_flat_kernel(cluster_center, self.dataset_, self.kernel_parameters) + elif self.kernel == "gaussian": + return utils.get_gaussian_kernel(cluster_center, self.dataset_, self.kernel_parameters) + else: # self.kernel == "truncated_gaussian": + return utils.get_truncated_gaussian_kernel( + cluster_center, self.dataset_, self.kernel_parameters + ) + + def _get_nearest_neighbor_by_radius(self, cluster_center: np.ndarray) -> int: + # Return numbers of neighbors near cluster center. + # For flat and truncated Gaussian kernels, bandwidth(lambda) is used as radius + # For Gaussian kernel, sigma = sqrt(1/2*beta), is used as radius + if self.kernel in ["flat", "truncated_gaussian"]: + bandwidth = self.kernel_parameters[0] + else: + bandwidth = math.sqrt(1 / (2 * self.kernel_parameters[0])) + neighbor_count = sum(map(lambda x: + utils.get_euclidean_distance(x, cluster_center) < + bandwidth, + self.dataset_) + ) + + return int(neighbor_count) + + def _get_nearest_cluster_center_and_distance( + self, cluster_centers: np.ndarray + ) -> Tuple[np.ndarray, np.ndarray]: + # Assign samples to the nearest cluster + distances, indices = [], [] + + for sample in self.dataset_: + distances = [ + utils.get_euclidean_distance(sample, cluster_center) + for cluster_center in cluster_centers + ] + min_index = np.argmin(distances) + distances.append(distances[min_index]) + indices.append(min_index) + + return np.array(distances), np.array(indices) diff --git a/mean_shift/utils.py b/mean_shift/utils.py new file mode 100644 index 0000000..a33df57 --- /dev/null +++ b/mean_shift/utils.py @@ -0,0 +1,39 @@ +from typing import List + +import numpy as np + + +def get_euclidean_distance(sample1: np.ndarray, sample2: np.ndarray) -> float: + if len(sample1) != len(sample2): + raise ValueError("Feature numbers of given samples are not equal.") + + return np.linalg.norm(sample1 - sample2) + + +def get_flat_kernel( + cluster_center: np.ndarray, dataset: np.ndarray, kernel_parameters: List +) -> np.ndarray: + diff_to_center, bandwidth = cluster_center - dataset, kernel_parameters[0] + + return np.array( + [1. if num <= bandwidth else 0. for num in np.sqrt(np.power(diff_to_center, 2).sum(axis=1))] + ) + + +def get_gaussian_kernel( + cluster_center: np.ndarray, dataset: np.ndarray, kernel_parameters: List +) -> np.ndarray: + diff_to_center, beta = cluster_center - dataset, kernel_parameters[0] + + return np.exp(-1. * beta * np.power(diff_to_center, 2).sum(axis=1)) + + +def get_truncated_gaussian_kernel( + cluster_center: np.ndarray, dataset: np.ndarray, kernel_parameters: List +) -> np.ndarray: + diff_to_center, bandwidth, beta = \ + cluster_center - dataset, kernel_parameters[0], kernel_parameters[1] + norm_square = np.power(diff_to_center, 2).sum(axis=1) + gaussian, bool_selector = np.exp(-1. * beta * norm_square), np.sqrt(norm_square) <= bandwidth + + return np.multiply(gaussian, bool_selector) diff --git a/mean_shift/validate.py b/mean_shift/validate.py new file mode 100644 index 0000000..af6863d --- /dev/null +++ b/mean_shift/validate.py @@ -0,0 +1,77 @@ +from typing import List, Type + +import numpy as np +from mean_shift.exceptions import NotFittedError, KernelInputError + + +def validate_data(dataset: np.ndarray, data_type: str) -> np.ndarray: + # Validate input circular-linear data and convert from polar to cartesian coordinates. + # + # Parameters + # ---------- + # dataset : array-like of shape (n_samples, n_features) + # The input samples. + # + # Returns + # ------- + # out : (n_samples, n_features) + # The validated input. The output data is in cartesian coordinates. + if not isinstance(dataset, np.ndarray) or dataset.shape[1] != 2: + raise TypeError( + "Could not find input dataset or dataset type is not correct. " + "Input dataset type should be numpy.ndarray, and with two features: theta, r" + ) + + if data_type == "linear": + return dataset + + if any(theta <= 0 or theta >= 2 * np.pi for theta in dataset[:, 0]): + raise ValueError( + "In circular-linear dataset, theta value should be within range [0, 2*pi]" + ) + + return np.array( + [[sample[1] * np.cos(sample[0]), sample[1] * np.sin(sample[0])] for sample in dataset] + ) + + +def validate_fitted_instance(mean_shift_instance) -> None: + if (mean_shift_instance.cluster_centers_ is None) or (mean_shift_instance.labels_ is None): + raise NotFittedError( + "This instance is not fitted yet. Call 'fit' with " + "appropriate arguments before using mean_shift tool." + ) + + +def validate_kernel_inputs(kernel: str, kernel_parameters: List) -> None: + if kernel_parameters is None or not isinstance(kernel_parameters, list): + raise KernelInputError( + "Could not find Kernel parameter, or input format is wrong. " + "Examples: " + "kernel='flat', kernel_parameters=[1]" + "kernel='gaussian', kernel_parameters=[0.1]" + "kernel='truncated_gaussian', kernel_parameters=[1, 0.1]" + ) + + if kernel in ["flat", "gaussian"] and ( + not len(kernel_parameters) == 1 or + kernel_parameters[0] <= 0): + raise KernelInputError( + "For flat or Gaussian kernel, parameter needs to be float and greater than zero." + ) + + if kernel == "truncated_gaussian" and ( + not len(kernel_parameters) == 2 or + any(parameter <= 0 for parameter in kernel_parameters) + ): + raise KernelInputError( + "Given kernel parameter is wrong. For truncated Gaussian kernel, " + "two parameters are required: beta and bandwidth." + "And parameters needs to be greater than zero, " + ) + + if kernel not in ["flat", "gaussian", "truncated_gaussian"]: + raise KernelInputError( + "Given kernel name is not supported. " + "Available options are: flat, gaussian and truncated_gaussian" + ) diff --git a/poetry.lock b/poetry.lock new file mode 100644 index 0000000..cc17f43 --- /dev/null +++ b/poetry.lock @@ -0,0 +1,873 @@ +[[package]] +name = "astroid" +version = "2.9.0" +description = "An abstract syntax tree for Python with inference support." +category = "dev" +optional = false +python-versions = "~=3.6" + +[package.dependencies] +lazy-object-proxy = ">=1.4.0" +typing-extensions = {version = ">=3.10", markers = "python_version < \"3.10\""} +wrapt = ">=1.11,<1.14" + +[[package]] +name = "atomicwrites" +version = "1.4.0" +description = "Atomic file writes." +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[[package]] +name = "attrs" +version = "21.3.0" +description = "Classes Without Boilerplate" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[package.extras] +dev = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface", "furo", "sphinx", "sphinx-notfound-page", "pre-commit"] +docs = ["furo", "sphinx", "zope.interface", "sphinx-notfound-page"] +tests = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface"] +tests_no_zope = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins"] + +[[package]] +name = "click" +version = "8.0.1" +description = "Composable command line interface toolkit" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + +[[package]] +name = "colorama" +version = "0.4.4" +description = "Cross-platform colored terminal text." +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[[package]] +name = "cycler" +version = "0.11.0" +description = "Composable style cycles" +category = "main" +optional = false +python-versions = ">=3.6" + +[[package]] +name = "fonttools" +version = "4.28.5" +description = "Tools to manipulate font files" +category = "main" +optional = false +python-versions = ">=3.7" + +[package.extras] +all = ["fs (>=2.2.0,<3)", "lxml (>=4.0,<5)", "zopfli (>=0.1.4)", "lz4 (>=1.7.4.2)", "matplotlib", "sympy", "skia-pathops (>=0.5.0)", "brotlicffi (>=0.8.0)", "scipy", "brotli (>=1.0.1)", "munkres", "unicodedata2 (>=13.0.0)", "xattr"] +graphite = ["lz4 (>=1.7.4.2)"] +interpolatable = ["scipy", "munkres"] +lxml = ["lxml (>=4.0,<5)"] +pathops = ["skia-pathops (>=0.5.0)"] +plot = ["matplotlib"] +symfont = ["sympy"] +type1 = ["xattr"] +ufo = ["fs (>=2.2.0,<3)"] +unicode = ["unicodedata2 (>=13.0.0)"] +woff = ["zopfli (>=0.1.4)", "brotlicffi (>=0.8.0)", "brotli (>=1.0.1)"] + +[[package]] +name = "iniconfig" +version = "1.1.1" +description = "iniconfig: brain-dead simple config-ini parsing" +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "isort" +version = "5.10.1" +description = "A Python utility / library to sort Python imports." +category = "dev" +optional = false +python-versions = ">=3.6.1,<4.0" + +[package.extras] +pipfile_deprecated_finder = ["pipreqs", "requirementslib"] +requirements_deprecated_finder = ["pipreqs", "pip-api"] +colors = ["colorama (>=0.4.3,<0.5.0)"] +plugins = ["setuptools"] + +[[package]] +name = "joblib" +version = "1.1.0" +description = "Lightweight pipelining with Python functions" +category = "main" +optional = false +python-versions = ">=3.6" + +[[package]] +name = "kiwisolver" +version = "1.3.2" +description = "A fast implementation of the Cassowary constraint solver" +category = "main" +optional = false +python-versions = ">=3.7" + +[[package]] +name = "lazy-object-proxy" +version = "1.7.1" +description = "A fast and thorough lazy object proxy." +category = "dev" +optional = false +python-versions = ">=3.6" + +[[package]] +name = "matplotlib" +version = "3.5.1" +description = "Python plotting package" +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +cycler = ">=0.10" +fonttools = ">=4.22.0" +kiwisolver = ">=1.0.1" +numpy = ">=1.17" +packaging = ">=20.0" +pillow = ">=6.2.0" +pyparsing = ">=2.2.1" +python-dateutil = ">=2.7" +setuptools_scm = ">=4" + +[[package]] +name = "mccabe" +version = "0.6.1" +description = "McCabe checker, plugin for flake8" +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "mypy" +version = "0.930" +description = "Optional static typing for Python" +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +mypy-extensions = ">=0.4.3" +tomli = ">=1.1.0" +typing-extensions = ">=3.10" + +[package.extras] +dmypy = ["psutil (>=4.0)"] +python2 = ["typed-ast (>=1.4.0,<2)"] + +[[package]] +name = "mypy-extensions" +version = "0.4.3" +description = "Experimental type system extensions for programs checked with the mypy typechecker." +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "numpy" +version = "1.21.5" +description = "NumPy is the fundamental package for array computing with Python." +category = "main" +optional = false +python-versions = ">=3.7,<3.11" + +[[package]] +name = "packaging" +version = "21.3" +description = "Core utilities for Python packages" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +pyparsing = ">=2.0.2,<3.0.5 || >3.0.5" + +[[package]] +name = "pillow" +version = "8.4.0" +description = "Python Imaging Library (Fork)" +category = "main" +optional = false +python-versions = ">=3.6" + +[[package]] +name = "platformdirs" +version = "2.4.1" +description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." +category = "dev" +optional = false +python-versions = ">=3.7" + +[package.extras] +docs = ["Sphinx (>=4)", "furo (>=2021.7.5b38)", "proselint (>=0.10.2)", "sphinx-autodoc-typehints (>=1.12)"] +test = ["appdirs (==1.4.4)", "pytest (>=6)", "pytest-cov (>=2.7)", "pytest-mock (>=3.6)"] + +[[package]] +name = "pluggy" +version = "1.0.0" +description = "plugin and hook calling mechanisms for python" +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.extras] +dev = ["pre-commit", "tox"] +testing = ["pytest", "pytest-benchmark"] + +[[package]] +name = "py" +version = "1.11.0" +description = "library with cross-python path, ini-parsing, io, code, log facilities" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[[package]] +name = "pylint" +version = "2.12.2" +description = "python code static checker" +category = "dev" +optional = false +python-versions = ">=3.6.2" + +[package.dependencies] +astroid = ">=2.9.0,<2.10" +colorama = {version = "*", markers = "sys_platform == \"win32\""} +isort = ">=4.2.5,<6" +mccabe = ">=0.6,<0.7" +platformdirs = ">=2.2.0" +toml = ">=0.9.2" +typing-extensions = {version = ">=3.10.0", markers = "python_version < \"3.10\""} + +[[package]] +name = "pyparsing" +version = "3.0.6" +description = "Python parsing module" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.extras] +diagrams = ["jinja2", "railroad-diagrams"] + +[[package]] +name = "pytest" +version = "6.2.5" +description = "pytest: simple powerful testing with Python" +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +atomicwrites = {version = ">=1.0", markers = "sys_platform == \"win32\""} +attrs = ">=19.2.0" +colorama = {version = "*", markers = "sys_platform == \"win32\""} +iniconfig = "*" +packaging = "*" +pluggy = ">=0.12,<2.0" +py = ">=1.8.2" +toml = "*" + +[package.extras] +testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xmlschema"] + +[[package]] +name = "python-dateutil" +version = "2.8.2" +description = "Extensions to the standard Python datetime module" +category = "main" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" + +[package.dependencies] +six = ">=1.5" + +[[package]] +name = "pyyaml" +version = "5.4.1" +description = "YAML parser and emitter for Python" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" + +[[package]] +name = "scikit-learn" +version = "1.0.1" +description = "A set of python modules for machine learning and data mining" +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +joblib = ">=0.11" +numpy = ">=1.14.6" +scipy = ">=1.1.0" +threadpoolctl = ">=2.0.0" + +[package.extras] +benchmark = ["matplotlib (>=2.2.3)", "pandas (>=0.25.0)", "memory-profiler (>=0.57.0)"] +docs = ["matplotlib (>=2.2.3)", "scikit-image (>=0.14.5)", "pandas (>=0.25.0)", "seaborn (>=0.9.0)", "memory-profiler (>=0.57.0)", "sphinx (>=4.0.1)", "sphinx-gallery (>=0.7.0)", "numpydoc (>=1.0.0)", "Pillow (>=7.1.2)", "sphinx-prompt (>=1.3.0)", "sphinxext-opengraph (>=0.4.2)"] +examples = ["matplotlib (>=2.2.3)", "scikit-image (>=0.14.5)", "pandas (>=0.25.0)", "seaborn (>=0.9.0)"] +tests = ["matplotlib (>=2.2.3)", "scikit-image (>=0.14.5)", "pandas (>=0.25.0)", "pytest (>=5.0.1)", "pytest-cov (>=2.9.0)", "flake8 (>=3.8.2)", "black (>=21.6b0)", "mypy (>=0.770)", "pyamg (>=4.0.0)"] + +[[package]] +name = "scipy" +version = "1.7.3" +description = "SciPy: Scientific Library for Python" +category = "main" +optional = false +python-versions = ">=3.7,<3.11" + +[package.dependencies] +numpy = ">=1.16.5,<1.23.0" + +[[package]] +name = "setuptools-scm" +version = "6.3.2" +description = "the blessed package to manage your versions by scm tags" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +packaging = ">=20.0" +tomli = ">=1.0.0" + +[package.extras] +toml = ["setuptools (>=42)", "tomli (>=1.0.0)"] + +[[package]] +name = "six" +version = "1.16.0" +description = "Python 2 and 3 compatibility utilities" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" + +[[package]] +name = "threadpoolctl" +version = "3.0.0" +description = "threadpoolctl" +category = "main" +optional = false +python-versions = ">=3.6" + +[[package]] +name = "toml" +version = "0.10.2" +description = "Python Library for Tom's Obvious, Minimal Language" +category = "dev" +optional = false +python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" + +[[package]] +name = "tomli" +version = "2.0.0" +description = "A lil' TOML parser" +category = "main" +optional = false +python-versions = ">=3.7" + +[[package]] +name = "typing-extensions" +version = "4.0.1" +description = "Backported and Experimental Type Hints for Python 3.6+" +category = "dev" +optional = false +python-versions = ">=3.6" + +[[package]] +name = "wrapt" +version = "1.13.3" +description = "Module for decorators, wrappers and monkey patching." +category = "dev" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" + +[metadata] +lock-version = "1.1" +python-versions = "3.8" +content-hash = "8106224ed1a31b8c264518d7c5cbc3b3b458f6a4a401757e73a4075a19789428" + +[metadata.files] +astroid = [ + {file = "astroid-2.9.0-py3-none-any.whl", hash = "sha256:776ca0b748b4ad69c00bfe0fff38fa2d21c338e12c84aa9715ee0d473c422778"}, + {file = "astroid-2.9.0.tar.gz", hash = "sha256:5939cf55de24b92bda00345d4d0659d01b3c7dafb5055165c330bc7c568ba273"}, +] +atomicwrites = [ + {file = "atomicwrites-1.4.0-py2.py3-none-any.whl", hash = "sha256:6d1784dea7c0c8d4a5172b6c620f40b6e4cbfdf96d783691f2e1302a7b88e197"}, + {file = "atomicwrites-1.4.0.tar.gz", hash = "sha256:ae70396ad1a434f9c7046fd2dd196fc04b12f9e91ffb859164193be8b6168a7a"}, +] +attrs = [ + {file = "attrs-21.3.0-py2.py3-none-any.whl", hash = "sha256:8f7335278dedd26b58c38e006338242cc0977f06d51579b2b8b87b9b33bff66c"}, + {file = "attrs-21.3.0.tar.gz", hash = "sha256:50f3c9b216dc9021042f71b392859a773b904ce1a029077f58f6598272432045"}, +] +click = [ + {file = "click-8.0.1-py3-none-any.whl", hash = "sha256:fba402a4a47334742d782209a7c79bc448911afe1149d07bdabdf480b3e2f4b6"}, + {file = "click-8.0.1.tar.gz", hash = "sha256:8c04c11192119b1ef78ea049e0a6f0463e4c48ef00a30160c704337586f3ad7a"}, +] +colorama = [ + {file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"}, + {file = "colorama-0.4.4.tar.gz", hash = "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b"}, +] +cycler = [ + {file = "cycler-0.11.0-py3-none-any.whl", hash = "sha256:3a27e95f763a428a739d2add979fa7494c912a32c17c4c38c4d5f082cad165a3"}, + {file = "cycler-0.11.0.tar.gz", hash = "sha256:9c87405839a19696e837b3b818fed3f5f69f16f1eec1a1ad77e043dcea9c772f"}, +] +fonttools = [ + {file = "fonttools-4.28.5-py3-none-any.whl", hash = "sha256:edf251d5d2cc0580d5f72de4621c338d8c66c5f61abb50cf486640f73c8194d5"}, + {file = "fonttools-4.28.5.zip", hash = "sha256:545c05d0f7903a863c2020e07b8f0a57517f2c40d940bded77076397872d14ca"}, +] +iniconfig = [ + {file = "iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3"}, + {file = "iniconfig-1.1.1.tar.gz", hash = "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32"}, +] +isort = [ + {file = "isort-5.10.1-py3-none-any.whl", hash = "sha256:6f62d78e2f89b4500b080fe3a81690850cd254227f27f75c3a0c491a1f351ba7"}, + {file = "isort-5.10.1.tar.gz", hash = "sha256:e8443a5e7a020e9d7f97f1d7d9cd17c88bcb3bc7e218bf9cf5095fe550be2951"}, +] +joblib = [ + {file = "joblib-1.1.0-py2.py3-none-any.whl", hash = "sha256:f21f109b3c7ff9d95f8387f752d0d9c34a02aa2f7060c2135f465da0e5160ff6"}, + {file = "joblib-1.1.0.tar.gz", hash = "sha256:4158fcecd13733f8be669be0683b96ebdbbd38d23559f54dca7205aea1bf1e35"}, +] +kiwisolver = [ + {file = "kiwisolver-1.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:1d819553730d3c2724582124aee8a03c846ec4362ded1034c16fb3ef309264e6"}, + {file = "kiwisolver-1.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8d93a1095f83e908fc253f2fb569c2711414c0bfd451cab580466465b235b470"}, + {file = "kiwisolver-1.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c4550a359c5157aaf8507e6820d98682872b9100ce7607f8aa070b4b8af6c298"}, + {file = "kiwisolver-1.3.2-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:2210f28778c7d2ee13f3c2a20a3a22db889e75f4ec13a21072eabb5693801e84"}, + {file = "kiwisolver-1.3.2-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:82f49c5a79d3839bc8f38cb5f4bfc87e15f04cbafa5fbd12fb32c941cb529cfb"}, + {file = "kiwisolver-1.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9661a04ca3c950a8ac8c47f53cbc0b530bce1b52f516a1e87b7736fec24bfff0"}, + {file = "kiwisolver-1.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2ddb500a2808c100e72c075cbb00bf32e62763c82b6a882d403f01a119e3f402"}, + {file = "kiwisolver-1.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:72be6ebb4e92520b9726d7146bc9c9b277513a57a38efcf66db0620aec0097e0"}, + {file = "kiwisolver-1.3.2-cp310-cp310-win32.whl", hash = "sha256:83d2c9db5dfc537d0171e32de160461230eb14663299b7e6d18ca6dca21e4977"}, + {file = "kiwisolver-1.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:cba430db673c29376135e695c6e2501c44c256a81495da849e85d1793ee975ad"}, + {file = "kiwisolver-1.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:4116ba9a58109ed5e4cb315bdcbff9838f3159d099ba5259c7c7fb77f8537492"}, + {file = "kiwisolver-1.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:19554bd8d54cf41139f376753af1a644b63c9ca93f8f72009d50a2080f870f77"}, + {file = "kiwisolver-1.3.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a7a4cf5bbdc861987a7745aed7a536c6405256853c94abc9f3287c3fa401b174"}, + {file = "kiwisolver-1.3.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0007840186bacfaa0aba4466d5890334ea5938e0bb7e28078a0eb0e63b5b59d5"}, + {file = "kiwisolver-1.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ec2eba188c1906b05b9b49ae55aae4efd8150c61ba450e6721f64620c50b59eb"}, + {file = "kiwisolver-1.3.2-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:3dbb3cea20b4af4f49f84cffaf45dd5f88e8594d18568e0225e6ad9dec0e7967"}, + {file = "kiwisolver-1.3.2-cp37-cp37m-win32.whl", hash = "sha256:5326ddfacbe51abf9469fe668944bc2e399181a2158cb5d45e1d40856b2a0589"}, + {file = "kiwisolver-1.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:c6572c2dab23c86a14e82c245473d45b4c515314f1f859e92608dcafbd2f19b8"}, + {file = "kiwisolver-1.3.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:b5074fb09429f2b7bc82b6fb4be8645dcbac14e592128beeff5461dcde0af09f"}, + {file = "kiwisolver-1.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:22521219ca739654a296eea6d4367703558fba16f98688bd8ce65abff36eaa84"}, + {file = "kiwisolver-1.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:c358721aebd40c243894298f685a19eb0491a5c3e0b923b9f887ef1193ddf829"}, + {file = "kiwisolver-1.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ba5a1041480c6e0a8b11a9544d53562abc2d19220bfa14133e0cdd9967e97af"}, + {file = "kiwisolver-1.3.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:44e6adf67577dbdfa2d9f06db9fbc5639afefdb5bf2b4dfec25c3a7fbc619536"}, + {file = "kiwisolver-1.3.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1d45d1c74f88b9f41062716c727f78f2a59a5476ecbe74956fafb423c5c87a76"}, + {file = "kiwisolver-1.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:70adc3658138bc77a36ce769f5f183169bc0a2906a4f61f09673f7181255ac9b"}, + {file = "kiwisolver-1.3.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:b6a5431940f28b6de123de42f0eb47b84a073ee3c3345dc109ad550a3307dd28"}, + {file = "kiwisolver-1.3.2-cp38-cp38-win32.whl", hash = "sha256:ee040a7de8d295dbd261ef2d6d3192f13e2b08ec4a954de34a6fb8ff6422e24c"}, + {file = "kiwisolver-1.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:8dc3d842fa41a33fe83d9f5c66c0cc1f28756530cd89944b63b072281e852031"}, + {file = "kiwisolver-1.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:a498bcd005e8a3fedd0022bb30ee0ad92728154a8798b703f394484452550507"}, + {file = "kiwisolver-1.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:80efd202108c3a4150e042b269f7c78643420cc232a0a771743bb96b742f838f"}, + {file = "kiwisolver-1.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f8eb7b6716f5b50e9c06207a14172cf2de201e41912ebe732846c02c830455b9"}, + {file = "kiwisolver-1.3.2-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:f441422bb313ab25de7b3dbfd388e790eceb76ce01a18199ec4944b369017009"}, + {file = "kiwisolver-1.3.2-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:30fa008c172355c7768159983a7270cb23838c4d7db73d6c0f6b60dde0d432c6"}, + {file = "kiwisolver-1.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2f8f6c8f4f1cff93ca5058d6ec5f0efda922ecb3f4c5fb76181f327decff98b8"}, + {file = "kiwisolver-1.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ba677bcaff9429fd1bf01648ad0901cea56c0d068df383d5f5856d88221fe75b"}, + {file = "kiwisolver-1.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7843b1624d6ccca403a610d1277f7c28ad184c5aa88a1750c1a999754e65b439"}, + {file = "kiwisolver-1.3.2-cp39-cp39-win32.whl", hash = "sha256:e6f5eb2f53fac7d408a45fbcdeda7224b1cfff64919d0f95473420a931347ae9"}, + {file = "kiwisolver-1.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:eedd3b59190885d1ebdf6c5e0ca56828beb1949b4dfe6e5d0256a461429ac386"}, + {file = "kiwisolver-1.3.2-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:dedc71c8eb9c5096037766390172c34fb86ef048b8e8958b4e484b9e505d66bc"}, + {file = "kiwisolver-1.3.2-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:bf7eb45d14fc036514c09554bf983f2a72323254912ed0c3c8e697b62c4c158f"}, + {file = "kiwisolver-1.3.2-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:2b65bd35f3e06a47b5c30ea99e0c2b88f72c6476eedaf8cfbc8e66adb5479dcf"}, + {file = "kiwisolver-1.3.2-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:25405f88a37c5f5bcba01c6e350086d65e7465fd1caaf986333d2a045045a223"}, + {file = "kiwisolver-1.3.2-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:bcadb05c3d4794eb9eee1dddf1c24215c92fb7b55a80beae7a60530a91060560"}, + {file = "kiwisolver-1.3.2.tar.gz", hash = "sha256:fc4453705b81d03568d5b808ad8f09c77c47534f6ac2e72e733f9ca4714aa75c"}, +] +lazy-object-proxy = [ + {file = "lazy-object-proxy-1.7.1.tar.gz", hash = "sha256:d609c75b986def706743cdebe5e47553f4a5a1da9c5ff66d76013ef396b5a8a4"}, + {file = "lazy_object_proxy-1.7.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bb8c5fd1684d60a9902c60ebe276da1f2281a318ca16c1d0a96db28f62e9166b"}, + {file = "lazy_object_proxy-1.7.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a57d51ed2997e97f3b8e3500c984db50a554bb5db56c50b5dab1b41339b37e36"}, + {file = "lazy_object_proxy-1.7.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd45683c3caddf83abbb1249b653a266e7069a09f486daa8863fb0e7496a9fdb"}, + {file = "lazy_object_proxy-1.7.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:8561da8b3dd22d696244d6d0d5330618c993a215070f473b699e00cf1f3f6443"}, + {file = "lazy_object_proxy-1.7.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fccdf7c2c5821a8cbd0a9440a456f5050492f2270bd54e94360cac663398739b"}, + {file = "lazy_object_proxy-1.7.1-cp310-cp310-win32.whl", hash = "sha256:898322f8d078f2654d275124a8dd19b079080ae977033b713f677afcfc88e2b9"}, + {file = "lazy_object_proxy-1.7.1-cp310-cp310-win_amd64.whl", hash = "sha256:85b232e791f2229a4f55840ed54706110c80c0a210d076eee093f2b2e33e1bfd"}, + {file = "lazy_object_proxy-1.7.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:46ff647e76f106bb444b4533bb4153c7370cdf52efc62ccfc1a28bdb3cc95442"}, + {file = "lazy_object_proxy-1.7.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:12f3bb77efe1367b2515f8cb4790a11cffae889148ad33adad07b9b55e0ab22c"}, + {file = "lazy_object_proxy-1.7.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c19814163728941bb871240d45c4c30d33b8a2e85972c44d4e63dd7107faba44"}, + {file = "lazy_object_proxy-1.7.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:e40f2013d96d30217a51eeb1db28c9ac41e9d0ee915ef9d00da639c5b63f01a1"}, + {file = "lazy_object_proxy-1.7.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:2052837718516a94940867e16b1bb10edb069ab475c3ad84fd1e1a6dd2c0fcfc"}, + {file = "lazy_object_proxy-1.7.1-cp36-cp36m-win32.whl", hash = "sha256:6a24357267aa976abab660b1d47a34aaf07259a0c3859a34e536f1ee6e76b5bb"}, + {file = "lazy_object_proxy-1.7.1-cp36-cp36m-win_amd64.whl", hash = "sha256:6aff3fe5de0831867092e017cf67e2750c6a1c7d88d84d2481bd84a2e019ec35"}, + {file = "lazy_object_proxy-1.7.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:6a6e94c7b02641d1311228a102607ecd576f70734dc3d5e22610111aeacba8a0"}, + {file = "lazy_object_proxy-1.7.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c4ce15276a1a14549d7e81c243b887293904ad2d94ad767f42df91e75fd7b5b6"}, + {file = "lazy_object_proxy-1.7.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e368b7f7eac182a59ff1f81d5f3802161932a41dc1b1cc45c1f757dc876b5d2c"}, + {file = "lazy_object_proxy-1.7.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:6ecbb350991d6434e1388bee761ece3260e5228952b1f0c46ffc800eb313ff42"}, + {file = "lazy_object_proxy-1.7.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:553b0f0d8dbf21890dd66edd771f9b1b5f51bd912fa5f26de4449bfc5af5e029"}, + {file = "lazy_object_proxy-1.7.1-cp37-cp37m-win32.whl", hash = "sha256:c7a683c37a8a24f6428c28c561c80d5f4fd316ddcf0c7cab999b15ab3f5c5c69"}, + {file = "lazy_object_proxy-1.7.1-cp37-cp37m-win_amd64.whl", hash = "sha256:df2631f9d67259dc9620d831384ed7732a198eb434eadf69aea95ad18c587a28"}, + {file = "lazy_object_proxy-1.7.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:07fa44286cda977bd4803b656ffc1c9b7e3bc7dff7d34263446aec8f8c96f88a"}, + {file = "lazy_object_proxy-1.7.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4dca6244e4121c74cc20542c2ca39e5c4a5027c81d112bfb893cf0790f96f57e"}, + {file = "lazy_object_proxy-1.7.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:91ba172fc5b03978764d1df5144b4ba4ab13290d7bab7a50f12d8117f8630c38"}, + {file = "lazy_object_proxy-1.7.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:043651b6cb706eee4f91854da4a089816a6606c1428fd391573ef8cb642ae4f7"}, + {file = "lazy_object_proxy-1.7.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b9e89b87c707dd769c4ea91f7a31538888aad05c116a59820f28d59b3ebfe25a"}, + {file = "lazy_object_proxy-1.7.1-cp38-cp38-win32.whl", hash = "sha256:9d166602b525bf54ac994cf833c385bfcc341b364e3ee71e3bf5a1336e677b55"}, + {file = "lazy_object_proxy-1.7.1-cp38-cp38-win_amd64.whl", hash = "sha256:8f3953eb575b45480db6568306893f0bd9d8dfeeebd46812aa09ca9579595148"}, + {file = "lazy_object_proxy-1.7.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:dd7ed7429dbb6c494aa9bc4e09d94b778a3579be699f9d67da7e6804c422d3de"}, + {file = "lazy_object_proxy-1.7.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:70ed0c2b380eb6248abdef3cd425fc52f0abd92d2b07ce26359fcbc399f636ad"}, + {file = "lazy_object_proxy-1.7.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7096a5e0c1115ec82641afbdd70451a144558ea5cf564a896294e346eb611be1"}, + {file = "lazy_object_proxy-1.7.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:f769457a639403073968d118bc70110e7dce294688009f5c24ab78800ae56dc8"}, + {file = "lazy_object_proxy-1.7.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:39b0e26725c5023757fc1ab2a89ef9d7ab23b84f9251e28f9cc114d5b59c1b09"}, + {file = "lazy_object_proxy-1.7.1-cp39-cp39-win32.whl", hash = "sha256:2130db8ed69a48a3440103d4a520b89d8a9405f1b06e2cc81640509e8bf6548f"}, + {file = "lazy_object_proxy-1.7.1-cp39-cp39-win_amd64.whl", hash = "sha256:677ea950bef409b47e51e733283544ac3d660b709cfce7b187f5ace137960d61"}, + {file = "lazy_object_proxy-1.7.1-pp37.pp38-none-any.whl", hash = "sha256:d66906d5785da8e0be7360912e99c9188b70f52c422f9fc18223347235691a84"}, +] +matplotlib = [ + {file = "matplotlib-3.5.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:456cc8334f6d1124e8ff856b42d2cc1c84335375a16448189999496549f7182b"}, + {file = "matplotlib-3.5.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8a77906dc2ef9b67407cec0bdbf08e3971141e535db888974a915be5e1e3efc6"}, + {file = "matplotlib-3.5.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8e70ae6475cfd0fad3816dcbf6cac536dc6f100f7474be58d59fa306e6e768a4"}, + {file = "matplotlib-3.5.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:53273c5487d1c19c3bc03b9eb82adaf8456f243b97ed79d09dded747abaf1235"}, + {file = "matplotlib-3.5.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e3b6f3fd0d8ca37861c31e9a7cab71a0ef14c639b4c95654ea1dd153158bf0df"}, + {file = "matplotlib-3.5.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e8c87cdaf06fd7b2477f68909838ff4176f105064a72ca9d24d3f2a29f73d393"}, + {file = "matplotlib-3.5.1-cp310-cp310-win32.whl", hash = "sha256:e2f28a07b4f82abb40267864ad7b3a4ed76f1b1663e81c7efc84a9b9248f672f"}, + {file = "matplotlib-3.5.1-cp310-cp310-win_amd64.whl", hash = "sha256:d70a32ee1f8b55eed3fd4e892f0286df8cccc7e0475c11d33b5d0a148f5c7599"}, + {file = "matplotlib-3.5.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:68fa30cec89b6139dc559ed6ef226c53fd80396da1919a1b5ef672c911aaa767"}, + {file = "matplotlib-3.5.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2e3484d8455af3fdb0424eae1789af61f6a79da0c80079125112fd5c1b604218"}, + {file = "matplotlib-3.5.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e293b16cf303fe82995e41700d172a58a15efc5331125d08246b520843ef21ee"}, + {file = "matplotlib-3.5.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:e3520a274a0e054e919f5b3279ee5dbccf5311833819ccf3399dab7c83e90a25"}, + {file = "matplotlib-3.5.1-cp37-cp37m-win32.whl", hash = "sha256:2252bfac85cec7af4a67e494bfccf9080bcba8a0299701eab075f48847cca907"}, + {file = "matplotlib-3.5.1-cp37-cp37m-win_amd64.whl", hash = "sha256:abf67e05a1b7f86583f6ebd01f69b693b9c535276f4e943292e444855870a1b8"}, + {file = "matplotlib-3.5.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6c094e4bfecd2fa7f9adffd03d8abceed7157c928c2976899de282f3600f0a3d"}, + {file = "matplotlib-3.5.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:506b210cc6e66a0d1c2bb765d055f4f6bc2745070fb1129203b67e85bbfa5c18"}, + {file = "matplotlib-3.5.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b04fc29bcef04d4e2d626af28d9d892be6aba94856cb46ed52bcb219ceac8943"}, + {file = "matplotlib-3.5.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:577ed20ec9a18d6bdedb4616f5e9e957b4c08563a9f985563a31fd5b10564d2a"}, + {file = "matplotlib-3.5.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e486f60db0cd1c8d68464d9484fd2a94011c1ac8593d765d0211f9daba2bd535"}, + {file = "matplotlib-3.5.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:b71f3a7ca935fc759f2aed7cec06cfe10bc3100fadb5dbd9c435b04e557971e1"}, + {file = "matplotlib-3.5.1-cp38-cp38-win32.whl", hash = "sha256:d24e5bb8028541ce25e59390122f5e48c8506b7e35587e5135efcb6471b4ac6c"}, + {file = "matplotlib-3.5.1-cp38-cp38-win_amd64.whl", hash = "sha256:778d398c4866d8e36ee3bf833779c940b5f57192fa0a549b3ad67bc4c822771b"}, + {file = "matplotlib-3.5.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:bb1c613908f11bac270bc7494d68b1ef6e7c224b7a4204d5dacf3522a41e2bc3"}, + {file = "matplotlib-3.5.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:edf5e4e1d5fb22c18820e8586fb867455de3b109c309cb4fce3aaed85d9468d1"}, + {file = "matplotlib-3.5.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:40e0d7df05e8efe60397c69b467fc8f87a2affeb4d562fe92b72ff8937a2b511"}, + {file = "matplotlib-3.5.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7a350ca685d9f594123f652ba796ee37219bf72c8e0fc4b471473d87121d6d34"}, + {file = "matplotlib-3.5.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3e66497cd990b1a130e21919b004da2f1dc112132c01ac78011a90a0f9229778"}, + {file = "matplotlib-3.5.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:87900c67c0f1728e6db17c6809ec05c025c6624dcf96a8020326ea15378fe8e7"}, + {file = "matplotlib-3.5.1-cp39-cp39-win32.whl", hash = "sha256:b8a4fb2a0c5afbe9604f8a91d7d0f27b1832c3e0b5e365f95a13015822b4cd65"}, + {file = "matplotlib-3.5.1-cp39-cp39-win_amd64.whl", hash = "sha256:fe8d40c434a8e2c68d64c6d6a04e77f21791a93ff6afe0dce169597c110d3079"}, + {file = "matplotlib-3.5.1-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:34a1fc29f8f96e78ec57a5eff5e8d8b53d3298c3be6df61e7aa9efba26929522"}, + {file = "matplotlib-3.5.1-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:b19a761b948e939a9e20173aaae76070025f0024fc8f7ba08bef22a5c8573afc"}, + {file = "matplotlib-3.5.1-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:6803299cbf4665eca14428d9e886de62e24f4223ac31ab9c5d6d5339a39782c7"}, + {file = "matplotlib-3.5.1-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:14334b9902ec776461c4b8c6516e26b450f7ebe0b3ef8703bf5cdfbbaecf774a"}, + {file = "matplotlib-3.5.1.tar.gz", hash = "sha256:b2e9810e09c3a47b73ce9cab5a72243a1258f61e7900969097a817232246ce1c"}, +] +mccabe = [ + {file = "mccabe-0.6.1-py2.py3-none-any.whl", hash = "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42"}, + {file = "mccabe-0.6.1.tar.gz", hash = "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f"}, +] +mypy = [ + {file = "mypy-0.930-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:221cc94dc6a801ccc2be7c0c9fd791c5e08d1fa2c5e1c12dec4eab15b2469871"}, + {file = "mypy-0.930-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:db3a87376a1380f396d465bed462e76ea89f838f4c5e967d68ff6ee34b785c31"}, + {file = "mypy-0.930-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:1d2296f35aae9802eeb1327058b550371ee382d71374b3e7d2804035ef0b830b"}, + {file = "mypy-0.930-cp310-cp310-win_amd64.whl", hash = "sha256:959319b9a3cafc33a8185f440a433ba520239c72e733bf91f9efd67b0a8e9b30"}, + {file = "mypy-0.930-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:45a4dc21c789cfd09b8ccafe114d6de66f0b341ad761338de717192f19397a8c"}, + {file = "mypy-0.930-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:1e689e92cdebd87607a041585f1dc7339aa2e8a9f9bad9ba7e6ece619431b20c"}, + {file = "mypy-0.930-cp36-cp36m-win_amd64.whl", hash = "sha256:ed4e0ea066bb12f56b2812a15ff223c57c0a44eca817ceb96b214bb055c7051f"}, + {file = "mypy-0.930-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a9d8dffefba634b27d650e0de2564379a1a367e2e08d6617d8f89261a3bf63b2"}, + {file = "mypy-0.930-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:b419e9721260161e70d054a15abbd50603c16f159860cfd0daeab647d828fc29"}, + {file = "mypy-0.930-cp37-cp37m-win_amd64.whl", hash = "sha256:601f46593f627f8a9b944f74fd387c9b5f4266b39abad77471947069c2fc7651"}, + {file = "mypy-0.930-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1ea7199780c1d7940b82dbc0a4e37722b4e3851264dbba81e01abecc9052d8a7"}, + {file = "mypy-0.930-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:70b197dd8c78fc5d2daf84bd093e8466a2b2e007eedaa85e792e513a820adbf7"}, + {file = "mypy-0.930-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:5feb56f8bb280468fe5fc8e6f56f48f99aa0df9eed3c507a11505ee4657b5380"}, + {file = "mypy-0.930-cp38-cp38-win_amd64.whl", hash = "sha256:2e9c5409e9cb81049bb03fa1009b573dea87976713e3898561567a86c4eaee01"}, + {file = "mypy-0.930-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:554873e45c1ca20f31ddf873deb67fa5d2e87b76b97db50669f0468ccded8fae"}, + {file = "mypy-0.930-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0feb82e9fa849affca7edd24713dbe809dce780ced9f3feca5ed3d80e40b777f"}, + {file = "mypy-0.930-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:bc1a0607ea03c30225347334af66b0af12eefba018a89a88c209e02b7065ea95"}, + {file = "mypy-0.930-cp39-cp39-win_amd64.whl", hash = "sha256:f9f665d69034b1fcfdbcd4197480d26298bbfb5d2dfe206245b6498addb34999"}, + {file = "mypy-0.930-py3-none-any.whl", hash = "sha256:bf4a44e03040206f7c058d1f5ba02ef2d1820720c88bc4285c7d9a4269f54173"}, + {file = "mypy-0.930.tar.gz", hash = "sha256:51426262ae4714cc7dd5439814676e0992b55bcc0f6514eccb4cf8e0678962c2"}, +] +mypy-extensions = [ + {file = "mypy_extensions-0.4.3-py2.py3-none-any.whl", hash = "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d"}, + {file = "mypy_extensions-0.4.3.tar.gz", hash = "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"}, +] +numpy = [ + {file = "numpy-1.21.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:301e408a052fdcda5cdcf03021ebafc3c6ea093021bf9d1aa47c54d48bdad166"}, + {file = "numpy-1.21.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a7e8f6216f180f3fd4efb73de5d1eaefb5f5a1ee5b645c67333033e39440e63a"}, + {file = "numpy-1.21.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fc7a7d7b0ed72589fd8b8486b9b42a564f10b8762be8bd4d9df94b807af4a089"}, + {file = "numpy-1.21.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:58ca1d7c8aef6e996112d0ce873ac9dfa1eaf4a1196b4ff7ff73880a09923ba7"}, + {file = "numpy-1.21.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dc4b2fb01f1b4ddbe2453468ea0719f4dbb1f5caa712c8b21bb3dd1480cd30d9"}, + {file = "numpy-1.21.5-cp310-cp310-win_amd64.whl", hash = "sha256:cc1b30205d138d1005adb52087ff45708febbef0e420386f58664f984ef56954"}, + {file = "numpy-1.21.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:08de8472d9f7571f9d51b27b75e827f5296295fa78817032e84464be8bb905bc"}, + {file = "numpy-1.21.5-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:4fe6a006557b87b352c04596a6e3f12a57d6e5f401d804947bd3188e6b0e0e76"}, + {file = "numpy-1.21.5-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:3d893b0871322eaa2f8c7072cdb552d8e2b27645b7875a70833c31e9274d4611"}, + {file = "numpy-1.21.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:341dddcfe3b7b6427a28a27baa59af5ad51baa59bfec3264f1ab287aa3b30b13"}, + {file = "numpy-1.21.5-cp37-cp37m-win32.whl", hash = "sha256:ca9c23848292c6fe0a19d212790e62f398fd9609aaa838859be8459bfbe558aa"}, + {file = "numpy-1.21.5-cp37-cp37m-win_amd64.whl", hash = "sha256:025b497014bc33fc23897859350f284323f32a2fff7654697f5a5fc2a19e9939"}, + {file = "numpy-1.21.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:3a5098df115340fb17fc93867317a947e1dcd978c3888c5ddb118366095851f8"}, + {file = "numpy-1.21.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:311283acf880cfcc20369201bd75da907909afc4666966c7895cbed6f9d2c640"}, + {file = "numpy-1.21.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b545ebadaa2b878c8630e5bcdb97fc4096e779f335fc0f943547c1c91540c815"}, + {file = "numpy-1.21.5-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:c5562bcc1a9b61960fc8950ade44d00e3de28f891af0acc96307c73613d18f6e"}, + {file = "numpy-1.21.5-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:eed2afaa97ec33b4411995be12f8bdb95c87984eaa28d76cf628970c8a2d689a"}, + {file = "numpy-1.21.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:61bada43d494515d5b122f4532af226fdb5ee08fe5b5918b111279843dc6836a"}, + {file = "numpy-1.21.5-cp38-cp38-win32.whl", hash = "sha256:7b9d6b14fc9a4864b08d1ba57d732b248f0e482c7b2ff55c313137e3ed4d8449"}, + {file = "numpy-1.21.5-cp38-cp38-win_amd64.whl", hash = "sha256:dbce7adeb66b895c6aaa1fad796aaefc299ced597f6fbd9ceddb0dd735245354"}, + {file = "numpy-1.21.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:507c05c7a37b3683eb08a3ff993bd1ee1e6c752f77c2f275260533b265ecdb6c"}, + {file = "numpy-1.21.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:00c9fa73a6989895b8815d98300a20ac993c49ac36c8277e8ffeaa3631c0dbbb"}, + {file = "numpy-1.21.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:69a5a8d71c308d7ef33ef72371c2388a90e3495dbb7993430e674006f94797d5"}, + {file = "numpy-1.21.5-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:2d8adfca843bc46ac199a4645233f13abf2011a0b2f4affc5c37cd552626f27b"}, + {file = "numpy-1.21.5-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:c293d3c0321996cd8ffe84215ffe5d269fd9d1d12c6f4ffe2b597a7c30d3e593"}, + {file = "numpy-1.21.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c978544be9e04ed12016dd295a74283773149b48f507d69b36f91aa90a643e5"}, + {file = "numpy-1.21.5-cp39-cp39-win32.whl", hash = "sha256:2a9add27d7fc0fdb572abc3b2486eb3b1395da71e0254c5552b2aad2a18b5441"}, + {file = "numpy-1.21.5-cp39-cp39-win_amd64.whl", hash = "sha256:1964db2d4a00348b7a60ee9d013c8cb0c566644a589eaa80995126eac3b99ced"}, + {file = "numpy-1.21.5-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:a7c4b701ca418cd39e28ec3b496e6388fe06de83f5f0cb74794fa31cfa384c02"}, + {file = "numpy-1.21.5.zip", hash = "sha256:6a5928bc6241264dce5ed509e66f33676fc97f464e7a919edc672fb5532221ee"}, +] +packaging = [ + {file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"}, + {file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"}, +] +pillow = [ + {file = "Pillow-8.4.0-cp310-cp310-macosx_10_10_universal2.whl", hash = "sha256:81f8d5c81e483a9442d72d182e1fb6dcb9723f289a57e8030811bac9ea3fef8d"}, + {file = "Pillow-8.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3f97cfb1e5a392d75dd8b9fd274d205404729923840ca94ca45a0af57e13dbe6"}, + {file = "Pillow-8.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eb9fc393f3c61f9054e1ed26e6fe912c7321af2f41ff49d3f83d05bacf22cc78"}, + {file = "Pillow-8.4.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d82cdb63100ef5eedb8391732375e6d05993b765f72cb34311fab92103314649"}, + {file = "Pillow-8.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:62cc1afda735a8d109007164714e73771b499768b9bb5afcbbee9d0ff374b43f"}, + {file = "Pillow-8.4.0-cp310-cp310-win32.whl", hash = "sha256:e3dacecfbeec9a33e932f00c6cd7996e62f53ad46fbe677577394aaa90ee419a"}, + {file = "Pillow-8.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:620582db2a85b2df5f8a82ddeb52116560d7e5e6b055095f04ad828d1b0baa39"}, + {file = "Pillow-8.4.0-cp36-cp36m-macosx_10_10_x86_64.whl", hash = "sha256:1bc723b434fbc4ab50bb68e11e93ce5fb69866ad621e3c2c9bdb0cd70e345f55"}, + {file = "Pillow-8.4.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:72cbcfd54df6caf85cc35264c77ede902452d6df41166010262374155947460c"}, + {file = "Pillow-8.4.0-cp36-cp36m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:70ad9e5c6cb9b8487280a02c0ad8a51581dcbbe8484ce058477692a27c151c0a"}, + {file = "Pillow-8.4.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:25a49dc2e2f74e65efaa32b153527fc5ac98508d502fa46e74fa4fd678ed6645"}, + {file = "Pillow-8.4.0-cp36-cp36m-win32.whl", hash = "sha256:93ce9e955cc95959df98505e4608ad98281fff037350d8c2671c9aa86bcf10a9"}, + {file = "Pillow-8.4.0-cp36-cp36m-win_amd64.whl", hash = "sha256:2e4440b8f00f504ee4b53fe30f4e381aae30b0568193be305256b1462216feff"}, + {file = "Pillow-8.4.0-cp37-cp37m-macosx_10_10_x86_64.whl", hash = "sha256:8c803ac3c28bbc53763e6825746f05cc407b20e4a69d0122e526a582e3b5e153"}, + {file = "Pillow-8.4.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c8a17b5d948f4ceeceb66384727dde11b240736fddeda54ca740b9b8b1556b29"}, + {file = "Pillow-8.4.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1394a6ad5abc838c5cd8a92c5a07535648cdf6d09e8e2d6df916dfa9ea86ead8"}, + {file = "Pillow-8.4.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:792e5c12376594bfcb986ebf3855aa4b7c225754e9a9521298e460e92fb4a488"}, + {file = "Pillow-8.4.0-cp37-cp37m-win32.whl", hash = "sha256:d99ec152570e4196772e7a8e4ba5320d2d27bf22fdf11743dd882936ed64305b"}, + {file = "Pillow-8.4.0-cp37-cp37m-win_amd64.whl", hash = "sha256:7b7017b61bbcdd7f6363aeceb881e23c46583739cb69a3ab39cb384f6ec82e5b"}, + {file = "Pillow-8.4.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:d89363f02658e253dbd171f7c3716a5d340a24ee82d38aab9183f7fdf0cdca49"}, + {file = "Pillow-8.4.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:0a0956fdc5defc34462bb1c765ee88d933239f9a94bc37d132004775241a7585"}, + {file = "Pillow-8.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5b7bb9de00197fb4261825c15551adf7605cf14a80badf1761d61e59da347779"}, + {file = "Pillow-8.4.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:72b9e656e340447f827885b8d7a15fc8c4e68d410dc2297ef6787eec0f0ea409"}, + {file = "Pillow-8.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a5a4532a12314149d8b4e4ad8ff09dde7427731fcfa5917ff16d0291f13609df"}, + {file = "Pillow-8.4.0-cp38-cp38-win32.whl", hash = "sha256:82aafa8d5eb68c8463b6e9baeb4f19043bb31fefc03eb7b216b51e6a9981ae09"}, + {file = "Pillow-8.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:066f3999cb3b070a95c3652712cffa1a748cd02d60ad7b4e485c3748a04d9d76"}, + {file = "Pillow-8.4.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:5503c86916d27c2e101b7f71c2ae2cddba01a2cf55b8395b0255fd33fa4d1f1a"}, + {file = "Pillow-8.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4acc0985ddf39d1bc969a9220b51d94ed51695d455c228d8ac29fcdb25810e6e"}, + {file = "Pillow-8.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0b052a619a8bfcf26bd8b3f48f45283f9e977890263e4571f2393ed8898d331b"}, + {file = "Pillow-8.4.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:493cb4e415f44cd601fcec11c99836f707bb714ab03f5ed46ac25713baf0ff20"}, + {file = "Pillow-8.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8831cb7332eda5dc89b21a7bce7ef6ad305548820595033a4b03cf3091235ed"}, + {file = "Pillow-8.4.0-cp39-cp39-win32.whl", hash = "sha256:5e9ac5f66616b87d4da618a20ab0a38324dbe88d8a39b55be8964eb520021e02"}, + {file = "Pillow-8.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:3eb1ce5f65908556c2d8685a8f0a6e989d887ec4057326f6c22b24e8a172c66b"}, + {file = "Pillow-8.4.0-pp36-pypy36_pp73-macosx_10_10_x86_64.whl", hash = "sha256:ddc4d832a0f0b4c52fff973a0d44b6c99839a9d016fe4e6a1cb8f3eea96479c2"}, + {file = "Pillow-8.4.0-pp36-pypy36_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9a3e5ddc44c14042f0844b8cf7d2cd455f6cc80fd7f5eefbe657292cf601d9ad"}, + {file = "Pillow-8.4.0-pp36-pypy36_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c70e94281588ef053ae8998039610dbd71bc509e4acbc77ab59d7d2937b10698"}, + {file = "Pillow-8.4.0-pp37-pypy37_pp73-macosx_10_10_x86_64.whl", hash = "sha256:3862b7256046fcd950618ed22d1d60b842e3a40a48236a5498746f21189afbbc"}, + {file = "Pillow-8.4.0-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a4901622493f88b1a29bd30ec1a2f683782e57c3c16a2dbc7f2595ba01f639df"}, + {file = "Pillow-8.4.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:84c471a734240653a0ec91dec0996696eea227eafe72a33bd06c92697728046b"}, + {file = "Pillow-8.4.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:244cf3b97802c34c41905d22810846802a3329ddcb93ccc432870243211c79fc"}, + {file = "Pillow-8.4.0.tar.gz", hash = "sha256:b8e2f83c56e141920c39464b852de3719dfbfb6e3c99a2d8da0edf4fb33176ed"}, +] +platformdirs = [ + {file = "platformdirs-2.4.1-py3-none-any.whl", hash = "sha256:1d7385c7db91728b83efd0ca99a5afb296cab9d0ed8313a45ed8ba17967ecfca"}, + {file = "platformdirs-2.4.1.tar.gz", hash = "sha256:440633ddfebcc36264232365d7840a970e75e1018d15b4327d11f91909045fda"}, +] +pluggy = [ + {file = "pluggy-1.0.0-py2.py3-none-any.whl", hash = "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3"}, + {file = "pluggy-1.0.0.tar.gz", hash = "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159"}, +] +py = [ + {file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"}, + {file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"}, +] +pylint = [ + {file = "pylint-2.12.2-py3-none-any.whl", hash = "sha256:daabda3f7ed9d1c60f52d563b1b854632fd90035bcf01443e234d3dc794e3b74"}, + {file = "pylint-2.12.2.tar.gz", hash = "sha256:9d945a73640e1fec07ee34b42f5669b770c759acd536ec7b16d7e4b87a9c9ff9"}, +] +pyparsing = [ + {file = "pyparsing-3.0.6-py3-none-any.whl", hash = "sha256:04ff808a5b90911829c55c4e26f75fa5ca8a2f5f36aa3a51f68e27033341d3e4"}, + {file = "pyparsing-3.0.6.tar.gz", hash = "sha256:d9bdec0013ef1eb5a84ab39a3b3868911598afa494f5faa038647101504e2b81"}, +] +pytest = [ + {file = "pytest-6.2.5-py3-none-any.whl", hash = "sha256:7310f8d27bc79ced999e760ca304d69f6ba6c6649c0b60fb0e04a4a77cacc134"}, + {file = "pytest-6.2.5.tar.gz", hash = "sha256:131b36680866a76e6781d13f101efb86cf674ebb9762eb70d3082b6f29889e89"}, +] +python-dateutil = [ + {file = "python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"}, + {file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"}, +] +pyyaml = [ + {file = "PyYAML-5.4.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:3b2b1824fe7112845700f815ff6a489360226a5609b96ec2190a45e62a9fc922"}, + {file = "PyYAML-5.4.1-cp27-cp27m-win32.whl", hash = "sha256:129def1b7c1bf22faffd67b8f3724645203b79d8f4cc81f674654d9902cb4393"}, + {file = "PyYAML-5.4.1-cp27-cp27m-win_amd64.whl", hash = "sha256:4465124ef1b18d9ace298060f4eccc64b0850899ac4ac53294547536533800c8"}, + {file = "PyYAML-5.4.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:bb4191dfc9306777bc594117aee052446b3fa88737cd13b7188d0e7aa8162185"}, + {file = "PyYAML-5.4.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:6c78645d400265a062508ae399b60b8c167bf003db364ecb26dcab2bda048253"}, + {file = "PyYAML-5.4.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:4e0583d24c881e14342eaf4ec5fbc97f934b999a6828693a99157fde912540cc"}, + {file = "PyYAML-5.4.1-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:72a01f726a9c7851ca9bfad6fd09ca4e090a023c00945ea05ba1638c09dc3347"}, + {file = "PyYAML-5.4.1-cp36-cp36m-manylinux2014_s390x.whl", hash = "sha256:895f61ef02e8fed38159bb70f7e100e00f471eae2bc838cd0f4ebb21e28f8541"}, + {file = "PyYAML-5.4.1-cp36-cp36m-win32.whl", hash = "sha256:3bd0e463264cf257d1ffd2e40223b197271046d09dadf73a0fe82b9c1fc385a5"}, + {file = "PyYAML-5.4.1-cp36-cp36m-win_amd64.whl", hash = "sha256:e4fac90784481d221a8e4b1162afa7c47ed953be40d31ab4629ae917510051df"}, + {file = "PyYAML-5.4.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:5accb17103e43963b80e6f837831f38d314a0495500067cb25afab2e8d7a4018"}, + {file = "PyYAML-5.4.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:e1d4970ea66be07ae37a3c2e48b5ec63f7ba6804bdddfdbd3cfd954d25a82e63"}, + {file = "PyYAML-5.4.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:cb333c16912324fd5f769fff6bc5de372e9e7a202247b48870bc251ed40239aa"}, + {file = "PyYAML-5.4.1-cp37-cp37m-manylinux2014_s390x.whl", hash = "sha256:fe69978f3f768926cfa37b867e3843918e012cf83f680806599ddce33c2c68b0"}, + {file = "PyYAML-5.4.1-cp37-cp37m-win32.whl", hash = "sha256:dd5de0646207f053eb0d6c74ae45ba98c3395a571a2891858e87df7c9b9bd51b"}, + {file = "PyYAML-5.4.1-cp37-cp37m-win_amd64.whl", hash = "sha256:08682f6b72c722394747bddaf0aa62277e02557c0fd1c42cb853016a38f8dedf"}, + {file = "PyYAML-5.4.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d2d9808ea7b4af864f35ea216be506ecec180628aced0704e34aca0b040ffe46"}, + {file = "PyYAML-5.4.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:8c1be557ee92a20f184922c7b6424e8ab6691788e6d86137c5d93c1a6ec1b8fb"}, + {file = "PyYAML-5.4.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:fd7f6999a8070df521b6384004ef42833b9bd62cfee11a09bda1079b4b704247"}, + {file = "PyYAML-5.4.1-cp38-cp38-manylinux2014_s390x.whl", hash = "sha256:bfb51918d4ff3d77c1c856a9699f8492c612cde32fd3bcd344af9be34999bfdc"}, + {file = "PyYAML-5.4.1-cp38-cp38-win32.whl", hash = "sha256:fa5ae20527d8e831e8230cbffd9f8fe952815b2b7dae6ffec25318803a7528fc"}, + {file = "PyYAML-5.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:0f5f5786c0e09baddcd8b4b45f20a7b5d61a7e7e99846e3c799b05c7c53fa696"}, + {file = "PyYAML-5.4.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:294db365efa064d00b8d1ef65d8ea2c3426ac366c0c4368d930bf1c5fb497f77"}, + {file = "PyYAML-5.4.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:74c1485f7707cf707a7aef42ef6322b8f97921bd89be2ab6317fd782c2d53183"}, + {file = "PyYAML-5.4.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:d483ad4e639292c90170eb6f7783ad19490e7a8defb3e46f97dfe4bacae89122"}, + {file = "PyYAML-5.4.1-cp39-cp39-manylinux2014_s390x.whl", hash = "sha256:fdc842473cd33f45ff6bce46aea678a54e3d21f1b61a7750ce3c498eedfe25d6"}, + {file = "PyYAML-5.4.1-cp39-cp39-win32.whl", hash = "sha256:49d4cdd9065b9b6e206d0595fee27a96b5dd22618e7520c33204a4a3239d5b10"}, + {file = "PyYAML-5.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:c20cfa2d49991c8b4147af39859b167664f2ad4561704ee74c1de03318e898db"}, + {file = "PyYAML-5.4.1.tar.gz", hash = "sha256:607774cbba28732bfa802b54baa7484215f530991055bb562efbed5b2f20a45e"}, +] +scikit-learn = [ + {file = "scikit-learn-1.0.1.tar.gz", hash = "sha256:ac2ca9dbb754d61cfe1c83ba8483498ef951d29b93ec09d6f002847f210a99da"}, + {file = "scikit_learn-1.0.1-cp37-cp37m-macosx_10_13_x86_64.whl", hash = "sha256:116e05fd990d9b363fc29bd3699ec2117d7da9088f6ca9a90173b240c5a063f1"}, + {file = "scikit_learn-1.0.1-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:bd78a2442c948536f677e2744917c37cff014559648102038822c23863741c27"}, + {file = "scikit_learn-1.0.1-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:32d941f12fd7e245f01da2b82943c5ce6f1133fa5375eb80caa51457532b3e7e"}, + {file = "scikit_learn-1.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb7214103f6c36c1371dd8c166897e3528264a28f2e2e42573ba8c61ed4d7142"}, + {file = "scikit_learn-1.0.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:46248cc6a8b72490f723c73ff2e65e62633d14cafe9d2df3a7b3f87d332a6f7e"}, + {file = "scikit_learn-1.0.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:fecb5102f0a36c16c1361ec519a7bb0260776ef40e17393a81f530569c916a7b"}, + {file = "scikit_learn-1.0.1-cp37-cp37m-win32.whl", hash = "sha256:02aee3b257617da0ec98dee9572b10523dc00c25b68c195ddf100c1a93b1854b"}, + {file = "scikit_learn-1.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:538f3a85c4980c7572f3e754f0ba8489363976ef3e7f6a94e8f1af5ae45f6f6a"}, + {file = "scikit_learn-1.0.1-cp38-cp38-macosx_10_13_x86_64.whl", hash = "sha256:59b1d6df8724003fa16b7365a3b43449ee152aa6e488dd7a19f933640bb2d7fb"}, + {file = "scikit_learn-1.0.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:515b227f01f569145dc9f86e56f4cea9f00a613fc4d074bbfc0a92ca00bff467"}, + {file = "scikit_learn-1.0.1-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:fc75f81571137b39f9b31766e15a0e525331637e7fe8f8000a3fbfba7da3add9"}, + {file = "scikit_learn-1.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:648f4dbfdd0a1b45bf6e2e4afe3f431774c55dee05e2d28f8394d6648296f373"}, + {file = "scikit_learn-1.0.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:53bb7c605427ab187869d7a05cd3f524a3015a90e351c1788fc3a662e7f92b69"}, + {file = "scikit_learn-1.0.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:a800665527c1a63f7395a0baae3c89b0d97b54d2c23769c1c9879061bb80bc19"}, + {file = "scikit_learn-1.0.1-cp38-cp38-win32.whl", hash = "sha256:ee59da47e18b703f6de17d5d51b16ce086c50969d5a83db5217f0ae9372de232"}, + {file = "scikit_learn-1.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:ebbe4275556d3c02707bd93ae8b96d9651acd4165126e0ae64b336afa2a6dcb1"}, + {file = "scikit_learn-1.0.1-cp39-cp39-macosx_10_13_x86_64.whl", hash = "sha256:11a57405c1c3514227d0c6a0bee561c94cd1284b41e236f7a1d76b3975f77593"}, + {file = "scikit_learn-1.0.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:a51fdbc116974d9715957366df73e5ec6f0a7a2afa017864c2e5f5834e6f494d"}, + {file = "scikit_learn-1.0.1-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:944f47b2d881b9d24aee40d643bfdc4bd2b6dc3d25b62964411c6d8882f940a1"}, + {file = "scikit_learn-1.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fc60e0371e521995a6af2ef3f5d911568506124c272889b318b8b6e497251231"}, + {file = "scikit_learn-1.0.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:62ce4e3ddb6e6e9dcdb3e5ac7f0575dbaf56f79ce2b2edee55192b12b52df5be"}, + {file = "scikit_learn-1.0.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:059c5be0c0365321ddbcac7abf0db806fad8ecb64ee6c7cbcd58313c7d61634d"}, + {file = "scikit_learn-1.0.1-cp39-cp39-win32.whl", hash = "sha256:c6b9510fd2e1642314efb7aa951a0d05d963f3523e01c30b2dadde2395ebe6b4"}, + {file = "scikit_learn-1.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:c604a813df8e7d6dfca3ae0db0a8fd7e5dff4ea9d94081ab263c81bf0b61ab4b"}, +] +scipy = [ + {file = "scipy-1.7.3-1-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:c9e04d7e9b03a8a6ac2045f7c5ef741be86727d8f49c45db45f244bdd2bcff17"}, + {file = "scipy-1.7.3-1-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:b0e0aeb061a1d7dcd2ed59ea57ee56c9b23dd60100825f98238c06ee5cc4467e"}, + {file = "scipy-1.7.3-1-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:b78a35c5c74d336f42f44106174b9851c783184a85a3fe3e68857259b37b9ffb"}, + {file = "scipy-1.7.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:173308efba2270dcd61cd45a30dfded6ec0085b4b6eb33b5eb11ab443005e088"}, + {file = "scipy-1.7.3-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:21b66200cf44b1c3e86495e3a436fc7a26608f92b8d43d344457c54f1c024cbc"}, + {file = "scipy-1.7.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ceebc3c4f6a109777c0053dfa0282fddb8893eddfb0d598574acfb734a926168"}, + {file = "scipy-1.7.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f7eaea089345a35130bc9a39b89ec1ff69c208efa97b3f8b25ea5d4c41d88094"}, + {file = "scipy-1.7.3-cp310-cp310-win_amd64.whl", hash = "sha256:304dfaa7146cffdb75fbf6bb7c190fd7688795389ad060b970269c8576d038e9"}, + {file = "scipy-1.7.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:033ce76ed4e9f62923e1f8124f7e2b0800db533828c853b402c7eec6e9465d80"}, + {file = "scipy-1.7.3-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:4d242d13206ca4302d83d8a6388c9dfce49fc48fdd3c20efad89ba12f785bf9e"}, + {file = "scipy-1.7.3-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:8499d9dd1459dc0d0fe68db0832c3d5fc1361ae8e13d05e6849b358dc3f2c279"}, + {file = "scipy-1.7.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca36e7d9430f7481fc7d11e015ae16fbd5575615a8e9060538104778be84addf"}, + {file = "scipy-1.7.3-cp37-cp37m-win32.whl", hash = "sha256:e2c036492e673aad1b7b0d0ccdc0cb30a968353d2c4bf92ac8e73509e1bf212c"}, + {file = "scipy-1.7.3-cp37-cp37m-win_amd64.whl", hash = "sha256:866ada14a95b083dd727a845a764cf95dd13ba3dc69a16b99038001b05439709"}, + {file = "scipy-1.7.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:65bd52bf55f9a1071398557394203d881384d27b9c2cad7df9a027170aeaef93"}, + {file = "scipy-1.7.3-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:f99d206db1f1ae735a8192ab93bd6028f3a42f6fa08467d37a14eb96c9dd34a3"}, + {file = "scipy-1.7.3-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:5f2cfc359379c56b3a41b17ebd024109b2049f878badc1e454f31418c3a18436"}, + {file = "scipy-1.7.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eb7ae2c4dbdb3c9247e07acc532f91077ae6dbc40ad5bd5dca0bb5a176ee9bda"}, + {file = "scipy-1.7.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95c2d250074cfa76715d58830579c64dff7354484b284c2b8b87e5a38321672c"}, + {file = "scipy-1.7.3-cp38-cp38-win32.whl", hash = "sha256:87069cf875f0262a6e3187ab0f419f5b4280d3dcf4811ef9613c605f6e4dca95"}, + {file = "scipy-1.7.3-cp38-cp38-win_amd64.whl", hash = "sha256:7edd9a311299a61e9919ea4192dd477395b50c014cdc1a1ac572d7c27e2207fa"}, + {file = "scipy-1.7.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:eef93a446114ac0193a7b714ce67659db80caf940f3232bad63f4c7a81bc18df"}, + {file = "scipy-1.7.3-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:eb326658f9b73c07081300daba90a8746543b5ea177184daed26528273157294"}, + {file = "scipy-1.7.3-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:93378f3d14fff07572392ce6a6a2ceb3a1f237733bd6dcb9eb6a2b29b0d19085"}, + {file = "scipy-1.7.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:edad1cf5b2ce1912c4d8ddad20e11d333165552aba262c882e28c78bbc09dbf6"}, + {file = "scipy-1.7.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d1cc2c19afe3b5a546ede7e6a44ce1ff52e443d12b231823268019f608b9b12"}, + {file = "scipy-1.7.3-cp39-cp39-win32.whl", hash = "sha256:2c56b820d304dffcadbbb6cbfbc2e2c79ee46ea291db17e288e73cd3c64fefa9"}, + {file = "scipy-1.7.3-cp39-cp39-win_amd64.whl", hash = "sha256:3f78181a153fa21c018d346f595edd648344751d7f03ab94b398be2ad083ed3e"}, + {file = "scipy-1.7.3.tar.gz", hash = "sha256:ab5875facfdef77e0a47d5fd39ea178b58e60e454a4c85aa1e52fcb80db7babf"}, +] +setuptools-scm = [ + {file = "setuptools_scm-6.3.2-py3-none-any.whl", hash = "sha256:4c64444b1d49c4063ae60bfe1680f611c8b13833d556fd1d6050c0023162a119"}, + {file = "setuptools_scm-6.3.2.tar.gz", hash = "sha256:a49aa8081eeb3514eb9728fa5040f2eaa962d6c6f4ec9c32f6c1fba88f88a0f2"}, +] +six = [ + {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, + {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, +] +threadpoolctl = [ + {file = "threadpoolctl-3.0.0-py3-none-any.whl", hash = "sha256:4fade5b3b48ae4b1c30f200b28f39180371104fccc642e039e0f2435ec8cc211"}, + {file = "threadpoolctl-3.0.0.tar.gz", hash = "sha256:d03115321233d0be715f0d3a5ad1d6c065fe425ddc2d671ca8e45e9fd5d7a52a"}, +] +toml = [ + {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"}, + {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, +] +tomli = [ + {file = "tomli-2.0.0-py3-none-any.whl", hash = "sha256:b5bde28da1fed24b9bd1d4d2b8cba62300bfb4ec9a6187a957e8ddb9434c5224"}, + {file = "tomli-2.0.0.tar.gz", hash = "sha256:c292c34f58502a1eb2bbb9f5bbc9a5ebc37bee10ffb8c2d6bbdfa8eb13cc14e1"}, +] +typing-extensions = [ + {file = "typing_extensions-4.0.1-py3-none-any.whl", hash = "sha256:7f001e5ac290a0c0401508864c7ec868be4e701886d5b573a9528ed3973d9d3b"}, + {file = "typing_extensions-4.0.1.tar.gz", hash = "sha256:4ca091dea149f945ec56afb48dae714f21e8692ef22a395223bcd328961b6a0e"}, +] +wrapt = [ + {file = "wrapt-1.13.3-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:e05e60ff3b2b0342153be4d1b597bbcfd8330890056b9619f4ad6b8d5c96a81a"}, + {file = "wrapt-1.13.3-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:85148f4225287b6a0665eef08a178c15097366d46b210574a658c1ff5b377489"}, + {file = "wrapt-1.13.3-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:2dded5496e8f1592ec27079b28b6ad2a1ef0b9296d270f77b8e4a3a796cf6909"}, + {file = "wrapt-1.13.3-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:e94b7d9deaa4cc7bac9198a58a7240aaf87fe56c6277ee25fa5b3aa1edebd229"}, + {file = "wrapt-1.13.3-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:498e6217523111d07cd67e87a791f5e9ee769f9241fcf8a379696e25806965af"}, + {file = "wrapt-1.13.3-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:ec7e20258ecc5174029a0f391e1b948bf2906cd64c198a9b8b281b811cbc04de"}, + {file = "wrapt-1.13.3-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:87883690cae293541e08ba2da22cacaae0a092e0ed56bbba8d018cc486fbafbb"}, + {file = "wrapt-1.13.3-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:f99c0489258086308aad4ae57da9e8ecf9e1f3f30fa35d5e170b4d4896554d80"}, + {file = "wrapt-1.13.3-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:6a03d9917aee887690aa3f1747ce634e610f6db6f6b332b35c2dd89412912bca"}, + {file = "wrapt-1.13.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:936503cb0a6ed28dbfa87e8fcd0a56458822144e9d11a49ccee6d9a8adb2ac44"}, + {file = "wrapt-1.13.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:f9c51d9af9abb899bd34ace878fbec8bf357b3194a10c4e8e0a25512826ef056"}, + {file = "wrapt-1.13.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:220a869982ea9023e163ba915077816ca439489de6d2c09089b219f4e11b6785"}, + {file = "wrapt-1.13.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:0877fe981fd76b183711d767500e6b3111378ed2043c145e21816ee589d91096"}, + {file = "wrapt-1.13.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:43e69ffe47e3609a6aec0fe723001c60c65305784d964f5007d5b4fb1bc6bf33"}, + {file = "wrapt-1.13.3-cp310-cp310-win32.whl", hash = "sha256:78dea98c81915bbf510eb6a3c9c24915e4660302937b9ae05a0947164248020f"}, + {file = "wrapt-1.13.3-cp310-cp310-win_amd64.whl", hash = "sha256:ea3e746e29d4000cd98d572f3ee2a6050a4f784bb536f4ac1f035987fc1ed83e"}, + {file = "wrapt-1.13.3-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:8c73c1a2ec7c98d7eaded149f6d225a692caa1bd7b2401a14125446e9e90410d"}, + {file = "wrapt-1.13.3-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:086218a72ec7d986a3eddb7707c8c4526d677c7b35e355875a0fe2918b059179"}, + {file = "wrapt-1.13.3-cp35-cp35m-manylinux2010_i686.whl", hash = "sha256:e92d0d4fa68ea0c02d39f1e2f9cb5bc4b4a71e8c442207433d8db47ee79d7aa3"}, + {file = "wrapt-1.13.3-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:d4a5f6146cfa5c7ba0134249665acd322a70d1ea61732723c7d3e8cc0fa80755"}, + {file = "wrapt-1.13.3-cp35-cp35m-win32.whl", hash = "sha256:8aab36778fa9bba1a8f06a4919556f9f8c7b33102bd71b3ab307bb3fecb21851"}, + {file = "wrapt-1.13.3-cp35-cp35m-win_amd64.whl", hash = "sha256:944b180f61f5e36c0634d3202ba8509b986b5fbaf57db3e94df11abee244ba13"}, + {file = "wrapt-1.13.3-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:2ebdde19cd3c8cdf8df3fc165bc7827334bc4e353465048b36f7deeae8ee0918"}, + {file = "wrapt-1.13.3-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:610f5f83dd1e0ad40254c306f4764fcdc846641f120c3cf424ff57a19d5f7ade"}, + {file = "wrapt-1.13.3-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:5601f44a0f38fed36cc07db004f0eedeaadbdcec90e4e90509480e7e6060a5bc"}, + {file = "wrapt-1.13.3-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:e6906d6f48437dfd80464f7d7af1740eadc572b9f7a4301e7dd3d65db285cacf"}, + {file = "wrapt-1.13.3-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:766b32c762e07e26f50d8a3468e3b4228b3736c805018e4b0ec8cc01ecd88125"}, + {file = "wrapt-1.13.3-cp36-cp36m-win32.whl", hash = "sha256:5f223101f21cfd41deec8ce3889dc59f88a59b409db028c469c9b20cfeefbe36"}, + {file = "wrapt-1.13.3-cp36-cp36m-win_amd64.whl", hash = "sha256:f122ccd12fdc69628786d0c947bdd9cb2733be8f800d88b5a37c57f1f1d73c10"}, + {file = "wrapt-1.13.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:46f7f3af321a573fc0c3586612db4decb7eb37172af1bc6173d81f5b66c2e068"}, + {file = "wrapt-1.13.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:778fd096ee96890c10ce96187c76b3e99b2da44e08c9e24d5652f356873f6709"}, + {file = "wrapt-1.13.3-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:0cb23d36ed03bf46b894cfec777eec754146d68429c30431c99ef28482b5c1df"}, + {file = "wrapt-1.13.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:96b81ae75591a795d8c90edc0bfaab44d3d41ffc1aae4d994c5aa21d9b8e19a2"}, + {file = "wrapt-1.13.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:7dd215e4e8514004c8d810a73e342c536547038fb130205ec4bba9f5de35d45b"}, + {file = "wrapt-1.13.3-cp37-cp37m-win32.whl", hash = "sha256:47f0a183743e7f71f29e4e21574ad3fa95676136f45b91afcf83f6a050914829"}, + {file = "wrapt-1.13.3-cp37-cp37m-win_amd64.whl", hash = "sha256:fd76c47f20984b43d93de9a82011bb6e5f8325df6c9ed4d8310029a55fa361ea"}, + {file = "wrapt-1.13.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b73d4b78807bd299b38e4598b8e7bd34ed55d480160d2e7fdaabd9931afa65f9"}, + {file = "wrapt-1.13.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:ec9465dd69d5657b5d2fa6133b3e1e989ae27d29471a672416fd729b429eb554"}, + {file = "wrapt-1.13.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:dd91006848eb55af2159375134d724032a2d1d13bcc6f81cd8d3ed9f2b8e846c"}, + {file = "wrapt-1.13.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:ae9de71eb60940e58207f8e71fe113c639da42adb02fb2bcbcaccc1ccecd092b"}, + {file = "wrapt-1.13.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:51799ca950cfee9396a87f4a1240622ac38973b6df5ef7a41e7f0b98797099ce"}, + {file = "wrapt-1.13.3-cp38-cp38-win32.whl", hash = "sha256:4b9c458732450ec42578b5642ac53e312092acf8c0bfce140ada5ca1ac556f79"}, + {file = "wrapt-1.13.3-cp38-cp38-win_amd64.whl", hash = "sha256:7dde79d007cd6dfa65afe404766057c2409316135cb892be4b1c768e3f3a11cb"}, + {file = "wrapt-1.13.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:981da26722bebb9247a0601e2922cedf8bb7a600e89c852d063313102de6f2cb"}, + {file = "wrapt-1.13.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:705e2af1f7be4707e49ced9153f8d72131090e52be9278b5dbb1498c749a1e32"}, + {file = "wrapt-1.13.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:25b1b1d5df495d82be1c9d2fad408f7ce5ca8a38085e2da41bb63c914baadff7"}, + {file = "wrapt-1.13.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:77416e6b17926d953b5c666a3cb718d5945df63ecf922af0ee576206d7033b5e"}, + {file = "wrapt-1.13.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:865c0b50003616f05858b22174c40ffc27a38e67359fa1495605f96125f76640"}, + {file = "wrapt-1.13.3-cp39-cp39-win32.whl", hash = "sha256:0a017a667d1f7411816e4bf214646d0ad5b1da2c1ea13dec6c162736ff25a374"}, + {file = "wrapt-1.13.3-cp39-cp39-win_amd64.whl", hash = "sha256:81bd7c90d28a4b2e1df135bfbd7c23aee3050078ca6441bead44c42483f9ebfb"}, + {file = "wrapt-1.13.3.tar.gz", hash = "sha256:1fea9cd438686e6682271d36f3481a9f3636195578bab9ca3382e2f5f01fc185"}, +] diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..858e4cd --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,32 @@ +[tool.poetry] +name = "mean-shift" +version = "0.1.0" +description = "Tool used for mean shift clustering" +authors = ["Yufei Zhu "] + +[tool.poetry.dependencies] +python = "3.8" +PyYAML = "5.4.1" +click = "8.0.1" +numpy = "1.21.5" +matplotlib = "3.5.1" +scikit-learn = "1.0.1" +joblib = "1.1.0" + +[tool.poetry.dev-dependencies] +mypy = "0.930" +pytest = "6.2.5" +pylint = "2.12.2" + +[tool.pylint.master] +max-line-length = 100 + +[tool.pylint.messages_control] +disable = "too-many-arguments, missing-docstring" + +[tool.mypy] +check_untyped_defs = true + +[build-system] +requires = ["poetry-core>=1.0.0"] +build-backend = "poetry.core.masonry.api" diff --git a/reporter.py b/reporter.py new file mode 100644 index 0000000..cd3128c --- /dev/null +++ b/reporter.py @@ -0,0 +1,67 @@ +import csv + +from mean_shift.mean_shift import MeanShift +import numpy as np +import matplotlib.pyplot as plt # type: ignore +import matplotlib.colors as mcolors # type: ignore +import time +import random + + +def generate_circular_shape_dataset(): + with open("datasets/data5.csv", "w", newline="") as csvfile: + fieldnames = ['theta', 'r'] + writer = csv.DictWriter(csvfile, fieldnames=fieldnames) + writer.writeheader() + for i in range(300): + writer.writerow({'theta': 2 * np.pi * random.random(), 'r': 8 + 2 * random.random()}) + for i in range(300): + writer.writerow({'theta': 2 * np.pi * random.random(), 'r': 4 + 2 * random.random()}) + + +def save_input(file_name): + with open(file_name, "r") as f: + input_string = f.read() + return input_string.splitlines()[1:] + + +def convert_mean(mean): + x, y = mean[0], mean[1] + return [np.arctan2(y, x), np.sqrt(x ** 2 + y ** 2)] + + +def main(): + colors = list(mcolors.TABLEAU_COLORS) + list(mcolors.CSS4_COLORS) + file_name = "datasets/data1.csv" + input_data = save_input(file_name) + dataset = np.array([list(map(float, line.split(","))) for line in input_data]) + + fig = plt.figure() + + start_time = time.time() + mean_shifter = MeanShift(kernel="flat", kernel_parameters=[3], data_type="circular-linear") + mean_shifter.fit(dataset) + print("--- %s seconds ---" % (time.time() - start_time)) + centers = mean_shifter.cluster_centers_ + label = mean_shifter.labels_ + means = [convert_mean(mean_shifter.get_cluster_info(np.array(center))[0]) for center in centers] + n_sample, _ = dataset.shape + + ax = fig.add_subplot(1, 2, 1) + polar_ax = fig.add_subplot(1, 2, 2, projection="polar") + ax.set_xlim([0, 2*np.pi]) + ax.set_xticks([0, np.pi, 2*np.pi]) + ax.set_xticklabels([r'$0$', r'$\pi$', r'$2\pi$']) + for i in range(n_sample): + ax.plot(dataset[i][0], dataset[i][1], "o", color=colors[label[i]], markersize=3) + for i in range(n_sample): + polar_ax.plot(dataset[i][0], dataset[i][1], "o", color=colors[label[i]], markersize=3) + for mean in means: + # ax.plot(mean[0], mean[1], "o", color="r", markersize=4) + polar_ax.plot(mean[0], mean[1], "o", color="r", markersize=4) + + plt.show() + + +if __name__ == "__main__": + main() diff --git a/tests/__pycache__/test_mean_shift.cpython-38-pytest-6.2.5.pyc b/tests/__pycache__/test_mean_shift.cpython-38-pytest-6.2.5.pyc new file mode 100644 index 0000000..af1bedd Binary files /dev/null and b/tests/__pycache__/test_mean_shift.cpython-38-pytest-6.2.5.pyc differ diff --git a/tests/__pycache__/test_utils.cpython-38-pytest-6.2.5.pyc b/tests/__pycache__/test_utils.cpython-38-pytest-6.2.5.pyc new file mode 100644 index 0000000..e0e9607 Binary files /dev/null and b/tests/__pycache__/test_utils.cpython-38-pytest-6.2.5.pyc differ diff --git a/tests/__pycache__/test_validate.cpython-38-pytest-6.2.5.pyc b/tests/__pycache__/test_validate.cpython-38-pytest-6.2.5.pyc new file mode 100644 index 0000000..0575df9 Binary files /dev/null and b/tests/__pycache__/test_validate.cpython-38-pytest-6.2.5.pyc differ diff --git a/tests/test_mean_shift.py b/tests/test_mean_shift.py new file mode 100644 index 0000000..068c6cc --- /dev/null +++ b/tests/test_mean_shift.py @@ -0,0 +1,45 @@ +import numpy as np + +from mean_shift.mean_shift import MeanShift + + +DATASET = np.array([[1, 1], [2, 1], [1, 0], [4, 7], [3, 5], [3, 6]]) +TEST_DATASET = np.array([[0, 0], [2, 2]]) + + +def test_flat_kernel(): + mean_shift_cluster = MeanShift(kernel="flat", kernel_parameters=[2], data_type="linear") + mean_shift_cluster.fit(DATASET) + result = [mean_shift_cluster.cluster_centers_.tolist(), mean_shift_cluster.labels_.tolist()] + expected = [[[3.33, 6.], [1.33, 0.67]], [1, 1, 1, 0, 0, 0]] + + assert result == expected + + +def test_gaussian_kernel(): + mean_shift_cluster = MeanShift(kernel="gaussian", kernel_parameters=[0.25], data_type="linear") + mean_shift_cluster.fit(DATASET) + result = [mean_shift_cluster.cluster_centers_.tolist(), mean_shift_cluster.labels_.tolist()] + expected = [[[3.27, 5.95], [1.33, 0.69]], [1, 1, 1, 0, 0, 0]] + + assert result == expected + + +def test_truncated_gaussian_kernel(): + mean_shift_cluster = MeanShift( + kernel="truncated_gaussian", kernel_parameters=[1, 0.25], data_type="linear" + ) + mean_shift_cluster.fit(DATASET) + result = [mean_shift_cluster.cluster_centers_.tolist(), mean_shift_cluster.labels_.tolist()] + expected = [[[1.32, 0.68], [3., 5.5], [4., 7.]], [0, 0, 0, 2, 1, 1]] + + assert result == expected + + +def test_mean_shift_cluster_predict(): + mean_shift_cluster = MeanShift(kernel="flat", kernel_parameters=[2], data_type="linear") + mean_shift_cluster.fit(DATASET) + result = mean_shift_cluster.predict(TEST_DATASET).tolist() + expected = [1, 1] + + assert result == expected diff --git a/tests/test_utils.py b/tests/test_utils.py new file mode 100644 index 0000000..d33a63e --- /dev/null +++ b/tests/test_utils.py @@ -0,0 +1,34 @@ +import numpy as np + +from mean_shift import utils + + +DATASET = np.array([[1, 1], [2, 1], [1, 0], [4, 7], [3, 5], [3, 6]]) + + +def test_get_euclidean_distance(): + result = np.round(utils.get_euclidean_distance(np.array([1,1]), np.array([2,2])), 2) + expected = 1.41 + + assert result == expected + + +def test_get_flat_kernel(): + result = utils.get_flat_kernel(np.array([1, 1]), DATASET, [2]).tolist() + expected = [1., 1., 1., 0., 0., 0.] + + assert result == expected + + +def test_get_gaussian_kernel(): + result = np.round(utils.get_gaussian_kernel(np.array([1, 1]), DATASET, [0.25]), 2).tolist() + expected = [1., 0.78, 0.78, 0., 0.01, 0.] + + assert result == expected + + +def test_get_truncated_gaussian_kernel(): + result = np.round(utils.get_truncated_gaussian_kernel(np.array([3, 6]), DATASET, [2, 0.25]), 2).tolist() + expected = [0., 0., 0., 0.61, 0.78, 1.] + + assert result == expected diff --git a/tests/test_validate.py b/tests/test_validate.py new file mode 100644 index 0000000..c5def0a --- /dev/null +++ b/tests/test_validate.py @@ -0,0 +1,13 @@ +import numpy as np + +from mean_shift.validate import validate_data + + +DATASET = np.array([[0, 1], [np.pi, 1], [-1.2, 4]]) + + +def test_validate_data(): + result = np.round(validate_data(DATASET, data_type="linear"), 2).tolist() + expected = [[0., 1.], [3.14, 1.], [-1.2, 4.]] + + assert result == expected