In [1]:
%matplotlib inline
from matplotlib import rcParams
rcParams["savefig.dpi"] = 100

In [28]:
from collections import Counter

import os
import time
import tqdm
import corner
import numpy as np
import pandas as pd
from functools import partial
import matplotlib.pyplot as plt
from scipy.stats import ks_2samp, gaussian_kde
from sklearn.decomposition import PCA

In [11]:
from exoabc import Simulator, data

In [13]:
period_range = (50, 300)
prad_range = (0.75, 2.5)
depth_range = (0, 1000)
maxn = 5

In [15]:
prefix = "q1_q16"
stlr = data.get_burke_gk(prefix=prefix).iloc[:5000]
kois = data.get_candidates(stlr=stlr, prefix=prefix)

In [16]:
sim = Simulator(
    stlr,
    period_range[0], period_range[1], 0.0,
    prad_range[0], prad_range[1], -2.0,
    -3.0, np.zeros(maxn),
    min_period_slope=-5.0, max_period_slope=3.0,
    min_radius_slope=-5.0, max_radius_slope=3.0,
    min_log_sigma=-5.0, max_log_sigma=np.log(np.radians(90)),
    min_log_multi=-5.0, max_log_multi=3.0,
    release=prefix,
    seed=int(os.getpid() + 1000*time.time()) % 20000,
)




In [22]:
def compute_stats(catalog):
    m = (period_range[0] <= catalog.koi_period) & (catalog.koi_period <= period_range[1])
    m &= (prad_range[0] <= catalog.koi_prad) & (catalog.koi_prad <= prad_range[1])
    m &= (depth_range[0] <= catalog.koi_depth) & (catalog.koi_depth <= depth_range[1])
    c = catalog[m]
    
    # Multiplicity
    h = Counter(Counter(c.kepid).values())
    hist = np.zeros(maxn+1, dtype=int)
    for i in range(1, maxn+1):
        hist[i] = h.get(i, 0)
    hist[0] = len(stlr) - np.sum(hist[1:])
    
    return hist, np.array(c.koi_period), np.array(c.koi_depth), np.array(c.koi_duration)

def compute_distance(ds1, ds2):
    norm = max(np.max(ds1[0]), np.max(ds2[0]))
    multi_dist = np.sum((np.log(ds1[0]+1) - np.log(ds2[0]+1))**2.0)
    period_dist = ks_2samp(ds1[1], ds2[1]).statistic
    depth_dist = ks_2samp(ds1[2], ds2[2]).statistic
    
    return multi_dist + period_dist + depth_dist

In [23]:
obs_stats = compute_stats(kois)

In [24]:
obs_stats


Out[24]:
(array([4995,    5,    0,    0,    0,    0]),
 array([ 105.0141157,  180.92477  ,   54.2812031,   88.0712696,   54.4092333]),
 array([ 287.3,  696.1,  155. ,  955. ,  230.3]),
 array([ 6.287,  8.552,  5.317,  6.772,  9.511]))

In [47]:
def sample(initial=None):
    if initial is None:
        lp = sim.sample_parameters()
        if not np.isfinite(lp):
            return np.inf, sim.get_parameters(), sim.state
    else:
        lp = sim.set_parameters(initial)
        if not np.isfinite(lp):
            return np.inf, sim.get_parameters(), sim.state

    pars, state = sim.get_parameters(), sim.state
    df = sim.sample_population()
    if len(df) <= 1:
        return np.inf, pars, state
    return compute_distance(obs_stats, compute_stats(df)), pars, state

In [97]:
n = 5000
initial_distances, inital_theta, _ = map(np.array, zip(*[sample() for _ in tqdm.tqdm(range(n), total=n)]))




In [99]:
m = np.isfinite(initial_distances)

In [104]:
q = np.percentile(initial_distances[m], 10)
print(q)


0.983241190128

In [105]:
plt.hist(initial_distances[m], 50, color="k", histtype="step")
plt.gca().axvline(q, color="g", lw=1.5);



In [106]:
def mh(log_p_func, theta0, niter, sigma=(1e-6, 1e-1)):
    ndim = len(theta0)
    theta = np.array(theta0)
    chain = np.empty((niter, ndim))
    lp = log_p_func(theta0)
    acc = 0
    for i in tqdm.tqdm(range(niter), total=niter):
        q = np.array(theta)
        ind = np.random.randint(ndim)
        q[ind] += np.exp(np.random.uniform(*(np.log(sigma)))) * np.random.randn()
        lq = log_p_func(q)

        u = np.log(np.random.rand())
        if u < lq - lp:
            theta = q
            lp = lq
            acc += 1
        
        chain[i] = theta

    return chain, acc / niter

In [107]:
def pseudo_likelihood(S, eps, params):
    dist = np.array([sample(params)[0] for _ in range(S)])
    return np.logaddexp.reduce(-0.5 * (dist / eps)**2)

In [123]:
pseudo_likelihood_func = partial(pseudo_likelihood, 5, 0.15)

In [124]:
p0 = inital_theta[np.argmin(initial_distances)]
samples, acc = mh(pseudo_likelihood_func, p0, 10000, sigma=(1e-2, 2.0))
print(acc)



0.0144

In [125]:
plt.plot(samples[:, 4])


Out[125]:
[<matplotlib.lines.Line2D at 0x12a7abfd0>]

In [126]:
corner.corner(samples);



In [ ]:


In [ ]:


In [ ]:


In [ ]:


In [343]:
n = 10
samples = [sample() for _ in tqdm.tqdm(range(n), total=n)]




In [344]:
samples


Out[344]:
[((5.4165319507509428, 0.33301670488044549, 0.14693743858499836),
  array([-2.68672637,  1.36058009, -2.12645659, -7.43848629,  4.37005485]),
  b'2874933442 2015980857 1674764450 306543789 1251343460 1074267216 1108467715 1834239306 2404554191 1405780039 422688259 2374837923 721242642 1776171731 525990296 2660649060 1872800491 3426354372 891720759 1660552100 427391983 3161964568 2136141846 1351920199 1976175101 2005805193 4198868785 4268241523 1182251549 966973663 40289898 1362013510 31824690 146285273 1885476611 3330072568 2329946635 2805253744 3226689677 2896297705 3920789448 874813020 2993013263 2297509008 2211530002 2999299152 1005090673 2068699049 3558632518 3734536061 2290872228 465201368 3279241822 2099858825 2990944056 2776016342 2461177302 3593012495 4072416016 2887645247 490139637 2649069074 2030342066 916803109 4179309806 4180783926 2948006910 2017551920 1868572018 772183313 3450720183 1760212043 1935276135 4089631534 1175803924 3883012658 2215198563 1002626505 3197061868 2006504371 2365260279 2105182791 1818792319 1997072101 3813750765 1207353352 3186927412 1250621562 929821963 885614190 3918389305 2435941918 3055304713 1683689837 1387393032 1743194931 2561080413 3115570783 1883057989 3286512108 1005563445 1737448808 2903767491 935277671 3043086736 497417479 2027698804 1486113588 1412118263 461432318 2358101266 2563078253 3827700106 69946826 2088054161 153905780 1586129261 522530332 2552172196 218821726 2319794039 1540464565 2259101649 2097764955 904528126 457150295 983338526 3774297060 1093959682 2998453847 4051371160 594081406 2773658150 3526763339 2882107287 1436982949 569662613 4234694551 345231654 1919245146 3101878842 326563166 1999888538 3191090150 2420684000 2239282664 2620733933 2835396306 1317999735 3985227875 2295149555 3809201516 3319845331 2198848690 3518366796 177392312 1564271463 3337065065 2433215872 1377928178 901848542 2250981599 2856640903 3555401127 2557009880 3622540674 3557222144 2615040528 703605146 474748710 65354272 2696856299 905867063 4018395243 4258455125 3606905634 2803280458 257580488 1840618918 2105856179 962236233 1948204435 1490984175 3740904836 4022561407 4122121586 2024798764 3288956523 2417041078 1157176969 751836177 1444548981 3798987609 3454578860 2956969620 3869811436 287941717 2764704023 1680646812 3674405152 1767939630 3662307423 4186372255 2438198073 4093081374 2191166185 3576189964 3945037209 372992233 1778160049 3486043165 3612313306 3595140374 3349036296 275069410 1252893858 4049554521 333211118 2992705824 3986064488 696256377 3529378631 1889521343 2724922621 264264727 984119722 3165954954 102918762 3387438057 2689247129 1796739496 2845154324 1574104613 1689605805 2297486424 4104499969 857004343 2224297388 403888393 695324137 1702913652 1363958352 2964814344 659805756 411331894 2960986807 3052281098 1203792499 2665652640 3721331959 2159748954 1577211442 3723593536 2893368318 3974770285 3077737352 3172508257 3694037273 3742927566 983509021 2325181672 1870486195 1764829088 691127786 2550263141 16589978 3128034692 2834742707 1373566861 3384277887 2068413498 3837252698 1120568427 1373555295 3650753955 956393344 2625417572 2802180266 3244097801 33058468 1557442875 2361085000 1169111928 3830393980 3674622909 3058415193 935719595 3512219398 1999180945 570277069 2237462976 1376706928 3489691313 939792003 3529334867 1733838736 3230358602 533874620 3404735270 2081391321 2648655115 68220413 3947762263 341598635 857547221 2921964711 2883480519 3335470662 279285571 4165368549 3152297367 1084707247 1355565412 3287111282 1231270136 3685551475 2848312063 1530228787 329212540 2188204143 2540378676 1793149925 800900109 2104103038 2957547448 821656656 4250685320 331919132 2086793770 558618438 3452726670 3748861355 4084234205 3495966817 3208754143 2578240018 1336963335 2909833671 1488269818 731223378 2904142569 1457382948 1615535816 2416359647 3138138292 2834628680 1286095082 444574080 1774850566 4115462840 895016411 1022061367 862217575 1168011652 1847336307 3711302378 3262153608 824064502 1205809325 803517991 3329328811 4276001362 1727880821 3215639690 2503021357 2884932397 4049637068 1925775716 4072525843 2692955496 1109205907 2779544611 279158056 2342225082 3023055066 1536219759 1109499742 3374505451 2947437682 699081065 4240169506 684637906 2077067965 727620314 208480891 3171413845 2044977322 2618068260 1296500974 3181808825 387527745 84955355 2996216410 3098324720 823453821 3758025519 2461346012 960643461 1557347039 415586894 3271911069 183913159 3131269459 1269632366 1278522689 3579722849 4141400058 169191247 2566279810 1339603796 4278859763 1546830266 2699639353 2735785091 2041114947 1705777749 1777960243 735141533 748740607 2597902912 792517451 106653830 3704347487 1116923664 1266198886 2212903008 733996226 4130377157 2418467791 3096472146 1957807490 1420605618 3121290005 495916566 4048051620 2037799819 3142216501 2251185359 532784135 3671774753 678556137 3529558718 2349843721 2153513512 616408658 1169706199 2712429127 108871510 1195332657 2238420616 1746918156 2127830585 2503302355 2225207618 3995965999 2887963987 2032740970 4256051973 2999138652 2248448465 2183236776 3084019025 254236851 3397028634 226343981 3668973681 3525838556 2722506663 4012384592 3138201469 1749797416 2853006236 155583093 3562311418 3819201430 4179017066 2087842588 132046009 796738468 542555235 2462638435 2673840024 1216713815 1770829837 297025852 1572247375 3028898895 4113799325 1458094622 2053610818 2291321786 3795880038 466384957 2509744616 775472248 555950981 3834590593 2550477564 575756323 3228291600 1989363777 3317899394 92576674 2438461921 1987134337 481797767 115885114 4030060363 543900537 3995986809 51489154 721977230 4234469700 3273232603 345754511 1800200396 2500490008 2328884094 3116726743 3158401154 326434184 1069218213 1019475897 3556495712 3922989637 3388316871 3398750073 3387067335 4088765125 1709840910 950327096 2505621542 392356370 2117893724 3408562069 3485819951 3953846051 3060888557 1492085861 3759195982 3824165389 1532158529 2581421708 2512990078 382583136 4155471151 2930954710 1630570609 572218488 3677135711 1283778327 1528416412 314243560 3491099091 2718735716 2907927301 774983437 3705054006 2323656022 2089314297 310566882 1231677385 3676807685 2876794667 333660370 3633985726 254922572 3638295178 2222586510 3672137650 3233243153 525315874 615260225 672957282 2336378304 2551285045 3812197047 567459437 2012684606 15197654 1598892983 1602115193 4039679484 3373412191 2865260445 1135658197 267659128 2166372080 182206678 784951485 3680066004 2692340781 1179283422 3049025567 3942158958 4137542610 2839489828 166053587 2740805486 1796230091 1361477308 796039895 1766795504 484950447 4237584241 1408092473 2349430775 2669603912 987523204 256562301 616655019 2984498881 1702348347 370046486 4059602286 730148926 2190392361 3876980285 958962082 2821874943 2024696451 470882746 3993380791 2266704061'),
 ((0.8309779419568486, 0.46231937077007501, 0.24227181269434794),
  array([ 1.05366227,  1.80207682, -0.06279645,  5.3879682 , -5.1600067 ]),
  b'1599588192 3351382619 886910690 3502741868 3242668046 640422345 2275575755 629780827 178727612 3947299198 3224289072 3416414738 26095845 291490322 3703983377 2748528546 3671514195 3464075792 2857528227 3085957340 1572139223 4102634715 2252087362 1683351524 3849187960 3177697039 686165601 3667462282 369393544 3309408208 669428729 2961761284 2490169752 2662794950 2782468302 2820333106 3870366749 611308883 443783083 3417840518 1020518884 1569848857 1104197673 1914472493 1885014513 1567503129 1708434112 2508219901 240018299 928099124 265246256 2444783661 2598697946 329730651 3193874688 1843747879 2315066996 1093503249 47883053 1227943006 218486925 2149890089 2638178262 1369082322 3663364178 3789575565 3782905302 2244341286 395380941 2370555104 3122884154 1328881486 3741239358 1101654409 2845706282 2992356888 849358384 1976455058 1306304102 3497624274 361426242 2371255096 428259127 2855560237 580639728 3911794626 733289928 3471308508 2159326275 569926155 4283477787 4134932564 1983658419 919952876 2635143222 2864953960 2075883024 2470492397 923503337 2210449407 1182160231 934083572 2193669313 3041253964 2348062202 582383786 1661070929 106662658 979829261 2666321013 2914056881 336634322 3112852719 558139392 1464012941 2338342916 2272745608 880144339 2965901396 1435977676 1169265960 451940846 3619880412 4250112069 3509775854 1979162017 3022188374 886374158 2656441448 3521232278 3433025333 709878484 1294310366 416211165 795964604 305205044 3491783857 3557772730 1507096223 3672204599 377026065 661201196 76026504 2546352739 502514986 3813154859 2690302401 1102160165 2352373536 2642415073 3269752967 2021713275 4022616573 717133323 1225876654 1973316197 3179063099 2705075617 2951793846 2895754072 2178131986 3675406586 1463437499 4164803146 893530713 1317318708 2359378266 1441783062 3434061181 1273207997 2225991719 404844543 16459148 3528433986 2267587147 4232064291 3631650570 1010576779 1123253281 715654036 1805869583 1389590378 1133891670 691841807 1917232798 4067717473 1571659994 1528821684 3340714390 93188290 3602177988 950243514 3705028843 523404927 887302347 3194967450 3813182619 34873789 3848754684 4287931631 4026025503 916545453 3165661999 1945647584 3946793242 3604452215 242570778 2114945745 3675955840 1395064036 2439843524 3399247194 1316929980 3727565182 122418088 4249711272 2059998813 165992202 3144945408 1324772920 3632703615 3526350498 2320257256 1012839232 2059610554 170823446 3540873331 1326249835 3241148519 4182231883 4177464536 1627020403 2709817497 1835410902 3973157554 1344732753 4038696472 3003694945 431262074 3259185705 2964332378 633275562 4052572072 4085349384 3222133385 1539003416 1395302322 3695912293 1362515079 2734186614 540078893 3965314437 1200829595 2898348870 2771886925 692239687 92406802 2026604600 2278077048 2264636755 1975547505 3671054514 1530183707 2079026425 2369471783 3316473321 475346679 1804873454 1837142267 1777982942 422733922 3192255999 3964981437 2774582620 4065318234 656278944 679480012 235225271 557416961 1258905927 4048214477 1826365262 1140612999 3192296845 2618394171 3474394729 2074477639 241706885 990989825 3497978871 3264598434 3218879620 3389799557 2614452585 2224491218 1549102187 3474955091 1472205125 2906238575 3431788846 2595577769 3616974933 2271430745 428588375 117244557 2922993359 1319608842 731699316 2495008919 1653467279 3606287284 3383136705 3616971938 1658524938 147978535 1499467228 1042118045 838244773 3696096903 895346489 4129514769 2817912272 252092173 3079708443 3631125104 3383710630 928485012 3652678376 3990377996 83148335 1830880313 3188260107 2349320598 4176860584 3846759658 741585642 3227959290 278876248 3232689786 1608100335 3726895631 1186347356 3456781780 2811793073 976357719 1617510898 1642209365 3744769175 2869912190 3971956199 968754130 1253705950 1952272641 1510435069 2578782435 1221349150 2045600082 53668267 3726952782 3108355798 576255414 2959385371 4257192594 2942099484 70879269 101721496 1484991605 1114026973 3274515776 593571275 3629558774 4160580299 1845097694 1420331157 1287161844 936956489 3725497680 110473718 2574202406 3082436839 4021052342 1995662844 381430843 2881876024 435776027 3940982406 2431416791 3986237011 1165382898 4117427832 974103306 1604762482 2801068569 2491239945 2803010568 632679281 3290972744 1670681964 1222799760 1375920344 1485783747 3047852539 2965377119 192744626 2525876050 1687003565 1367662672 1973408638 4189607773 3525599543 674936015 1249945625 2296238721 984518432 844196885 1377952944 3978084041 60949638 4179660716 1460193202 1618705660 1482931674 1812738967 2219736836 2051894852 473414904 1993796617 679747691 3512883889 2281646147 536710286 1219407310 4145062086 3563447526 881283691 770097706 3442601828 2272927972 1249218710 2226148244 1269183312 2740251572 3932869041 3071895813 2352255629 3316321871 173269052 2303187735 2612843592 2975903503 1181041809 3600479633 953314413 2702561732 3573904606 1314584094 1885007592 712384264 325807387 666037224 1120581235 1906391382 2728934324 4184847480 1421567892 173041780 406585544 177344776 516851372 2469433338 4101790132 2700306534 298546801 1179737414 2682861849 3909538182 1769873235 2033496312 1183622584 4280109266 3378119499 1138655075 4284956424 2360675680 4268485481 2757097352 1650888352 3073247155 1748832050 629693523 3957319853 2758004015 4192429726 105445064 107380079 161266023 2529163544 3593429718 598858570 818378066 1057105504 1592856714 904857009 4194046290 2594197151 4032845580 1031346584 2869440440 1492413181 3759486236 1564299295 2542926226 2142332126 2760569979 875825336 2925784588 2286926323 2241359896 3869712495 1351096094 2678400564 2780762033 1431384948 637190431 3710101346 2543503840 1424014719 54745088 3606773483 3211916989 2201025366 2958787598 3966434324 3101938524 3525408568 282973824 3597853806 4238930670 2517019712 1015166203 1227378124 4155682924 2196319706 2050222803 1741842666 416762423 561554309 1443052546 3712565909 1611572876 1534300112 3728193331 3813384355 3613451265 4217454120 3656620368 2060234685 3881157801 2372508473 3167811821 1160500799 2562438018 2448415835 339984485 1885399884 311804469 3615929720 4091051198 2589217203 584452339 715428128 1879415436 3286676808 3252502930 2735412627 1242763927 1552116778 2140323480 3034635694 2299497030 219133026 3203181806 735564516 1786767359 2789105395 3063554216 2322952156 4232870142 4279301167 778804658 1397961217 2947991107 662897146 4294870265 1041107988 957347288 1564327953 4013102285 3053194326 6299769 2460940193 2717115735 1845648388 2916831193 1381328721 2298191798 1024405950 2382949002 2578155933 1998121269 592863195 1944796961 2575954244 2678219994 1884977833 2787118427 2743888003 895494862 1953439671 3653404313 454800789 4212407191 3487876017 3951272440'),
 ((0.13991280879079565, 0.35541822362747916, 0.43820063236562223),
  array([-2.66169653, -3.96129422, -1.1827499 ,  5.54485335,  6.17989251]),
  b'1282489177 772703303 2380733066 3019986466 789971570 2164336118 1893462848 4162579896 3731031839 1090471037 3135633848 2628299125 1877671301 1413625560 1488852536 4153366995 2937731487 3065391209 3560547392 4140038368 2450022938 3237499625 2399142422 2259291392 1343038156 2575206036 2260862778 1098669967 3341966061 3457293144 1358569800 3443948548 3472124811 2804460752 830855926 3024763057 4201219879 1043290155 623235233 3562763190 2125402295 169058751 2357446928 1481829965 2287743059 4275586383 4022689064 3231624373 76571964 2448779037 2731871213 2915419902 1227106788 3433596141 3945645361 4218378490 3883141928 3248068701 2461937261 192762794 3108890206 2449339161 3495444363 934714003 4017887491 308650607 3006769255 96743848 1588426157 690206718 3638279192 4240141427 2933017745 2974577833 1607395909 2090436138 4204473601 4209738264 2880528475 3126836852 3018848659 4210221936 3072128419 2088336478 1417772055 1896627817 1211171407 1114553591 157305936 706814366 1655946055 3812640855 223884624 2406315568 275878506 1421069390 1362942300 1625048278 1612210993 540758135 3105103897 1335225688 3164986831 1426390319 4133023431 1214059040 3936624819 1503340822 4140494195 1760986218 1588297523 160456047 185527727 3591192340 470842712 3603189689 805383892 2038989137 1926496799 3576822893 2725177863 3481053024 75465828 4140367396 2295655578 2658312271 2533293482 2718087566 3213015692 1570478190 3561985703 3363092092 3350704516 2892674057 421863758 886511863 3519527188 436992348 1604156996 2692219289 3374438694 463333012 2715714899 1923345081 2658625109 1236752420 3036345131 3108490284 388469471 1244318698 674417190 2195475926 2360035493 336321544 1208322322 2252359524 2968685466 917989533 3018658079 3313565401 1401136691 647212781 163748942 1878349293 646654851 2435226672 3139696173 3733007870 3003369937 4188000861 1578576044 47960432 2220547901 4051355205 797545761 3544904934 3625449450 550585244 873232322 738089900 1117049268 2334674204 145148465 2880044802 3220226419 3173167257 3253070809 3369716379 2884112182 755177741 628879998 1983837295 1127828683 432481366 3795860255 752663889 2312207915 961722669 2868216167 3820481584 4222816808 3297944446 4023888279 4034316050 1737463975 4168871418 2226711747 3102355726 3094342079 1410145503 577550687 1998813746 2731712138 2234226016 569287737 1391530138 771000255 1996172477 3635977610 1807509675 4162950908 2632940319 408741311 2895515825 1649470721 2960577196 3303462960 3689975453 3679653811 2019099168 1012610531 4101747653 2066208606 804816891 413268810 3311910917 3784296255 3682840659 171764191 3457313112 2270075355 1054871847 3236528572 2448596033 1424661803 2352702097 1629444536 1286490077 3109351863 2410463378 998550902 1238860035 2726729883 1888159681 3466400732 1251737136 40799656 3739411247 3542526687 2722961495 3681747640 4237692684 2353287693 469960718 1472240343 1750278170 3304764103 1634310169 609315427 64526315 4061270679 509794182 620011988 1757808432 1572987976 1035607823 1992704849 1922733728 2562999066 1051867309 4288552605 3732244834 435377682 2979058255 758696353 3737948342 1722027907 2085284172 23869475 2922297743 1374890718 2694595264 4145919411 3296074624 1842985680 3105643739 154039078 3677940085 694429956 2797728030 632000248 724250101 4248742724 3231419533 2826839119 3508029273 2232057416 1425088374 1297289098 62032864 1506601474 168000739 1819516873 1314435716 427105158 2111148136 2385676087 2064966544 2407487594 2940977056 1275917422 3088618872 4054852969 3231004092 1217146089 347844149 4000008061 3151830700 3523155882 2478088837 910889044 271129948 4004705695 3775879669 2081555820 3405760638 3659650328 1626704129 789963830 3316263724 3439315647 2801467115 843591800 1614643457 3716141528 610074979 2088577085 2225464171 4075130211 1065367151 436328325 324659399 542531192 3517898783 4071187573 3160287038 3615076121 2018167990 1915171096 915469896 1111928346 3807423718 1320380979 264809308 552379197 4227317623 3010100861 4172534673 3152015752 2781982791 1571813419 869551341 1619508164 2565289709 4202734925 4092537255 2001797530 3028473661 1355191433 3654252660 3073536732 2210352139 2593596798 2448334302 4063477215 1018289166 2775485025 1350313263 1203094488 3234576627 2021172771 449260314 4225198527 427568892 1920895551 3574530158 3939909488 1128048223 1108153119 1355302360 2776051390 2304192891 682998561 29194184 442656530 1530702624 1044645670 2061175416 827996371 1108940470 635432738 786216811 2586306570 62454911 3780184209 2426898106 153757707 2444373049 3240448588 870722088 971857031 2576905164 586482837 1911064984 300349278 921260585 2954490596 238595433 427086864 354357319 314723471 2906554959 2246771602 3226054378 2891054988 1706221399 306009524 4181196269 3407982608 3631831512 1176906555 2874003261 241012186 3680012717 459607091 808908449 1157002913 2813330046 3303623097 1434767052 3045562765 3437430829 2838258124 2638136705 2443497764 2222514724 1112643472 1213028933 849791742 3083583647 1621044768 3325829283 1535073180 1358709105 3928511808 173270607 32262594 3230545444 288719049 1363657533 2939981060 2757792347 3625077857 2108856547 294450716 1192816434 3187289036 925996482 3136726728 316519651 2305026413 1091362019 4247465580 1525517241 1795076805 594158393 3677637588 2239477854 4137273403 250271148 2476150621 3275424104 1833132542 2089752880 2114887831 1413514345 1658707257 549145244 1379353038 2709896998 2271661190 1781593905 734066822 3207620023 3520527539 1716143970 164210369 336532211 2199509777 3583843068 3491541534 814773908 1402998752 959122864 3690255569 2589745862 3682526561 1827654412 268064237 4078022051 1526633418 985892301 2356094986 1625324282 3015637086 2625615998 4131616840 386825680 2885136576 1816594906 1129898805 1646175878 3291225383 4081078975 1651103432 4132223595 2975798687 3015343564 3061727890 3914013494 4269514328 3406964465 4130478352 1038631572 3890125042 1297967099 2100023625 2192210722 530867841 2669739342 1863022566 2073964372 3438637010 3136473731 1827448336 2490413104 1588541649 1937760992 2018186883 2547345967 3708814889 3032606546 1255328404 2729593284 1651597610 2648889990 2799949312 2974062553 8612935 255376531 3258832625 2684677381 1564294738 4047934910 3098393379 2966314719 1353989770 2296098576 1214008382 2999684372 802471340 2884076170 2583983958 3054335250 1703433772 1907063095 422159227 615789909 4002972719 1779035468 1748892276 1779251930 3393773821 3207090299 3835387819 1575313023 844260030 1648206823 1394169298 1020042713 1677865280 3837960301 2797233257 2850389085 3896076005 615894904 1416882702 2552808166 855254607 997402957 773852236 521745039 1005382656 4130823605 910452770 3094177096 3924490739 2035220560 3559879731 4107228417 2879338716 4243029552 378869800 367399427'),
 ((0.93216356214319884, 0.18565941101152372, 0.11404792390707884),
  array([-0.27676369, -2.79511744, -2.89889805,  3.73484792,  5.72412923]),
  b'1249803514 611171337 3284490174 959498705 2984643064 1384856852 1467210223 163340956 1109905736 1503807548 1508888766 1495935882 4060023959 3843346954 3032570238 360625863 882489361 2115471651 1021144993 3013408763 2461920319 3629191145 2931550052 2390269974 2830727427 3281864497 2858313585 3483591275 1484567298 3853463837 2291820267 1173859100 1439858877 4140792441 3745430519 1896662960 3903804176 2820650201 1551496584 1317493192 3825035776 171360038 2918290602 3463694753 246115523 3374335844 2583508106 2030465737 1506687524 3659681981 92735870 1499192905 940191972 1611985581 1997780145 220352165 2989882718 269777241 2186856721 2221549966 1445373578 970921464 135265398 2940354321 1137732254 2272512444 3487886096 4284407517 575146304 3269457639 1671866574 402022452 3143688513 3276570633 2310929938 3462955251 3758996721 1825823127 3302333825 3413876700 2638605603 3517537820 1676336791 3236143158 1633171939 742060766 3615671218 53179579 1610788562 1818048941 2299543813 1436693805 1594152794 3896571577 3766086908 2475794638 1464170528 404851788 1125978036 1564958874 3871672390 3103978844 1599102488 1857839765 3237574223 2691013809 2768429417 1594428704 2682045214 1264783367 1201979869 1279933940 3182840711 1430267226 2003690098 2757825498 2105851348 1871884942 4255115423 44665946 975189095 3241880996 2955774360 265688329 1501103011 2494149761 2933035020 1462417141 3994270155 3498767638 3980066560 1971937256 3847046592 635999578 1502216559 539207306 2011103718 923650369 1170660552 2996012509 256974500 2484047109 3092863134 2164161144 1855901617 2062317630 2314404860 3586474143 1339126746 2538439122 1019622475 3445053764 1960164592 3038597066 2266202582 1058976168 3822195447 3919347298 2168945087 69681319 3693893096 1297431725 1905155446 1691647435 236091017 1471447531 739949182 2372927504 1212858668 438483899 20398001 375963029 4044733852 1776880073 4029467820 3399474417 3890841461 2393327882 4051095374 3347603076 2277619773 3004107720 2644377198 1643280781 3900308621 1407724241 234226531 286639551 1600593361 2765890818 3998378097 3004309435 1436501692 4045675482 89460919 3439341270 1881393262 3684019449 2319407168 1147179785 3589977409 4065740602 337302579 2526075716 13754754 3971237169 1834037051 3974774565 2325288643 3846076412 166479994 3638586157 856520560 548710270 685530695 2645195324 991132954 2191927815 439404920 754699076 4034574422 292681201 1633891310 1969259102 266754657 2531995451 4142199849 3066224286 3149848562 3520644004 1736317635 2124023584 3218991059 4286728033 2050276814 907616516 2751295601 4254498936 3350131294 2075506963 3680533745 191875570 3621455100 2072872501 3011217871 2594294144 1084605624 3008348707 3421758610 1630135972 229794156 591477627 3986689359 883861709 2849010433 925552641 3965685221 2036776845 1798283923 196631075 62387057 3972567281 1801073274 2544700751 1985229693 92360764 2811726178 2597671210 2602900304 2828450234 1962710025 4102085108 4205563328 2364150219 153085072 2364718459 2421292515 2065051105 2711636872 270980304 1165625785 4100033853 4058927298 624542659 1324320138 3370869551 2089148584 1921337528 239755951 3386051023 723912626 2315493901 3803450465 3677991550 900821962 3311384342 3498901928 3955238853 407112299 2786054988 453934495 302483557 2521996010 3376829821 435547182 1400583816 2724551562 182741429 1865234167 3213254567 2165138606 2420299056 967413706 356558023 336689979 4245316661 1906028557 1075475830 3669376681 3502124790 2355922358 2749954129 1718665390 3695230958 2061966331 31400807 33750944 1846748853 2696025053 3634420920 1109179905 3262314593 2305768104 39396697 1639542392 658744791 794005256 2168147049 3042830806 3502855347 3765244168 3197256545 1886592469 1134906238 29582213 1177841690 3549311681 1615994286 3828075574 4278031858 90380030 1896872107 1703994085 2381001552 1957987777 3056931707 1996388468 2540984902 973137536 148731948 3283464437 1126044313 2432138145 1867588738 1258212166 2114062204 2188487898 3283864744 2670120440 832216149 4041520891 1770141000 4127167876 1010327435 1227932154 2877974413 2313607931 1231111601 1171513494 2006302461 1700783224 252892243 512261723 4013054247 701040487 987560181 3369276523 3535287286 372374930 568129739 3559307133 3035546347 2071566683 1394947182 2837417132 3919593970 3115354086 3946762078 1343279388 4055749955 3748726651 56976507 3647538711 1001018799 2928551153 673865151 4273853974 2756516732 1563182314 2568851950 1504162805 4033502701 4249701501 2273059499 813045756 210031054 3964489733 3553825447 1467939448 4127279193 2698439403 905440529 521175827 1442844230 4222063224 1871150375 3514943920 2546879530 4011814319 2080444858 2779694948 2491013992 3205273546 3440015701 333958134 1288294893 3828948158 3595127959 1643180500 4142563959 1719336041 1967338747 4293303927 1871956991 1217650207 3151970904 3319833698 952331645 3768816852 3830035463 3122339907 2123728858 728527407 405190066 731142020 2064392725 4161939488 1792778050 3065333817 2829088713 747850216 2688620619 3600778275 2329681213 3337419958 1241691038 1313775645 4035959141 2012696838 968054979 3864901349 735725873 1846086898 1088560426 2101155757 857803522 2129994030 112298868 104946032 3286464481 1183439287 3773854830 3738546893 2435452729 3391833313 844155618 1164452568 3641088057 2068461752 4192497999 2477436719 4013892981 574752120 2628100041 463101994 534342281 2755137592 2065275474 3687295947 3402792106 2602287455 2137361899 4135758742 2623728859 1622350597 33533195 3126139273 1881479588 1423672224 2066331195 439838897 49418702 3107560097 2393833413 3957585104 3267416227 4130901414 178932102 867668451 335261344 3209964462 3644309677 187624889 533751595 2849780375 51609482 2927953334 2796897880 3293389170 2092429109 345346116 3910323370 1164650529 1319841037 2587395223 1549020193 326891881 1015570859 1211035135 491460751 2414038024 2808836382 780469484 3157921679 2811098680 1112671215 2255439359 2133097229 1388298983 1815744802 183290988 1222934604 909777889 2148783816 106448782 2769585140 4147525538 382491173 4233130086 1654326133 1577464484 1020325658 4056795965 3312366472 1293148486 1960282942 1183325402 854061292 4145425550 1015484035 3784826861 1923252634 754697526 2265921553 2047941570 1640655454 2594540792 2064494358 1904441497 3108835296 3864570499 802604772 2966821491 3526506185 4002261619 20451735 743520379 842348551 744523731 3577383498 3600475534 352690486 404442494 3336755027 1674333256 164700719 815531488 2665957726 2596406584 2381449994 2283789999 9531783 4207940256 3905855026 4081246159 1222538048 1407879219 1179311206 3434242921 3045573883 2765139963 3301770520 3522170194 3933405782 3209302581 680607729 1958891627 1184200428 1924047761 493587830 177437568 399182313 1514719884 3700406683'),
 ((0.0018909590588593911, 0.176056338028169, 0.20898922949461474),
  array([-0.42097989,  1.0916628 , -3.267132  ,  3.47375634, -0.36152491]),
  b'3598268918 2765058229 1774119776 3371778040 716447576 2496250043 3839478032 3769397105 562476515 2473524854 2819372764 3787238773 4104389016 1661811872 751216932 3780652085 78563088 837945605 3025018378 2491358500 1141676623 1686547537 1529546922 3400465074 4162849309 2112055926 2193333526 3352059457 1414099300 2150918403 478131055 435959716 1974637358 2477382423 354379572 3121781791 4218939358 598820406 3011657942 3187783882 2543676324 3305452283 3311701102 2505941418 2140889471 1441638869 2980555632 3255525238 2816389115 3153615626 438438047 3139684265 610281091 1346202422 3542583213 2539399619 3742670142 496788915 7882366 1820730897 252797515 3941343943 2767818596 3952459262 2463046238 34597907 944869248 2997844441 4208902227 189819025 354757227 3394745962 1265969912 2690776538 1796906308 2702533711 991431780 1956024755 3835288456 2675233246 838551152 1885496010 4290357977 2693512286 2289494135 2467149563 1750812045 4030784150 3844908612 2774681194 2523783172 2288855452 249155127 3328720195 1264226877 2812349484 3381049481 4034389418 2341995498 2186148359 3182402175 1444704587 868028056 1475333267 2751485245 1940977899 40608565 1924907925 611684082 3832535298 1402220942 3948576159 124070771 990810873 1777767443 1582054910 1307131377 2268863070 476659575 1430906258 3209182298 2397650327 1893037831 4149129004 1662073696 409393319 3332969122 9389124 4026790935 3446291967 4200731855 99258637 1079197646 2963866281 1828091680 1661876941 1543623082 4107892818 723694278 3911731156 4214892997 2037524884 1617558873 740372714 1456907251 2307025505 3899604008 3487937362 1674753154 3917150339 2659167991 4202831697 1184045953 4045189467 2521233195 3867034095 3719688635 2658357231 2972373295 294388785 3032155982 3996451303 1316760433 3921856203 1765699326 1515037700 3697179937 2841376387 879651317 3459179518 2504960906 1496254107 136527985 3012657111 386189487 1749498042 2939258880 2185867521 4155075758 1615552350 2382418151 2253424037 381919386 1433505417 3104160915 3032170576 3685953251 103222566 1633688081 2818694699 1996307193 1880542161 2997114577 543993695 3672867764 1255753295 3442499308 3006313259 2524538860 3175748315 4099416413 1855983822 3041371447 1084333429 3009450845 2067603968 572115073 3404598560 2316869617 119800096 3631086473 2859794050 3736562932 908226849 495100671 3100079557 1074424491 1398285956 2817197237 3789030464 2323539465 4008767855 1657118557 2370053539 3233266557 3067207205 3229905988 3132671129 2699550124 3024128444 4055866517 2523058834 3031635120 681525711 499367012 2401383144 2042187165 2653037688 1387958225 3945147064 1230408350 3551422824 2871911032 4185515796 3356010785 740242253 845683393 1994824137 4289634964 3613379423 417007940 2250460818 2938056739 3943747434 1200372450 2668302034 2686078924 1690219219 2676644187 1864559212 3111637476 808838570 371951533 2071668443 131790734 106150694 2434755801 3972938996 3311062652 4282697755 4288306288 2876371041 3843017109 2003047927 2942071990 1159414856 407405762 4220009502 327666061 1164614001 3401249783 202749806 2110895314 2194722735 2122040269 3998255215 32916485 2865236393 1909665990 94857983 1699847457 1517685743 3306796834 959024525 2354804108 1684113956 1865503138 2794323414 466014986 2741475442 3487915272 107765545 1502710622 757156968 3036516269 3531202384 1781518835 1892465247 1006952100 3455979586 799260378 1148842839 2791561928 3655750504 2962546748 3043301073 3775732486 3245916113 3369896311 4245220941 2259734511 3097699591 3211376732 2341485840 2789899171 3594432931 73446551 2981888784 610028197 1695604199 1604371288 3009223199 2549952968 867524318 246592528 3597925766 2557727447 388901542 2580106532 472611983 374041273 2757217396 4075404366 13223874 3951650687 3482492958 2200866372 453468755 1699836358 3398928326 2453762589 460709716 3493990004 183616606 3949965956 1455683592 1103153902 2525980844 819489335 2280886105 455010374 582376970 1382402936 3046851720 2460521107 4123710862 2224176456 1170792837 812082242 2469527451 452597437 3067996196 1345824674 2538092164 455455532 3791106008 2207555961 263132339 1917721211 851865418 1631032051 2577012456 2352198340 3576018874 3486306078 100356025 3886887725 1128407217 3942422999 665771229 2971822425 1435724743 1591266475 4086759251 1607182795 1634667274 1521210295 3926500104 3837897531 171802477 3750871475 4146854044 3070764918 3678649923 232413779 1847966753 1656347610 3513282226 2991361827 709170233 389655866 3758470524 1019496004 4111227167 2964642673 3626812992 2673988189 4194052384 1694759125 354551816 3394466065 456073574 2897815837 2266511990 2660087501 852613014 2144208227 235258486 950362603 4125307028 3377164967 1242783408 3687574355 4136130903 2335139336 4002016734 1976871144 1034964505 987203265 2600662544 1913883210 81802484 1975224835 3743806045 2497846088 15174726 2822930393 202704095 1342226033 813969887 741045691 3790658170 2247196963 1429365445 280965349 2323998133 3581753114 1739975588 1308345953 896201343 715689166 2562058342 1782767158 3882833624 858636023 639790735 1871498187 1806549809 2785928080 2315768910 2602467986 825939168 106654237 2293018110 4079545278 307592831 2944906211 2792823997 4037117346 2234844622 3329107258 3443547394 1247341377 1690079783 679181173 677908161 2658187322 3968107844 993006683 2692691016 3132288560 2272216980 2893484542 742775226 2170930003 3764143693 1424670652 672477687 3012712608 874153895 4193375391 3074602122 2114064348 496874216 1260968066 1891408488 4206630233 1461430574 3335363327 696120142 332762617 1838941941 111079825 1003750266 203657927 3981489189 3925924257 1485570766 3811966696 1471148324 2513320494 824184719 350050766 3345098586 1230702118 2163990249 1361279091 3722107981 3815143514 3753477195 2885296450 1945266285 3196814517 206331073 1928337277 2958028003 3966100012 2447828813 3419740243 1829300787 1979762597 2750554877 3923331527 529161453 1211707450 1399920711 521435398 1359183608 2789780055 2608566683 3742402880 3116250641 1452103081 1256909694 1837292011 1222965522 197200970 1962849968 1179983998 271398246 3171399974 2977316800 2640968957 3035008978 2858154872 1320513459 3089243493 2113929313 3533091706 3246136768 1563410624 456021573 1448713200 3844525062 1633619445 1340364730 1109762509 1463293273 3435397764 1155992689 3132634531 1759058733 1833026430 1592189534 1951384714 937272974 179726844 2053712668 2831826578 2556073406 937913309 108119483 4251385777 2095477710 279195802 2007201395 2561365113 2992064198 2767198562 2492660290 3225023157 1206136957 3637883114 1446939042 2670491661 524854678 2557944802 3909796565 59056793 3338287472 706681713 288720820 2975548356 1638126807 1773482500 1914045425 884432403 2860797740 1466303423 4046691269 2086042197 30012377 1840597578 1905741644'),
 ((2.9814830402675656, 0.16549295774647887, 0.35412474849094572),
  array([-0.62087859, -3.29587813, -1.04080654,  3.25769283, -7.58544124]),
  b'3756536073 2983463187 2457102343 4072491303 2403311505 3483424413 4063403675 4080789293 2805701620 224703425 1423987776 1653524071 2767798608 737092839 1213622841 1365848199 242292795 4026553847 2404098437 1254417580 3776112802 250121369 3635579765 3698439720 2017196961 372988137 920051927 630215381 1842104365 3211979719 1980681950 238781505 1854988319 1685896819 3770868981 2559843936 3539675006 1827451552 2015557646 1973109093 553867601 1887584268 1060935892 2604037080 2309851572 2928561828 1850844470 2073604602 2414928545 3252601753 1738175665 105262704 473398264 2376504340 999379379 3685443607 431314638 2010279616 3175531654 799433439 2927911325 4234514340 592468375 188851969 1203915422 3283509296 1454268854 24449254 3888985641 2411428590 574218342 523030348 3859806198 2302937432 3590642203 2341033037 102953110 3948916833 1949590539 3505550871 4129150370 699113691 1326551166 3472485956 2058347534 3372017633 4221595786 2087479474 4086523387 1638029901 3107161753 2703025844 1076456376 2742898551 3931706042 4015857562 3460201169 684873062 2624349193 862514482 3832117157 2725954583 2889121840 79669387 2044697404 3561951752 2284974319 657367282 2649339675 2203613462 1176973882 2275835599 1618983968 1302105856 524824018 1066603857 509160301 1669060574 1445682473 324910509 3998371536 3063504866 4101299844 1490428015 1164717768 1510365048 1320062232 3965431946 1003213257 3865412641 2811711094 2715830398 2856030535 1056247442 4207986595 1358286100 1470181855 4120545873 2930330411 3388602068 599152550 3681828619 1254220428 2068877980 3109241876 903230370 1688017107 1544833332 2040301813 2796413566 1924374985 1774952339 2916227263 4026573308 3153337000 3501614611 3562566284 4113667862 2577454793 2014322942 739428481 46092161 1861383244 5490216 2716136386 2636397273 2183700443 1833665178 830812417 3873540831 944467881 921621966 3785615485 876871195 293812314 431363891 1961489659 3970631127 528211562 1005442805 2715626556 427547258 3321827117 1176927543 2986636293 3766198064 1691240332 1597601261 2621032406 3337868522 120745973 289096134 4162048320 1553453610 906867421 1942250376 3471181374 1649134514 543457107 3706827971 1030806007 982343846 1807683765 338665901 3144870127 1091068470 998496035 3131787832 2565482607 2997461953 3731095536 2106290874 3362598889 1375220892 1941097413 2890704653 3371152029 1118214812 126435570 694950266 449969921 2043605264 113057654 2030138591 1631751935 1214195074 1794343013 493820100 2020934391 122370562 1328940913 3972331204 881697765 1678371292 1269702993 2151910727 1048358631 1592828328 2629955821 3655347949 164715691 2720242558 198936673 1310815205 3720482734 1672326929 366137504 3642115046 4183590921 2059791793 159886074 3730597876 1288293431 2404956870 3245016688 1667242763 3183905003 954557223 2088434141 1404330657 967635365 3383832279 627355820 2113107234 953920874 3163711040 1505184760 1954022563 1137213466 2057408010 3973071029 1122491262 196055604 4102178942 2990892785 204465461 1830297073 1571884734 1120200050 991394488 228091513 2635959800 2997947516 1113003441 888067259 68503434 600617983 665015390 2298644966 2767346206 502110636 728464954 2983896539 1798110738 1263232297 1050402628 974497948 3575135543 4036024219 1111899703 692736383 1337157948 3039338736 4118767717 3446709260 2857420154 1744349824 3989265369 3457986382 1578896366 1608644085 3331789520 644140421 94655057 2745185960 4041585784 346378657 3342235255 3525859986 611009021 3251754211 1705599899 1066115176 3285746175 3262063274 1207444941 3157343421 3046548143 1595682353 1483170862 150212514 2386216267 1435623813 1696160310 2293899169 3565548127 869344777 2233549929 3540886535 1019444700 1502442571 1952452847 2128061684 869671549 4041166588 2854456848 3676399977 1678081401 1842724289 2791481891 908665201 1010187464 149546231 2556653129 3808380103 2780743466 3790016899 3868007931 2574056905 179102608 2226281302 1800780970 1803141235 2866448074 880487064 1597065583 1892739176 2639428826 3232709975 916450570 3959077761 3446808525 2025483969 1246916896 909146148 977853162 3519958775 877160210 2990950849 1484193662 3092975768 430275794 3435994597 2075967357 2560569338 3966257739 3737989789 1477487584 4105735191 1022902722 4015032237 2049091649 3962264077 3365249337 4234605926 18007687 2693955318 1631940106 2534405921 259622743 4131505288 1847135162 3270007597 2265444598 238680070 3955811661 2628727011 321979551 1466649327 236286000 84276032 2916543052 4240197199 1574055488 3324568164 3709464220 1514659925 3817817327 478039964 3116546787 4018196566 4033913694 2784056919 3095185309 4197251148 2456191139 1952264543 2095591371 1816177267 4099979828 4115631502 2968709422 360741786 1264865281 3984120276 735874066 2809621969 125080371 2735984112 2248090419 543011236 1133077904 954630592 3932935654 271887263 772960264 2300450403 853561156 3213650910 3065366906 642351701 2236113511 3811168664 2367990176 3453636259 3709836900 2958540969 3688276138 154598658 256813055 3023014924 1186152423 2304800283 3434708452 4052436239 2664748036 2523942235 1704394991 1804907603 2999175372 1506043407 2831183525 1984332768 606507967 404378625 517943662 2193244276 709119902 603280247 3777714740 3518573737 2954304511 1369422220 2441963354 1961043242 2428754515 3002443774 2326866395 657783049 1758635386 2651265020 636173444 1510296990 2045202040 865411401 2855826513 1614985902 552543788 2233931254 4008327306 4219188666 3042357713 914115341 290290794 2506074620 404364563 3377529293 3329334968 1348156232 2509193361 2434065060 1945464770 2466301691 1550765743 666365563 126175795 3318924383 1076747461 2009972418 2495128253 963086711 2259673295 1919544858 2937941827 1512681281 2317444681 2078798494 1193663863 692229574 2725124804 3089387918 3694544772 907097931 1269436860 3587774610 1382344276 3800379031 435211190 1026678258 2582896113 1560645390 2708287683 3714845373 2245810671 1744304800 1223361522 3641079886 3916786804 3558794273 584162936 3352203890 3357212515 718894552 487001091 4178164188 372421207 3369071527 2021118697 3386648895 1973828779 1593670171 2253101578 1144481106 2592201264 4180576651 985408811 1272364673 3693389124 3912403006 1002291214 1394502471 233329388 2784686760 3763918076 1803011425 2889013502 3245243353 2108593583 1340593967 4157450529 1243340156 755033441 2839565370 2916850174 863179536 2351525612 1013203549 4074958226 4197048726 371781851 3899277452 2741650217 3437584198 1418715610 1341975384 544194693 1283810394 2790524583 4200740380 430874808 546833236 2717543985 1779022246 2388638386 3072560480 3720202977 2862376904 1423574195 1830553626 3415273368 1832114199 2627042302 3518200213 73541393 1509324743 1455961696 2558779642 2952517893 71634915 3417257424 378463111 1094902568 4024701190 376362669'),
 ((0.89770817917602741, 0.11688038679840235, 0.10174479714105528),
  array([-1.28486259,  0.40389315,  0.96463197, -2.40283838,  4.0112469 ]),
  b'344823549 241497693 2178317624 1763553557 3829230459 2704958479 2424053916 1170041051 3549273653 3963209815 2144052604 2645543319 3579355272 418123519 2490496994 2088206280 2588372874 4159239111 819460185 2605807606 299264948 2156061167 910619721 3467771321 2957337113 1751189157 1749017129 1341667242 2432334689 1875767968 466206012 681648833 1548557951 3981367506 1286150910 1113150075 3668110332 1622606344 834430544 1780959563 3234507578 2741155592 3995590268 1845649254 3012918329 1648627178 2969230606 3511169617 1968778095 1915273067 3973472169 3388236589 1999357169 3564597620 1289150458 1466716879 3524217636 1245954117 1091058389 3363846351 158958290 1858046049 2289849808 1405794643 201181983 3243808741 3130842355 1440611878 737980095 3461077201 3298540714 918670002 2662636767 975258316 2379305616 2542706581 3288669234 1282090668 3432231362 3014802424 4172288663 1495051756 685710488 3637724178 2846347074 4050381530 1370742498 9722595 4152179547 739425357 1985773804 4127666792 4278091310 3227682127 1059363785 2687391239 2141233037 911379998 150443475 212868480 1136404612 181243450 1155295477 2758810108 127887876 2186673151 3581500301 2238655538 4033965159 2499398912 3225777371 731283585 2107620423 2119844416 2221198827 4157663782 3102703330 1182502636 2510790330 2965575077 818092770 3425002432 1344517068 232857297 835970202 4246441290 1872157557 2479596008 1921935516 3973990205 1170963927 2237237971 2574708247 189593704 4149674276 1462538570 1516336319 3658647878 529424480 1755517477 3122390386 3049874855 3997395250 653662256 1518591345 3423691548 1650028977 1331615679 2624908183 1564227956 783677795 1088784803 4246340160 24431937 114399789 258351987 3734075040 940301722 2742152018 2605693256 1840567965 256443030 1198353961 468951360 1633053610 2184342360 1044844878 1668010148 2120104240 589013993 2255265632 1320363970 475354469 2692648539 3940746553 3981739903 1880974712 1927037918 702686050 3105003796 523088171 3164125390 781494017 3663292949 3766884568 3787451470 204623439 1033197963 1487195424 662965998 1694622023 3134990668 3629850449 2707768925 2678613556 3107904884 253264231 2059935702 782232125 997300800 1799019877 2312616548 42565060 2201065165 1776333657 896993164 2089144814 3113238532 65521369 3637214991 3817731175 3361260156 1015019779 1653032896 3677827967 76382910 588411165 1461042571 1959362310 721946263 2712617927 512645973 3237050051 685209824 1680739853 1663479174 4022550034 1748219263 3828434816 935919883 2271716692 4219416602 2579647788 3943670574 116499532 32127292 2644851281 332805162 3344322479 477936463 2473709601 4290140384 1062042532 3291100512 3706821060 107164957 1803753049 2262054140 4177370443 4028329495 229242717 966683674 3829724676 2574732507 2311290826 4294909722 2041432825 1958255767 364454653 2827363554 2980379333 503437099 2454478789 2734345625 1522600155 3120327846 3473974643 1316489229 3091505181 3275646907 229971151 2581492943 99114181 2108031192 3886727578 3330400680 2575785707 1457441408 2570360276 2814100714 2115158409 4003679002 2979323866 882431695 4194130273 2386833775 3330191628 4074851209 3342389753 3483202979 1498852172 1058133248 214955784 1871226269 403452978 2443512129 603789024 2120282064 3513294260 1475541615 3528582558 2704944863 2385287215 3944496998 674974573 51835320 651835701 2151411747 2194939931 1046374165 2403839445 1179734899 2399840801 4170050568 607802011 2176656453 3618907690 998504374 520956272 1099559249 1106514099 224772039 1438189800 1525514321 2813251830 102565149 980366355 1401325958 1643354104 2838004921 1118911601 1652535993 1695202060 3534115787 2441091618 3129258250 1107256330 3722985020 773639860 1405908474 2778906646 469644888 621124671 2000917330 2882682641 2062616524 540212265 1593593363 3863469998 1580330421 3637692467 481852580 148473459 4030182000 2993068342 3289590885 183213728 1814314834 1467834426 3698617999 3368622161 1542954674 1946553696 1816438068 884578591 2918505827 3230407400 2893007774 904635058 634119626 3609373627 2974971725 286132453 32861129 142697863 810830694 1741719952 2217904177 3881669557 2476782804 3729615143 1493255223 2572991638 1165182811 2223812004 2187339174 3245611725 1175635572 482488764 2552905242 1650407901 1274424824 2447681967 1531427492 4289476507 1561521709 2195881745 659754141 1729007147 1910669118 811601201 1270226284 3118696946 3311410393 3846733561 3944092045 4249732904 4162728242 1726103172 2209461977 234590167 4011567892 2093153713 3692892701 982666596 2544973965 4037185939 1891120274 3294591513 2569859716 3498144767 2522510895 3639778977 2402057802 3018620657 2129301078 2241973447 3582169903 1910171743 1765587224 3737543086 836897584 1851564309 1004201909 3387647947 4075445355 1267947175 1563592799 1124132975 39007661 2047795813 3346722161 3542665413 3230929180 4006143247 172959334 3299658970 2558447807 2703313104 242063075 3330424870 3414197932 3947497786 2705465068 1539003458 3419724948 3265728331 769904671 2635065695 1706568296 3627111099 3728109995 2274125598 3088573374 1094195657 1840238035 3211382371 1684764551 348537448 983944053 638450482 3724054294 644568801 1803959139 2773740434 1072807384 3160062672 648845260 222286212 1819629200 423932910 3242591070 3643798823 3506273630 1479226101 605649556 2470230481 3688779732 2722820800 2519189878 724245439 3645650784 2270624453 4030002548 2943996618 2354929707 3063810716 1346225927 1043394687 242482269 2774096591 1472458484 4105884601 4055717582 4043900532 3351918307 920562502 1750814947 3564910589 3172350858 559539665 135635128 3233470385 3898248041 3022485446 1068415395 538505506 3850225929 2299976692 2036108337 1571153644 4019078229 1371982005 1404987101 3590620390 841920221 3336590146 576446112 996042057 2737574882 1440770330 3716422086 2059879957 1626914246 3026017047 1020060668 2057020660 2461552624 286491408 3797459749 1264350103 1452283440 3428903799 2852615761 4184899945 1040613250 2661501572 2445883215 399187577 1914084628 2613903080 3935498857 3831224572 3408723675 3820413813 4192297849 2476244036 3295927153 2787916226 676153493 3245196429 2885855446 1937228256 819767534 1024582844 1512558807 98910233 3084971736 2491050373 1289424016 516715183 165144661 2584810187 3603244400 1666931505 457901278 1466140180 3666094039 59939624 1061542451 4214314167 4259568009 1381653880 1116470080 18962715 1671425315 779557366 3083206673 1522444920 1138631485 1267315845 4015809417 863830624 3311466045 2239715240 2289844628 1799753097 2485219252 2320958388 2613880004 3811402832 533728328 758706209 1336145373 1785945913 312822355 3039587926 1397216557 1893610811 8622510 3128269585 2020372754 2687608206 4148533777 561198523 2408155764 2216559482 765483102 2777949687 2283449327 1910953756 3208920648 791026167 1370227888'),
 ((1.9265070678838609, 0.56406733081415328, 0.26399862590175194),
  array([ 2.22707637,  1.79899024, -3.57969157, -7.0971608 ,  7.03275703]),
  b'433704843 2174414262 2230744031 232125559 3362217920 3692411935 3216956677 2583065270 2700695143 3064138039 1760324812 109306772 1256403178 158878005 2885930426 147140560 4020254723 740948626 3851285801 415627923 4101405982 1738737267 2377661256 1881558180 1710386850 4285854929 18134844 2532340099 1568236672 896841294 4227634131 4255844725 2654882638 1740316926 179560540 2920349187 2875688845 3997997646 3418994029 3964908426 3788020625 731508527 412053399 2691793518 3993265373 2372314870 2018983122 3173647731 2771968518 1432430100 3852174503 3415016861 4240424369 3165770599 3533936438 2973726478 911906987 1811179099 1500155291 1543664474 2173317133 835833594 4229163396 3956009061 3775845418 3970075079 303951392 2289657495 4052902657 511583264 2517977673 3688048865 3000585736 2550759864 2453211319 3118650223 3417464354 3455688284 1994735498 3921030355 4055402169 1550887316 3875317728 2361830401 3481920772 3230020800 2214065490 2833187828 1267914021 4233382970 724244447 2681130984 3668338600 3575068253 681757092 3738260277 3277517750 1521737986 3309395203 395081342 767394213 2719138619 3403262531 3845197249 3472103518 3832736740 151840233 1152342038 2379036914 2861999542 657726945 2013696488 1006789805 3682532090 3390788956 1477590415 4011489247 1457650097 4238105970 4206725345 910261472 2844092426 2552496774 2793621480 2954892585 504614818 1633499921 674616724 622454124 4026209517 3564727172 1970630272 4221209798 1941796643 3084875212 3639643261 1457960844 238217602 4002916746 1088525572 1077204385 3022519292 802142345 3816018537 1561349031 3748127019 1930238849 1557542832 1833702514 214839546 491832209 2082442842 592801822 3011598739 1419321403 3491054072 3941327933 1913119751 218599927 2798368076 2275650873 159093073 2923779769 3165734868 541312554 2953182953 3844906196 980710221 1734392592 4159326287 848383318 966975567 1006449477 1063958739 3399090252 1604860827 2336326044 3607585138 794709705 443355845 4218570735 2883285807 2077540683 4219333805 138116333 1649274182 2730220246 1434128713 3831471532 3931374753 3540665011 2580965353 1310735076 2535429666 4215566642 3873542974 3214559719 3362795151 3517617852 2843769495 2338159664 1966602265 2792537004 3589176585 4148248861 1046583786 3563591442 3891304182 2911425153 1136317913 574950955 2327119056 2132045066 2322713613 1004813718 4012241771 3118901842 1424076711 642417225 1213495413 1998924140 1681669273 940480191 3113604939 2003638039 533301740 81572767 661832900 1870874665 808376502 4109433491 3903351618 1242241764 48236740 1353601094 3937085638 269542420 2246069326 3122469188 700244893 1518115823 1666006158 3389870594 716506071 164621500 1961494818 3227801439 1460214259 230059486 1782445302 3808822779 2873953143 2013961686 1061216310 2082874984 1449723022 310809794 2865913361 1239595573 3487492047 4137460824 3747306092 2634521888 2752535961 984762670 1730268005 4224066727 2804812218 3155130556 3379036021 2076346594 2962934687 2970320671 1920672514 2851083454 1904901603 4137547967 1559324075 3516622605 1671837253 1672875194 177652030 2925452737 3741019970 1637084962 2602654704 1630471743 1792122028 3319988336 3285358043 1374021805 1087267234 490873900 2820834708 3740659204 1882907732 1636005356 4162386508 3311002145 2628969790 1979794555 2302360746 1777192776 215627508 1674439966 1079432195 3804354975 1213417243 763034159 632541886 1932795125 2340701461 2279047215 697979865 2975153961 3724359946 3582667038 4108155398 1336907648 3234018259 228357096 2283011675 3231570831 3517266048 235669876 3689655411 1839680524 1949216462 2955561484 3974637587 2737711141 2467917965 1720905208 202384041 413662537 744061237 156559338 2667012026 981896331 3419488857 3866861294 2111100758 1469550383 3727296806 3481521766 2691470141 3864423536 3364950586 3887327231 1750974057 1934859221 665109697 832885918 3582584178 3633880463 1498916498 3828588943 4119778199 1027587454 3120827662 814765484 1921515840 3124354082 3780020444 2803312578 1922896026 2694806470 1621669149 3960023758 1436582271 950005218 2348473579 2997988937 2658052522 1030111531 3584175062 2903360950 2094345545 3154989797 3756802573 2614729093 3942206859 3271590637 2023375954 662831133 2371400604 4287697842 3831717785 4046249004 1192105816 2299314207 3834951876 3721849634 437215713 524806374 1461987925 2035390271 691321641 3050258488 2545011975 4066386780 2268870362 1537519080 2703831017 1274680918 4137908523 3940957045 732147295 4066282267 1119316424 3216026908 857034483 3652305528 835511263 2094851867 3040083532 1726650933 2557825231 3037429645 195511542 698915554 1450161939 1510146373 3029129258 2921685650 1403241519 3318795580 2119258474 3155251742 2796859412 1948865394 3369376957 2331066268 2226347543 4101821944 3228559014 1219299560 3613445456 4255961873 4097037608 2714954762 1500064155 1485051779 1000984106 3838508342 2555940720 2345180638 596892270 3624662422 3942106624 2299051213 231544555 532820520 591395567 2012834500 2876346754 1626160177 544558103 413863302 3136577912 3714374158 2956031743 4187911924 101946174 3039699282 3812002744 2651368791 3273251549 3649394774 395104315 2055512683 102259236 3191474479 3977012558 902115864 2380807178 1649435660 1220568194 1537518745 3088787573 3529847907 2969365211 48396570 2966316581 3581986058 1269517223 3932633558 1019392180 2847766014 2084979262 699364469 819137865 2046205306 3636620461 2118452375 2288121507 2019973198 2797266683 166713281 2865980418 3525439387 2571380105 3327656060 3626205887 4070855020 1883868639 4142413080 3698182363 1592061604 455743256 1817767778 2693280929 57679877 3527978685 3962534947 3002988379 11737506 3423434349 641018413 3950352102 3637538470 2606460166 2958152884 4094827453 38122131 2828277659 3211365807 4008248369 3626844027 894230866 42744461 919759321 175691838 2969843529 2555753030 1634281570 2968995713 2858615488 3783057948 2097516138 4066744883 4066020006 459344817 1052419404 3149829463 4174679623 2107199669 4097632932 3323830414 2215043534 3368301163 3220871197 1470645702 405785334 847691121 3004195812 3910309060 1299007423 1908270178 2215930452 608156644 2142672622 3312410871 4272892705 2779771005 2499744539 2972104473 1586918201 2177919590 946333380 2558990096 2731153869 2468632290 575549863 952892325 4179791203 4236852 2404892662 3329119526 2964483772 3249124926 1357886296 883181165 618463962 1573135570 121929324 1736996143 1686345873 3081556363 744730109 589638938 864356558 1213095615 2911519961 3272274352 948817968 2897208431 3082044666 2199203602 4043019884 3829366814 601974331 2788247214 4063182439 3490852045 1924185199 2870299374 1868042313 2779501024 189393246 27093363 1423506351 2918029229 2327770092 3950899690 1138618921 1673006249 3560250977 4251117075 914312844 544334859 1630790113 2506402957 3971334181'),
 ((2.5894911918642616, 0.2869718309859155, 0.179137323943662),
  array([-2.22248424,  0.57344522,  0.85866398, -0.83362572, -4.57674689]),
  b'3210353054 1969286655 4196983238 3239842582 2101206326 4130760299 3022379653 47643695 1892509961 3124202639 1940160562 3086372620 1353294524 472551294 1704716632 3844889956 4050004815 817983096 4255872445 3503778098 3263941907 2907425901 1040797067 2712906875 325936877 1507837117 3142487624 657250111 2293516182 1157642216 4191007633 206424590 4059542165 263591212 2410069163 3647031600 490014366 3587004092 1954084271 4033425629 1795607110 4192827523 417405037 4173305591 3176363851 3296051643 617367540 2096010765 51209503 3993776855 2129988076 3858851471 4093615634 3907571659 2677759616 2530134611 3806457608 1209711985 3437153016 2375869223 566497883 3437921497 2662714005 3726143380 3004080455 2813813502 448010888 253219026 3893435717 3602718295 1584438007 3927416492 1630800981 4086039372 719071358 2310331677 1268563131 4077635082 3432931859 302650373 3004228536 1303859619 2216271848 2395438779 1972994746 2179452434 804480094 3256180147 467097775 4054469398 3485391158 3188891192 3845468905 2623930529 2324575951 949183758 4108828382 2689130087 3615795994 4007219331 2047731768 2052540017 3593079934 198800489 588212355 3860576557 1451427116 4248720262 2193292342 3807237927 2750375619 3474666822 3648898190 3909239523 1532928177 2887516972 1853463978 545107050 315295075 2214922291 2537876575 3195933705 1671652988 977986003 4278724857 3049450651 1410856117 2905670956 1956750828 3337658615 3877101297 943912961 1004019835 3865472117 1175758724 3952933165 1508281975 2132551475 1782023165 2987377402 3029655806 2907379843 1765831651 2046880884 1679612419 2965508342 3712399039 334169265 1479474354 316528873 1479263473 1554226002 3696961566 3059920554 3689568036 1858780964 2503423810 2604619602 2570890970 3551408898 1633592626 3669626120 801935025 2793364310 1036154521 20522822 1399155063 3534180725 4207263969 3862311044 549390869 3961349815 4239231675 2112692710 2793771336 2040277296 3292540593 1302951355 689503120 1947226181 907643396 2403469360 3387362241 2881232065 3231543163 2582096654 83173775 1935457445 2913923984 1056815133 1660693071 2731926478 3917835349 2447751025 4199231998 3968935292 2297220023 3873374014 1598561903 571749394 3049862843 3356212889 3317084501 2710238622 1062066885 450553052 1128101977 2742738216 3283705197 2463906024 2672457397 3441275989 3363602263 3686661729 2106803040 1221494114 2034952107 3337481853 372597162 4011399850 1620459988 3145309982 3832647023 1471594378 3363952223 2603879257 2603622214 2873357578 3148892224 3899193125 9977175 3146978629 858368040 3058784585 1872049346 2573843276 3013016193 2168869669 1367644100 2924006713 1173082859 349820826 4123754338 2875015915 3820657624 2851264308 3866136955 3663084716 1522527405 3966398899 4087148693 3520372899 2860859700 1219636991 2829950043 1248668062 4021686222 322018320 2845292176 2847760838 3486977041 911990365 1996035574 4139976459 3811388170 1869980968 2056571053 3612430396 82132583 1893255698 2223432735 3206668045 3411558578 211132051 4026430562 1540902168 1965504227 2468013534 3862307072 2209677070 4008709200 2064805531 4510434 612047476 2624635781 3013648578 721764333 2885809970 2770469711 1044129230 440810536 3705120816 3082289687 3570254863 128652389 2486986228 430003217 1586462111 303703678 3331256031 1816854719 1386671444 3182885759 605822206 2377723072 2658914491 1011235914 231707669 1954831433 3444897937 3434075413 836149795 1555144124 2533016479 2310363967 1369149710 4251875594 74086548 2264093460 2302522007 3445853588 1962902985 3949691651 2959692889 4112597410 1502517503 571104136 1849885664 2404877299 2292246163 1727895239 2127720981 456849050 2921407464 3160206236 3958162393 332005133 1114259755 3626488701 1606964574 195677016 995288203 1541725783 3141038956 1367626379 2610379837 173749253 2261207740 599933631 3746140961 3322428734 836982529 548691903 4023991739 3182801286 2198944159 1658751636 2587285719 816747981 1881044613 4233957172 974002821 555640749 1436617407 2403879941 1029405481 64615593 2716778653 1057621400 1222166537 4250951010 148225317 3683528272 858996686 3085314306 1821367772 3470358172 693760464 3045446064 1919976554 1118627967 3320265425 217823480 2244495584 3134716080 3294269737 1280211795 629604780 1874136507 2387262908 2159955230 71263091 829340029 1989219819 4240051885 4033974398 2014184978 3189722826 3892839789 3524450800 2405725725 2462875369 1057674002 96127104 1679214650 196825047 187400115 3308823061 2079901246 576330117 846362057 3969599127 3273650911 3270636138 3026653385 1234733994 3481735323 4250474166 2204371786 218771346 4162930688 696898895 2326462726 2062706665 3062498855 2102831861 339255262 322729135 342503187 3419568960 2072576605 2250026022 648033592 1007788697 483961785 3702597401 1714667082 2381136726 1447263550 4280319084 860210144 2382315084 2007277466 2228914686 1824080383 438532620 825935849 500877359 2967744154 2364887893 2804512037 2159038907 3520253693 2713413045 3157583789 2035603536 369053674 2952991401 3088746130 207010615 2038878021 3747599643 517068568 3917936666 239362581 3526727929 3875654331 920882499 1710284474 1963087151 2679207768 1940034916 1962589964 2124538415 2585838523 3982579818 2528992754 1075021778 3720822028 1074099063 84042434 1211570056 3344249007 4263327698 3023614065 2454380129 1751286859 3089912583 284574631 2396778104 3441681012 4173926750 562817142 249898710 614367002 2640704373 3997109940 906579593 1937883393 671360274 78254327 42258772 2925353724 4217232232 2324375106 1788253406 2881265021 1765134007 2136003002 2932413929 2333048128 1795053527 39670915 3474154620 114659337 23238175 1081122538 97235002 2544258138 998235639 4098389984 1888847622 827923726 509094212 208213400 2648308784 1179154045 2883899834 3502396807 2981325941 2461031588 3471805442 342796293 4252182722 2010786775 3648189407 2405754388 816527333 1545112101 2720176268 950453896 104898739 118488464 971299545 1165926303 3898340761 3559718711 2491116272 98559081 4061552047 68760986 3086706528 3967476273 3582307818 3336099423 1072000102 1604301096 3889698902 1029690428 3753367869 3617278140 133876303 2631177789 2006459498 1852144251 2316025284 1680116507 3248196458 2127664261 1714039084 3464483220 1581218452 502654184 1225133910 2634348745 64319923 3899139181 3136817563 3210179244 2915317101 2257596742 3625707765 3272210440 3871873177 3261663570 1416402708 558972574 2114767377 998547407 2858720285 1513221833 2978148123 2353075987 662492392 1427446164 128387058 296259345 676550072 1881953290 1975353794 1469505004 2665440601 3903393820 4265895810 2854061580 1522807874 2838387989 4274668776 86897984 3766445723 1005669985 3742565189 3548533851 2171447517 2162467101 1917582233 517719254 656878050 2108773927 2249673967 3252400827 4060878374 1106186079 1738738397'),
 ((1.3562249523668419, 0.57902973395931134, 0.17840375586854459),
  array([ 2.50608855, -3.32769161, -2.43628071,  2.21017364,  6.32881571]),
  b'1538060842 4084673797 3567979292 1239729850 367285211 1809669115 45130666 991385264 828477032 3547411687 412892114 2611461798 3185060588 1408385100 1158952296 166561839 553280661 1328807784 2377804153 4134870110 1834504165 2293346671 4003277244 4251015389 1771164741 245711715 3791356943 722047079 624463212 3431922145 2829650894 404837019 304871340 1888203004 192723383 2055267518 2975440342 2025769852 3084107656 2162840052 3843058163 3650706392 3327158698 869289390 858176179 3512777824 2712665353 2456759622 4159738928 796039529 268207433 452370569 1835532677 3401185046 3528966701 3093257708 4079161924 2757825444 1576892823 2780481760 3840055763 2850332089 2700140531 3948091357 3534623823 2753731782 1659535233 1600040979 533716146 2203672619 1150825693 3159422748 3199749811 1753538110 3111543081 1701508389 3982039612 3998124765 2956946487 3784923906 890222018 142650621 1584312005 3391242552 275460938 4131019622 3539857044 4255755340 1794980669 3606614094 2887909871 2611864317 347309760 31925843 1905798344 3732318443 1433311274 944980782 3613934032 2798587154 3418884212 4123830886 1819072934 1086830154 4265255745 3949655923 593961161 1829586426 2559602655 68442084 4268636535 63476352 1744878544 4067187872 3821850554 1154590973 3202149403 1848729117 2965929701 3790026684 2435850254 2446745894 2749584144 2072800083 1754185252 2835878202 1875894136 3200827003 6707084 535028188 3095716095 111822192 4081425250 1163091635 1439701004 2054031669 1609115818 3536355362 1960205939 2395676320 2995198661 2946120707 298581065 2928197223 4288516030 3676076658 3286274757 4210704506 1684897871 1164987752 4157199292 1956918694 3610831614 2969894332 3102031739 881772844 3649999750 2507286721 3124511800 3946702974 2068134333 3574715906 1705824570 2252109087 3486176602 2488514306 1527181662 3293497218 3091228569 3147232219 3124377796 3721380526 1359092107 2831405669 1656374352 1451963686 2740948890 1562354651 4272431367 1952615238 1865562136 920187438 2486016427 3173806354 1021596509 2651658603 1315682415 2910977473 2516485169 2265902854 3024840856 1486687489 3873769992 3681463069 695880144 4047750506 1480385951 1369529069 2435505471 1819052778 557280164 207824754 2703489630 772688332 2399777287 2108092839 2316353880 2669764870 3378929307 1805937979 707603433 3358209080 3542498375 2315581392 3351862472 3174293528 503072681 566687449 1533882052 2631617820 2271293766 3037649334 1695938308 999626611 1674994113 86916214 1173437832 3529441542 1695546657 4139274723 2040899723 2348291606 504957469 187368150 316553014 2944326543 234911361 2928897226 1621597435 2597501578 3762898916 3344816662 269066598 3933743039 2532510133 2884443925 207791323 1435525624 2961804731 3988001860 2005608852 751489010 503440190 2794002241 992594803 1152096208 2080821631 1260091864 3995451871 2560339778 1668506781 3048925305 2613091048 502039216 562355755 383399571 2368415685 3463339155 1599580186 3722985200 1732374419 654655606 3758920882 344062470 1885588132 1741684303 3410698590 674177246 2819150050 1334088775 2998032098 1300321891 865574567 1319262254 2197558741 3804318155 2530280792 1720076818 2739340802 2397648890 3568062422 961122864 3724609714 2191717181 2939734201 3881223122 4268659953 1536478554 1526832145 3038594964 4143293122 3951654040 2152534748 2499762695 3758940293 3822107671 2080602587 1380359240 749118180 1265140169 961772214 296515866 3523029618 973199955 977218308 1132552625 1762429422 833442440 3181295462 3821597098 4293567595 808492370 812854342 3455551685 1768472835 4134386786 1564697535 300700452 1254295672 150711252 2588705257 4257504029 289135920 1673291736 3757082499 1592600728 3273758051 3030267388 4086948042 636726282 3672690823 2976521845 926128985 991287523 2734424648 1433659145 3341433445 1435603305 3349635195 881114896 1163122967 3952489726 1075662639 3070723231 226779474 4147687402 2098690373 1533953776 321120613 461418638 4158144270 921342816 1406093077 133869906 3446267911 1092497779 4255334538 2589486647 2556327374 1827381393 2440855765 2027384690 2709583085 249006634 3054115315 1120564478 1326456085 3433946254 497350191 2906121340 319298456 1499147584 1272192220 2501913263 2697844429 3048930480 2881849800 3113507590 193845524 3300556130 2491019188 849691775 3114971579 177932989 273192763 1263803404 2117135059 864126578 4039940399 489447389 1411098738 3222823802 584637555 2226341255 379342254 4239701805 2958179809 716199060 3477090512 1170380935 373001429 3915124877 505299924 1273764157 1532639990 2053515359 3909980550 2520517251 1486348001 919235810 3675225561 4287935264 356541980 817051131 4181581023 3437570826 2448779329 2152070832 22088093 4211658644 2149994507 2662788847 2993039667 4286205884 4160798289 4180683099 807961153 474318409 1015936472 3467319294 772176183 1343899068 3482619200 1909187517 488281728 868637579 534251454 3400857770 451448281 1605241365 3124438975 4207428190 2847774897 4149032177 1319344487 4012897801 2328267398 3297627487 110333919 2358800440 4218369794 74533807 812667373 4276768562 1669002287 56731756 2575279729 2141197043 1788736372 1934094979 4170471203 1120795670 135232298 511552844 1171591510 2496566528 1536137622 2559235427 3404960570 194144653 4276155138 1417289237 3594735887 3095450497 1403391405 1589712167 299519939 2483958400 1606627417 1135426813 3238766665 897043314 3036832757 1582123668 127401556 1632317316 2316686337 491652887 3940698068 1334446402 3955319450 385222157 357252125 2998994832 1057682343 1869941398 1547659724 3713630067 2198552040 3606148999 1666094332 2051009868 934426499 2521303020 4133183819 729988598 4251473737 885683966 2963275022 2390745582 4205184750 2967810225 4211397452 1911430896 2611753271 272181784 3765795950 2391031709 3774344350 1724963210 1857515929 3948548557 2372959343 516475890 4243061224 2338854770 2525787408 4066184307 3405330983 3537571605 3291804315 110617364 1748049982 1670013340 1717723751 4181557834 179294441 3386382765 3924157240 2263854984 289678608 3956567340 2369841105 1773542576 630446809 259606337 1927671915 4260043408 2664816357 2640132223 4048339326 906707126 3330888562 1699587885 1719922611 1522927789 2190627130 1260397827 911108415 1871357346 3281022431 1204611844 1565568874 684166312 1813242187 3707277808 1936770075 4061728258 3574437297 3986601671 3447200822 3354899628 1686136538 2180662021 883296859 60923620 271730233 4291518600 3203996146 1787006798 222824039 3215153871 347120315 1198050949 323062803 1780096038 325194012 4017386514 1374379463 288219901 3621434984 2720864415 3532478119 852530624 611723314 3779150780 1028964958 2387022413 891632652 1580522049 666690418 3252821646 2412260380 2714098825 3003617871 3099170932 236380407 333071018 2767612145 2608385216 746183806 849410430 1100645006 333878214')]

In [345]:
distances = np.array([s[0] for s in samples])
m = np.all(np.isfinite(distances), axis=1)
distances = distances[m]
params = np.array([s[1] for s in samples])[m]
states = np.array([s[2] for s in samples])[m]

In [346]:
print(distances)


[[  5.41653195e+00   3.33016705e-01   1.46937439e-01]
 [  8.30977942e-01   4.62319371e-01   2.42271813e-01]
 [  1.39912809e-01   3.55418224e-01   4.38200632e-01]
 [  9.32163562e-01   1.85659411e-01   1.14047924e-01]
 [  1.89095906e-03   1.76056338e-01   2.08989229e-01]
 [  2.98148304e+00   1.65492958e-01   3.54124748e-01]
 [  8.97708179e-01   1.16880387e-01   1.01744797e-01]
 [  1.92650707e+00   5.64067331e-01   2.63998626e-01]
 [  2.58949119e+00   2.86971831e-01   1.79137324e-01]
 [  1.35622495e+00   5.79029734e-01   1.78403756e-01]]

In [347]:
model = PCA(1)
model.fit(distances)


Out[347]:
PCA(copy=True, n_components=1, whiten=False)

In [348]:
model.components_


Out[348]:
array([[-0.99991874, -0.00504018,  0.01170952]])

In [349]:
w = np.abs(model.components_[0])
w /= np.sum(w)
scalar = np.dot(distances, w)

In [350]:
points = np.vstack([np.sum(distances, axis=1) / 3.0, scalar]).T
corner.corner(points, range=[(0, 1), (0, 1)], labels=["raw", "optimized"]);



In [351]:
inds = np.argsort(scalar)
corner.corner(params[inds[:500]]);



In [386]:
i = 1
# p = np.array(new_params[new_inds[i]])
p = np.array([-0.7357879, -1.11290583, 0.19843469, 6.54973016, 11.39524634])
print(p)

sim.set_parameters(p)
# sim.state = new_states[new_inds[i]]
pop = sim.sample_population()
sim_stats = compute_stats(pop)
sim_stats[0], obs_stats[0]


[ -0.7357879   -1.11290583   0.19843469   6.54973016  11.39524634]
Out[386]:
(array([93674,   185,     0]), array([93718,   140,     1]))

In [387]:
plt.hist(obs_stats[1], range=period_range, histtype="step", color="k")
plt.hist(sim_stats[1], range=period_range, histtype="step", color="g");



In [388]:
plt.hist(obs_stats[2], range=depth_range, histtype="step", color="k")
plt.hist(sim_stats[2], range=depth_range, histtype="step", color="g");



In [178]:
kde = gaussian_kde(new_params[new_inds].T)
#kde.factor *= 2

In [179]:
new_n = 50000
new_x = kde.resample(new_n)
new_logpdfs = kde.logpdf(new_x)

In [180]:
new_samples = [sample(x) for x in tqdm.tqdm(new_x.T, total=new_n)]




In [190]:
new_distances = np.array([s[0] for s in new_samples])
m = np.all(np.isfinite(new_distances), axis=1)
new_distances = new_distances[m]
new_params = np.array([s[1] for s in new_samples])[m]
new_states = np.array([s[2] for s in new_samples])[m]

new_model = PCA(1)
new_model.fit(new_distances)

new_w = np.abs(new_model.components_[0])
new_w /= np.sum(new_w)
new_scalar = np.dot(new_distances, new_w)

points = np.vstack([np.sum(new_distances, axis=1) / 3.0, new_scalar]).T
corner.corner(points, range=[(0, 1), (0, 1)], labels=["raw", "optimized"]);

new_inds = np.argsort(new_scalar)[:2000]
weights = new_logpdfs[new_inds]
weights = np.exp(np.min(weights) - weights)
# weights = None
corner.corner(new_params[new_inds], weights=weights);



In [191]:
plt.hist(new_logpdfs, 50); # - np.max(new_logpdfs)



In [192]:
plt.plot(new_x[2], new_x[3], ".k")
x = new_params[new_inds]
plt.plot(x[:, 2], x[:, 3], ".g")


Out[192]:
[<matplotlib.lines.Line2D at 0x12bfe6710>]

In [205]:
new_model = PCA(1)
new_model.fit(new_distances)
w = np.abs(new_model.components_[0])
print(w / np.sum(w))

_, ev = np.linalg.eig(np.cov(new_distances, rowvar=False))
w = np.abs(ev[:, 0])
print(w / np.sum(w))


[ 0.43127316  0.33720027  0.23152658]
[ 0.43127316  0.33720027  0.23152658]

In [206]:
np.linalg.svd(np.cov(new_distances, rowvar=False))


Out[206]:
(array([[-0.72556691,  0.60172501,  0.33388572],
        [-0.56730022, -0.24838756, -0.78515864],
        [-0.38951653, -0.75909857,  0.52158052]]),
 array([ 0.00082769,  0.00074678,  0.00073729]),
 array([[-0.72556691, -0.56730022, -0.38951653],
        [ 0.60172501, -0.24838756, -0.75909857],
        [ 0.33388572, -0.78515864,  0.52158052]]))

In [207]:
ev


Out[207]:
array([[ 0.72556691,  0.60172501,  0.33388572],
       [ 0.56730022, -0.24838756, -0.78515864],
       [ 0.38951653, -0.75909857,  0.52158052]])

In [ ]:


In [ ]:


In [ ]:


In [216]:
def fit_distances(distances):
    _, ev = np.linalg.eig(np.cov(distances, rowvar=False))
    w = np.abs(ev[:, 0])
    w /= np.sum(w)
    print(w)
    return np.dot(distances, w)

In [217]:
fit_distances(new_distances).max()


[ 0.43127316  0.33720027  0.23152658]
Out[217]:
0.32805194637736179

In [222]:
# iteration 1
N = 1000
theta = list(map(sample, tqdm.tqdm((None for _ in range(N)), total=N)))
distances = np.array([s[0] for s in samples])
m = np.all(np.isfinite(distances), axis=1)
distances = distances[m]
params = np.array([s[1] for s in samples])[m]
states = np.array([s[2] for s in samples])[m]
rho = np.sum(distances, axis=1)




In [223]:
rho


Out[223]:
array([ 1.41399497,  0.64084507,  0.7839419 , ...,  0.32291759,
        0.59231125,  0.48901635])

In [252]:
tau = np.sqrt(2*np.var(params, axis=0))
eps = np.percentile(rho, 50)
weights = np.ones(len(params)) / len(params)

In [290]:
def pmc_sample_one(eps, theta0, weights, tau):
    rho = np.inf
    while rho > eps or not np.isfinite(rho):
        theta_star = theta0[np.random.choice(np.arange(len(weights)), p=weights)]
        theta_i = theta_star + tau * np.random.randn(len(theta_star))
        p, _, state = sample(theta_i)
        rho = np.sum(p)
    
    log_prior = sim.log_pdf()
    log_weight = np.log(weights) - np.sum(0.5*((theta0 - theta_i)/tau[None, :])**2 + np.log(tau[None, :]), axis=1)
    log_weight = log_prior - np.logaddexp.reduce(log_weight)
    return theta_i, rho, log_prior, log_weight

In [292]:
new_samples = [pmc_sample_one(eps, params, weights, tau) for _ in tqdm.tqdm(range(N), total=N)]




In [296]:
rho = np.array([s[1] for s in new_samples])
m = np.isfinite(rho)
rho = rho[m]
params = np.array([s[0] for s in new_samples])[m]
log_weight = np.array([s[3] for s in new_samples])[m]

In [297]:
plt.hist(np.exp(log_weight))


Out[297]:
(array([ 150.,  287.,  246.,  165.,   85.,   36.,   16.,   10.,    2.,    3.]),
 array([ 0.03304162,  0.04430958,  0.05557754,  0.0668455 ,  0.07811346,
         0.08938142,  0.10064938,  0.11191734,  0.1231853 ,  0.13445326,
         0.14572123]),
 <a list of 10 Patch objects>)

In [326]:
norm = np.sum(weights)
mu = np.sum(params * weights[:, None], axis=0) / norm
np.sqrt(2 * np.sum((params - mu)**2 * weights[:, None], axis=0) / norm), tau


Out[326]:
(array([ 0.59713739,  1.46000635,  2.27346253,  5.98294175,  5.39294517]),
 array([ 0.87059977,  1.75613841,  2.2552407 ,  5.79406228,  5.74521964]))

In [318]:
tau = np.sqrt(2*np.var(params, axis=0))
eps = np.percentile(rho, 50)
weights = np.exp(log_weight - np.logaddexp.reduce(log_weight))

In [319]:
new_samples_2 = [pmc_sample_one(eps, params, weights, tau) for _ in tqdm.tqdm(range(N), total=N)]




In [320]:
rho = np.array([s[1] for s in new_samples_2])
m = np.isfinite(rho)
rho = rho[m]
params = np.array([s[0] for s in new_samples_2])[m]
log_weights = np.array([s[3] for s in new_samples_2])[m]

In [321]:
corner.corner(params, weights=np.exp(log_weight));