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}())

Reusing the Octree

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.

target_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}())

Reusing the Octree

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.

target_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}())

Resize and Recenter Branches

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}())

Resize and Recenter Branches

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}())
+ 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)), (139835868900016, 139835868900048, 139835767718704))), 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)), (139835716062976, 139835716062976, 139835767718704))), 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)), (1, 0, 20))), 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)), (139835090528128, 139835090528144, 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)), (139835090528224, 139835829213856, 139835914346112))), 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)), (139835090528257, 139835735744976, 0))), 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)), (139835851580576, 139835851580448, 2886218027744))), 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)), (139835767718704, 139835767718704, 1))), 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)), (0, 0, 139835914320128)))], 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)), (0, 0, 2886218027744))), 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)), (139835748839840, 139835767727712, 139835767718704))), 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)), (0, 0, 432779527690))), 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, 432113482956))), 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)), (139835914940048, 139835914907744, 139835767718704))), 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)), (139835868904816, 139835851580688, 4800))), 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)), (139835914852936, 0, 413776301541))), 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)), (139835914940048, 139835914907744, 8589934594))), 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)), (139835851580816, 139835767727712, 139835767718704)))], 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}())
diff --git a/dev/guided_examples/index.html b/dev/guided_examples/index.html index 84e4709..9c54cca 100644 --- a/dev/guided_examples/index.html +++ b/dev/guided_examples/index.html @@ -129,7 +129,7 @@ 0.06721954776336198

Evaluate Source on Target

FastMutipole allows for the evaluation of source systems on target systems while leaving the source systems unaltered.

target_system = generate_gravitational(123, 100)
 source_system = generate_gravitational(321, 100)
 
-fmm.fmm!(target_system, source_system)
(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)), (140658686973712, 140658686973744, 1))), 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)), (3, 3, 0))), 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)), (140659240390400, 140659240390400, 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)), (14, 19, 24))), 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)), (8, 10, 12))), 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)), (8, 10, 12))), 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, 140658660330000))), 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, 0, 140658593845616))), 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)), (8, 10, 12)))], 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.5242721608260215, 0.3037915019715359, 0.5092362809736347]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.4506225909463669, 0.17491391238059328, 0.06082060195439776]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.597575664859812, 0.25621397411396096, 0.24376337038602525]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.8362086583306593, 0.34878217938304656, 0.892054755729866]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.9700474105552134, 0.5401563811701252, 0.3363767088616114]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.5436188365924102, 0.037170548624490096, 0.6186924419946928]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.46083787720574276, 0.11131168268560498, 0.05390644299571157]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.5940503494088615, 0.7642758026757188, 0.7064898043827468]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.15590027174117937, 0.7717098308773933, 0.9680719682507289]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.15248404026168572, 0.09640162291097443, 0.6066622096622617]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.9881319260769655, 0.5116206744374018, 0.9679174508161817]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.009255442256615898, 0.3853129792372124, 0.8965895001482749]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.9044154694097414, 0.24397207168261692, 0.6196427314061671]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.6324196309760326, 0.976021107723584, 0.29692421493161325]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.4268673876767367, 0.9735324084830853, 0.24475631443925416]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.7273458269895778, 0.982711926423153, 0.04772294619709316]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.016120646043767062, 0.6116823564493244, 0.339969923686365]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.39771446132672317, 0.9621059017952472, 0.5630711498775078]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.9347698946928172, 0.815645714794484, 0.05209239706209945]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.17360869737136164, 0.9921060153024334, 0.05658531089982577]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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)), (140659438876240, 140659438876240, 140659240390400))), 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)), (140659438653185, 140659250928416, 8))), 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)), (140658686805584, 140659417367440, 140658923658464))), 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)), (140659417367408, 140659417367424, 140658696126672))), 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)), (140658686806672, 140658686806768, 140658696126672))), 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)), (140658686806672, 140658686806768, 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), [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0], [0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; 0.0 0.0; 0.0 0.0;;; … ;;; 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, 432199804840))), 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)), (140658685085232, 140658685085248, 1518654575781))), 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)), (140659292046128, 140659292046128, 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, 0.33415153638191886, 0.4273278808735992, 0.867547200255958]), [108.51946935250929, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.3505458214588266, 0.9303323763821093, 0.9594335994071538]), [72.44348727911604, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.3548676566528912, 0.13179829123412257, 0.9411330896079791]), [84.61080196753738, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.45048364263035023, 0.8913769757127503, 0.7110385498005108]), [105.6260313299836, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.753277849991045, 0.7295997282994879, 0.16238042514897943]), [83.01411086709412, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.5997019277391098, 0.4536933650141408, 0.3249034202416199]), [96.09064863847617, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.7468540519107453, 0.09667869010406493, 0.45910253524716227]), [100.7208073721113, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.821283430881433, 0.5644095995557176, 0.030378874865931382]), [84.68272746156016, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.4379647602849879, 0.23146826213384353, 0.6471427793654219]), [111.35508934376354, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.2404468114408953, 0.2221494346545283, 0.5096964769051421]), [100.87590407023012, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.0758000769135273, 0.3487409265919944, 0.30331684418426996]), [112.97187743393756, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.881611313975086, 0.009146364153274189, 0.9806631480861379]), [124.15361783713384, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.17022568799250704, 0.2638800824351736, 0.6514229873225715]), [95.83800154421716, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.22271994897768166, 0.6048365813194562, 0.052884966374337816]), [88.72102809781342, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.31694750597495125, 0.29912838760350746, 0.623451826337517]), [125.5976138929021, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.7285911206511895, 0.03773808039378912, 0.04331783284230861]), [124.51423398809521, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.4603052801344075, 0.9298297825042643, 0.358424742237733]), [101.10559863933453, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.8609926737185056, 0.1638092551671958, 0.22646456871949416]), [93.91357637411625, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.12630836876865192, 0.9645167219705122, 0.8221674765296613]), [94.78656884587767, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.15911501872567757, 0.5356210909593669, 0.6799181470255188]), [93.44524600265673, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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}())

Evaluate Multiple Sources on Multiple Targets

The FMM also supports the evaluation of multiple source systems on multiple target systems. The user is also able to evaluate a single source on multiple targets or multiple sources on a single target with any combination of supported system types.

vortex_path = normpath(joinpath(splitdir(pathof(fmm))[1], "..", "test", "vortex.jl"))
+fmm.fmm!(target_system, source_system)
(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)), (139835914329536, 139835914330432, 0))), 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)), (139835071738016, 139835914319760, 139835712794656))), 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)), (139835914346497, 139835722962256, 432920450458))), 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)), (139835767718704, 139835076568576, 139835071738208))), 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)), (139835767718704, 139835767718704, 139835914319760))), 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)), (139835829215489, 139835735020000, 139835767718704))), 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)), (139835090158160, 139835829213856, 139835914313736))), 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)), (20753281979104, 672, 431793782032))), 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)), (139835914940048, 139835914828240, 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.7287348331279035, 0.8645178072081, 0.9863586950447876], 0.002824412632887574, [0.3155425281087243, 0.5242721608260215, 0.3037915019715359, 0.5092362809736347]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.4506225909463669, 0.17491391238059328, 0.06082060195439776]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.597575664859812, 0.25621397411396096, 0.24376337038602525]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.8362086583306593, 0.34878217938304656, 0.892054755729866]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.9700474105552134, 0.5401563811701252, 0.3363767088616114]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.5436188365924102, 0.037170548624490096, 0.6186924419946928]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.46083787720574276, 0.11131168268560498, 0.05390644299571157]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.5940503494088615, 0.7642758026757188, 0.7064898043827468]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.15590027174117937, 0.7717098308773933, 0.9680719682507289]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.15248404026168572, 0.09640162291097443, 0.6066622096622617]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.9881319260769655, 0.5116206744374018, 0.9679174508161817]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.009255442256615898, 0.3853129792372124, 0.8965895001482749]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.9044154694097414, 0.24397207168261692, 0.6196427314061671]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.6324196309760326, 0.976021107723584, 0.29692421493161325]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.4268673876767367, 0.9735324084830853, 0.24475631443925416]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.7273458269895778, 0.982711926423153, 0.04772294619709316]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.016120646043767062, 0.6116823564493244, 0.339969923686365]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.39771446132672317, 0.9621059017952472, 0.5630711498775078]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.9347698946928172, 0.815645714794484, 0.05209239706209945]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.17360869737136164, 0.9921060153024334, 0.05658531089982577]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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)), (139835914940048, 139835914828240, 139835170769552))), 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)), (17179869193, 0, 412813011855))), 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)), (20753281979104, 139835545223840, 139835914323344))), 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)), (139835657265680, 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)), (2, 2, 1516123455488))), 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)), (4294967297, 4294967297, 412316860416))), 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)), (139835090559233, 139835730732784, 139835767718704))), 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)), (139835767718704, 139835767718704, 139835767718704))), 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)), (139835767718704, 139835767718704, 1518020287460)))], 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, 0.33415153638191886, 0.4273278808735992, 0.867547200255958]), [108.51946935250929, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.3505458214588266, 0.9303323763821093, 0.9594335994071538]), [72.44348727911604, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.3548676566528912, 0.13179829123412257, 0.9411330896079791]), [84.61080196753738, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.45048364263035023, 0.8913769757127503, 0.7110385498005108]), [105.6260313299836, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.753277849991045, 0.7295997282994879, 0.16238042514897943]), [83.01411086709412, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.5997019277391098, 0.4536933650141408, 0.3249034202416199]), [96.09064863847617, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.7468540519107453, 0.09667869010406493, 0.45910253524716227]), [100.7208073721113, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.821283430881433, 0.5644095995557176, 0.030378874865931382]), [84.68272746156016, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.4379647602849879, 0.23146826213384353, 0.6471427793654219]), [111.35508934376354, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.2404468114408953, 0.2221494346545283, 0.5096964769051421]), [100.87590407023012, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.0758000769135273, 0.3487409265919944, 0.30331684418426996]), [112.97187743393756, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.881611313975086, 0.009146364153274189, 0.9806631480861379]), [124.15361783713384, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.17022568799250704, 0.2638800824351736, 0.6514229873225715]), [95.83800154421716, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.22271994897768166, 0.6048365813194562, 0.052884966374337816]), [88.72102809781342, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.31694750597495125, 0.29912838760350746, 0.623451826337517]), [125.5976138929021, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.7285911206511895, 0.03773808039378912, 0.04331783284230861]), [124.51423398809521, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.4603052801344075, 0.9298297825042643, 0.358424742237733]), [101.10559863933453, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.8609926737185056, 0.1638092551671958, 0.22646456871949416]), [93.91357637411625, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.12630836876865192, 0.9645167219705122, 0.8221674765296613]), [94.78656884587767, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.15911501872567757, 0.5356210909593669, 0.6799181470255188]), [93.44524600265673, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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}())

Evaluate Multiple Sources on Multiple Targets

The FMM also supports the evaluation of multiple source systems on multiple target systems. The user is also able to evaluate a single source on multiple targets or multiple sources on a single target with any combination of supported system types.

vortex_path = normpath(joinpath(splitdir(pathof(fmm))[1], "..", "test", "vortex.jl"))
 include(vortex_path)
 
 function generate_vortex(seed, n_bodies; radius_factor=0.1, strength_factor=1.0)
@@ -152,15 +152,15 @@
 source_one = generate_gravitational(125, 100)
 source_two = generate_vortex(126, 100)
 
-fmm.fmm!((target_one, target_two), (source_one, source_two))
(MultiTree{Float64, 2, Tuple{Vector{Tuple{Main.Body{Float64}, Vector{Float64}}}, Vector{Tuple{Main.Vorton{Float64}, Vector{Float64}, Vector{Float64}}}}, 5}(MultiBranch{Float64, 2}[MultiBranch{Float64, 2}(UnitRange{Int64}[1:100, 1:100], 8, 2:9, 0, -1, [0.5026259736883681, 0.5006093989915064, 0.506575304253488], 0.8619975055877627, 0.8619975055877627, [-0.49767449189188073, 0.49767449189188073, -0.49767449189188073, 0.49767449189188073, -0.49767449189188073, 0.49767449189188073], [0.49767449189188073, 0.49767449189188073, 0.49767449189188073], 0.0, 0.0, fill(0.0), [-47.330269153011905 0.0; 0.0 0.0;;; -1.4300081297763314 0.0; 0.0 0.0;;; -0.0020279707713188877 0.0; -0.0810447498230098 0.0;;; … ;;; -0.001102965892865963 0.0; -4.646297296899838e-5 0.0;;; 0.0001693966781257666 0.0; -9.944313846444004e-5 0.0;;; -2.862980365746775e-5 0.0; -1.3838857277821314e-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)), (140658588182176, 140659292046064, 413693021126))), MultiBranch{Float64, 2}(UnitRange{Int64}[1:14, 1:12], 0, 10:9, 1, 1, [0.2537887277424278, 0.251772153045566, 0.2577380583075476], 0.43099875279388133, 0.43099875279388133, [-0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037], [0.24883724594594037, 0.24883724594594037, 0.24883724594594037], 0.0, 0.0, fill(0.0), [-7.499871222570643 0.0; 0.0 0.0;;; 0.14134763322386673 5.876318899706723; 0.0 0.0;;; -0.27781448587580504 -3.399262014326455; -0.21357159879163193 -3.034004529419432;;; … ;;; 2.528007054727247e-6 -5.198140515345906e-6; -3.5865531122720975e-7 -2.2816070849536322e-6;;; -5.825983403314016e-6 1.668839102392757e-7; 7.346808214947709e-7 -5.3432822173448825e-6;;; 4.452343181626718e-7 2.8737566545769717e-6; -5.919437972505053e-7 1.5152180081065892e-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], [1.0 0.0; 0.0 0.0;;; -0.07563716034391843 0.0; 0.0 0.0;;; -0.09383556353568245 0.0; 0.04427676342595527 0.0;;; … ;;; -7.732499867406854e-9 0.0; 3.051715598564347e-8 0.0;;; 6.995691193611116e-8 0.0; 3.5849287145216293e-7 0.0;;; 5.9328907145372435e-8 0.0; 8.075902066539915e-8 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (20753281974944, 20753281979104, 672))), MultiBranch{Float64, 2}(UnitRange{Int64}[15:25, 13:23], 0, 10:9, 1, 2, [0.7514632196343085, 0.251772153045566, 0.2577380583075476], 0.43099875279388133, 0.43099875279388133, [-0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037], [0.24883724594594037, 0.24883724594594037, 0.24883724594594037], 0.0, 0.0, fill(0.0), [-5.786962147547788 0.0; 0.0 0.0;;; -0.08046626758682532 4.410294461276509; 0.0 0.0;;; 0.07917686087068565 -3.2482101027014534; 0.013486487172595357 -2.7368772194723507;;; … ;;; 2.9550574604507674e-6 -2.7285638004285373e-6; -1.3518437065648355e-6 3.5595636693251586e-6;;; -5.234086734876242e-7 3.555165107606909e-6; -9.92570608622439e-7 -1.2783154363676133e-6;;; 1.9554981220314482e-7 7.438288253934825e-7; 4.1692108973748044e-7 1.062118867108326e-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], [1.0 0.0; 0.0 0.0;;; 0.051280316864532494 0.0; 0.0 0.0;;; 0.026829953422987274 0.0; -0.0748119800766262 0.0;;; … ;;; 1.899571107442584e-8 0.0; -1.1328956225594303e-8 0.0;;; 1.6387380676626464e-8 0.0; 8.366465479549419e-8 0.0;;; 2.6126169093897e-8 0.0; 3.9732453187322435e-9 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (20753281974944, 20753281979104, 20753281974944))), MultiBranch{Float64, 2}(UnitRange{Int64}[26:39, 24:38], 0, 10:9, 1, 3, [0.2537887277424278, 0.7494466449374467, 0.2577380583075476], 0.43099875279388133, 0.43099875279388133, [-0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037], [0.24883724594594037, 0.24883724594594037, 0.24883724594594037], 0.0, 0.0, fill(0.0), [-6.461237959815938 0.0; 0.0 0.0;;; -0.06455233958895452 10.059074305326293; 0.0 0.0;;; 0.01453666265401074 -4.529151153045262; 0.035733159549641055 -3.1853673726340865;;; … ;;; 2.185651803566736e-6 2.939983733331748e-6; -2.1020197866396055e-6 2.2769594810854188e-5;;; 6.413575350526986e-7 8.118082850156805e-6; -2.6281938845417287e-6 -5.2015670950708256e-6;;; 3.216724613459501e-7 -7.86771014197628e-7; 6.657658982750058e-7 1.327187878612661e-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], [1.0 0.0; 0.0 0.0;;; 0.19697053746278903 0.0; 0.0 0.0;;; -0.06982836891659083 0.0; 0.0559260760892909 0.0;;; … ;;; 9.125962831737276e-7 0.0; 1.864939988205681e-6 0.0;;; -4.7557482138149605e-7 0.0; -2.2413312341668466e-7 0.0;;; 4.644704815088655e-8 0.0; -1.1114538610052121e-8 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (0, 0, 0))), MultiBranch{Float64, 2}(UnitRange{Int64}[40:49, 39:53], 0, 10:9, 1, 4, [0.7514632196343085, 0.7494466449374467, 0.2577380583075476], 0.43099875279388133, 0.43099875279388133, [-0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037], [0.24883724594594037, 0.24883724594594037, 0.24883724594594037], 0.0, 0.0, fill(0.0), [-3.3477273311870865 0.0; 0.0 0.0;;; -0.16435855694757204 9.721186791516416; 0.0 0.0;;; 0.12294219903268079 -4.248526417696294; -0.0332377231093299 -4.252662383598009;;; … ;;; -8.13710641459531e-6 2.8580911633519164e-6; -6.231810556349974e-7 6.864144066599249e-6;;; 2.2119897970051911e-7 -2.346400167145746e-6; -3.7089074074201864e-6 -1.3558413583447434e-5;;; -5.605149079948702e-7 1.52790392922525e-6; -7.910253772220518e-7 1.307628828750524e-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], [1.0 0.0; 0.0 0.0;;; 0.1203246909098602 0.0; 0.0 0.0;;; 0.10905156210654654 0.0; -0.06508193456155464 0.0;;; … ;;; -4.7489710223826224e-8 0.0; -1.0937320874843271e-6 0.0;;; -7.162458392092633e-7 0.0; -1.0897602359520343e-6 0.0;;; -2.4771546198069067e-7 0.0; -1.200508235984114e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (140658686425584, 140658686425616, 140659438709824))), MultiBranch{Float64, 2}(UnitRange{Int64}[50:59, 54:61], 0, 10:9, 1, 5, [0.2537887277424278, 0.251772153045566, 0.7554125501994283], 0.43099875279388133, 0.43099875279388133, [-0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037], [0.24883724594594037, 0.24883724594594037, 0.24883724594594037], 0.0, 0.0, fill(0.0), [-3.768609585113875 0.0; 0.0 0.0;;; -0.0008241017990052862 5.180157724215509; 0.0 0.0;;; -0.13506173196838803 -2.648291420360042; 0.3386931330435938 -1.2864699484118736;;; … ;;; -9.014507135353242e-7 -7.018939476416647e-6; -3.5641213887785376e-6 5.502324767485222e-6;;; -1.5099245250969104e-7 -5.154080100681363e-6; -4.196134456734228e-6 6.012899693515811e-6;;; -1.3480597057727598e-7 3.5575244532127094e-6; -1.0043910673550508e-6 -5.975371881267255e-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], [1.0 0.0; 0.0 0.0;;; 0.11256203287810052 0.0; 0.0 0.0;;; -0.020966539634629522 0.0; -0.029270807438235014 0.0;;; … ;;; 4.475633321570958e-8 0.0; -1.3548142320263519e-8 0.0;;; -6.2495612685646185e-9 0.0; -4.803194607824211e-9 0.0;;; -1.6989228380302114e-11 0.0; 5.039640229144699e-10 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (140659438875344, 140659438647552, 140659372903920))), MultiBranch{Float64, 2}(UnitRange{Int64}[60:70, 62:69], 0, 10:9, 1, 6, [0.7514632196343085, 0.251772153045566, 0.7554125501994283], 0.43099875279388133, 0.43099875279388133, [-0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037], [0.24883724594594037, 0.24883724594594037, 0.24883724594594037], 0.0, 0.0, fill(0.0), [-6.6995373983658775 0.0; 0.0 0.0;;; -0.226188905136008 3.677475516378436; 0.0 0.0;;; -0.038937156550284735 -2.5171015089578783; -0.29803097221656427 -2.2333489901345933;;; … ;;; -4.152573541563101e-6 2.0044427363543273e-6; -3.6936070425416564e-6 -2.1325029628985765e-6;;; 2.173487342197061e-6 2.868425050078561e-6; -8.071153365030427e-7 -1.950602288335767e-6;;; -5.683976842176204e-7 1.2853220827340282e-6; 6.412124498508532e-7 3.478490587942194e-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], [1.0 0.0; 0.0 0.0;;; 0.1553180709409666 0.0; 0.0 0.0;;; -0.09289808291753082 0.0; 0.11456471052155748 0.0;;; … ;;; 3.1527654798849906e-6 0.0; 1.6142945545284847e-6 0.0;;; -2.80138885224981e-6 0.0; 1.2383970011340801e-6 0.0;;; 1.524189158643975e-7 0.0; -5.614092520865809e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (140658687641040, 140658687641072, 140659292051408))), MultiBranch{Float64, 2}(UnitRange{Int64}[71:84, 70:84], 0, 10:9, 1, 7, [0.2537887277424278, 0.7494466449374467, 0.7554125501994283], 0.43099875279388133, 0.43099875279388133, [-0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037], [0.24883724594594037, 0.24883724594594037, 0.24883724594594037], 0.0, 0.0, fill(0.0), [-5.357829793323234 0.0; 0.0 0.0;;; -0.4061642214854503 9.5704574266076; 0.0 0.0;;; 0.03137691545227036 -3.3376101500858075; -0.23075631586093312 -3.916290355677398;;; … ;;; 3.3014050982660475e-6 -7.670618662800918e-6; -5.208062214551448e-6 -3.057767276954066e-5;;; 2.870869148786357e-6 -6.334327079983546e-6; 1.7481832131259466e-6 1.8943763991561415e-5;;; -4.1528628356866803e-7 3.2824458852436157e-7; 7.872102020772641e-7 4.794973342512074e-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], [1.0 0.0; 0.0 0.0;;; 0.035440982172832425 0.0; 0.0 0.0;;; -0.04873145295472853 0.0; -0.03622519786432454 0.0;;; … ;;; -3.726393398184811e-9 0.0; 1.0306788187000984e-8 0.0;;; -1.6740465940925586e-8 0.0; 1.1078967570105604e-8 0.0;;; 6.868461008583211e-9 0.0; 3.754551936342892e-10 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (140659373705232, 140659373705264, 140659372785664))), MultiBranch{Float64, 2}(UnitRange{Int64}[85:100, 85:100], 0, 10:9, 1, 8, [0.7514632196343085, 0.7494466449374467, 0.7554125501994283], 0.43099875279388133, 0.43099875279388133, [-0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037], [0.24883724594594037, 0.24883724594594037, 0.24883724594594037], 0.0, 0.0, fill(0.0), [-8.40849371508746 0.0; 0.0 0.0;;; -0.34545740805160585 7.943956858857518; 0.0 0.0;;; 0.22410974134501493 -4.708608165124062; 0.16291416695035782 -4.930830366108012;;; … ;;; -1.05944642054225e-5 -1.954777621277687e-5; 6.8460014106523975e-6 -6.5452749419695515e-6;;; 3.1627420840446823e-6 -4.41582628104629e-6; -4.102198163233976e-7 4.1721490645721465e-6;;; -1.5065578353604211e-6 -1.8535538843153348e-6; -8.642184239884788e-8 2.7630564033119637e-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], [1.0 0.0; 0.0 0.0;;; 0.19104428997795497 0.0; 0.0 0.0;;; -0.01953647940265346 0.0; -0.018191933441142394 0.0;;; … ;;; 3.596095751927648e-8 0.0; -4.4603595930755186e-8 0.0;;; -4.001433464789944e-9 0.0; 5.740532260866596e-10 0.0;;; 9.277122132969723e-11 0.0; 6.446550403600691e-11 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (0, 0, 415720293899)))], UnitRange{Int64}[1:1, 2:9], [2, 3, 4, 5, 6, 7, 8, 9], ([5, 19, 24, 38, 39, 43, 51, 53, 60, 62  …  20, 29, 45, 52, 54, 58, 76, 82, 83, 99], [16, 18, 46, 56, 57, 58, 62, 64, 66, 73  …  35, 38, 47, 48, 49, 52, 63, 71, 82, 83]), ([40, 26, 85, 50, 1, 86, 27, 60, 61, 87  …  69, 48, 58, 49, 13, 84, 70, 59, 100, 14], [39, 54, 85, 24, 70, 40, 13, 86, 62, 71  …  60, 23, 83, 52, 53, 12, 68, 69, 61, 84]), (Tuple{Main.Body{Float64}, Vector{Float64}}[(Main.Body{Float64}([0.557859214605901, 0.9505794906131003, 0.3404453566099245], 0.009400118805868503, [0.4279926935042637, 0.5792958612811091, 0.7737051496094961, 0.755089351578363]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.4665724969813344, 0.7527119243585907, 0.37990008755992277], 0.008009455207989609, [0.03215302412332721, 0.30401585392069863, 0.39844830923765007, 0.05175624298006909]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.655364218417507, 0.5420094641040476, 0.5949064366117462], 0.00966985017093868, [0.45318687939721236, 0.714833285253085, 0.8014821280258599, 0.0423294989420161]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.46020494037027904, 0.1183049591166877, 0.8455736796675837], 0.009564529506430412, [0.43820774144362595, 0.9864134399623772, 0.5213635902352741, 0.7825393808296219]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.38302007549064776, 0.2610738988132921, 0.38243110265103486], 0.00879050055450757, [0.22661173901939113, 0.6427440609269616, 0.7349829587317898, 0.22440478954784737]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.7675706354227012, 0.6830216562053943, 0.9828525063335046], 0.00030193717698736916, [0.6962187903754538, 0.7485949073619695, 0.6034741867978999, 0.7292786447682762]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.3050424229456674, 0.705503651828581, 0.2161902177875057], 0.0019490720274920647, [0.8645972363970755, 0.5822420927980573, 0.25580361360386095, 0.377504748209773]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.503364457080568, 0.4739102794439455, 0.8882313721777293], 0.007003767860720454, [0.647938265577496, 0.5462740370511083, 0.4481538479575009, 0.42773190354588286]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.6419909113170134, 0.3653123773611996, 0.9713497759206838], 0.0043579616572875434, [0.8917110271026161, 0.6439207339714714, 0.5036025955048534, 0.4437995597691393]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.5660529652176645, 0.9595746577303932, 0.8477086241617172], 0.0035640681857256975, [0.5419453685002806, 0.3427439265408987, 0.032196858193411226, 0.18518731541358224]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.5828631646060379, 0.34651215147388426, 0.5134178926389176], 0.003926179004732325, [0.0458405367409076, 0.3639566243370217, 0.059578557114454256, 0.9962632355591512]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.879080103813595, 0.6025583064984074, 0.23268830772202231], 0.0008940181927595166, [0.42801386665227803, 0.07046185542048555, 0.6951230120676851, 0.6705048319454384]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.1440075538011215, 0.3067113936734345, 0.6436070688247999], 0.007053929291224028, [0.3997191978718325, 0.013760125081811125, 0.11173714288874481, 0.25455238905806765]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.5215814102984935, 0.5258283802989739, 0.3954807490563794], 0.007982359414388152, [0.047033883420560474, 0.9582951819555906, 0.9519215449752892, 0.2567791620738684]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.11881400147042598, 0.011220061279313964, 0.13384862525073793], 0.007187609019877816, [0.7795024398485453, 0.8301151297487197, 0.45918152351480335, 0.25851486922819]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.060512169419791206, 0.7446053256593784, 0.6746307003251895], 0.006094604185275119, [0.906748548471635, 0.11488502630332675, 0.5753095521549699, 0.782094637362603]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.863362101283652, 0.21474704797833044, 0.6503263151978904], 0.00989898695295262, [0.6240429482632586, 0.7906374362304105, 0.7652350423701638, 0.14765296790357707]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.47316473223960553, 0.052497737269379674, 0.8449616700297329], 0.001296483920557443, [0.7700451041031097, 0.7383868768468096, 0.34134557996296455, 0.05993679065745827]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.7449788853899865, 0.5181977584843006, 0.7351146161115111], 0.002153393855190447, [0.4172346693219562, 0.7146733939712135, 0.8797743859260458, 0.7096904549422267]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.0895075005214856, 0.012769070252689807, 0.21717576989610088], 0.007793578077477884, [0.17355753790968675, 0.9885775553410592, 0.05271954177460836, 0.504623980860874]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0  …  0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0])], Tuple{Main.Vorton{Float64}, Vector{Float64}, Vector{Float64}}[(Main.Vorton{Float64}([0.6930608269351647, 0.5953826990089739, 0.26009741633886674], [0.708975608783004, 0.4394604367174749, 0.6143483139481591], 0.002522113977453815), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.4736959165523619, 0.07319045613465058, 0.5279634023504362], [0.01577213921807452, 0.5769351603895058, 0.46967633280564924], 0.010145707404439529), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.6395805176226315, 0.8837886147365132, 0.7541674014529683], [0.40633052528186975, 0.6551097046413992, 0.8085217817740494], 0.006190339263914765), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.4631722969914098, 0.8141764584094953, 0.34998766001547277], [0.02285921557912396, 0.9620740765684674, 0.8628479339285585], 0.004900731051132423), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.3853667049302918, 0.5281707735578608, 0.7578440632557893], [0.7696437203416594, 0.14268788425911882, 0.9585990358769636], 0.0013076612145550802), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.7235603944754815, 0.6619214652561239, 0.49311973421304267], [0.66472377932795, 0.70181996648594, 0.8606817852554968], 0.00680460850742638), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.866335124889903, 0.44495332387411457, 0.19206496056055744], [0.8783063366197971, 0.5210113642202104, 0.7929108909484469], 0.008296600414482234), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.8005737193684215, 0.9286577650625372, 0.8816670257839777], [0.6607811201396498, 0.3573595306059265, 0.16305322765946628], 0.007574200408496729), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.5841927149409011, 0.27288281477972787, 0.6364104723135541], [0.6254189121396706, 0.5788460814241853, 0.09527339989464556], 0.0027914065402173593), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.4858020455896641, 0.6822544316120533, 0.7421646227295875], [0.03146588273117701, 0.5249122388651134, 0.555380505342661], 0.006004808789025575), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.15838432041921613, 0.39137001697762885, 0.8186619053080604], [0.7913811629657576, 0.8078455536303967, 0.967197757866526], 0.007154627189838537), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.9010871797875609, 0.30543205989154054, 0.3090183751720801], [0.025980839293487157, 0.7583642275285837, 0.27292660535811286], 0.009552645635530432), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.1635168706372193, 0.847082049512829, 0.9545070538738755], [0.2608997687416311, 0.6250852449509345, 0.6909582078949791], 0.002189030971528107), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.9490322673395254, 0.7258379023145007, 0.05021538416807836], [0.22751986401005164, 0.7261381551482464, 0.06352652466673381], 0.007063791754264745), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.8816270887574178, 0.9675497691505398, 0.3780627492174078], [0.3884890848560171, 0.0005752088145820622, 0.7417616734381712], 0.008864046920721253), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.16523520089051724, 0.06410102597420109, 0.18210089796362916], [0.5549655695831773, 0.8637860954012616, 0.4944273944361771], 0.006034557502749332), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.8653643258264998, 0.34589851369467783, 0.5379998834582042], [0.7687352179913052, 0.8919604959857386, 0.9957687887352038], 0.0054620417749986425), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.5223337985911936, 0.06597598721050435, 0.9107306211403949], [0.4224941044001491, 0.675471368361827, 0.11124522614496535], 0.0057352215420712685), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.3123303426188978, 0.20983907377630695, 0.8679745830775288], [0.06926277130277392, 0.6643018073630574, 0.1097076813599972], 0.008160475501220016), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.32623912347107686, 0.6519837390279897, 0.7908535323722607], [0.968260540137222, 0.19739786160280937, 0.34581970605657375], 0.007458633600391231), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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), MultiTree{Float64, 2, Tuple{Vector{Tuple{Main.Body{Float64}, Vector{Float64}}}, Vector{Tuple{Main.Vorton{Float64}, Vector{Float64}, Vector{Float64}}}}, 5}(MultiBranch{Float64, 2}[MultiBranch{Float64, 2}(UnitRange{Int64}[1:100, 1:100], 8, 2:9, 0, -1, [0.49801566262999436, 0.49520356617852135, 0.4970227729348794], 0.8574652475891061, 0.8574652475891061, [-0.4950577915163195, 0.4950577915163195, -0.4950577915163195, 0.4950577915163195, -0.4950577915163195, 0.4950577915163195], [0.4950577915163195, 0.4950577915163195, 0.4950577915163195], 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)), (140659292055136, 140659292055136, 140659353543120))), MultiBranch{Float64, 2}(UnitRange{Int64}[1:14, 1:12], 0, 10:9, 1, 1, [0.2504867668718346, 0.2476746704203616, 0.24949387717671964], 0.42873262379455307, 0.42873262379455307, [-0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976], [0.24752889575815976, 0.24752889575815976, 0.24752889575815976], 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.2087012212557283 0.0; 0.0 0.0;;; 0.032545008619530684 0.0; -0.10073458467017052 0.0;;; … ;;; -3.0244533257637133e-6 0.0; 2.2205990602711725e-6 0.0;;; 3.4440032384179833e-7 0.0; 1.036378465235622e-6 0.0;;; 1.1078772330034604e-7 0.0; -9.238829485383542e-10 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (140658669419265, 140658594978256, 140658660585040))), MultiBranch{Float64, 2}(UnitRange{Int64}[15:32, 13:28], 0, 10:9, 1, 2, [0.7455445583881541, 0.2476746704203616, 0.24949387717671964], 0.42873262379455307, 0.42873262379455307, [-0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976], [0.24752889575815976, 0.24752889575815976, 0.24752889575815976], 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.08037135964231336 0.0; -0.0 0.0;;; 0.02983419015864896 0.0; 0.045839845558878545 0.0;;; … ;;; -6.68121229105876e-8 0.0; 1.0788294956364102e-8 0.0;;; 2.014047636416609e-8 0.0; 2.218849378968717e-8 0.0;;; 1.0357976488678172e-9 0.0; -3.9447188056193436e-9 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (140659386902832, 140659386902864, 140659292046064))), MultiBranch{Float64, 2}(UnitRange{Int64}[33:42, 29:38], 0, 10:9, 1, 3, [0.2504867668718346, 0.7427324619366811, 0.24949387717671964], 0.42873262379455307, 0.42873262379455307, [-0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976], [0.24752889575815976, 0.24752889575815976, 0.24752889575815976], 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.005684750881457034 0.0; 0.0 0.0;;; 0.10704406745359585 0.0; -0.09016844141035768 0.0;;; … ;;; 1.1261847899409718e-6 0.0; 1.9251347681431154e-6 0.0;;; -8.564267080796984e-8 0.0; -3.0434887744530454e-8 0.0;;; -4.1907926914274465e-7 0.0; 1.570655271058279e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (140659292046081, 140658594978256, 140659292045328))), MultiBranch{Float64, 2}(UnitRange{Int64}[43:55, 39:45], 0, 10:9, 1, 4, [0.7455445583881541, 0.7427324619366811, 0.24949387717671964], 0.42873262379455307, 0.42873262379455307, [-0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976], [0.24752889575815976, 0.24752889575815976, 0.24752889575815976], 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.16612807490787934 0.0; -0.0 0.0;;; 0.08268402123633084 0.0; 0.09953827541668359 0.0;;; … ;;; -3.031961319705402e-6 0.0; 1.6908105173106713e-6 0.0;;; 1.8102007820043372e-6 0.0; 6.998654255063502e-7 0.0;;; -9.632481742411246e-8 0.0; -2.865884671640096e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (140659386905552, 140659386905584, 140659292045328))), MultiBranch{Float64, 2}(UnitRange{Int64}[56:66, 46:60], 0, 10:9, 1, 5, [0.2504867668718346, 0.2476746704203616, 0.7445516686930391], 0.42873262379455307, 0.42873262379455307, [-0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976], [0.24752889575815976, 0.24752889575815976, 0.24752889575815976], 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.04519592028648003 0.0; -0.0 0.0;;; 0.06242853348956448 0.0; -0.11141610116275585 0.0;;; … ;;; 1.0603477834477849e-6 0.0; -4.095341527385005e-8 0.0;;; 2.2784818233315364e-7 0.0; -4.461965845635977e-7 0.0;;; 1.5704628071710524e-7 0.0; 2.3560248012414177e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (140659237122049, 140658594978256, 140659292046128))), MultiBranch{Float64, 2}(UnitRange{Int64}[67:76, 61:73], 0, 10:9, 1, 6, [0.7455445583881541, 0.2476746704203616, 0.7445516686930391], 0.42873262379455307, 0.42873262379455307, [-0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976], [0.24752889575815976, 0.24752889575815976, 0.24752889575815976], 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.1675191471527402 0.0; -0.0 0.0;;; -0.0312326202384185 0.0; -0.012016009310730989 0.0;;; … ;;; -3.88205041167155e-8 0.0; -7.661592791364743e-8 0.0;;; -8.888241440564631e-10 0.0; -8.708252780808858e-9 0.0;;; 9.178430149748747e-11 0.0; -3.374678967008055e-10 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (140659386908240, 140659386908272, 140659240390400))), MultiBranch{Float64, 2}(UnitRange{Int64}[77:86, 74:88], 0, 10:9, 1, 7, [0.2504867668718346, 0.7427324619366811, 0.7445516686930391], 0.42873262379455307, 0.42873262379455307, [-0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976], [0.24752889575815976, 0.24752889575815976, 0.24752889575815976], 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.11536479335650705 0.0; 0.0 0.0;;; 0.08162535869045275 0.0; -0.0797397471166677 0.0;;; … ;;; -5.740072039305257e-7 0.0; -6.157299676352652e-7 0.0;;; -8.141128652993099e-7 0.0; -3.8078853256653077e-8 0.0;;; -1.204676933958677e-7 0.0; 1.071539282470548e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (140659240390400, 140659240390400, 140659240390400))), MultiBranch{Float64, 2}(UnitRange{Int64}[87:100, 89:100], 0, 10:9, 1, 8, [0.7455445583881541, 0.7427324619366811, 0.7445516686930391], 0.42873262379455307, 0.42873262379455307, [-0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976], [0.24752889575815976, 0.24752889575815976, 0.24752889575815976], 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.08931169390251703 0.0; 0.0 0.0;;; 0.05003881398609423 0.0; 0.1058375874872798 0.0;;; … ;;; -1.4574817802585404e-7 0.0; -3.657489693104403e-8 0.0;;; -1.3597606331520128e-7 0.0; -6.856603553560549e-7 0.0;;; 1.4726975614088464e-7 0.0; -1.0905852828131589e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (140658617072592, 0, 140659240390400)))], 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], [13, 15, 20, 41, 44, 49, 55, 62, 64, 65  …  22, 23, 24, 33, 54, 59, 66, 74, 75, 92]), ([67, 87, 68, 69, 77, 43, 56, 57, 44, 88  …  12, 55, 30, 99, 31, 32, 13, 66, 14, 100], [13, 89, 14, 61, 62, 46, 47, 39, 48, 74  …  59, 100, 72, 28, 12, 45, 60, 88, 73, 38]), (Tuple{Main.Body{Float64}, Vector{Float64}}[(Main.Body{Float64}([0.9191811597933967, 0.42601923740838954, 0.7465863168484385], 0.00551624732815934, [0.2538490889415096, 0.33415153638191886, 0.4273278808735992, 0.867547200255958]), [85.3506033780559, 0.0, 0.0, 0.0, 8.06249772598236, 20.742132708088107, -29.651179810975506, -108.92907718083855, 1358.7526071212158, -1171.3085492072082  …  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, 0.3505458214588266, 0.9303323763821093, 0.9594335994071538]), [87.38882482263334, 0.0, 0.0, 0.0, -1.100939058319244, 7.474445909530373, 6.699188519856526, 457.93697609693334, -440.6509869868499, -690.8172778072006  …  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, 0.3548676566528912, 0.13179829123412257, 0.9411330896079791]), [101.52858282491175, 0.0, 0.0, 0.0, 9.630211659160361, -2.638210371642431, -8.622154886089199, 0.008429065777369044, 5.233817961002082, -14.797288890588765  …  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, 0.45048364263035023, 0.8913769757127503, 0.7110385498005108]), [103.43268574590765, 0.0, 0.0, 0.0, 13.859110768453563, -3.9071367847812035, -8.11395605272161, -27.45516266302689, -9.378570810203593, 22.74100838219483  …  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, 0.753277849991045, 0.7295997282994879, 0.16238042514897943]), [93.32127662551393, 0.0, 0.0, 0.0, -0.15841740325928771, -12.98905722258311, 10.724699909110734, 17.04079689897897, -9.103399047511285, 5.467324335930193  …  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, 0.5997019277391098, 0.4536933650141408, 0.3249034202416199]), [69.46581263668925, 0.0, 0.0, 0.0, -5.678810753233454, 13.674421198809798, -4.815599860065737, 11.158614532959072, -17.33922277427247, -12.335120138379066  …  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, 0.7468540519107453, 0.09667869010406493, 0.45910253524716227]), [105.64593566408003, 0.0, 0.0, 0.0, 5.718129941800118, -9.847937002678014, -0.870729449848443, -129.54769381563, -182.518357936482, 153.05445952519017  …  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, 0.821283430881433, 0.5644095995557176, 0.030378874865931382]), [82.48342248428222, 0.0, 0.0, 0.0, -0.7032839479798534, 5.704028315696549, -5.645750346651228, 337.26341798169574, -33.59797397914119, 62.619199827203055  …  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, 0.4379647602849879, 0.23146826213384353, 0.6471427793654219]), [89.54825552075131, 0.0, 0.0, 0.0, -8.803138478520511, 17.31055979004575, -6.379565479954741, -147.41550741185515, -85.31936943654026, 194.62709067291138  …  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, 0.2404468114408953, 0.2221494346545283, 0.5096964769051421]), [101.33590365207982, 0.0, 0.0, 0.0, -1.7862929027640466, 21.488498710253474, -18.724753643750333, 382.18022122827057, -513.3572304837079, 226.9480321694559  …  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, 0.0758000769135273, 0.3487409265919944, 0.30331684418426996]), [97.45103071097367, 0.0, 0.0, 0.0, 3.7363343635707627, -2.6450963023691947, 3.5634416109623404, -8.848496519347146, 43.01756318720152, -60.137322799255514  …  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, 0.881611313975086, 0.009146364153274189, 0.9806631480861379]), [92.64727615051551, 0.0, 0.0, 0.0, -9.789566006058367, 19.649513017655398, -7.49722317810011, -33.20980996493979, -18.1072460256417, 32.27525647878902  …  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, 0.17022568799250704, 0.2638800824351736, 0.6514229873225715]), [81.30366296307194, 0.0, 0.0, 0.0, 5.390598913605371, 3.774600537535236, -7.770998408513131, -10.930957804363196, 15.641140699561106, 5.036619545207673  …  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, 0.22271994897768166, 0.6048365813194562, 0.052884966374337816]), [95.25179822463326, 0.0, 0.0, 0.0, 1.4922349492126696, -2.0520727956577445, 6.096890255702781, 1.6238466676321324, 95.41966121366875, -110.55671481774108  …  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, 0.31694750597495125, 0.29912838760350746, 0.623451826337517]), [102.86206571255629, 0.0, 0.0, 0.0, 183.22319548422686, -157.6131538178901, 124.89243427616086, 25630.480708536135, -10361.615921711391, -4549.69088770725  …  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, 0.7285911206511895, 0.03773808039378912, 0.04331783284230861]), [105.42062571549427, 0.0, 0.0, 0.0, -9.407098849857421, 10.66744635703102, 25.675874823028234, 213.24758539120032, -1.384483145900039, -268.37836906236925  …  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, 0.4603052801344075, 0.9298297825042643, 0.358424742237733]), [89.10879222107357, 0.0, 0.0, 0.0, 0.29518122695650023, -1.5885953056254103, 2.6447317528749124, -0.04062593887656736, -0.3264347540319396, 39.209688879525736  …  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, 0.8609926737185056, 0.1638092551671958, 0.22646456871949416]), [85.06258300857247, 0.0, 0.0, 0.0, 9.980583049852275, -8.614757397874126, 1.4048918493255516, 16.304054536182477, -0.9083852185269751, 3.15651612869891  …  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, 0.12630836876865192, 0.9645167219705122, 0.8221674765296613]), [87.35657697788763, 0.0, 0.0, 0.0, 6.631668160458205, -8.880876039620292, 2.2808268003712016, 8.688862460608041, 18.290196257740945, -27.70535302223958  …  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, 0.15911501872567757, 0.5356210909593669, 0.6799181470255188]), [92.93042970237086, 0.0, 0.0, 0.0, 3.579170479759858, 0.5574429880355298, 8.653730501829191, -68.66336036933845, 80.5018410452713, -1.4853866455436502  …  0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0])], Tuple{Main.Vorton{Float64}, Vector{Float64}, Vector{Float64}}[(Main.Vorton{Float64}([0.6956808381416713, 0.4853785553982539, 0.4648049213765313], [0.7054270031323241, 0.70014541220553, 0.49839208412207514], 0.008389531007170116), [0.0, 0.0, 0.0, 0.0, -0.8822584941683183, 37.933252387002895, -47.88603708257046, -14.946301589562754, 48.53490625653456, 4.048568767978836, 46.10273767416563, -14.937591195125465, -47.65264776236629], [8.50174853254558, 0.3422807467000143, -1.3698895414123198, 0.0, 0.0, 0.0]), (Main.Vorton{Float64}([0.6528326495428173, 0.8783095326823105, 0.6955937752833566], [0.992073216064829, 0.03702391218002421, 0.052040147154059024], 0.008559673062325765), [0.0, 0.0, 0.0, 0.0, 510.46032146257323, -337.29636284298914, -181.21412202984754, -597.077758178114, -40.577188108336635, 470.6252663326008, -572.3709595111981, 1008.0975596281908, -469.8831333542366], [-6.635307494467758, -10.657954792707974, 9.07280276144781, 0.0, 0.0, 0.0]), (Main.Vorton{Float64}([0.9077908593045806, 0.3939808726568609, 0.1924335604037214], [0.5681911381173306, 0.06084849139338322, 0.9611920275200003], 0.00920463305134842), [0.0, 0.0, 0.0, 0.0, -320.3332114842369, -34.58377130895539, 368.0839198461781, 230.13536494966473, 324.9842959812287, -428.13261855501696, 107.45354565095035, -237.813327378721, -4.6510844969917695], [5.002262904567566, 20.106483412927478, -27.95795361610942, 0.0, 0.0, 0.0]), (Main.Vorton{Float64}([0.680305220184172, 0.45142673639459907, 0.6565158730370251], [0.9871517007068787, 0.536191701519787, 0.8044608001295422], 0.01032776912661538), [0.0, 0.0, 0.0, 0.0, 3.5290366718469843, -165.41852935577367, 215.10016845722762, -68.86842304729687, 23.303633729181946, 247.64379943807933, 100.32617617358432, -249.17334079623583, -26.832670401028913], [9.74821219150256, 3.092276196613873, -11.616523984606683, 0.0, 0.0, 0.0]), (Main.Vorton{Float64}([0.5772900725131546, 0.19456471074413395, 0.9691695971486246], [0.029308796906382772, 0.237901194890202, 0.8225322140924277], 0.005855920250376647), [0.0, 0.0, 0.0, 0.0, -12.590937064305567, -5.8931029583027374, -6.052580045726423, -9.567705795412877, 6.983084969341174, -3.8613455886210613, 7.032438744361059, -4.783126247213283, 5.607852094964389], [11.241725102135732, -6.223353028275995, -4.338609044329697, 0.0, 0.0, 0.0]), (Main.Vorton{Float64}([0.07881482026287556, 0.16694384061777157, 0.7453082600322598], [0.36751517071734363, 0.08464781300384328, 0.7877792123673903], 0.006719633426946119), [0.0, 0.0, 0.0, 0.0, 26.415864678954573, -20.050867256931426, -0.8178529266405452, -4.549102666819707, -34.45901507382465, 11.628461542970213, 18.752918414945103, -27.01043418561137, 8.043150394870079], [9.920823853550871, -10.194323634205208, 1.9599671382805932, 0.0, 0.0, 0.0]), (Main.Vorton{Float64}([0.34386745978232425, 0.15114271162865245, 0.8692858825227187], [0.34380421639038017, 0.49221567013213885, 0.7577396026981709], 0.007165314050997217), [0.0, 0.0, 0.0, 0.0, -59.79113188139079, -1.9709498200711613, -26.762698675340847, 54.10917654100488, 45.492034964801626, -261.8421332968958, 164.44096188607392, -25.562476104392736, 14.299096916589178], [14.394628290815083, -3.672764630088914, -9.378589297611173, 0.0, 0.0, 0.0]), (Main.Vorton{Float64}([0.7924111084524182, 0.7258577993874293, 0.4074759819413786], [0.004779849956308646, 0.10815467687383273, 0.6365113178025307], 0.004211825485699923), [0.0, 0.0, 0.0, 0.0, 10.465389536407542, 94.68236585742876, -78.85761169691806, 70.89533439823704, -134.6061639041499, 47.9278980522469, -155.00862689153615, 43.986774759861845, 124.14077436774228], [-17.950340377015056, 21.149992040957308, 1.7437458219519797, 0.0, 0.0, 0.0]), (Main.Vorton{Float64}([0.15007164548253604, 0.13891454905930323, 0.8854146060893755], [0.2322606392244514, 0.24943996074378283, 0.6529923359002099], 0.004730386058191863), [0.0, 0.0, 0.0, 0.0, 59.442434719016205, 26.31264290953867, -7.788753592832606, 63.14513611059529, -47.72166333663818, 20.19110915521419, -57.46819208991416, 29.471415735207678, -11.720771382378052], [14.768178748060738, -8.861646545075095, 1.2188993808980852, 0.0, 0.0, 0.0]), (Main.Vorton{Float64}([0.178892411148747, 0.8198348637351619, 0.746693545507861], [0.05374276809352163, 0.28259697683790064, 0.9963633829133356], 0.004082068996145551), [0.0, 0.0, 0.0, 0.0, 57.050592206607114, -90.21090922096973, 48.878961267701186, -82.68306936940297, 14.29503143257214, 31.74239957362232, 12.320723650538946, 83.85090301869836, -71.34562363917927], [-0.03144901666306661, -15.583012096242426, 13.750015093195545, 0.0, 0.0, 0.0])  …  (Main.Vorton{Float64}([0.4598055261641393, 0.09042082143339258, 0.5640409504623178], [0.6396964311422774, 0.5845421243866575, 0.5349929592419193], 0.001124964196695102), [0.0, 0.0, 0.0, 0.0, 382.09609513254355, 228.00822947658645, -354.08488347129423, -954.163507769204, 241.5556796267648, -189.6437242626885, -169.1205368140404, 434.7509477257039, -623.6517747593078], [20.887342734108213, -2.735476925891841, -5.502211836582691, 0.0, 0.0, 0.0]), (Main.Vorton{Float64}([0.9572197333627137, 0.6426548339644926, 0.6552399747905221], [0.747485027142634, 0.23562083902231445, 0.23561754824795678], 0.0027436327111542455), [0.0, 0.0, 0.0, 0.0, 15.061487372616561, -26.10806509511263, 22.112106061527545, -41.88706206809685, 42.58929055731519, -11.079768202200608, -8.832598907394338, 0.18603518576434164, -57.65077792993176], [0.6561052462927573, 10.15339318367006, -12.7859063446062, 0.0, 0.0, 0.0]), (Main.Vorton{Float64}([0.8050706937073655, 0.005451816228509987, 0.6194543923497148], [0.2893241621284488, 0.15343050371415934, 0.45483197600289493], 0.0033418266341768534), [0.0, 0.0, 0.0, 0.0, -6.235476091786627, 2.7558002187956046, 2.9497273741924195, 10.232663073288112, 3.190253764733486, -17.021401404515075, 0.5779868577948659, -5.568330421328691, 3.0452223270531427], [8.099441084807626, 1.7447616146476344, -9.964573343111939, 0.0, 0.0, 0.0]), (Main.Vorton{Float64}([0.8372242495059112, 0.1880062901030637, 0.329865236819033], [0.6964852800076098, 0.41732935474694366, 0.12800112947157438], 0.008074470339380045), [0.0, 0.0, 0.0, 0.0, 47.94685325237328, -51.324186953826846, 4.847239236476755, -34.28059339724347, 40.769072683232345, 6.830704526226973, 33.07160266107869, 73.1016517686344, -88.71592593560563], [8.754889219586548, -1.8218252892777913, -7.180948488310969, 0.0, 0.0, 0.0]), (Main.Vorton{Float64}([0.049017597531493595, 0.18258465318130024, 0.04079265592099135], [0.6643772290446401, 0.25419876795775076, 0.0111761955710723], 0.006867801058606931), [0.0, 0.0, 0.0, 0.0, -27.31628247323072, 24.233190449744797, -0.3379485823927118, -11.924411796320792, 11.796570800683952, 4.254545828100499, -0.052136141612230326, 2.7632399691705896, 15.519711672546764], [-3.3270429646506385, 1.727457486302319, 2.4540759698751926, 0.0, 0.0, 0.0]), (Main.Vorton{Float64}([0.9446211092215213, 0.5773644194640194, 0.41562195208459896], [0.06814741604330621, 0.16749916233272766, 0.7091985108360725], 0.0031542415121338305), [0.0, 0.0, 0.0, 0.0, 1.8215164214546353, -43.0534679191244, 21.758774568979174, -1.455109738812573, 32.13601155444825, 15.440864606507798, 40.155527530783026, -3.0240868014144886, -33.9575279759029], [-1.4567847361429935, 15.2886865778917, -13.296049302008182, 0.0, 0.0, 0.0]), (Main.Vorton{Float64}([0.02765456454632287, 0.1228176034412326, 0.7897475889795191], [0.5848018551658597, 0.4374509112686895, 0.6003922163899991], 0.0010159571328096377), [0.0, 0.0, 0.0, 0.0, 26.979366295589013, -14.345761341507757, -2.1051658180464075, 8.158019109103137, -26.582227133027917, 11.360653361273496, 4.9604405244283765, -1.6498848360812965, -0.39713916256110293], [8.800785520582927, -8.37524017976289, 1.6105446403166235, 0.0, 0.0, 0.0]), (Main.Vorton{Float64}([0.09100727263849917, 0.5794817445557756, 0.6291868753365321], [0.04589763740992747, 0.2683934891175124, 0.9312357743393328], 0.004951543147051906), [0.0, 0.0, 0.0, 0.0, 7.2826254124701535, 200.02901760661942, -231.96691984886604, -180.55079830561596, 172.343725105568, 48.94235243035011, 203.53488904458027, 29.0355615056544, -179.62635051803812], [-0.04772504081689664, -20.681704217331202, 12.630047100731876, 0.0, 0.0, 0.0]), (Main.Vorton{Float64}([0.7215125397666922, 0.3101399108971986, 0.9120708158457793], [0.036429367243270616, 0.6439997561017691, 0.35149929330560925], 0.0006879838266934451), [0.0, 0.0, 0.0, 0.0, -10.842172139751918, 15.190887004020365, -17.834678493148925, 41.594173476581865, -5.397510782923477, -20.116652682634676, -1.618663520420014, -10.434703724772072, 16.239682922675396], [9.914485943053739, -4.739369747570147, -7.025390474122207, 0.0, 0.0, 0.0]), (Main.Vorton{Float64}([0.07014988405111922, 0.5286443270294893, 0.24380912629526263], [0.620780571763883, 0.8699240224718836, 0.5642401605234335], 0.0003071608128254314), [0.0, 0.0, 0.0, 0.0, 101.93059974405706, 17.590681314952022, -320.9252338856423, 442.5488472353321, -219.0466532545508, -19.474434088571872, -146.04873079853883, 40.3055813981039, 117.11605351049374], [-12.779350368008263, -1.3595250276884299, 13.026821975903577, 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}(), DerivativesSwitch{true, true, true}()))

Non-Potential Flow Applications

As a default, target systems will be evaluated and returned with scalar_potential, velocity, and velocity_gradient fields populated. (Note that the vector potential is not explicitly tracked, though its induced velocity and velocity gradient are.) In some situations, only some of these values may be required. By inputting a boolean vector of the same length as target systems, the user is able to speed up the calculation by not storing unecessary values.

\[\overline{V} = -\nabla \phi + \nabla \times \overline{\psi}\]

$\phi$$\overline{\psi}$$\overline{V}$$\nabla \overline{V}$
fmm! Keyword Argumentsscalar_potentialvector_potentialvelocityvelocity_gradient
Fluid DynamicsScalar PotentialStream FunctionFluid VelocityVelocity Gradient
ElectrostaticsElectric Potential-Electric FieldField Gradient Tensor
Magnetostatics-Magnetic Vector PotentialMagnetic FieldField Gradient Tensor
GravityGravitational Potential-Gravitational AccelerationAcceleration Gradient Tensor
target_one = generate_gravitational(123, 100)
+fmm.fmm!((target_one, target_two), (source_one, source_two))
(MultiTree{Float64, 2, Tuple{Vector{Tuple{Main.Body{Float64}, Vector{Float64}}}, Vector{Tuple{Main.Vorton{Float64}, Vector{Float64}, Vector{Float64}}}}, 5}(MultiBranch{Float64, 2}[MultiBranch{Float64, 2}(UnitRange{Int64}[1:100, 1:100], 8, 2:9, 0, -1, [0.5026259736883681, 0.5006093989915064, 0.506575304253488], 0.8619975055877627, 0.8619975055877627, [-0.49767449189188073, 0.49767449189188073, -0.49767449189188073, 0.49767449189188073, -0.49767449189188073, 0.49767449189188073], [0.49767449189188073, 0.49767449189188073, 0.49767449189188073], 0.0, 0.0, fill(0.0), [-47.330269153011905 0.0; 0.0 0.0;;; -1.4300081297763314 0.0; 0.0 0.0;;; -0.0020279707713188877 0.0; -0.0810447498230098 0.0;;; … ;;; -0.001102965892865963 0.0; -4.646297296899838e-5 0.0;;; 0.0001693966781257666 0.0; -9.944313846444004e-5 0.0;;; -2.862980365746775e-5 0.0; -1.3838857277821314e-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, 0))), MultiBranch{Float64, 2}(UnitRange{Int64}[1:14, 1:12], 0, 10:9, 1, 1, [0.2537887277424278, 0.251772153045566, 0.2577380583075476], 0.43099875279388133, 0.43099875279388133, [-0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037], [0.24883724594594037, 0.24883724594594037, 0.24883724594594037], 0.0, 0.0, fill(0.0), [-7.499871222570643 0.0; 0.0 0.0;;; 0.14134763322386673 5.876318899706723; 0.0 0.0;;; -0.27781448587580504 -3.399262014326455; -0.21357159879163193 -3.034004529419432;;; … ;;; 2.528007054727247e-6 -5.198140515345906e-6; -3.5865531122720975e-7 -2.2816070849536322e-6;;; -5.825983403314016e-6 1.668839102392757e-7; 7.346808214947709e-7 -5.3432822173448825e-6;;; 4.452343181626718e-7 2.8737566545769717e-6; -5.919437972505053e-7 1.5152180081065892e-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], [1.0 0.0; 0.0 0.0;;; -0.07563716034391843 0.0; 0.0 0.0;;; -0.09383556353568245 0.0; 0.04427676342595527 0.0;;; … ;;; -7.732499867406854e-9 0.0; 3.051715598564347e-8 0.0;;; 6.995691193611116e-8 0.0; 3.5849287145216293e-7 0.0;;; 5.9328907145372435e-8 0.0; 8.075902066539915e-8 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (0, 0, 413681739000))), MultiBranch{Float64, 2}(UnitRange{Int64}[15:25, 13:23], 0, 10:9, 1, 2, [0.7514632196343085, 0.251772153045566, 0.2577380583075476], 0.43099875279388133, 0.43099875279388133, [-0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037], [0.24883724594594037, 0.24883724594594037, 0.24883724594594037], 0.0, 0.0, fill(0.0), [-5.786962147547788 0.0; 0.0 0.0;;; -0.08046626758682532 4.410294461276509; 0.0 0.0;;; 0.07917686087068565 -3.2482101027014534; 0.013486487172595357 -2.7368772194723507;;; … ;;; 2.9550574604507674e-6 -2.7285638004285373e-6; -1.3518437065648355e-6 3.5595636693251586e-6;;; -5.234086734876242e-7 3.555165107606909e-6; -9.92570608622439e-7 -1.2783154363676133e-6;;; 1.9554981220314482e-7 7.438288253934825e-7; 4.1692108973748044e-7 1.062118867108326e-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], [1.0 0.0; 0.0 0.0;;; 0.051280316864532494 0.0; 0.0 0.0;;; 0.026829953422987274 0.0; -0.0748119800766262 0.0;;; … ;;; 1.899571107442584e-8 0.0; -1.1328956225594303e-8 0.0;;; 1.6387380676626464e-8 0.0; 8.366465479549419e-8 0.0;;; 2.6126169093897e-8 0.0; 3.9732453187322435e-9 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (0, 0, 413681739000))), MultiBranch{Float64, 2}(UnitRange{Int64}[26:39, 24:38], 0, 10:9, 1, 3, [0.2537887277424278, 0.7494466449374467, 0.2577380583075476], 0.43099875279388133, 0.43099875279388133, [-0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037], [0.24883724594594037, 0.24883724594594037, 0.24883724594594037], 0.0, 0.0, fill(0.0), [-6.461237959815938 0.0; 0.0 0.0;;; -0.06455233958895452 10.059074305326293; 0.0 0.0;;; 0.01453666265401074 -4.529151153045262; 0.035733159549641055 -3.1853673726340865;;; … ;;; 2.185651803566736e-6 2.939983733331748e-6; -2.1020197866396055e-6 2.2769594810854188e-5;;; 6.413575350526986e-7 8.118082850156805e-6; -2.6281938845417287e-6 -5.2015670950708256e-6;;; 3.216724613459501e-7 -7.86771014197628e-7; 6.657658982750058e-7 1.327187878612661e-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], [1.0 0.0; 0.0 0.0;;; 0.19697053746278903 0.0; 0.0 0.0;;; -0.06982836891659083 0.0; 0.0559260760892909 0.0;;; … ;;; 9.125962831737276e-7 0.0; 1.864939988205681e-6 0.0;;; -4.7557482138149605e-7 0.0; -2.2413312341668466e-7 0.0;;; 4.644704815088655e-8 0.0; -1.1114538610052121e-8 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (0, 0, 414550893515))), MultiBranch{Float64, 2}(UnitRange{Int64}[40:49, 39:53], 0, 10:9, 1, 4, [0.7514632196343085, 0.7494466449374467, 0.2577380583075476], 0.43099875279388133, 0.43099875279388133, [-0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037], [0.24883724594594037, 0.24883724594594037, 0.24883724594594037], 0.0, 0.0, fill(0.0), [-3.3477273311870865 0.0; 0.0 0.0;;; -0.16435855694757204 9.721186791516416; 0.0 0.0;;; 0.12294219903268079 -4.248526417696294; -0.0332377231093299 -4.252662383598009;;; … ;;; -8.13710641459531e-6 2.8580911633519164e-6; -6.231810556349974e-7 6.864144066599249e-6;;; 2.2119897970051911e-7 -2.346400167145746e-6; -3.7089074074201864e-6 -1.3558413583447434e-5;;; -5.605149079948702e-7 1.52790392922525e-6; -7.910253772220518e-7 1.307628828750524e-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], [1.0 0.0; 0.0 0.0;;; 0.1203246909098602 0.0; 0.0 0.0;;; 0.10905156210654654 0.0; -0.06508193456155464 0.0;;; … ;;; -4.7489710223826224e-8 0.0; -1.0937320874843271e-6 0.0;;; -7.162458392092633e-7 0.0; -1.0897602359520343e-6 0.0;;; -2.4771546198069067e-7 0.0; -1.200508235984114e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (3161095930528, 2886218027744, 141733921440))), MultiBranch{Float64, 2}(UnitRange{Int64}[50:59, 54:61], 0, 10:9, 1, 5, [0.2537887277424278, 0.251772153045566, 0.7554125501994283], 0.43099875279388133, 0.43099875279388133, [-0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037], [0.24883724594594037, 0.24883724594594037, 0.24883724594594037], 0.0, 0.0, fill(0.0), [-3.768609585113875 0.0; 0.0 0.0;;; -0.0008241017990052862 5.180157724215509; 0.0 0.0;;; -0.13506173196838803 -2.648291420360042; 0.3386931330435938 -1.2864699484118736;;; … ;;; -9.014507135353242e-7 -7.018939476416647e-6; -3.5641213887785376e-6 5.502324767485222e-6;;; -1.5099245250969104e-7 -5.154080100681363e-6; -4.196134456734228e-6 6.012899693515811e-6;;; -1.3480597057727598e-7 3.5575244532127094e-6; -1.0043910673550508e-6 -5.975371881267255e-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], [1.0 0.0; 0.0 0.0;;; 0.11256203287810052 0.0; 0.0 0.0;;; -0.020966539634629522 0.0; -0.029270807438235014 0.0;;; … ;;; 4.475633321570958e-8 0.0; -1.3548142320263519e-8 0.0;;; -6.2495612685646185e-9 0.0; -4.803194607824211e-9 0.0;;; -1.6989228380302114e-11 0.0; 5.039640229144699e-10 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (3161095930528, 2886218027744, 672))), MultiBranch{Float64, 2}(UnitRange{Int64}[60:70, 62:69], 0, 10:9, 1, 6, [0.7514632196343085, 0.251772153045566, 0.7554125501994283], 0.43099875279388133, 0.43099875279388133, [-0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037], [0.24883724594594037, 0.24883724594594037, 0.24883724594594037], 0.0, 0.0, fill(0.0), [-6.6995373983658775 0.0; 0.0 0.0;;; -0.226188905136008 3.677475516378436; 0.0 0.0;;; -0.038937156550284735 -2.5171015089578783; -0.29803097221656427 -2.2333489901345933;;; … ;;; -4.152573541563101e-6 2.0044427363543273e-6; -3.6936070425416564e-6 -2.1325029628985765e-6;;; 2.173487342197061e-6 2.868425050078561e-6; -8.071153365030427e-7 -1.950602288335767e-6;;; -5.683976842176204e-7 1.2853220827340282e-6; 6.412124498508532e-7 3.478490587942194e-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], [1.0 0.0; 0.0 0.0;;; 0.1553180709409666 0.0; 0.0 0.0;;; -0.09289808291753082 0.0; 0.11456471052155748 0.0;;; … ;;; 3.1527654798849906e-6 0.0; 1.6142945545284847e-6 0.0;;; -2.80138885224981e-6 0.0; 1.2383970011340801e-6 0.0;;; 1.524189158643975e-7 0.0; -5.614092520865809e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (1, 139835905755152, 275038569243))), MultiBranch{Float64, 2}(UnitRange{Int64}[71:84, 70:84], 0, 10:9, 1, 7, [0.2537887277424278, 0.7494466449374467, 0.7554125501994283], 0.43099875279388133, 0.43099875279388133, [-0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037], [0.24883724594594037, 0.24883724594594037, 0.24883724594594037], 0.0, 0.0, fill(0.0), [-5.357829793323234 0.0; 0.0 0.0;;; -0.4061642214854503 9.5704574266076; 0.0 0.0;;; 0.03137691545227036 -3.3376101500858075; -0.23075631586093312 -3.916290355677398;;; … ;;; 3.3014050982660475e-6 -7.670618662800918e-6; -5.208062214551448e-6 -3.057767276954066e-5;;; 2.870869148786357e-6 -6.334327079983546e-6; 1.7481832131259466e-6 1.8943763991561415e-5;;; -4.1528628356866803e-7 3.2824458852436157e-7; 7.872102020772641e-7 4.794973342512074e-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], [1.0 0.0; 0.0 0.0;;; 0.035440982172832425 0.0; 0.0 0.0;;; -0.04873145295472853 0.0; -0.03622519786432454 0.0;;; … ;;; -3.726393398184811e-9 0.0; 1.0306788187000984e-8 0.0;;; -1.6740465940925586e-8 0.0; 1.1078967570105604e-8 0.0;;; 6.868461008583211e-9 0.0; 3.754551936342892e-10 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (0, 0, 415355812824))), MultiBranch{Float64, 2}(UnitRange{Int64}[85:100, 85:100], 0, 10:9, 1, 8, [0.7514632196343085, 0.7494466449374467, 0.7554125501994283], 0.43099875279388133, 0.43099875279388133, [-0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037], [0.24883724594594037, 0.24883724594594037, 0.24883724594594037], 0.0, 0.0, fill(0.0), [-8.40849371508746 0.0; 0.0 0.0;;; -0.34545740805160585 7.943956858857518; 0.0 0.0;;; 0.22410974134501493 -4.708608165124062; 0.16291416695035782 -4.930830366108012;;; … ;;; -1.05944642054225e-5 -1.954777621277687e-5; 6.8460014106523975e-6 -6.5452749419695515e-6;;; 3.1627420840446823e-6 -4.41582628104629e-6; -4.102198163233976e-7 4.1721490645721465e-6;;; -1.5065578353604211e-6 -1.8535538843153348e-6; -8.642184239884788e-8 2.7630564033119637e-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], [1.0 0.0; 0.0 0.0;;; 0.19104428997795497 0.0; 0.0 0.0;;; -0.01953647940265346 0.0; -0.018191933441142394 0.0;;; … ;;; 3.596095751927648e-8 0.0; -4.4603595930755186e-8 0.0;;; -4.001433464789944e-9 0.0; 5.740532260866596e-10 0.0;;; 9.277122132969723e-11 0.0; 6.446550403600691e-11 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (4832, 0, 0)))], UnitRange{Int64}[1:1, 2:9], [2, 3, 4, 5, 6, 7, 8, 9], ([5, 19, 24, 38, 39, 43, 51, 53, 60, 62  …  20, 29, 45, 52, 54, 58, 76, 82, 83, 99], [16, 18, 46, 56, 57, 58, 62, 64, 66, 73  …  35, 38, 47, 48, 49, 52, 63, 71, 82, 83]), ([40, 26, 85, 50, 1, 86, 27, 60, 61, 87  …  69, 48, 58, 49, 13, 84, 70, 59, 100, 14], [39, 54, 85, 24, 70, 40, 13, 86, 62, 71  …  60, 23, 83, 52, 53, 12, 68, 69, 61, 84]), (Tuple{Main.Body{Float64}, Vector{Float64}}[(Main.Body{Float64}([0.557859214605901, 0.9505794906131003, 0.3404453566099245], 0.009400118805868503, [0.4279926935042637, 0.5792958612811091, 0.7737051496094961, 0.755089351578363]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.4665724969813344, 0.7527119243585907, 0.37990008755992277], 0.008009455207989609, [0.03215302412332721, 0.30401585392069863, 0.39844830923765007, 0.05175624298006909]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.655364218417507, 0.5420094641040476, 0.5949064366117462], 0.00966985017093868, [0.45318687939721236, 0.714833285253085, 0.8014821280258599, 0.0423294989420161]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.46020494037027904, 0.1183049591166877, 0.8455736796675837], 0.009564529506430412, [0.43820774144362595, 0.9864134399623772, 0.5213635902352741, 0.7825393808296219]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.38302007549064776, 0.2610738988132921, 0.38243110265103486], 0.00879050055450757, [0.22661173901939113, 0.6427440609269616, 0.7349829587317898, 0.22440478954784737]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.7675706354227012, 0.6830216562053943, 0.9828525063335046], 0.00030193717698736916, [0.6962187903754538, 0.7485949073619695, 0.6034741867978999, 0.7292786447682762]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.3050424229456674, 0.705503651828581, 0.2161902177875057], 0.0019490720274920647, [0.8645972363970755, 0.5822420927980573, 0.25580361360386095, 0.377504748209773]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.503364457080568, 0.4739102794439455, 0.8882313721777293], 0.007003767860720454, [0.647938265577496, 0.5462740370511083, 0.4481538479575009, 0.42773190354588286]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.6419909113170134, 0.3653123773611996, 0.9713497759206838], 0.0043579616572875434, [0.8917110271026161, 0.6439207339714714, 0.5036025955048534, 0.4437995597691393]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.5660529652176645, 0.9595746577303932, 0.8477086241617172], 0.0035640681857256975, [0.5419453685002806, 0.3427439265408987, 0.032196858193411226, 0.18518731541358224]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.5828631646060379, 0.34651215147388426, 0.5134178926389176], 0.003926179004732325, [0.0458405367409076, 0.3639566243370217, 0.059578557114454256, 0.9962632355591512]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.879080103813595, 0.6025583064984074, 0.23268830772202231], 0.0008940181927595166, [0.42801386665227803, 0.07046185542048555, 0.6951230120676851, 0.6705048319454384]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.1440075538011215, 0.3067113936734345, 0.6436070688247999], 0.007053929291224028, [0.3997191978718325, 0.013760125081811125, 0.11173714288874481, 0.25455238905806765]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.5215814102984935, 0.5258283802989739, 0.3954807490563794], 0.007982359414388152, [0.047033883420560474, 0.9582951819555906, 0.9519215449752892, 0.2567791620738684]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.11881400147042598, 0.011220061279313964, 0.13384862525073793], 0.007187609019877816, [0.7795024398485453, 0.8301151297487197, 0.45918152351480335, 0.25851486922819]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.060512169419791206, 0.7446053256593784, 0.6746307003251895], 0.006094604185275119, [0.906748548471635, 0.11488502630332675, 0.5753095521549699, 0.782094637362603]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.863362101283652, 0.21474704797833044, 0.6503263151978904], 0.00989898695295262, [0.6240429482632586, 0.7906374362304105, 0.7652350423701638, 0.14765296790357707]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.47316473223960553, 0.052497737269379674, 0.8449616700297329], 0.001296483920557443, [0.7700451041031097, 0.7383868768468096, 0.34134557996296455, 0.05993679065745827]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.7449788853899865, 0.5181977584843006, 0.7351146161115111], 0.002153393855190447, [0.4172346693219562, 0.7146733939712135, 0.8797743859260458, 0.7096904549422267]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.0895075005214856, 0.012769070252689807, 0.21717576989610088], 0.007793578077477884, [0.17355753790968675, 0.9885775553410592, 0.05271954177460836, 0.504623980860874]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0  …  0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0])], Tuple{Main.Vorton{Float64}, Vector{Float64}, Vector{Float64}}[(Main.Vorton{Float64}([0.6930608269351647, 0.5953826990089739, 0.26009741633886674], [0.708975608783004, 0.4394604367174749, 0.6143483139481591], 0.002522113977453815), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.4736959165523619, 0.07319045613465058, 0.5279634023504362], [0.01577213921807452, 0.5769351603895058, 0.46967633280564924], 0.010145707404439529), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.6395805176226315, 0.8837886147365132, 0.7541674014529683], [0.40633052528186975, 0.6551097046413992, 0.8085217817740494], 0.006190339263914765), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.4631722969914098, 0.8141764584094953, 0.34998766001547277], [0.02285921557912396, 0.9620740765684674, 0.8628479339285585], 0.004900731051132423), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.3853667049302918, 0.5281707735578608, 0.7578440632557893], [0.7696437203416594, 0.14268788425911882, 0.9585990358769636], 0.0013076612145550802), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.7235603944754815, 0.6619214652561239, 0.49311973421304267], [0.66472377932795, 0.70181996648594, 0.8606817852554968], 0.00680460850742638), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.866335124889903, 0.44495332387411457, 0.19206496056055744], [0.8783063366197971, 0.5210113642202104, 0.7929108909484469], 0.008296600414482234), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.8005737193684215, 0.9286577650625372, 0.8816670257839777], [0.6607811201396498, 0.3573595306059265, 0.16305322765946628], 0.007574200408496729), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.5841927149409011, 0.27288281477972787, 0.6364104723135541], [0.6254189121396706, 0.5788460814241853, 0.09527339989464556], 0.0027914065402173593), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.4858020455896641, 0.6822544316120533, 0.7421646227295875], [0.03146588273117701, 0.5249122388651134, 0.555380505342661], 0.006004808789025575), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.15838432041921613, 0.39137001697762885, 0.8186619053080604], [0.7913811629657576, 0.8078455536303967, 0.967197757866526], 0.007154627189838537), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.9010871797875609, 0.30543205989154054, 0.3090183751720801], [0.025980839293487157, 0.7583642275285837, 0.27292660535811286], 0.009552645635530432), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.1635168706372193, 0.847082049512829, 0.9545070538738755], [0.2608997687416311, 0.6250852449509345, 0.6909582078949791], 0.002189030971528107), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.9490322673395254, 0.7258379023145007, 0.05021538416807836], [0.22751986401005164, 0.7261381551482464, 0.06352652466673381], 0.007063791754264745), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.8816270887574178, 0.9675497691505398, 0.3780627492174078], [0.3884890848560171, 0.0005752088145820622, 0.7417616734381712], 0.008864046920721253), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.16523520089051724, 0.06410102597420109, 0.18210089796362916], [0.5549655695831773, 0.8637860954012616, 0.4944273944361771], 0.006034557502749332), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.8653643258264998, 0.34589851369467783, 0.5379998834582042], [0.7687352179913052, 0.8919604959857386, 0.9957687887352038], 0.0054620417749986425), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.5223337985911936, 0.06597598721050435, 0.9107306211403949], [0.4224941044001491, 0.675471368361827, 0.11124522614496535], 0.0057352215420712685), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.3123303426188978, 0.20983907377630695, 0.8679745830775288], [0.06926277130277392, 0.6643018073630574, 0.1097076813599972], 0.008160475501220016), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.32623912347107686, 0.6519837390279897, 0.7908535323722607], [0.968260540137222, 0.19739786160280937, 0.34581970605657375], 0.007458633600391231), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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), MultiTree{Float64, 2, Tuple{Vector{Tuple{Main.Body{Float64}, Vector{Float64}}}, Vector{Tuple{Main.Vorton{Float64}, Vector{Float64}, Vector{Float64}}}}, 5}(MultiBranch{Float64, 2}[MultiBranch{Float64, 2}(UnitRange{Int64}[1:100, 1:100], 8, 2:9, 0, -1, [0.49801566262999436, 0.49520356617852135, 0.4970227729348794], 0.8574652475891061, 0.8574652475891061, [-0.4950577915163195, 0.4950577915163195, -0.4950577915163195, 0.4950577915163195, -0.4950577915163195, 0.4950577915163195], [0.4950577915163195, 0.4950577915163195, 0.4950577915163195], 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)), (139835767718704, 139835767718704, 139835767718704))), MultiBranch{Float64, 2}(UnitRange{Int64}[1:14, 1:12], 0, 10:9, 1, 1, [0.2504867668718346, 0.2476746704203616, 0.24949387717671964], 0.42873262379455307, 0.42873262379455307, [-0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976], [0.24752889575815976, 0.24752889575815976, 0.24752889575815976], 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.2087012212557283 0.0; 0.0 0.0;;; 0.032545008619530684 0.0; -0.10073458467017052 0.0;;; … ;;; -3.0244533257637133e-6 0.0; 2.2205990602711725e-6 0.0;;; 3.4440032384179833e-7 0.0; 1.036378465235622e-6 0.0;;; 1.1078772330034604e-7 0.0; -9.238829485383542e-10 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (139835767718704, 139835767718704, 139835767718704))), MultiBranch{Float64, 2}(UnitRange{Int64}[15:32, 13:28], 0, 10:9, 1, 2, [0.7455445583881541, 0.2476746704203616, 0.24949387717671964], 0.42873262379455307, 0.42873262379455307, [-0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976], [0.24752889575815976, 0.24752889575815976, 0.24752889575815976], 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.08037135964231336 0.0; -0.0 0.0;;; 0.02983419015864896 0.0; 0.045839845558878545 0.0;;; … ;;; -6.68121229105876e-8 0.0; 1.0788294956364102e-8 0.0;;; 2.014047636416609e-8 0.0; 2.218849378968717e-8 0.0;;; 1.0357976488678172e-9 0.0; -3.9447188056193436e-9 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (0, 0, 415969151153))), MultiBranch{Float64, 2}(UnitRange{Int64}[33:42, 29:38], 0, 10:9, 1, 3, [0.2504867668718346, 0.7427324619366811, 0.24949387717671964], 0.42873262379455307, 0.42873262379455307, [-0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976], [0.24752889575815976, 0.24752889575815976, 0.24752889575815976], 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.005684750881457034 0.0; 0.0 0.0;;; 0.10704406745359585 0.0; -0.09016844141035768 0.0;;; … ;;; 1.1261847899409718e-6 0.0; 1.9251347681431154e-6 0.0;;; -8.564267080796984e-8 0.0; -3.0434887744530454e-8 0.0;;; -4.1907926914274465e-7 0.0; 1.570655271058279e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (139835767718704, 139835767718704, 139835767718704))), MultiBranch{Float64, 2}(UnitRange{Int64}[43:55, 39:45], 0, 10:9, 1, 4, [0.7455445583881541, 0.7427324619366811, 0.24949387717671964], 0.42873262379455307, 0.42873262379455307, [-0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976], [0.24752889575815976, 0.24752889575815976, 0.24752889575815976], 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.16612807490787934 0.0; -0.0 0.0;;; 0.08268402123633084 0.0; 0.09953827541668359 0.0;;; … ;;; -3.031961319705402e-6 0.0; 1.6908105173106713e-6 0.0;;; 1.8102007820043372e-6 0.0; 6.998654255063502e-7 0.0;;; -9.632481742411246e-8 0.0; -2.865884671640096e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (0, 0, 415969151153))), MultiBranch{Float64, 2}(UnitRange{Int64}[56:66, 46:60], 0, 10:9, 1, 5, [0.2504867668718346, 0.2476746704203616, 0.7445516686930391], 0.42873262379455307, 0.42873262379455307, [-0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976], [0.24752889575815976, 0.24752889575815976, 0.24752889575815976], 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.04519592028648003 0.0; -0.0 0.0;;; 0.06242853348956448 0.0; -0.11141610116275585 0.0;;; … ;;; 1.0603477834477849e-6 0.0; -4.095341527385005e-8 0.0;;; 2.2784818233315364e-7 0.0; -4.461965845635977e-7 0.0;;; 1.5704628071710524e-7 0.0; 2.3560248012414177e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (0, 0, 414041124723))), MultiBranch{Float64, 2}(UnitRange{Int64}[67:76, 61:73], 0, 10:9, 1, 6, [0.7455445583881541, 0.2476746704203616, 0.7445516686930391], 0.42873262379455307, 0.42873262379455307, [-0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976], [0.24752889575815976, 0.24752889575815976, 0.24752889575815976], 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.1675191471527402 0.0; -0.0 0.0;;; -0.0312326202384185 0.0; -0.012016009310730989 0.0;;; … ;;; -3.88205041167155e-8 0.0; -7.661592791364743e-8 0.0;;; -8.888241440564631e-10 0.0; -8.708252780808858e-9 0.0;;; 9.178430149748747e-11 0.0; -3.374678967008055e-10 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (0, 0, 413211303401))), MultiBranch{Float64, 2}(UnitRange{Int64}[77:86, 74:88], 0, 10:9, 1, 7, [0.2504867668718346, 0.7427324619366811, 0.7445516686930391], 0.42873262379455307, 0.42873262379455307, [-0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976], [0.24752889575815976, 0.24752889575815976, 0.24752889575815976], 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.11536479335650705 0.0; 0.0 0.0;;; 0.08162535869045275 0.0; -0.0797397471166677 0.0;;; … ;;; -5.740072039305257e-7 0.0; -6.157299676352652e-7 0.0;;; -8.141128652993099e-7 0.0; -3.8078853256653077e-8 0.0;;; -1.204676933958677e-7 0.0; 1.071539282470548e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (0, 0, 414208690419))), MultiBranch{Float64, 2}(UnitRange{Int64}[87:100, 89:100], 0, 10:9, 1, 8, [0.7455445583881541, 0.7427324619366811, 0.7445516686930391], 0.42873262379455307, 0.42873262379455307, [-0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976], [0.24752889575815976, 0.24752889575815976, 0.24752889575815976], 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.08931169390251703 0.0; 0.0 0.0;;; 0.05003881398609423 0.0; 0.1058375874872798 0.0;;; … ;;; -1.4574817802585404e-7 0.0; -3.657489693104403e-8 0.0;;; -1.3597606331520128e-7 0.0; -6.856603553560549e-7 0.0;;; 1.4726975614088464e-7 0.0; -1.0905852828131589e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (139835767718704, 139835767727712, -281059960584076)))], 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], [13, 15, 20, 41, 44, 49, 55, 62, 64, 65  …  22, 23, 24, 33, 54, 59, 66, 74, 75, 92]), ([67, 87, 68, 69, 77, 43, 56, 57, 44, 88  …  12, 55, 30, 99, 31, 32, 13, 66, 14, 100], [13, 89, 14, 61, 62, 46, 47, 39, 48, 74  …  59, 100, 72, 28, 12, 45, 60, 88, 73, 38]), (Tuple{Main.Body{Float64}, Vector{Float64}}[(Main.Body{Float64}([0.9191811597933967, 0.42601923740838954, 0.7465863168484385], 0.00551624732815934, [0.2538490889415096, 0.33415153638191886, 0.4273278808735992, 0.867547200255958]), [85.3506033780559, 0.0, 0.0, 0.0, 8.06249772598236, 20.742132708088107, -29.651179810975506, -108.92907718083855, 1358.7526071212158, -1171.3085492072082  …  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, 0.3505458214588266, 0.9303323763821093, 0.9594335994071538]), [87.38882482263334, 0.0, 0.0, 0.0, -1.100939058319244, 7.474445909530373, 6.699188519856526, 457.93697609693334, -440.6509869868499, -690.8172778072006  …  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, 0.3548676566528912, 0.13179829123412257, 0.9411330896079791]), [101.52858282491175, 0.0, 0.0, 0.0, 9.630211659160361, -2.638210371642431, -8.622154886089199, 0.008429065777369044, 5.233817961002082, -14.797288890588765  …  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, 0.45048364263035023, 0.8913769757127503, 0.7110385498005108]), [103.43268574590765, 0.0, 0.0, 0.0, 13.859110768453563, -3.9071367847812035, -8.11395605272161, -27.45516266302689, -9.378570810203593, 22.74100838219483  …  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, 0.753277849991045, 0.7295997282994879, 0.16238042514897943]), [93.32127662551393, 0.0, 0.0, 0.0, -0.15841740325928771, -12.98905722258311, 10.724699909110734, 17.04079689897897, -9.103399047511285, 5.467324335930193  …  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, 0.5997019277391098, 0.4536933650141408, 0.3249034202416199]), [69.46581263668925, 0.0, 0.0, 0.0, -5.678810753233454, 13.674421198809798, -4.815599860065737, 11.158614532959072, -17.33922277427247, -12.335120138379066  …  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, 0.7468540519107453, 0.09667869010406493, 0.45910253524716227]), [105.64593566408003, 0.0, 0.0, 0.0, 5.718129941800118, -9.847937002678014, -0.870729449848443, -129.54769381563, -182.518357936482, 153.05445952519017  …  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, 0.821283430881433, 0.5644095995557176, 0.030378874865931382]), [82.48342248428222, 0.0, 0.0, 0.0, -0.7032839479798534, 5.704028315696549, -5.645750346651228, 337.26341798169574, -33.59797397914119, 62.619199827203055  …  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, 0.4379647602849879, 0.23146826213384353, 0.6471427793654219]), [89.54825552075131, 0.0, 0.0, 0.0, -8.803138478520511, 17.31055979004575, -6.379565479954741, -147.41550741185515, -85.31936943654026, 194.62709067291138  …  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, 0.2404468114408953, 0.2221494346545283, 0.5096964769051421]), [101.33590365207982, 0.0, 0.0, 0.0, -1.7862929027640466, 21.488498710253474, -18.724753643750333, 382.18022122827057, -513.3572304837079, 226.9480321694559  …  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, 0.0758000769135273, 0.3487409265919944, 0.30331684418426996]), [97.45103071097367, 0.0, 0.0, 0.0, 3.7363343635707627, -2.6450963023691947, 3.5634416109623404, -8.848496519347146, 43.01756318720152, -60.137322799255514  …  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, 0.881611313975086, 0.009146364153274189, 0.9806631480861379]), [92.64727615051551, 0.0, 0.0, 0.0, -9.789566006058367, 19.649513017655398, -7.49722317810011, -33.20980996493979, -18.1072460256417, 32.27525647878902  …  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, 0.17022568799250704, 0.2638800824351736, 0.6514229873225715]), [81.30366296307194, 0.0, 0.0, 0.0, 5.390598913605371, 3.774600537535236, -7.770998408513131, -10.930957804363196, 15.641140699561106, 5.036619545207673  …  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, 0.22271994897768166, 0.6048365813194562, 0.052884966374337816]), [95.25179822463326, 0.0, 0.0, 0.0, 1.4922349492126696, -2.0520727956577445, 6.096890255702781, 1.6238466676321324, 95.41966121366875, -110.55671481774108  …  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, 0.31694750597495125, 0.29912838760350746, 0.623451826337517]), [102.86206571255629, 0.0, 0.0, 0.0, 183.22319548422686, -157.6131538178901, 124.89243427616086, 25630.480708536135, -10361.615921711391, -4549.69088770725  …  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, 0.7285911206511895, 0.03773808039378912, 0.04331783284230861]), [105.42062571549427, 0.0, 0.0, 0.0, -9.407098849857421, 10.66744635703102, 25.675874823028234, 213.24758539120032, -1.384483145900039, -268.37836906236925  …  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, 0.4603052801344075, 0.9298297825042643, 0.358424742237733]), [89.10879222107357, 0.0, 0.0, 0.0, 0.29518122695650023, -1.5885953056254103, 2.6447317528749124, -0.04062593887656736, -0.3264347540319396, 39.209688879525736  …  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, 0.8609926737185056, 0.1638092551671958, 0.22646456871949416]), [85.06258300857247, 0.0, 0.0, 0.0, 9.980583049852275, -8.614757397874126, 1.4048918493255516, 16.304054536182477, -0.9083852185269751, 3.15651612869891  …  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, 0.12630836876865192, 0.9645167219705122, 0.8221674765296613]), [87.35657697788763, 0.0, 0.0, 0.0, 6.631668160458205, -8.880876039620292, 2.2808268003712016, 8.688862460608041, 18.290196257740945, -27.70535302223958  …  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, 0.15911501872567757, 0.5356210909593669, 0.6799181470255188]), [92.93042970237086, 0.0, 0.0, 0.0, 3.579170479759858, 0.5574429880355298, 8.653730501829191, -68.66336036933845, 80.5018410452713, -1.4853866455436502  …  0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0])], Tuple{Main.Vorton{Float64}, Vector{Float64}, Vector{Float64}}[(Main.Vorton{Float64}([0.6956808381416713, 0.4853785553982539, 0.4648049213765313], [0.7054270031323241, 0.70014541220553, 0.49839208412207514], 0.008389531007170116), [0.0, 0.0, 0.0, 0.0, -0.8822584941683183, 37.933252387002895, -47.88603708257046, -14.946301589562754, 48.53490625653456, 4.048568767978836, 46.10273767416563, -14.937591195125465, -47.65264776236629], [8.50174853254558, 0.3422807467000143, -1.3698895414123198, 0.0, 0.0, 0.0]), (Main.Vorton{Float64}([0.6528326495428173, 0.8783095326823105, 0.6955937752833566], [0.992073216064829, 0.03702391218002421, 0.052040147154059024], 0.008559673062325765), [0.0, 0.0, 0.0, 0.0, 510.46032146257323, -337.29636284298914, -181.21412202984754, -597.077758178114, -40.577188108336635, 470.6252663326008, -572.3709595111981, 1008.0975596281908, -469.8831333542366], [-6.635307494467758, -10.657954792707974, 9.07280276144781, 0.0, 0.0, 0.0]), (Main.Vorton{Float64}([0.9077908593045806, 0.3939808726568609, 0.1924335604037214], [0.5681911381173306, 0.06084849139338322, 0.9611920275200003], 0.00920463305134842), [0.0, 0.0, 0.0, 0.0, -320.3332114842369, -34.58377130895539, 368.0839198461781, 230.13536494966473, 324.9842959812287, -428.13261855501696, 107.45354565095035, -237.813327378721, -4.6510844969917695], [5.002262904567566, 20.106483412927478, -27.95795361610942, 0.0, 0.0, 0.0]), (Main.Vorton{Float64}([0.680305220184172, 0.45142673639459907, 0.6565158730370251], [0.9871517007068787, 0.536191701519787, 0.8044608001295422], 0.01032776912661538), [0.0, 0.0, 0.0, 0.0, 3.5290366718469843, -165.41852935577367, 215.10016845722762, -68.86842304729687, 23.303633729181946, 247.64379943807933, 100.32617617358432, -249.17334079623583, -26.832670401028913], [9.74821219150256, 3.092276196613873, -11.616523984606683, 0.0, 0.0, 0.0]), (Main.Vorton{Float64}([0.5772900725131546, 0.19456471074413395, 0.9691695971486246], [0.029308796906382772, 0.237901194890202, 0.8225322140924277], 0.005855920250376647), [0.0, 0.0, 0.0, 0.0, -12.590937064305567, -5.8931029583027374, -6.052580045726423, -9.567705795412877, 6.983084969341174, -3.8613455886210613, 7.032438744361059, -4.783126247213283, 5.607852094964389], [11.241725102135732, -6.223353028275995, -4.338609044329697, 0.0, 0.0, 0.0]), (Main.Vorton{Float64}([0.07881482026287556, 0.16694384061777157, 0.7453082600322598], [0.36751517071734363, 0.08464781300384328, 0.7877792123673903], 0.006719633426946119), [0.0, 0.0, 0.0, 0.0, 26.415864678954573, -20.050867256931426, -0.8178529266405452, -4.549102666819707, -34.45901507382465, 11.628461542970213, 18.752918414945103, -27.01043418561137, 8.043150394870079], [9.920823853550871, -10.194323634205208, 1.9599671382805932, 0.0, 0.0, 0.0]), (Main.Vorton{Float64}([0.34386745978232425, 0.15114271162865245, 0.8692858825227187], [0.34380421639038017, 0.49221567013213885, 0.7577396026981709], 0.007165314050997217), [0.0, 0.0, 0.0, 0.0, -59.79113188139079, -1.9709498200711613, -26.762698675340847, 54.10917654100488, 45.492034964801626, -261.8421332968958, 164.44096188607392, -25.562476104392736, 14.299096916589178], [14.394628290815083, -3.672764630088914, -9.378589297611173, 0.0, 0.0, 0.0]), (Main.Vorton{Float64}([0.7924111084524182, 0.7258577993874293, 0.4074759819413786], [0.004779849956308646, 0.10815467687383273, 0.6365113178025307], 0.004211825485699923), [0.0, 0.0, 0.0, 0.0, 10.465389536407542, 94.68236585742876, -78.85761169691806, 70.89533439823704, -134.6061639041499, 47.9278980522469, -155.00862689153615, 43.986774759861845, 124.14077436774228], [-17.950340377015056, 21.149992040957308, 1.7437458219519797, 0.0, 0.0, 0.0]), (Main.Vorton{Float64}([0.15007164548253604, 0.13891454905930323, 0.8854146060893755], [0.2322606392244514, 0.24943996074378283, 0.6529923359002099], 0.004730386058191863), [0.0, 0.0, 0.0, 0.0, 59.442434719016205, 26.31264290953867, -7.788753592832606, 63.14513611059529, -47.72166333663818, 20.19110915521419, -57.46819208991416, 29.471415735207678, -11.720771382378052], [14.768178748060738, -8.861646545075095, 1.2188993808980852, 0.0, 0.0, 0.0]), (Main.Vorton{Float64}([0.178892411148747, 0.8198348637351619, 0.746693545507861], [0.05374276809352163, 0.28259697683790064, 0.9963633829133356], 0.004082068996145551), [0.0, 0.0, 0.0, 0.0, 57.050592206607114, -90.21090922096973, 48.878961267701186, -82.68306936940297, 14.29503143257214, 31.74239957362232, 12.320723650538946, 83.85090301869836, -71.34562363917927], [-0.03144901666306661, -15.583012096242426, 13.750015093195545, 0.0, 0.0, 0.0])  …  (Main.Vorton{Float64}([0.4598055261641393, 0.09042082143339258, 0.5640409504623178], [0.6396964311422774, 0.5845421243866575, 0.5349929592419193], 0.001124964196695102), [0.0, 0.0, 0.0, 0.0, 382.09609513254355, 228.00822947658645, -354.08488347129423, -954.163507769204, 241.5556796267648, -189.6437242626885, -169.1205368140404, 434.7509477257039, -623.6517747593078], [20.887342734108213, -2.735476925891841, -5.502211836582691, 0.0, 0.0, 0.0]), (Main.Vorton{Float64}([0.9572197333627137, 0.6426548339644926, 0.6552399747905221], [0.747485027142634, 0.23562083902231445, 0.23561754824795678], 0.0027436327111542455), [0.0, 0.0, 0.0, 0.0, 15.061487372616561, -26.10806509511263, 22.112106061527545, -41.88706206809685, 42.58929055731519, -11.079768202200608, -8.832598907394338, 0.18603518576434164, -57.65077792993176], [0.6561052462927573, 10.15339318367006, -12.7859063446062, 0.0, 0.0, 0.0]), (Main.Vorton{Float64}([0.8050706937073655, 0.005451816228509987, 0.6194543923497148], [0.2893241621284488, 0.15343050371415934, 0.45483197600289493], 0.0033418266341768534), [0.0, 0.0, 0.0, 0.0, -6.235476091786627, 2.7558002187956046, 2.9497273741924195, 10.232663073288112, 3.190253764733486, -17.021401404515075, 0.5779868577948659, -5.568330421328691, 3.0452223270531427], [8.099441084807626, 1.7447616146476344, -9.964573343111939, 0.0, 0.0, 0.0]), (Main.Vorton{Float64}([0.8372242495059112, 0.1880062901030637, 0.329865236819033], [0.6964852800076098, 0.41732935474694366, 0.12800112947157438], 0.008074470339380045), [0.0, 0.0, 0.0, 0.0, 47.94685325237328, -51.324186953826846, 4.847239236476755, -34.28059339724347, 40.769072683232345, 6.830704526226973, 33.07160266107869, 73.1016517686344, -88.71592593560563], [8.754889219586548, -1.8218252892777913, -7.180948488310969, 0.0, 0.0, 0.0]), (Main.Vorton{Float64}([0.049017597531493595, 0.18258465318130024, 0.04079265592099135], [0.6643772290446401, 0.25419876795775076, 0.0111761955710723], 0.006867801058606931), [0.0, 0.0, 0.0, 0.0, -27.31628247323072, 24.233190449744797, -0.3379485823927118, -11.924411796320792, 11.796570800683952, 4.254545828100499, -0.052136141612230326, 2.7632399691705896, 15.519711672546764], [-3.3270429646506385, 1.727457486302319, 2.4540759698751926, 0.0, 0.0, 0.0]), (Main.Vorton{Float64}([0.9446211092215213, 0.5773644194640194, 0.41562195208459896], [0.06814741604330621, 0.16749916233272766, 0.7091985108360725], 0.0031542415121338305), [0.0, 0.0, 0.0, 0.0, 1.8215164214546353, -43.0534679191244, 21.758774568979174, -1.455109738812573, 32.13601155444825, 15.440864606507798, 40.155527530783026, -3.0240868014144886, -33.9575279759029], [-1.4567847361429935, 15.2886865778917, -13.296049302008182, 0.0, 0.0, 0.0]), (Main.Vorton{Float64}([0.02765456454632287, 0.1228176034412326, 0.7897475889795191], [0.5848018551658597, 0.4374509112686895, 0.6003922163899991], 0.0010159571328096377), [0.0, 0.0, 0.0, 0.0, 26.979366295589013, -14.345761341507757, -2.1051658180464075, 8.158019109103137, -26.582227133027917, 11.360653361273496, 4.9604405244283765, -1.6498848360812965, -0.39713916256110293], [8.800785520582927, -8.37524017976289, 1.6105446403166235, 0.0, 0.0, 0.0]), (Main.Vorton{Float64}([0.09100727263849917, 0.5794817445557756, 0.6291868753365321], [0.04589763740992747, 0.2683934891175124, 0.9312357743393328], 0.004951543147051906), [0.0, 0.0, 0.0, 0.0, 7.2826254124701535, 200.02901760661942, -231.96691984886604, -180.55079830561596, 172.343725105568, 48.94235243035011, 203.53488904458027, 29.0355615056544, -179.62635051803812], [-0.04772504081689664, -20.681704217331202, 12.630047100731876, 0.0, 0.0, 0.0]), (Main.Vorton{Float64}([0.7215125397666922, 0.3101399108971986, 0.9120708158457793], [0.036429367243270616, 0.6439997561017691, 0.35149929330560925], 0.0006879838266934451), [0.0, 0.0, 0.0, 0.0, -10.842172139751918, 15.190887004020365, -17.834678493148925, 41.594173476581865, -5.397510782923477, -20.116652682634676, -1.618663520420014, -10.434703724772072, 16.239682922675396], [9.914485943053739, -4.739369747570147, -7.025390474122207, 0.0, 0.0, 0.0]), (Main.Vorton{Float64}([0.07014988405111922, 0.5286443270294893, 0.24380912629526263], [0.620780571763883, 0.8699240224718836, 0.5642401605234335], 0.0003071608128254314), [0.0, 0.0, 0.0, 0.0, 101.93059974405706, 17.590681314952022, -320.9252338856423, 442.5488472353321, -219.0466532545508, -19.474434088571872, -146.04873079853883, 40.3055813981039, 117.11605351049374], [-12.779350368008263, -1.3595250276884299, 13.026821975903577, 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}(), DerivativesSwitch{true, true, true}()))

Non-Potential Flow Applications

As a default, target systems will be evaluated and returned with scalar_potential, velocity, and velocity_gradient fields populated. (Note that the vector potential is not explicitly tracked, though its induced velocity and velocity gradient are.) In some situations, only some of these values may be required. By inputting a boolean vector of the same length as target systems, the user is able to speed up the calculation by not storing unecessary values.

\[\overline{V} = -\nabla \phi + \nabla \times \overline{\psi}\]

$\phi$$\overline{\psi}$$\overline{V}$$\nabla \overline{V}$
fmm! Keyword Argumentsscalar_potentialvector_potentialvelocityvelocity_gradient
Fluid DynamicsScalar PotentialStream FunctionFluid VelocityVelocity Gradient
ElectrostaticsElectric Potential-Electric FieldField Gradient Tensor
Magnetostatics-Magnetic Vector PotentialMagnetic FieldField Gradient Tensor
GravityGravitational Potential-Gravitational AccelerationAcceleration Gradient Tensor
target_one = generate_gravitational(123, 100)
 target_two = generate_vortex(124, 100)
 
 source_one = generate_gravitational(125, 100)
 
 fmm.fmm!((target_one, target_two), source_one, scalar_potential=[true, false],
-    velocity=[true, true], velocity_gradient=[false, false])
(SingleTree{Float64, Vector{Tuple{Main.Body{Float64}, Vector{Float64}}}, 5}(SingleBranch{Float64}[SingleBranch{Float64}(1:100, 8, 2:9, 0, -1, [0.48179464439418035, 0.5006093989915064, 0.5135846646682118], 0.8619975055877627, 0.8619975055877627, [-0.49767449189188073, 0.49767449189188073, -0.49767449189188073, 0.49767449189188073, -0.49767449189188073, 0.49767449189188073], [0.49767449189188073, 0.49767449189188073, 0.49767449189188073], 0.0, 0.0, fill(0.0), [-47.330269153011905 0.0; 0.0 0.0;;; -1.0538836054878957 0.0; 0.0 0.0;;; 0.2581437255104959 0.0; 0.32417697579794513 0.0;;; … ;;; -0.0008324020930813901 0.0; 9.584516978454677e-5 0.0;;; 0.00022605569837265332 0.0; 0.0002001737355761634 0.0;;; -4.788589382345488e-5 0.0; -1.5737437600225223e-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)), (140659273224193, 140658654464144, 140658674668176))), SingleBranch{Float64}(1:14, 0, 10:9, 1, 1, [0.23295739844823998, 0.251772153045566, 0.2647474187222715], 0.43099875279388133, 0.43099875279388133, [-0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037], [0.24883724594594037, 0.24883724594594037, 0.24883724594594037], 0.0, 0.0, fill(0.0), [-7.499871222570643 0.0; 0.0 0.0;;; 0.1511775172236864 0.0; 0.0 0.0;;; -0.17159862481145716 0.0; -0.07777421111649871 0.0;;; … ;;; 6.654374417721039e-6 0.0; -1.8320398726639646e-6 0.0;;; -2.831979898952648e-7 0.0; 2.7274227268680686e-6 0.0;;; 2.980421231232696e-7 0.0; -1.6644915713327277e-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.0475716488261706 0.0; 0.0 0.0;;; 0.1195015413964381 0.0; -0.0717249489633772 0.0;;; … ;;; 8.551990292441558e-8 0.0; 1.6785191448426871e-6 0.0;;; -4.1703590062913545e-7 0.0; -6.208746591492499e-7 0.0;;; -3.967431800726344e-7 0.0; -1.8617643569857076e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (20753281981152, 6208, 4))), SingleBranch{Float64}(15:26, 0, 10:9, 1, 2, [0.7306318903401208, 0.251772153045566, 0.2647474187222715], 0.43099875279388133, 0.43099875279388133, [-0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037], [0.24883724594594037, 0.24883724594594037, 0.24883724594594037], 0.0, 0.0, fill(0.0), [-5.832802684288696 0.0; 0.0 0.0;;; -0.005174662477621744 0.0; 0.0 0.0;;; 0.15820729244290432 0.0; 0.12484604144375797 0.0;;; … ;;; 1.0332065930653744e-6 0.0; 2.1649761195969315e-6 0.0;;; 1.9104310530934324e-7 0.0; -6.94223215499619e-7 0.0;;; -5.3899273439794484e-8 0.0; 1.718878795742581e-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.2486704739166461 0.0; 0.0 0.0;;; -0.04736999921415913 0.0; -0.07388436286704142 0.0;;; … ;;; 3.2349671327322305e-6 0.0; -4.544322257288448e-7 0.0;;; 4.005786149725973e-7 0.0; 4.6634514669915355e-7 0.0;;; -1.2450376693078546e-8 0.0; 4.157089031438735e-8 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (4294967297, 140659247289680, 140659280801088))), SingleBranch{Float64}(27:41, 0, 10:9, 1, 3, [0.23295739844823998, 0.7494466449374467, 0.2647474187222715], 0.43099875279388133, 0.43099875279388133, [-0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037], [0.24883724594594037, 0.24883724594594037, 0.24883724594594037], 0.0, 0.0, fill(0.0), [-6.731488675573531 0.0; 0.0 0.0;;; 0.011400475589984096 0.0; 0.0 0.0;;; 0.1188574386355909 0.0; 0.02054364764978861 0.0;;; … ;;; 1.8724041357624202e-6 0.0; -6.740573259352781e-8 0.0;;; -9.062764401980581e-7 0.0; -1.5028718156848473e-7 0.0;;; -2.656402793225009e-7 0.0; 8.050058723093146e-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.0776597288395956 0.0; 0.0 0.0;;; 0.05043299396916734 0.0; 0.12172661720283631 0.0;;; … ;;; 4.666416807814993e-7 0.0; 1.931492763086916e-7 0.0;;; -3.331198811096547e-10 0.0; -9.752745318068186e-7 0.0;;; 3.0569272167597004e-7 0.0; -1.267750090624772e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (140658568634368, 140658568634400, 140659292045312))), SingleBranch{Float64}(42:51, 0, 10:9, 1, 4, [0.7306318903401208, 0.7494466449374467, 0.2647474187222715], 0.43099875279388133, 0.43099875279388133, [-0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037], [0.24883724594594037, 0.24883724594594037, 0.24883724594594037], 0.0, 0.0, fill(0.0), [-3.3477273311870865 0.0; 0.0 0.0;;; -0.05661650963523443 0.0; 0.0 0.0;;; 0.049045688737453436 0.0; -0.029735712471123377 0.0;;; … ;;; 7.249010232689599e-7 0.0; 5.074419050401502e-7 0.0;;; 8.467912089590641e-7 0.0; -1.2457046357912389e-7 0.0;;; -3.3486020944921064e-8 0.0; -9.682938343398542e-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.13073333033410794 0.0; 0.0 0.0;;; 0.11180913231923639 0.0; -0.10452524002081365 0.0;;; … ;;; -1.015939496560566e-6 0.0; -1.245007835412755e-6 0.0;;; 2.9624679866733807e-6 0.0; 4.0125695067632e-7 0.0;;; -5.708910699960474e-7 0.0; 4.050818336718332e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (140659292045328, 140659292046128, 0))), SingleBranch{Float64}(52:61, 0, 10:9, 1, 5, [0.23295739844823998, 0.251772153045566, 0.7624219106141522], 0.43099875279388133, 0.43099875279388133, [-0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037], [0.24883724594594037, 0.24883724594594037, 0.24883724594594037], 0.0, 0.0, fill(0.0), [-3.768609585113875 0.0; 0.0 0.0;;; -0.035764396889667704 0.0; 0.0 0.0;;; -0.16228372078844444 0.0; 0.23742079553987183 0.0;;; … ;;; 5.056014420212356e-7 0.0; 2.136901791719658e-7 0.0;;; 1.7169448653861497e-6 0.0; -1.3242169437551442e-6 0.0;;; 7.066422746939443e-8 0.0; -6.418001947143367e-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.08253975941558067 0.0; 0.0 0.0;;; 0.09963720788809316 0.0; 0.12010366689568278 0.0;;; … ;;; 1.4850469385811878e-6 0.0; -8.244164692731008e-7 0.0;;; 1.9004462221190685e-6 0.0; 7.403606419704646e-7 0.0;;; -2.4336181277641484e-7 0.0; -7.318122304914546e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (140659400465168, 140659400465200, 30064771075))), SingleBranch{Float64}(62:71, 0, 10:9, 1, 6, [0.7306318903401208, 0.251772153045566, 0.7624219106141522], 0.43099875279388133, 0.43099875279388133, [-0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037], [0.24883724594594037, 0.24883724594594037, 0.24883724594594037], 0.0, 0.0, fill(0.0), [-6.65369686162497 0.0; 0.0 0.0;;; -0.33832705107850786 0.0; 0.0 0.0;;; 0.03648439580080508 0.0; -0.2893007691915242 0.0;;; … ;;; -9.56553625327193e-7 0.0; -2.2026067778364347e-6 0.0;;; 1.9474701214310728e-6 0.0; 5.648080340882214e-8 0.0;;; -4.831687600971158e-7 0.0; 4.5322428445436293e-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.1120955954162618 0.0; 0.0 0.0;;; 0.018512552533617777 0.0; 0.0663651054717656 0.0;;; … ;;; -2.0236147622849254e-7 0.0; -1.903004423018463e-7 0.0;;; 4.885027079146498e-8 0.0; -9.322703900889062e-8 0.0;;; 1.2652353474943286e-8 0.0; 2.7049821370130747e-9 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (140658592158800, 140659292046128, 47244640256))), SingleBranch{Float64}(72:83, 0, 10:9, 1, 7, [0.23295739844823998, 0.7494466449374467, 0.7624219106141522], 0.43099875279388133, 0.43099875279388133, [-0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037], [0.24883724594594037, 0.24883724594594037, 0.24883724594594037], 0.0, 0.0, fill(0.0), [-4.426804767086749 0.0; 0.0 0.0;;; -0.33604471722409424 0.0; 0.0 0.0;;; 0.13234132530752615 0.0; -0.1606673862693206 0.0;;; … ;;; 1.1458834355307562e-6 0.0; -1.4643331074881864e-6 0.0;;; 8.012013073683108e-8 0.0; 7.658765166251638e-7 0.0;;; -2.960351828451514e-7 0.0; -7.415640875943139e-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.08779121028896275 0.0; 0.0 0.0;;; 0.0024206596390341506 0.0; -0.08622261451422439 0.0;;; … ;;; -1.793369218013121e-8 0.0; 2.1248188421746336e-7 0.0;;; 2.0121767805487402e-7 0.0; 2.2685828324326742e-8 0.0;;; 5.565730178295652e-9 0.0; -3.93993876207998e-8 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (140659292046128, 140659292046128, 140659438680704))), SingleBranch{Float64}(84:100, 0, 10:9, 1, 8, [0.7306318903401208, 0.7494466449374467, 0.7624219106141522], 0.43099875279388133, 0.43099875279388133, [-0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037], [0.24883724594594037, 0.24883724594594037, 0.24883724594594037], 0.0, 0.0, fill(0.0), [-9.069268025566352 0.0; 0.0 0.0;;; -0.31850085207032125 0.0; 0.0 0.0;;; 0.11944690591762133 0.0; 0.1906943971623366 0.0;;; … ;;; -6.760562163890454e-6 0.0; 3.950077335221274e-6 0.0;;; 6.1795388617324575e-6 0.0; 5.467181615162473e-8 0.0;;; -8.913747733183657e-7 0.0; -4.836258226795493e-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.027307294502641133 0.0; 0.0 0.0;;; 0.11562444322657306 0.0; 0.007173497524932848 0.0;;; … ;;; -7.594532495054794e-7 0.0; -1.4282037498218524e-7 0.0;;; 1.9866669481961943e-7 0.0; 5.027272869736831e-8 0.0;;; 1.6559747198033837e-7 0.0; 5.301068040987261e-8 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (1, 140659244172112, 140659438680704)))], UnitRange{Int64}[1:1, 2:9], [2, 3, 4, 5, 6, 7, 8, 9], [5, 19, 24, 38, 39, 43, 51, 53, 60, 62  …  20, 29, 45, 52, 54, 58, 76, 82, 83, 99], [42, 27, 84, 52, 1, 85, 28, 62, 63, 86  …  26, 50, 60, 51, 13, 83, 71, 61, 100, 14], Tuple{Main.Body{Float64}, Vector{Float64}}[(Main.Body{Float64}([0.557859214605901, 0.9505794906131003, 0.3404453566099245], 0.009400118805868503, [0.4279926935042637, 0.5792958612811091, 0.7737051496094961, 0.755089351578363]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.4665724969813344, 0.7527119243585907, 0.37990008755992277], 0.008009455207989609, [0.03215302412332721, 0.30401585392069863, 0.39844830923765007, 0.05175624298006909]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.655364218417507, 0.5420094641040476, 0.5949064366117462], 0.00966985017093868, [0.45318687939721236, 0.714833285253085, 0.8014821280258599, 0.0423294989420161]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.46020494037027904, 0.1183049591166877, 0.8455736796675837], 0.009564529506430412, [0.43820774144362595, 0.9864134399623772, 0.5213635902352741, 0.7825393808296219]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.38302007549064776, 0.2610738988132921, 0.38243110265103486], 0.00879050055450757, [0.22661173901939113, 0.6427440609269616, 0.7349829587317898, 0.22440478954784737]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.7675706354227012, 0.6830216562053943, 0.9828525063335046], 0.00030193717698736916, [0.6962187903754538, 0.7485949073619695, 0.6034741867978999, 0.7292786447682762]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.3050424229456674, 0.705503651828581, 0.2161902177875057], 0.0019490720274920647, [0.8645972363970755, 0.5822420927980573, 0.25580361360386095, 0.377504748209773]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.503364457080568, 0.4739102794439455, 0.8882313721777293], 0.007003767860720454, [0.647938265577496, 0.5462740370511083, 0.4481538479575009, 0.42773190354588286]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.6419909113170134, 0.3653123773611996, 0.9713497759206838], 0.0043579616572875434, [0.8917110271026161, 0.6439207339714714, 0.5036025955048534, 0.4437995597691393]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.5660529652176645, 0.9595746577303932, 0.8477086241617172], 0.0035640681857256975, [0.5419453685002806, 0.3427439265408987, 0.032196858193411226, 0.18518731541358224]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.5828631646060379, 0.34651215147388426, 0.5134178926389176], 0.003926179004732325, [0.0458405367409076, 0.3639566243370217, 0.059578557114454256, 0.9962632355591512]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.879080103813595, 0.6025583064984074, 0.23268830772202231], 0.0008940181927595166, [0.42801386665227803, 0.07046185542048555, 0.6951230120676851, 0.6705048319454384]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.1440075538011215, 0.3067113936734345, 0.6436070688247999], 0.007053929291224028, [0.3997191978718325, 0.013760125081811125, 0.11173714288874481, 0.25455238905806765]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.5215814102984935, 0.5258283802989739, 0.3954807490563794], 0.007982359414388152, [0.047033883420560474, 0.9582951819555906, 0.9519215449752892, 0.2567791620738684]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.11881400147042598, 0.011220061279313964, 0.13384862525073793], 0.007187609019877816, [0.7795024398485453, 0.8301151297487197, 0.45918152351480335, 0.25851486922819]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.060512169419791206, 0.7446053256593784, 0.6746307003251895], 0.006094604185275119, [0.906748548471635, 0.11488502630332675, 0.5753095521549699, 0.782094637362603]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.863362101283652, 0.21474704797833044, 0.6503263151978904], 0.00989898695295262, [0.6240429482632586, 0.7906374362304105, 0.7652350423701638, 0.14765296790357707]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.47316473223960553, 0.052497737269379674, 0.8449616700297329], 0.001296483920557443, [0.7700451041031097, 0.7383868768468096, 0.34134557996296455, 0.05993679065745827]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.7449788853899865, 0.5181977584843006, 0.7351146161115111], 0.002153393855190447, [0.4172346693219562, 0.7146733939712135, 0.8797743859260458, 0.7096904549422267]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.0895075005214856, 0.012769070252689807, 0.21717576989610088], 0.007793578077477884, [0.17355753790968675, 0.9885775553410592, 0.05271954177460836, 0.504623980860874]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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), MultiTree{Float64, 2, Tuple{Vector{Tuple{Main.Body{Float64}, Vector{Float64}}}, Vector{Tuple{Main.Vorton{Float64}, Vector{Float64}, Vector{Float64}}}}, 5}(MultiBranch{Float64, 2}[MultiBranch{Float64, 2}(UnitRange{Int64}[1:100, 1:100], 8, 2:9, 0, -1, [0.49801566262999436, 0.49520356617852135, 0.4970227729348794], 0.8574652475891061, 0.8574652475891061, [-0.4950577915163195, 0.4950577915163195, -0.4950577915163195, 0.4950577915163195, -0.4950577915163195, 0.4950577915163195], [0.4950577915163195, 0.4950577915163195, 0.4950577915163195], 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)), (140658637694800, 0, 140659292046128))), MultiBranch{Float64, 2}(UnitRange{Int64}[1:14, 1:12], 0, 10:9, 1, 1, [0.2504867668718346, 0.2476746704203616, 0.24949387717671964], 0.42873262379455307, 0.42873262379455307, [-0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976], [0.24752889575815976, 0.24752889575815976, 0.24752889575815976], 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.2087012212557283 0.0; 0.0 0.0;;; 0.032545008619530684 0.0; -0.10073458467017052 0.0;;; … ;;; -3.0244533257637133e-6 0.0; 2.2205990602711725e-6 0.0;;; 3.4440032384179833e-7 0.0; 1.036378465235622e-6 0.0;;; 1.1078772330034604e-7 0.0; -9.238829485383542e-10 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (140658578452656, 140658578452688, 413947332375))), MultiBranch{Float64, 2}(UnitRange{Int64}[15:32, 13:28], 0, 10:9, 1, 2, [0.7455445583881541, 0.2476746704203616, 0.24949387717671964], 0.42873262379455307, 0.42873262379455307, [-0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976], [0.24752889575815976, 0.24752889575815976, 0.24752889575815976], 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.08037135964231336 0.0; -0.0 0.0;;; 0.02983419015864896 0.0; 0.045839845558878545 0.0;;; … ;;; -6.68121229105876e-8 0.0; 1.0788294956364102e-8 0.0;;; 2.014047636416609e-8 0.0; 2.218849378968717e-8 0.0;;; 1.0357976488678172e-9 0.0; -3.9447188056193436e-9 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (1, 140658579732944, 413369890256))), MultiBranch{Float64, 2}(UnitRange{Int64}[33:42, 29:38], 0, 10:9, 1, 3, [0.2504867668718346, 0.7427324619366811, 0.24949387717671964], 0.42873262379455307, 0.42873262379455307, [-0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976], [0.24752889575815976, 0.24752889575815976, 0.24752889575815976], 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.005684750881457034 0.0; 0.0 0.0;;; 0.10704406745359585 0.0; -0.09016844141035768 0.0;;; … ;;; 1.1261847899409718e-6 0.0; 1.9251347681431154e-6 0.0;;; -8.564267080796984e-8 0.0; -3.0434887744530454e-8 0.0;;; -4.1907926914274465e-7 0.0; 1.570655271058279e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (1, 1, 416412130956))), MultiBranch{Float64, 2}(UnitRange{Int64}[43:55, 39:45], 0, 10:9, 1, 4, [0.7455445583881541, 0.7427324619366811, 0.24949387717671964], 0.42873262379455307, 0.42873262379455307, [-0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976], [0.24752889575815976, 0.24752889575815976, 0.24752889575815976], 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.16612807490787934 0.0; -0.0 0.0;;; 0.08268402123633084 0.0; 0.09953827541668359 0.0;;; … ;;; -3.031961319705402e-6 0.0; 1.6908105173106713e-6 0.0;;; 1.8102007820043372e-6 0.0; 6.998654255063502e-7 0.0;;; -9.632481742411246e-8 0.0; -2.865884671640096e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (140659237570128, 140658640009296, 415969151153))), MultiBranch{Float64, 2}(UnitRange{Int64}[56:66, 46:60], 0, 10:9, 1, 5, [0.2504867668718346, 0.2476746704203616, 0.7445516686930391], 0.42873262379455307, 0.42873262379455307, [-0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976], [0.24752889575815976, 0.24752889575815976, 0.24752889575815976], 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.04519592028648003 0.0; -0.0 0.0;;; 0.06242853348956448 0.0; -0.11141610116275585 0.0;;; … ;;; 1.0603477834477849e-6 0.0; -4.095341527385005e-8 0.0;;; 2.2784818233315364e-7 0.0; -4.461965845635977e-7 0.0;;; 1.5704628071710524e-7 0.0; 2.3560248012414177e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (140659279416640, 140659292049040, 140659292055136))), MultiBranch{Float64, 2}(UnitRange{Int64}[67:76, 61:73], 0, 10:9, 1, 6, [0.7455445583881541, 0.2476746704203616, 0.7445516686930391], 0.42873262379455307, 0.42873262379455307, [-0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976], [0.24752889575815976, 0.24752889575815976, 0.24752889575815976], 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.1675191471527402 0.0; -0.0 0.0;;; -0.0312326202384185 0.0; -0.012016009310730989 0.0;;; … ;;; -3.88205041167155e-8 0.0; -7.661592791364743e-8 0.0;;; -8.888241440564631e-10 0.0; -8.708252780808858e-9 0.0;;; 9.178430149748747e-11 0.0; -3.374678967008055e-10 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (0, 0, 430712451106))), MultiBranch{Float64, 2}(UnitRange{Int64}[77:86, 74:88], 0, 10:9, 1, 7, [0.2504867668718346, 0.7427324619366811, 0.7445516686930391], 0.42873262379455307, 0.42873262379455307, [-0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976], [0.24752889575815976, 0.24752889575815976, 0.24752889575815976], 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.11536479335650705 0.0; 0.0 0.0;;; 0.08162535869045275 0.0; -0.0797397471166677 0.0;;; … ;;; -5.740072039305257e-7 0.0; -6.157299676352652e-7 0.0;;; -8.141128652993099e-7 0.0; -3.8078853256653077e-8 0.0;;; -1.204676933958677e-7 0.0; 1.071539282470548e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (140659292046128, 140659279416640, 413369890256))), MultiBranch{Float64, 2}(UnitRange{Int64}[87:100, 89:100], 0, 10:9, 1, 8, [0.7455445583881541, 0.7427324619366811, 0.7445516686930391], 0.42873262379455307, 0.42873262379455307, [-0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976], [0.24752889575815976, 0.24752889575815976, 0.24752889575815976], 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.08931169390251703 0.0; 0.0 0.0;;; 0.05003881398609423 0.0; 0.1058375874872798 0.0;;; … ;;; -1.4574817802585404e-7 0.0; -3.657489693104403e-8 0.0;;; -1.3597606331520128e-7 0.0; -6.856603553560549e-7 0.0;;; 1.4726975614088464e-7 0.0; -1.0905852828131589e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (140659438647552, 140659438875344, 415969151153)))], 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], [13, 15, 20, 41, 44, 49, 55, 62, 64, 65  …  22, 23, 24, 33, 54, 59, 66, 74, 75, 92]), ([67, 87, 68, 69, 77, 43, 56, 57, 44, 88  …  12, 55, 30, 99, 31, 32, 13, 66, 14, 100], [13, 89, 14, 61, 62, 46, 47, 39, 48, 74  …  59, 100, 72, 28, 12, 45, 60, 88, 73, 38]), (Tuple{Main.Body{Float64}, Vector{Float64}}[(Main.Body{Float64}([0.9191811597933967, 0.42601923740838954, 0.7465863168484385], 0.00551624732815934, [0.2538490889415096, 0.33415153638191886, 0.4273278808735992, 0.867547200255958]), [85.35060337805587, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.3505458214588266, 0.9303323763821093, 0.9594335994071538]), [87.38882482263334, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.3548676566528912, 0.13179829123412257, 0.9411330896079791]), [101.52858282491177, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.45048364263035023, 0.8913769757127503, 0.7110385498005108]), [103.43268574590765, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.753277849991045, 0.7295997282994879, 0.16238042514897943]), [93.32127662551395, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.5997019277391098, 0.4536933650141408, 0.3249034202416199]), [69.46581263668925, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.7468540519107453, 0.09667869010406493, 0.45910253524716227]), [105.64593566408001, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.821283430881433, 0.5644095995557176, 0.030378874865931382]), [82.48342248428222, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.4379647602849879, 0.23146826213384353, 0.6471427793654219]), [89.54825552075133, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.2404468114408953, 0.2221494346545283, 0.5096964769051421]), [101.3359036520798, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.0758000769135273, 0.3487409265919944, 0.30331684418426996]), [97.45103071097368, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.881611313975086, 0.009146364153274189, 0.9806631480861379]), [92.64727615051551, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.17022568799250704, 0.2638800824351736, 0.6514229873225715]), [81.30366296307194, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.22271994897768166, 0.6048365813194562, 0.052884966374337816]), [95.25179822463329, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.31694750597495125, 0.29912838760350746, 0.623451826337517]), [102.86206571255629, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.7285911206511895, 0.03773808039378912, 0.04331783284230861]), [105.42062571549425, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.4603052801344075, 0.9298297825042643, 0.358424742237733]), [89.10879222107356, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.8609926737185056, 0.1638092551671958, 0.22646456871949416]), [85.06258300857247, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.12630836876865192, 0.9645167219705122, 0.8221674765296613]), [87.35657697788763, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.15911501872567757, 0.5356210909593669, 0.6799181470255188]), [92.93042970237086, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0  …  0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0])], Tuple{Main.Vorton{Float64}, Vector{Float64}, Vector{Float64}}[(Main.Vorton{Float64}([0.6956808381416713, 0.4853785553982539, 0.4648049213765313], [0.7054270031323241, 0.70014541220553, 0.49839208412207514], 0.008389531007170116), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.6528326495428173, 0.8783095326823105, 0.6955937752833566], [0.992073216064829, 0.03702391218002421, 0.052040147154059024], 0.008559673062325765), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.9077908593045806, 0.3939808726568609, 0.1924335604037214], [0.5681911381173306, 0.06084849139338322, 0.9611920275200003], 0.00920463305134842), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.680305220184172, 0.45142673639459907, 0.6565158730370251], [0.9871517007068787, 0.536191701519787, 0.8044608001295422], 0.01032776912661538), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.5772900725131546, 0.19456471074413395, 0.9691695971486246], [0.029308796906382772, 0.237901194890202, 0.8225322140924277], 0.005855920250376647), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.07881482026287556, 0.16694384061777157, 0.7453082600322598], [0.36751517071734363, 0.08464781300384328, 0.7877792123673903], 0.006719633426946119), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.34386745978232425, 0.15114271162865245, 0.8692858825227187], [0.34380421639038017, 0.49221567013213885, 0.7577396026981709], 0.007165314050997217), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.7924111084524182, 0.7258577993874293, 0.4074759819413786], [0.004779849956308646, 0.10815467687383273, 0.6365113178025307], 0.004211825485699923), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.15007164548253604, 0.13891454905930323, 0.8854146060893755], [0.2322606392244514, 0.24943996074378283, 0.6529923359002099], 0.004730386058191863), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.178892411148747, 0.8198348637351619, 0.746693545507861], [0.05374276809352163, 0.28259697683790064, 0.9963633829133356], 0.004082068996145551), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.4598055261641393, 0.09042082143339258, 0.5640409504623178], [0.6396964311422774, 0.5845421243866575, 0.5349929592419193], 0.001124964196695102), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.9572197333627137, 0.6426548339644926, 0.6552399747905221], [0.747485027142634, 0.23562083902231445, 0.23561754824795678], 0.0027436327111542455), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.8050706937073655, 0.005451816228509987, 0.6194543923497148], [0.2893241621284488, 0.15343050371415934, 0.45483197600289493], 0.0033418266341768534), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.8372242495059112, 0.1880062901030637, 0.329865236819033], [0.6964852800076098, 0.41732935474694366, 0.12800112947157438], 0.008074470339380045), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.049017597531493595, 0.18258465318130024, 0.04079265592099135], [0.6643772290446401, 0.25419876795775076, 0.0111761955710723], 0.006867801058606931), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.9446211092215213, 0.5773644194640194, 0.41562195208459896], [0.06814741604330621, 0.16749916233272766, 0.7091985108360725], 0.0031542415121338305), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.02765456454632287, 0.1228176034412326, 0.7897475889795191], [0.5848018551658597, 0.4374509112686895, 0.6003922163899991], 0.0010159571328096377), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.09100727263849917, 0.5794817445557756, 0.6291868753365321], [0.04589763740992747, 0.2683934891175124, 0.9312357743393328], 0.004951543147051906), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.7215125397666922, 0.3101399108971986, 0.9120708158457793], [0.036429367243270616, 0.6439997561017691, 0.35149929330560925], 0.0006879838266934451), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.07014988405111922, 0.5286443270294893, 0.24380912629526263], [0.620780571763883, 0.8699240224718836, 0.5642401605234335], 0.0003071608128254314), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, false}(), DerivativesSwitch{false, true, false}()))

Saving Generated Trees

A given fmm! call will typically return a single tree (if performed on the entire system) or two seperate source/target trees (if called on a source and a target). The function call can also be modified to save these trees.

target_filepath = "target_tree"
+    velocity=[true, true], velocity_gradient=[false, false])
(SingleTree{Float64, Vector{Tuple{Main.Body{Float64}, Vector{Float64}}}, 5}(SingleBranch{Float64}[SingleBranch{Float64}(1:100, 8, 2:9, 0, -1, [0.48179464439418035, 0.5006093989915064, 0.5135846646682118], 0.8619975055877627, 0.8619975055877627, [-0.49767449189188073, 0.49767449189188073, -0.49767449189188073, 0.49767449189188073, -0.49767449189188073, 0.49767449189188073], [0.49767449189188073, 0.49767449189188073, 0.49767449189188073], 0.0, 0.0, fill(0.0), [-47.330269153011905 0.0; 0.0 0.0;;; -1.0538836054878957 0.0; 0.0 0.0;;; 0.2581437255104959 0.0; 0.32417697579794513 0.0;;; … ;;; -0.0008324020930813901 0.0; 9.584516978454677e-5 0.0;;; 0.00022605569837265332 0.0; 0.0002001737355761634 0.0;;; -4.788589382345488e-5 0.0; -1.5737437600225223e-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, 0))), SingleBranch{Float64}(1:14, 0, 10:9, 1, 1, [0.23295739844823998, 0.251772153045566, 0.2647474187222715], 0.43099875279388133, 0.43099875279388133, [-0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037], [0.24883724594594037, 0.24883724594594037, 0.24883724594594037], 0.0, 0.0, fill(0.0), [-7.499871222570643 0.0; 0.0 0.0;;; 0.1511775172236864 0.0; 0.0 0.0;;; -0.17159862481145716 0.0; -0.07777421111649871 0.0;;; … ;;; 6.654374417721039e-6 0.0; -1.8320398726639646e-6 0.0;;; -2.831979898952648e-7 0.0; 2.7274227268680686e-6 0.0;;; 2.980421231232696e-7 0.0; -1.6644915713327277e-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.0475716488261706 0.0; 0.0 0.0;;; 0.1195015413964381 0.0; -0.0717249489633772 0.0;;; … ;;; 8.551990292441558e-8 0.0; 1.6785191448426871e-6 0.0;;; -4.1703590062913545e-7 0.0; -6.208746591492499e-7 0.0;;; -3.967431800726344e-7 0.0; -1.8617643569857076e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (139835889330096, 139835889330160, 139835170368720))), SingleBranch{Float64}(15:26, 0, 10:9, 1, 2, [0.7306318903401208, 0.251772153045566, 0.2647474187222715], 0.43099875279388133, 0.43099875279388133, [-0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037], [0.24883724594594037, 0.24883724594594037, 0.24883724594594037], 0.0, 0.0, fill(0.0), [-5.832802684288696 0.0; 0.0 0.0;;; -0.005174662477621744 0.0; 0.0 0.0;;; 0.15820729244290432 0.0; 0.12484604144375797 0.0;;; … ;;; 1.0332065930653744e-6 0.0; 2.1649761195969315e-6 0.0;;; 1.9104310530934324e-7 0.0; -6.94223215499619e-7 0.0;;; -5.3899273439794484e-8 0.0; 1.718878795742581e-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.2486704739166461 0.0; 0.0 0.0;;; -0.04736999921415913 0.0; -0.07388436286704142 0.0;;; … ;;; 3.2349671327322305e-6 0.0; -4.544322257288448e-7 0.0;;; 4.005786149725973e-7 0.0; 4.6634514669915355e-7 0.0;;; -1.2450376693078546e-8 0.0; 4.157089031438735e-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}(27:41, 0, 10:9, 1, 3, [0.23295739844823998, 0.7494466449374467, 0.2647474187222715], 0.43099875279388133, 0.43099875279388133, [-0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037], [0.24883724594594037, 0.24883724594594037, 0.24883724594594037], 0.0, 0.0, fill(0.0), [-6.731488675573531 0.0; 0.0 0.0;;; 0.011400475589984096 0.0; 0.0 0.0;;; 0.1188574386355909 0.0; 0.02054364764978861 0.0;;; … ;;; 1.8724041357624202e-6 0.0; -6.740573259352781e-8 0.0;;; -9.062764401980581e-7 0.0; -1.5028718156848473e-7 0.0;;; -2.656402793225009e-7 0.0; 8.050058723093146e-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.0776597288395956 0.0; 0.0 0.0;;; 0.05043299396916734 0.0; 0.12172661720283631 0.0;;; … ;;; 4.666416807814993e-7 0.0; 1.931492763086916e-7 0.0;;; -3.331198811096547e-10 0.0; -9.752745318068186e-7 0.0;;; 3.0569272167597004e-7 0.0; -1.267750090624772e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (139835767718704, 139835767718704, 139835767727712))), SingleBranch{Float64}(42:51, 0, 10:9, 1, 4, [0.7306318903401208, 0.7494466449374467, 0.2647474187222715], 0.43099875279388133, 0.43099875279388133, [-0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037], [0.24883724594594037, 0.24883724594594037, 0.24883724594594037], 0.0, 0.0, fill(0.0), [-3.3477273311870865 0.0; 0.0 0.0;;; -0.05661650963523443 0.0; 0.0 0.0;;; 0.049045688737453436 0.0; -0.029735712471123377 0.0;;; … ;;; 7.249010232689599e-7 0.0; 5.074419050401502e-7 0.0;;; 8.467912089590641e-7 0.0; -1.2457046357912389e-7 0.0;;; -3.3486020944921064e-8 0.0; -9.682938343398542e-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.13073333033410794 0.0; 0.0 0.0;;; 0.11180913231923639 0.0; -0.10452524002081365 0.0;;; … ;;; -1.015939496560566e-6 0.0; -1.245007835412755e-6 0.0;;; 2.9624679866733807e-6 0.0; 4.0125695067632e-7 0.0;;; -5.708910699960474e-7 0.0; 4.050818336718332e-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}(52:61, 0, 10:9, 1, 5, [0.23295739844823998, 0.251772153045566, 0.7624219106141522], 0.43099875279388133, 0.43099875279388133, [-0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037], [0.24883724594594037, 0.24883724594594037, 0.24883724594594037], 0.0, 0.0, fill(0.0), [-3.768609585113875 0.0; 0.0 0.0;;; -0.035764396889667704 0.0; 0.0 0.0;;; -0.16228372078844444 0.0; 0.23742079553987183 0.0;;; … ;;; 5.056014420212356e-7 0.0; 2.136901791719658e-7 0.0;;; 1.7169448653861497e-6 0.0; -1.3242169437551442e-6 0.0;;; 7.066422746939443e-8 0.0; -6.418001947143367e-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.08253975941558067 0.0; 0.0 0.0;;; 0.09963720788809316 0.0; 0.12010366689568278 0.0;;; … ;;; 1.4850469385811878e-6 0.0; -8.244164692731008e-7 0.0;;; 1.9004462221190685e-6 0.0; 7.403606419704646e-7 0.0;;; -2.4336181277641484e-7 0.0; -7.318122304914546e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (139835175755568, 139835175755616, 139835175755664))), SingleBranch{Float64}(62:71, 0, 10:9, 1, 6, [0.7306318903401208, 0.251772153045566, 0.7624219106141522], 0.43099875279388133, 0.43099875279388133, [-0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037], [0.24883724594594037, 0.24883724594594037, 0.24883724594594037], 0.0, 0.0, fill(0.0), [-6.65369686162497 0.0; 0.0 0.0;;; -0.33832705107850786 0.0; 0.0 0.0;;; 0.03648439580080508 0.0; -0.2893007691915242 0.0;;; … ;;; -9.56553625327193e-7 0.0; -2.2026067778364347e-6 0.0;;; 1.9474701214310728e-6 0.0; 5.648080340882214e-8 0.0;;; -4.831687600971158e-7 0.0; 4.5322428445436293e-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.1120955954162618 0.0; 0.0 0.0;;; 0.018512552533617777 0.0; 0.0663651054717656 0.0;;; … ;;; -2.0236147622849254e-7 0.0; -1.903004423018463e-7 0.0;;; 4.885027079146498e-8 0.0; -9.322703900889062e-8 0.0;;; 1.2652353474943286e-8 0.0; 2.7049821370130747e-9 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (6752, 0, 549755813888))), SingleBranch{Float64}(72:83, 0, 10:9, 1, 7, [0.23295739844823998, 0.7494466449374467, 0.7624219106141522], 0.43099875279388133, 0.43099875279388133, [-0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037], [0.24883724594594037, 0.24883724594594037, 0.24883724594594037], 0.0, 0.0, fill(0.0), [-4.426804767086749 0.0; 0.0 0.0;;; -0.33604471722409424 0.0; 0.0 0.0;;; 0.13234132530752615 0.0; -0.1606673862693206 0.0;;; … ;;; 1.1458834355307562e-6 0.0; -1.4643331074881864e-6 0.0;;; 8.012013073683108e-8 0.0; 7.658765166251638e-7 0.0;;; -2.960351828451514e-7 0.0; -7.415640875943139e-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.08779121028896275 0.0; 0.0 0.0;;; 0.0024206596390341506 0.0; -0.08622261451422439 0.0;;; … ;;; -1.793369218013121e-8 0.0; 2.1248188421746336e-7 0.0;;; 2.0121767805487402e-7 0.0; 2.2685828324326742e-8 0.0;;; 5.565730178295652e-9 0.0; -3.93993876207998e-8 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (139835889330640, 139835889330672, 8589934595))), SingleBranch{Float64}(84:100, 0, 10:9, 1, 8, [0.7306318903401208, 0.7494466449374467, 0.7624219106141522], 0.43099875279388133, 0.43099875279388133, [-0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037], [0.24883724594594037, 0.24883724594594037, 0.24883724594594037], 0.0, 0.0, fill(0.0), [-9.069268025566352 0.0; 0.0 0.0;;; -0.31850085207032125 0.0; 0.0 0.0;;; 0.11944690591762133 0.0; 0.1906943971623366 0.0;;; … ;;; -6.760562163890454e-6 0.0; 3.950077335221274e-6 0.0;;; 6.1795388617324575e-6 0.0; 5.467181615162473e-8 0.0;;; -8.913747733183657e-7 0.0; -4.836258226795493e-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.027307294502641133 0.0; 0.0 0.0;;; 0.11562444322657306 0.0; 0.007173497524932848 0.0;;; … ;;; -7.594532495054794e-7 0.0; -1.4282037498218524e-7 0.0;;; 1.9866669481961943e-7 0.0; 5.027272869736831e-8 0.0;;; 1.6559747198033837e-7 0.0; 5.301068040987261e-8 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (139835716062976, 139835716062976, 139835716062976)))], UnitRange{Int64}[1:1, 2:9], [2, 3, 4, 5, 6, 7, 8, 9], [5, 19, 24, 38, 39, 43, 51, 53, 60, 62  …  20, 29, 45, 52, 54, 58, 76, 82, 83, 99], [42, 27, 84, 52, 1, 85, 28, 62, 63, 86  …  26, 50, 60, 51, 13, 83, 71, 61, 100, 14], Tuple{Main.Body{Float64}, Vector{Float64}}[(Main.Body{Float64}([0.557859214605901, 0.9505794906131003, 0.3404453566099245], 0.009400118805868503, [0.4279926935042637, 0.5792958612811091, 0.7737051496094961, 0.755089351578363]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.4665724969813344, 0.7527119243585907, 0.37990008755992277], 0.008009455207989609, [0.03215302412332721, 0.30401585392069863, 0.39844830923765007, 0.05175624298006909]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.655364218417507, 0.5420094641040476, 0.5949064366117462], 0.00966985017093868, [0.45318687939721236, 0.714833285253085, 0.8014821280258599, 0.0423294989420161]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.46020494037027904, 0.1183049591166877, 0.8455736796675837], 0.009564529506430412, [0.43820774144362595, 0.9864134399623772, 0.5213635902352741, 0.7825393808296219]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.38302007549064776, 0.2610738988132921, 0.38243110265103486], 0.00879050055450757, [0.22661173901939113, 0.6427440609269616, 0.7349829587317898, 0.22440478954784737]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.7675706354227012, 0.6830216562053943, 0.9828525063335046], 0.00030193717698736916, [0.6962187903754538, 0.7485949073619695, 0.6034741867978999, 0.7292786447682762]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.3050424229456674, 0.705503651828581, 0.2161902177875057], 0.0019490720274920647, [0.8645972363970755, 0.5822420927980573, 0.25580361360386095, 0.377504748209773]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.503364457080568, 0.4739102794439455, 0.8882313721777293], 0.007003767860720454, [0.647938265577496, 0.5462740370511083, 0.4481538479575009, 0.42773190354588286]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.6419909113170134, 0.3653123773611996, 0.9713497759206838], 0.0043579616572875434, [0.8917110271026161, 0.6439207339714714, 0.5036025955048534, 0.4437995597691393]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.5660529652176645, 0.9595746577303932, 0.8477086241617172], 0.0035640681857256975, [0.5419453685002806, 0.3427439265408987, 0.032196858193411226, 0.18518731541358224]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.5828631646060379, 0.34651215147388426, 0.5134178926389176], 0.003926179004732325, [0.0458405367409076, 0.3639566243370217, 0.059578557114454256, 0.9962632355591512]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.879080103813595, 0.6025583064984074, 0.23268830772202231], 0.0008940181927595166, [0.42801386665227803, 0.07046185542048555, 0.6951230120676851, 0.6705048319454384]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.1440075538011215, 0.3067113936734345, 0.6436070688247999], 0.007053929291224028, [0.3997191978718325, 0.013760125081811125, 0.11173714288874481, 0.25455238905806765]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.5215814102984935, 0.5258283802989739, 0.3954807490563794], 0.007982359414388152, [0.047033883420560474, 0.9582951819555906, 0.9519215449752892, 0.2567791620738684]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.11881400147042598, 0.011220061279313964, 0.13384862525073793], 0.007187609019877816, [0.7795024398485453, 0.8301151297487197, 0.45918152351480335, 0.25851486922819]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.060512169419791206, 0.7446053256593784, 0.6746307003251895], 0.006094604185275119, [0.906748548471635, 0.11488502630332675, 0.5753095521549699, 0.782094637362603]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.863362101283652, 0.21474704797833044, 0.6503263151978904], 0.00989898695295262, [0.6240429482632586, 0.7906374362304105, 0.7652350423701638, 0.14765296790357707]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.47316473223960553, 0.052497737269379674, 0.8449616700297329], 0.001296483920557443, [0.7700451041031097, 0.7383868768468096, 0.34134557996296455, 0.05993679065745827]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.7449788853899865, 0.5181977584843006, 0.7351146161115111], 0.002153393855190447, [0.4172346693219562, 0.7146733939712135, 0.8797743859260458, 0.7096904549422267]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.0895075005214856, 0.012769070252689807, 0.21717576989610088], 0.007793578077477884, [0.17355753790968675, 0.9885775553410592, 0.05271954177460836, 0.504623980860874]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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), MultiTree{Float64, 2, Tuple{Vector{Tuple{Main.Body{Float64}, Vector{Float64}}}, Vector{Tuple{Main.Vorton{Float64}, Vector{Float64}, Vector{Float64}}}}, 5}(MultiBranch{Float64, 2}[MultiBranch{Float64, 2}(UnitRange{Int64}[1:100, 1:100], 8, 2:9, 0, -1, [0.49801566262999436, 0.49520356617852135, 0.4970227729348794], 0.8574652475891061, 0.8574652475891061, [-0.4950577915163195, 0.4950577915163195, -0.4950577915163195, 0.4950577915163195, -0.4950577915163195, 0.4950577915163195], [0.4950577915163195, 0.4950577915163195, 0.4950577915163195], 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)), (139835154751696, 139835716062976, 0))), MultiBranch{Float64, 2}(UnitRange{Int64}[1:14, 1:12], 0, 10:9, 1, 1, [0.2504867668718346, 0.2476746704203616, 0.24949387717671964], 0.42873262379455307, 0.42873262379455307, [-0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976], [0.24752889575815976, 0.24752889575815976, 0.24752889575815976], 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.2087012212557283 0.0; 0.0 0.0;;; 0.032545008619530684 0.0; -0.10073458467017052 0.0;;; … ;;; -3.0244533257637133e-6 0.0; 2.2205990602711725e-6 0.0;;; 3.4440032384179833e-7 0.0; 1.036378465235622e-6 0.0;;; 1.1078772330034604e-7 0.0; -9.238829485383542e-10 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (0, 0, 139835716062976))), MultiBranch{Float64, 2}(UnitRange{Int64}[15:32, 13:28], 0, 10:9, 1, 2, [0.7455445583881541, 0.2476746704203616, 0.24949387717671964], 0.42873262379455307, 0.42873262379455307, [-0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976], [0.24752889575815976, 0.24752889575815976, 0.24752889575815976], 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.08037135964231336 0.0; -0.0 0.0;;; 0.02983419015864896 0.0; 0.045839845558878545 0.0;;; … ;;; -6.68121229105876e-8 0.0; 1.0788294956364102e-8 0.0;;; 2.014047636416609e-8 0.0; 2.218849378968717e-8 0.0;;; 1.0357976488678172e-9 0.0; -3.9447188056193436e-9 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (139835080278752, 139835080278752, 139835170369136))), MultiBranch{Float64, 2}(UnitRange{Int64}[33:42, 29:38], 0, 10:9, 1, 3, [0.2504867668718346, 0.7427324619366811, 0.24949387717671964], 0.42873262379455307, 0.42873262379455307, [-0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976], [0.24752889575815976, 0.24752889575815976, 0.24752889575815976], 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.005684750881457034 0.0; 0.0 0.0;;; 0.10704406745359585 0.0; -0.09016844141035768 0.0;;; … ;;; 1.1261847899409718e-6 0.0; 1.9251347681431154e-6 0.0;;; -8.564267080796984e-8 0.0; -3.0434887744530454e-8 0.0;;; -4.1907926914274465e-7 0.0; 1.570655271058279e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (139835907265104, 139835907265104, -281060337688875))), MultiBranch{Float64, 2}(UnitRange{Int64}[43:55, 39:45], 0, 10:9, 1, 4, [0.7455445583881541, 0.7427324619366811, 0.24949387717671964], 0.42873262379455307, 0.42873262379455307, [-0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976], [0.24752889575815976, 0.24752889575815976, 0.24752889575815976], 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.16612807490787934 0.0; -0.0 0.0;;; 0.08268402123633084 0.0; 0.09953827541668359 0.0;;; … ;;; -3.031961319705402e-6 0.0; 1.6908105173106713e-6 0.0;;; 1.8102007820043372e-6 0.0; 6.998654255063502e-7 0.0;;; -9.632481742411246e-8 0.0; -2.865884671640096e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (139835914547472, 139835914321920, 139835315106328))), MultiBranch{Float64, 2}(UnitRange{Int64}[56:66, 46:60], 0, 10:9, 1, 5, [0.2504867668718346, 0.2476746704203616, 0.7445516686930391], 0.42873262379455307, 0.42873262379455307, [-0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976], [0.24752889575815976, 0.24752889575815976, 0.24752889575815976], 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.04519592028648003 0.0; -0.0 0.0;;; 0.06242853348956448 0.0; -0.11141610116275585 0.0;;; … ;;; 1.0603477834477849e-6 0.0; -4.095341527385005e-8 0.0;;; 2.2784818233315364e-7 0.0; -4.461965845635977e-7 0.0;;; 1.5704628071710524e-7 0.0; 2.3560248012414177e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (0, 0, 0))), MultiBranch{Float64, 2}(UnitRange{Int64}[67:76, 61:73], 0, 10:9, 1, 6, [0.7455445583881541, 0.2476746704203616, 0.7445516686930391], 0.42873262379455307, 0.42873262379455307, [-0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976], [0.24752889575815976, 0.24752889575815976, 0.24752889575815976], 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.1675191471527402 0.0; -0.0 0.0;;; -0.0312326202384185 0.0; -0.012016009310730989 0.0;;; … ;;; -3.88205041167155e-8 0.0; -7.661592791364743e-8 0.0;;; -8.888241440564631e-10 0.0; -8.708252780808858e-9 0.0;;; 9.178430149748747e-11 0.0; -3.374678967008055e-10 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (139835914322816, 139835829213856, 2886218027744))), MultiBranch{Float64, 2}(UnitRange{Int64}[77:86, 74:88], 0, 10:9, 1, 7, [0.2504867668718346, 0.7427324619366811, 0.7445516686930391], 0.42873262379455307, 0.42873262379455307, [-0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976], [0.24752889575815976, 0.24752889575815976, 0.24752889575815976], 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.11536479335650705 0.0; 0.0 0.0;;; 0.08162535869045275 0.0; -0.0797397471166677 0.0;;; … ;;; -5.740072039305257e-7 0.0; -6.157299676352652e-7 0.0;;; -8.141128652993099e-7 0.0; -3.8078853256653077e-8 0.0;;; -1.204676933958677e-7 0.0; 1.071539282470548e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (139835889026305, 139835168928784, 415258609805))), MultiBranch{Float64, 2}(UnitRange{Int64}[87:100, 89:100], 0, 10:9, 1, 8, [0.7455445583881541, 0.7427324619366811, 0.7445516686930391], 0.42873262379455307, 0.42873262379455307, [-0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976], [0.24752889575815976, 0.24752889575815976, 0.24752889575815976], 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.08931169390251703 0.0; 0.0 0.0;;; 0.05003881398609423 0.0; 0.1058375874872798 0.0;;; … ;;; -1.4574817802585404e-7 0.0; -3.657489693104403e-8 0.0;;; -1.3597606331520128e-7 0.0; -6.856603553560549e-7 0.0;;; 1.4726975614088464e-7 0.0; -1.0905852828131589e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (139835767718704, 139835767718704, 142273203075)))], 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], [13, 15, 20, 41, 44, 49, 55, 62, 64, 65  …  22, 23, 24, 33, 54, 59, 66, 74, 75, 92]), ([67, 87, 68, 69, 77, 43, 56, 57, 44, 88  …  12, 55, 30, 99, 31, 32, 13, 66, 14, 100], [13, 89, 14, 61, 62, 46, 47, 39, 48, 74  …  59, 100, 72, 28, 12, 45, 60, 88, 73, 38]), (Tuple{Main.Body{Float64}, Vector{Float64}}[(Main.Body{Float64}([0.9191811597933967, 0.42601923740838954, 0.7465863168484385], 0.00551624732815934, [0.2538490889415096, 0.33415153638191886, 0.4273278808735992, 0.867547200255958]), [85.35060337805587, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.3505458214588266, 0.9303323763821093, 0.9594335994071538]), [87.38882482263334, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.3548676566528912, 0.13179829123412257, 0.9411330896079791]), [101.52858282491177, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.45048364263035023, 0.8913769757127503, 0.7110385498005108]), [103.43268574590765, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.753277849991045, 0.7295997282994879, 0.16238042514897943]), [93.32127662551395, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.5997019277391098, 0.4536933650141408, 0.3249034202416199]), [69.46581263668925, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.7468540519107453, 0.09667869010406493, 0.45910253524716227]), [105.64593566408001, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.821283430881433, 0.5644095995557176, 0.030378874865931382]), [82.48342248428222, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.4379647602849879, 0.23146826213384353, 0.6471427793654219]), [89.54825552075133, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.2404468114408953, 0.2221494346545283, 0.5096964769051421]), [101.3359036520798, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.0758000769135273, 0.3487409265919944, 0.30331684418426996]), [97.45103071097368, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.881611313975086, 0.009146364153274189, 0.9806631480861379]), [92.64727615051551, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.17022568799250704, 0.2638800824351736, 0.6514229873225715]), [81.30366296307194, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.22271994897768166, 0.6048365813194562, 0.052884966374337816]), [95.25179822463329, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.31694750597495125, 0.29912838760350746, 0.623451826337517]), [102.86206571255629, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.7285911206511895, 0.03773808039378912, 0.04331783284230861]), [105.42062571549425, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.4603052801344075, 0.9298297825042643, 0.358424742237733]), [89.10879222107356, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.8609926737185056, 0.1638092551671958, 0.22646456871949416]), [85.06258300857247, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.12630836876865192, 0.9645167219705122, 0.8221674765296613]), [87.35657697788763, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.15911501872567757, 0.5356210909593669, 0.6799181470255188]), [92.93042970237086, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0  …  0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0])], Tuple{Main.Vorton{Float64}, Vector{Float64}, Vector{Float64}}[(Main.Vorton{Float64}([0.6956808381416713, 0.4853785553982539, 0.4648049213765313], [0.7054270031323241, 0.70014541220553, 0.49839208412207514], 0.008389531007170116), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.6528326495428173, 0.8783095326823105, 0.6955937752833566], [0.992073216064829, 0.03702391218002421, 0.052040147154059024], 0.008559673062325765), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.9077908593045806, 0.3939808726568609, 0.1924335604037214], [0.5681911381173306, 0.06084849139338322, 0.9611920275200003], 0.00920463305134842), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.680305220184172, 0.45142673639459907, 0.6565158730370251], [0.9871517007068787, 0.536191701519787, 0.8044608001295422], 0.01032776912661538), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.5772900725131546, 0.19456471074413395, 0.9691695971486246], [0.029308796906382772, 0.237901194890202, 0.8225322140924277], 0.005855920250376647), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.07881482026287556, 0.16694384061777157, 0.7453082600322598], [0.36751517071734363, 0.08464781300384328, 0.7877792123673903], 0.006719633426946119), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.34386745978232425, 0.15114271162865245, 0.8692858825227187], [0.34380421639038017, 0.49221567013213885, 0.7577396026981709], 0.007165314050997217), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.7924111084524182, 0.7258577993874293, 0.4074759819413786], [0.004779849956308646, 0.10815467687383273, 0.6365113178025307], 0.004211825485699923), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.15007164548253604, 0.13891454905930323, 0.8854146060893755], [0.2322606392244514, 0.24943996074378283, 0.6529923359002099], 0.004730386058191863), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.178892411148747, 0.8198348637351619, 0.746693545507861], [0.05374276809352163, 0.28259697683790064, 0.9963633829133356], 0.004082068996145551), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.4598055261641393, 0.09042082143339258, 0.5640409504623178], [0.6396964311422774, 0.5845421243866575, 0.5349929592419193], 0.001124964196695102), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.9572197333627137, 0.6426548339644926, 0.6552399747905221], [0.747485027142634, 0.23562083902231445, 0.23561754824795678], 0.0027436327111542455), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.8050706937073655, 0.005451816228509987, 0.6194543923497148], [0.2893241621284488, 0.15343050371415934, 0.45483197600289493], 0.0033418266341768534), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.8372242495059112, 0.1880062901030637, 0.329865236819033], [0.6964852800076098, 0.41732935474694366, 0.12800112947157438], 0.008074470339380045), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.049017597531493595, 0.18258465318130024, 0.04079265592099135], [0.6643772290446401, 0.25419876795775076, 0.0111761955710723], 0.006867801058606931), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.9446211092215213, 0.5773644194640194, 0.41562195208459896], [0.06814741604330621, 0.16749916233272766, 0.7091985108360725], 0.0031542415121338305), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.02765456454632287, 0.1228176034412326, 0.7897475889795191], [0.5848018551658597, 0.4374509112686895, 0.6003922163899991], 0.0010159571328096377), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.09100727263849917, 0.5794817445557756, 0.6291868753365321], [0.04589763740992747, 0.2683934891175124, 0.9312357743393328], 0.004951543147051906), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.7215125397666922, 0.3101399108971986, 0.9120708158457793], [0.036429367243270616, 0.6439997561017691, 0.35149929330560925], 0.0006879838266934451), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.07014988405111922, 0.5286443270294893, 0.24380912629526263], [0.620780571763883, 0.8699240224718836, 0.5642401605234335], 0.0003071608128254314), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, false}(), DerivativesSwitch{false, true, false}()))

Saving Generated Trees

A given fmm! call will typically return a single tree (if performed on the entire system) or two seperate source/target trees (if called on a source and a target). The function call can also be modified to save these trees.

target_filepath = "target_tree"
 source_filepath = "source_tree"
 
 target_tree, source_tree = fmm.fmm!((target_one, target_two), source_one;
     save_tree_target=true, save_name_target=target_filepath,
-    save_tree_source=true, save_name_source=source_filepath)
(SingleTree{Float64, Vector{Tuple{Main.Body{Float64}, Vector{Float64}}}, 5}(SingleBranch{Float64}[SingleBranch{Float64}(1:100, 8, 2:9, 0, -1, [0.48179464439418035, 0.5006093989915064, 0.5135846646682118], 0.8619975055877627, 0.8619975055877627, [-0.49767449189188073, 0.49767449189188073, -0.49767449189188073, 0.49767449189188073, -0.49767449189188073, 0.49767449189188073], [0.49767449189188073, 0.49767449189188073, 0.49767449189188073], 0.0, 0.0, fill(0.0), [-47.330269153011905 0.0; 0.0 0.0;;; -1.0538836054878957 0.0; 0.0 0.0;;; 0.2581437255104959 0.0; 0.32417697579794513 0.0;;; … ;;; -0.0008324020930813901 0.0; 9.584516978454677e-5 0.0;;; 0.00022605569837265332 0.0; 0.0002001737355761634 0.0;;; -4.788589382345488e-5 0.0; -1.5737437600225223e-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)), (140658923270976, 140659292046128, 140655883976704))), SingleBranch{Float64}(1:14, 0, 10:9, 1, 1, [0.23295739844823998, 0.251772153045566, 0.2647474187222715], 0.43099875279388133, 0.43099875279388133, [-0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037], [0.24883724594594037, 0.24883724594594037, 0.24883724594594037], 0.0, 0.0, fill(0.0), [-7.499871222570643 0.0; 0.0 0.0;;; 0.1511775172236864 0.0; 0.0 0.0;;; -0.17159862481145716 0.0; -0.07777421111649871 0.0;;; … ;;; 6.654374417721039e-6 0.0; -1.8320398726639646e-6 0.0;;; -2.831979898952648e-7 0.0; 2.7274227268680686e-6 0.0;;; 2.980421231232696e-7 0.0; -1.6644915713327277e-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.0475716488261706 0.0; 0.0 0.0;;; 0.1195015413964381 0.0; -0.0717249489633772 0.0;;; … ;;; 8.551990292441558e-8 0.0; 1.6785191448426871e-6 0.0;;; -4.1703590062913545e-7 0.0; -6.208746591492499e-7 0.0;;; -3.967431800726344e-7 0.0; -1.8617643569857076e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (140658679665520, 140658679665552, 140659292055136))), SingleBranch{Float64}(15:26, 0, 10:9, 1, 2, [0.7306318903401208, 0.251772153045566, 0.2647474187222715], 0.43099875279388133, 0.43099875279388133, [-0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037], [0.24883724594594037, 0.24883724594594037, 0.24883724594594037], 0.0, 0.0, fill(0.0), [-5.832802684288696 0.0; 0.0 0.0;;; -0.005174662477621744 0.0; 0.0 0.0;;; 0.15820729244290432 0.0; 0.12484604144375797 0.0;;; … ;;; 1.0332065930653744e-6 0.0; 2.1649761195969315e-6 0.0;;; 1.9104310530934324e-7 0.0; -6.94223215499619e-7 0.0;;; -5.3899273439794484e-8 0.0; 1.718878795742581e-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.2486704739166461 0.0; 0.0 0.0;;; -0.04736999921415913 0.0; -0.07388436286704142 0.0;;; … ;;; 3.2349671327322305e-6 0.0; -4.544322257288448e-7 0.0;;; 4.005786149725973e-7 0.0; 4.6634514669915355e-7 0.0;;; -1.2450376693078546e-8 0.0; 4.157089031438735e-8 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (0, 0, 414864795464))), SingleBranch{Float64}(27:41, 0, 10:9, 1, 3, [0.23295739844823998, 0.7494466449374467, 0.2647474187222715], 0.43099875279388133, 0.43099875279388133, [-0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037], [0.24883724594594037, 0.24883724594594037, 0.24883724594594037], 0.0, 0.0, fill(0.0), [-6.731488675573531 0.0; 0.0 0.0;;; 0.011400475589984096 0.0; 0.0 0.0;;; 0.1188574386355909 0.0; 0.02054364764978861 0.0;;; … ;;; 1.8724041357624202e-6 0.0; -6.740573259352781e-8 0.0;;; -9.062764401980581e-7 0.0; -1.5028718156848473e-7 0.0;;; -2.656402793225009e-7 0.0; 8.050058723093146e-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.0776597288395956 0.0; 0.0 0.0;;; 0.05043299396916734 0.0; 0.12172661720283631 0.0;;; … ;;; 4.666416807814993e-7 0.0; 1.931492763086916e-7 0.0;;; -3.331198811096547e-10 0.0; -9.752745318068186e-7 0.0;;; 3.0569272167597004e-7 0.0; -1.267750090624772e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (3, 4, 0))), SingleBranch{Float64}(42:51, 0, 10:9, 1, 4, [0.7306318903401208, 0.7494466449374467, 0.2647474187222715], 0.43099875279388133, 0.43099875279388133, [-0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037], [0.24883724594594037, 0.24883724594594037, 0.24883724594594037], 0.0, 0.0, fill(0.0), [-3.3477273311870865 0.0; 0.0 0.0;;; -0.05661650963523443 0.0; 0.0 0.0;;; 0.049045688737453436 0.0; -0.029735712471123377 0.0;;; … ;;; 7.249010232689599e-7 0.0; 5.074419050401502e-7 0.0;;; 8.467912089590641e-7 0.0; -1.2457046357912389e-7 0.0;;; -3.3486020944921064e-8 0.0; -9.682938343398542e-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.13073333033410794 0.0; 0.0 0.0;;; 0.11180913231923639 0.0; -0.10452524002081365 0.0;;; … ;;; -1.015939496560566e-6 0.0; -1.245007835412755e-6 0.0;;; 2.9624679866733807e-6 0.0; 4.0125695067632e-7 0.0;;; -5.708910699960474e-7 0.0; 4.050818336718332e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (140659438875649, 140659279441296, 433462360018))), SingleBranch{Float64}(52:61, 0, 10:9, 1, 5, [0.23295739844823998, 0.251772153045566, 0.7624219106141522], 0.43099875279388133, 0.43099875279388133, [-0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037], [0.24883724594594037, 0.24883724594594037, 0.24883724594594037], 0.0, 0.0, fill(0.0), [-3.768609585113875 0.0; 0.0 0.0;;; -0.035764396889667704 0.0; 0.0 0.0;;; -0.16228372078844444 0.0; 0.23742079553987183 0.0;;; … ;;; 5.056014420212356e-7 0.0; 2.136901791719658e-7 0.0;;; 1.7169448653861497e-6 0.0; -1.3242169437551442e-6 0.0;;; 7.066422746939443e-8 0.0; -6.418001947143367e-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.08253975941558067 0.0; 0.0 0.0;;; 0.09963720788809316 0.0; 0.12010366689568278 0.0;;; … ;;; 1.4850469385811878e-6 0.0; -8.244164692731008e-7 0.0;;; 1.9004462221190685e-6 0.0; 7.403606419704646e-7 0.0;;; -2.4336181277641484e-7 0.0; -7.318122304914546e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (140658602017024, 140658676917328, 140659237130816))), SingleBranch{Float64}(62:71, 0, 10:9, 1, 6, [0.7306318903401208, 0.251772153045566, 0.7624219106141522], 0.43099875279388133, 0.43099875279388133, [-0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037], [0.24883724594594037, 0.24883724594594037, 0.24883724594594037], 0.0, 0.0, fill(0.0), [-6.65369686162497 0.0; 0.0 0.0;;; -0.33832705107850786 0.0; 0.0 0.0;;; 0.03648439580080508 0.0; -0.2893007691915242 0.0;;; … ;;; -9.56553625327193e-7 0.0; -2.2026067778364347e-6 0.0;;; 1.9474701214310728e-6 0.0; 5.648080340882214e-8 0.0;;; -4.831687600971158e-7 0.0; 4.5322428445436293e-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.1120955954162618 0.0; 0.0 0.0;;; 0.018512552533617777 0.0; 0.0663651054717656 0.0;;; … ;;; -2.0236147622849254e-7 0.0; -1.903004423018463e-7 0.0;;; 4.885027079146498e-8 0.0; -9.322703900889062e-8 0.0;;; 1.2652353474943286e-8 0.0; 2.7049821370130747e-9 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (140658647627952, 140658647628000, 140658647628048))), SingleBranch{Float64}(72:83, 0, 10:9, 1, 7, [0.23295739844823998, 0.7494466449374467, 0.7624219106141522], 0.43099875279388133, 0.43099875279388133, [-0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037], [0.24883724594594037, 0.24883724594594037, 0.24883724594594037], 0.0, 0.0, fill(0.0), [-4.426804767086749 0.0; 0.0 0.0;;; -0.33604471722409424 0.0; 0.0 0.0;;; 0.13234132530752615 0.0; -0.1606673862693206 0.0;;; … ;;; 1.1458834355307562e-6 0.0; -1.4643331074881864e-6 0.0;;; 8.012013073683108e-8 0.0; 7.658765166251638e-7 0.0;;; -2.960351828451514e-7 0.0; -7.415640875943139e-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.08779121028896275 0.0; 0.0 0.0;;; 0.0024206596390341506 0.0; -0.08622261451422439 0.0;;; … ;;; -1.793369218013121e-8 0.0; 2.1248188421746336e-7 0.0;;; 2.0121767805487402e-7 0.0; 2.2685828324326742e-8 0.0;;; 5.565730178295652e-9 0.0; -3.93993876207998e-8 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (140659438647552, 140659344849808, 140659438648448))), SingleBranch{Float64}(84:100, 0, 10:9, 1, 8, [0.7306318903401208, 0.7494466449374467, 0.7624219106141522], 0.43099875279388133, 0.43099875279388133, [-0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037], [0.24883724594594037, 0.24883724594594037, 0.24883724594594037], 0.0, 0.0, fill(0.0), [-9.069268025566352 0.0; 0.0 0.0;;; -0.31850085207032125 0.0; 0.0 0.0;;; 0.11944690591762133 0.0; 0.1906943971623366 0.0;;; … ;;; -6.760562163890454e-6 0.0; 3.950077335221274e-6 0.0;;; 6.1795388617324575e-6 0.0; 5.467181615162473e-8 0.0;;; -8.913747733183657e-7 0.0; -4.836258226795493e-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.027307294502641133 0.0; 0.0 0.0;;; 0.11562444322657306 0.0; 0.007173497524932848 0.0;;; … ;;; -7.594532495054794e-7 0.0; -1.4282037498218524e-7 0.0;;; 1.9866669481961943e-7 0.0; 5.027272869736831e-8 0.0;;; 1.6559747198033837e-7 0.0; 5.301068040987261e-8 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (140659267134224, 140658602017088, 140659438655616)))], UnitRange{Int64}[1:1, 2:9], [2, 3, 4, 5, 6, 7, 8, 9], [5, 19, 24, 38, 39, 43, 51, 53, 60, 62  …  20, 29, 45, 52, 54, 58, 76, 82, 83, 99], [42, 27, 84, 52, 1, 85, 28, 62, 63, 86  …  26, 50, 60, 51, 13, 83, 71, 61, 100, 14], Tuple{Main.Body{Float64}, Vector{Float64}}[(Main.Body{Float64}([0.557859214605901, 0.9505794906131003, 0.3404453566099245], 0.009400118805868503, [0.4279926935042637, 0.5792958612811091, 0.7737051496094961, 0.755089351578363]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.4665724969813344, 0.7527119243585907, 0.37990008755992277], 0.008009455207989609, [0.03215302412332721, 0.30401585392069863, 0.39844830923765007, 0.05175624298006909]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.655364218417507, 0.5420094641040476, 0.5949064366117462], 0.00966985017093868, [0.45318687939721236, 0.714833285253085, 0.8014821280258599, 0.0423294989420161]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.46020494037027904, 0.1183049591166877, 0.8455736796675837], 0.009564529506430412, [0.43820774144362595, 0.9864134399623772, 0.5213635902352741, 0.7825393808296219]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.38302007549064776, 0.2610738988132921, 0.38243110265103486], 0.00879050055450757, [0.22661173901939113, 0.6427440609269616, 0.7349829587317898, 0.22440478954784737]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.7675706354227012, 0.6830216562053943, 0.9828525063335046], 0.00030193717698736916, [0.6962187903754538, 0.7485949073619695, 0.6034741867978999, 0.7292786447682762]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.3050424229456674, 0.705503651828581, 0.2161902177875057], 0.0019490720274920647, [0.8645972363970755, 0.5822420927980573, 0.25580361360386095, 0.377504748209773]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.503364457080568, 0.4739102794439455, 0.8882313721777293], 0.007003767860720454, [0.647938265577496, 0.5462740370511083, 0.4481538479575009, 0.42773190354588286]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.6419909113170134, 0.3653123773611996, 0.9713497759206838], 0.0043579616572875434, [0.8917110271026161, 0.6439207339714714, 0.5036025955048534, 0.4437995597691393]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.5660529652176645, 0.9595746577303932, 0.8477086241617172], 0.0035640681857256975, [0.5419453685002806, 0.3427439265408987, 0.032196858193411226, 0.18518731541358224]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.5828631646060379, 0.34651215147388426, 0.5134178926389176], 0.003926179004732325, [0.0458405367409076, 0.3639566243370217, 0.059578557114454256, 0.9962632355591512]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.879080103813595, 0.6025583064984074, 0.23268830772202231], 0.0008940181927595166, [0.42801386665227803, 0.07046185542048555, 0.6951230120676851, 0.6705048319454384]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.1440075538011215, 0.3067113936734345, 0.6436070688247999], 0.007053929291224028, [0.3997191978718325, 0.013760125081811125, 0.11173714288874481, 0.25455238905806765]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.5215814102984935, 0.5258283802989739, 0.3954807490563794], 0.007982359414388152, [0.047033883420560474, 0.9582951819555906, 0.9519215449752892, 0.2567791620738684]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.11881400147042598, 0.011220061279313964, 0.13384862525073793], 0.007187609019877816, [0.7795024398485453, 0.8301151297487197, 0.45918152351480335, 0.25851486922819]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.060512169419791206, 0.7446053256593784, 0.6746307003251895], 0.006094604185275119, [0.906748548471635, 0.11488502630332675, 0.5753095521549699, 0.782094637362603]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.863362101283652, 0.21474704797833044, 0.6503263151978904], 0.00989898695295262, [0.6240429482632586, 0.7906374362304105, 0.7652350423701638, 0.14765296790357707]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.47316473223960553, 0.052497737269379674, 0.8449616700297329], 0.001296483920557443, [0.7700451041031097, 0.7383868768468096, 0.34134557996296455, 0.05993679065745827]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.7449788853899865, 0.5181977584843006, 0.7351146161115111], 0.002153393855190447, [0.4172346693219562, 0.7146733939712135, 0.8797743859260458, 0.7096904549422267]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.0895075005214856, 0.012769070252689807, 0.21717576989610088], 0.007793578077477884, [0.17355753790968675, 0.9885775553410592, 0.05271954177460836, 0.504623980860874]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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), MultiTree{Float64, 2, Tuple{Vector{Tuple{Main.Body{Float64}, Vector{Float64}}}, Vector{Tuple{Main.Vorton{Float64}, Vector{Float64}, Vector{Float64}}}}, 5}(MultiBranch{Float64, 2}[MultiBranch{Float64, 2}(UnitRange{Int64}[1:100, 1:100], 8, 2:9, 0, -1, [0.49801566262999436, 0.49520356617852135, 0.4970227729348794], 0.8574652475891061, 0.8574652475891061, [-0.4950577915163195, 0.4950577915163195, -0.4950577915163195, 0.4950577915163195, -0.4950577915163195, 0.4950577915163195], [0.4950577915163195, 0.4950577915163195, 0.4950577915163195], 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)), (0, 0, 416606929415))), MultiBranch{Float64, 2}(UnitRange{Int64}[1:14, 1:12], 0, 10:9, 1, 1, [0.2504867668718346, 0.2476746704203616, 0.24949387717671964], 0.42873262379455307, 0.42873262379455307, [-0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976], [0.24752889575815976, 0.24752889575815976, 0.24752889575815976], 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.2087012212557283 0.0; 0.0 0.0;;; 0.032545008619530684 0.0; -0.10073458467017052 0.0;;; … ;;; -3.0244533257637133e-6 0.0; 2.2205990602711725e-6 0.0;;; 3.4440032384179833e-7 0.0; 1.036378465235622e-6 0.0;;; 1.1078772330034604e-7 0.0; -9.238829485383542e-10 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (0, 0, 413041404968))), MultiBranch{Float64, 2}(UnitRange{Int64}[15:32, 13:28], 0, 10:9, 1, 2, [0.7455445583881541, 0.2476746704203616, 0.24949387717671964], 0.42873262379455307, 0.42873262379455307, [-0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976], [0.24752889575815976, 0.24752889575815976, 0.24752889575815976], 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.08037135964231336 0.0; -0.0 0.0;;; 0.02983419015864896 0.0; 0.045839845558878545 0.0;;; … ;;; -6.68121229105876e-8 0.0; 1.0788294956364102e-8 0.0;;; 2.014047636416609e-8 0.0; 2.218849378968717e-8 0.0;;; 1.0357976488678172e-9 0.0; -3.9447188056193436e-9 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (12, 13, 17))), MultiBranch{Float64, 2}(UnitRange{Int64}[33:42, 29:38], 0, 10:9, 1, 3, [0.2504867668718346, 0.7427324619366811, 0.24949387717671964], 0.42873262379455307, 0.42873262379455307, [-0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976], [0.24752889575815976, 0.24752889575815976, 0.24752889575815976], 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.005684750881457034 0.0; 0.0 0.0;;; 0.10704406745359585 0.0; -0.09016844141035768 0.0;;; … ;;; 1.1261847899409718e-6 0.0; 1.9251347681431154e-6 0.0;;; -8.564267080796984e-8 0.0; -3.0434887744530454e-8 0.0;;; -4.1907926914274465e-7 0.0; 1.570655271058279e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (0, 0, 412316860416))), MultiBranch{Float64, 2}(UnitRange{Int64}[43:55, 39:45], 0, 10:9, 1, 4, [0.7455445583881541, 0.7427324619366811, 0.24949387717671964], 0.42873262379455307, 0.42873262379455307, [-0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976], [0.24752889575815976, 0.24752889575815976, 0.24752889575815976], 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.16612807490787934 0.0; -0.0 0.0;;; 0.08268402123633084 0.0; 0.09953827541668359 0.0;;; … ;;; -3.031961319705402e-6 0.0; 1.6908105173106713e-6 0.0;;; 1.8102007820043372e-6 0.0; 6.998654255063502e-7 0.0;;; -9.632481742411246e-8 0.0; -2.865884671640096e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (140658679841392, 140658679841424, 140659438650240))), MultiBranch{Float64, 2}(UnitRange{Int64}[56:66, 46:60], 0, 10:9, 1, 5, [0.2504867668718346, 0.2476746704203616, 0.7445516686930391], 0.42873262379455307, 0.42873262379455307, [-0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976], [0.24752889575815976, 0.24752889575815976, 0.24752889575815976], 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.04519592028648003 0.0; -0.0 0.0;;; 0.06242853348956448 0.0; -0.11141610116275585 0.0;;; … ;;; 1.0603477834477849e-6 0.0; -4.095341527385005e-8 0.0;;; 2.2784818233315364e-7 0.0; -4.461965845635977e-7 0.0;;; 1.5704628071710524e-7 0.0; 2.3560248012414177e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (140658679842800, 140658679842832, 140659438660992))), MultiBranch{Float64, 2}(UnitRange{Int64}[67:76, 61:73], 0, 10:9, 1, 6, [0.7455445583881541, 0.2476746704203616, 0.7445516686930391], 0.42873262379455307, 0.42873262379455307, [-0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976], [0.24752889575815976, 0.24752889575815976, 0.24752889575815976], 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.1675191471527402 0.0; -0.0 0.0;;; -0.0312326202384185 0.0; -0.012016009310730989 0.0;;; … ;;; -3.88205041167155e-8 0.0; -7.661592791364743e-8 0.0;;; -8.888241440564631e-10 0.0; -8.708252780808858e-9 0.0;;; 9.178430149748747e-11 0.0; -3.374678967008055e-10 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (140659292046128, 140659292054032, 140659292046128))), MultiBranch{Float64, 2}(UnitRange{Int64}[77:86, 74:88], 0, 10:9, 1, 7, [0.2504867668718346, 0.7427324619366811, 0.7445516686930391], 0.42873262379455307, 0.42873262379455307, [-0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976], [0.24752889575815976, 0.24752889575815976, 0.24752889575815976], 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.11536479335650705 0.0; 0.0 0.0;;; 0.08162535869045275 0.0; -0.0797397471166677 0.0;;; … ;;; -5.740072039305257e-7 0.0; -6.157299676352652e-7 0.0;;; -8.141128652993099e-7 0.0; -3.8078853256653077e-8 0.0;;; -1.204676933958677e-7 0.0; 1.071539282470548e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (140659438875344, 140659438875344, 140659438687424))), MultiBranch{Float64, 2}(UnitRange{Int64}[87:100, 89:100], 0, 10:9, 1, 8, [0.7455445583881541, 0.7427324619366811, 0.7445516686930391], 0.42873262379455307, 0.42873262379455307, [-0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976], [0.24752889575815976, 0.24752889575815976, 0.24752889575815976], 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.08931169390251703 0.0; 0.0 0.0;;; 0.05003881398609423 0.0; 0.1058375874872798 0.0;;; … ;;; -1.4574817802585404e-7 0.0; -3.657489693104403e-8 0.0;;; -1.3597606331520128e-7 0.0; -6.856603553560549e-7 0.0;;; 1.4726975614088464e-7 0.0; -1.0905852828131589e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (140659292054032, 140659292046128, 140659438697728)))], 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], [13, 15, 20, 41, 44, 49, 55, 62, 64, 65  …  22, 23, 24, 33, 54, 59, 66, 74, 75, 92]), ([67, 87, 68, 69, 77, 43, 56, 57, 44, 88  …  12, 55, 30, 99, 31, 32, 13, 66, 14, 100], [13, 89, 14, 61, 62, 46, 47, 39, 48, 74  …  59, 100, 72, 28, 12, 45, 60, 88, 73, 38]), (Tuple{Main.Body{Float64}, Vector{Float64}}[(Main.Body{Float64}([0.9191811597933967, 0.42601923740838954, 0.7465863168484385], 0.00551624732815934, [0.2538490889415096, 0.33415153638191886, 0.4273278808735992, 0.867547200255958]), [170.70120675611167, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.3505458214588266, 0.9303323763821093, 0.9594335994071538]), [174.77764964526665, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.3548676566528912, 0.13179829123412257, 0.9411330896079791]), [203.0571656498236, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.45048364263035023, 0.8913769757127503, 0.7110385498005108]), [206.86537149181515, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.753277849991045, 0.7295997282994879, 0.16238042514897943]), [186.6425532510278, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.5997019277391098, 0.4536933650141408, 0.3249034202416199]), [138.93162527337853, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.7468540519107453, 0.09667869010406493, 0.45910253524716227]), [211.29187132816003, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.821283430881433, 0.5644095995557176, 0.030378874865931382]), [164.96684496856452, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.4379647602849879, 0.23146826213384353, 0.6471427793654219]), [179.0965110415026, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.2404468114408953, 0.2221494346545283, 0.5096964769051421]), [202.67180730415947, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.0758000769135273, 0.3487409265919944, 0.30331684418426996]), [194.90206142194737, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.881611313975086, 0.009146364153274189, 0.9806631480861379]), [185.29455230103096, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.17022568799250704, 0.2638800824351736, 0.6514229873225715]), [162.60732592614377, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.22271994897768166, 0.6048365813194562, 0.052884966374337816]), [190.5035964492667, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.31694750597495125, 0.29912838760350746, 0.623451826337517]), [205.7241314251126, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.7285911206511895, 0.03773808039378912, 0.04331783284230861]), [210.84125143098854, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.4603052801344075, 0.9298297825042643, 0.358424742237733]), [178.21758444214709, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.8609926737185056, 0.1638092551671958, 0.22646456871949416]), [170.1251660171448, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.12630836876865192, 0.9645167219705122, 0.8221674765296613]), [174.71315395577525, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.15911501872567757, 0.5356210909593669, 0.6799181470255188]), [185.86085940474177, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0  …  0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0])], Tuple{Main.Vorton{Float64}, Vector{Float64}, Vector{Float64}}[(Main.Vorton{Float64}([0.6956808381416713, 0.4853785553982539, 0.4648049213765313], [0.7054270031323241, 0.70014541220553, 0.49839208412207514], 0.008389531007170116), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.6528326495428173, 0.8783095326823105, 0.6955937752833566], [0.992073216064829, 0.03702391218002421, 0.052040147154059024], 0.008559673062325765), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.9077908593045806, 0.3939808726568609, 0.1924335604037214], [0.5681911381173306, 0.06084849139338322, 0.9611920275200003], 0.00920463305134842), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.680305220184172, 0.45142673639459907, 0.6565158730370251], [0.9871517007068787, 0.536191701519787, 0.8044608001295422], 0.01032776912661538), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.5772900725131546, 0.19456471074413395, 0.9691695971486246], [0.029308796906382772, 0.237901194890202, 0.8225322140924277], 0.005855920250376647), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.07881482026287556, 0.16694384061777157, 0.7453082600322598], [0.36751517071734363, 0.08464781300384328, 0.7877792123673903], 0.006719633426946119), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.34386745978232425, 0.15114271162865245, 0.8692858825227187], [0.34380421639038017, 0.49221567013213885, 0.7577396026981709], 0.007165314050997217), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.7924111084524182, 0.7258577993874293, 0.4074759819413786], [0.004779849956308646, 0.10815467687383273, 0.6365113178025307], 0.004211825485699923), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.15007164548253604, 0.13891454905930323, 0.8854146060893755], [0.2322606392244514, 0.24943996074378283, 0.6529923359002099], 0.004730386058191863), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.178892411148747, 0.8198348637351619, 0.746693545507861], [0.05374276809352163, 0.28259697683790064, 0.9963633829133356], 0.004082068996145551), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.4598055261641393, 0.09042082143339258, 0.5640409504623178], [0.6396964311422774, 0.5845421243866575, 0.5349929592419193], 0.001124964196695102), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.9572197333627137, 0.6426548339644926, 0.6552399747905221], [0.747485027142634, 0.23562083902231445, 0.23561754824795678], 0.0027436327111542455), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.8050706937073655, 0.005451816228509987, 0.6194543923497148], [0.2893241621284488, 0.15343050371415934, 0.45483197600289493], 0.0033418266341768534), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.8372242495059112, 0.1880062901030637, 0.329865236819033], [0.6964852800076098, 0.41732935474694366, 0.12800112947157438], 0.008074470339380045), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.049017597531493595, 0.18258465318130024, 0.04079265592099135], [0.6643772290446401, 0.25419876795775076, 0.0111761955710723], 0.006867801058606931), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.9446211092215213, 0.5773644194640194, 0.41562195208459896], [0.06814741604330621, 0.16749916233272766, 0.7091985108360725], 0.0031542415121338305), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.02765456454632287, 0.1228176034412326, 0.7897475889795191], [0.5848018551658597, 0.4374509112686895, 0.6003922163899991], 0.0010159571328096377), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.09100727263849917, 0.5794817445557756, 0.6291868753365321], [0.04589763740992747, 0.2683934891175124, 0.9312357743393328], 0.004951543147051906), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.7215125397666922, 0.3101399108971986, 0.9120708158457793], [0.036429367243270616, 0.6439997561017691, 0.35149929330560925], 0.0006879838266934451), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.07014988405111922, 0.5286443270294893, 0.24380912629526263], [0.620780571763883, 0.8699240224718836, 0.5642401605234335], 0.0003071608128254314), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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}(), DerivativesSwitch{true, true, true}()))
+ save_tree_source=true, save_name_source=source_filepath)
(SingleTree{Float64, Vector{Tuple{Main.Body{Float64}, Vector{Float64}}}, 5}(SingleBranch{Float64}[SingleBranch{Float64}(1:100, 8, 2:9, 0, -1, [0.48179464439418035, 0.5006093989915064, 0.5135846646682118], 0.8619975055877627, 0.8619975055877627, [-0.49767449189188073, 0.49767449189188073, -0.49767449189188073, 0.49767449189188073, -0.49767449189188073, 0.49767449189188073], [0.49767449189188073, 0.49767449189188073, 0.49767449189188073], 0.0, 0.0, fill(0.0), [-47.330269153011905 0.0; 0.0 0.0;;; -1.0538836054878957 0.0; 0.0 0.0;;; 0.2581437255104959 0.0; 0.32417697579794513 0.0;;; … ;;; -0.0008324020930813901 0.0; 9.584516978454677e-5 0.0;;; 0.00022605569837265332 0.0; 0.0002001737355761634 0.0;;; -4.788589382345488e-5 0.0; -1.5737437600225223e-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)), (139835914319232, 139835914320128, 139835914319760))), SingleBranch{Float64}(1:14, 0, 10:9, 1, 1, [0.23295739844823998, 0.251772153045566, 0.2647474187222715], 0.43099875279388133, 0.43099875279388133, [-0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037], [0.24883724594594037, 0.24883724594594037, 0.24883724594594037], 0.0, 0.0, fill(0.0), [-7.499871222570643 0.0; 0.0 0.0;;; 0.1511775172236864 0.0; 0.0 0.0;;; -0.17159862481145716 0.0; -0.07777421111649871 0.0;;; … ;;; 6.654374417721039e-6 0.0; -1.8320398726639646e-6 0.0;;; -2.831979898952648e-7 0.0; 2.7274227268680686e-6 0.0;;; 2.980421231232696e-7 0.0; -1.6644915713327277e-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.0475716488261706 0.0; 0.0 0.0;;; 0.1195015413964381 0.0; -0.0717249489633772 0.0;;; … ;;; 8.551990292441558e-8 0.0; 1.6785191448426871e-6 0.0;;; -4.1703590062913545e-7 0.0; -6.208746591492499e-7 0.0;;; -3.967431800726344e-7 0.0; -1.8617643569857076e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (139835914853488, 0, 0))), SingleBranch{Float64}(15:26, 0, 10:9, 1, 2, [0.7306318903401208, 0.251772153045566, 0.2647474187222715], 0.43099875279388133, 0.43099875279388133, [-0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037], [0.24883724594594037, 0.24883724594594037, 0.24883724594594037], 0.0, 0.0, fill(0.0), [-5.832802684288696 0.0; 0.0 0.0;;; -0.005174662477621744 0.0; 0.0 0.0;;; 0.15820729244290432 0.0; 0.12484604144375797 0.0;;; … ;;; 1.0332065930653744e-6 0.0; 2.1649761195969315e-6 0.0;;; 1.9104310530934324e-7 0.0; -6.94223215499619e-7 0.0;;; -5.3899273439794484e-8 0.0; 1.718878795742581e-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.2486704739166461 0.0; 0.0 0.0;;; -0.04736999921415913 0.0; -0.07388436286704142 0.0;;; … ;;; 3.2349671327322305e-6 0.0; -4.544322257288448e-7 0.0;;; 4.005786149725973e-7 0.0; 4.6634514669915355e-7 0.0;;; -1.2450376693078546e-8 0.0; 4.157089031438735e-8 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (139835914321024, 139835914321920, 139835914322368))), SingleBranch{Float64}(27:41, 0, 10:9, 1, 3, [0.23295739844823998, 0.7494466449374467, 0.2647474187222715], 0.43099875279388133, 0.43099875279388133, [-0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037], [0.24883724594594037, 0.24883724594594037, 0.24883724594594037], 0.0, 0.0, fill(0.0), [-6.731488675573531 0.0; 0.0 0.0;;; 0.011400475589984096 0.0; 0.0 0.0;;; 0.1188574386355909 0.0; 0.02054364764978861 0.0;;; … ;;; 1.8724041357624202e-6 0.0; -6.740573259352781e-8 0.0;;; -9.062764401980581e-7 0.0; -1.5028718156848473e-7 0.0;;; -2.656402793225009e-7 0.0; 8.050058723093146e-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.0776597288395956 0.0; 0.0 0.0;;; 0.05043299396916734 0.0; 0.12172661720283631 0.0;;; … ;;; 4.666416807814993e-7 0.0; 1.931492763086916e-7 0.0;;; -3.331198811096547e-10 0.0; -9.752745318068186e-7 0.0;;; 3.0569272167597004e-7 0.0; -1.267750090624772e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (139835914547920, 139835914547920, 432753132612))), SingleBranch{Float64}(42:51, 0, 10:9, 1, 4, [0.7306318903401208, 0.7494466449374467, 0.2647474187222715], 0.43099875279388133, 0.43099875279388133, [-0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037], [0.24883724594594037, 0.24883724594594037, 0.24883724594594037], 0.0, 0.0, fill(0.0), [-3.3477273311870865 0.0; 0.0 0.0;;; -0.05661650963523443 0.0; 0.0 0.0;;; 0.049045688737453436 0.0; -0.029735712471123377 0.0;;; … ;;; 7.249010232689599e-7 0.0; 5.074419050401502e-7 0.0;;; 8.467912089590641e-7 0.0; -1.2457046357912389e-7 0.0;;; -3.3486020944921064e-8 0.0; -9.682938343398542e-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.13073333033410794 0.0; 0.0 0.0;;; 0.11180913231923639 0.0; -0.10452524002081365 0.0;;; … ;;; -1.015939496560566e-6 0.0; -1.245007835412755e-6 0.0;;; 2.9624679866733807e-6 0.0; 4.0125695067632e-7 0.0;;; -5.708910699960474e-7 0.0; 4.050818336718332e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (139835126511376, 139835126511408, 413850298590))), SingleBranch{Float64}(52:61, 0, 10:9, 1, 5, [0.23295739844823998, 0.251772153045566, 0.7624219106141522], 0.43099875279388133, 0.43099875279388133, [-0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037], [0.24883724594594037, 0.24883724594594037, 0.24883724594594037], 0.0, 0.0, fill(0.0), [-3.768609585113875 0.0; 0.0 0.0;;; -0.035764396889667704 0.0; 0.0 0.0;;; -0.16228372078844444 0.0; 0.23742079553987183 0.0;;; … ;;; 5.056014420212356e-7 0.0; 2.136901791719658e-7 0.0;;; 1.7169448653861497e-6 0.0; -1.3242169437551442e-6 0.0;;; 7.066422746939443e-8 0.0; -6.418001947143367e-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.08253975941558067 0.0; 0.0 0.0;;; 0.09963720788809316 0.0; 0.12010366689568278 0.0;;; … ;;; 1.4850469385811878e-6 0.0; -8.244164692731008e-7 0.0;;; 1.9004462221190685e-6 0.0; 7.403606419704646e-7 0.0;;; -2.4336181277641484e-7 0.0; -7.318122304914546e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (139835914548368, 139835914547920, 139835914447808))), SingleBranch{Float64}(62:71, 0, 10:9, 1, 6, [0.7306318903401208, 0.251772153045566, 0.7624219106141522], 0.43099875279388133, 0.43099875279388133, [-0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037], [0.24883724594594037, 0.24883724594594037, 0.24883724594594037], 0.0, 0.0, fill(0.0), [-6.65369686162497 0.0; 0.0 0.0;;; -0.33832705107850786 0.0; 0.0 0.0;;; 0.03648439580080508 0.0; -0.2893007691915242 0.0;;; … ;;; -9.56553625327193e-7 0.0; -2.2026067778364347e-6 0.0;;; 1.9474701214310728e-6 0.0; 5.648080340882214e-8 0.0;;; -4.831687600971158e-7 0.0; 4.5322428445436293e-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.1120955954162618 0.0; 0.0 0.0;;; 0.018512552533617777 0.0; 0.0663651054717656 0.0;;; … ;;; -2.0236147622849254e-7 0.0; -1.903004423018463e-7 0.0;;; 4.885027079146498e-8 0.0; -9.322703900889062e-8 0.0;;; 1.2652353474943286e-8 0.0; 2.7049821370130747e-9 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (139835914548368, 139835914547920, -281059834985302))), SingleBranch{Float64}(72:83, 0, 10:9, 1, 7, [0.23295739844823998, 0.7494466449374467, 0.7624219106141522], 0.43099875279388133, 0.43099875279388133, [-0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037], [0.24883724594594037, 0.24883724594594037, 0.24883724594594037], 0.0, 0.0, fill(0.0), [-4.426804767086749 0.0; 0.0 0.0;;; -0.33604471722409424 0.0; 0.0 0.0;;; 0.13234132530752615 0.0; -0.1606673862693206 0.0;;; … ;;; 1.1458834355307562e-6 0.0; -1.4643331074881864e-6 0.0;;; 8.012013073683108e-8 0.0; 7.658765166251638e-7 0.0;;; -2.960351828451514e-7 0.0; -7.415640875943139e-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.08779121028896275 0.0; 0.0 0.0;;; 0.0024206596390341506 0.0; -0.08622261451422439 0.0;;; … ;;; -1.793369218013121e-8 0.0; 2.1248188421746336e-7 0.0;;; 2.0121767805487402e-7 0.0; 2.2685828324326742e-8 0.0;;; 5.565730178295652e-9 0.0; -3.93993876207998e-8 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (0, 0, 139835914529344))), SingleBranch{Float64}(84:100, 0, 10:9, 1, 8, [0.7306318903401208, 0.7494466449374467, 0.7624219106141522], 0.43099875279388133, 0.43099875279388133, [-0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037, -0.24883724594594037, 0.24883724594594037], [0.24883724594594037, 0.24883724594594037, 0.24883724594594037], 0.0, 0.0, fill(0.0), [-9.069268025566352 0.0; 0.0 0.0;;; -0.31850085207032125 0.0; 0.0 0.0;;; 0.11944690591762133 0.0; 0.1906943971623366 0.0;;; … ;;; -6.760562163890454e-6 0.0; 3.950077335221274e-6 0.0;;; 6.1795388617324575e-6 0.0; 5.467181615162473e-8 0.0;;; -8.913747733183657e-7 0.0; -4.836258226795493e-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.027307294502641133 0.0; 0.0 0.0;;; 0.11562444322657306 0.0; 0.007173497524932848 0.0;;; … ;;; -7.594532495054794e-7 0.0; -1.4282037498218524e-7 0.0;;; 1.9866669481961943e-7 0.0; 5.027272869736831e-8 0.0;;; 1.6559747198033837e-7 0.0; 5.301068040987261e-8 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (0, 0, 412316860416)))], UnitRange{Int64}[1:1, 2:9], [2, 3, 4, 5, 6, 7, 8, 9], [5, 19, 24, 38, 39, 43, 51, 53, 60, 62  …  20, 29, 45, 52, 54, 58, 76, 82, 83, 99], [42, 27, 84, 52, 1, 85, 28, 62, 63, 86  …  26, 50, 60, 51, 13, 83, 71, 61, 100, 14], Tuple{Main.Body{Float64}, Vector{Float64}}[(Main.Body{Float64}([0.557859214605901, 0.9505794906131003, 0.3404453566099245], 0.009400118805868503, [0.4279926935042637, 0.5792958612811091, 0.7737051496094961, 0.755089351578363]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.4665724969813344, 0.7527119243585907, 0.37990008755992277], 0.008009455207989609, [0.03215302412332721, 0.30401585392069863, 0.39844830923765007, 0.05175624298006909]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.655364218417507, 0.5420094641040476, 0.5949064366117462], 0.00966985017093868, [0.45318687939721236, 0.714833285253085, 0.8014821280258599, 0.0423294989420161]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.46020494037027904, 0.1183049591166877, 0.8455736796675837], 0.009564529506430412, [0.43820774144362595, 0.9864134399623772, 0.5213635902352741, 0.7825393808296219]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.38302007549064776, 0.2610738988132921, 0.38243110265103486], 0.00879050055450757, [0.22661173901939113, 0.6427440609269616, 0.7349829587317898, 0.22440478954784737]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.7675706354227012, 0.6830216562053943, 0.9828525063335046], 0.00030193717698736916, [0.6962187903754538, 0.7485949073619695, 0.6034741867978999, 0.7292786447682762]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.3050424229456674, 0.705503651828581, 0.2161902177875057], 0.0019490720274920647, [0.8645972363970755, 0.5822420927980573, 0.25580361360386095, 0.377504748209773]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.503364457080568, 0.4739102794439455, 0.8882313721777293], 0.007003767860720454, [0.647938265577496, 0.5462740370511083, 0.4481538479575009, 0.42773190354588286]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.6419909113170134, 0.3653123773611996, 0.9713497759206838], 0.0043579616572875434, [0.8917110271026161, 0.6439207339714714, 0.5036025955048534, 0.4437995597691393]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.5660529652176645, 0.9595746577303932, 0.8477086241617172], 0.0035640681857256975, [0.5419453685002806, 0.3427439265408987, 0.032196858193411226, 0.18518731541358224]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.5828631646060379, 0.34651215147388426, 0.5134178926389176], 0.003926179004732325, [0.0458405367409076, 0.3639566243370217, 0.059578557114454256, 0.9962632355591512]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.879080103813595, 0.6025583064984074, 0.23268830772202231], 0.0008940181927595166, [0.42801386665227803, 0.07046185542048555, 0.6951230120676851, 0.6705048319454384]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.1440075538011215, 0.3067113936734345, 0.6436070688247999], 0.007053929291224028, [0.3997191978718325, 0.013760125081811125, 0.11173714288874481, 0.25455238905806765]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.5215814102984935, 0.5258283802989739, 0.3954807490563794], 0.007982359414388152, [0.047033883420560474, 0.9582951819555906, 0.9519215449752892, 0.2567791620738684]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.11881400147042598, 0.011220061279313964, 0.13384862525073793], 0.007187609019877816, [0.7795024398485453, 0.8301151297487197, 0.45918152351480335, 0.25851486922819]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.060512169419791206, 0.7446053256593784, 0.6746307003251895], 0.006094604185275119, [0.906748548471635, 0.11488502630332675, 0.5753095521549699, 0.782094637362603]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.863362101283652, 0.21474704797833044, 0.6503263151978904], 0.00989898695295262, [0.6240429482632586, 0.7906374362304105, 0.7652350423701638, 0.14765296790357707]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.47316473223960553, 0.052497737269379674, 0.8449616700297329], 0.001296483920557443, [0.7700451041031097, 0.7383868768468096, 0.34134557996296455, 0.05993679065745827]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.7449788853899865, 0.5181977584843006, 0.7351146161115111], 0.002153393855190447, [0.4172346693219562, 0.7146733939712135, 0.8797743859260458, 0.7096904549422267]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.0895075005214856, 0.012769070252689807, 0.21717576989610088], 0.007793578077477884, [0.17355753790968675, 0.9885775553410592, 0.05271954177460836, 0.504623980860874]), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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), MultiTree{Float64, 2, Tuple{Vector{Tuple{Main.Body{Float64}, Vector{Float64}}}, Vector{Tuple{Main.Vorton{Float64}, Vector{Float64}, Vector{Float64}}}}, 5}(MultiBranch{Float64, 2}[MultiBranch{Float64, 2}(UnitRange{Int64}[1:100, 1:100], 8, 2:9, 0, -1, [0.49801566262999436, 0.49520356617852135, 0.4970227729348794], 0.8574652475891061, 0.8574652475891061, [-0.4950577915163195, 0.4950577915163195, -0.4950577915163195, 0.4950577915163195, -0.4950577915163195, 0.4950577915163195], [0.4950577915163195, 0.4950577915163195, 0.4950577915163195], 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)), (139835914325952, 139835914326400, 139835883576848))), MultiBranch{Float64, 2}(UnitRange{Int64}[1:14, 1:12], 0, 10:9, 1, 1, [0.2504867668718346, 0.2476746704203616, 0.24949387717671964], 0.42873262379455307, 0.42873262379455307, [-0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976], [0.24752889575815976, 0.24752889575815976, 0.24752889575815976], 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.2087012212557283 0.0; 0.0 0.0;;; 0.032545008619530684 0.0; -0.10073458467017052 0.0;;; … ;;; -3.0244533257637133e-6 0.0; 2.2205990602711725e-6 0.0;;; 3.4440032384179833e-7 0.0; 1.036378465235622e-6 0.0;;; 1.1078772330034604e-7 0.0; -9.238829485383542e-10 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (139835895951776, 139835858653264, 433543324229))), MultiBranch{Float64, 2}(UnitRange{Int64}[15:32, 13:28], 0, 10:9, 1, 2, [0.7455445583881541, 0.2476746704203616, 0.24949387717671964], 0.42873262379455307, 0.42873262379455307, [-0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976], [0.24752889575815976, 0.24752889575815976, 0.24752889575815976], 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.08037135964231336 0.0; -0.0 0.0;;; 0.02983419015864896 0.0; 0.045839845558878545 0.0;;; … ;;; -6.68121229105876e-8 0.0; 1.0788294956364102e-8 0.0;;; 2.014047636416609e-8 0.0; 2.218849378968717e-8 0.0;;; 1.0357976488678172e-9 0.0; -3.9447188056193436e-9 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (0, 0, 412316860416))), MultiBranch{Float64, 2}(UnitRange{Int64}[33:42, 29:38], 0, 10:9, 1, 3, [0.2504867668718346, 0.7427324619366811, 0.24949387717671964], 0.42873262379455307, 0.42873262379455307, [-0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976], [0.24752889575815976, 0.24752889575815976, 0.24752889575815976], 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.005684750881457034 0.0; 0.0 0.0;;; 0.10704406745359585 0.0; -0.09016844141035768 0.0;;; … ;;; 1.1261847899409718e-6 0.0; 1.9251347681431154e-6 0.0;;; -8.564267080796984e-8 0.0; -3.0434887744530454e-8 0.0;;; -4.1907926914274465e-7 0.0; 1.570655271058279e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (0, 0, 430350870367))), MultiBranch{Float64, 2}(UnitRange{Int64}[43:55, 39:45], 0, 10:9, 1, 4, [0.7455445583881541, 0.7427324619366811, 0.24949387717671964], 0.42873262379455307, 0.42873262379455307, [-0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976], [0.24752889575815976, 0.24752889575815976, 0.24752889575815976], 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.16612807490787934 0.0; -0.0 0.0;;; 0.08268402123633084 0.0; 0.09953827541668359 0.0;;; … ;;; -3.031961319705402e-6 0.0; 1.6908105173106713e-6 0.0;;; 1.8102007820043372e-6 0.0; 6.998654255063502e-7 0.0;;; -9.632481742411246e-8 0.0; -2.865884671640096e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (139835870149200, 139835736414624, 142157661445))), MultiBranch{Float64, 2}(UnitRange{Int64}[56:66, 46:60], 0, 10:9, 1, 5, [0.2504867668718346, 0.2476746704203616, 0.7445516686930391], 0.42873262379455307, 0.42873262379455307, [-0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976], [0.24752889575815976, 0.24752889575815976, 0.24752889575815976], 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.04519592028648003 0.0; -0.0 0.0;;; 0.06242853348956448 0.0; -0.11141610116275585 0.0;;; … ;;; 1.0603477834477849e-6 0.0; -4.095341527385005e-8 0.0;;; 2.2784818233315364e-7 0.0; -4.461965845635977e-7 0.0;;; 1.5704628071710524e-7 0.0; 2.3560248012414177e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (139835914547920, 139835914318784, 143564407720))), MultiBranch{Float64, 2}(UnitRange{Int64}[67:76, 61:73], 0, 10:9, 1, 6, [0.7455445583881541, 0.2476746704203616, 0.7445516686930391], 0.42873262379455307, 0.42873262379455307, [-0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976], [0.24752889575815976, 0.24752889575815976, 0.24752889575815976], 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.1675191471527402 0.0; -0.0 0.0;;; -0.0312326202384185 0.0; -0.012016009310730989 0.0;;; … ;;; -3.88205041167155e-8 0.0; -7.661592791364743e-8 0.0;;; -8.888241440564631e-10 0.0; -8.708252780808858e-9 0.0;;; 9.178430149748747e-11 0.0; -3.374678967008055e-10 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (139835829215489, 139835731610864, 142157661445))), MultiBranch{Float64, 2}(UnitRange{Int64}[77:86, 74:88], 0, 10:9, 1, 7, [0.2504867668718346, 0.7427324619366811, 0.7445516686930391], 0.42873262379455307, 0.42873262379455307, [-0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976], [0.24752889575815976, 0.24752889575815976, 0.24752889575815976], 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.11536479335650705 0.0; 0.0 0.0;;; 0.08162535869045275 0.0; -0.0797397471166677 0.0;;; … ;;; -5.740072039305257e-7 0.0; -6.157299676352652e-7 0.0;;; -8.141128652993099e-7 0.0; -3.8078853256653077e-8 0.0;;; -1.204676933958677e-7 0.0; 1.071539282470548e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (139835914547920, 139835914318784, 143564407720))), MultiBranch{Float64, 2}(UnitRange{Int64}[87:100, 89:100], 0, 10:9, 1, 8, [0.7455445583881541, 0.7427324619366811, 0.7445516686930391], 0.42873262379455307, 0.42873262379455307, [-0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976, -0.24752889575815976, 0.24752889575815976], [0.24752889575815976, 0.24752889575815976, 0.24752889575815976], 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.08931169390251703 0.0; 0.0 0.0;;; 0.05003881398609423 0.0; 0.1058375874872798 0.0;;; … ;;; -1.4574817802585404e-7 0.0; -3.657489693104403e-8 0.0;;; -1.3597606331520128e-7 0.0; -6.856603553560549e-7 0.0;;; 1.4726975614088464e-7 0.0; -1.0905852828131589e-7 0.0], ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.IntrusiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (64424509449, 34359738383, 139835545223168)))], 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], [13, 15, 20, 41, 44, 49, 55, 62, 64, 65  …  22, 23, 24, 33, 54, 59, 66, 74, 75, 92]), ([67, 87, 68, 69, 77, 43, 56, 57, 44, 88  …  12, 55, 30, 99, 31, 32, 13, 66, 14, 100], [13, 89, 14, 61, 62, 46, 47, 39, 48, 74  …  59, 100, 72, 28, 12, 45, 60, 88, 73, 38]), (Tuple{Main.Body{Float64}, Vector{Float64}}[(Main.Body{Float64}([0.9191811597933967, 0.42601923740838954, 0.7465863168484385], 0.00551624732815934, [0.2538490889415096, 0.33415153638191886, 0.4273278808735992, 0.867547200255958]), [170.70120675611167, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.3505458214588266, 0.9303323763821093, 0.9594335994071538]), [174.77764964526665, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.3548676566528912, 0.13179829123412257, 0.9411330896079791]), [203.0571656498236, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.45048364263035023, 0.8913769757127503, 0.7110385498005108]), [206.86537149181515, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.753277849991045, 0.7295997282994879, 0.16238042514897943]), [186.6425532510278, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.5997019277391098, 0.4536933650141408, 0.3249034202416199]), [138.93162527337853, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.7468540519107453, 0.09667869010406493, 0.45910253524716227]), [211.29187132816003, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.821283430881433, 0.5644095995557176, 0.030378874865931382]), [164.96684496856452, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.4379647602849879, 0.23146826213384353, 0.6471427793654219]), [179.0965110415026, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.2404468114408953, 0.2221494346545283, 0.5096964769051421]), [202.67180730415947, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.0758000769135273, 0.3487409265919944, 0.30331684418426996]), [194.90206142194737, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.881611313975086, 0.009146364153274189, 0.9806631480861379]), [185.29455230103096, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.17022568799250704, 0.2638800824351736, 0.6514229873225715]), [162.60732592614377, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.22271994897768166, 0.6048365813194562, 0.052884966374337816]), [190.5035964492667, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.31694750597495125, 0.29912838760350746, 0.623451826337517]), [205.7241314251126, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.7285911206511895, 0.03773808039378912, 0.04331783284230861]), [210.84125143098854, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.4603052801344075, 0.9298297825042643, 0.358424742237733]), [178.21758444214709, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.8609926737185056, 0.1638092551671958, 0.22646456871949416]), [170.1251660171448, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.12630836876865192, 0.9645167219705122, 0.8221674765296613]), [174.71315395577525, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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, 0.15911501872567757, 0.5356210909593669, 0.6799181470255188]), [185.86085940474177, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0  …  0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0])], Tuple{Main.Vorton{Float64}, Vector{Float64}, Vector{Float64}}[(Main.Vorton{Float64}([0.6956808381416713, 0.4853785553982539, 0.4648049213765313], [0.7054270031323241, 0.70014541220553, 0.49839208412207514], 0.008389531007170116), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.6528326495428173, 0.8783095326823105, 0.6955937752833566], [0.992073216064829, 0.03702391218002421, 0.052040147154059024], 0.008559673062325765), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.9077908593045806, 0.3939808726568609, 0.1924335604037214], [0.5681911381173306, 0.06084849139338322, 0.9611920275200003], 0.00920463305134842), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.680305220184172, 0.45142673639459907, 0.6565158730370251], [0.9871517007068787, 0.536191701519787, 0.8044608001295422], 0.01032776912661538), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.5772900725131546, 0.19456471074413395, 0.9691695971486246], [0.029308796906382772, 0.237901194890202, 0.8225322140924277], 0.005855920250376647), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.07881482026287556, 0.16694384061777157, 0.7453082600322598], [0.36751517071734363, 0.08464781300384328, 0.7877792123673903], 0.006719633426946119), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.34386745978232425, 0.15114271162865245, 0.8692858825227187], [0.34380421639038017, 0.49221567013213885, 0.7577396026981709], 0.007165314050997217), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.7924111084524182, 0.7258577993874293, 0.4074759819413786], [0.004779849956308646, 0.10815467687383273, 0.6365113178025307], 0.004211825485699923), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.15007164548253604, 0.13891454905930323, 0.8854146060893755], [0.2322606392244514, 0.24943996074378283, 0.6529923359002099], 0.004730386058191863), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.178892411148747, 0.8198348637351619, 0.746693545507861], [0.05374276809352163, 0.28259697683790064, 0.9963633829133356], 0.004082068996145551), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.4598055261641393, 0.09042082143339258, 0.5640409504623178], [0.6396964311422774, 0.5845421243866575, 0.5349929592419193], 0.001124964196695102), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.9572197333627137, 0.6426548339644926, 0.6552399747905221], [0.747485027142634, 0.23562083902231445, 0.23561754824795678], 0.0027436327111542455), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.8050706937073655, 0.005451816228509987, 0.6194543923497148], [0.2893241621284488, 0.15343050371415934, 0.45483197600289493], 0.0033418266341768534), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.8372242495059112, 0.1880062901030637, 0.329865236819033], [0.6964852800076098, 0.41732935474694366, 0.12800112947157438], 0.008074470339380045), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.049017597531493595, 0.18258465318130024, 0.04079265592099135], [0.6643772290446401, 0.25419876795775076, 0.0111761955710723], 0.006867801058606931), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.9446211092215213, 0.5773644194640194, 0.41562195208459896], [0.06814741604330621, 0.16749916233272766, 0.7091985108360725], 0.0031542415121338305), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.02765456454632287, 0.1228176034412326, 0.7897475889795191], [0.5848018551658597, 0.4374509112686895, 0.6003922163899991], 0.0010159571328096377), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.09100727263849917, 0.5794817445557756, 0.6291868753365321], [0.04589763740992747, 0.2683934891175124, 0.9312357743393328], 0.004951543147051906), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.7215125397666922, 0.3101399108971986, 0.9120708158457793], [0.036429367243270616, 0.6439997561017691, 0.35149929330560925], 0.0006879838266934451), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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.Vorton{Float64}([0.07014988405111922, 0.5286443270294893, 0.24380912629526263], [0.620780571763883, 0.8699240224718836, 0.5642401605234335], 0.0003071608128254314), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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}(), DerivativesSwitch{true, true, true}()))
diff --git a/dev/index.html b/dev/index.html index ee49b4f..1a6c784 100644 --- a/dev/index.html +++ b/dev/index.html @@ -1,2 +1,2 @@ -Introduction · FastMultipole.jl

FastMultipole

A fast, multi-system, multi-kernel, differentiable implementation of the fast multipole method for use with scalar-plus-vector potential N-body problems in pure Julia.

Author: Ryan Anderson

Features:

  • solves $N$-body problems governed by the Laplace ($1/r$) kernel, with work planned to support the Helmholtz kernel in the future
  • incorporates seamlessly into existing Julia code without modifications (just the addition of a few interface functions)
  • offers convenience functions for determining the expansion coefficients for source points, vortex points, source panels, and dipole panels (this list is growing!)
  • provides velocity and velocity gradient (or their equivalent for non-fluids problems) obtained using analytic expressions (no finite difference)
  • uses $O(p^4)$ multipole-to-local translation operator (where $p$ is the expansion order), though this may improve in the near future
  • automated CPU-parallelization of expansions and direct interactions
  • supports GPU-parallelization of direct interactions using CUDA
  • ForwardDiff and ReverseDiff compatible

Installation:

pkg> add https://github.com/byuflowlab/FastMultipole.git

Documentation:

+Introduction · FastMultipole.jl

FastMultipole

A fast, multi-system, multi-kernel, differentiable implementation of the fast multipole method for use with scalar-plus-vector potential N-body problems in pure Julia.

Author: Ryan Anderson

Features:

  • solves $N$-body problems governed by the Laplace ($1/r$) kernel, with work planned to support the Helmholtz kernel in the future
  • incorporates seamlessly into existing Julia code without modifications (just the addition of a few interface functions)
  • offers convenience functions for determining the expansion coefficients for source points, vortex points, source panels, and dipole panels (this list is growing!)
  • provides velocity and velocity gradient (or their equivalent for non-fluids problems) obtained using analytic expressions (no finite difference)
  • uses $O(p^4)$ multipole-to-local translation operator (where $p$ is the expansion order), though this may improve in the near future
  • automated CPU-parallelization of expansions and direct interactions
  • supports GPU-parallelization of direct interactions using CUDA
  • ForwardDiff and ReverseDiff compatible

Installation:

pkg> add https://github.com/byuflowlab/FastMultipole.git

Documentation:

diff --git a/dev/quickstart/index.html b/dev/quickstart/index.html index 78042fc..1b2cbcf 100644 --- a/dev/quickstart/index.html +++ b/dev/quickstart/index.html @@ -45,4 +45,4 @@ percent_error = abs.((system.potential[1,:] .- direct_system.potential[1,:]) ./ direct_system.potential[1,:]) -@show maximum(percent_error)
4.748757699729193e-7
+@show maximum(percent_error)
4.748757699729193e-7
diff --git a/dev/reference/index.html b/dev/reference/index.html index a5264b0..7056b1d 100644 --- a/dev/reference/index.html +++ b/dev/reference/index.html @@ -1,2 +1,2 @@ -Reference · FastMultipole.jl

Reference

FastMultipole.DerivativesSwitchType
DerivativesSwitch

Switch indicating whether the scalar potential, vector potential, velocity, and/or velocity gradient should be computed for a target system. Information is stored as type parameters, allowing the compiler to compile away if statements.

source
FastMultipole.DerivativesSwitchMethod
DerivativesSwitch(scalar_potential, velocity, velocity_gradient)

Constructs a tuple of DerivativesSwitch objects.

Arguments

  • scalar_potential::Vector{Bool}: a vector of ::Bool indicating whether the scalar potential should be computed for each target system
  • velocity::Vector{Bool}: a vector of ::Bool indicating whether the velocity should be computed for each target system
  • velocity_gradient::Vector{Bool}: a vector of ::Bool indicating whether the velocity gradient should be computed for each target system
source
FastMultipole.DerivativesSwitchMethod
DerivativesSwitch(scalar_potential, velocity, velocity_gradient, target_systems)

Constructs a ::Tuple of indentical DerivativesSwitch objects of the same length as target_systems (if it is a ::Tuple), or a single DerivativesSwitch (if target_system is not a ::Tuple)

Arguments

  • scalar_potential::Bool: a ::Bool indicating whether the scalar potential should be computed for each target system
  • velocity::Bool: a ::Bool indicating whether the velocity should be computed for each target system
  • velocity_gradient::Bool: a ::Bool indicating whether the velocity gradient should be computed for each target system
source
FastMultipole.DerivativesSwitchMethod
DerivativesSwitch(scalar_potential, velocity, velocity_gradient)

Constructs a single DerivativesSwitch object.

Arguments

  • scalar_potential::Bool: a ::Bool indicating whether the scalar potential should be computed for the target system
  • velocity::Bool: a ::Bool indicating whether the velocity should be computed for the target system
  • velocity_gradient::Bool: a ::Bool indicating whether the velocity gradient should be computed for the target system
source
FastMultipole.ExpansionSwitchType
ExpansionSwitch

Switch indicating which expansions should be used:

  1. scalar potential (SP)
  2. vector potential via Lamb-Helmholtz decomposition (VP)
source
FastMultipole.MultiBranchType
MultiBranch{TF,N} <: Branch{TF}

Branch object used to sort more than one system into an octree. Type parameters represent:

  • TF: the floating point type (would be a dual number if using algorithmic differentiation)
  • N: the number of systems represented

Fields

  • bodies_index::Vector{UnitRange}: vector of unit ranges indicating the index of bodies in each represented system, respectively
  • n_branches::Int: number of child branches corresponding to this branch
  • branch_index::UnitRange: indices of this branch's child branches
  • i_parent::Int: index of this branch's parent
  • i_leaf::Int: if this branch is a leaf, what is its index in its parent <:Tree's leaf_index field
  • center::Vector{TF}: center of this branch at which its multipole and local expansions are centered
  • source_radius::TF: if this branch is a leaf, distance from center to the outer edge of farthest body contained in this branch; otherwise, this is the distance from center to the corner of its source_box
  • target_radius::TF: distance from center to the farthest body center contained in this branch
  • source_box::Vector{TF}: vector of length 6 containing the distances from the center to faces of a rectangular prism completely enclosing all bodies with their finite radius in the negative x, positive x, negative y, positive y, negative z, and positive z directions, respectively
  • target_box::Vector{TF}: vector of length 3 containing the distances from the center to faces of a rectangular prism completely enclosing all body centers in the x, y, and z direction, respectively
  • multipole_expansion::Array{TF,3}: array of size (2,2,) containing the multipole expansion coefficients; the first index indicates real or imaginary, the second index indicates scalar potential or the second component of the Lamb-Helmholtz decomposition, and the third indexk` indicates the expansion coefficient of degree $n$ and order $m$, as $k = p(p+1)/2 + m + 1$
  • local_expansion::Array{TF,3}: array of size(2,2,(p+1)(p+2)/2)containing the local expansion coefficients; the first index indicates real or imaginary, the second index indicates scalar potential or the second component of the Lamb-Helmholtz decomposition, and the third indexk` indicates the expansion coefficient of degree $n$ and order $m$, as $k = p(p+1)/2 + m + 1$
  • harmonics::Array{TF,3}: array of size (2,2,(p+1)(p+2)/2) used as storage for regular harmonics, irregular harmonics, or whatever is needed, and is indexed as multipole and local expansions
  • lock::ReentrantLock: lock used to avoid data race conditions when modifying this branch or its corresponding bodies
source
FastMultipole.MultiTreeType

bodies[indexlist] is the same sort operation as performed by the tree sortedbodies[inverseindexlist] undoes the sort operation performed by the tree

source
FastMultipole.ProbeSystemType
ProbeSystem

Convenience system for defining locations at which the potential, velocity, or velocity gradient may be desired.

source
FastMultipole.ProbeSystemMethod
ProbeSystem(positions; kwargs...)

A convenience system constructor for calculating the influence of source systems at locations not already described by a system object. It behaves like a system whose elements induce a null potential field.

Arguments

  • positions::Vector{SVector{3,Float64}}: a vector of position vectors of each probe

Optional Arguments

  • scalar_potential::Bool: whether or not to compute the scalar potential at each probe location
  • vector_potential::Bool: whether or not to compute the vector potential at each probe location
  • velocity::Bool: whether or not to compute the velocity at each probe location
  • velocity_gradient::Bool: whether or not to compute the velocity gradient at each probe location
source
FastMultipole.ProbeSystemMethod
ProbeSystem(positions; kwargs...)

Dispatch of ProbeSystem accepting a matrix of horizontally concatenated column vectors describing the position of each probe. Optional arguments are identical.

source
FastMultipole.SingleBranchType
SingleBranch{TF} <: Branch{TF}

Branch object used to sort a single system into an octree. Type parameters represent:

  • TF: the floating point type (would be a dual number if using algorithmic differentiation)

Fields

  • bodies_index::UnitRange: unit range indicating the index of bodies in the represented system
  • n_branches::Int: number of child branches corresponding to this branch
  • branch_index::UnitRange: indices of this branch's child branches
  • i_parent::Int: index of this branch's parent
  • i_leaf::Int: if this branch is a leaf, what is its index in its parent <:Tree's leaf_index field
  • center::Vector{TF}: center of this branch at which its multipole and local expansions are centered
  • source_radius::TF: if this branch is a leaf, distance from center to the outer edge of farthest body contained in this branch; otherwise, this is the distance from center to the corner of its source_box
  • target_radius::TF: distance from center to the farthest body center contained in this branch
  • source_box::Vector{TF}: vector of length 6 containing the distances from the center to faces of a rectangular prism completely enclosing all bodies with their finite radius in the negative x, positive x, negative y, positive y, negative z, and positive z directions, respectively
  • target_box::Vector{TF}: vector of length 3 containing the distances from the center to faces of a rectangular prism completely enclosing all body centers in the x, y, and z direction, respectively
  • multipole_expansion::Array{TF,3}: array of size (2,2,) containing the multipole expansion coefficients; the first index indicates real or imaginary, the second index indicates scalar potential or the second component of the Lamb-Helmholtz decomposition, and the third indexk` indicates the expansion coefficient of degree $n$ and order $m$, as $k = p(p+1)/2 + m + 1$
  • local_expansion::Array{TF,3}: array of size(2,2,(p+1)(p+2)/2)containing the local expansion coefficients; the first index indicates real or imaginary, the second index indicates scalar potential or the second component of the Lamb-Helmholtz decomposition, and the third indexk` indicates the expansion coefficient of degree $n$ and order $m$, as $k = p(p+1)/2 + m + 1$
  • harmonics::Array{TF,3}: array of size (2,2,(p+1)(p+2)/2) used as storage for regular harmonics, irregular harmonics, or whatever is needed, and is indexed as multipole and local expansions
  • lock::ReentrantLock: lock used to avoid data race conditions when modifying this branch or its corresponding bodies
source
FastMultipole.SortWrapperMethod
SortWrapper(system)

Convenience wrapper for systems whose elements cannot be sorted in-place (e.g. structured grids). The resulting object is treated like any other system.

source
FastMultipole.TreeType
abstract type Tree{TF,P} end

Supertype of all octree structures with TF the floating point type and P the expansion order.

source
FastMultipole.EmptyTreeMethod
EmptyTree(system)

Returns an empty tree. Used if system is empty.

Arguments

  • system: the system from which a tree is to be created

Returns

  • tree: if typeof(system)<:Tuple, a ::MultiTree is returned; otherwise, a ::SingleTree is returned
source
FastMultipole.accumulate_charge!Method
accumulate_charge!(branches, systems, branch_index)

Computes the sum of the absolute value of body source strengths, as well as the sum of the L2 norm of the dipole strengths, and store them in each branch, inheriting values from child branches if available.

source
FastMultipole.accumulate_charge_bodies!Method
accumulate_charge!(branch, systems)

Computes the sum of the absolute value of body source strengths, as well as the sum of the L2 norm of the dipole strengths, based on source bodies directly, and store them in each branch.

source
FastMultipole.add_line!Method
add_line!(probes::ProbeSystem, x1, x2, n_probes, i_last)

Adds n_probes probes in a line between x1 and x2. Specifically, they are added at the midpoint of equally partiti oned segments of the line.

Arguments

  • probes::ProbeSystem: the probe system whose .position field is to be updated
  • x1::Vector{Float64}: the first point defining the line along which probes are to be added
  • x2::Vector{Float64}: the second point defining the line along which probes are to be added
  • n_probes::Int: number of probes to be added
  • i_last::Int: index of the last probe in probes

Output

  • i_last::Int: updated index of the last probe in probes
source
FastMultipole.back_rotate_z!Method

Assumes eimϕs have already been computed. DOES NOT overwrite rotated weights (unlike other rotate functions); rather, accumulates on top of it.

source
FastMultipole.calculate_ib!Method

assumes j has already been calculated

Note: if X0real is replaced with X0real + Xw_real, etc., this becomes bnm (as used for volumes) instead of inm (as used for panels)

source
FastMultipole.calculate_pj!Method

assumes q has already been calculated

If X0real is replaced with X0real + Xv_real, etc., the result becomes jnm instead of pnm, as used for panels.

source
FastMultipole.direct!Method
direct!(target_system, source_system; derivatives_switches)

Applies all interactions of source_system acting on target_system without multipole acceleration.

Arguments

  • target_system: either

    • a system object for which compatibility functions have been overloaded, or
    • a tuple of system objects for which compatibility functions have been overloaded
  • source_system: either

    • a system object for which compatibility functions have been overloaded, or
    • a tuple of system objects for which compatibility functions have been overloaded

Optional Arguments

  • scalar_potential::Bool: either a ::Bool or a ::AbstractVector{Bool} of length length(target_systems) indicating whether each system should receive a scalar potential from source_systems
  • velocity::Bool: either a ::Bool or a ::AbstractVector{Bool} of length length(target_systems) indicating whether each system should receive a velocity from source_systems
  • velocity_gradient::Bool: either a ::Bool or a ::AbstractVector{Bool} of length length(target_systems) indicating whether each system should receive a velocity gradient from source_systems
source
FastMultipole.direct!Method
direct!(systems; derivatives_switches)

Applies all interactions of systems acting on itself without multipole acceleration.

Arguments

  • systems: either

    • a system object for which compatibility functions have been overloaded, or
    • a tuple of system objects for which compatibility functions have been overloaded

Optional Arguments

  • scalar_potential::Bool: either a ::Bool or a ::AbstractVector{Bool} of length length(target_systems) indicating whether each system should receive a scalar potential from source_systems
  • velocity::Bool: either a ::Bool or a ::AbstractVector{Bool} of length length(target_systems) indicating whether each system should receive a velocity from source_systems
  • velocity_gradient::Bool: either a ::Bool or a ::AbstractVector{Bool} of length length(target_systems) indicating whether each system should receive a velocity gradient from source_systems
source
FastMultipole.fmm!Method
fmm!(systems; kwargs...)

Apply all interactions of systems acting on itself using the fast multipole method. Assumes compatibility functions have been overloaded for both source and target systems.

Arguments

  • systems: either

    • a system object for which compatibility functions have been overloaded, or
    • a tuple of system objects for which compatibility functions have been overloaded

Optional Arguments

  • expansion_order::Int: the expansion order to be used
  • leaf_size::Int: maximum number of bodies from systems allowed in a leaf-level branch
  • multipole_threshold::Float64: number between 0 and 1 (often denoted theta in [0,1]) controls the accuracy by determining the non-dimensional distance after which multipoles are used; 0 means an infinite distance (no error, high cost), and 1 means barely convergent (high error, low cost)
  • scalar_potential::Bool: either a ::Bool or a ::AbstractVector{Bool} of length length(systems) indicating whether each system should receive a scalar potential from source_systems
  • velocity::Bool: either a ::Bool or a ::AbstractVector{Bool} of length length(systems) indicating whether each system should receive a velocity from source_systems
  • velocity_gradient::Bool: either a ::Bool or a ::AbstractVector{Bool} of length length(systems) indicating whether each system should receive a velocity gradient from source_systems
  • upward_pass::Bool: whether or not to form the multipole expansions from source bodies and translate them upward in the source tree
  • horizontal_pass::Bool: whether or not to transform multipole expansions from the source tree into local expansions in the target tree
  • downward_pass::Bool: whether or not to translate local expansions down to the leaf level of the target tree and evaluate them
  • nearfield::Bool: indicates whether near-field (comuted without multipoles) interactions should be included in the direct_list
  • farfield::Bool: indicates whether far-field (comuted with multipoles) interactions should be included in the m2l_list
  • self_induced::Bool: indicates whether to include the interactions of each leaf-level branch on itself in the direct_list
  • unsort_bodies::Bool: indicates whether or not to undo the sort operation used to generate the octree for systems
  • shink_recenter::Bool: indicates whether or not to resize branches for the octree after it is created to increase computational efficiency
  • save_tree::Bool: indicates whether or not to save a VTK file for visualizing the octree
  • save_name::String: name and path of the octree visualization if save_tree == true
  • nearfield_user::Bool: indicates whether or not the nearfield_user! function should be used for nearfield interactions
source
FastMultipole.fmm!Method
fmm!(target_systems, source_systems; kwargs...)

Apply all interactions of source_systems acting on target_systems using the fast multipole method. Assumes compatibility functions have been overloaded for both source and target systems.

Arguments

  • target_systems: either

    • a system object for which compatibility functions have been overloaded, or - a tuple of system objects for which compatibility functions have been overloaded
  • source_systems: either

    • a system object for which compatibility functions have been overloaded, or
    • a tuple of system objects for which compatibility functions have been overloaded

Optional Arguments

  • expansion_order::Int: the expansion order to be used
  • leaf_size_source::Int: maximum number of bodies from source_systems allowed in a leaf-level branch
  • leaf_size_target::Int: maximum number of bodies from target_systems allowed in a leaf-level branch
  • multipole_threshold::Float64: number between 0 and 1 (often denoted theta in [0,1]) controls the accuracy by determining the non-dimensional distance after which multipoles are used; 0 means an infinite distance (no error, high cost), and 1 means barely convergent (high error, low cost)
  • lamb_helmholtz::Bool: determines whether or not to calculate the induced velocity due to a vector potential using the Lamb-Helmholtz decomposition; erroroneous velocity and gradient will result if lamb_helmholtz==false and a vector potential is used.
  • scalar_potential::Bool: either a ::Bool or a ::AbstractVector{Bool} of length length(target_systems) indicating whether each system should receive a scalar potential from source_systems
  • velocity::Bool: either a ::Bool or a ::AbstractVector{Bool} of length length(target_systems) indicating whether each system should receive a velocity from source_systems
  • velocity_gradient::Bool: either a ::Bool or a ::AbstractVector{Bool} of length length(target_systems) indicating whether each system should receive a velocity gradient from source_systems
  • upward_pass::Bool: whether or not to form the multipole expansions from source bodies and translate them upward in the source tree
  • horizontal_pass::Bool: whether or not to transform multipole expansions from the source tree into local expansions in the target tree
  • downward_pass::Bool: whether or not to translate local expansions down to the leaf level of the target tree and evaluate them
  • nearfield::Bool: indicates whether near-field (comuted without multipoles) interactions should be included
  • farfield::Bool: indicates whether far-field (comuted with multipoles) interactions should be included
  • self_induced::Bool: indicates whether to include the interactions of each leaf-level branch on itself
  • unsort_source_bodies::Bool: indicates whether or not to undo the sort operation used to generate the octree for the source_systems
  • unsort_target_bodies::Bool: indicates whether or not to undo the sort operation used to generate the octree for the target_systems
  • source_shink_recenter::Bool: indicates whether or not to resize branches for the source_systems octree after it is created to increase computational efficiency
  • target_shink_recenter::Bool: indicates whether or not to resize branches for the target_systems octree after it is created to increase computational efficiency
  • save_tree_source::Bool: indicates whether or not to save a VTK file for visualizing the source octree
  • save_tree_target::Bool: indicates whether or not to save a VTK file for visualizing the target octree
  • save_name_source::String: name and path of the source octree visualization if save_tree == true
  • save_name_target::String: name and path of the target octree visualization if save_tree == true
source
FastMultipole.fmm!Method
fmm!(tree, systems; kwargs...)

Dispatches fmm! using an existing ::Tree.

Arguments

  • tree::Tree: a <:Tree object (see Tree)

  • systems: either

    • a system object for which compatibility functions have been overloaded, or
    • a tuple of system objects for which compatibility functions have been overloaded
  • m2l_list::Vector{SVector{2,Int32}}: list of branch index pairs [i_target, i_source] for which multipole expansions of the source branch are to be transformed to local expansions at the target branch

  • direct_list::Union{Vector{SVector{2,Int32}}, InteractionList}: list of branch index pairs [i_target, i_source] for which interactions are to be evaluted without multipole expansion (i.e., directly); if typeof(direct_list) <: InteractionList, then prepared influence matrices are used rather than computing direct influences on the fly

  • derivatives_switches::Union{DerivativesSwitch, Tuple{<:DerivativesSwitch,...}}: switch determining which of scalar potential, vector potential, velocity, and/or velocity gradient are to be computed for each target system

Optional Arguments

  • upward_pass::Bool: whether or not to form the multipole expansions from source bodies and translate them upward in the source tree
  • horizontal_pass::Bool: whether or not to transform multipole expansions from the source tree into local expansions in the target tree
  • downward_pass::Bool: whether or not to translate local expansions down to the leaf level of the target tree and evaluate them
  • unsort_bodies::Bool: indicates whether or not to undo the sort operation used to generate the octree for systems
source
FastMultipole.fmm!Method
fmm!(target_tree, target_systems, source_tree, source_systems, m2l_list, direct_list, derivatives_switches; kwargs...)

Dispatches fmm! using existing ::Tree objects.

Arguments

  • target_tree::Tree: a <:Tree object (see Tree)

  • target_systems: either

    • a system object for which compatibility functions have been overloaded, or
    • a tuple of system objects for which compatibility functions have been overloaded
  • source_tree::Tree: a <:Tree object (see Tree)

  • source_systems: either

    • a system object for which compatibility functions have been overloaded, or
    • a tuple of system objects for which compatibility functions have been overloaded
  • m2l_list::Vector{SVector{2,Int32}}: list of branch index pairs [i_target, i_source] for which multipole expansions of the source branch are to be transformed to local expansions at the target branch

  • direct_list::Union{Vector{SVector{2,Int32}}, InteractionList}: list of branch index pairs [i_target, i_source] for which interactions are to be evaluted without multipole expansion (i.e., directly); if typeof(direct_list) <: InteractionList, then prepared influence matrices are used rather than computing direct influences on the fly

  • derivatives_switches::Union{DerivativesSwitch, Tuple{<:DerivativesSwitch,...}}: switch determining which of scalar potential, vector potential, velocity, and/or velocity gradient are to be computed for each target system

Optional Arguments

  • multipole_threshold::Float64: number between 0 and 1 (often denoted theta in [0,1]) controls the accuracy by determining the non-dimensional distance after which multipoles are used; 0 means an infinite distance (no error, high cost), and 1 means barely convergent (high error, low cost)
  • scalar_potential::Bool: either a ::Bool or a ::AbstractVector{Bool} of length length(target_systems) indicating whether each system should receive a scalar potential from source_systems
  • velocity::Bool: either a ::Bool or a ::AbstractVector{Bool} of length length(target_systems) indicating whether each system should receive a velocity from source_systems
  • velocity_gradient::Bool: either a ::Bool or a ::AbstractVector{Bool} of length length(target_systems) indicating whether each system should receive a velocity gradient from source_systems
  • upward_pass::Bool: whether or not to form the multipole expansions from source bodies and translate them upward in the source tree
  • horizontal_pass::Bool: whether or not to transform multipole expansions from the source tree into local expansions in the target tree
  • downward_pass::Bool: whether or not to translate local expansions down to the leaf level of the target tree and evaluate them
  • nearfield::Bool: indicates whether near-field (comuted without multipoles) interactions should be included
  • farfield::Bool: indicates whether far-field (comuted with multipoles) interactions should be included
  • self_induced::Bool: indicates whether to include the interactions of each leaf-level branch on itself
  • unsort_source_bodies::Bool: indicates whether or not to undo the sort operation used to generate the octree for source_systems
  • unsort_target_bodies::Bool: indicates whether or not to undo the sort operation used to generate the octree for target_systems
source
FastMultipole.fmm!Method
fmm!(target_tree, target_systems, source_tree, source_systems; kwargs...)

Dispatches fmm! using existing ::Tree objects.

Arguments

  • target_tree::Tree: a <:Tree object (see Tree)

  • target_systems: either

    • a system object for which compatibility functions have been overloaded, or
    • a tuple of system objects for which compatibility functions have been overloaded
  • source_tree::Tree: a <:Tree object (see Tree)

  • source_systems: either

    • a system object for which compatibility functions have been overloaded, or
    • a tuple of system objects for which compatibility functions have been overloaded

Optional Arguments

  • multipole_threshold::Float64: number between 0 and 1 (often denoted theta in [0,1]) controls the accuracy by determining the non-dimensional distance after which multipoles are used; 0 means an infinite distance (no error, high cost), and 1 means barely convergent (high error, low cost)
  • scalar_potential::Bool: either a ::Bool or a ::AbstractVector{Bool} of length length(target_systems) indicating whether each system should receive a scalar potential from source_systems
  • velocity::Bool: either a ::Bool or a ::AbstractVector{Bool} of length length(target_systems) indicating whether each system should receive a velocity from source_systems
  • velocity_gradient::Bool: either a ::Bool or a ::AbstractVector{Bool} of length length(target_systems) indicating whether each system should receive a velocity gradient from source_systems
  • reset_source_tree::Bool: either a ::Bool or a ::AbstractVector{Bool} of length length(source_systems) indicating whether or not to reset the expansions of each source tree
  • reset_target_tree::Bool: either a ::Bool or a ::AbstractVector{Bool} of length length(source_systems) indicating whether or not to reset the expansions of each target tree
  • upward_pass::Bool: whether or not to form the multipole expansions from source bodies and translate them upward in the source tree
  • horizontal_pass::Bool: whether or not to transform multipole expansions from the source tree into local expansions in the target tree
  • downward_pass::Bool: whether or not to translate local expansions down to the leaf level of the target tree and evaluate them
  • nearfield::Bool: indicates whether near-field (computed without multipoles) interactions should be included in the direct_list
  • farfield::Bool: indicates whether far-field (computed with multipoles) interactions should be included in the m2l_list
  • self_induced::Bool: indicates whether to include the interactions of each leaf-level branch on itself in the direct_list
  • unsort_source_bodies::Bool: indicates whether or not to undo the sort operation used to generate the octree for source_systems
  • unsort_target_bodies::Bool: indicates whether or not to undo the sort operation used to generate the octree for target_systems
  • nearfield_user::Bool: indicates whether or not the nearfield_user! function should be used for nearfield interactions
source
FastMultipole.fmm!Method
fmm!(tree, systems; kwargs...)

Dispatches fmm! using an existing ::Tree.

Arguments

  • tree::Tree: a <:Tree object (see Tree)

  • systems: either

    • a system object for which compatibility functions have been overloaded, or
    • a tuple of system objects for which compatibility functions have been overloaded

Optional Arguments

  • multipole_threshold::Float64: number between 0 and 1 (often denoted theta in [0,1]) controls the accuracy by determining the non-dimensional distance after which multipoles are used; 0 means an infinite distance (no error, high cost), and 1 means barely convergent (high error, low cost)
  • scalar_potential::Bool: either a ::Bool or a ::AbstractVector{Bool} of length length(systems) indicating whether each system should receive a scalar potential from source_systems
  • velocity::Bool: either a ::Bool or a ::AbstractVector{Bool} of length length(systems) indicating whether each system should receive a velocity from source_systems
  • velocity_gradient::Bool: either a ::Bool or a ::AbstractVector{Bool} of length length(systems) indicating whether each system should receive a velocity gradient from source_systems
  • upward_pass::Bool: whether or not to form the multipole expansions from source bodies and translate them upward in the source tree
  • horizontal_pass::Bool: whether or not to transform multipole expansions from the source tree into local expansions in the target tree
  • downward_pass::Bool: whether or not to translate local expansions down to the leaf level of the target tree and evaluate them
  • nearfield::Bool: indicates whether near-field (computed without multipoles) interactions should be included in the direct_list
  • farfield::Bool: indicates whether far-field (computed with multipoles) interactions should be included in the m2l_list
  • self_induced::Bool: indicates whether to include the interactions of each leaf-level branch on itself in the direct_list
  • unsort_bodies::Bool: indicates whether or not to undo the sort operation used to generate the octree for systems
  • nearfield_user::Bool: indicates whether or not the nearfield_user! function should be used for nearfield interactions
source
FastMultipole.get_PMethod
get_P(r_min, r_max, ρ_min, ρ_max, ΔC2, Pmax, ε_rel, error_method)

Returns the smallest expansion order not greater than Pmax and satisfying the specified relative error tolerance.

Inputs

  • r_min::Flaot64: distance from the multipole expansion to the closest target
  • r_max::Float64: distance from the local expansion to the farthest target
  • ρ_min::Float64: distance from the local expansion to the closest source
  • ρ_max::Float64: distance from the multipole expansion to the farthest source
  • ΔC2::Float64: distance squared between multipole and local centers
  • Pmax::Int64: maximum allowable expansion order
  • ε_rel::Float64: relative error tolerance
  • error_method::ErrorMethod: type used to dispatch on the desired error method

Ouputs

  • P::Int: the smallest expansion order to satisfy the error tolerance
source
FastMultipole.reset!Method
reset!(probes)

Zeroes all values (e.g. scalar/vector potential, velocity, and/or velocity gradient) of all probes.

Arguments

source
FastMultipole.rotate_multipole_y!Method

Rotate solid harmonic weights about the y axis by θ. Note that Hsπ2 and ζsmag must be updated a priori, but Ts is updated en situ. Resets rotated_weights before computing.

source
FastMultipole.shrink_branch!Method

Computes the smallest bounding box to completely bound all child boxes.

Shrunk radii are merely the distance from the center to the corner of the box.

source
+Reference · FastMultipole.jl

Reference

FastMultipole.DerivativesSwitchType
DerivativesSwitch

Switch indicating whether the scalar potential, vector potential, velocity, and/or velocity gradient should be computed for a target system. Information is stored as type parameters, allowing the compiler to compile away if statements.

source
FastMultipole.DerivativesSwitchMethod
DerivativesSwitch(scalar_potential, velocity, velocity_gradient)

Constructs a tuple of DerivativesSwitch objects.

Arguments

  • scalar_potential::Vector{Bool}: a vector of ::Bool indicating whether the scalar potential should be computed for each target system
  • velocity::Vector{Bool}: a vector of ::Bool indicating whether the velocity should be computed for each target system
  • velocity_gradient::Vector{Bool}: a vector of ::Bool indicating whether the velocity gradient should be computed for each target system
source
FastMultipole.DerivativesSwitchMethod
DerivativesSwitch(scalar_potential, velocity, velocity_gradient, target_systems)

Constructs a ::Tuple of indentical DerivativesSwitch objects of the same length as target_systems (if it is a ::Tuple), or a single DerivativesSwitch (if target_system is not a ::Tuple)

Arguments

  • scalar_potential::Bool: a ::Bool indicating whether the scalar potential should be computed for each target system
  • velocity::Bool: a ::Bool indicating whether the velocity should be computed for each target system
  • velocity_gradient::Bool: a ::Bool indicating whether the velocity gradient should be computed for each target system
source
FastMultipole.DerivativesSwitchMethod
DerivativesSwitch(scalar_potential, velocity, velocity_gradient)

Constructs a single DerivativesSwitch object.

Arguments

  • scalar_potential::Bool: a ::Bool indicating whether the scalar potential should be computed for the target system
  • velocity::Bool: a ::Bool indicating whether the velocity should be computed for the target system
  • velocity_gradient::Bool: a ::Bool indicating whether the velocity gradient should be computed for the target system
source
FastMultipole.ExpansionSwitchType
ExpansionSwitch

Switch indicating which expansions should be used:

  1. scalar potential (SP)
  2. vector potential via Lamb-Helmholtz decomposition (VP)
source
FastMultipole.MultiBranchType
MultiBranch{TF,N} <: Branch{TF}

Branch object used to sort more than one system into an octree. Type parameters represent:

  • TF: the floating point type (would be a dual number if using algorithmic differentiation)
  • N: the number of systems represented

Fields

  • bodies_index::Vector{UnitRange}: vector of unit ranges indicating the index of bodies in each represented system, respectively
  • n_branches::Int: number of child branches corresponding to this branch
  • branch_index::UnitRange: indices of this branch's child branches
  • i_parent::Int: index of this branch's parent
  • i_leaf::Int: if this branch is a leaf, what is its index in its parent <:Tree's leaf_index field
  • center::Vector{TF}: center of this branch at which its multipole and local expansions are centered
  • source_radius::TF: if this branch is a leaf, distance from center to the outer edge of farthest body contained in this branch; otherwise, this is the distance from center to the corner of its source_box
  • target_radius::TF: distance from center to the farthest body center contained in this branch
  • source_box::Vector{TF}: vector of length 6 containing the distances from the center to faces of a rectangular prism completely enclosing all bodies with their finite radius in the negative x, positive x, negative y, positive y, negative z, and positive z directions, respectively
  • target_box::Vector{TF}: vector of length 3 containing the distances from the center to faces of a rectangular prism completely enclosing all body centers in the x, y, and z direction, respectively
  • multipole_expansion::Array{TF,3}: array of size (2,2,) containing the multipole expansion coefficients; the first index indicates real or imaginary, the second index indicates scalar potential or the second component of the Lamb-Helmholtz decomposition, and the third indexk` indicates the expansion coefficient of degree $n$ and order $m$, as $k = p(p+1)/2 + m + 1$
  • local_expansion::Array{TF,3}: array of size(2,2,(p+1)(p+2)/2)containing the local expansion coefficients; the first index indicates real or imaginary, the second index indicates scalar potential or the second component of the Lamb-Helmholtz decomposition, and the third indexk` indicates the expansion coefficient of degree $n$ and order $m$, as $k = p(p+1)/2 + m + 1$
  • harmonics::Array{TF,3}: array of size (2,2,(p+1)(p+2)/2) used as storage for regular harmonics, irregular harmonics, or whatever is needed, and is indexed as multipole and local expansions
  • lock::ReentrantLock: lock used to avoid data race conditions when modifying this branch or its corresponding bodies
source
FastMultipole.MultiTreeType

bodies[indexlist] is the same sort operation as performed by the tree sortedbodies[inverseindexlist] undoes the sort operation performed by the tree

source
FastMultipole.ProbeSystemType
ProbeSystem

Convenience system for defining locations at which the potential, velocity, or velocity gradient may be desired.

source
FastMultipole.ProbeSystemMethod
ProbeSystem(positions; kwargs...)

A convenience system constructor for calculating the influence of source systems at locations not already described by a system object. It behaves like a system whose elements induce a null potential field.

Arguments

  • positions::Vector{SVector{3,Float64}}: a vector of position vectors of each probe

Optional Arguments

  • scalar_potential::Bool: whether or not to compute the scalar potential at each probe location
  • vector_potential::Bool: whether or not to compute the vector potential at each probe location
  • velocity::Bool: whether or not to compute the velocity at each probe location
  • velocity_gradient::Bool: whether or not to compute the velocity gradient at each probe location
source
FastMultipole.ProbeSystemMethod
ProbeSystem(positions; kwargs...)

Dispatch of ProbeSystem accepting a matrix of horizontally concatenated column vectors describing the position of each probe. Optional arguments are identical.

source
FastMultipole.SingleBranchType
SingleBranch{TF} <: Branch{TF}

Branch object used to sort a single system into an octree. Type parameters represent:

  • TF: the floating point type (would be a dual number if using algorithmic differentiation)

Fields

  • bodies_index::UnitRange: unit range indicating the index of bodies in the represented system
  • n_branches::Int: number of child branches corresponding to this branch
  • branch_index::UnitRange: indices of this branch's child branches
  • i_parent::Int: index of this branch's parent
  • i_leaf::Int: if this branch is a leaf, what is its index in its parent <:Tree's leaf_index field
  • center::Vector{TF}: center of this branch at which its multipole and local expansions are centered
  • source_radius::TF: if this branch is a leaf, distance from center to the outer edge of farthest body contained in this branch; otherwise, this is the distance from center to the corner of its source_box
  • target_radius::TF: distance from center to the farthest body center contained in this branch
  • source_box::Vector{TF}: vector of length 6 containing the distances from the center to faces of a rectangular prism completely enclosing all bodies with their finite radius in the negative x, positive x, negative y, positive y, negative z, and positive z directions, respectively
  • target_box::Vector{TF}: vector of length 3 containing the distances from the center to faces of a rectangular prism completely enclosing all body centers in the x, y, and z direction, respectively
  • multipole_expansion::Array{TF,3}: array of size (2,2,) containing the multipole expansion coefficients; the first index indicates real or imaginary, the second index indicates scalar potential or the second component of the Lamb-Helmholtz decomposition, and the third indexk` indicates the expansion coefficient of degree $n$ and order $m$, as $k = p(p+1)/2 + m + 1$
  • local_expansion::Array{TF,3}: array of size(2,2,(p+1)(p+2)/2)containing the local expansion coefficients; the first index indicates real or imaginary, the second index indicates scalar potential or the second component of the Lamb-Helmholtz decomposition, and the third indexk` indicates the expansion coefficient of degree $n$ and order $m$, as $k = p(p+1)/2 + m + 1$
  • harmonics::Array{TF,3}: array of size (2,2,(p+1)(p+2)/2) used as storage for regular harmonics, irregular harmonics, or whatever is needed, and is indexed as multipole and local expansions
  • lock::ReentrantLock: lock used to avoid data race conditions when modifying this branch or its corresponding bodies
source
FastMultipole.SortWrapperMethod
SortWrapper(system)

Convenience wrapper for systems whose elements cannot be sorted in-place (e.g. structured grids). The resulting object is treated like any other system.

source
FastMultipole.TreeType
abstract type Tree{TF,P} end

Supertype of all octree structures with TF the floating point type and P the expansion order.

source
FastMultipole.EmptyTreeMethod
EmptyTree(system)

Returns an empty tree. Used if system is empty.

Arguments

  • system: the system from which a tree is to be created

Returns

  • tree: if typeof(system)<:Tuple, a ::MultiTree is returned; otherwise, a ::SingleTree is returned
source
FastMultipole.accumulate_charge!Method
accumulate_charge!(branches, systems, branch_index)

Computes the sum of the absolute value of body source strengths, as well as the sum of the L2 norm of the dipole strengths, and store them in each branch, inheriting values from child branches if available.

source
FastMultipole.accumulate_charge_bodies!Method
accumulate_charge!(branch, systems)

Computes the sum of the absolute value of body source strengths, as well as the sum of the L2 norm of the dipole strengths, based on source bodies directly, and store them in each branch.

source
FastMultipole.add_line!Method
add_line!(probes::ProbeSystem, x1, x2, n_probes, i_last)

Adds n_probes probes in a line between x1 and x2. Specifically, they are added at the midpoint of equally partiti oned segments of the line.

Arguments

  • probes::ProbeSystem: the probe system whose .position field is to be updated
  • x1::Vector{Float64}: the first point defining the line along which probes are to be added
  • x2::Vector{Float64}: the second point defining the line along which probes are to be added
  • n_probes::Int: number of probes to be added
  • i_last::Int: index of the last probe in probes

Output

  • i_last::Int: updated index of the last probe in probes
source
FastMultipole.back_rotate_z!Method

Assumes eimϕs have already been computed. DOES NOT overwrite rotated weights (unlike other rotate functions); rather, accumulates on top of it.

source
FastMultipole.calculate_ib!Method

assumes j has already been calculated

Note: if X0real is replaced with X0real + Xw_real, etc., this becomes bnm (as used for volumes) instead of inm (as used for panels)

source
FastMultipole.calculate_pj!Method

assumes q has already been calculated

If X0real is replaced with X0real + Xv_real, etc., the result becomes jnm instead of pnm, as used for panels.

source
FastMultipole.direct!Method
direct!(target_system, source_system; derivatives_switches)

Applies all interactions of source_system acting on target_system without multipole acceleration.

Arguments

  • target_system: either

    • a system object for which compatibility functions have been overloaded, or
    • a tuple of system objects for which compatibility functions have been overloaded
  • source_system: either

    • a system object for which compatibility functions have been overloaded, or
    • a tuple of system objects for which compatibility functions have been overloaded

Optional Arguments

  • scalar_potential::Bool: either a ::Bool or a ::AbstractVector{Bool} of length length(target_systems) indicating whether each system should receive a scalar potential from source_systems
  • velocity::Bool: either a ::Bool or a ::AbstractVector{Bool} of length length(target_systems) indicating whether each system should receive a velocity from source_systems
  • velocity_gradient::Bool: either a ::Bool or a ::AbstractVector{Bool} of length length(target_systems) indicating whether each system should receive a velocity gradient from source_systems
source
FastMultipole.direct!Method
direct!(systems; derivatives_switches)

Applies all interactions of systems acting on itself without multipole acceleration.

Arguments

  • systems: either

    • a system object for which compatibility functions have been overloaded, or
    • a tuple of system objects for which compatibility functions have been overloaded

Optional Arguments

  • scalar_potential::Bool: either a ::Bool or a ::AbstractVector{Bool} of length length(target_systems) indicating whether each system should receive a scalar potential from source_systems
  • velocity::Bool: either a ::Bool or a ::AbstractVector{Bool} of length length(target_systems) indicating whether each system should receive a velocity from source_systems
  • velocity_gradient::Bool: either a ::Bool or a ::AbstractVector{Bool} of length length(target_systems) indicating whether each system should receive a velocity gradient from source_systems
source
FastMultipole.fmm!Method
fmm!(systems; kwargs...)

Apply all interactions of systems acting on itself using the fast multipole method. Assumes compatibility functions have been overloaded for both source and target systems.

Arguments

  • systems: either

    • a system object for which compatibility functions have been overloaded, or
    • a tuple of system objects for which compatibility functions have been overloaded

Optional Arguments

  • expansion_order::Int: the expansion order to be used
  • leaf_size::Int: maximum number of bodies from systems allowed in a leaf-level branch
  • multipole_threshold::Float64: number between 0 and 1 (often denoted theta in [0,1]) controls the accuracy by determining the non-dimensional distance after which multipoles are used; 0 means an infinite distance (no error, high cost), and 1 means barely convergent (high error, low cost)
  • scalar_potential::Bool: either a ::Bool or a ::AbstractVector{Bool} of length length(systems) indicating whether each system should receive a scalar potential from source_systems
  • velocity::Bool: either a ::Bool or a ::AbstractVector{Bool} of length length(systems) indicating whether each system should receive a velocity from source_systems
  • velocity_gradient::Bool: either a ::Bool or a ::AbstractVector{Bool} of length length(systems) indicating whether each system should receive a velocity gradient from source_systems
  • upward_pass::Bool: whether or not to form the multipole expansions from source bodies and translate them upward in the source tree
  • horizontal_pass::Bool: whether or not to transform multipole expansions from the source tree into local expansions in the target tree
  • downward_pass::Bool: whether or not to translate local expansions down to the leaf level of the target tree and evaluate them
  • nearfield::Bool: indicates whether near-field (comuted without multipoles) interactions should be included in the direct_list
  • farfield::Bool: indicates whether far-field (comuted with multipoles) interactions should be included in the m2l_list
  • self_induced::Bool: indicates whether to include the interactions of each leaf-level branch on itself in the direct_list
  • unsort_bodies::Bool: indicates whether or not to undo the sort operation used to generate the octree for systems
  • shink_recenter::Bool: indicates whether or not to resize branches for the octree after it is created to increase computational efficiency
  • save_tree::Bool: indicates whether or not to save a VTK file for visualizing the octree
  • save_name::String: name and path of the octree visualization if save_tree == true
  • nearfield_user::Bool: indicates whether or not the nearfield_user! function should be used for nearfield interactions
source
FastMultipole.fmm!Method
fmm!(target_systems, source_systems; kwargs...)

Apply all interactions of source_systems acting on target_systems using the fast multipole method. Assumes compatibility functions have been overloaded for both source and target systems.

Arguments

  • target_systems: either

    • a system object for which compatibility functions have been overloaded, or - a tuple of system objects for which compatibility functions have been overloaded
  • source_systems: either

    • a system object for which compatibility functions have been overloaded, or
    • a tuple of system objects for which compatibility functions have been overloaded

Optional Arguments

  • expansion_order::Int: the expansion order to be used
  • leaf_size_source::Int: maximum number of bodies from source_systems allowed in a leaf-level branch
  • leaf_size_target::Int: maximum number of bodies from target_systems allowed in a leaf-level branch
  • multipole_threshold::Float64: number between 0 and 1 (often denoted theta in [0,1]) controls the accuracy by determining the non-dimensional distance after which multipoles are used; 0 means an infinite distance (no error, high cost), and 1 means barely convergent (high error, low cost)
  • lamb_helmholtz::Bool: determines whether or not to calculate the induced velocity due to a vector potential using the Lamb-Helmholtz decomposition; erroroneous velocity and gradient will result if lamb_helmholtz==false and a vector potential is used.
  • scalar_potential::Bool: either a ::Bool or a ::AbstractVector{Bool} of length length(target_systems) indicating whether each system should receive a scalar potential from source_systems
  • velocity::Bool: either a ::Bool or a ::AbstractVector{Bool} of length length(target_systems) indicating whether each system should receive a velocity from source_systems
  • velocity_gradient::Bool: either a ::Bool or a ::AbstractVector{Bool} of length length(target_systems) indicating whether each system should receive a velocity gradient from source_systems
  • upward_pass::Bool: whether or not to form the multipole expansions from source bodies and translate them upward in the source tree
  • horizontal_pass::Bool: whether or not to transform multipole expansions from the source tree into local expansions in the target tree
  • downward_pass::Bool: whether or not to translate local expansions down to the leaf level of the target tree and evaluate them
  • nearfield::Bool: indicates whether near-field (comuted without multipoles) interactions should be included
  • farfield::Bool: indicates whether far-field (comuted with multipoles) interactions should be included
  • self_induced::Bool: indicates whether to include the interactions of each leaf-level branch on itself
  • unsort_source_bodies::Bool: indicates whether or not to undo the sort operation used to generate the octree for the source_systems
  • unsort_target_bodies::Bool: indicates whether or not to undo the sort operation used to generate the octree for the target_systems
  • source_shink_recenter::Bool: indicates whether or not to resize branches for the source_systems octree after it is created to increase computational efficiency
  • target_shink_recenter::Bool: indicates whether or not to resize branches for the target_systems octree after it is created to increase computational efficiency
  • save_tree_source::Bool: indicates whether or not to save a VTK file for visualizing the source octree
  • save_tree_target::Bool: indicates whether or not to save a VTK file for visualizing the target octree
  • save_name_source::String: name and path of the source octree visualization if save_tree == true
  • save_name_target::String: name and path of the target octree visualization if save_tree == true
source
FastMultipole.fmm!Method
fmm!(tree, systems; kwargs...)

Dispatches fmm! using an existing ::Tree.

Arguments

  • tree::Tree: a <:Tree object (see Tree)

  • systems: either

    • a system object for which compatibility functions have been overloaded, or
    • a tuple of system objects for which compatibility functions have been overloaded
  • m2l_list::Vector{SVector{2,Int32}}: list of branch index pairs [i_target, i_source] for which multipole expansions of the source branch are to be transformed to local expansions at the target branch

  • direct_list::Union{Vector{SVector{2,Int32}}, InteractionList}: list of branch index pairs [i_target, i_source] for which interactions are to be evaluted without multipole expansion (i.e., directly); if typeof(direct_list) <: InteractionList, then prepared influence matrices are used rather than computing direct influences on the fly

  • derivatives_switches::Union{DerivativesSwitch, Tuple{<:DerivativesSwitch,...}}: switch determining which of scalar potential, vector potential, velocity, and/or velocity gradient are to be computed for each target system

Optional Arguments

  • upward_pass::Bool: whether or not to form the multipole expansions from source bodies and translate them upward in the source tree
  • horizontal_pass::Bool: whether or not to transform multipole expansions from the source tree into local expansions in the target tree
  • downward_pass::Bool: whether or not to translate local expansions down to the leaf level of the target tree and evaluate them
  • unsort_bodies::Bool: indicates whether or not to undo the sort operation used to generate the octree for systems
source
FastMultipole.fmm!Method
fmm!(target_tree, target_systems, source_tree, source_systems, m2l_list, direct_list, derivatives_switches; kwargs...)

Dispatches fmm! using existing ::Tree objects.

Arguments

  • target_tree::Tree: a <:Tree object (see Tree)

  • target_systems: either

    • a system object for which compatibility functions have been overloaded, or
    • a tuple of system objects for which compatibility functions have been overloaded
  • source_tree::Tree: a <:Tree object (see Tree)

  • source_systems: either

    • a system object for which compatibility functions have been overloaded, or
    • a tuple of system objects for which compatibility functions have been overloaded
  • m2l_list::Vector{SVector{2,Int32}}: list of branch index pairs [i_target, i_source] for which multipole expansions of the source branch are to be transformed to local expansions at the target branch

  • direct_list::Union{Vector{SVector{2,Int32}}, InteractionList}: list of branch index pairs [i_target, i_source] for which interactions are to be evaluted without multipole expansion (i.e., directly); if typeof(direct_list) <: InteractionList, then prepared influence matrices are used rather than computing direct influences on the fly

  • derivatives_switches::Union{DerivativesSwitch, Tuple{<:DerivativesSwitch,...}}: switch determining which of scalar potential, vector potential, velocity, and/or velocity gradient are to be computed for each target system

Optional Arguments

  • multipole_threshold::Float64: number between 0 and 1 (often denoted theta in [0,1]) controls the accuracy by determining the non-dimensional distance after which multipoles are used; 0 means an infinite distance (no error, high cost), and 1 means barely convergent (high error, low cost)
  • scalar_potential::Bool: either a ::Bool or a ::AbstractVector{Bool} of length length(target_systems) indicating whether each system should receive a scalar potential from source_systems
  • velocity::Bool: either a ::Bool or a ::AbstractVector{Bool} of length length(target_systems) indicating whether each system should receive a velocity from source_systems
  • velocity_gradient::Bool: either a ::Bool or a ::AbstractVector{Bool} of length length(target_systems) indicating whether each system should receive a velocity gradient from source_systems
  • upward_pass::Bool: whether or not to form the multipole expansions from source bodies and translate them upward in the source tree
  • horizontal_pass::Bool: whether or not to transform multipole expansions from the source tree into local expansions in the target tree
  • downward_pass::Bool: whether or not to translate local expansions down to the leaf level of the target tree and evaluate them
  • nearfield::Bool: indicates whether near-field (comuted without multipoles) interactions should be included
  • farfield::Bool: indicates whether far-field (comuted with multipoles) interactions should be included
  • self_induced::Bool: indicates whether to include the interactions of each leaf-level branch on itself
  • unsort_source_bodies::Bool: indicates whether or not to undo the sort operation used to generate the octree for source_systems
  • unsort_target_bodies::Bool: indicates whether or not to undo the sort operation used to generate the octree for target_systems
source
FastMultipole.fmm!Method
fmm!(target_tree, target_systems, source_tree, source_systems; kwargs...)

Dispatches fmm! using existing ::Tree objects.

Arguments

  • target_tree::Tree: a <:Tree object (see Tree)

  • target_systems: either

    • a system object for which compatibility functions have been overloaded, or
    • a tuple of system objects for which compatibility functions have been overloaded
  • source_tree::Tree: a <:Tree object (see Tree)

  • source_systems: either

    • a system object for which compatibility functions have been overloaded, or
    • a tuple of system objects for which compatibility functions have been overloaded

Optional Arguments

  • multipole_threshold::Float64: number between 0 and 1 (often denoted theta in [0,1]) controls the accuracy by determining the non-dimensional distance after which multipoles are used; 0 means an infinite distance (no error, high cost), and 1 means barely convergent (high error, low cost)
  • scalar_potential::Bool: either a ::Bool or a ::AbstractVector{Bool} of length length(target_systems) indicating whether each system should receive a scalar potential from source_systems
  • velocity::Bool: either a ::Bool or a ::AbstractVector{Bool} of length length(target_systems) indicating whether each system should receive a velocity from source_systems
  • velocity_gradient::Bool: either a ::Bool or a ::AbstractVector{Bool} of length length(target_systems) indicating whether each system should receive a velocity gradient from source_systems
  • reset_source_tree::Bool: either a ::Bool or a ::AbstractVector{Bool} of length length(source_systems) indicating whether or not to reset the expansions of each source tree
  • reset_target_tree::Bool: either a ::Bool or a ::AbstractVector{Bool} of length length(source_systems) indicating whether or not to reset the expansions of each target tree
  • upward_pass::Bool: whether or not to form the multipole expansions from source bodies and translate them upward in the source tree
  • horizontal_pass::Bool: whether or not to transform multipole expansions from the source tree into local expansions in the target tree
  • downward_pass::Bool: whether or not to translate local expansions down to the leaf level of the target tree and evaluate them
  • nearfield::Bool: indicates whether near-field (computed without multipoles) interactions should be included in the direct_list
  • farfield::Bool: indicates whether far-field (computed with multipoles) interactions should be included in the m2l_list
  • self_induced::Bool: indicates whether to include the interactions of each leaf-level branch on itself in the direct_list
  • unsort_source_bodies::Bool: indicates whether or not to undo the sort operation used to generate the octree for source_systems
  • unsort_target_bodies::Bool: indicates whether or not to undo the sort operation used to generate the octree for target_systems
  • nearfield_user::Bool: indicates whether or not the nearfield_user! function should be used for nearfield interactions
source
FastMultipole.fmm!Method
fmm!(tree, systems; kwargs...)

Dispatches fmm! using an existing ::Tree.

Arguments

  • tree::Tree: a <:Tree object (see Tree)

  • systems: either

    • a system object for which compatibility functions have been overloaded, or
    • a tuple of system objects for which compatibility functions have been overloaded

Optional Arguments

  • multipole_threshold::Float64: number between 0 and 1 (often denoted theta in [0,1]) controls the accuracy by determining the non-dimensional distance after which multipoles are used; 0 means an infinite distance (no error, high cost), and 1 means barely convergent (high error, low cost)
  • scalar_potential::Bool: either a ::Bool or a ::AbstractVector{Bool} of length length(systems) indicating whether each system should receive a scalar potential from source_systems
  • velocity::Bool: either a ::Bool or a ::AbstractVector{Bool} of length length(systems) indicating whether each system should receive a velocity from source_systems
  • velocity_gradient::Bool: either a ::Bool or a ::AbstractVector{Bool} of length length(systems) indicating whether each system should receive a velocity gradient from source_systems
  • upward_pass::Bool: whether or not to form the multipole expansions from source bodies and translate them upward in the source tree
  • horizontal_pass::Bool: whether or not to transform multipole expansions from the source tree into local expansions in the target tree
  • downward_pass::Bool: whether or not to translate local expansions down to the leaf level of the target tree and evaluate them
  • nearfield::Bool: indicates whether near-field (computed without multipoles) interactions should be included in the direct_list
  • farfield::Bool: indicates whether far-field (computed with multipoles) interactions should be included in the m2l_list
  • self_induced::Bool: indicates whether to include the interactions of each leaf-level branch on itself in the direct_list
  • unsort_bodies::Bool: indicates whether or not to undo the sort operation used to generate the octree for systems
  • nearfield_user::Bool: indicates whether or not the nearfield_user! function should be used for nearfield interactions
source
FastMultipole.get_PMethod
get_P(r_min, r_max, ρ_min, ρ_max, ΔC2, Pmax, ε_rel, error_method)

Returns the smallest expansion order not greater than Pmax and satisfying the specified relative error tolerance.

Inputs

  • r_min::Flaot64: distance from the multipole expansion to the closest target
  • r_max::Float64: distance from the local expansion to the farthest target
  • ρ_min::Float64: distance from the local expansion to the closest source
  • ρ_max::Float64: distance from the multipole expansion to the farthest source
  • ΔC2::Float64: distance squared between multipole and local centers
  • Pmax::Int64: maximum allowable expansion order
  • ε_rel::Float64: relative error tolerance
  • error_method::ErrorMethod: type used to dispatch on the desired error method

Ouputs

  • P::Int: the smallest expansion order to satisfy the error tolerance
source
FastMultipole.reset!Method
reset!(probes)

Zeroes all values (e.g. scalar/vector potential, velocity, and/or velocity gradient) of all probes.

Arguments

source
FastMultipole.rotate_multipole_y!Method

Rotate solid harmonic weights about the y axis by θ. Note that Hsπ2 and ζsmag must be updated a priori, but Ts is updated en situ. Resets rotated_weights before computing.

source
FastMultipole.shrink_branch!Method

Computes the smallest bounding box to completely bound all child boxes.

Shrunk radii are merely the distance from the center to the corner of the box.

source
diff --git a/dev/theory/index.html b/dev/theory/index.html index 9381f1d..622d0df 100644 --- a/dev/theory/index.html +++ b/dev/theory/index.html @@ -1,2 +1,2 @@ -Theory · FastMultipole.jl

Theory

In a nutshell, FastMultipole operates by forming series expansions of a kernel function, and translating and combining those expansions to obtain optimal compression. You can get a sense for how this works in the following figure.

Here, we see how each body's influence can be expressed as a series expansion. These series expansions can be translated and combined such that an entire cluster of bodies is represented by a single series expansion. This is what is known as a multipole expansion. Multipole expansions only converge outside of a finite radius of convergence, as illustrated by the red dotted line. Multipole expansions can only be used for interactions that are farther apart than this circl. The accuracy of the expansion gets better and better the farther away we go, so we can control the accuracy by imposing a cutoff radius (dotted blue line), and only use multipole expansions for interactions that are farther away than the blue circle. Multipole expansions are very helpful for reducing the cost of the N-body problem; in fact, we can reduce the scaling of the N-body problem to O(NlogN) by only considering multipole expansions.

Local expansions are very similar to multipole expansions, but they converge inside of a finite radius rather than outside. These provide the additional required compression to achieve fully O(N) scaling. In the next figure, we see how local expansions can reduce the number of times an expansion need be evaluated.

More details of the fast multipole method (FMM) can be found in the original work by Greengard and Rokhlin.[4]

References

[1]
N. A. Gumerov, S. Kaneko and R. Duraiswami. Recursive computation of the multipole expansions of layer potential integrals over simplices for efficient fast multipole accelerated boundary elements. Journal of Computational Physics 486, 112118 (2023).
[2]
N. A. Gumerov and R. Duraiswami. Efficient FMM accelerated vortex methods in three dimensions via the Lamb–Helmholtz decomposition. Journal of Computational Physics 240, 310–328 (2013).
[3]
[4]
L. Greengard and V. Rokhlin. A fast algorithm for particle simulations. Journal of computational physics 73, 325–348 (1987).
+Theory · FastMultipole.jl

Theory

In a nutshell, FastMultipole operates by forming series expansions of a kernel function, and translating and combining those expansions to obtain optimal compression. You can get a sense for how this works in the following figure.

Here, we see how each body's influence can be expressed as a series expansion. These series expansions can be translated and combined such that an entire cluster of bodies is represented by a single series expansion. This is what is known as a multipole expansion. Multipole expansions only converge outside of a finite radius of convergence, as illustrated by the red dotted line. Multipole expansions can only be used for interactions that are farther apart than this circl. The accuracy of the expansion gets better and better the farther away we go, so we can control the accuracy by imposing a cutoff radius (dotted blue line), and only use multipole expansions for interactions that are farther away than the blue circle. Multipole expansions are very helpful for reducing the cost of the N-body problem; in fact, we can reduce the scaling of the N-body problem to O(NlogN) by only considering multipole expansions.

Local expansions are very similar to multipole expansions, but they converge inside of a finite radius rather than outside. These provide the additional required compression to achieve fully O(N) scaling. In the next figure, we see how local expansions can reduce the number of times an expansion need be evaluated.

More details of the fast multipole method (FMM) can be found in the original work by Greengard and Rokhlin.[4]

References

[1]
N. A. Gumerov, S. Kaneko and R. Duraiswami. Recursive computation of the multipole expansions of layer potential integrals over simplices for efficient fast multipole accelerated boundary elements. Journal of Computational Physics 486, 112118 (2023).
[2]
N. A. Gumerov and R. Duraiswami. Efficient FMM accelerated vortex methods in three dimensions via the Lamb–Helmholtz decomposition. Journal of Computational Physics 240, 310–328 (2013).
[3]
[4]
L. Greengard and V. Rokhlin. A fast algorithm for particle simulations. Journal of computational physics 73, 325–348 (1987).