diff --git a/dev/.documenter-siteinfo.json b/dev/.documenter-siteinfo.json index 27f84d5..378f6b0 100644 --- a/dev/.documenter-siteinfo.json +++ b/dev/.documenter-siteinfo.json @@ -1 +1 @@ -{"documenter":{"julia_version":"1.11.1","generation_timestamp":"2024-11-11T20:47:56","documenter_version":"1.7.0"}} \ No newline at end of file +{"documenter":{"julia_version":"1.11.1","generation_timestamp":"2024-11-11T22:07:29","documenter_version":"1.7.0"}} \ No newline at end of file diff --git a/dev/advanced_usage/index.html b/dev/advanced_usage/index.html index f5c2d64..54a16d6 100644 --- a/dev/advanced_usage/index.html +++ b/dev/advanced_usage/index.html @@ -24,7 +24,7 @@ fmm.fmm!(target_system, source_system, unsort_source_bodies=true, unsort_target_bodies=true) # standard run (defaults) fmm.fmm!(target_system, source_system, - unsort_source_bodies=false, unsort_target_bodies=false) # sorted bodies (not original indices)
(SingleTree{Float64, Vector{Tuple{Main.Body{Float64}, Vector{Float64}}}, 5}(SingleBranch{Float64}[SingleBranch{Float64}(1:100, 8, 2:9, 0, -1, [0.49849075893959255, 0.5011246180164968, 0.50101931980297], 0.8617443734929683, 0.8617443734929683, [-0.49752834600881063, 0.49752834600881063, -0.49752834600881063, 0.49752834600881063, -0.49752834600881063, 0.49752834600881063], [0.49752834600881063, 0.49752834600881063, 0.49752834600881063], 0.0, 0.0, fill(0.0), [-49.209733528008485 0.0; 0.0 0.0;;; 3.235503852070556 0.0; 0.0 0.0;;; 0.02681865248285842 0.0; 0.9591193094494834 0.0;;; … ;;; -0.0004469512083583767 0.0; -0.00015932419565861916 0.0;;; -0.00028710529956597804 0.0; -0.00031904516877669385 0.0;;; -7.588266430169126e-6 0.0; -8.400184364295124e-5 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (140659238828608, 140659238828560, 16))), SingleBranch{Float64}(1:13, 0, 10:9, 1, 1, [0.24972658593518723, 0.25236044501209143, 0.25225514679856464], 0.43087218674648414, 0.43087218674648414, [-0.24876417300440531, 0.24876417300440531, -0.24876417300440531, 0.24876417300440531, -0.24876417300440531, 0.24876417300440531], [0.24876417300440531, 0.24876417300440531, 0.24876417300440531], 0.0, 0.0, fill(0.0), [-6.326393509059363 0.0; 0.0 0.0;;; 0.10174482633884264 0.0; 0.0 0.0;;; -0.07898687772271276 0.0; 0.03841659635534152 0.0;;; … ;;; -9.654710862452212e-7 0.0; -5.591129557725438e-7 0.0;;; 1.175731767951614e-6 0.0; 2.391893864725776e-6 0.0;;; -3.893767927840696e-8 0.0; -4.373076778562484e-7 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; 0.21988918332658114 0.0; 0.0 0.0;;; -0.00907173901579822 0.0; -0.08078608463780172 0.0;;; … ;;; 6.639561085749197e-7 0.0; 1.9043445262044332e-6 0.0;;; 3.6078285954161947e-7 0.0; -1.730779168448776e-7 0.0;;; -1.5694464749247868e-8 0.0; -2.5081831237534205e-8 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (12, 15, 19))), SingleBranch{Float64}(14:23, 0, 10:9, 1, 2, [0.7472549319439978, 0.25236044501209143, 0.25225514679856464], 0.43087218674648414, 0.43087218674648414, [-0.24876417300440531, 0.24876417300440531, -0.24876417300440531, 0.24876417300440531, -0.24876417300440531, 0.24876417300440531], [0.24876417300440531, 0.24876417300440531, 0.24876417300440531], 0.0, 0.0, fill(0.0), [-5.505985520323303 0.0; 0.0 0.0;;; -0.0893400706965472 0.0; 0.0 0.0;;; 0.07469760206429724 0.0; -0.23211041531103774 0.0;;; … ;;; -2.392727383648695e-6 0.0; -2.7506172478695797e-7 0.0;;; 1.2869752996385646e-6 0.0; 8.632541193951725e-7 0.0;;; -1.4323853566229846e-7 0.0; 3.40320513459477e-7 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; 0.18613078162840202 0.0; 0.0 0.0;;; -0.03988177380448188 0.0; -0.10881091326674686 0.0;;; … ;;; 3.1493849180079693e-6 0.0; 1.79002742056861e-6 0.0;;; 2.3049009571265728e-7 0.0; -1.3797688581858191e-6 0.0;;; -1.7119818873987816e-7 0.0; 3.217930041360891e-8 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (140658692815152, 140659353541264, 143825358400))), SingleBranch{Float64}(24:40, 0, 10:9, 1, 3, [0.24972658593518723, 0.7498887910209021, 0.25225514679856464], 0.43087218674648414, 0.43087218674648414, [-0.24876417300440531, 0.24876417300440531, -0.24876417300440531, 0.24876417300440531, -0.24876417300440531, 0.24876417300440531], [0.24876417300440531, 0.24876417300440531, 0.24876417300440531], 0.0, 0.0, fill(0.0), [-7.986155913622251 0.0; 0.0 0.0;;; -0.1795979615961002 0.0; 0.0 0.0;;; -0.1708212423759164 0.0; 0.03135320324442914 0.0;;; … ;;; -6.066362373385743e-6 0.0; 2.4234495602853986e-6 0.0;;; 2.327392085993626e-6 0.0; 4.871331224296273e-7 0.0;;; 2.4751088043185402e-8 0.0; -5.827716675663792e-8 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; -0.23122788327035293 0.0; 0.0 0.0;;; -0.04900663119822446 0.0; 0.09175801803089013 0.0;;; … ;;; 4.485772070448108e-6 0.0; -4.4630903906536425e-7 0.0;;; 4.303552019451355e-7 0.0; -1.0428735117063708e-6 0.0;;; -6.452660186998594e-8 0.0; -7.836101483352229e-8 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (0, 0, 141733920768))), SingleBranch{Float64}(41:57, 0, 10:9, 1, 4, [0.7472549319439978, 0.7498887910209021, 0.25225514679856464], 0.43087218674648414, 0.43087218674648414, [-0.24876417300440531, 0.24876417300440531, -0.24876417300440531, 0.24876417300440531, -0.24876417300440531, 0.24876417300440531], [0.24876417300440531, 0.24876417300440531, 0.24876417300440531], 0.0, 0.0, fill(0.0), [-9.931355245362722 0.0; 0.0 0.0;;; 0.004639293314162463 0.0; 0.0 0.0;;; 0.10230318193552163 0.0; 0.3431041586399578 0.0;;; … ;;; -5.8057861586053485e-6 0.0; -3.6767179441275553e-6 0.0;;; 1.970849569609788e-6 0.0; -1.1263384149017906e-6 0.0;;; 4.6063384099401923e-7 0.0; -7.362879677517756e-7 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; 0.24833262559729297 0.0; 0.0 0.0;;; -0.04049792411417641 0.0; 0.11830484901746985 0.0;;; … ;;; 7.332767131734295e-6 0.0; -4.818366848970212e-6 0.0;;; 6.296375165101449e-7 0.0; 2.450158453149185e-6 0.0;;; -2.5398566738723024e-7 0.0; -1.9922601565040447e-8 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (140658692327440, 140658692327472, 143825358400))), SingleBranch{Float64}(58:71, 0, 10:9, 1, 5, [0.24972658593518723, 0.25236044501209143, 0.7497834928073753], 0.43087218674648414, 0.43087218674648414, [-0.24876417300440531, 0.24876417300440531, -0.24876417300440531, 0.24876417300440531, -0.24876417300440531, 0.24876417300440531], [0.24876417300440531, 0.24876417300440531, 0.24876417300440531], 0.0, 0.0, fill(0.0), [-6.0812379817404665 0.0; 0.0 0.0;;; 0.2500525077504865 0.0; 0.0 0.0;;; -0.31821199437047437 0.0; 0.12219381204800842 0.0;;; … ;;; 3.886164164482793e-6 0.0; -7.451230042206713e-6 0.0;;; -1.5655861775267537e-6 0.0; 1.3488384490746591e-6 0.0;;; -2.65136301189794e-7 0.0; -1.0396969077621681e-7 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; 0.23600456619228227 0.0; 0.0 0.0;;; 0.00780054815104303 0.0; 0.01243800251579276 0.0;;; … ;;; -1.457243306148132e-8 0.0; 1.604225902871519e-9 0.0;;; -2.836500215179685e-10 0.0; -3.581821796740947e-10 0.0;;; 1.9003405206797664e-12 0.0; -5.3575717814609175e-12 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (0, 140655883976704, 1))), SingleBranch{Float64}(72:82, 0, 10:9, 1, 6, [0.7472549319439978, 0.25236044501209143, 0.7497834928073753], 0.43087218674648414, 0.43087218674648414, [-0.24876417300440531, 0.24876417300440531, -0.24876417300440531, 0.24876417300440531, -0.24876417300440531, 0.24876417300440531], [0.24876417300440531, 0.24876417300440531, 0.24876417300440531], 0.0, 0.0, fill(0.0), [-5.643660411433685 0.0; 0.0 0.0;;; -0.09740163237448708 0.0; 0.0 0.0;;; 0.30569645349438196 0.0; 0.2359234953909746 0.0;;; … ;;; -9.82916763080865e-7 0.0; -4.2285511081766585e-7 0.0;;; 2.7225441029521644e-6 0.0; -9.866422822602592e-7 0.0;;; -2.884182756506517e-7 0.0; 2.1891312191953625e-7 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; -0.137250125216142 0.0; 0.0 0.0;;; -0.041848288296333136 0.0; 0.07154851443791577 0.0;;; … ;;; 7.308420503707386e-7 0.0; 1.2365335735668517e-8 0.0;;; 1.4021073394047346e-7 0.0; -2.3067492312302074e-7 0.0;;; -1.5499976899256273e-8 0.0; -2.8685176609168157e-8 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (140658691966256, 140658691966288, 141733920768))), SingleBranch{Float64}(83:89, 0, 10:9, 1, 7, [0.24972658593518723, 0.7498887910209021, 0.7497834928073753], 0.43087218674648414, 0.43087218674648414, [-0.24876417300440531, 0.24876417300440531, -0.24876417300440531, 0.24876417300440531, -0.24876417300440531, 0.24876417300440531], [0.24876417300440531, 0.24876417300440531, 0.24876417300440531], 0.0, 0.0, fill(0.0), [-2.3207471469996026 0.0; 0.0 0.0;;; 0.09584922777112714 0.0; 0.0 0.0;;; -0.03459176396777507 0.0; -0.04020642273548641 0.0;;; … ;;; 3.930977957593639e-6 0.0; -1.9071506252246133e-6 0.0;;; 4.262561393862879e-7 0.0; 6.012045573535614e-7 0.0;;; -1.296847519879538e-7 0.0; -1.748757755002258e-8 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; 0.14971540025278463 0.0; 0.0 0.0;;; -0.10199818137039851 0.0; -0.00404107784645201 0.0;;; … ;;; -1.5142366400508734e-6 0.0; -1.807350708728618e-7 0.0;;; 6.688310694761936e-7 0.0; 1.0683350833198992e-7 0.0;;; -9.055558759133121e-8 0.0; -1.8167298693653792e-8 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (140659292046896, 0, 143825358400))), SingleBranch{Float64}(90:100, 0, 10:9, 1, 8, [0.7472549319439978, 0.7498887910209021, 0.7497834928073753], 0.43087218674648414, 0.43087218674648414, [-0.24876417300440531, 0.24876417300440531, -0.24876417300440531, 0.24876417300440531, -0.24876417300440531, 0.24876417300440531], [0.24876417300440531, 0.24876417300440531, 0.24876417300440531], 0.0, 0.0, fill(0.0), [-5.414197799467094 0.0; 0.0 0.0;;; 0.5897626670629665 0.0; 0.0 0.0;;; -0.1138694027478626 0.0; -0.009802047749392043 0.0;;; … ;;; 1.152740503052551e-5 0.0; -4.517016990218442e-6 0.0;;; -4.140046433990845e-6 0.0; -1.566383749352849e-6 0.0;;; 1.2469713505945974e-7 0.0; 2.024928160458584e-7 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; 0.21095730321733874 0.0; 0.0 0.0;;; 0.09347241596581823 0.0; -0.08394581821691316 0.0;;; … ;;; -3.5372171155417328e-6 0.0; -4.908219455216665e-6 0.0;;; -2.1396426594075856e-6 0.0; -4.6629625718216964e-7 0.0;;; -2.2671999108049045e-7 0.0; 1.289627938417499e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (140659438641160, 140658648808304, 144361781416)))], UnitRange{Int64}[1:1, 2:9], [2, 3, 4, 5, 6, 7, 8, 9], [8, 19, 24, 25, 30, 33, 35, 43, 52, 55 … 37, 41, 42, 49, 64, 71, 78, 79, 87, 88], [90, 83, 24, 72, 58, 59, 25, 1, 60, 73 … 23, 38, 80, 56, 39, 81, 82, 40, 13, 57], Tuple{Main.Body{Float64}, Vector{Float64}}[(Main.Body{Float64}([0.4660552366407049, 0.13111968284280429, 0.1908671255470663], 0.010673064683743582, 0.8267772979915037), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.3447705767476935, 0.07006788456539503, 0.2923577651940017], 0.004397261752829818, 0.5517592405944612), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.4911645955827536, 0.040324077362882016, 0.317784960572128], 0.004572616745488207, 0.1280946812518453), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.40516617554370093, 0.32616788197738866, 0.056217617276771326], 0.010585392495089252, 0.012104263433355023), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.18599865953230243, 0.15030687931482978, 0.12186905472850917], 0.00530068913657312, 0.7976632010743766), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.4346643684051661, 0.13212864017170378, 0.19630837394498046], 0.004567269441401094, 0.39368661127046056), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.0009624129307819196, 0.2950090065083799, 0.07129536266232961], 0.0030690713098188082, 0.49288942845129), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.06701550238862786, 0.25483654814098344, 0.3238706353789649], 0.00505556524793979, 0.4522470321326544), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.1639092692596178, 0.44194134967919385, 0.42176372731880774], 0.010361551731613024, 0.6906085781397405), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.47398778866030766, 0.2026564230666169, 0.09034743825060043], 0.004653876665231441, 0.5317908249797711), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) … (Main.Body{Float64}([0.6906947058638981, 0.7538566588961716, 0.5900448016217961], 0.0029834697498147098, 0.10279531111389983), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.9917278520449697, 0.794049105113352, 0.7711676013529396], 0.007048482826053925, 0.6415640852627671), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.8289326726987614, 0.6101948372863522, 0.519118545970754], 0.0018327766115619636, 0.2379274720768212), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.6174588851816368, 0.6522104227559661, 0.5847276813173017], 0.00761078545286029, 0.9704213765219395), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.5232139755745984, 0.6045990113354003, 0.5429901209014718], 0.0060841769615967035, 0.8911459293930191), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.9581632293408542, 0.9135421917156796, 0.7073373243745936], 0.010449665448269006, 0.8357622456841612), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.7658820877217039, 0.9631550531437152, 0.5344687381454426], 0.0068829275392983565, 0.07479369706302341), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.960720320334046, 0.651071293378233, 0.6942906786235435], 0.0097351936375095, 0.44997536837158536), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.7803189670835223, 0.8311591102139488, 0.5707525801936775], 0.008043628052385822, 0.08862350083761417), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.5793632955101715, 0.5629439590892656, 0.5388261895900366], 0.008824875260231754, 0.805646285033539), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0])], Val{5}(), 50), SingleTree{Float64, Vector{Tuple{Main.Body{Float64}, Vector{Float64}}}, 5}(SingleBranch{Float64}[SingleBranch{Float64}(1:100, 8, 2:9, 0, -1, [0.49850630217496006, 0.5029084590406193, 0.4970227729348794], 0.8572644572282587, 0.8572644572282587, [-0.49494186514743355, 0.49494186514743355, -0.49494186514743355, 0.49494186514743355, -0.49494186514743355, 0.49494186514743355], [0.49494186514743355, 0.49494186514743355, 0.49494186514743355], 0.0, 0.0, fill(0.0), [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (140658670393424, 140658670393456, 140658670393488))), SingleBranch{Float64}(1:14, 0, 10:9, 1, 1, [0.2510353696012433, 0.25543752646690254, 0.24955184036116262], 0.42863222861412936, 0.42863222861412936, [-0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677], [0.24747093257371677, 0.24747093257371677, 0.24747093257371677], 0.0, 0.0, fill(0.0), [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; -0.2148612382952998 0.0; -0.0 0.0;;; -0.04833896697010254 0.0; -0.08941268169127015 0.0;;; … ;;; 3.5751904359505736e-6 0.0; 3.0080507578758053e-7 0.0;;; 3.8236458599367976e-7 0.0; 8.757176386082573e-7 0.0;;; -5.567979953388733e-8 0.0; 7.122692732518039e-8 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (140659353542913, 140659402506832, 140659240390400))), SingleBranch{Float64}(15:32, 0, 10:9, 1, 2, [0.7459772347486768, 0.25543752646690254, 0.24955184036116262], 0.42863222861412936, 0.42863222861412936, [-0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677], [0.24747093257371677, 0.24747093257371677, 0.24747093257371677], 0.0, 0.0, fill(0.0), [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; -0.11109187197856953 0.0; -0.0 0.0;;; -0.09395587638099494 0.0; -0.03393406206661734 0.0;;; … ;;; -3.0928893153242635e-7 0.0; -5.266357454009592e-7 0.0;;; -8.453485198034652e-8 0.0; -4.5314409979717737e-7 0.0;;; 1.3384370562270982e-8 0.0; -8.18136577012236e-8 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (140658648801840, 140658648801872, 140659292046128))), SingleBranch{Float64}(33:42, 0, 10:9, 1, 3, [0.2510353696012433, 0.7503793916143361, 0.24955184036116262], 0.42863222861412936, 0.42863222861412936, [-0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677], [0.24747093257371677, 0.24747093257371677, 0.24747093257371677], 0.0, 0.0, fill(0.0), [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; -0.1902545870569238 0.0; -0.0 0.0;;; -0.08523619914991601 0.0; 0.10063606184199078 0.0;;; … ;;; 4.515701992660869e-6 0.0; 2.690965808809799e-6 0.0;;; 2.2681808274429954e-6 0.0; -7.785616815693268e-7 0.0;;; 1.2086933929990936e-7 0.0; -3.097138724670615e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (140659358428848, 140659358345232, 140659292046128))), SingleBranch{Float64}(43:55, 0, 10:9, 1, 4, [0.7459772347486768, 0.7503793916143361, 0.24955184036116262], 0.42863222861412936, 0.42863222861412936, [-0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677], [0.24747093257371677, 0.24747093257371677, 0.24747093257371677], 0.0, 0.0, fill(0.0), [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; -0.10425315723209527 0.0; -0.0 0.0;;; -0.04040250617839929 0.0; -0.04562408503868281 0.0;;; … ;;; 1.3994426612384809e-7 0.0; -9.646789543011186e-8 0.0;;; 5.8163042620289284e-8 0.0; 1.4387157402797034e-8 0.0;;; 3.2488834697645844e-9 0.0; 6.2058798109508465e-9 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (140658692815920, 140659358345232, 140659292046128))), SingleBranch{Float64}(56:68, 0, 10:9, 1, 5, [0.2510353696012433, 0.25543752646690254, 0.7444937055085962], 0.42863222861412936, 0.42863222861412936, [-0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677], [0.24747093257371677, 0.24747093257371677, 0.24747093257371677], 0.0, 0.0, fill(0.0), [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; 0.1406114031795701 0.0; 0.0 0.0;;; 0.04115679478744828 0.0; -0.03533755162400021 0.0;;; … ;;; -1.2881546024813352e-7 0.0; -2.0655710448954946e-7 0.0;;; -4.840981119340681e-8 0.0; -1.5172010562775518e-8 0.0;;; -3.596485511575488e-9 0.0; 1.545042368324494e-9 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (140659358428673, 140658669650448, 140659292046128))), SingleBranch{Float64}(69:78, 0, 10:9, 1, 6, [0.7459772347486768, 0.25543752646690254, 0.7444937055085962], 0.42863222861412936, 0.42863222861412936, [-0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677], [0.24747093257371677, 0.24747093257371677, 0.24747093257371677], 0.0, 0.0, fill(0.0), [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; -0.05941950550840777 0.0; -0.0 0.0;;; -0.06984898585556935 0.0; 0.10325321360106476 0.0;;; … ;;; -6.688472512156468e-7 0.0; -1.4501297809812144e-7 0.0;;; 4.3233604883670166e-7 0.0; -4.1299565937718063e-7 0.0;;; -4.1888246519238254e-8 0.0; -2.4735114753799555e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (140658609217488, 140658648803120, 140659292046896))), SingleBranch{Float64}(79:86, 0, 10:9, 1, 7, [0.2510353696012433, 0.7503793916143361, 0.7444937055085962], 0.42863222861412936, 0.42863222861412936, [-0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677], [0.24747093257371677, 0.24747093257371677, 0.24747093257371677], 0.0, 0.0, fill(0.0), [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; -0.19774130005920343 0.0; -0.0 0.0;;; 0.10337420516639845 0.0; -0.003702501499532632 0.0;;; … ;;; 3.0951077862846165e-6 0.0; -3.337097810420304e-7 0.0;;; -9.336410389602992e-7 0.0; 1.3462336691028458e-7 0.0;;; 9.711269933660484e-8 0.0; -1.7571838450287563e-8 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (140659438647184, 140659438647632, 140659438648080))), SingleBranch{Float64}(87:100, 0, 10:9, 1, 8, [0.7459772347486768, 0.7503793916143361, 0.7444937055085962], 0.42863222861412936, 0.42863222861412936, [-0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677], [0.24747093257371677, 0.24747093257371677, 0.24747093257371677], 0.0, 0.0, fill(0.0), [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; -0.0593731535051507 0.0; -0.0 0.0;;; 0.08539386253795012 0.0; 0.039405099639804875 0.0;;; … ;;; -1.6817191281206375e-8 0.0; -5.988143577896676e-8 0.0;;; 3.0556184471062655e-8 0.0; -1.9110878655930648e-7 0.0;;; -3.415675534882339e-8 0.0; 5.09167765671537e-8 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (20753281974944, 20753281979104, 140655883977376)))], UnitRange{Int64}[1:1, 2:9], [2, 3, 4, 5, 6, 7, 8, 9], [11, 19, 33, 43, 59, 63, 67, 68, 69, 72 … 20, 24, 31, 37, 42, 48, 60, 74, 94, 100], [69, 87, 70, 71, 79, 43, 56, 57, 44, 88 … 12, 55, 30, 99, 31, 32, 13, 68, 14, 100], Tuple{Main.Body{Float64}, Vector{Float64}}[(Main.Body{Float64}([0.3108257809580788, 0.018444977603329638, 0.1448495720156966], 0.004532460900544307, 0.6204619994567462), [6.656408075963273, 0.0, 0.0, 0.0, -3.5398731184273053, -9.295941020322173, -5.413464408657029, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.04239416161334009, 0.32064719274449505, 0.48130130480471], 0.009728577099494845, 0.28031926582466293), [7.0836044891461585, 0.0, 0.0, 0.0, -8.857359963224212, -3.7043629243965284, 2.6867154926403254, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.431557182411335, 0.05729104146002573, 0.4039530057283216], 0.007375228802112362, 0.30999664605164), [7.739018612595635, 0.0, 0.0, 0.0, -0.37792795808645685, -9.107993435650643, 1.4755711117578612, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.3760481927883257, 0.30427758942618754, 0.0424352411332668], 0.008737504330345026, 0.3856873023831733), [7.497010356100949, 0.0, 0.0, 0.0, -4.93733078661837, -0.9512848217887391, -9.321732229232445, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.40796257253884594, 0.3169707043296718, 0.17481471770913004], 0.0006599191423210741, 0.6303355439118526), [8.603145628291282, 0.0, 0.0, 0.0, -5.092945448737958, -0.35201620762089525, -5.017596524805857, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.44526311787148065, 0.3123953708377504, 0.0031981489559432807], 0.002234687294853749, 0.2526616143954684), [7.394307495297395, 0.0, 0.0, 0.0, -4.074197603049914, -0.8843005298526739, -12.129516167989486, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.09506281506194814, 0.37886831688663536, 0.2883280135877385], 0.0026513954621956654, 0.34851211014036976), [7.743796789514465, 0.0, 0.0, 0.0, -8.951264053959937, -1.9617883735084023, -4.658746399724488, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.385983388890926, 0.2099869174765614, 0.2103305433014464], 0.002673503120625262, 0.731920338683347), [8.699005360233967, 0.0, 0.0, 0.0, -9.322285862701646, 2.555093162665515, -1.874069896074265, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.4374975251302734, 0.2511138400545102, 0.1042125323068771], 0.0079424961191749, 0.28373707089135336), [8.545986552488209, 0.0, 0.0, 0.0, -10.43682822175596, 6.712123318844789, -6.799535652933345, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.33885320202792324, 0.21079845214701087, 0.07899763839448037], 0.0008797470416774469, 0.6588156699242567), [7.516005325514882, 0.0, 0.0, 0.0, -4.836766418598849, -2.225174045341691, -8.617929217958249, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) … (Main.Body{Float64}([0.761014175927334, 0.5625502355864805, 0.6362450642237143], 0.00477924026951857, 0.08790391023238642), [8.696622821572635, 0.0, 0.0, 0.0, 5.548245493459153, 0.6647207464342835, 6.278537989010481, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.741658189777045, 0.8784627652056287, 0.6026198177064941], 0.0028805176050072864, 0.24086407961581202), [7.541219085822956, 0.0, 0.0, 0.0, 0.3131879052669324, 8.516359052958578, 5.9072937820384634, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.6559052253949811, 0.9583482860298168, 0.6198294517560885], 0.008868504569149492, 0.17689335268130646), [6.840663348171893, 0.0, 0.0, 0.0, 0.2944062620800215, 7.712555707441569, 4.705741898589104, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.5044880780307363, 0.9392745252820915, 0.8236302658478007], 0.0035072444787534506, 0.5071979794728987), [5.902585114087375, 0.0, 0.0, 0.0, -0.7298300723802948, 5.074581758334187, 4.958470552095021, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.7719706502318479, 0.987371940477909, 0.5992694800324155], 0.000561642365078654, 0.020303598406039902), [6.659400467615292, 0.0, 0.0, 0.0, 0.9370333132030003, 8.321557859554815, 4.446254367712357, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.9270141064885, 0.6996533718950176, 0.7573000900883736], 0.005090949172292981, 0.41670321904423535), [7.294560374728856, 0.0, 0.0, 0.0, 0.7797311911756291, 1.8536289165730497, 8.106518301667714, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.6705665433906464, 0.8074865918599404, 0.5791268533462717], 0.008580519038422284, 0.2990005802447111), [8.378169492760158, 0.0, 0.0, 0.0, 0.672628905011095, 11.149982109624677, 5.703626251533733, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.5199695296735932, 0.5150132871145792, 0.7028351735495706], 0.0037563211861237865, 0.28526666192551975), [8.680614827593462, 0.0, 0.0, 0.0, -3.197166807339375, 0.26787494900673947, 8.549839228303712, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.5109351365074641, 0.7269107204213763, 0.8057341233600875], 0.002916397428800248, 0.13080774080166646), [7.060195088980969, 0.0, 0.0, 0.0, -0.8852806157001135, 4.388943223104779, 7.646679439394734, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.8247874340282866, 0.5795916665384359, 0.8038668590137469], 0.0035401668870093193, 0.6409979037657155), [7.436136404880495, 0.0, 0.0, 0.0, 1.9624183678921265, 3.8680899850301302, 6.034444873485874, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0])], Val{5}(), 50), Tuple{Int32, Int32, Int64}[], StaticArraysCore.SVector{2, Int32}[[2, 2], [3, 2], [4, 2], [5, 2], [6, 2], [7, 2], [8, 2], [9, 2], [2, 3], [3, 3] … [8, 8], [9, 8], [2, 9], [3, 9], [4, 9], [5, 9], [6, 9], [7, 9], [8, 9], [9, 9]], DerivativesSwitch{true, true, true}())
Users are able to define the tree to be used in the FMM by passing in a previously created tree into the fmm!
call. For convenience, the upward_pass
, horizontal_pass
, and downward_pass
can be toggled off seperately. These are important to toggle when generating octrees to be reused. Additionally, unsort_target_bodies
and unsort_source_bodies
should be set to false
when generating the reusable trees.
upward_pass
creates the multipole expansions for each branchhorizontal_pass
evaluates the expansions in the appropriate locationsdownward_pass
applies parent expansions to children branchestarget_system = generate_gravitational(123, 100)
+ unsort_source_bodies=false, unsort_target_bodies=false) # sorted bodies (not original indices)
(SingleTree{Float64, Vector{Tuple{Main.Body{Float64}, Vector{Float64}}}, 5}(SingleBranch{Float64}[SingleBranch{Float64}(1:100, 8, 2:9, 0, -1, [0.49849075893959255, 0.5011246180164968, 0.50101931980297], 0.8617443734929683, 0.8617443734929683, [-0.49752834600881063, 0.49752834600881063, -0.49752834600881063, 0.49752834600881063, -0.49752834600881063, 0.49752834600881063], [0.49752834600881063, 0.49752834600881063, 0.49752834600881063], 0.0, 0.0, fill(0.0), [-49.209733528008485 0.0; 0.0 0.0;;; 3.235503852070556 0.0; 0.0 0.0;;; 0.02681865248285842 0.0; 0.9591193094494834 0.0;;; … ;;; -0.0004469512083583767 0.0; -0.00015932419565861916 0.0;;; -0.00028710529956597804 0.0; -0.00031904516877669385 0.0;;; -7.588266430169126e-6 0.0; -8.400184364295124e-5 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (139835851372880, 139835914313736, 139835767727712))), SingleBranch{Float64}(1:13, 0, 10:9, 1, 1, [0.24972658593518723, 0.25236044501209143, 0.25225514679856464], 0.43087218674648414, 0.43087218674648414, [-0.24876417300440531, 0.24876417300440531, -0.24876417300440531, 0.24876417300440531, -0.24876417300440531, 0.24876417300440531], [0.24876417300440531, 0.24876417300440531, 0.24876417300440531], 0.0, 0.0, fill(0.0), [-6.326393509059363 0.0; 0.0 0.0;;; 0.10174482633884264 0.0; 0.0 0.0;;; -0.07898687772271276 0.0; 0.03841659635534152 0.0;;; … ;;; -9.654710862452212e-7 0.0; -5.591129557725438e-7 0.0;;; 1.175731767951614e-6 0.0; 2.391893864725776e-6 0.0;;; -3.893767927840696e-8 0.0; -4.373076778562484e-7 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; 0.21988918332658114 0.0; 0.0 0.0;;; -0.00907173901579822 0.0; -0.08078608463780172 0.0;;; … ;;; 6.639561085749197e-7 0.0; 1.9043445262044332e-6 0.0;;; 3.6078285954161947e-7 0.0; -1.730779168448776e-7 0.0;;; -1.5694464749247868e-8 0.0; -2.5081831237534205e-8 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (139835851372848, 139835716062976, 414376003006))), SingleBranch{Float64}(14:23, 0, 10:9, 1, 2, [0.7472549319439978, 0.25236044501209143, 0.25225514679856464], 0.43087218674648414, 0.43087218674648414, [-0.24876417300440531, 0.24876417300440531, -0.24876417300440531, 0.24876417300440531, -0.24876417300440531, 0.24876417300440531], [0.24876417300440531, 0.24876417300440531, 0.24876417300440531], 0.0, 0.0, fill(0.0), [-5.505985520323303 0.0; 0.0 0.0;;; -0.0893400706965472 0.0; 0.0 0.0;;; 0.07469760206429724 0.0; -0.23211041531103774 0.0;;; … ;;; -2.392727383648695e-6 0.0; -2.7506172478695797e-7 0.0;;; 1.2869752996385646e-6 0.0; 8.632541193951725e-7 0.0;;; -1.4323853566229846e-7 0.0; 3.40320513459477e-7 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; 0.18613078162840202 0.0; 0.0 0.0;;; -0.03988177380448188 0.0; -0.10881091326674686 0.0;;; … ;;; 3.1493849180079693e-6 0.0; 1.79002742056861e-6 0.0;;; 2.3049009571265728e-7 0.0; -1.3797688581858191e-6 0.0;;; -1.7119818873987816e-7 0.0; 3.217930041360891e-8 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (139835909861312, 0, 0))), SingleBranch{Float64}(24:40, 0, 10:9, 1, 3, [0.24972658593518723, 0.7498887910209021, 0.25225514679856464], 0.43087218674648414, 0.43087218674648414, [-0.24876417300440531, 0.24876417300440531, -0.24876417300440531, 0.24876417300440531, -0.24876417300440531, 0.24876417300440531], [0.24876417300440531, 0.24876417300440531, 0.24876417300440531], 0.0, 0.0, fill(0.0), [-7.986155913622251 0.0; 0.0 0.0;;; -0.1795979615961002 0.0; 0.0 0.0;;; -0.1708212423759164 0.0; 0.03135320324442914 0.0;;; … ;;; -6.066362373385743e-6 0.0; 2.4234495602853986e-6 0.0;;; 2.327392085993626e-6 0.0; 4.871331224296273e-7 0.0;;; 2.4751088043185402e-8 0.0; -5.827716675663792e-8 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; -0.23122788327035293 0.0; 0.0 0.0;;; -0.04900663119822446 0.0; 0.09175801803089013 0.0;;; … ;;; 4.485772070448108e-6 0.0; -4.4630903906536425e-7 0.0;;; 4.303552019451355e-7 0.0; -1.0428735117063708e-6 0.0;;; -6.452660186998594e-8 0.0; -7.836101483352229e-8 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (139835755078704, 139835767727712, 0))), SingleBranch{Float64}(41:57, 0, 10:9, 1, 4, [0.7472549319439978, 0.7498887910209021, 0.25225514679856464], 0.43087218674648414, 0.43087218674648414, [-0.24876417300440531, 0.24876417300440531, -0.24876417300440531, 0.24876417300440531, -0.24876417300440531, 0.24876417300440531], [0.24876417300440531, 0.24876417300440531, 0.24876417300440531], 0.0, 0.0, fill(0.0), [-9.931355245362722 0.0; 0.0 0.0;;; 0.004639293314162463 0.0; 0.0 0.0;;; 0.10230318193552163 0.0; 0.3431041586399578 0.0;;; … ;;; -5.8057861586053485e-6 0.0; -3.6767179441275553e-6 0.0;;; 1.970849569609788e-6 0.0; -1.1263384149017906e-6 0.0;;; 4.6063384099401923e-7 0.0; -7.362879677517756e-7 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; 0.24833262559729297 0.0; 0.0 0.0;;; -0.04049792411417641 0.0; 0.11830484901746985 0.0;;; … ;;; 7.332767131734295e-6 0.0; -4.818366848970212e-6 0.0;;; 6.296375165101449e-7 0.0; 2.450158453149185e-6 0.0;;; -2.5398566738723024e-7 0.0; -1.9922601565040447e-8 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (139835166569072, 139835166569104, 0))), SingleBranch{Float64}(58:71, 0, 10:9, 1, 5, [0.24972658593518723, 0.25236044501209143, 0.7497834928073753], 0.43087218674648414, 0.43087218674648414, [-0.24876417300440531, 0.24876417300440531, -0.24876417300440531, 0.24876417300440531, -0.24876417300440531, 0.24876417300440531], [0.24876417300440531, 0.24876417300440531, 0.24876417300440531], 0.0, 0.0, fill(0.0), [-6.0812379817404665 0.0; 0.0 0.0;;; 0.2500525077504865 0.0; 0.0 0.0;;; -0.31821199437047437 0.0; 0.12219381204800842 0.0;;; … ;;; 3.886164164482793e-6 0.0; -7.451230042206713e-6 0.0;;; -1.5655861775267537e-6 0.0; 1.3488384490746591e-6 0.0;;; -2.65136301189794e-7 0.0; -1.0396969077621681e-7 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; 0.23600456619228227 0.0; 0.0 0.0;;; 0.00780054815104303 0.0; 0.01243800251579276 0.0;;; … ;;; -1.457243306148132e-8 0.0; 1.604225902871519e-9 0.0;;; -2.836500215179685e-10 0.0; -3.581821796740947e-10 0.0;;; 1.9003405206797664e-12 0.0; -5.3575717814609175e-12 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (139835892839952, 139835892839984, 139835716062976))), SingleBranch{Float64}(72:82, 0, 10:9, 1, 6, [0.7472549319439978, 0.25236044501209143, 0.7497834928073753], 0.43087218674648414, 0.43087218674648414, [-0.24876417300440531, 0.24876417300440531, -0.24876417300440531, 0.24876417300440531, -0.24876417300440531, 0.24876417300440531], [0.24876417300440531, 0.24876417300440531, 0.24876417300440531], 0.0, 0.0, fill(0.0), [-5.643660411433685 0.0; 0.0 0.0;;; -0.09740163237448708 0.0; 0.0 0.0;;; 0.30569645349438196 0.0; 0.2359234953909746 0.0;;; … ;;; -9.82916763080865e-7 0.0; -4.2285511081766585e-7 0.0;;; 2.7225441029521644e-6 0.0; -9.866422822602592e-7 0.0;;; -2.884182756506517e-7 0.0; 2.1891312191953625e-7 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; -0.137250125216142 0.0; 0.0 0.0;;; -0.041848288296333136 0.0; 0.07154851443791577 0.0;;; … ;;; 7.308420503707386e-7 0.0; 1.2365335735668517e-8 0.0;;; 1.4021073394047346e-7 0.0; -2.3067492312302074e-7 0.0;;; -1.5499976899256273e-8 0.0; -2.8685176609168157e-8 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (139835909861312, 0, 0))), SingleBranch{Float64}(83:89, 0, 10:9, 1, 7, [0.24972658593518723, 0.7498887910209021, 0.7497834928073753], 0.43087218674648414, 0.43087218674648414, [-0.24876417300440531, 0.24876417300440531, -0.24876417300440531, 0.24876417300440531, -0.24876417300440531, 0.24876417300440531], [0.24876417300440531, 0.24876417300440531, 0.24876417300440531], 0.0, 0.0, fill(0.0), [-2.3207471469996026 0.0; 0.0 0.0;;; 0.09584922777112714 0.0; 0.0 0.0;;; -0.03459176396777507 0.0; -0.04020642273548641 0.0;;; … ;;; 3.930977957593639e-6 0.0; -1.9071506252246133e-6 0.0;;; 4.262561393862879e-7 0.0; 6.012045573535614e-7 0.0;;; -1.296847519879538e-7 0.0; -1.748757755002258e-8 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; 0.14971540025278463 0.0; 0.0 0.0;;; -0.10199818137039851 0.0; -0.00404107784645201 0.0;;; … ;;; -1.5142366400508734e-6 0.0; -1.807350708728618e-7 0.0;;; 6.688310694761936e-7 0.0; 1.0683350833198992e-7 0.0;;; -9.055558759133121e-8 0.0; -1.8167298693653792e-8 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (1, 1, 433554859489))), SingleBranch{Float64}(90:100, 0, 10:9, 1, 8, [0.7472549319439978, 0.7498887910209021, 0.7497834928073753], 0.43087218674648414, 0.43087218674648414, [-0.24876417300440531, 0.24876417300440531, -0.24876417300440531, 0.24876417300440531, -0.24876417300440531, 0.24876417300440531], [0.24876417300440531, 0.24876417300440531, 0.24876417300440531], 0.0, 0.0, fill(0.0), [-5.414197799467094 0.0; 0.0 0.0;;; 0.5897626670629665 0.0; 0.0 0.0;;; -0.1138694027478626 0.0; -0.009802047749392043 0.0;;; … ;;; 1.152740503052551e-5 0.0; -4.517016990218442e-6 0.0;;; -4.140046433990845e-6 0.0; -1.566383749352849e-6 0.0;;; 1.2469713505945974e-7 0.0; 2.024928160458584e-7 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; 0.21095730321733874 0.0; 0.0 0.0;;; 0.09347241596581823 0.0; -0.08394581821691316 0.0;;; … ;;; -3.5372171155417328e-6 0.0; -4.908219455216665e-6 0.0;;; -2.1396426594075856e-6 0.0; -4.6629625718216964e-7 0.0;;; -2.2671999108049045e-7 0.0; 1.289627938417499e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (139835125210736, 139835767718640, 0)))], UnitRange{Int64}[1:1, 2:9], [2, 3, 4, 5, 6, 7, 8, 9], [8, 19, 24, 25, 30, 33, 35, 43, 52, 55 … 37, 41, 42, 49, 64, 71, 78, 79, 87, 88], [90, 83, 24, 72, 58, 59, 25, 1, 60, 73 … 23, 38, 80, 56, 39, 81, 82, 40, 13, 57], Tuple{Main.Body{Float64}, Vector{Float64}}[(Main.Body{Float64}([0.4660552366407049, 0.13111968284280429, 0.1908671255470663], 0.010673064683743582, 0.8267772979915037), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.3447705767476935, 0.07006788456539503, 0.2923577651940017], 0.004397261752829818, 0.5517592405944612), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.4911645955827536, 0.040324077362882016, 0.317784960572128], 0.004572616745488207, 0.1280946812518453), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.40516617554370093, 0.32616788197738866, 0.056217617276771326], 0.010585392495089252, 0.012104263433355023), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.18599865953230243, 0.15030687931482978, 0.12186905472850917], 0.00530068913657312, 0.7976632010743766), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.4346643684051661, 0.13212864017170378, 0.19630837394498046], 0.004567269441401094, 0.39368661127046056), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.0009624129307819196, 0.2950090065083799, 0.07129536266232961], 0.0030690713098188082, 0.49288942845129), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.06701550238862786, 0.25483654814098344, 0.3238706353789649], 0.00505556524793979, 0.4522470321326544), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.1639092692596178, 0.44194134967919385, 0.42176372731880774], 0.010361551731613024, 0.6906085781397405), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.47398778866030766, 0.2026564230666169, 0.09034743825060043], 0.004653876665231441, 0.5317908249797711), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) … (Main.Body{Float64}([0.6906947058638981, 0.7538566588961716, 0.5900448016217961], 0.0029834697498147098, 0.10279531111389983), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.9917278520449697, 0.794049105113352, 0.7711676013529396], 0.007048482826053925, 0.6415640852627671), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.8289326726987614, 0.6101948372863522, 0.519118545970754], 0.0018327766115619636, 0.2379274720768212), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.6174588851816368, 0.6522104227559661, 0.5847276813173017], 0.00761078545286029, 0.9704213765219395), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.5232139755745984, 0.6045990113354003, 0.5429901209014718], 0.0060841769615967035, 0.8911459293930191), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.9581632293408542, 0.9135421917156796, 0.7073373243745936], 0.010449665448269006, 0.8357622456841612), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.7658820877217039, 0.9631550531437152, 0.5344687381454426], 0.0068829275392983565, 0.07479369706302341), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.960720320334046, 0.651071293378233, 0.6942906786235435], 0.0097351936375095, 0.44997536837158536), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.7803189670835223, 0.8311591102139488, 0.5707525801936775], 0.008043628052385822, 0.08862350083761417), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.5793632955101715, 0.5629439590892656, 0.5388261895900366], 0.008824875260231754, 0.805646285033539), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0])], Val{5}(), 50), SingleTree{Float64, Vector{Tuple{Main.Body{Float64}, Vector{Float64}}}, 5}(SingleBranch{Float64}[SingleBranch{Float64}(1:100, 8, 2:9, 0, -1, [0.49850630217496006, 0.5029084590406193, 0.4970227729348794], 0.8572644572282587, 0.8572644572282587, [-0.49494186514743355, 0.49494186514743355, -0.49494186514743355, 0.49494186514743355, -0.49494186514743355, 0.49494186514743355], [0.49494186514743355, 0.49494186514743355, 0.49494186514743355], 0.0, 0.0, fill(0.0), [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (1, 4294967297, 1))), SingleBranch{Float64}(1:14, 0, 10:9, 1, 1, [0.2510353696012433, 0.25543752646690254, 0.24955184036116262], 0.42863222861412936, 0.42863222861412936, [-0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677], [0.24747093257371677, 0.24747093257371677, 0.24747093257371677], 0.0, 0.0, fill(0.0), [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; -0.2148612382952998 0.0; -0.0 0.0;;; -0.04833896697010254 0.0; -0.08941268169127015 0.0;;; … ;;; 3.5751904359505736e-6 0.0; 3.0080507578758053e-7 0.0;;; 3.8236458599367976e-7 0.0; 8.757176386082573e-7 0.0;;; -5.567979953388733e-8 0.0; 7.122692732518039e-8 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (1, 1, 139835125210944))), SingleBranch{Float64}(15:32, 0, 10:9, 1, 2, [0.7459772347486768, 0.25543752646690254, 0.24955184036116262], 0.42863222861412936, 0.42863222861412936, [-0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677], [0.24747093257371677, 0.24747093257371677, 0.24747093257371677], 0.0, 0.0, fill(0.0), [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; -0.11109187197856953 0.0; -0.0 0.0;;; -0.09395587638099494 0.0; -0.03393406206661734 0.0;;; … ;;; -3.0928893153242635e-7 0.0; -5.266357454009592e-7 0.0;;; -8.453485198034652e-8 0.0; -4.5314409979717737e-7 0.0;;; 1.3384370562270982e-8 0.0; -8.18136577012236e-8 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (8, 11, 53))), SingleBranch{Float64}(33:42, 0, 10:9, 1, 3, [0.2510353696012433, 0.7503793916143361, 0.24955184036116262], 0.42863222861412936, 0.42863222861412936, [-0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677], [0.24747093257371677, 0.24747093257371677, 0.24747093257371677], 0.0, 0.0, fill(0.0), [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; -0.1902545870569238 0.0; -0.0 0.0;;; -0.08523619914991601 0.0; 0.10063606184199078 0.0;;; … ;;; 4.515701992660869e-6 0.0; 2.690965808809799e-6 0.0;;; 2.2681808274429954e-6 0.0; -7.785616815693268e-7 0.0;;; 1.2086933929990936e-7 0.0; -3.097138724670615e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (139835893007184, 139835893007280, 139835914321920))), SingleBranch{Float64}(43:55, 0, 10:9, 1, 4, [0.7459772347486768, 0.7503793916143361, 0.24955184036116262], 0.42863222861412936, 0.42863222861412936, [-0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677], [0.24747093257371677, 0.24747093257371677, 0.24747093257371677], 0.0, 0.0, fill(0.0), [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; -0.10425315723209527 0.0; -0.0 0.0;;; -0.04040250617839929 0.0; -0.04562408503868281 0.0;;; … ;;; 1.3994426612384809e-7 0.0; -9.646789543011186e-8 0.0;;; 5.8163042620289284e-8 0.0; 1.4387157402797034e-8 0.0;;; 3.2488834697645844e-9 0.0; 6.2058798109508465e-9 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (139835742806800, 139835914319680, 139835914320576))), SingleBranch{Float64}(56:68, 0, 10:9, 1, 5, [0.2510353696012433, 0.25543752646690254, 0.7444937055085962], 0.42863222861412936, 0.42863222861412936, [-0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677], [0.24747093257371677, 0.24747093257371677, 0.24747093257371677], 0.0, 0.0, fill(0.0), [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; 0.1406114031795701 0.0; 0.0 0.0;;; 0.04115679478744828 0.0; -0.03533755162400021 0.0;;; … ;;; -1.2881546024813352e-7 0.0; -2.0655710448954946e-7 0.0;;; -4.840981119340681e-8 0.0; -1.5172010562775518e-8 0.0;;; -3.596485511575488e-9 0.0; 1.545042368324494e-9 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (139835893007568, 139835893007600, 433249036024))), SingleBranch{Float64}(69:78, 0, 10:9, 1, 6, [0.7459772347486768, 0.25543752646690254, 0.7444937055085962], 0.42863222861412936, 0.42863222861412936, [-0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677], [0.24747093257371677, 0.24747093257371677, 0.24747093257371677], 0.0, 0.0, fill(0.0), [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; -0.05941950550840777 0.0; -0.0 0.0;;; -0.06984898585556935 0.0; 0.10325321360106476 0.0;;; … ;;; -6.688472512156468e-7 0.0; -1.4501297809812144e-7 0.0;;; 4.3233604883670166e-7 0.0; -4.1299565937718063e-7 0.0;;; -4.1888246519238254e-8 0.0; -2.4735114753799555e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (139835893007728, 139835893007760, 0))), SingleBranch{Float64}(79:86, 0, 10:9, 1, 7, [0.2510353696012433, 0.7503793916143361, 0.7444937055085962], 0.42863222861412936, 0.42863222861412936, [-0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677], [0.24747093257371677, 0.24747093257371677, 0.24747093257371677], 0.0, 0.0, fill(0.0), [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; -0.19774130005920343 0.0; -0.0 0.0;;; 0.10337420516639845 0.0; -0.003702501499532632 0.0;;; … ;;; 3.0951077862846165e-6 0.0; -3.337097810420304e-7 0.0;;; -9.336410389602992e-7 0.0; 1.3462336691028458e-7 0.0;;; 9.711269933660484e-8 0.0; -1.7571838450287563e-8 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (139835914320128, 139835914326400, 139835914346112))), SingleBranch{Float64}(87:100, 0, 10:9, 1, 8, [0.7459772347486768, 0.7503793916143361, 0.7444937055085962], 0.42863222861412936, 0.42863222861412936, [-0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677], [0.24747093257371677, 0.24747093257371677, 0.24747093257371677], 0.0, 0.0, fill(0.0), [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; -0.0593731535051507 0.0; -0.0 0.0;;; 0.08539386253795012 0.0; 0.039405099639804875 0.0;;; … ;;; -1.6817191281206375e-8 0.0; -5.988143577896676e-8 0.0;;; 3.0556184471062655e-8 0.0; -1.9110878655930648e-7 0.0;;; -3.415675534882339e-8 0.0; 5.09167765671537e-8 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (139835914321024, 139835829213856, 0)))], UnitRange{Int64}[1:1, 2:9], [2, 3, 4, 5, 6, 7, 8, 9], [11, 19, 33, 43, 59, 63, 67, 68, 69, 72 … 20, 24, 31, 37, 42, 48, 60, 74, 94, 100], [69, 87, 70, 71, 79, 43, 56, 57, 44, 88 … 12, 55, 30, 99, 31, 32, 13, 68, 14, 100], Tuple{Main.Body{Float64}, Vector{Float64}}[(Main.Body{Float64}([0.3108257809580788, 0.018444977603329638, 0.1448495720156966], 0.004532460900544307, 0.6204619994567462), [6.656408075963273, 0.0, 0.0, 0.0, -3.5398731184273053, -9.295941020322173, -5.413464408657029, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.04239416161334009, 0.32064719274449505, 0.48130130480471], 0.009728577099494845, 0.28031926582466293), [7.0836044891461585, 0.0, 0.0, 0.0, -8.857359963224212, -3.7043629243965284, 2.6867154926403254, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.431557182411335, 0.05729104146002573, 0.4039530057283216], 0.007375228802112362, 0.30999664605164), [7.739018612595635, 0.0, 0.0, 0.0, -0.37792795808645685, -9.107993435650643, 1.4755711117578612, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.3760481927883257, 0.30427758942618754, 0.0424352411332668], 0.008737504330345026, 0.3856873023831733), [7.497010356100949, 0.0, 0.0, 0.0, -4.93733078661837, -0.9512848217887391, -9.321732229232445, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.40796257253884594, 0.3169707043296718, 0.17481471770913004], 0.0006599191423210741, 0.6303355439118526), [8.603145628291282, 0.0, 0.0, 0.0, -5.092945448737958, -0.35201620762089525, -5.017596524805857, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.44526311787148065, 0.3123953708377504, 0.0031981489559432807], 0.002234687294853749, 0.2526616143954684), [7.394307495297395, 0.0, 0.0, 0.0, -4.074197603049914, -0.8843005298526739, -12.129516167989486, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.09506281506194814, 0.37886831688663536, 0.2883280135877385], 0.0026513954621956654, 0.34851211014036976), [7.743796789514465, 0.0, 0.0, 0.0, -8.951264053959937, -1.9617883735084023, -4.658746399724488, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.385983388890926, 0.2099869174765614, 0.2103305433014464], 0.002673503120625262, 0.731920338683347), [8.699005360233967, 0.0, 0.0, 0.0, -9.322285862701646, 2.555093162665515, -1.874069896074265, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.4374975251302734, 0.2511138400545102, 0.1042125323068771], 0.0079424961191749, 0.28373707089135336), [8.545986552488209, 0.0, 0.0, 0.0, -10.43682822175596, 6.712123318844789, -6.799535652933345, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.33885320202792324, 0.21079845214701087, 0.07899763839448037], 0.0008797470416774469, 0.6588156699242567), [7.516005325514882, 0.0, 0.0, 0.0, -4.836766418598849, -2.225174045341691, -8.617929217958249, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) … (Main.Body{Float64}([0.761014175927334, 0.5625502355864805, 0.6362450642237143], 0.00477924026951857, 0.08790391023238642), [8.696622821572635, 0.0, 0.0, 0.0, 5.548245493459153, 0.6647207464342835, 6.278537989010481, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.741658189777045, 0.8784627652056287, 0.6026198177064941], 0.0028805176050072864, 0.24086407961581202), [7.541219085822956, 0.0, 0.0, 0.0, 0.3131879052669324, 8.516359052958578, 5.9072937820384634, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.6559052253949811, 0.9583482860298168, 0.6198294517560885], 0.008868504569149492, 0.17689335268130646), [6.840663348171893, 0.0, 0.0, 0.0, 0.2944062620800215, 7.712555707441569, 4.705741898589104, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.5044880780307363, 0.9392745252820915, 0.8236302658478007], 0.0035072444787534506, 0.5071979794728987), [5.902585114087375, 0.0, 0.0, 0.0, -0.7298300723802948, 5.074581758334187, 4.958470552095021, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.7719706502318479, 0.987371940477909, 0.5992694800324155], 0.000561642365078654, 0.020303598406039902), [6.659400467615292, 0.0, 0.0, 0.0, 0.9370333132030003, 8.321557859554815, 4.446254367712357, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.9270141064885, 0.6996533718950176, 0.7573000900883736], 0.005090949172292981, 0.41670321904423535), [7.294560374728856, 0.0, 0.0, 0.0, 0.7797311911756291, 1.8536289165730497, 8.106518301667714, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.6705665433906464, 0.8074865918599404, 0.5791268533462717], 0.008580519038422284, 0.2990005802447111), [8.378169492760158, 0.0, 0.0, 0.0, 0.672628905011095, 11.149982109624677, 5.703626251533733, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.5199695296735932, 0.5150132871145792, 0.7028351735495706], 0.0037563211861237865, 0.28526666192551975), [8.680614827593462, 0.0, 0.0, 0.0, -3.197166807339375, 0.26787494900673947, 8.549839228303712, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.5109351365074641, 0.7269107204213763, 0.8057341233600875], 0.002916397428800248, 0.13080774080166646), [7.060195088980969, 0.0, 0.0, 0.0, -0.8852806157001135, 4.388943223104779, 7.646679439394734, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.8247874340282866, 0.5795916665384359, 0.8038668590137469], 0.0035401668870093193, 0.6409979037657155), [7.436136404880495, 0.0, 0.0, 0.0, 1.9624183678921265, 3.8680899850301302, 6.034444873485874, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0])], Val{5}(), 50), Tuple{Int32, Int32, Int64}[], StaticArraysCore.SVector{2, Int32}[[2, 2], [3, 2], [4, 2], [5, 2], [6, 2], [7, 2], [8, 2], [9, 2], [2, 3], [3, 3] … [8, 8], [9, 8], [2, 9], [3, 9], [4, 9], [5, 9], [6, 9], [7, 9], [8, 9], [9, 9]], DerivativesSwitch{true, true, true}())
Users are able to define the tree to be used in the FMM by passing in a previously created tree into the fmm!
call. For convenience, the upward_pass
, horizontal_pass
, and downward_pass
can be toggled off seperately. These are important to toggle when generating octrees to be reused. Additionally, unsort_target_bodies
and unsort_source_bodies
should be set to false
when generating the reusable trees.
upward_pass
creates the multipole expansions for each branchhorizontal_pass
evaluates the expansions in the appropriate locationsdownward_pass
applies parent expansions to children branchestarget_system = generate_gravitational(123, 100)
source_system = generate_gravitational(321, 100)
target_tree, source_tree = fmm.fmm!(target_system, source_system;
@@ -36,10 +36,10 @@
fmm.fmm!(system,
nearfield=true, farfield=true, self_induced=true) # standard run (defaults)
fmm.fmm!(system,
- nearfield=false, farfield=true, self_induced=true) # nearfield not evaluated
(SingleTree{Float64, Vector{Tuple{Main.Body{Float64}, Vector{Float64}}}, 5}(SingleBranch{Float64}[SingleBranch{Float64}(1:100, 8, 2:9, 0, -1, [0.49850630217496006, 0.5029084590406193, 0.4970227729348794], 0.8572644572282587, 0.8572644572282587, [-0.49494186514743355, 0.49494186514743355, -0.49494186514743355, 0.49494186514743355, -0.49494186514743355, 0.49494186514743355], [0.49494186514743355, 0.49494186514743355, 0.49494186514743355], 0.0, 0.0, fill(0.0), [-48.34870113041748 0.0; 0.0 0.0;;; 2.598422019775752 0.0; 0.0 0.0;;; -1.2227362282002523 0.0; 0.8450131042390987 0.0;;; … ;;; -8.791709687591729e-5 0.0; -0.0004287156900488262 0.0;;; 8.822613231853985e-5 0.0; -0.00020008302331153626 0.0;;; -1.2615951275491288e-5 0.0; -3.065550426595302e-6 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (8, 140659384061824, 5))), SingleBranch{Float64}(1:14, 0, 10:9, 1, 1, [0.2510353696012433, 0.25543752646690254, 0.24955184036116262], 0.42863222861412936, 0.42863222861412936, [-0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677], [0.24747093257371677, 0.24747093257371677, 0.24747093257371677], 0.0, 0.0, fill(0.0), [-6.487390818499682 0.0; 0.0 0.0;;; 0.1316240843801879 0.0; 0.0 0.0;;; 0.025249123866722074 0.0; 0.110233400590797 0.0;;; … ;;; -3.455130567368021e-6 0.0; 5.924004312810844e-7 0.0;;; 1.5153888935850128e-6 0.0; -1.7047891151365984e-6 0.0;;; 1.5070525582333026e-7 0.0; 1.8849553081710956e-7 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; -0.2148612382952998 0.0; -0.0 0.0;;; -0.04833896697010254 0.0; -0.08941268169127015 0.0;;; … ;;; 3.5751904359505736e-6 0.0; 3.0080507578758053e-7 0.0;;; 3.8236458599367976e-7 0.0; 8.757176386082573e-7 0.0;;; -5.567979953388733e-8 0.0; 7.122692732518039e-8 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (140658657092592, 140658657092624, 140659260278144))), SingleBranch{Float64}(15:32, 0, 10:9, 1, 2, [0.7459772347486768, 0.25543752646690254, 0.24955184036116262], 0.42863222861412936, 0.42863222861412936, [-0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677], [0.24747093257371677, 0.24747093257371677, 0.24747093257371677], 0.0, 0.0, fill(0.0), [-11.124170053937009 0.0; 0.0 0.0;;; 0.41138770543633796 0.0; 0.0 0.0;;; 0.016803023250878363 0.0; -0.14477677533550787 0.0;;; … ;;; -8.963509625362107e-6 0.0; 4.693012478346667e-6 0.0;;; 4.410168138692953e-6 0.0; -2.126045985106235e-7 0.0;;; -1.8361776114546595e-8 0.0; -2.1883614233265213e-7 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; -0.11109187197856953 0.0; -0.0 0.0;;; -0.09395587638099494 0.0; -0.03393406206661734 0.0;;; … ;;; -3.0928893153242635e-7 0.0; -5.266357454009592e-7 0.0;;; -8.453485198034652e-8 0.0; -4.5314409979717737e-7 0.0;;; 1.3384370562270982e-8 0.0; -8.18136577012236e-8 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (1, 140659259732144, 0))), SingleBranch{Float64}(33:42, 0, 10:9, 1, 3, [0.2510353696012433, 0.7503793916143361, 0.24955184036116262], 0.42863222861412936, 0.42863222861412936, [-0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677], [0.24747093257371677, 0.24747093257371677, 0.24747093257371677], 0.0, 0.0, fill(0.0), [-5.116346939838825 0.0; 0.0 0.0;;; -0.08994400460681298 0.0; 0.0 0.0;;; -0.13497721301696344 0.0; 0.06706823073367696 0.0;;; … ;;; -1.0362892970772102e-6 0.0; 1.2247154898001747e-6 0.0;;; -1.868656271304562e-7 0.0; 1.6661679454393324e-6 0.0;;; 6.543631075683181e-7 0.0; -6.940763763815243e-7 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; -0.1902545870569238 0.0; -0.0 0.0;;; -0.08523619914991601 0.0; 0.10063606184199078 0.0;;; … ;;; 4.515701992660869e-6 0.0; 2.690965808809799e-6 0.0;;; 2.2681808274429954e-6 0.0; -7.785616815693268e-7 0.0;;; 1.2086933929990936e-7 0.0; -3.097138724670615e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (51539607561, 42949672975, 8))), SingleBranch{Float64}(43:55, 0, 10:9, 1, 4, [0.7459772347486768, 0.7503793916143361, 0.24955184036116262], 0.42863222861412936, 0.42863222861412936, [-0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677], [0.24747093257371677, 0.24747093257371677, 0.24747093257371677], 0.0, 0.0, fill(0.0), [-6.531648389278439 0.0; 0.0 0.0;;; 0.27836630809952023 0.0; 0.0 0.0;;; 0.0024199382270112084 0.0; 0.3732722019731095 0.0;;; … ;;; 3.376714829662012e-6 0.0; -2.67253441421499e-6 0.0;;; -1.3437328271781197e-6 0.0; 8.280933433509673e-7 0.0;;; -2.6353089381680604e-7 0.0; -4.924657915182052e-7 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; -0.10425315723209527 0.0; -0.0 0.0;;; -0.04040250617839929 0.0; -0.04562408503868281 0.0;;; … ;;; 1.3994426612384809e-7 0.0; -9.646789543011186e-8 0.0;;; 5.8163042620289284e-8 0.0; 1.4387157402797034e-8 0.0;;; 3.2488834697645844e-9 0.0; 6.2058798109508465e-9 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (3161095930592, 3161095930592, 0))), SingleBranch{Float64}(56:68, 0, 10:9, 1, 5, [0.2510353696012433, 0.25543752646690254, 0.7444937055085962], 0.42863222861412936, 0.42863222861412936, [-0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677], [0.24747093257371677, 0.24747093257371677, 0.24747093257371677], 0.0, 0.0, fill(0.0), [-6.660580658394574 0.0; 0.0 0.0;;; -0.395153340334315 0.0; 0.0 0.0;;; 0.05979789873527955 0.0; 0.07530541218541535 0.0;;; … ;;; 2.090523898062051e-6 0.0; -2.515462436886501e-6 0.0;;; 1.3306773654521538e-6 0.0; 8.501110961871042e-7 0.0;;; -4.5790897504950176e-7 0.0; 1.3805850178672174e-7 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; 0.1406114031795701 0.0; 0.0 0.0;;; 0.04115679478744828 0.0; -0.03533755162400021 0.0;;; … ;;; -1.2881546024813352e-7 0.0; -2.0655710448954946e-7 0.0;;; -4.840981119340681e-8 0.0; -1.5172010562775518e-8 0.0;;; -3.596485511575488e-9 0.0; 1.545042368324494e-9 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (0, 0, 0))), SingleBranch{Float64}(69:78, 0, 10:9, 1, 6, [0.7459772347486768, 0.25543752646690254, 0.7444937055085962], 0.42863222861412936, 0.42863222861412936, [-0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677], [0.24747093257371677, 0.24747093257371677, 0.24747093257371677], 0.0, 0.0, fill(0.0), [-5.009402189699274 0.0; 0.0 0.0;;; -0.19304510892164647 0.0; 0.0 0.0;;; 0.12963654004199454 0.0; 0.10016855294092004 0.0;;; … ;;; -2.032871463751076e-6 0.0; 1.1604382246619326e-6 0.0;;; 1.6073455016687304e-6 0.0; 7.525148568942718e-7 0.0;;; -2.1131812349704138e-7 0.0; -2.403269261044048e-7 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; -0.05941950550840777 0.0; -0.0 0.0;;; -0.06984898585556935 0.0; 0.10325321360106476 0.0;;; … ;;; -6.688472512156468e-7 0.0; -1.4501297809812144e-7 0.0;;; 4.3233604883670166e-7 0.0; -4.1299565937718063e-7 0.0;;; -4.1888246519238254e-8 0.0; -2.4735114753799555e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (140658690541584, 140659385139056, 8))), SingleBranch{Float64}(79:86, 0, 10:9, 1, 7, [0.2510353696012433, 0.7503793916143361, 0.7444937055085962], 0.42863222861412936, 0.42863222861412936, [-0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677], [0.24747093257371677, 0.24747093257371677, 0.24747093257371677], 0.0, 0.0, fill(0.0), [-3.769527893701526 0.0; 0.0 0.0;;; -0.01938418608836119 0.0; 0.0 0.0;;; -0.0011822923413632442 0.0; -0.1457672462486248 0.0;;; … ;;; -1.035853369522652e-5 0.0; 1.2914125498780046e-6 0.0;;; -2.4874690174267746e-7 0.0; -3.1553943207752724e-6 0.0;;; 4.921174899074237e-7 0.0; 2.978833721286661e-8 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; -0.19774130005920343 0.0; -0.0 0.0;;; 0.10337420516639845 0.0; -0.003702501499532632 0.0;;; … ;;; 3.0951077862846165e-6 0.0; -3.337097810420304e-7 0.0;;; -9.336410389602992e-7 0.0; 1.3462336691028458e-7 0.0;;; 9.711269933660484e-8 0.0; -1.7571838450287563e-8 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (0, 0, 0))), SingleBranch{Float64}(87:100, 0, 10:9, 1, 8, [0.7459772347486768, 0.7503793916143361, 0.7444937055085962], 0.42863222861412936, 0.42863222861412936, [-0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677], [0.24747093257371677, 0.24747093257371677, 0.24747093257371677], 0.0, 0.0, fill(0.0), [-3.6496341870681537 0.0; 0.0 0.0;;; -0.04231060050009968 0.0; 0.0 0.0;;; -0.05660139398222258 0.0; -0.12020325670765074 0.0;;; … ;;; 1.2674714042901395e-7 0.0; 9.742117200541327e-7 0.0;;; 6.169136545969979e-7 0.0; -3.979999499773143e-7 0.0;;; 1.6497981578864858e-7 0.0; 5.910575433895744e-7 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; -0.0593731535051507 0.0; -0.0 0.0;;; 0.08539386253795012 0.0; 0.039405099639804875 0.0;;; … ;;; -1.6817191281206375e-8 0.0; -5.988143577896676e-8 0.0;;; 3.0556184471062655e-8 0.0; -1.9110878655930648e-7 0.0;;; -3.415675534882339e-8 0.0; 5.09167765671537e-8 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (140659273171824, 140659292055136, 0)))], UnitRange{Int64}[1:1, 2:9], [2, 3, 4, 5, 6, 7, 8, 9], [11, 19, 33, 43, 59, 63, 67, 68, 69, 72 … 20, 24, 31, 37, 42, 48, 60, 74, 94, 100], [69, 87, 70, 71, 79, 43, 56, 57, 44, 88 … 12, 55, 30, 99, 31, 32, 13, 68, 14, 100], Tuple{Main.Body{Float64}, Vector{Float64}}[(Main.Body{Float64}([0.9191811597933967, 0.42601923740838954, 0.7465863168484385], 0.00551624732815934, 0.2538490889415096), [7.0834787492030005, 0.0, 0.0, 0.0, 5.568735643477791, 2.9213884843016737, 0.7633475677477748, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.8192008435733007, 0.9541592624784624, 0.8458950823510601], 0.0014709561750558223, 0.03209667335274724), [5.114232575764009, 0.0, 0.0, 0.0, 2.446182605378621, 4.41119482090726, 3.440180697344876, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.586748700554989, 0.12181263792534469, 0.7894931647499924], 0.0016174951280755708, 0.8935369466209786), [6.585365931828452, 0.0, 0.0, 0.0, 2.5334789856996256, -5.935281910533853, 5.877738846695876, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.6192588014774537, 0.47764531343080796, 0.8041934288169849], 0.003639098305331564, 0.8236563299357046), [7.314225348781349, 0.0, 0.0, 0.0, 2.0263196413417575, -0.5909579553411834, 6.438131407639304, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.12353811904859124, 0.7400202596259494, 0.7057473220960516], 0.004975260027225807, 0.9340155879013086), [5.994006655657172, 0.0, 0.0, 0.0, -3.6150300092368397, 3.588312709800555, 2.445983480158574, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.9919607797239652, 0.8036971367794874, 0.29827230692896456], 0.006659427674753824, 0.4842893268146866), [6.3093512714054905, 0.0, 0.0, 0.0, 6.811100230860857, 3.229004706340305, 0.7635631719803121, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.49265789199054244, 0.17985285886739166, 0.6397154045236242], 0.004022070032387327, 0.6922349538863742), [7.856042192681273, 0.0, 0.0, 0.0, 0.5375760890909462, -5.141800886434623, 1.9448732399847593, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.22768758746068596, 0.26780944724527167, 0.8309795986773825], 0.006802835099514221, 0.6911617055492341), [8.668207473779663, 0.0, 0.0, 0.0, -3.782240224623742, 18.504359731864223, 92.23746117912798, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.621178864455285, 0.7425206336869923, 0.15487161620983314], 0.0010425988209884726, 0.09206661519876747), [7.388934820369321, 0.0, 0.0, 0.0, -0.5191138373209423, 4.756088137496654, -3.410201822139256, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.5733898483119126, 0.5900840309886971, 0.7659266276192337], 0.00633005068065063, 0.37737321139310276), [7.64606632116185, 0.0, 0.0, 0.0, 0.09461688248299382, 7.241804506257593, 4.346937745416622, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) … (Main.Body{Float64}([0.3562026836409853, 0.3635243844573359, 0.309727986680287], 0.0038713948967191466, 0.43490959394031214), [8.717797558762465, 0.0, 0.0, 0.0, -5.329362059354715, 1.927215437532789, 2.1413599561398255, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.6547290646713112, 0.8311844039711347, 0.3538049975932579], 0.004154302641783906, 0.5842214092626906), [6.95468678089278, 0.0, 0.0, 0.0, -0.26889425383548615, 5.455632900159945, 0.18581332796087613, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.5388794936906567, 0.04350921485134718, 0.23629199234128806], 0.006559279199653211, 0.9196974029361853), [7.405157852909614, 0.0, 0.0, 0.0, -0.6529358028805777, -11.2963043390672, -2.91169792948822, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.5109351365074641, 0.7269107204213763, 0.8057341233600875], 0.002916397428800248, 0.13080774080166646), [6.808606792136021, 0.0, 0.0, 0.0, -0.9111986992873469, 5.362862739910923, 4.495324132308462, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.6177567582580967, 0.38039525218264447, 0.37934078500465196], 0.010186078857427224, 0.2366140514268097), [11.921598844654353, 0.0, 0.0, 0.0, 7.200411754134824, 89.02612612758858, 98.32074510763668, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.6781091106154422, 0.44334927922889245, 0.36064371233973214], 0.01036251002724151, 0.2743759198193091), [9.314269146067007, 0.0, 0.0, 0.0, 8.622634737411559, 10.442703018323094, 2.8516623050362013, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.20158107237490663, 0.3238946945648584, 0.24399963650509682], 0.009664372151238956, 0.47733204119516204), [7.6745848038899, 0.0, 0.0, 0.0, -6.292867218536123, -1.9303407565718314, -4.440111319869195, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.18036026635324287, 0.173123936892006, 0.6038823023290261], 0.010016593230124706, 0.4401491209134364), [7.332967741437809, 0.0, 0.0, 0.0, -9.697414526287979, -8.79693777899164, -1.907340053628442, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.072210006218703, 0.3521154604071077, 0.4644130786564624], 0.0037743609975635275, 0.17728847529212788), [7.947029043250998, 0.0, 0.0, 0.0, -1.1234362906646078, 4.290370818176258, 6.7821312097650095, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.8247874340282866, 0.5795916665384359, 0.8038668590137469], 0.0035401668870093193, 0.6409979037657155), [6.637146429694789, 0.0, 0.0, 0.0, 3.5215079301835996, 3.242536913859295, 4.5734372311785485, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0])], Val{5}(), 50), Tuple{Int32, Int32, Int64}[], StaticArraysCore.SVector{2, Int32}[], DerivativesSwitch{true, true, true}())
The initial creation of the octree will create uniformly sized and spaced branches in each level. These branches are not centered or optimally sized with relation to the bodies they contain. As a default, the fmm!
call resizes and recenters these branches to utilize the smallest possible radius that contains all the bodies in each branch[3]. This feature can be toggled with the source_shrink_recenter
and target_shrink_recenter
parameters.
target_system = generate_gravitational(123, 100)
+ nearfield=false, farfield=true, self_induced=true) # nearfield not evaluated
(SingleTree{Float64, Vector{Tuple{Main.Body{Float64}, Vector{Float64}}}, 5}(SingleBranch{Float64}[SingleBranch{Float64}(1:100, 8, 2:9, 0, -1, [0.49850630217496006, 0.5029084590406193, 0.4970227729348794], 0.8572644572282587, 0.8572644572282587, [-0.49494186514743355, 0.49494186514743355, -0.49494186514743355, 0.49494186514743355, -0.49494186514743355, 0.49494186514743355], [0.49494186514743355, 0.49494186514743355, 0.49494186514743355], 0.0, 0.0, fill(0.0), [-48.34870113041748 0.0; 0.0 0.0;;; 2.598422019775752 0.0; 0.0 0.0;;; -1.2227362282002523 0.0; 0.8450131042390987 0.0;;; … ;;; -8.791709687591729e-5 0.0; -0.0004287156900488262 0.0;;; 8.822613231853985e-5 0.0; -0.00020008302331153626 0.0;;; -1.2615951275491288e-5 0.0; -3.065550426595302e-6 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (139835852832368, 139835852832400, 416568829732))), SingleBranch{Float64}(1:14, 0, 10:9, 1, 1, [0.2510353696012433, 0.25543752646690254, 0.24955184036116262], 0.42863222861412936, 0.42863222861412936, [-0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677], [0.24747093257371677, 0.24747093257371677, 0.24747093257371677], 0.0, 0.0, fill(0.0), [-6.487390818499682 0.0; 0.0 0.0;;; 0.1316240843801879 0.0; 0.0 0.0;;; 0.025249123866722074 0.0; 0.110233400590797 0.0;;; … ;;; -3.455130567368021e-6 0.0; 5.924004312810844e-7 0.0;;; 1.5153888935850128e-6 0.0; -1.7047891151365984e-6 0.0;;; 1.5070525582333026e-7 0.0; 1.8849553081710956e-7 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; -0.2148612382952998 0.0; -0.0 0.0;;; -0.04833896697010254 0.0; -0.08941268169127015 0.0;;; … ;;; 3.5751904359505736e-6 0.0; 3.0080507578758053e-7 0.0;;; 3.8236458599367976e-7 0.0; 8.757176386082573e-7 0.0;;; -5.567979953388733e-8 0.0; 7.122692732518039e-8 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (0, 0, 415509289671))), SingleBranch{Float64}(15:32, 0, 10:9, 1, 2, [0.7459772347486768, 0.25543752646690254, 0.24955184036116262], 0.42863222861412936, 0.42863222861412936, [-0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677], [0.24747093257371677, 0.24747093257371677, 0.24747093257371677], 0.0, 0.0, fill(0.0), [-11.124170053937009 0.0; 0.0 0.0;;; 0.41138770543633796 0.0; 0.0 0.0;;; 0.016803023250878363 0.0; -0.14477677533550787 0.0;;; … ;;; -8.963509625362107e-6 0.0; 4.693012478346667e-6 0.0;;; 4.410168138692953e-6 0.0; -2.126045985106235e-7 0.0;;; -1.8361776114546595e-8 0.0; -2.1883614233265213e-7 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; -0.11109187197856953 0.0; -0.0 0.0;;; -0.09395587638099494 0.0; -0.03393406206661734 0.0;;; … ;;; -3.0928893153242635e-7 0.0; -5.266357454009592e-7 0.0;;; -8.453485198034652e-8 0.0; -4.5314409979717737e-7 0.0;;; 1.3384370562270982e-8 0.0; -8.18136577012236e-8 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (20753281974944, 20753281979104, 141733921440))), SingleBranch{Float64}(33:42, 0, 10:9, 1, 3, [0.2510353696012433, 0.7503793916143361, 0.24955184036116262], 0.42863222861412936, 0.42863222861412936, [-0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677], [0.24747093257371677, 0.24747093257371677, 0.24747093257371677], 0.0, 0.0, fill(0.0), [-5.116346939838825 0.0; 0.0 0.0;;; -0.08994400460681298 0.0; 0.0 0.0;;; -0.13497721301696344 0.0; 0.06706823073367696 0.0;;; … ;;; -1.0362892970772102e-6 0.0; 1.2247154898001747e-6 0.0;;; -1.868656271304562e-7 0.0; 1.6661679454393324e-6 0.0;;; 6.543631075683181e-7 0.0; -6.940763763815243e-7 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; -0.1902545870569238 0.0; -0.0 0.0;;; -0.08523619914991601 0.0; 0.10063606184199078 0.0;;; … ;;; 4.515701992660869e-6 0.0; 2.690965808809799e-6 0.0;;; 2.2681808274429954e-6 0.0; -7.785616815693268e-7 0.0;;; 1.2086933929990936e-7 0.0; -3.097138724670615e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (51539607552, 4294967311, 1241245548544))), SingleBranch{Float64}(43:55, 0, 10:9, 1, 4, [0.7459772347486768, 0.7503793916143361, 0.24955184036116262], 0.42863222861412936, 0.42863222861412936, [-0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677], [0.24747093257371677, 0.24747093257371677, 0.24747093257371677], 0.0, 0.0, fill(0.0), [-6.531648389278439 0.0; 0.0 0.0;;; 0.27836630809952023 0.0; 0.0 0.0;;; 0.0024199382270112084 0.0; 0.3732722019731095 0.0;;; … ;;; 3.376714829662012e-6 0.0; -2.67253441421499e-6 0.0;;; -1.3437328271781197e-6 0.0; 8.280933433509673e-7 0.0;;; -2.6353089381680604e-7 0.0; -4.924657915182052e-7 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; -0.10425315723209527 0.0; -0.0 0.0;;; -0.04040250617839929 0.0; -0.04562408503868281 0.0;;; … ;;; 1.3994426612384809e-7 0.0; -9.646789543011186e-8 0.0;;; 5.8163042620289284e-8 0.0; 1.4387157402797034e-8 0.0;;; 3.2488834697645844e-9 0.0; 6.2058798109508465e-9 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (0, 0, 143288556673))), SingleBranch{Float64}(56:68, 0, 10:9, 1, 5, [0.2510353696012433, 0.25543752646690254, 0.7444937055085962], 0.42863222861412936, 0.42863222861412936, [-0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677], [0.24747093257371677, 0.24747093257371677, 0.24747093257371677], 0.0, 0.0, fill(0.0), [-6.660580658394574 0.0; 0.0 0.0;;; -0.395153340334315 0.0; 0.0 0.0;;; 0.05979789873527955 0.0; 0.07530541218541535 0.0;;; … ;;; 2.090523898062051e-6 0.0; -2.515462436886501e-6 0.0;;; 1.3306773654521538e-6 0.0; 8.501110961871042e-7 0.0;;; -4.5790897504950176e-7 0.0; 1.3805850178672174e-7 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; 0.1406114031795701 0.0; 0.0 0.0;;; 0.04115679478744828 0.0; -0.03533755162400021 0.0;;; … ;;; -1.2881546024813352e-7 0.0; -2.0655710448954946e-7 0.0;;; -4.840981119340681e-8 0.0; -1.5172010562775518e-8 0.0;;; -3.596485511575488e-9 0.0; 1.545042368324494e-9 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (139835895374544, 139835895374576, 1242779380730))), SingleBranch{Float64}(69:78, 0, 10:9, 1, 6, [0.7459772347486768, 0.25543752646690254, 0.7444937055085962], 0.42863222861412936, 0.42863222861412936, [-0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677], [0.24747093257371677, 0.24747093257371677, 0.24747093257371677], 0.0, 0.0, fill(0.0), [-5.009402189699274 0.0; 0.0 0.0;;; -0.19304510892164647 0.0; 0.0 0.0;;; 0.12963654004199454 0.0; 0.10016855294092004 0.0;;; … ;;; -2.032871463751076e-6 0.0; 1.1604382246619326e-6 0.0;;; 1.6073455016687304e-6 0.0; 7.525148568942718e-7 0.0;;; -2.1131812349704138e-7 0.0; -2.403269261044048e-7 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; -0.05941950550840777 0.0; -0.0 0.0;;; -0.06984898585556935 0.0; 0.10325321360106476 0.0;;; … ;;; -6.688472512156468e-7 0.0; -1.4501297809812144e-7 0.0;;; 4.3233604883670166e-7 0.0; -4.1299565937718063e-7 0.0;;; -4.1888246519238254e-8 0.0; -2.4735114753799555e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (4294967297, 1, 413856241763))), SingleBranch{Float64}(79:86, 0, 10:9, 1, 7, [0.2510353696012433, 0.7503793916143361, 0.7444937055085962], 0.42863222861412936, 0.42863222861412936, [-0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677], [0.24747093257371677, 0.24747093257371677, 0.24747093257371677], 0.0, 0.0, fill(0.0), [-3.769527893701526 0.0; 0.0 0.0;;; -0.01938418608836119 0.0; 0.0 0.0;;; -0.0011822923413632442 0.0; -0.1457672462486248 0.0;;; … ;;; -1.035853369522652e-5 0.0; 1.2914125498780046e-6 0.0;;; -2.4874690174267746e-7 0.0; -3.1553943207752724e-6 0.0;;; 4.921174899074237e-7 0.0; 2.978833721286661e-8 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; -0.19774130005920343 0.0; -0.0 0.0;;; 0.10337420516639845 0.0; -0.003702501499532632 0.0;;; … ;;; 3.0951077862846165e-6 0.0; -3.337097810420304e-7 0.0;;; -9.336410389602992e-7 0.0; 1.3462336691028458e-7 0.0;;; 9.711269933660484e-8 0.0; -1.7571838450287563e-8 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (20753281981120, 0, 413008291478))), SingleBranch{Float64}(87:100, 0, 10:9, 1, 8, [0.7459772347486768, 0.7503793916143361, 0.7444937055085962], 0.42863222861412936, 0.42863222861412936, [-0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677], [0.24747093257371677, 0.24747093257371677, 0.24747093257371677], 0.0, 0.0, fill(0.0), [-3.6496341870681537 0.0; 0.0 0.0;;; -0.04231060050009968 0.0; 0.0 0.0;;; -0.05660139398222258 0.0; -0.12020325670765074 0.0;;; … ;;; 1.2674714042901395e-7 0.0; 9.742117200541327e-7 0.0;;; 6.169136545969979e-7 0.0; -3.979999499773143e-7 0.0;;; 1.6497981578864858e-7 0.0; 5.910575433895744e-7 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; -0.0593731535051507 0.0; -0.0 0.0;;; 0.08539386253795012 0.0; 0.039405099639804875 0.0;;; … ;;; -1.6817191281206375e-8 0.0; -5.988143577896676e-8 0.0;;; 3.0556184471062655e-8 0.0; -1.9110878655930648e-7 0.0;;; -3.415675534882339e-8 0.0; 5.09167765671537e-8 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (1, 0, 415114290605)))], UnitRange{Int64}[1:1, 2:9], [2, 3, 4, 5, 6, 7, 8, 9], [11, 19, 33, 43, 59, 63, 67, 68, 69, 72 … 20, 24, 31, 37, 42, 48, 60, 74, 94, 100], [69, 87, 70, 71, 79, 43, 56, 57, 44, 88 … 12, 55, 30, 99, 31, 32, 13, 68, 14, 100], Tuple{Main.Body{Float64}, Vector{Float64}}[(Main.Body{Float64}([0.9191811597933967, 0.42601923740838954, 0.7465863168484385], 0.00551624732815934, 0.2538490889415096), [7.0834787492030005, 0.0, 0.0, 0.0, 5.568735643477791, 2.9213884843016737, 0.7633475677477748, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.8192008435733007, 0.9541592624784624, 0.8458950823510601], 0.0014709561750558223, 0.03209667335274724), [5.114232575764009, 0.0, 0.0, 0.0, 2.446182605378621, 4.41119482090726, 3.440180697344876, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.586748700554989, 0.12181263792534469, 0.7894931647499924], 0.0016174951280755708, 0.8935369466209786), [6.585365931828452, 0.0, 0.0, 0.0, 2.5334789856996256, -5.935281910533853, 5.877738846695876, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.6192588014774537, 0.47764531343080796, 0.8041934288169849], 0.003639098305331564, 0.8236563299357046), [7.314225348781349, 0.0, 0.0, 0.0, 2.0263196413417575, -0.5909579553411834, 6.438131407639304, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.12353811904859124, 0.7400202596259494, 0.7057473220960516], 0.004975260027225807, 0.9340155879013086), [5.994006655657172, 0.0, 0.0, 0.0, -3.6150300092368397, 3.588312709800555, 2.445983480158574, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.9919607797239652, 0.8036971367794874, 0.29827230692896456], 0.006659427674753824, 0.4842893268146866), [6.3093512714054905, 0.0, 0.0, 0.0, 6.811100230860857, 3.229004706340305, 0.7635631719803121, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.49265789199054244, 0.17985285886739166, 0.6397154045236242], 0.004022070032387327, 0.6922349538863742), [7.856042192681273, 0.0, 0.0, 0.0, 0.5375760890909462, -5.141800886434623, 1.9448732399847593, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.22768758746068596, 0.26780944724527167, 0.8309795986773825], 0.006802835099514221, 0.6911617055492341), [8.668207473779663, 0.0, 0.0, 0.0, -3.782240224623742, 18.504359731864223, 92.23746117912798, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.621178864455285, 0.7425206336869923, 0.15487161620983314], 0.0010425988209884726, 0.09206661519876747), [7.388934820369321, 0.0, 0.0, 0.0, -0.5191138373209423, 4.756088137496654, -3.410201822139256, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.5733898483119126, 0.5900840309886971, 0.7659266276192337], 0.00633005068065063, 0.37737321139310276), [7.64606632116185, 0.0, 0.0, 0.0, 0.09461688248299382, 7.241804506257593, 4.346937745416622, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) … (Main.Body{Float64}([0.3562026836409853, 0.3635243844573359, 0.309727986680287], 0.0038713948967191466, 0.43490959394031214), [8.717797558762465, 0.0, 0.0, 0.0, -5.329362059354715, 1.927215437532789, 2.1413599561398255, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.6547290646713112, 0.8311844039711347, 0.3538049975932579], 0.004154302641783906, 0.5842214092626906), [6.95468678089278, 0.0, 0.0, 0.0, -0.26889425383548615, 5.455632900159945, 0.18581332796087613, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.5388794936906567, 0.04350921485134718, 0.23629199234128806], 0.006559279199653211, 0.9196974029361853), [7.405157852909614, 0.0, 0.0, 0.0, -0.6529358028805777, -11.2963043390672, -2.91169792948822, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.5109351365074641, 0.7269107204213763, 0.8057341233600875], 0.002916397428800248, 0.13080774080166646), [6.808606792136021, 0.0, 0.0, 0.0, -0.9111986992873469, 5.362862739910923, 4.495324132308462, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.6177567582580967, 0.38039525218264447, 0.37934078500465196], 0.010186078857427224, 0.2366140514268097), [11.921598844654353, 0.0, 0.0, 0.0, 7.200411754134824, 89.02612612758858, 98.32074510763668, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.6781091106154422, 0.44334927922889245, 0.36064371233973214], 0.01036251002724151, 0.2743759198193091), [9.314269146067007, 0.0, 0.0, 0.0, 8.622634737411559, 10.442703018323094, 2.8516623050362013, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.20158107237490663, 0.3238946945648584, 0.24399963650509682], 0.009664372151238956, 0.47733204119516204), [7.6745848038899, 0.0, 0.0, 0.0, -6.292867218536123, -1.9303407565718314, -4.440111319869195, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.18036026635324287, 0.173123936892006, 0.6038823023290261], 0.010016593230124706, 0.4401491209134364), [7.332967741437809, 0.0, 0.0, 0.0, -9.697414526287979, -8.79693777899164, -1.907340053628442, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.072210006218703, 0.3521154604071077, 0.4644130786564624], 0.0037743609975635275, 0.17728847529212788), [7.947029043250998, 0.0, 0.0, 0.0, -1.1234362906646078, 4.290370818176258, 6.7821312097650095, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.8247874340282866, 0.5795916665384359, 0.8038668590137469], 0.0035401668870093193, 0.6409979037657155), [6.637146429694789, 0.0, 0.0, 0.0, 3.5215079301835996, 3.242536913859295, 4.5734372311785485, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0])], Val{5}(), 50), Tuple{Int32, Int32, Int64}[], StaticArraysCore.SVector{2, Int32}[], DerivativesSwitch{true, true, true}())
The initial creation of the octree will create uniformly sized and spaced branches in each level. These branches are not centered or optimally sized with relation to the bodies they contain. As a default, the fmm!
call resizes and recenters these branches to utilize the smallest possible radius that contains all the bodies in each branch[3]. This feature can be toggled with the source_shrink_recenter
and target_shrink_recenter
parameters.
target_system = generate_gravitational(123, 100)
source_system = generate_gravitational(321, 100)
fmm.fmm!(target_system, source_system,
source_shrink_recenter=true, target_shrink_recenter=true) # standard run (defaults)
fmm.fmm!(target_system, source_system,
- source_shrink_recenter=false, target_shrink_recenter=false) # no branch recentering
(SingleTree{Float64, Vector{Tuple{Main.Body{Float64}, Vector{Float64}}}, 5}(SingleBranch{Float64}[SingleBranch{Float64}(1:100, 8, 2:9, 0, -1, [0.49849075893959255, 0.5011246180164968, 0.50101931980297], 0.8617443734929683, 0.8617443734929683, [-0.49752834600881063, 0.49752834600881063, -0.49752834600881063, 0.49752834600881063, -0.49752834600881063, 0.49752834600881063], [0.49752834600881063, 0.49752834600881063, 0.49752834600881063], 0.0, 0.0, fill(0.0), [-49.209733528008485 0.0; 0.0 0.0;;; 3.235503852070556 0.0; 0.0 0.0;;; 0.02681865248285842 0.0; 0.9591193094494834 0.0;;; … ;;; -0.0004469512083583767 0.0; -0.00015932419565861916 0.0;;; -0.00028710529956597804 0.0; -0.00031904516877669385 0.0;;; -7.588266430169126e-6 0.0; -8.400184364295124e-5 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (0, 0, 432022829898))), SingleBranch{Float64}(1:13, 0, 10:9, 1, 1, [0.24972658593518723, 0.25236044501209143, 0.25225514679856464], 0.43087218674648414, 0.43087218674648414, [-0.24876417300440531, 0.24876417300440531, -0.24876417300440531, 0.24876417300440531, -0.24876417300440531, 0.24876417300440531], [0.24876417300440531, 0.24876417300440531, 0.24876417300440531], 0.0, 0.0, fill(0.0), [-6.326393509059363 0.0; 0.0 0.0;;; 0.10174482633884264 0.0; 0.0 0.0;;; -0.07898687772271276 0.0; 0.03841659635534152 0.0;;; … ;;; -9.654710862452212e-7 0.0; -5.591129557725438e-7 0.0;;; 1.175731767951614e-6 0.0; 2.391893864725776e-6 0.0;;; -3.893767927840696e-8 0.0; -4.373076778562484e-7 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; 0.21988918332658114 0.0; 0.0 0.0;;; -0.00907173901579822 0.0; -0.08078608463780172 0.0;;; … ;;; 6.639561085749197e-7 0.0; 1.9043445262044332e-6 0.0;;; 3.6078285954161947e-7 0.0; -1.730779168448776e-7 0.0;;; -1.5694464749247868e-8 0.0; -2.5081831237534205e-8 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (0, 0, 430488950719))), SingleBranch{Float64}(14:23, 0, 10:9, 1, 2, [0.7472549319439978, 0.25236044501209143, 0.25225514679856464], 0.43087218674648414, 0.43087218674648414, [-0.24876417300440531, 0.24876417300440531, -0.24876417300440531, 0.24876417300440531, -0.24876417300440531, 0.24876417300440531], [0.24876417300440531, 0.24876417300440531, 0.24876417300440531], 0.0, 0.0, fill(0.0), [-5.505985520323303 0.0; 0.0 0.0;;; -0.0893400706965472 0.0; 0.0 0.0;;; 0.07469760206429724 0.0; -0.23211041531103774 0.0;;; … ;;; -2.392727383648695e-6 0.0; -2.7506172478695797e-7 0.0;;; 1.2869752996385646e-6 0.0; 8.632541193951725e-7 0.0;;; -1.4323853566229846e-7 0.0; 3.40320513459477e-7 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; 0.18613078162840202 0.0; 0.0 0.0;;; -0.03988177380448188 0.0; -0.10881091326674686 0.0;;; … ;;; 3.1493849180079693e-6 0.0; 1.79002742056861e-6 0.0;;; 2.3049009571265728e-7 0.0; -1.3797688581858191e-6 0.0;;; -1.7119818873987816e-7 0.0; 3.217930041360891e-8 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (0, 0, 432022829898))), SingleBranch{Float64}(24:40, 0, 10:9, 1, 3, [0.24972658593518723, 0.7498887910209021, 0.25225514679856464], 0.43087218674648414, 0.43087218674648414, [-0.24876417300440531, 0.24876417300440531, -0.24876417300440531, 0.24876417300440531, -0.24876417300440531, 0.24876417300440531], [0.24876417300440531, 0.24876417300440531, 0.24876417300440531], 0.0, 0.0, fill(0.0), [-7.986155913622251 0.0; 0.0 0.0;;; -0.1795979615961002 0.0; 0.0 0.0;;; -0.1708212423759164 0.0; 0.03135320324442914 0.0;;; … ;;; -6.066362373385743e-6 0.0; 2.4234495602853986e-6 0.0;;; 2.327392085993626e-6 0.0; 4.871331224296273e-7 0.0;;; 2.4751088043185402e-8 0.0; -5.827716675663792e-8 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; -0.23122788327035293 0.0; 0.0 0.0;;; -0.04900663119822446 0.0; 0.09175801803089013 0.0;;; … ;;; 4.485772070448108e-6 0.0; -4.4630903906536425e-7 0.0;;; 4.303552019451355e-7 0.0; -1.0428735117063708e-6 0.0;;; -6.452660186998594e-8 0.0; -7.836101483352229e-8 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (0, 0, 431406102875))), SingleBranch{Float64}(41:57, 0, 10:9, 1, 4, [0.7472549319439978, 0.7498887910209021, 0.25225514679856464], 0.43087218674648414, 0.43087218674648414, [-0.24876417300440531, 0.24876417300440531, -0.24876417300440531, 0.24876417300440531, -0.24876417300440531, 0.24876417300440531], [0.24876417300440531, 0.24876417300440531, 0.24876417300440531], 0.0, 0.0, fill(0.0), [-9.931355245362722 0.0; 0.0 0.0;;; 0.004639293314162463 0.0; 0.0 0.0;;; 0.10230318193552163 0.0; 0.3431041586399578 0.0;;; … ;;; -5.8057861586053485e-6 0.0; -3.6767179441275553e-6 0.0;;; 1.970849569609788e-6 0.0; -1.1263384149017906e-6 0.0;;; 4.6063384099401923e-7 0.0; -7.362879677517756e-7 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; 0.24833262559729297 0.0; 0.0 0.0;;; -0.04049792411417641 0.0; 0.11830484901746985 0.0;;; … ;;; 7.332767131734295e-6 0.0; -4.818366848970212e-6 0.0;;; 6.296375165101449e-7 0.0; 2.450158453149185e-6 0.0;;; -2.5398566738723024e-7 0.0; -1.9922601565040447e-8 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (0, 0, 432022829898))), SingleBranch{Float64}(58:71, 0, 10:9, 1, 5, [0.24972658593518723, 0.25236044501209143, 0.7497834928073753], 0.43087218674648414, 0.43087218674648414, [-0.24876417300440531, 0.24876417300440531, -0.24876417300440531, 0.24876417300440531, -0.24876417300440531, 0.24876417300440531], [0.24876417300440531, 0.24876417300440531, 0.24876417300440531], 0.0, 0.0, fill(0.0), [-6.0812379817404665 0.0; 0.0 0.0;;; 0.2500525077504865 0.0; 0.0 0.0;;; -0.31821199437047437 0.0; 0.12219381204800842 0.0;;; … ;;; 3.886164164482793e-6 0.0; -7.451230042206713e-6 0.0;;; -1.5655861775267537e-6 0.0; 1.3488384490746591e-6 0.0;;; -2.65136301189794e-7 0.0; -1.0396969077621681e-7 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; 0.23600456619228227 0.0; 0.0 0.0;;; 0.00780054815104303 0.0; 0.01243800251579276 0.0;;; … ;;; -1.457243306148132e-8 0.0; 1.604225902871519e-9 0.0;;; -2.836500215179685e-10 0.0; -3.581821796740947e-10 0.0;;; 1.9003405206797664e-12 0.0; -5.3575717814609175e-12 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (0, 0, 429750419385))), SingleBranch{Float64}(72:82, 0, 10:9, 1, 6, [0.7472549319439978, 0.25236044501209143, 0.7497834928073753], 0.43087218674648414, 0.43087218674648414, [-0.24876417300440531, 0.24876417300440531, -0.24876417300440531, 0.24876417300440531, -0.24876417300440531, 0.24876417300440531], [0.24876417300440531, 0.24876417300440531, 0.24876417300440531], 0.0, 0.0, fill(0.0), [-5.643660411433685 0.0; 0.0 0.0;;; -0.09740163237448708 0.0; 0.0 0.0;;; 0.30569645349438196 0.0; 0.2359234953909746 0.0;;; … ;;; -9.82916763080865e-7 0.0; -4.2285511081766585e-7 0.0;;; 2.7225441029521644e-6 0.0; -9.866422822602592e-7 0.0;;; -2.884182756506517e-7 0.0; 2.1891312191953625e-7 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; -0.137250125216142 0.0; 0.0 0.0;;; -0.041848288296333136 0.0; 0.07154851443791577 0.0;;; … ;;; 7.308420503707386e-7 0.0; 1.2365335735668517e-8 0.0;;; 1.4021073394047346e-7 0.0; -2.3067492312302074e-7 0.0;;; -1.5499976899256273e-8 0.0; -2.8685176609168157e-8 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (0, 0, 432022829898))), SingleBranch{Float64}(83:89, 0, 10:9, 1, 7, [0.24972658593518723, 0.7498887910209021, 0.7497834928073753], 0.43087218674648414, 0.43087218674648414, [-0.24876417300440531, 0.24876417300440531, -0.24876417300440531, 0.24876417300440531, -0.24876417300440531, 0.24876417300440531], [0.24876417300440531, 0.24876417300440531, 0.24876417300440531], 0.0, 0.0, fill(0.0), [-2.3207471469996026 0.0; 0.0 0.0;;; 0.09584922777112714 0.0; 0.0 0.0;;; -0.03459176396777507 0.0; -0.04020642273548641 0.0;;; … ;;; 3.930977957593639e-6 0.0; -1.9071506252246133e-6 0.0;;; 4.262561393862879e-7 0.0; 6.012045573535614e-7 0.0;;; -1.296847519879538e-7 0.0; -1.748757755002258e-8 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; 0.14971540025278463 0.0; 0.0 0.0;;; -0.10199818137039851 0.0; -0.00404107784645201 0.0;;; … ;;; -1.5142366400508734e-6 0.0; -1.807350708728618e-7 0.0;;; 6.688310694761936e-7 0.0; 1.0683350833198992e-7 0.0;;; -9.055558759133121e-8 0.0; -1.8167298693653792e-8 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (0, 0, 432919987375))), SingleBranch{Float64}(90:100, 0, 10:9, 1, 8, [0.7472549319439978, 0.7498887910209021, 0.7497834928073753], 0.43087218674648414, 0.43087218674648414, [-0.24876417300440531, 0.24876417300440531, -0.24876417300440531, 0.24876417300440531, -0.24876417300440531, 0.24876417300440531], [0.24876417300440531, 0.24876417300440531, 0.24876417300440531], 0.0, 0.0, fill(0.0), [-5.414197799467094 0.0; 0.0 0.0;;; 0.5897626670629665 0.0; 0.0 0.0;;; -0.1138694027478626 0.0; -0.009802047749392043 0.0;;; … ;;; 1.152740503052551e-5 0.0; -4.517016990218442e-6 0.0;;; -4.140046433990845e-6 0.0; -1.566383749352849e-6 0.0;;; 1.2469713505945974e-7 0.0; 2.024928160458584e-7 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; 0.21095730321733874 0.0; 0.0 0.0;;; 0.09347241596581823 0.0; -0.08394581821691316 0.0;;; … ;;; -3.5372171155417328e-6 0.0; -4.908219455216665e-6 0.0;;; -2.1396426594075856e-6 0.0; -4.6629625718216964e-7 0.0;;; -2.2671999108049045e-7 0.0; 1.289627938417499e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (140659421046512, 140658694308880, 140659438875792)))], UnitRange{Int64}[1:1, 2:9], [2, 3, 4, 5, 6, 7, 8, 9], [8, 19, 24, 25, 30, 33, 35, 43, 52, 55 … 37, 41, 42, 49, 64, 71, 78, 79, 87, 88], [90, 83, 24, 72, 58, 59, 25, 1, 60, 73 … 23, 38, 80, 56, 39, 81, 82, 40, 13, 57], Tuple{Main.Body{Float64}, Vector{Float64}}[(Main.Body{Float64}([0.7287348331279035, 0.8645178072081, 0.9863586950447876], 0.002824412632887574, 0.3155425281087243), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.04871498957839171, 0.5228239956008278, 0.9981161184046683], 0.0010354523583936332, 0.10074227409525549), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.26339547338830394, 0.8205923530535013, 0.013801744155504059], 0.000561123611422205, 0.48127815547923203), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.9156175145346829, 0.2751207698440503, 0.5246024619099758], 0.0098534859774698, 0.26935622770690937), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.23794338253051606, 0.07126180162893991, 0.8268192848648235], 0.005893848251548706, 0.9623280302748543), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.34419014790511104, 0.05942329652687128, 0.638243835469361], 0.00644242207338283, 0.6288483051985535), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.15805649008974942, 0.5709938439335004, 0.1952963518956614], 0.008603607634628693, 0.5087196531195634), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.4660552366407049, 0.13111968284280429, 0.1908671255470663], 0.010673064683743582, 0.8267772979915037), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.2548517099678951, 0.4198627396823058, 0.721065848690685], 0.003035717937974793, 0.189926270491526), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.8858526395090768, 0.46145248100070335, 0.9250567869081467], 0.001049518093285898, 0.5832151279544228), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) … (Main.Body{Float64}([0.5296331054105041, 0.3321239926210552, 0.06612436517016262], 0.002175180875437042, 0.542909809886388), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.2721094519411936, 0.5745316878158806, 0.31571722739191854], 0.005050715677355731, 0.7277739175207515), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.7434626951201386, 0.36289922364912086, 0.7061441002953883], 0.006725458802148647, 0.407131657744786), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.8013471104408885, 0.5720653332405079, 0.27403203500462225], 0.007524167273081227, 0.7565384544369875), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.46830452243845555, 0.569647595880568, 0.1541232993049313], 0.0011190004051976465, 0.5368528346904301), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.9017878088237389, 0.40553596320169993, 0.7807749436261482], 0.0010846429951816498, 0.8565385784764896), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.8903519608198294, 0.3360570216047577, 0.8870336180235173], 0.009269785903194445, 0.8071347497510072), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.4332426219969675, 0.847902053417351, 0.4834830300689176], 0.010282220561264157, 0.13342547527751936), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.08815441665958379, 0.27050392304368787, 0.032365963471983505], 0.0061883460330328845, 0.47163404328391867), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.9838646299789375, 0.8308846392492549, 0.003922521201271678], 0.002568471846652083, 0.6464273083957023), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0])], Val{5}(), 50), SingleTree{Float64, Vector{Tuple{Main.Body{Float64}, Vector{Float64}}}, 5}(SingleBranch{Float64}[SingleBranch{Float64}(1:100, 8, 2:9, 0, -1, [0.49850630217496006, 0.5029084590406193, 0.4970227729348794], 0.8572644572282587, 0.8572644572282587, [-0.49494186514743355, 0.49494186514743355, -0.49494186514743355, 0.49494186514743355, -0.49494186514743355, 0.49494186514743355], [0.49494186514743355, 0.49494186514743355, 0.49494186514743355], 0.0, 0.0, fill(0.0), [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (140659421046512, 140658694308880, 0))), SingleBranch{Float64}(1:14, 0, 10:9, 1, 1, [0.2510353696012433, 0.25543752646690254, 0.24955184036116262], 0.42863222861412936, 0.42863222861412936, [-0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677], [0.24747093257371677, 0.24747093257371677, 0.24747093257371677], 0.0, 0.0, fill(0.0), [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; -0.2148612382952998 0.0; -0.0 0.0;;; -0.04833896697010254 0.0; -0.08941268169127015 0.0;;; … ;;; 3.5751904359505736e-6 0.0; 3.0080507578758053e-7 0.0;;; 3.8236458599367976e-7 0.0; 8.757176386082573e-7 0.0;;; -5.567979953388733e-8 0.0; 7.122692732518039e-8 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (140659421046512, 140658694308880, 140659237185616))), SingleBranch{Float64}(15:32, 0, 10:9, 1, 2, [0.7459772347486768, 0.25543752646690254, 0.24955184036116262], 0.42863222861412936, 0.42863222861412936, [-0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677], [0.24747093257371677, 0.24747093257371677, 0.24747093257371677], 0.0, 0.0, fill(0.0), [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; -0.11109187197856953 0.0; -0.0 0.0;;; -0.09395587638099494 0.0; -0.03393406206661734 0.0;;; … ;;; -3.0928893153242635e-7 0.0; -5.266357454009592e-7 0.0;;; -8.453485198034652e-8 0.0; -4.5314409979717737e-7 0.0;;; 1.3384370562270982e-8 0.0; -8.18136577012236e-8 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (140659421046512, 140658694308880, 0))), SingleBranch{Float64}(33:42, 0, 10:9, 1, 3, [0.2510353696012433, 0.7503793916143361, 0.24955184036116262], 0.42863222861412936, 0.42863222861412936, [-0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677], [0.24747093257371677, 0.24747093257371677, 0.24747093257371677], 0.0, 0.0, fill(0.0), [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; -0.1902545870569238 0.0; -0.0 0.0;;; -0.08523619914991601 0.0; 0.10063606184199078 0.0;;; … ;;; 4.515701992660869e-6 0.0; 2.690965808809799e-6 0.0;;; 2.2681808274429954e-6 0.0; -7.785616815693268e-7 0.0;;; 1.2086933929990936e-7 0.0; -3.097138724670615e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (0, 0, 0))), SingleBranch{Float64}(43:55, 0, 10:9, 1, 4, [0.7459772347486768, 0.7503793916143361, 0.24955184036116262], 0.42863222861412936, 0.42863222861412936, [-0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677], [0.24747093257371677, 0.24747093257371677, 0.24747093257371677], 0.0, 0.0, fill(0.0), [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; -0.10425315723209527 0.0; -0.0 0.0;;; -0.04040250617839929 0.0; -0.04562408503868281 0.0;;; … ;;; 1.3994426612384809e-7 0.0; -9.646789543011186e-8 0.0;;; 5.8163042620289284e-8 0.0; 1.4387157402797034e-8 0.0;;; 3.2488834697645844e-9 0.0; 6.2058798109508465e-9 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (140659421046512, 140658694308880, 140659236941872))), SingleBranch{Float64}(56:68, 0, 10:9, 1, 5, [0.2510353696012433, 0.25543752646690254, 0.7444937055085962], 0.42863222861412936, 0.42863222861412936, [-0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677], [0.24747093257371677, 0.24747093257371677, 0.24747093257371677], 0.0, 0.0, fill(0.0), [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; 0.1406114031795701 0.0; 0.0 0.0;;; 0.04115679478744828 0.0; -0.03533755162400021 0.0;;; … ;;; -1.2881546024813352e-7 0.0; -2.0655710448954946e-7 0.0;;; -4.840981119340681e-8 0.0; -1.5172010562775518e-8 0.0;;; -3.596485511575488e-9 0.0; 1.545042368324494e-9 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (140658724172528, 140658724173984, 140659438647184))), SingleBranch{Float64}(69:78, 0, 10:9, 1, 6, [0.7459772347486768, 0.25543752646690254, 0.7444937055085962], 0.42863222861412936, 0.42863222861412936, [-0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677], [0.24747093257371677, 0.24747093257371677, 0.24747093257371677], 0.0, 0.0, fill(0.0), [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; -0.05941950550840777 0.0; -0.0 0.0;;; -0.06984898585556935 0.0; 0.10325321360106476 0.0;;; … ;;; -6.688472512156468e-7 0.0; -1.4501297809812144e-7 0.0;;; 4.3233604883670166e-7 0.0; -4.1299565937718063e-7 0.0;;; -4.1888246519238254e-8 0.0; -2.4735114753799555e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (0, 0, 431322503448))), SingleBranch{Float64}(79:86, 0, 10:9, 1, 7, [0.2510353696012433, 0.7503793916143361, 0.7444937055085962], 0.42863222861412936, 0.42863222861412936, [-0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677], [0.24747093257371677, 0.24747093257371677, 0.24747093257371677], 0.0, 0.0, fill(0.0), [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; -0.19774130005920343 0.0; -0.0 0.0;;; 0.10337420516639845 0.0; -0.003702501499532632 0.0;;; … ;;; 3.0951077862846165e-6 0.0; -3.337097810420304e-7 0.0;;; -9.336410389602992e-7 0.0; 1.3462336691028458e-7 0.0;;; 9.711269933660484e-8 0.0; -1.7571838450287563e-8 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (140659421046512, 140658694308880, -1))), SingleBranch{Float64}(87:100, 0, 10:9, 1, 8, [0.7459772347486768, 0.7503793916143361, 0.7444937055085962], 0.42863222861412936, 0.42863222861412936, [-0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677, -0.24747093257371677, 0.24747093257371677], [0.24747093257371677, 0.24747093257371677, 0.24747093257371677], 0.0, 0.0, fill(0.0), [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [1.0 0.0; 0.0 0.0;;; -0.0593731535051507 0.0; -0.0 0.0;;; 0.08539386253795012 0.0; 0.039405099639804875 0.0;;; … ;;; -1.6817191281206375e-8 0.0; -5.988143577896676e-8 0.0;;; 3.0556184471062655e-8 0.0; -1.9110878655930648e-7 0.0;;; -3.415675534882339e-8 0.0; 5.09167765671537e-8 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (140659421046512, 140658694308880, 3)))], UnitRange{Int64}[1:1, 2:9], [2, 3, 4, 5, 6, 7, 8, 9], [11, 19, 33, 43, 59, 63, 67, 68, 69, 72 … 20, 24, 31, 37, 42, 48, 60, 74, 94, 100], [69, 87, 70, 71, 79, 43, 56, 57, 44, 88 … 12, 55, 30, 99, 31, 32, 13, 68, 14, 100], Tuple{Main.Body{Float64}, Vector{Float64}}[(Main.Body{Float64}([0.9191811597933967, 0.42601923740838954, 0.7465863168484385], 0.00551624732815934, 0.2538490889415096), [17.271409969161304, 0.0, 0.0, 0.0, 41.685412355141416, 34.12426438870282, -51.63876083740611, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.8192008435733007, 0.9541592624784624, 0.8458950823510601], 0.0014709561750558223, 0.03209667335274724), [11.529739095286155, 0.0, 0.0, 0.0, 1.024496302655218, 10.679868569840236, 10.166694863850497, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.586748700554989, 0.12181263792534469, 0.7894931647499924], 0.0016174951280755708, 0.8935369466209786), [13.46622737210304, 0.0, 0.0, 0.0, 4.201427260478692, -11.777746989315899, 8.494900903588235, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.6192588014774537, 0.47764531343080796, 0.8041934288169849], 0.003639098305331564, 0.8236563299357046), [16.810905005346296, 0.0, 0.0, 0.0, 20.653133771733803, 22.29084743955388, 12.956920331242188, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.12353811904859124, 0.7400202596259494, 0.7057473220960516], 0.004975260027225807, 0.9340155879013086), [13.212106090876661, 0.0, 0.0, 0.0, -6.564084687557748, 10.714720577279024, 7.1489651530156975, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.9919607797239652, 0.8036971367794874, 0.29827230692896456], 0.006659427674753824, 0.4842893268146866), [15.293301715719982, 0.0, 0.0, 0.0, 20.840068737911185, 6.203972731398467, 2.3564006118821963, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.49265789199054244, 0.17985285886739166, 0.6397154045236242], 0.004022070032387327, 0.6922349538863742), [16.030214365478127, 0.0, 0.0, 0.0, 4.854825245033792, -12.82436694878877, 9.932648614159953, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.22768758746068596, 0.26780944724527167, 0.8309795986773825], 0.006802835099514221, 0.6911617055492341), [13.477674670011098, 0.0, 0.0, 0.0, -7.615430967959103, 0.8284024454950295, 11.665202214285912, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.621178864455285, 0.7425206336869923, 0.15487161620983314], 0.0010425988209884726, 0.09206661519876747), [17.722712907499606, 0.0, 0.0, 0.0, -9.940219848256183, 17.727356485985396, -29.098711105724526, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.5733898483119126, 0.5900840309886971, 0.7659266276192337], 0.00633005068065063, 0.37737321139310276), [16.05489877164097, 0.0, 0.0, 0.0, -1.3860752481739533, 7.346902899243912, 19.030178738198078, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) … (Main.Body{Float64}([0.3562026836409853, 0.3635243844573359, 0.309727986680287], 0.0038713948967191466, 0.43490959394031214), [17.98003272398291, 0.0, 0.0, 0.0, -6.176928042529583, -6.83720001434035, -5.104865976947373, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.6547290646713112, 0.8311844039711347, 0.3538049975932579], 0.004154302641783906, 0.5842214092626906), [19.759661981521948, 0.0, 0.0, 0.0, 2.1460904804827003, 22.402074129288803, 38.03301983987145, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.5388794936906567, 0.04350921485134718, 0.23629199234128806], 0.006559279199653211, 0.9196974029361853), [15.25309168181086, 0.0, 0.0, 0.0, 10.352682001138295, -27.645326895875023, -2.5692266359007827, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.5109351365074641, 0.7269107204213763, 0.8057341233600875], 0.002916397428800248, 0.13080774080166646), [14.120390177961934, 0.0, 0.0, 0.0, -1.770561231400227, 8.777886446209552, 15.293358878789466, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.6177567582580967, 0.38039525218264447, 0.37934078500465196], 0.010186078857427224, 0.2366140514268097), [19.989481091602663, 0.0, 0.0, 0.0, 8.002207700492232, -27.907771334220058, -16.494951316871173, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.6781091106154422, 0.44334927922889245, 0.36064371233973214], 0.01036251002724151, 0.2743759198193091), [19.81705582450624, 0.0, 0.0, 0.0, 12.06418885791642, -5.798482118132713, -4.308943660676608, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.20158107237490663, 0.3238946945648584, 0.24399963650509682], 0.009664372151238956, 0.47733204119516204), [16.09145579771531, 0.0, 0.0, 0.0, -9.056889348091818, -6.4324259288317, -9.833126873177216, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.18036026635324287, 0.173123936892006, 0.6038823023290261], 0.010016593230124706, 0.4401491209134364), [14.946809903378847, 0.0, 0.0, 0.0, -14.889338356696868, 0.1483895783560294, 4.026318082371973, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.072210006218703, 0.3521154604071077, 0.4644130786564624], 0.0037743609975635275, 0.17728847529212788), [15.085750970541683, 0.0, 0.0, 0.0, -19.61109590484976, -9.907966126632697, 6.262829492967415, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), (Main.Body{Float64}([0.8247874340282866, 0.5795916665384359, 0.8038668590137469], 0.0035401668870093193, 0.6409979037657155), [14.872272809760988, 0.0, 0.0, 0.0, 3.9248367357842517, 7.73617997006026, 12.068889746971752, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0])], Val{5}(), 50), Tuple{Int32, Int32, Int64}[], StaticArraysCore.SVector{2, Int32}[[2, 2], [3, 2], [4, 2], [5, 2], [6, 2], [7, 2], [8, 2], [9, 2], [2, 3], [3, 3] … [8, 8], [9, 8], [2, 9], [3, 9], [4, 9], [5, 9], [6, 9], [7, 9], [8, 9], [9, 9]], DerivativesSwitch{true, true, true}())
Settings
This document was generated with Documenter.jl version 1.7.0 on Monday 11 November 2024. Using Julia version 1.11.1.